Eksperymenty

Eksperymenty napędzają realizację projektu. Są to hipotezy możliwe do sprawdzenia i powtarzalne. Przeprowadzając eksperymenty, należy stale wprowadzać stopniowe ulepszenia na podstawie oceny różnorodnych architektur i funkcji modelu. Wykonując eksperymenty:

  • Określ skuteczność bazową. Zacznij od ustalenia danych podstawowych. Punkt odniesienia służy za miernik do porównywania z eksperymentami.

    W niektórych przypadkach obecne rozwiązanie inne niż systemy uczące się może dostarczyć pierwszy wskaźnik bazowy. Jeśli obecnie nie ma żadnego rozwiązania, utwórz model ML o prostej architekturze z kilkoma funkcjami i użyj jego wskaźników jako punktu odniesienia.

  • Wprowadzaj pojedyncze małe zmiany. Wprowadź tylko jedną niewielką zmianę naraz, np. hiperparametry, architekturę lub cechy. Jeśli zmiana poprawi model, dane tego modelu staną się nową podstawą do porównywania przyszłych eksperymentów.

    Oto przykłady eksperymentów, które wprowadzają jedną niewielką zmianę:

    • dodaj funkcję X.
    • użyj 0,5 porzucenia w pierwszej ukrytej warstwie.
    • użyj przekształcenia logu funkcji Y.
    • zmień tempo uczenia się na 0,001.
  • Rejestruj postępy eksperymentów. Będziesz zapewne przeprowadzać wiele eksperymentów. Śledzenie eksperymentów, których jakość prognozy jest niska (lub neutralna) w porównaniu z wartością bazową, jest nadal przydatne. Wskazują, które metody nie działają. Postępy są zazwyczaj nieliniowe, dlatego ważne jest, aby pokazać, że pracujesz nad rozwiązaniem problemu, podkreślając wszystkie te, które nie działają, a także postępy w poprawie jakości bazowej.

Ponieważ każde pełne trenowanie na rzeczywistym zbiorze danych może potrwać kilka godzin (lub dni), rozważ przeprowadzenie kilku niezależnych eksperymentów jednocześnie, aby szybko zapoznać się z danymi. Mamy nadzieję, że w miarę wykonywania kolejnych iteracji zbliżysz się do poziomu jakości niezbędnego do produkcji.

Szum w wynikach eksperymentu

Pamiętaj, że w wynikach eksperymentu możesz zauważyć szum, który nie jest związany ze zmianami w modelu lub w danych, co utrudnia określenie, czy wprowadzona przez Ciebie zmiana rzeczywiście ulepszyła model. Oto przykłady czynników, które mogą powodować szum w wynikach eksperymentu:

  • Tasowanie danych: kolejność, w jakiej dane są przedstawiane modelowi, może wpływać na jego wydajność.

  • Inicjowanie zmiennej: sposób inicjowania zmiennych modelu może też wpływać na jego wydajność.

  • Równoległość asynchroniczna: jeśli model jest trenowany z wykorzystaniem paralelizmu asynchronicznego, kolejność aktualizacji różnych części modelu również może wpływać na jego wydajność.

  • Małe zbiory do oceny: jeśli zbiór do oceny jest zbyt mały, może nie być reprezentatywny dla ogólnej skuteczności modelu, powodując nierównomierne zmiany jego jakości.

Wielokrotne przeprowadzenie eksperymentu pomaga potwierdzić jego wyniki.

Uzgodnij procedury eksperymentowania

Twój zespół powinien dokładnie wiedzieć, czym jest „eksperyment” oraz mieć zdefiniowany zestaw metod i artefaktów. Potrzebna będzie dokumentacja, w której znajdziesz te informacje:

  • Artefakty. Jakie są artefakty eksperymentu? W większości przypadków eksperyment jest przetestowaną hipotezą, którą można odtworzyć, zwykle przez rejestrowanie metadanych (np. cech i hiperparametrów), które wskazują zmiany między eksperymentami oraz ich wpływ na jakość modelu.

  • Kodowanie. Czy każdy będzie korzystać z własnych środowisk eksperymentalnych? Jak możliwe (lub łatwe) będzie ujednolicenie pracy wszystkich osób w bibliotekach udostępnianych?

  • Powtarzalność i śledzenie. Jakie są standardy odtwarzania? Czy zespół powinien na przykład korzystać z tego samego potoku danych i procedur obsługi wersji, czy też wyświetlać tylko wykresy? Jak będą zapisywane dane eksperymentalne: jako zapytania SQL czy jako zrzuty modelu? Gdzie będą udokumentowane dzienniki z poszczególnych eksperymentów: w dokumencie, arkuszu kalkulacyjnym czy systemie CMS do zarządzania eksperymentami?

Nieprawidłowe prognozy

Żaden model rzeczywisty nie jest doskonały. W jaki sposób Twój system będzie wychwytywał błędne prognozy? Zastanów się wcześniej, jak sobie z nimi radzić.

Sprawdzona strategia zachęca użytkowników do prawidłowego oznaczania błędnych prognoz. Na przykład aplikacje pocztowe przechwytują błędnie sklasyfikowane e-maile, rejestrując wiadomości przenoszone przez użytkowników do folderu ze spamem, a także odwrotnie. Rejestrując etykiety danych podstawowych (ground truth) od użytkowników, możesz zaprojektować automatyczne pętle informacji zwrotnych do zbierania danych i ponownego trenowania modeli.

Pamiętaj, że chociaż ankiety umieszczone w interfejsie zbierają opinie użytkowników, dane mają zazwyczaj charakter jakościowy i nie można ich uwzględnić w danych dotyczących ponownego szkolenia.

Wdrażanie kompleksowego rozwiązania

W czasie gdy Twój zespół eksperymentuje z modelem, warto zacząć tworzyć części gotowego potoku (jeśli masz do tego odpowiednie zasoby).

Ustanowienie różnych części potoku, takich jak pobieranie danych i ponowne trenowanie modelu, ułatwia przeniesienie ostatecznego modelu do środowiska produkcyjnego. Na przykład uzyskanie kompleksowego potoku pozyskiwania i wyświetlania prognoz może pomóc zespołowi rozpocząć integrację modelu z usługą i rozpocząć testy użytkowników na wczesnych etapach.

Rozwiązywanie problemów z zawieszonymi projektami

Czasem może się zdarzyć, że postęp w projekcie się zatrzyma. Być może Twój zespół pracuje nad obiecującym eksperymentem, ale od wielu tygodni nie udaje mu się ulepszyć modelu. Co musisz zrobić? Oto kilka możliwych rozwiązań:

  • Strategiczne. Konieczne może być ponowne skonstruowanie problemu. Po zakończeniu fazy eksperymentu prawdopodobnie lepiej rozumiesz problem, dane i możliwe rozwiązania. Mając głębszą wiedzę o danej domenie, możesz dokładniej sformułować problem.

    Być może na początku chcemy użyć regresji liniowej, aby przewidzieć wartość liczbową. Niestety dane nie były wystarczająco dobre, aby wytrenować model regresji liniowej. Być może dalsza analiza ujawni problem, który da się rozwiązać przez przewidywanie, czy dana wartość jest powyżej czy poniżej określonej wartości. Dzięki temu możesz przeobrazić problem jako na podstawie klasyfikacji binarnej.

    Jeśli postęp jest wolny od oczekiwanego, nie poddawaj się. Stopniowe udoskonalenia mogą być jedynym sposobem rozwiązania tego problemu. Jak już wspomnieliśmy, nie spodziewaj się takich samych postępów w poszczególnych tygodniach. Uzyskanie gotowej do produkcji wersji modelu często wymaga dużo czasu. Poprawa modelu może być nieregularna i nieprzewidywalna. Po okresach powolnego postępu mogą występować wzrosty lub wzrosty.

  • Techniczny. Poświęć czas na diagnozowanie i analizowanie nieprawidłowych prognoz. W niektórych przypadkach możesz znaleźć problem, wybierając kilka błędnych prognoz i diagnozując zachowanie modelu w tych instancjach. Możesz na przykład wykryć problemy z architekturą lub danymi. W innych przypadkach pomocne może być uzyskanie większej ilości danych. Możesz otrzymać bardziej wyraźny sygnał, że jesteś na właściwej drodze, lub więcej szumu, co będzie wskazywać na inne problemy.

    Jeśli zajmujesz się problemem, który wymaga zbiorów danych oznaczonych etykietami przez człowieka, uzyskanie oznaczonego etykietami zbioru danych do oceny modelu może być trudne. Znajdź zasoby potrzebne do oceny.

Być może nie da się rozwiązać problemu. Ogranicz swoje podejście do czasu i zatrzymaj podejście, jeśli nie zrobisz w odpowiednim czasie żadnych postępów. Jeśli jednak problem jest przekonujący, prawdopodobnie warto go rozwiązać.