Soru:
Yazarların sorulduğunda kod örnekleri vermeyi reddettiğini belirtmek uygun mu?
Coconut
2020-04-27 06:41:02 UTC
view on stackexchange narkive permalink

Bilgisayar bilimlerinin bir alt alanında çalışıyorum. Belirli bir veri setinde son teknoloji performansa ulaştığını iddia eden saygın bir konferansta yayınlanan yeni bir makale (2020) vardı. Bu veri seti sıcak bir veri setidir ve araştırma grubumun bu belirli veri setiyle ilgili birçok makalesi var (en son teknolojiyi geliştiriyor). Yazarlara çok kibarca, oldukça karmaşık algoritmaları için kod örneklerini paylaşıp paylaşamayacaklarını sordum, reddettiler ve bana bunun mevcut olmadığını söylediler.

Meslektaşlarımdan birinin algoritmayı kodlaması 2 hafta sürdü ve performansını ve iddia edilen performansı doğruladı. Bu arada, veri setinde yeni bir dönüm noktasına ulaştık ve yeni bir teknolojiye ulaştık. Şu anda bir taslak yazıyoruz.

Şimdi, yardım edemem ama tüm bu deneyimden kötü bir tat alıyorum. Özellikle çok önemli bir veri setinde son teknoloji olduğunu iddia ediyorlarsa, kodlarını neden paylaşmayacaklarını anlamıyorum. Çoğu makale, en son teknolojiyle bir dereceye kadar karşılaştırılmalıdır ve bu nedenle, temelde, bu spesifik alandaki tüm araştırmacıları, kendi araştırmalarını yayınlamadan önce kendi çalışmalarını yeniden oluşturmak için yavaşlatıyorlar.

Şimdi sorum şu, THEIR algoritmasının uygulanmasının bizim uygulamamız olduğuna ve onlara kodları için ulaştığımıza ve reddettiklerine dair bir not eklemem tavsiye edilir mi?

Çoğaltma krizi denir.Özellikle seninle hiçbir ilgisi yok.Herkes onunla yüzleşiyor
@SSimon:, meslektaş algoritmayı kağıttaki açıklamadan kodlayabildiğinden ve performansını doğrulayabildiğinden, bu çoğaltma krizinin * bir örneği değildir *.(Hala hoş olmaması (TM) başka bir soru IMHO)
Peki neden sordu?
@SSimon: (OP'nin meslektaşına) da hoş değilsem: çünkü OP'nin meslektaşı çalışmayı atlamak istedi kağıdı kopyalayın.Sadece hesaplamayı tekrarlamak istedi.Bu nedenle, OP'nin meslektaşının replikasyon krizine (replikasyonların yapılmadığı kısım) katkıda bulunacağı söylenebilir, ancak neyse ki koşullar onları engelledi.
@cbeleitesunhappywithSX: Birisinin bir algoritmayı kodlamak için 2 hafta harcamaya zorlanması, sadece kağıda yazılabileceği için şanslı olduğunu düşünmüyorum."işi atlamak" burada uygun değil.Kağıtların kod veya kanıt içermesinin kötü olduğunu mu söylüyorsunuz?Hakem, makalelerin ayrıntılarını kontrol etmek yerine her zaman yeniden oluşturmalı mıdır?
@user111388: Bir kağıtta kod bulunmasının kötü olduğunu söylemiyorum.Bunu takdir ediyorum.Ancak aynı zamanda, pratikte söz konusu kağıtların doğrulama miktarını daha da azaltacağını anlıyorum.İkinci yorum hala büyük ölçüde çoğaltma krizleri bağlamında: bir replikasyon krizi * olduğunu bilmek, OP'nin ilk amacı bu olmasa bile, bir makalenin tamamen doğrulanmış olmasının şanslı olduğunu düşünüyorum.Çoğaltma krizinin ana nedenlerinden biri, çok az çoğaltma yapılmasıdır.Bu 2 haftalık çalışmanın doğru bir şekilde takdir edilmesi gerekiyor!Onlar çok daha fazlası
... diğer grubun kodunu kullanarak elde edilebilecek bir şeyden.Yine de, kodun mevcut olmasının, kağıdı doğru şekilde doğrulamaktan caydırmaması gerektiği konusunda haklısınız.Yani, kodun mevcut olması ve doğrulamak için 2 hafta harcanması daha da iyidir.Ancak: OP'nin grubu şu anda kör doğrulama olarak adlandırabileceğimiz bir şey yapıyor, yani koda erişim olmadan.Mevcut kodla doğrulama, benim alanımda olağan olana göre zaten büyük bir ilerleme olurdu, ancak bunu bağımsız bir doğrulama olarak görmeyiz.
@user111388:, @ cbleites'in söylediklerini belki özetlemek için: Bir kağıt kodunu kullanıma sunduğunda bu iyidir.Bir algoritmanın bağımsız yeniden uygulamalarına sahip olmak çok farklı bir şekilde * değerlidir *.
Bir keresinde bir makalenin yazarlarından bazılarına kaynak kodunu sordum çünkü makaleleri yeni algoritmalarının işlevsel bir versiyonunu uyguladıklarını iddia ediyordu.Bir çok ileri geri hareketten sonra isteksizce kodlarını paylaştılar ve bu hiç işe yaramadı.Yine de algoritmaları sağlamdı ve onu sıfırdan uyguladıktan sonra kodum işe yaradı.Bu nedenle, kodlarının paylaşmamayı tercih ettikleri sorunları olması oldukça olasıdır.
Burada ne olursa olsun, uygulamanızı uygun bir lisansla github'a (veya benzer depoya, örneğin zenodo) koyun ve herkesin görmesine ve kullanmasına izin verin.
Kodu aldıysanız, kodu yine de doğrulamanız gerekir, bu yüzden önemli bir şey değil.
Herhangi bir faaliyette bulunurken, kendinize şu soruyu sormanız genellikle yararlıdır, "Bunu yaparak neyi başarmak istiyorum?"Bu durumda, diğer araştırma ekibine kızmış gibi görünüyorsunuz ve "takım oyuncusu" olmadıkları için onlara biraz sosyal acı vermek istiyorsunuz ve bu hedefe ulaşmak için kağıdınızı kullanmak istiyorsunuz.İnanıyorum ki, onları olumsuz bir şekilde ele alarak, kendinizi küçük gösterme riskini aldığınıza inanıyorum, onları eleştirdiğiniz için değil, bunu yapmak için kağıdınızı kullandığınız için.Bence burada kendine zarar verme potansiyeli, bu yolda ilerlemek için çok büyük.
Sorunuza bir cevap değil, ancak yazarların bu tür şeyler için kontrolü dışında nedenler olduğunu belirteceğim.Ulusal laboratuarlarda çalışıyorum.Sık sık makaleler yayınlamamızı * isteyen * (işi paylaşmak iyidir), ancak kamuya açıkladığımız herhangi bir kod için çok yıllık bir inceleme sürecimiz olan (hükümet politikaları her zaman kesin değildir) hükümet sponsorlarımız vardır.Garip, ancak algoritmalarımızı makalelerimizde doğru bir şekilde karakterize etmek için elimizden gelenin en iyisini yapıyoruz!
On yedi yanıtlar:
lighthouse keeper
2020-04-27 12:52:16 UTC
view on stackexchange narkive permalink

, THEIR algoritmasının uygulanmasının bizim uygulamamız olduğuna dair bir not eklemeniz önerilir

Kesinlikle evet. Bu, deneyiniz için önemli bir bağlam sağlar ve bu nedenle okuyucu için değerli bilgilerdir.

Daha da iyisi, algoritmalarını uygulamanızı herkese açık hale getirebilirsiniz, böylece gelecekteki yazar grupları aynı şeyle karşılaşmaz sizin yaptığınız gibi (ve makalenize atıfta bulunacağız).

kodlarını öğrenmek için onlara ulaştığımızı ve reddettiler mi?

İşte bu sorulacak daha hassas soru. Durumu doğru bir şekilde temsil edeceğinden, bunu yapmak kesinlikle meşru olacaktır. Ancak böyle bir ifadenin sosyal bir sonucu vardır, bu da yazarların biraz olumsuz bir ışık altında görünmeleridir (belki de haklı olarak). Dikkatli ilerleyin.

Belki suçlayıcı tonu hafifletmek için pasif sesle ifade edilebilir: "Kod elde edilemedi."
@henning--reinstateMonica ve işte bu şekilde belirsiz ve yararsız hale gelir.Her şeyin söylenmesi gerekmez, ama söylemek istediğinizde kibar bir tavırla nasıl olduğunu söyleyin.Okuyucuda şüphe uyandırdığını da görebiliyorum ("sadece bir e-posta gönderemezler mi? Bu ne kadar zor"), yazım hataları olmadan kağıtları önceliklendirmeme benzer çünkü bir bakışta olmama ihtimalleri daha yüksek gibi görünüyoryanlış veya önemsiz.
Bunu daha önce özellikle sıcak konularda görmüştüm.Gazete, kod halka açık olmadığından veya talep üzerine olmadığından, yöntem X için bir kıyaslama sağlamak için kendi uygulamalarını kullandıkları satırlarda bir şeyler söyledi.Bence "Kod mevcut değildi" çizgisindeki bir şey hiç de belirsiz değil.Ayrıca, ayarlamaları gereken herhangi bir uygulama veya parametre detayını ve orijinal yayında bu parametreler için bir değer olup olmadığını veya kullanılacak parametre değerlerini nasıl belirlediklerini belirtmeyi de sağladılar.
Algoritma uygulamanızı herkese açık hale getirin.Böylece, diğer grup uygulamanızı kodlarına göre kontrol edebilir.Algoritmalarının kötü görünmesine neden olan hata yaptıysanız (bazı şeyler olabilir), sizi bilgilendirebilir ve sorunu vurgulayabilir.Diğer grubun kodlarını kullanıma sunmamasının nedeni çok fazla olabilir, Hanlons razer geçerli.Makalenin okuyucuları, diğer grubun algını yeniden uygulayarak sizden kendi sonuçlarını çıkarabilirler.
@Luc Pasif ses genellikle suçlamaları önlemek için kullanılır.Bu bir gerçeği atlıyor, ancak bu gerçek, kodun elde edilemediği gerçeği tartışmalı bir şekilde alakalı değil.Kodu almak, bir e-posta göndermek kadar basit olmayabilir ve bunun tamamen reddettiğini vurgulamak, diğer araştırmacıları olumsuz bir şekilde değerlendirirken muhtemelen kimseye yardımcı olmaz.
Bence fazla abartılmadan net olabilirsin."Orijinal kod henüz mevcut değil", "Orijinal kodu elde edemedik.".Daha sonra kodu yayınlarken, iyi niyetle vb.Onlara kapıyı açık bırakırsanız özellikle yararlıdır.
Sadece şu şekilde söyleyin: "X kağıdının kodu mevcut değil ve istek üzerine yazarlar tarafından sağlanmadı."Bu suçlayıcı değildir, okuyucu için değerli bir bilgidir (kodu almakla da ilgilenebilir) ve yazarların neden reddettikleri, reddetmek için iyi bir nedenleri olup olmadıkları vb. Hakkında hiçbir şey varsaymaz.bunu yazmanın kabul edilemez olduğunu düşünüyor, sorun onlar.
@Luc İlgili anlamı "böcekler bizim" dir.İhmal edilen kısım "Yazar, kodunu paylaşmayı reddetti" dir.Kodu paylaşmadıklarının belirtilmesi gerekip gerekmediğini tartışabilirsiniz, ancak en azından kendi kodunuzu kullandığınızı belirtmelisiniz, özellikle de orijinal kodda olmayan hatalar (veya hata düzeltmeleri) içeriyorsa.
Graham
2020-04-27 17:23:44 UTC
view on stackexchange narkive permalink

Bir yazılım mühendisi olarak karşıt görüş vereceğim.

Kaynak kodu bir algoritma değildir. Bu, umarım amaçladıkları algoritma olan ve umarım doğru performans gösteren bir şeyin "tozlu ayna" versiyonu. Yazılım bir yazılımdır ve kodlayıcılar insan olduğundan, bu "umarım" parçaların beklendiği gibi olmayabileceği birçok yol vardır. Algılanan iyileştirmenin, uygulamanın istenmeyen bir özelliğinden kaynaklanması ve / veya algılanan iyileştirmenin, başka yerlerde zararlı etkileri olan bir uygulama değiş tokuşunun bir sonucu olması bile mümkündür (muhtemel olmasa da).

Genel bilim terimlerinde, algoritma test ettiğiniz hipotezdir; ve kaynak kodu, laboratuvar cam eşyalarınız, devre kartlarınız, interferometreniz veya hipotezi test etmek için kullanacağınız diğer ekipmanlardır. Bilimin genel bir ilkesi, sonuçların yeniden üretiminin bağımsız olması gerektiğidir. Bu, aynı reaktif şişeleriyle aynı cam eşya üzerinde aynı testleri körü körüne çalıştıracak ikinci bir kişiye sahip olmadığınız anlamına gelir - bunun yerine tamamen ayrı bir ekip, bunları doğrulamak için ilk prensiplerden elde edilen bu sonuçları yeniden üretir. Bir hipotezin bağımsız test edilmesi, bunu yalnızca bir hipotezden sağlam bir teoriye taşıyan şeydir.

Algoritmayı bağımsız olarak uygulayarak, orijinal sonuçları yeniden üretmede hayati bir bilimsel rol oynadınız. Orijinal yazarlar size basitçe kaynak kodunu vermiş olsaydı, algoritmanın yeniden üretilmesi ve test edilmesi olmazdı. Size kaynak kodunu vermişlerse, kağıdın fotokopisini "sonuçlarını çoğaltmak" olarak sayabilirsiniz. :)

Son teknolojiyle ilerlemek istiyorsunuz ve bu harika - bu, alanınızda hırslı olduğunuzu gösteriyor. Ancak buna "teori" diyebilmek için bir hipotezi bağımsız olarak doğrulamak zaman kaybı değildir ve bu temeli yerine getirmek için yavaşlamak, "bilim" bölümü ise sizi kötü bir tat bırakacak bir şey değildir. bilgisayar bilimi "gerçektir. Aksi takdirde bilim yapmıyorsun, hack yapıyorsun; kendi açısından değerlidir, ancak bilim değildir.

Yapıcı bir araştırma topluluğuna yardımcı olmak için kaynak kodunu paylaşmanın en iyisi olduğunu düşünüyorum, ancak size katılıyorum.İyi yazılmış her makale için aynı sonuçları elde eden bir uygulama türetmek mümkün olmalıdır.Bu düşünülebilirse, kaynak kodu zorunlu değil, hoş ve yararlı bir eklentidir.
Algoritmaların pratikte bazı ilgili kıyaslama setlerinde karşılaştırıldığı CS'nin en azından bazı alt topluluklarında, yeni algoritmaları açıklayan makalelerden elde edilen sonuçların, hesaplama süreleri rapor edildiğinde etkili bir şekilde tekrarlanamayacağı iyi anlaşılmıştır (bu genellikleargüman).Bu nedenle, yazarın sağladığı uygulamaları kullanarak bağımsız komiteler tarafından makalelerin tekrarlanabilirlik değerlendirmeleriyle deneylerin tekrarlanabilirliğini sağlamaya odaklanılmıştır.Bu yüzden tekrarlanabilirliğe sahip olmak harika olsa da, yüksek lisans öğrencileri tarafından oluşturulan uygulamalar 100'lerce ...
... onları kağıda dökemeyecek kadar basit tasarım kararları muhtemelen hiçbir zaman tam olarak karşılaştırılabilir olmayacaktır.Bilimsel açıdan bu elbette iyi bir durum olmasa da bu tür topluluklar alternatif eksikliği nedeniyle çalışmalarını sürdürüyor.
Geriye dönük olarak, bu durumda üreme pozitif çıktıktan sonra (vay be!), Buna sahip olmak güzel.Daha büyük zorluk, sonuçların yeniden üretilemediği durumdur ve orijinal uygulama olmadan ne olduğunu tespit etmek zor hatta imkansızdır.
@lighthousekeeper Bu olduğunda katılmıyorum.(Bu "ne zaman", "eğer" değil - hepimiz yanılabiliriz!) Ancak yeniden üretiminize ilk ilkelerden başlamazsanız, sonuçlarınızın diğer takımdan aldıklarınıza göre önyargılı olma riskini alırsınız.
Konu dışı, ancak: Kanıtları yoksa kağıtlarının değeri ne olabilir?Çalışma kaynak kodu aynı zamanda algoritmalarının doğruluğunun bir kanıtıdır.
Kaynak kodu genellikle algoritmanın tek eksiksiz açıklamasıdır.Makaleler algoritmanın bir taslağını verir ve bazı önemli ayrıntıları tartışır, ancak tam tekrar üretilebilirlik için nadiren yeterli ayrıntı verirler.Sonuçta, aynı bilgi kaynak kodda daha okunabilir bir biçimde mevcut olduğunda, onlarca düz yazı sayfasını okumak isteyenler.Ayrıca yayınlanan algoritma, uygulamanız gereken algoritma bile olmayabilir.Algoritmayı teorik analizde daha iyi hale getiren bir dizi ayrıntıya ve onu gerçek dünyada daha iyi yapan başka bir kümeye sahip olmak oldukça yaygındır.
@peterh-ReinstateMonica Hayır, kaynak kodunuzdaki * sonuçlar * algoritmanızın * doğru olabileceğinin * kanıtıdır."Kanıt" yanlış kelimedir.Makalelerinin değerine gelince, Alan Turing'in çalışmasını yürüteceği bir Evrensel Turing Makinesi hiçbir zaman yoktu ve Rudolf Kalman, Kalman filtrelerini gerçek zamanlı olarak çalıştıracak bir bilgisayara sahip değildi.Daha basit bir düzeyde, bağlantılı listeler veya kabarcıklar için algoritmaları kağıt üzerinde veya bir beyaz tahta üzerinde mükemmel bir şekilde gösterebilirsiniz - röportajlar için yaptığımı biliyorum.Bu yüzden bu bilgisayar * bilimidir * ve sadece bilgisayar korsanlığı değildir.
@JouniSirén Kaynak kodun herhangi bir şeyin tam açıklaması olduğunu düşünen kimse, kendisini bir bilim adamı veya kodlayıcı olarak tanımlamamalıdır çünkü hem bilimde hem de kodlamada yeterlilik eksikliğini gösterir.Uygulama farklılıklarından bahsettiğiniz gerçeği, makalenin neden var olması gerektiğine ve algoritmanın neden yeniden üretilebilmesi gerektiğine dair çok açık bir işaret olmalıdır, çünkü bu uygulama sorunları sizi köşe durumlarda öldürecektir.(Gerçek zamanlı kontrolde bu, kelimenin tam anlamıyla öldürmek anlamına gelebilir bu arada.)
Program yeni gelişigüzel girdiler için doğru çözümler sunuyorsa, bu çok önemlidir.Yani katılmıyorum.
@einpoklum Önemli olan, * algoritmanın * doğru çözümler sağlamasıdır.* Program * bu algoritmanın (umarım!) Bir uygulamasıdır.Program, makalenin tanımlamadığı herhangi bir şeyi yapıyorsa, yazar (neredeyse tanım gereği) ya toplulukla paylaşmak söz konusu olduğunda kötü niyetle çalışmaktadır ya da makalesini doğru bir şekilde yazmamıştır ve sonuçlar ve makaleyayın için reddedildi.
@Graham Bu cevaba kesinlikle katılmıyorum.Başka birinin sonuçlarını * çoğaltma * girişimi *, başarısız olursa sonuçları hakkında şüphe uyandırmalıdır.Çoğaltmanın bu hayati yönü, sonuçlarını üretmek için kullandıkları kodun gizli tutulmasıyla ciddi şekilde zarar görür ve başarısız bir çoğaltmanın değerini ciddi şekilde azaltır.Daha da kötüsü, sonuçları gereksiz yere çoğaltmak için gereken çabayı artırarak çoğaltma girişimlerini caydırır.Bu, orijinal sonuçları çok daha az kullanışlı ve güvenilir kılar, çünkü kasıtlı olarak tahrif edilmesini zorlaştırır.
@DavidSchwartz Bu arada, Dünya gezegeninde, bilgisayar bilimi kodla değil, algoritmayla ilgilidir.Akran değerlendirmesi, hatalı olmasına rağmen, hataları yakalamak için tasarlanmıştır.Higgs bozonu keşifçilerinin sonuçları çoğaltma girişimlerine zarar verdiğinden şikayetçi değiller çünkü bunu yapmak isteyenlere büyük hadron çarpıştırıcıları sağlamadılar.Çok kalitesiz ancak yeni bir kavramı geçerli bir şekilde kanıtlayan bir uygulama, hala iyi (bilgisayar) bilimidir.
Kaynak kodun mevcut olmamasının pek çok geçerli nedeni vardır: kodlayıcı mezun olmuş olabilir ve kodu dağıtım için temizleyemeyebilir, kod kaybolmuş olabilir, araştırmacının finansman kaynağı kodun yayınlanmasını kısıtlayabilir,yazarların, kodlarını kullanmaya çalışırken başkalarına destek olacak zamanları olmayabilir veya diğer araştırmacıların kendileriyle rekabet etmesine yardımcı olmak için kod sağlamak zorunda olmadıkları konusunda farklı bir dünya görüşüne sahip olabilirler, vb.
@Graham Kaynak kodu, sonuçları elde etmek için kullanılan algoritmanın tek eksiksiz açıklamasıdır.Makalede yayınlanan algoritma ilgili bir algoritmadır, ancak genellikle farklı bir amaç için var olan farklı bir algoritmadır.Örneğin, yayınlanan algoritmanın amacı asimptotik sınırları kanıtlamak olabilir.Bu gibi durumlarda, algoritmayı 1000 kat yavaşlatan ancak log n kat daha hızlı oturum açan değişiklikler kesinlikle iyi bir değiş tokuş.
@JouniSiren Korkarım ki doğru olanın herhangi bir kısmı yok.Sonuçlar farklı bir algoritma ile elde edilmişse, o zaman mutlak bir minimum *** olarak makale, yayınlanan algoritma ile pratik uygulama arasındaki farkları ve bu farklılıkların doğasında bulunan ödünleşmeleri ayrıntılı olarak açıklamalıdır.Bu ödünleşmeler, kendi başlarına önemli bir parçadır.Kaynak koda sahip olmanın yararlı olduğuna itiraz etmiyorum, ancak kağıdın herhangi bir değeri varsa, o zaman kaynak kodu kağıttan yazılabilir.Yapamazsa, gazetenin yazarı beceriksiz bir şarlatandır.
@Graham Gerçekçi olmayan beklentileriniz var.Bir makalenin amacı, derginin / konferansın hedef kitlesine temel sonuçları ve bunların arkasındaki temel fikirleri açıklamaktır.Gereksiz ayrıntılardan kaçınarak kağıtları okunabilir tutmak için genellikle katı bir sayfa sınırı vardır.Ayrıntıları açıklayan ekler veya harici kaynaklar olabilir.Algoritmalar için, kaynak kodu tercih edilen formattır, çünkü daha kısa ve daha okunabilirdir ve aynı ayrıntıların düz yazı açıklamasından daha az hata içerir.
@Eric, eğer biri hızlı bir e-postaya büyük hadron çarpıştırıcısının bir kopyasını ekleyebilirse, bunu yapmayı teklif etmek kibar olur.
@Eric: kodun kullanıma sunulması gerekirdi.Kodu dağıtım için temizlemenin, yapmamanın, böylece daha sonra kaybetmek için zamanın olmasının bir anlamı yok, yardım sağlama gibi zımni bir yükümlülük yok.Finansman kaynaklarına gelince, kodun dağıtımını kısıtlayan herhangi bir kaynağın farkında değilim.Lanet kodu bazı halka açık barındırma platformlarına boşaltın ve platformdan ona bağlantı verin.Bunu yapmamak sadece yanlış uygulamadır.
@a3nm Fikirlerinize hoş geldiniz, ancak lütfen bunların ne olduklarını kabul edin.Kaynak kodunu yayınlamaya gerek yoktur.Sonuçların kamuya açıklanmamasına neden olan durumlarla kesinlikle karşılaştım (ve burada onlar hakkında bir soru yayınladım).
Wolfgang Bangerth
2020-04-27 07:49:06 UTC
view on stackexchange narkive permalink

Yapabilirsin ve belki de, eğer mümkünse akademik kodların paylaşılması gerektiğini düşündüğünü açıklığa kavuşturmak için yapmalısın. Pek çok bilim insanı, kodların paylaşılmasının, araştırmayı kopyalamayı ve ayrıca hataları bulmayı kolaylaştırdığı için daha iyi bilime yol açtığı konusunda hemfikirdir.

Aynı zamanda, herkes böyle hissetmez ve siz de buldunuz bu fikirden biri. Açık yazılıma inanıyorsanız, onları "geri kalmış" ve "başkalarının bulgularını kopyalamasını kolaylaştırmaya isteksiz" olarak kamuya açıklamak etik olarak yapılacak doğru şey olabilir, ancak aynı zamanda onları yanlış yoldan ovalayıp yaratabilir " "kötü tat" ifadenizi kullanmak için ağızlarında.

Soru şu: Prensipte ne kadar ısrar etmek istiyorsunuz ve meslektaşlarınızdan birini potansiyel olarak ne kadar yabancılaştırmak istiyorsunuz? Bu soru büyük olasılıkla size ve kariyerlerinizin neresinde olduklarına bağlıdır.

Katılıyorum.Bence birçok çevrede iç düzenlemeler nedeniyle kodun paylaşılmamış olması da mümkün.Örneğin, yazarlar, bilgi alanındaki genel gelişmeleri yayınlamalarına izin veren (örneğin, geliştirilmiş bir algoritma) ancak kaynak kodunu (veya kullanılan veri setlerini) daha sıkı bir şekilde kontrol eden bir şirkette çalışıyor olabilir.Yayıncılık tamamen akademik değildir.İlk iki yapay zeka konferansındaki konferans sunucularının yalnızca% 6'sı kodu paylaşıyor.https://www.sciencemag.org/news/2018/02/missing-data-hinder-replication-artreative-intelligence-studies
@TomAnderson: Evet, mükemmel bir nokta.
cbeleites unhappy with SX
2020-04-27 15:49:11 UTC
view on stackexchange narkive permalink

Tavsiyem, durumdan olduğu gibi en iyi şekilde yararlanmanızdır: Makaledeki açıklamadan uygun bir kopya yaptınız (kodlarını "sadece" çalıştırmanın aksine) ve iddialarını doğruladınız. Bunu şu şekilde yayınlayın: bu uygun bilimsel çalışmadır.

Kendi çıkarınız için, bu kopyayı tamamen kendi özgür iradenizle yapmadığınızı söylemeyeceğim.


TLDR:

Kodu paylaşmamanın (TM) hoş olmadığını tamamen kabul ediyorum (ayrıca aşağıya bakın).

Açıkladığınız şeye göre, kodun bu şekilde bulunmaması, kodun sizin için mevcut olandan daha fazla bilimsel ilerlemeye yol açmıştır:
Aşağıda açıklanan algoritmayı sıfırdan uygulayarak iddialarını doğruladınız kodlarına erişimi olmayan kağıtları. Bunu makalenizde açıklamak bilimsel olarak önemlidir çünkü bu, bilgisayarlarınızda "yalnızca" kodlarını çalıştırmaya kıyasla bir sonraki daha yüksek düzeyde yeniden üretim sağladığınız anlamına gelir: ayrıca, kağıtta açıklamanın olduğunu da doğruladınız iddiaları yeniden üretmek için yeterlidir.

IMHO, birçok alanda tekrarlanabilirlik krizimiz olduğu için bu özellikle önemlidir.

Kod paylaşmak, alanımda tekrarlanabilirlik olarak adlandırılabilecek şeye yardımcı olur (analitik kimya), ancak bir çalışmanın / makalenin kopyalanması veya kopyalanması bundan daha fazlasıdır.

Evet, kod paylaşımı güzeldir, çünkü çoğaltmak istemeyenler için pek çok işten tasarruf sağlar, genellikle hangi hesaplamaların yapıldığını açık bir şekilde açıklamanın en kolay yoludur ve ayrıca çok faydalıdır okuyucu tarafından yanlış anlamaların takibinde. Yine de, kod paylaşımı, herkesin (veya çok fazla kişinin) düzgün çoğaltma / çoğaltmaya harcanan çabayı atlamasına yol açarsa, ters etki yaratabilir. yeniden üretilebilirlik krizi.

Dolayısıyla, biraz parçalanmış durumdayım:

  • Kod paylaşmamaları hoş değil.
  • Uygulamayı yalnızca , kod mevcut olmadığı için sıfırdan yaptığınızı söylemek, aynı zamanda, bir seçeneğiniz varsa, kendi tarafınızdan o kağıdı daha kapsamlı bir şekilde doğrulamayı atlayacağınızı kabul etmek anlamına da gelir. Ayrıca hoş değil.

İdeal durum, OP'nin grubunun makaleyi tam olarak doğrulamış olması ve makale yazarlarının koduna erişim sağlaması olabilirdi.

Kişisel olarak, bu makalenin çoğaltılmasıyla uğraşmak için bilimsel olmayan herhangi bir nedene değinmiyorum.

Burada idealden daha düşük davranışları belirtmek için (bilimsel ilerleme için) "hoş değil" ifadesini kullanıyorum ama aynı zamanda açıkça izin verilen davranış aralığı içinde. Açık olmak gerekirse, kimseyi başka grupların çalışmalarını yeniden üretmeye zorlamak istemiyorum. Aynı zamanda, tüm gruplar bu tür bir "ev ödevi" yapmayı reddederse, çoğaltma krizi riski artar.


Bilimsel açıdan kesinlikle sorunlu olduğunu düşündüğüm paylaşmama seviyeleri vardır. bakış açısı:

  • Uygun çabalarınız iddiaları yeniden üretemez ve yazarlar size rehberlik etmeyi reddederler (ister kodu paylaşarak ister kodunuza bakarak ve size neyin farklı yapılması gerektiğini söyleyerek)
  • Makalede kodu paylaşacaklarını iddia ediyorlar veya dergi yönergeleri paylaşacaklarını şart koşuyor ama reddediyorlar.

Şimdiye kadar soru değil bu noktalardan herhangi birinin geçerli olduğunu belirtin.


Anonim Fizikçinin cevabına uymak için: Bir araştırma enstitüsünde çalışıyordum, burada resmi hattın ne kodun ne de verilerin kağıtla birlikte yayınlanmadığı ("makul talep üzerine mevcuttur" resmi ifadeydi) - sadece araştırma kodumu göstermekle kalmayıp aynı zamanda açık bir lisans altına koymayı da isterdim hiç önemli değildi.
Bu nedenle, söz konusu makalenin yazarı olsaydım, resmi idari izin olmadan size kodu veremeyeceğime dair kibar bir yanıt alırdınız ve bu konuda direktörle iletişime geçebilir misiniz? Bununla birlikte, enstitülerin, kodu paylaşmayla ilgili olarak iletişime geçilen kişilere, üst yönetime daha fazla iş getirmeden negatif yanıt vermesi gerektiğini belirttiğini kolayca hayal edebiliyorum ...

Bu deneyimden: Yazarları kodu göndermedikleri için eleştirirseniz, lütfen suçu doğru kişilere yüklediğinizden emin olun.

"Aynı zamanda, tüm gruplar bu tür bir" ev ödevi "yapmayı reddederse, çoğaltma krizi riski artar."Bilgisayar bilimlerinde diğer disiplinlerle karşılaştırıldığında önemli bir fark, orijinal yazarlar kodlarını ve verilerini (uygun belgelerle) sağlarsa çoğaltma çabasının minimum olmasıdır.İyi konferanslarda ve dergilerde, yazarların bunu yapması giderek daha yaygın bir uygulama haline geliyor.
@lighthousekeeper: Ancak bu tam bir kopya değildir: Kağıdın bu kodun yeterli bir tanımını içerip içermediğini kontrol etmeden bu kodu kullanırlarsa, çaba çok azdır.Evet, burada alana özgü farklılıklar olabilir (benim alanım, analitik kimyam, artan zorluk ve bağımsızlık seviyelerinde tekrarlanabilirlik, tekrarlanabilirlik ve tekrarlanabilirliğe bakar. Bizim için, sadece bir tekrar olan bir replikasyon dememek çok önemlidir.)Sizinle tamamen aynı fikirdeyim a) Yazarların paylaşması gerekiyorsa, paylaşmamaları ciddi bir ihlaldir ve b) çalışmalıdır ...
... bunu daha da talep etmeye doğru.Ancak yayın böyle bir zorunluluk altında olmadıkça, hoş değildir, ancak akademik bir suistimal değildir ve OP bunu siyasi bir görüş dışında eleştiremez (ki bu iyi ve övgüye değerdir, ancak makalelerinin bilimsel içeriği değildir).
DCTLib
2020-04-27 19:33:46 UTC
view on stackexchange narkive permalink

Yazarların neden reddettiğini bilmeden, diğer yazarların "iyi" mi yoksa "yaramaz" mı olduğunu söylemek biraz zor.

Kod paylaşımı söz konusu olduğunda bazı yasal ve kurumsal tuzaklar var. Örnek olarak, üniversite somut araştırma çıktısının patentlenebilir malzeme içerip içermediğini kontrol etme hakkına sahip olabilir. Bu kontrol devam ediyorsa yazarların kodlarını paylaşmaları yasaklanmış olabilir.

Mümkünse bu etkileşime olumsuz bir ışık tutmaktan kaçınmanızı öneririm. Yine de okuyucunun kendi uygulamanızı yazdığınızı bilmesi önemlidir. Ayrıca, gözden geçiren için de önemlidir, çünkü gözden geçiren kişi, onu iyi uygulamadığınız için diğer yaklaşımın gereksiz yere kötü göründüğünü düşünebilir.

Çoğu makalenin eki ile birlikte yayınlanmayacak kağıdın geri kalanı. İnceleyenler için, kodu sizinle paylaşmanın bilinmeyen bir nedenle reddedildiğini, böylece kendi sürümünüzü uygulamanız gerektiğini belirten bir not ekleyebilirsiniz. Makalenin ana bölümünde, diğer yaklaşımın orijinal uygulamasını neden kullanmadığınızı belirtmek isterseniz, mevcut olmadığını, dolayısıyla kendi sürümünüzü uyguladınız ve emin önemli optimizasyonları kaçırmamak için her iki uygulamada da benzer özen gösterdiğiniz.

mjt
2020-04-27 16:08:16 UTC
view on stackexchange narkive permalink

Özellikle çok önemli bir veri kümesinde son teknoloji ürünü olduğunu iddia ediyorlarsa neden kodlarını paylaşmayacaklarını anlamıyorum.

Varsayımsal olarak , telif hakkı yasası kapsamında yasal olarak dağıtılamayan yazılımlar yapılabilir.

Bir kitabım varsa üzerine notlar yazabilir ve istediğim tüm bölümleri kesebilirim - ama yapabilirim t Değiştirilmiş kitabımın kopyalarını dağıtmak. Benzer şekilde, telif hakkıyla korunan bir Matlab kitaplığını yazarların tahmin etmediği bir şekilde genişletmek istersem, ondan kopyalayıp yapıştırabilir ve kendi kullanımım için istediğim kadar değiştirebilirim - ancak dağıtamam sonuçta türev çalışma .

İyi niyete sahip olmak istiyorsanız, onlar adına benzer iyi huylu nedenler olduğunu varsayabilirsiniz.

Elbette, bir alaycı yazarların mümkün olduğunca çok sayıda makaleyi bir çalışmadan ayırdıkları için ödüllendirildiğini ve açık bir şekilde devam eden makaleler varsa (bariz ince ayarlar veya diğer veri kümelerinde testler gibi) siz bu kağıtları yazana kadar kodu yayınlamayın ödeme yöneticilerinin ödüllendirdiği davranış.

Yasal olarak yeniden dağıtılamayan bir yazılım yapmak oldukça kolaydır: uyumsuz lisanslara sahip açık kaynak kitaplıklarını birbirine bağlayın.Bkz. Https://opensource.org/licenses;GPLv2'nin GPLv3 ile uyumsuz olduğu yaygın olarak bilinmektedir
Bu cevap, haklı olarak OP'de yer alan küçük bir soruyu ele almaktadır.Bununla birlikte, son satırdaki ana soru "THEIR algoritmasının uygulanmasının bizim uygulamamız olduğuna ve onların kodları için onlara ulaştığımıza ve reddettiklerine dair bir not eklemeniz tavsiye edilir mi?"Bu son noktayı da ele almanız faydalı olacaktır.
nabla
2020-04-27 16:53:57 UTC
view on stackexchange narkive permalink

Verilen bilgilerle özgün yazarların motivasyonunu değerlendirmek mümkün değildir. Sık sık açık kaynak bilimsel kod yayıncısı olarak düşünebiliyorum.

  1. Kodlarından daha fazla yayın yapmak istedikleri için kimsenin sonuçlarını kendi kodlarını kullanarak kopyalamasını istemiyorlardı (kesinlikle hoş değil, ama daha önce görüldü).
  2. Kodları başkalarının kullanabileceği bir durumda değildi (PhD-ware) ve onu temizlemek için insan gücüne sahip değiller.
  3. Tescilli kitaplıklardan yararlanırlar veya kodu paylaşmalarına izin vermeyerek dahili lisans sorunları yaşarlar.
  4. Kaçınılmaz teknik destek sorunlarından rahatsız olmak istemezler, bu, başkalarına kod sağlamakla birlikte gelir.

Ve liste devam ettirilebilir.

Yalnızca eldeki bilgilere göre hareket edebilirsiniz, yani şu anda kod açık bir biçimde mevcut değildir. Neyse ki, sonuçları yeniden üretebildiniz ve artık makalenizle birlikte kendi uygulamanızı yayınlamakta özgürsünüz, bu da kullanıcıları makalenizin yanı sıra orijinal makalenize de atıfta bulunmaya teşvik ediyor. Sonuçta, önemli bir bilimsel çalışma yaptınız ve şimdi kredilendirilmesi gerekiyor.

Makalenizde müstehcen olmanıza gerek yok. Başkalarının yapmadıklarını değil, yaptığınız şeyleri yazın. Şunları not edebilirsiniz:

Bu makalede ana hatları verilen uygulama, yazar A'nın ref. [A]. Mevcut uygulama, daha fazla bağımsız doğrulamaya izin verecek şekilde XX'den elde edilebilir.

Anonymous Physicist
2020-04-27 10:30:19 UTC
view on stackexchange narkive permalink

Araştırmanızın konusu açık kaynaklı yazılım olmadığı sürece, dergi makaleniz meslektaşlarınızı kaynak kodlarını yayınlamadıkları için eleştirmek için doğru yer değildir. Dergi makaleleri ve konferans bildirileri, meslektaşlarınız hakkındaki görüşlerinizle değil, oluşturduğunuz bilgilerle ilgili olmalıdır.

Herhangi bir mekanda meslektaşlarınızı eleştirmeden önce, kaynağı yayınlamanın onlar için makul bir seçenek olup olmadığını düşünmelisiniz. Bilmediğiniz yasal kısıtlamalar veya çok uygunsuz bir idari süreç olabilir.

Akran değerlendirmesi, şeffaflığı teşvik etmek için harika bir zamandır.

"Talebimize rağmen, algoritmanın orijinal uygulaması bize sunulmadı" gibi bir ifade.bir fikir değil, bir gerçektir ve algoritmayı yeniden uygulamanın neden gerekli olduğunu (muhtemelen farklı sonuçlarla) açıklamakla ilgili olabilir.İnsanlar yine de hoşnutsuz olabilir.
@lighthousekeeper Sizin gerçeğiniz hala eleştiridir ve açıkça bir görüşü ima eder.Daha uygun bir ifade olarak "Algoritmayı yeniden uyguladık" derim.Talep alakasız.
"Algoritmayı yeniden uyguladık", neden yeniden uygulamanın yapıldığı sorusunu gündeme getirebilir.OP, her iki uygulamanın da aynı sonuçları verdiği rahat bir durumda görünüyor.Sonuçlar farklı olsaydı, farklılıkların nedenini bulmak için ne yapıldığını haklı çıkarmak gerekirdi.Orijinal uygulama mevcut olmasaydı, tam olarak bunu belirtmek gerekirdi.Talep konuyla ilgili olacaktır, çünkü yazarlar açısından sadece "mevcut değildi" demekten daha fazla inisiyatif anlamına gelir.
Şahsen, benim ilgilendiğim kadarıyla, kodunuz yasal amaçlar için yeniden değerlendirilemezse, makaleniz yayınlanamaz.Yukarıdaki @henning'nin önerdiği gibi, "Orjinal kod elde edilemediği için algoritmayı yeniden uyguladık" gerçeklerini belirten pasif bir ifade, doğru yoldur.
@lighthousekeeper: bu bir gerçektir, ancak bilimsel bir gerçek değildir.Benim siyasi görüşüm, kamu parasıyla üretilen kodun halka açık olması gerektiğidir.Ancak, kodlarını göstermeleri için * zor * bir neden olmadıkça (örneğin, bunu söyleyen dergi yönergeleri veya hatta gazete), onları daha yüksek standartlarıma karşı yargılamaktan kaçınırım.
@cbeleites Bilimsel metodolojinin bir kısmı, yaptığınız şeyleri neden yaptığınızı açıklamaktır.Bu ışıkta, mesele yargıç değil, neden yeniden uygulamanın gerekli olduğunu açıklamaktır - ve başarısız bir yeniden üretim durumunda, yeniden üretim başarısızlığının nedenlerine ilişkin daha fazla kavrayış elde etmenin neden mümkün olmadığını açıklayın.
@lighthousekeeper Sonuçlarla ilgili değilse neden bir şey yaptığınızı açıklamanıza gerek yoktur.Bu durumda hangisi oldukça muhtemeldir.Soru üreme hakkında hiçbir şey söylemiyor.
@AnonymousPhysicist O halde bu alana özgü bir fark olabilir.Bilgisayar biliminde mantık, bilimsel yazının önemli bir parçasıdır.OP, "iddia edilen performansı doğruladıklarından" bahseder.Görünüşe göre, yeniden uygulanandan daha iyi performans sağlayan farklı bir algoritma buldular, bu nedenle orijinal algoritmanın performansının düzgün bir şekilde raporlanması çok önemli.
@lighthousekeeper Önerdiğiniz şey, sonuçlar için bir mantık değildir.Bu tartışmadan yoruldum.
Bilgisayar biliminde, metodolojinizin mantığını açıklamanız gerekir.
@lighthousekeeper: açıklanan durumu farklı okuyabiliriz (ve yalnızca OP bunu kimin doğru okuduğunu söyleyebilir): OP'nin grubunun yeni ve daha iyi bir algoritmaya sahip olduğunu sorudan anlıyorum.Son teknolojiyi oluşturan söylenen kağıttan daha iyi.Bunu göstermek için, sadece tekrar etmekle kalmayıp, o makalenin algoritmasını kopyalamak zorunda oldukları ortaya çıktı.Başarıyla yaptılar.Yani2 bilimsel ilerlememiz var: 1. yeni algoritmaları ve 2. önceki makalenin doğrulaması.
@cbeleites Doğrulama açısı, bir yeniden uygulama ihtiyacını olumlu yönde döndürmenin güzel bir yoludur (cevabınız için +1).Ancak ne yazık ki, CS'nin birçok alt alanında, bir çoğaltma kendi başına büyük bir ilerleme olarak görülmeyecektir.
@lighthousekeeper: :-) Öyleyse, OP'nin "en son teknolojinin doğrulanması" bölümü içeren yeni makalesinin, doğrulamanın olduğu kadar önemli olarak algılanmasına yardımcı olacağını umalım.(Doğrulamanın atlanmaması gereken bir angarya değil de bir ilerleme olup olmadığını düşünen bir tarafım var) (Bilginize, cevabınıza da olumlu oy verdim)
Basile Starynkevitch
2020-04-29 14:23:18 UTC
view on stackexchange narkive permalink

Yazarların sorulduğunda kod örnekleri vermeyi reddettiğinden bahsetmek doğru mu?

Bilgisayar biliminin bir alt alanında çalışıyorum. Belirli bir veri setinde son teknoloji performansa ulaştığını iddia eden saygın bir konferansta yayınlanan yeni bir makale (2020) vardı.

Birkaç sorun var.

FWIW, Fransa'da yarı akademik araştırma mühendisiyim ve Bismon (bir GPLv3 +) geliştirdiğim bir siber güvenlik laboratuvarında CEA LIST 'te çalışıyorum iki H2020 projesi tarafından finanse edilen yazılım: CHARIOT ve DECODER ve bu taslak raporda açıklanan)

  • Makalede açıklanan çalışma nasıl finanse edildi? Finansman kurumu askeriyse (ör. DARPA) finansman sözleşmeleri akademik yayınlar gerektirebilir ancak kodun veya veri setinin herhangi bir şekilde yayınlanmasına izin vermeyin. Ufuk2020 finansmanı bile verilerin yayınlanmasını yasaklayabilir veya verileri veya kodu yayınlamak için izin almak, genellikle herhangi bir akademisyen için sıkıcı olan çok sayıda bürokrasi çalışması gerektirebilir.

  • Bu veri kümesinin sahibi kimdir ve nasıl finanse edildi? Veri kümesinin toplanması zorsa (biyolojik verileri, örneğin Covid19 ile ilgili verileri veya nükleer endüstri ile ilgili verileri düşünün) erişilemiyor

  • Gizlilik sorunları veya kişisel veri sorunları var mı? Bu durumda GDPR gibi düzenlemeler alakalı

  • Hem veriler hem de kod örnekleri için hangi yasal sistem ve telif hakkı geçerlidir? Jean Tirole 'leri de okuyun çalışmaları, özellikle Josh Lerner ile basit açık kaynak ekonomisi konulu makalesi. Shoshana Zuboff kitaplarının ve makalelerinin (örneğin, Big Other: Surveillance Capitalism and the Prospects of an Information Civilization ) da alakalı olduğuna dikkat edin.

  • veri kümesi veya kod, gelecekteki araştırma hibeleri için bir varlık olabilir.

Akademinin küçük bir dünya olduğuna dikkat edin ( Ershov numarası ve daha da önemlisi Erdös numarası hakkında da okuyun). Resmi bir yazılı makalede bazı yazarların kod örnekleri vermeyi reddettiğinden bahsetmek geri tepebilir ve belki önümüzdeki birkaç yıl içinde akademik kariyerinizi olumsuz etkileyebilir. Yaygın uygulama ikidir: size kod ve veri sağlayan kişi ve kurumları teşekkür bölümlerinde belirtin.

Kodu veya veri setini yayınlamak daha önce ve açıkça araştırmada belirtilmemişse, çalışmayı finanse eden hibeler , muhtemelen kolayca alamayabilirsiniz. Yazmaya katkıda bulunduğum araştırma hibe tekliflerinin çoğunda bu tür şeylerden (en azından dipnotlarda) bahsetme alışkanlığım oldu.

Kişisel deneyimimle, profesyonel bağlamda bazı kodları açık olarak yayınlamak için izin alarak kaynak veya açık veri olarak bazı veri kümeleri çok sıkıcı ve streslidir (ve çalışma başladıktan sonra neredeyse imkansızdır). Bunları araştırma önerilerinde ve bağışlarda yazılı olarak belirtmelisiniz.

bedava öğle yemeği diye bir şey yoktur

Ayrıca şunlara bakın slaytlar ve RefPerSys projesi. Şimdiye kadar, buradaki temel sorun finansman.

Avrupa'da, ITEA3 ve BDVA ve HorizonEurope ilginç olabilir kişiler. Karşılığını kendi yerinizde bulmalısınız.

Ershov numarası?Veya Erdos numarası?
Yazarların kağıda "askeri finansman nedeniyle bu veri seti mevcut değil" yazması umulur ..
Hayır, ordunun onayını gerektiren yazı yazmak ve böyle bir onay almak günlerce tam zamanlı çalışmayı gerektirir
Ne olmuş yani?Daha sonra yazarlar, bu cümle için onay alarak bu makaleyi iyileştirmeyi çalışmalarının bir parçası olarak değerlendirmelidir.Zaten bu kuralın amacı nedir (bir kişinin bir kağıda yazmasına izin verilmez, bu nedenle veriler mevcut değildir)?
XavierStuvw
2020-04-27 18:56:37 UTC
view on stackexchange narkive permalink

Ağzınızdaki kötü tadı takdir ediyorum, ancak lütfen kendinizi çıkmazlar ve kazalar ağındaki bir metodolojinin saf bir sonucu olarak araştırmayla ilgilenen bir okuyucunun yerine koyun.

Algoritmalarının uygulanmasının sizin uygulamanız olduğuna dikkat edin

Evet bekliyorum. Çalışmanızın ne ölçüde orijinal olduğunu ve bildiğiniz her şeyden ne ölçüde farklı olduğunu / ondan aldığını belirtmelisiniz. Bu, herhangi bir bilim insanı tarafından yapılan işe, her ne kadar kemiğe iğrenç olursa olsun, adaleti sağlamak ile ilgilidir.

Ayrıca, odak noktasını konuya kaydırırken,

  • çoğaltma arasındaki ayrımları (çizme girişimleri) akılda tutmak yararlı olabilir.
  • yeniden üretim”

https: / /plato.stanford.edu/entries/scientific-reproducibility/#ReplRepeReprScieResu sosyal bilimlerdeki yansımalardan ödünç alıyor.

Onlara kodu için ulaştığınıza ve reddettiklerine dikkat edin

Burada kendi çabanızın ve çalışma durumunuzun hakkını vermenin zamanı geldi. Herhangi bir şey olsa bile,

Bu kaynak kod mevcut değil [ bize] (o beyefendi, kişisel iletişim)

Sıfat yok, hiçbir durumda zarf yok. Suç tahsisi yok, sadece gerektiğinde belgelenebilen bir olay. Kod daha sonra kullanılabilir hale gelirse, yanlış iletişim veya kötü zamanlamadır.

Okuyucu, hem kendileri hem de sizin için oyunun durumunu ilerletme çabalarını takdir edecektir.
En azından bir hakem olarak bundan mutlu olurum. Benim iki sentim, düzeltilmekten mutluluk duyuyorum.

vdaghan
2020-04-28 04:19:26 UTC
view on stackexchange narkive permalink

Cevaptan önce -sadece başka bir bakış açısı sağlamak için- bazı saçmalıklar.

Deneyimlerimi benzer durumlar için bir "kullanıcı" olarak paylaşabilirim. CS benim alanım değil ve "ciddi bir gelişme" olduğunu iddia eden her bir algoritmayı yeniden yazamam (Spoiler uyarısı: Çoğu değil). Zamanım yok ve kaba kuvvet algoritmaları genellikle benim için çalışıyor. Genelde. Ancak söz konusu algoritmalara erişimim olsaydı (okuyun: gerçek kod), onları kullanırdım ve bu gelecekteki araştırmam için çok büyük bir kolaylaştırıcı olurdu.

Bazı yanıtlar / yorumlar, kabaca şunu belirtir: aynı kod çoğaltma değildir. CS için bu bir dereceye kadar doğru olabilir -Bunu tartışmayacağım bile. Ama burada asıl endişe üreme mi? Kullanılabilirliğe saf algoritma yeniden üretiminden daha çok değer veriyorum.

Biraz "yardım" gerektiren başka alanlar da (benimki, spor bilimleri gibi) var. Yanlış anlamayın, algoritmaya göre söz konusu son teknoloji kodu kendim kodlayabilirim. Ama benim zamanıma değmez. Çünkü yürütme hızı / bellek ayak izinde potansiyel (ve geçmiş deneyimlerimde çok az bir şey) bir gelişme, listemdeki bir sonraki sorunu çözmeye çalışmaktan çok zaten çalışmakta olan kavram kanıtı kodum üzerinde çalışmayı haklı çıkarmaz.

Çeşitli algoritmalar öneren çok sayıda makale var, ancak bunları düzgün bir şekilde açıklama zahmetine bile girmiyor.

Sorunuza dönelim:

Şimdi sorum şu, THEIR algoritmasının uygulanmasının bizim uygulamamız olduğuna ve kodlarını öğrenmek için onlara ulaştığımıza ve reddettiklerine dair bir not eklemeniz önerilir mi?

İlk bölüm için kesinlikle tavsiye edilir, çünkü bu algoritmalarının tamamen körü körüne yeniden üretilmesi ve her iki tarafın araştırmalarına değer katıyor. **

Reddettikleri için: Önerilen algoritmalarının öğle yemeği sohbetinin ürünü olmadığından ve siz bunu yapana kadar gerçek kodda daha önce hiç gerçekleştirilmediğinden nasıl emin olabilirsiniz? İddia edilen performans rakamlarının uydurma olmadığından nasıl emin olabilirsiniz? Araştırmacılara güveniyor musunuz? Ya uygulamanız algoritmanın üstünlüğünü doğrulamadıysa? Yine de yayınlar mısınız yoksa yetkiliye itiraz etmek için mi verirsiniz? Kodlarının algoritmaya ilişkin açıklamalarıyla uyuşup uyuşmadığını kontrol eder misiniz: yani, kollarında hiçbir şey yok mu?

Bu soruların reddedilmesinin kötü bir tat bırakmasının nedeni olduğuna inanıyorum; iş arkadaşınızın 2 haftası değil.

İster bir yayında / sunuda ister çevrenizde, bu bilgiyi herkese açık hale getirmek için bilime borçlu olduğunuzu düşünüyorum. İkincisi, eğer öyleyseniz daha az riskli görünüyor "henüz yerleşmiş" değil.

Trusly
2020-04-29 07:39:38 UTC
view on stackexchange narkive permalink

Kağıttaki şeyin kaynak kodunu sağlayan şey, bu sitede ve başka yerlerde ölesiye tartışıldı, bu yüzden buna fazla girmeyeceğim. Kaynak vermeleri gerektiği ve her halükarda dergiler tarafından talep edilmesi gerektiği konusunda size katılıyorum. Bununla birlikte, şu anda öyle değil. Çalışmalarını yeniden üretmenize yardım etseler güzel olurdu, ama mecbur değiller.

Talimatlarını göründüğü gibi aldığınızda sonuçların olmadığını keşfetmiş olsaydınız, dergi editörüne yazmanız gerekirdi ve bunun sorumluluğu kendi bulgularının meşru olduğunu göstermelerine yardımcı olmak için onlara. Ancak, sizin [arkadaşınızın] yardımları olmadan onu yeniden üretebildiğiniz anlaşılıyor, siz sadece daha kolay olmasını dilerdiniz. Yeterince adil, ancak hayatınızı kolaylaştırmak için kendi yollarından çekilmelerini talep edemezsiniz.

Yazdığınız kodu dağıtmayı düşünüyorsanız, bunda yanlış bir şey yok ve bu çok iyi bir fikir. Yazarların yararsız aptallar olduğunu söyleyen küçük bir manifesto eklemeyeceğim ve siz bunu yazdınız. Bu doğru olsa da ve haklarınız dahilindeyken, sizi kötü gösterecektir. Herhangi bir okuyucunun kafasını karıştırmamak için uygulamanızın bağımsız olduğunu ve orijinal koda dayanmadığını açıklamaya değer, ancak neden paylaşmadıklarını veya kimin hatalı olduğunu incelemeye gerek yok - bunlar, araştırmanın kendisiyle ilgili gerçek. "Bu kod, yazarların kendi uygulamasına erişim olmadan yazılan Smith ve diğerleri 2020'deki algoritmanın bağımsız bir uygulamasıdır" gibi bir şey söyleyebilirsiniz. Bu son parçayı, üzerine koymak istediğiniz bir noktaya göre ne kadar ince ayar yapabilirsiniz. Ancak, yazarların kodu sizinle paylaşmamasını ne kadar sevmediğiniz konusunda bir kez daha ne kadar az şey söylerseniz, (uzun vadede) o kadar iyidir.

Özellikle çok önemli bir veri kümesinde son teknoloji ürünü olduğunu iddia ediyorlarsa, kodlarını neden paylaşmayacaklarını anlamıyorum. Çoğu makale, bir dereceye kadar en son teknolojiyle karşılaştırılmalıdır ve bu nedenle, esasen, bu spesifik alandaki tüm araştırmacıları, kendi araştırmalarını yayınlamadan önce kendi çalışmalarını yeniden oluşturmak için yavaşlatıyorlar.

Hepsi alçakça olmayan pek çok neden olabilir.

  • Dergi kod gerektirmiyorsa fazladan çalışmak ve verimsiz olmak demektir.
  • Başkalarının bunu kendi bilgisayarlarında nasıl oluşturup çalıştırabileceklerini belgelemelisiniz - bu, fazladan iş gerektirebilecek ve belki de kendi sisteminiz için bir sorun oluşturmayan bir şey.
  • Genel olarak kod taşınabilir değilse o kadar yararlı değildir - algoritma zaten taşınabilirken.
  • Kodu sağladıkları için sizin için yararlı olacağı anlamına gelmez. Bilmediğin bir dilde olabilir.
  • Kod dağınık olabilir ve belki de anlamsız sorular sormak istemiyorlar. Bu şüpheli görünebilir, ancak sizden her bir taslağı ve peçete çizimini sağlamanız istendiğini ve ardından insanlar size, kenar boşluğuna not edilen ve daha sonra her nasılsa terk edilen rastgele düşünceleri açıklamanızı sağladığını düşünün.
  • Kodu ne zaman verirseniz her türden insan, bazen işin kendisiyle neredeyse hiç bağlantısı olmayan konularda sizden yardım istemeye başlar. İşinizle ilgili soruları yanıtlamaya hazır olmanız gerekirken, soruları yanıtlamak zaman alır. Dergi gerektirmediyse, neden kendinize ek çalışma yaratasınız?

Elbette, deneycilerin yalnızca kullandıkları kimyasalın adını söylememeleri, tedarikçiye katalog no ve lot numarasını vermeleri (ve aynı artık var olmayan eski kağıtlar, eski kağıtların kodları genellikle çalıştırılamaz olabilir). Ancak günün sonunda, yalnızca sonuçlarınız kullandığınız belirli reaktifin / uygulamanın bir artefaktıysa sorun olur. Protokol herhangi bir reaktifle iyi çalışıyorsa ve algoritmanın doğru şekilde uygulanması zor değilse, bu gerçekten önemli değildir.

shmuel
2020-04-29 22:01:25 UTC
view on stackexchange narkive permalink

Algoritmanın kaynağını kabul edin, minnetle, kodun önceki koda dayalı olmadığını belirtin ve önceki kodun mevcut olmadığından şikayet etmeyin. Başkalarının da belirttiği gibi, size orijinal kodu verecek yasal yetkiden yoksun olabilirler ve her durumda yeni kod, algoritmanın bağımsız onayı olarak işlev görür.

pjamshidi
2020-04-29 23:49:54 UTC
view on stackexchange narkive permalink

Algoritma sürümünüzü uyguladığınızı açıklığa kavuşturursanız ve ek materyalde veya deneysel ayarınızda (varsa) parametrelerin ayrıntılarını sağlamanız topluluk için çok yararlı olacaktır. Muhtemelen neden diğer algoritmaları uyguladığınızı açıklamanıza gerek yok, okuyucular ne olduğunu tahmin edebilir! Ayrıca uygulamanızı yayınlarsanız, diğerlerinin karşılaştırmaları için zamandan tasarruf etmeleri ve sonuç olarak makalenizin daha görünür hale gelmesi için topluluk için de çok yararlı olacaktır. Bunun araştırmacılar için başkalarının çalışmalarını uygulamak için oldukça zorlu bir mücadele olduğunu ve konferansların (ve hakemlerin) yazarların yalnızca kodu değil, aynı zamanda çalışmanın tekrarlanabilirliğini sağlamak için veri ve parametreler gibi diğer bilgileri de sağladığından emin olmak için daha dikkatli hale geldiğini biliyorum. . Umarım bir gün yayınlarımızın, yaptığımız kod olan çalışmamızın temel sonucunun gerekçesi olarak hizmet ettiği bir noktaya ulaşırız.

dusa
2020-07-30 19:36:38 UTC
view on stackexchange narkive permalink

Bunun laboratuvar politikaları veya ortaklarıyla ilgisi olabilir. Tıbbi odaklı problemler üzerinde çalışan bir bilgisayar bilimcisiyim, klinik partnerlerimden hiçbiri kodu yayınlamaya uygun değil. Bu tıp çevrelerinde gerçek bir sorun, hatta kendi kodumun bir kopyasına sahip olmamam için kontratım dolduğunda bilgisayarımı silmemi bile istediler. Elbette çoğu gibi, şüphelendiğim gerçek sebep, kodu paylaşmanın onları dezavantajlı duruma düşürdüğünü düşünmeleridir, sadece başkalarının kendi kıyaslamalarını kullanmasını istemezler. Bu, sezgisel görünmese de, sadece benim önsezim. Ancak birçok kişi benim çalışmamı ve deneysel sonuçlarımı kopyalarken hiçbir problem yaşamadı - bu yüzden işi 2 hafta içinde uygulayıp sonuçlarını elde edebildiğiniz gerçeğine göre, onların düzgün bir iş çıkardığını söyleyebilirim (artı daha fazla içgörü kazandınız ve iş). Zaman zaman laboratuvar arkadaşlarımın kodunu kullanarak aynı sonuçları almakta güçlük çekiyordum.

Kişisel düzeyde, yazarlar kodlarını herkese açık hale getirmeselerdi paylaşmakta tereddüt edeceklerini düşünüyorum çünkü bu, tek bir kişi için zaman alıcı olabilecek kodun temizlenmesini vb. gerektirir, dürüst olmak gerekirse bunu ilişkilendirebilirim. Yine de çoğu insan gruplar halinde çalışıyor, bu yüzden kodlarının daha modüler ve daha temiz olmasını beklerdim ya da sadece birisinin üzerinde çalışmasını sağlayabilirdi.

neil_mccauley
2020-04-29 22:26:06 UTC
view on stackexchange narkive permalink

Hayır, uygun değildir ve bu tür bir ifade veya "suçlama" bilimsel bir yayının parçası olmamalıdır. Okuyucuların hiçbiri bu ayrıntıyla ilgilenmez ve bu, makalenizin amacına da hizmet etmez.

Yazarların kaynak kodlarını dağıtmayı reddettiklerini belirtmek yerine, kaynak kodun mevcut olmadığını ve uygulamanın size ait olduğunu söyleyebilirsiniz. Yazar tarafından kırıldığınızı ve misilleme yapmak istediğinizi anlıyorum. Sonuçta, uygulamanızla sonuçlarını doğrulayabilirsiniz, dolayısıyla hiç şüpheniz kalmaz. Öyleyse neden tek amacı diğer yazarların itibarına zarar vermek olan bilimsel bir yayında kişisel bir konuyu gündeme getirmelisiniz?

@Graham zaten mükemmel bir cevap verdi, bu da neden bağımsız doğrulama yaptırmanın gerekli ve arzu edildiğini açıklıyor. Daha önce bu "iş" içindeydim ve yaptığı tüm noktalar üzerinde hemfikirim. Benim alanım biyoinformatikti ve sadece yeni algoritmalar yayınlamakla kalmadık, aynı zamanda biyologların kullanması için buna dayalı yazılımlar da ürettik. Alanımızda, hepimizin kullanıcı olmasını istediğimiz için kaynak kodun yayınlanması yaygın bir uygulamadır. Bu nedenle performans karşılaştırması yaparken probleminiz olmadı. Ancak, @Graham'ın işaret ettiği diğer sorunu yaşadım. Gerçek performans iyileştirmelerinin çoğu, yayında basitçe bahsedilmeyen uygulamada yatmaktadır. Bu kasıtlı veya kasıtsız olabilir. Uygulama ayrıntılarından bazıları bilimsel bir katkı gibi görünmüyor ve dışarıda bırakılıyor. Ancak etkileri çok büyük olabilir. Karşılaştırmak istediğimiz bir yazılımın performansı bir zamanlar kafamızı karıştırmıştı. Bu nedenle kaynak kodunu analiz etmeye karar veriyoruz. Daha sonra yazarın bir işlevi uygulamak için çok akıllı bir yolu olduğunu ve bu da büyük miktarda zaman kazandırdığını anladık. Bu, alanımızda yaygın bir matematiksel fonksiyondur ve onun yaklaşımını görene kadar bu fonksiyonun nasıl uygulanması gerektiği oldukça açık görünmektedir. Onun tekniklerini yazılımımıza yeniden uyguladık ve harikalar olduğunu gördük.

h22
2020-04-27 18:25:40 UTC
view on stackexchange narkive permalink

Sonuçları, makalelerindeki algoritmanın açıklamasından yeniden üretebildiniz mi, yoksa alamadınız mı? Sorunuzda bu açıkça görülmüyor.

Cevabınız evet ise, makale tamamlanmıştır ve şikayet edilecek bir şey yoktur.

Değilse, evet, sadece ifade farklı olması gerektiği konusunda söylenecek bir şey var:

"Bu deneyleri tekrarladık, ancak yeniden oluşturamadık sonuçlar "

Bilimsel bir yayın olabilmesi için, makalenin deneyi tekrar etmeye yetecek kadar bilgi içermesi gerekir. Birden fazla bağımsız araştırmacı yeniden üretemezse yazarın başı belaya girer.

Bu soruyu yeniden yazdım ve mevcut sürümün doğru olduğunu düşünüyorum.


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 4.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...