Niereprodukowalność, czyli dwa razy trenujemy taki sam model na takich samych danych i dostajemy różne wyniki patrząc na poszczególne rowki, mimo że całościowe accuracy jest takie samo. Niereprodukowalność może wynikać z trenowania w środowisku rozproszonym, inizjalizacji modelu, błędów zaokrągleń itp. Źródło: On the Factory Floor ML Engineering for Industrial-Scale Ads Recommendation Models.
Niereprodukowalność jest też związana z różnym accuracy po wytrenowaniu dwa razy takiego samego modelu. Jednak w Calibrated Chaos Variance Between Runs of Neural Network Training is Harmless and Inevitable twierdzą, że lepsze accuracy na zbiorze testowym spowodowane np. wyborem innego seeda wcale nie powoduje że accuracy jest lepsze w rzeczywistości (na produkcji) - tzn. accuracy na zbiorze testowym i produkcji nie koreluje przy zmianie seeda. Źródło: ^98dd88. Potwierdza to też eksperyment przeprowadzony kiedyś w HIGu.
Jak ją mierzyć?
Relative Prediction Difference (PD)
Trenujemy dwa razy takim sam model, na tych samych danych. Następnie porównujemy różnice w odpowiedziach tych dwóch modeli: gdzie to odpowiedź pierwszego modelu a od odpowiedź drugiego modelu. PD może wynosić nawet 20% dla modeli głębokich, a metody takie jak inicjalizacja z seedem, Dropout nie pomagają. Źródło: On the Factory Floor ML Engineering for Industrial-Scale Ads Recommendation Models.
Jak ją zmniejszyć?
Odpowiednia funkcja aktywacji
Użycie ReLU może powodować wzrost PD, ponieważ nieciągłość pochodnej w zerze wpływa na to, że chodzimy po bardzo nie-wypukłej przetrzeni. Można użyć gładszej aktywacji, np. Smooth reLU (SmeLU). Źródło: On the Factory Floor ML Engineering for Industrial-Scale Ads Recommendation Models (zmniejszyło PD z 17% do 10%).