Pytanie:
How to proceed when the baseline (state-of-the-art) published results claim much better performance than I can reproduce?
Monii_80
2019-10-14 19:21:27 UTC
view on stackexchange narkive permalink

Jestem absolwentem, aby ukończyć studia, muszę budować metody przewyższające to, co już jest. Problem, na który się natknąłem, polega na tym, że dwa artykuły opisały znacznie (mam na myśli ponad 20%) więcej niż wynikało z mojej ponownej implementacji. Może to mieć dwie przyczyny:

  1. Podczas implementacji coś przeoczyłem. Właśnie to sobie powtarzałem. Od miesięcy próbowałem wszystkich możliwych kombinacji i możliwych ścieżek. Jedna z metod jest prosta. Mimo to nie mogłem dotrzeć do ich rzekomego wykonania.

    Skontaktowałem się z odpowiednimi autorami i nikt nie odpowiedział. Próbowałem więc skontaktować się z innymi autorami.

    W pierwszym artykule autor odpowiedział i przesłał mi kod. Polecił mi zachować „poufność” wszystkich szczegółów. Cóż, okazuje się, że nie wykorzystują danych, które twierdzą w swojej pracy, oczywiście ich wyniki są inne niż moja reimplementacja. I moja implementacja była poprawna.

    Drugi autor artykułu również odpowiedział i nie wysłali mi kodu, ponieważ mówią, że jest łatwy do wdrożenia, ale potwierdził, że to, co zrobiłem, jest poprawne, nadal nie mogę zrozumieć, dlaczego taka różnica.

    Oba artykuły zostały opublikowane w czasopismach <2 z czynnikiem wpływającym. Ich serwery internetowe nie działają.

  2. Nie są uczciwi.

Teraz utknąłem, moja metoda jest skuteczniejsza moje ponowne wdrożenie ich metod, ale nie to, co twierdzą. W pierwszym artykule nie mogę nic powiedzieć, ponieważ „to jest poufne”, w drugim mogę tylko potwierdzić, że w większości przypadków poprawnie zastosowałem ich metodę (na podstawie mojego czatu z autorami)

Wiem że chyba nie mógłbym opublikować tej części mojej pracy, bo kto uwierzy młodej naukowczyni, która dopiero zaczynała swoją drogę? Ale nie jestem pewien, jak komisja mi uwierzy. Co mogę powiedzieć lub zrobić? Proszę, pomóż mi

Publikowanie innych wyników jest podstawą prawdziwej nauki.W końcu, gdybyś otrzymał dokładnie to samo, nikt nie nauczyłby się czegoś nowego.
Jaka jest miara „wydajności”, do której się odnosisz i czy jej definicja może być źródłem tej 20% różnicy?Jako programista jestem przyzwyczajony do takiego wzrostu wydajności (w czasie wykonywania) po niewielkich, ale znaczących poprawkach optymalizacyjnych, które są bardzo zależne od platformy.
@Gloweye: Zakwalifikowałbym, że widząc, że całe dziedziny (nauki przyrodnicze) cierpią obecnie na poważny brak replikacji.
Naprawdę nie mogę temu zaprzeczyć.Ale wciąż udowadnia, że stare teorie, które czynią postęp, są błędne.Tak jak wtedy, gdy odkryliśmy, że idee siły / przyspieszenia Newtona są naprawdę niewystarczające, gdy zbliżamy się do c.To, co próbuję powiedzieć, nie bój się nie zgodzić.
Przed założeniem najgorszego (przewinienie akademickie), możesz wziąć pod uwagę, że mogą istnieć subtelne różnice (optymalizator? Lepsze struktury danych?), Które spowodowały 20% wzrost.Kiedyś jakiś uczeń coś zakodował i dla zabawy sam to zakodowałem.Mój kod był o czynnik 1000 szybszy w przypadku bardziej skomplikowanego przypadku.Przyspieszenie przyspieszyło nie tylko język, ale sposób, w jaki go zakodowałem.Oczywiście, jeśli ich kod, z oryginalnymi danymi, nie działa tak szybko z tobą, coś może być nie tak.Ponownie, może to być raczej uczciwy błąd niż niewłaściwe postępowanie.Zgłoś swoje wyniki jako uwagę boczną.
Trzecia opcja: popełnili uczciwy błąd.
Jak powiedzieli inni, śmiało i publikuj.Miło było skontaktować się z autorami - tak było.(Możesz nawet wspomnieć o „osobistej komunikacji”). - Więc jeśli twoja metoda jest lepsza, nie wahaj się i opublikuj ją, po prostu bądź uprzejma w gazecie i podaj uznanie tam, gdzie jest to należne.
Zupełnie poza poprawkami w konkretnej implementacji, o których wspomina @mvds, 20% różnica wydajności może łatwo wynikać z różnic w sprzęcie, systemie operacyjnym, kompilatorze lub jakiejkolwiek innej części konfiguracji programistycznej / testowej.
„Okazuje się, że nie wykorzystują danych, które twierdzą w swojej pracy”. „Czy możemy uzyskać więcej szczegółów na ten temat (lub bardziej uwydatnić tę konkretną część pytania)?Odpowiedzi, które widziałem do tej pory, zdają się zakładać, że różnice mogą wynikać z uczciwego błędu, ale jeśli opublikowali wyniki na jednym zbiorze danych i twierdzili, że są dla innego, należy to zgłosić redakcji.
@mvds Miałem na myśli dokładność prognozowania, a nie czas wykonywania.Całkowicie zgadzam się z czasem pracy i optymalizacją.
@Ray stwierdzili, że wykorzystali zestaw danych benchmarków z bla bla, ale tego nie zrobili (na podstawie tego, co przesłał mi autor).W pewnym momencie ktoś pomieszał dane (usunął trudne próbki + dodał inne), a autor, który przesłał mi kod, nie miał absolutnie pojęcia.Powiedział mi, że przełożony podał dane (!)
Każde sensowne porównanie wydajności taktowania wymagałoby kontrolowanej platformy obsługującej zarówno próbki kodu, jak i kontrolowany zestaw danych.
Powinieneś uruchomić swój kod z tymi samymi danymi, których użyłeś, aby uzyskać 20% poprawę.Jeśli uzyskasz ten sam (lub prawie taki sam wynik), będziesz miał mocny powód, aby stwierdzić, że metoda nie jest odporna na zmiany w danych.
@Monii_80 ok, to rzeczywiście inna sprawa i powód, o który zapytałem ;-) Nadal istnieją pewne czynniki zależne od platformy, takie jak rozmiar typów zmiennoprzecinkowych i obsługa denormali, i być może inne zasady zaokrąglania w zależności od wyboru języka, ale do uwzględnieniadla 20% różnicy dla dokładnie tego samego algorytmu, nie wiem ... to byłoby naciąganie.
@Monii_80, aby rozwinąć nieco więcej: w przypadku, gdy jest to algorytm obejmujący wiele kroków, może być tak, że wyniki pośrednie są przechowywane w bazie danych lub przesyłane między procesami o ograniczonej szerokości pola.Możliwe również: przypadkowe zaokrąglenie wartości pośrednich (np. Niezamierzone rzutowanie na liczbę całkowitą).Widziałem, że takie rzeczy naprawdę zmieniają algorytmy przewidywania, na początku nie są wyraźnie widoczne, ale powód, dla którego wyniki końcowe się nie zgadzają.Takie problemy mogą łatwo spowodować 20% niepewność wyniku końcowego.Również bardzo trudne do wyśledzenia!
Sześć odpowiedzi:
Ian Sudbery
2019-10-14 21:39:35 UTC
view on stackexchange narkive permalink

Nie ma absolutnie żadnego powodu, dla którego nie można by opublikować artykułu, w którym jest napisane „Porównaliśmy naszą metodę z metodami X i Y. Ponieważ kod oryginalny nie był dostępny dla X i Y, ponownie zaimplementowaliśmy te metody, aby najlepiej naszych możliwości. Kod tych reimplementacji jest dostępny w dodatkowych plikach A i B. Nasza nowa metoda przeprowadziła reimplementacje X i Y o z%. Należy jednak zauważyć, że nie było możliwe odtworzenie raportowanych wyników dla X i Y. ”

Osoby, które chcą wiedzieć, będą musiały przyjrzeć się Twoim ponownym wdrożeniom i same zdecydować, czy uważają, że zostały one poprawnie wdrożone.

Starszeństwo nie ma z tym nic wspólnego - bądź przejrzysty, a świat oceni, czy wierzy tobie lub ludziom, którzy nie udostępnią swojego kodu.

Tyle tego.Musimy zachęcać do prób reprodukcji w nauce.Jeśli OP popełnił błąd, miejmy nadzieję, że ktoś go znajdzie i (uprzejmie) zwróci mu uwagę.
Szczerze mówiąc, pokusiłbym się też o napisanie krótkiej, nieco pasywno-agresywnej wypowiedzi do tego stopnia, że nie da się wydobyć od autorów oryginalnych realizacji.Na tego typu rzeczy należy patrzeć z dezaprobatą dużo bardziej niż obecnie.
W idealnym świecie to.Ale skonsultuj się ze swoim przełożonym / kolegami / ..., aby dowiedzieć się, jaka jest natura bestii: jeśli jeden lub więcej z nich jest stosunkowo niedocenianymi, ale mściwymi ludźmi z rzeczywistą władzą w małej poddziedzinie, w której się specjalizujesz,będzie zły (ponieważ oni i ich przyjaciele przejrzą zarówno twoje dokumenty, jak i podania, i odrzucą).Jeśli są mściwymi złoczyńcami z kreskówek, zbierzesz więcej współczucia niż odrzucenia ze strony redaktorów czasopism itp. Jeśli są naukowcami, będą cię bardziej szanować za wstawanie (faktami, a nie zasadami).
Rzeczywiście ** spraw, aby Twoje własne badania były w pełni odtwarzalne ** i prześlij je.Koniecznie poinformuj redaktora czasopisma, w którym publikujesz, o tym, czy chcesz wykluczyć autorów danych prac z bycia recenzentami.Chociaż wydają się teraz pomocne, mogą wpływać na proces recenzowania.Oczywiście mogą nie, ale lepiej jest pozostać po bezpiecznej stronie i dążyć do powiązań, które są prawdziwymi stronami trzecimi.Recenzja partnerska nie jest systemem idealnym, ale najmniej niedoskonałym, zawsze możliwym do udoskonalenia i mimo wszystko dominującym.Twoja społeczność doceni Twój wkład.
Obawiam się, że artykuł zostanie odrzucony, ponieważ brakuje w nim „czynnika nowości”.
@thermomagneticcondensedboson Twoja * metoda * wydaje się być nowością, a to nadal by się liczyło, nawet jeśli wydajność jest tak dobra, jak stara metoda
Zgodnie z pytaniem PO powinien zwrócić uwagę, że do wyników nie wykorzystano danych z prac oryginalnych - stąd problem z rozbieżnymi wynikami. Publikując jego dane i wyniki, inni mogą potwierdzić poprawność jego metody.
Chociaż rozwiązanie wcześniej nierozwiązanego problemu doprowadzi do publikacji o większym wpływie, nadal jest ona całkowicie możliwa do opublikowania, jeśli możesz wykazać, że masz lepszą metodę rozwiązania już rozwiązanego problemu.Sugerowałbym, aby Twoja metoda była łatwo dostępna dla innych.Miej odpowiednie i niezawodne procedury instalacji na różnych typach maszyn, odpowiedni interfejs (dobrze udokumentowany i logiczny interfejs API lub odpowiedni interfejs CLI / GUI) oraz przemyślaną dokumentację, przewodnik szybkiego startu i samouczek.Będziesz wtedy jedynym dostawcą * użytecznego * rozwiązania.
Poszedłbym nawet dalej: * Twoja metoda nie musi niczego przewyższać, po prostu musi różnić się od tego, co próbowano wcześniej *.(W granicach rozsądku).Jeśli masz nową metodę, która przewyższa metody akceptowane o 20%, jest to niezwykle cenne, ponieważ ludzie będą używać Twojej metody.Ale jeśli Twoja nowa metoda jest gorsza o 30%, jest to również przydatne, ponieważ inni prowadzący badania w tej samej dziedzinie będą wiedzieć, że należy unikać Twojej metody!Nie bój się „udowodnić coś negatywnego” - owszem, to nie jest tak efektowne, ale drogowskaz z napisem „tu dziura w ziemi” jest nadal pomocny dla innych.
@IanKemp w teorii tak, to jest wartościowe lub powinno być cenne;ale w praktyce w wielu dziedzinach np.uczenie maszynowe * czyni * znacznie mniej prawdopodobne, że Twój artykuł zostanie zaakceptowany w konkurencyjnych miejscach.
Buffy
2019-10-14 19:51:53 UTC
view on stackexchange narkive permalink

Ludzie mogą być nieuczciwi. Mogą też popełniać uczciwe błędy i publikować złą naukę. Nie zakładaj, że to ty masz gorszy wynik. I nie zakładaj, że komisja doktorska ci nie uwierzy. Jeśli są oni kompetentni, aby cię osądzić bez wcześniejszych wyników, powinni być w stanie zrozumieć, co zrobiłeś.

Mam jednak dwie sugestie. Pierwszym jest omówienie tego, co zrobiłeś ze swoim doradcą i / lub innym członkiem wydziału, który jest najbardziej kompetentny, aby zrozumieć Twoją pracę. Możesz rzeczywiście uzyskać najlepsze wyniki. Jeśli możesz tam uzyskać wsparcie, większy komitet nie powinien stanowić problemu. Nie sądzę, że musisz ukrywać komunikację, którą otrzymałeś przed członkami komitetu. Może być konieczne wyjaśnienie, dlaczego nie możesz uwierzyć w wyniki przedstawione w innym artykule. Nie sądzę, że „poufne” ma tutaj zastosowanie.

Ale druga jest nieco trudniejsza. Sprawdź, czy możesz dowiedzieć się dokładnie, gdzie druga grupa nie dopasowała swoich metod do wyników. Jeśli możesz to zrobić, masz znacznie mocniejsze dowody na swoją własną pracę.

Dowody, o których tu wspomniałeś, wydają mi się dość mocne (jako osoba z zewnątrz), że druga gazeta ma problem. Nie ma powodu, by temu nie zaprzeczać, jeśli jest on błędny z jakiegokolwiek powodu.

Jest jeszcze jeden przypadek: znaleźli coś, co zinterpretowali jako „błąd liczbowy” i odrzucili to - wracając do tradycyjnych wyników.Nie byli ekspertami w metodach numerycznych i szczerze myśleli, że to, co zobaczyli, było błędem w obliczeniach.Okazało się, że ich model nie był wystarczająco dobry, „usterka” była wskazówką na ten temat i ktoś inny wykorzystał ich pracę, aby go rozszerzyć.Nie byli zbyt zadowoleni z wyniku, ale przypisywano im niefortunne złagodzenie wyniku, które doprowadziło do odkrycia.Wydarzyło się w 1995 roku :)
cbeleites unhappy with SX
2019-10-15 16:05:20 UTC
view on stackexchange narkive permalink

aby ukończyć studia, muszę tworzyć metody przewyższające to, co już jest.

Nie, to nieprawda. Musisz dostarczyć kawałek odpowiedniej pracy naukowej i rozwinąć wiedzę, a to nie zależy od kierunku twoich ustaleń.

Oczywiście, sprawy są łatwiejsze i przyjemniejsze, jeśli wdrożenie jest lepsze. Jednak właściwą naukową częścią twojej pracy jest naukowe zbadanie zarówno starego, jak i twojego podejścia, a następnie stwierdzenie, czy jest ono lepsze (i być może w jakich sytuacjach).

Trudność w twojej sytuacji polega na udowodnieniu, że rozbieżność z literaturą nie wynika z twojej niekompetencji lub braku ciężkiej pracy (=> zasługujesz na złą ocenę), ale w rzeczywistości z tego, że "natura" nie jest taka, jak powinna być w poprzednim artykule.

To, co możesz i powinieneś zgłosić, to

  • że nie byłeś w stanie odtworzyć ustaleń z artykułów 1 + 2,
  • w konsekwencji w komunikacji z autorami.
  • Co ważne, że Twoja implementacja została potwierdzona jako poprawna w prywatnej komunikacji z autorami artykułu 2 oraz przez porównanie z (poufnym) kodem, który otrzymałeś od autorów artykułu 1 ponownie przez prywatna komunikacja w tym celu.
  • Jeśli

    Okazuje się, że nie wykorzystują danych, które podają w swojej pracy, oczywiście ich wyniki są inne niż moja reimplementacja.

    oznacza, że ​​masz zestaw danych, którego faktycznie używali i otrzymałeś te same wyniki, a następnie możesz również zgłosić, że dla powiązanego zestawu danych te same wyniki zostały uzyskane.
    Jeśli nie, można uprzejmie zapytać autorów artykułu 1 + 2, czy uruchomiliby zbiór danych, które im przesyłasz, i podać wyniki ich wdrożeń, abyś mógł porównaj to z wynikami. Następnie możesz zgłosić (miejmy nadzieję), że równe wyniki uzyskano dla innego zestawu danych i podziękować autorom tych artykułów za analizę danych.

Ostatnie dwa punkty powinny jasno wyjaśniać, że rozbieżność nie jest spowodowana błędem w twojej implementacji - i to właśnie liczy się w twojej pracy magisterskiej.

Na marginesie, otrzymałem najwyższą ocenę z moja praca dyplomowa (≈ magisterska), w której (między innymi) stwierdzono, że implementacja oprogramowania, z którego korzystałem, nie działała tak, jak powinna. Udało mi się wskazać wiarygodny i prawdopodobny powód tego błędu (który mógł być pozostałą „funkcją” debugowania) - co jest o wiele trudniejsze, ponieważ nie masz dostępu do działającej instancji ich oprogramowania, którą możesz test (= badanie), aby sformułować i potwierdzić lub odrzucić hipotezy dotyczące jego zachowania.


Jako dodatek do tego, co @Buffy wyjaśnił już na temat możliwości popełnienia uczciwych błędów w opublikowanych artykułach:
Jako naukowcy pracujemy na krawędzi tego, co jest znane. Oznacza to również, że z natury rzeczy narażamy się na wysokie ryzyko, że (jeszcze) nie poznamy / nie zdamy sobie sprawy z ważnych warunków i ograniczeń tego, co robimy.
W związku z tym istnieje również stosunkowo wysokie ryzyko, że wstępne uogólnienia, które rozważamy, mogą się okazać nie być wcale takim ogólnym. Albo że możemy się po prostu mylić i zdać sobie z tego sprawę dopiero później (lub wcale). Uważam, że ludziom bardzo trudno jest całkowicie zdać sobie sprawę z ograniczeń wyciąganych przez nas wniosków - prawdopodobnie / prawdopodobnie dlatego, że nasze mózgi są „zaprogramowane” do nadmiernego dopasowania. (Co również stawia nas w złej pozycji wyjściowej, jeśli chodzi o unikanie nadmiernego dopasowania np. W modelach uczenia maszynowego, które budujemy)

Komunikat, który można wziąć do domu, jest taki, że musimy być ostrożni również podczas czytania opublikowanych artykułów : musimy zachować możliwość, że papier jest zły, zawiera szczere błędy lub nie ma bezpośredniego zastosowania do naszego zadania, jak sądzimy na pierwszy rzut oka.


Coś przeoczyłem podczas implementacji.

Coś podobnego doświadczyłem kiedyś, kiedy wdrażałem metodę referencyjną z literatury (pokrewna, ale inna dziedzina). Okazało się, że różne wartości domyślne w wstępnym przetwarzaniu danych spowodowały różnicę - ale dopiero po tym, jak wpadłem na błyskotliwy pomysł, aby spróbować pominąć etap wstępnego przetwarzania - chociaż model nie ma większego sensu fizycznego bez tego kroku, ale artykuł nie wspomniał o żadnym takim kroku (ani w wielu pracach z mojej dziedziny, w których ten krok jest używany, ponieważ jest on uważany za konieczny z powodów fizycznych).


  1. Nie są uczciwi.

Chociaż jest to oczywiście możliwe, widziałem wystarczająco dużo uczciwych błędów, aby użyć brzytwy Hanlona (którą po raz pierwszy spotkałem jako brzytwę Murphy'ego ): i nie zakładać nieuczciwości ani niewłaściwego postępowania, chyba że istnieją na to wyjątkowo mocne przesłanki.


Udowodnienie wyższości może w każdym być czymś, co jest niemożliwe ze względu na ograniczenia w starym artykule.

Np. jeśli podadzą wyniki walidacji w oparciu o niewielką liczbę przypadków, niepewność co do tych wyników może być tak duża i dlatego nie można wykluczyć, że metoda jest lepsza niż się wydawało , że naprawdę ulepszone metody będą później nie są w stanie wykazać swojej wyższości w sposób rzetelny statystycznie.

Jednak taka wada starego artykułu nie ogranicza treści naukowych ani postępu Twojej pracy.

Szkoda, że mogę dać tylko jedno +1.Publikowanie negatywnych wyników, czyli udowodnienie, że coś nie działa, jest bardzo ważne, bo oszczędza innym naukowcom podążania ścieżką, która do niczego nie prowadzi.
Cytowanie [brzytwa Hazona] (https://en.wikipedia.org/wiki/Hanlon%27s_razor) istotne i cenione: _Nigdy nie przypisuj złości tego, co jest odpowiednio wyjaśnione przez głupotę_
@XavierStuvw masz na myśli brzytwę Hanlona?
@slebetman Dzięki, zrobiłem zgodnie z celem łącza, ale było już za późno na edycję, gdy zdałem sobie sprawę, że moje przewody są skrzyżowane.Ta notatka daje możliwość dodania następstwa lub zidentyfikowania przesłanki: _złości i głupota mogą być równie okropne_
Lewian
2019-10-14 19:59:11 UTC
view on stackexchange narkive permalink

Możesz napisać, że zastosowałeś swoją implementację konkurencyjnej metody dla swoich wyników i że nie jesteś w stanie odtworzyć opublikowanych wyników. Udostępnij swój kod, aby inni mogli go sprawdzić.

Wygląda na to, że autorzy innych artykułów nie opublikowali swojego kodu, więc nikt nie może powiedzieć, że powinieneś był tego użyć.

Jericho Jones
2019-10-14 19:48:20 UTC
view on stackexchange narkive permalink

W pierwszej kolejności należy skonsultować się z przełożonymi. Kod dokumentów jest często pośpieszny i niedokończony, a to, co działa na jednym komputerze, może nie działać na innym z wielu powodów. Najrozsądniejszym sposobem jest poinformowanie przełożonych, że zaimplementowałeś obie metody, zakomunikowałeś je oryginalnym autorom (wspomnij tylko o sprawach jawnych / powiedz, że niektóre rzeczy są poufne / poproś autorów o pozwolenie na omówienie wdrożenia z przełożonym), a mimo to nie osiągnął żądanej wydajności. Jako starsze osoby akademickie są lepiej przygotowani do decydowania, co robić w odniesieniu do polityki wydziałów / dziedzin / zespołów badawczych, są zobowiązani do uzyskania szybszych i bardziej szczegółowych odpowiedzi od autorów artykułów oraz radzenia sobie z potencjalnymi opadami, gdyby coś poszło nie tak. proces. Nie radziłbym samodzielnie zajmować się tą sprawą, a na pewno jeśli masz wątpliwości co do czegoś tak ważnego dla twojego projektu, rozsądnie byłoby zasięgnąć ich rady, a oni to zrozumieją.

„poproś autorów o pozwolenie na omówienie implementacji z przełożonym” „poufne” oznacza raczej, że kod, który powinieneś opublikować.
Myślę, że odpowiedź @jericho-jones jest najbardziej odpowiednia. Potraktuj to również jako lekcję.Stosuj dobre praktyki kodowania.Sprawdź swoją pracę w repozytorium kodu źródłowego.Otaguj działający kod, aby móc łatwo wycofać zmiany.Zapewnij powtarzalność wszystkiego, w tym przetwarzanie wszelkich surowych danych.Ustaw surowe dane jako tylko do odczytu, używając uprawnień do plików, odmawiaj aktualizacji / wstawiania / usuwania bazy danych, itp. Upewnij się, że Twój kod jest budowany codziennie lub co drugi dzień.Upewnij się, że zmiana kompiluje i przechodzi wszystkie testy oraz odtwarza już znane wyniki przed sprawdzeniem w repozytorium kodu źródłowego.
allo
2019-10-17 13:43:16 UTC
view on stackexchange narkive permalink

Oprócz innych odpowiedzi warto rozważyć opublikowanie swojej ponownej implementacji. Następnie każdy recenzent może sprawdzić, czy uważają, że wyniki są wiarygodne, lub czy zauważą usterkę w ponownej implementacji.

W pierwszym przypadku dobrze jest powiedzieć „Wdrożyliśmy artykuł X, ale nie mogliśmy odtworzyć deklarowanej wydajności”, aw drugim przypadku błąd znaleziony przez recenzenta może pomóc w poprawieniu implementacja, więc osiągniesz podobny wynik.

Większość recenzentów nie debuguje Twojego kodu, ale dołożyłeś wszelkich starań, aby umożliwić każdemu zweryfikowanie twierdzeń o mniejszej wydajności, a przynajmniej Twój artykuł jest tak uczciwy, jak to tylko możliwe .

Jeśli algorytm jest interesujący, publikacja wersji open source może przyciągnąć niektórych użytkowników, którzy zwrócą uwagę na problemy z Twoim kodem (lub wnieśli poprawki). Ale pamiętaj, aby nie być zbyt blisko poufnego kodu, ponieważ pierwotni autorzy mogą twierdzić, że naruszono prawa autorskie.

Możesz użyć inżynierii wstecznej clean room z inną osobą lub przynajmniej zrobić to sam, używając kod, aby zapisać brakujące części w dokumencie, a następnie ponownie zaimplementować go z dokumentacji, a nie z kodu.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...