При выполнении сравнения, как я могу заставить авторов действительно отвечать на запрос исходного кода?

Я работаю над докторской диссертацией в области компьютерных наук и работаю в области компьютерного зрения. Я придумал алгоритм, который мои руководители считают перспективным и доступным для публикации. Мне потребовалось много времени, чтобы получить эти результаты.

Теперь дело в том, что мне нужно сравнить свой код с другими недавними статьями, посвященными той же проблеме. Что, как я понимаю, очень необходимо, чтобы показать, как моя работа сравнивается с предыдущей работой. Мои руководители хотят, чтобы я сравнил по крайней мере с 4 или 5 другими недавними работами.

Проблема в том, что база данных, которую я использую, очень новая, и ни одна журнальная статья еще не использовала ее. Поэтому у меня осталось другое решение — прочитать журнальные статьи, понять их и попытаться реализовать их код.

Это определенно займет слишком много времени и, на мой взгляд, потратит много времени. Эти журнальные статьи очень продвинуты (очевидно), и самостоятельная реализация их результатов займет у меня много времени, единственной целью которого является получение результата.

Одним из решений было бы написать авторам по электронной почте и вежливо попросить их исходный код, но я обнаружил, что многие авторы не отвечают.

Этот вопрос Могу ли я запросить код исследовательской работы у автора? заявили, что у них больше шансов получить ответ, если они пообещают добавить этого автора в качестве соавтора в свою статью. Я не хочу этого делать, так как это было бы нечестно, так как я не вижу смысла добавлять автора в свою статью только потому, что я сравнивал свою работу с его, а если сравнивать с 5 статьями, то это будет очень долго . список авторов.

Может быть, я прошу о чем-то, на что осуждают. А может, не так спросил?

Я написал авторам по электронной почте и попросил их код исключительно для проверки их работы с моей базой данных в целях сравнения, но ответа не получил. Я делаю что-то неправильно?

«Эти журнальные статьи очень продвинуты (очевидно), и самостоятельная реализация их результатов займет у меня много времени, единственной целью которого является получение результата». - И вы говорите это, пока вы можете получить из этого публикацию. Хотя я вижу этические проблемы в отказе поделиться любым исходным кодом, необходимым для воспроизведения экспериментов, и полное отсутствие ответа, безусловно, является грубой территорией, предполагая, что вы спросили с разумным уровнем вежливости, с точки зрения этих других авторов, проверка, могут ли они дать вам такой исходный код, займет...
... довольно много своего времени, которое не обязательно будет непосредственно способствовать их исследованиям. (tl;dr: Они должны ответить, но я понимаю, почему они могут этого не захотеть.)
Я предполагаю, что в каждой из этих 5 статей сообщалось о базе данных, которую они тестировали, и о полученных результатах. Вы можете получить эти базы данных? Если это так, возможно, вы могли бы запустить свой код для каждой базы данных и сравнить свои результаты с результатами, которые они сообщили. Это может быть проще, чем пытаться воспроизвести их код или даже запустить его код. Идеальная ситуация была бы, если бы все 5 статей использовали одну и ту же базу данных; то вам нужно сделать только один запуск.
@mhwombat Спасибо, это хорошее предложение, и да, они упомянули свои базы данных, но я еще не видел статьи, которая следовала бы этому формату. Вот почему это никогда не приходило мне в голову.
Побочный комментарий: такого рода проблемы — одна из причин, по которой журналы должны следовать примеру Ipol ipol.im , журнала, в котором статьи публикуются вместе с их кодом, реализованным на унифицированном языке, что позволяет читателям широко тестировать и сравнивать.
@BenoîtKloeckner: «на едином языке»?
@ORMapper: я имел в виду, что все коды должны быть написаны на заданном фиксированном языке программирования, чтобы он был реализован одинаково для всех статей. Это, вероятно, больше для удобства издателя, который запускает все опубликованные алгоритмы в форме планшета (сейчас вы можете протестировать любой алгоритм любой статьи, опубликованной Ipol, на любом изображении на вашем жестком диске), но также сделать сравнения более законными.
@BenoîtKloeckner: Ах, да, просто хотел убедиться, что я правильно это истолковал. Полезное ограничение ради понятности всех работ в рамках одной площадки и, безусловно, хорошая идея в областях, где такое ограничение возможно.
У меня был подобный опыт, поэтому я могу понять ваше разочарование. Следует иметь в виду, что у авторов может не быть исходного кода в какой-либо пригодной для использования форме. Одним из распространенных сценариев является то, что младший член команды выполнил весь код. И также относительно вероятно, что этот человек больше не работает в академических кругах, больше не имеет доступа к своему коду и почти не помнит и не интересуется своей прежней жизнью. В зависимости от того, насколько вы отчаянны, вы можете попробовать писать бумажные письма и отправлять их заказными — вероятность того, что они будут проигнорированы, меньше.

Ответы (2)

Я работаю над докторской диссертацией по компьютерным наукам. Это определенно займет слишком много времени и, на мой взгляд, потратит много времени впустую.

Ну, это то, что касается докторской степени в CS в экспериментальных алгоритмах и областях. Вы должны подготовить свой алгоритм, внедрить его, внедрить предыдущие работы и сравнить свою работу с ними. Так что, сколько времени это займет у вас, никого не интересует, кроме вас и вашего руководителя. Так что эта линия рассуждений наивна.

Одним из решений было бы написать авторам по электронной почте и вежливо попросить их исходный код.

Да, но он не единственный. Вы можете запросить их наборы данных и запустить свой алгоритм на их наборах данных вместо того, чтобы создавать еще один набор данных. Кроме того, в сообществах экспериментальных алгоритмов есть хорошо известные эталонные экземпляры, и все связанные с ними документы работают с ними для облегчения сравнения результатов. Зачем вам нужно создавать еще один набор данных? Можно использовать этот дополнительный набор данных ПОСЛЕ того, как вы протестировали свой алгоритм на этих тестовых экземплярах сообщества. Вы также можете отправить свои наборы данных своим «конкурентам» и попросить их провести свои эксперименты с вашими наборами данных и просто предоставить вам свои результаты. Подготовьте свои эксперименты относительно старых статей,

Если вам так нравится делиться кодом, вы также можете отправить им свой исходный код, объяснить, как его компилировать и использовать, а затем позволить им проводить эксперименты на своих ПК и сообщать вам о результатах их работы. Я знаю, что эта мысль, вероятно, никогда не приходила вам в голову. Почему? « Они могут украсть мою работу, откуда я знаю, что они дадут мне правильные результаты, это слишком много работы, я не доверяю им свой код src ». И теперь вы знаете, почему люди не хотят делиться своим кодом.

Но вы также, вероятно, забыли самый простой способ решения вашей проблемы. Пусть ваш руководитель свяжется с первым автором И остальными авторами. Если вы не выдающийся аспирант с большим количеством замечательных работ, вы практически не мистер Никто, и люди легко отмахнутся от ваших запросов. Со своим руководителем это сделать сложнее (если только он тоже не Мистер Никто). Обычно люди не хотят говорить НЕТ будущим рецензентам, соавторам и уважаемым членам сообщества. Также важно копировать всех авторов статей. Первый автор (аспирант) может защитить свой код и скрыть ваш запрос от своего руководителя. Если вы сделаете копию супервизору, он может быть вынужден поделиться своим кодом или, по крайней мере, ответить.

И последнее, но не менее важное: будьте любезны, когда спрашиваете.

Спасибо за отличный ответ. Да, пустая трата времени комментарий был с моей точки зрения. Поскольку мне придется реализовать их работу, которая может занять недели или месяцы, чтобы получить результат для сравнения. Этого я хотел избежать, и поэтому написал авторам электронное письмо... Попросить отправить им мой набор данных для тестирования - отличная идея, я добавлю это как вариант в свои будущие электронные письма... Да, я параноик по поводу обмена мой код, как и мой, не опубликован, тогда как их код опубликован, поэтому я не могу украсть их работу, которая уже опубликована... И да, я спрошу у своего руководителя. Еще раз спасибо за ваш подробный ответ.
Обратите внимание, что иногда полезно реализовать идеи других людей, потому что вы можете легко комбинировать их подход со своим. В этом смысле эта первоначальная «пустая трата» времени может впоследствии дать несколько преимуществ. Если вам удается быть парнем, который на самом деле знает, как реализовать все (или самые важные) конкурирующие методы, это даст вам серьезное преимущество позже, когда другие люди попытаются догнать вас.
<<"Я не доверяю им свой код src". И теперь вы знаете, почему люди не хотят делиться своим кодом.>> Это довольно странное беспокойство, учитывая, что их статьи уже опубликованы.

Воспроизводимость в информатике является важной областью для улучшения. Разумно ожидать, что авторы предоставят исходный код для алгоритмов, которые они представляют. Я слышал, что некоторые журналы и конференции оказывают давление на авторов, чтобы они сделали исходный код общедоступным (хотя лично я с этим не сталкивался).

По моему опыту, большинство ученых делают свой исходный код доступным. Невыполнение этого условия вызывает серьезные сомнения в легитимности их результатов и противоречит обычной предпосылке общественной науки. Это также довольно сложно оправдать, поскольку совместное использование исходного кода не требует затрат.

Быть доктором компьютерных наук, безусловно, означает не повторное внедрение существующих алгоритмов, за исключением, может быть, педагогических соображений. Вы правы, это пустая трата времени. Просто нет веских причин делать это, когда код можно разместить на github бесплатно!

Хорошая стратегия заключается в следующем.

  • Начните с соответствующего автора или первого автора. Скажите им, что вы делаете, что вы собираетесь цитировать их работу и что вы хотели бы сравнить свой метод с их. Будьте сердечны и не стесняйтесь говорить им, что вам нравится в их работе. Скорее всего, это крутой человек.
  • Если они не отвечают после разумной задержки, скажем, через неделю, отправьте практически одно и то же электронное письмо всему списку авторов, объясните, что у вас возникли проблемы со связью с соответствующим автором, и узнайте, кто находится в таком положении. говорить от имени группы. Это еще не провал для меня.
  • На этом этапе они должны предоставить свой исходный код. Если они этого не сделают, будет справедливо спросить, почему нет. Поскольку это опубликованная работа, есть своего рода предпосылка, что они должны сделать ее доступной, за исключением случаев, когда что-то действительно делает это проблемой. Это довольно подозрительно, если они этого не делают. Вы также можете напомнить им, что вы не хотели бы допустить ошибку при выполнении их работы, чтобы сравнение было законным.

Не беспокойтесь о том, что вы «никто». Идея о том, что исследователь должен реагировать только на людей с высоким статусом, просто нелепа. Однако вам нужно знать, что выдающийся исследователь может получать много входящей информации. Если они профессионалы, они настроили сортировку для этого. Лучше всего сделать так, чтобы им было легко отвечать, и они, вероятно, будут рады помочь вам, студенту, которым они когда-то были.

Иногда они не рады предоставить исходный код (по причинам патентования / авторского права или из-за «грязного кода для стирки»), но могут предоставить двоичный код. Предложите это как вариант.