Zależności danych

Dane są tak ważne dla deweloperów systemów uczących się, jak kod dla tradycyjnych programistów. Ta lekcja koncentruje się na rodzajach pytań, jakie należy sobie zadać.

Zależności danych

  • Dane wejściowe (funkcje) określają działanie systemu ML.
    • Piszemy testy jednostkowe w bibliotekach oprogramowania, ale co z danymi?
  • Przy wyborze sygnałów wejściowych musisz zachować ostrożność.
    • Być może musisz o wiele bardziej uważać niż przy wyborze bibliotek oprogramowania?
  • Niezawodność
    • Co się dzieje, gdy sygnał jest niedostępny? Czy wiesz?
  • Niezawodność
    • Co się dzieje, gdy sygnał jest niedostępny? Czy wiesz?
  • Obsługa wersji
    • Czy system, który oblicza ten sygnał, może się zmienić? Jak często? Co się stanie?
  • Niezawodność
    • Co się dzieje, gdy sygnał jest niedostępny? Czy wiesz?
  • Obsługa wersji
    • Czy system, który oblicza ten sygnał, może się zmienić? Jak często? Co się stanie?
  • Potrzeba
    • Czy przydatność tego sygnału uzasadnia koszty jego uwzględnienia?
  • Korelacje
    • Czy któreś z sygnałów wejściowych są tak powiązane, że potrzebujemy dodatkowych strategii?
  • Korelacje
    • Czy któreś z sygnałów wejściowych są tak powiązane, że potrzebujemy dodatkowych strategii?
  • Pętle informacji zwrotnych
    • Na które sygnały wejściowe mogą wpływać dane wyjściowe modelu?

Podsumowanie wykładu wideo

Działanie systemu ML zależy od zachowania i jakości jego funkcji wejściowych. Gdy dane wejściowe tych funkcji zmieniają się, zmienia się również model. Niekiedy ta zmiana jest pożądana, ale nie zawsze.

W tradycyjnym programowaniu oprogramowania skupiasz się bardziej na kodzie niż na danych. Chociaż programowanie systemów uczących się jest wciąż częścią pracy, zagadnienia muszą obejmować poszerzanie zakresu informacji. Na przykład w tradycyjnych projektach programistycznych sprawdzoną metodą jest napisanie testów jednostkowych, by sprawdzić kod. W projektach ML musisz też stale testować, weryfikować i monitorować dane wejściowe.

Na przykład stale monitoruj model, aby usuwać nieużywane (lub rzadko używane) funkcje. Wyobraź sobie, że określona cecha ma niewielki wpływ na model. Jeśli dane wejściowe tej funkcji gwałtownie się zmienią, zachowanie Twojego modelu może się od razu zmienić w nieoczekiwany sposób.

Niezawodność

Oto kilka pytań o niezawodność danych wejściowych:

  • Czy sygnał jest zawsze dostępny, czy pochodzi z niezaufanego źródła? Przykład:
    • Czy sygnał pochodzi z serwera, który ulega awarii z powodu dużego obciążenia?
    • Czy sygnał pochodzi od ludzi, którzy każdego sierpnia wyjeżdżają na wakacje?

Obsługa wersji

Pytania dotyczące wersji:

  • Czy system, który przetwarza te dane, zmienia się? Jeśli tak:
    • Jak często?
    • Skąd będziesz wiedzieć, że system się zmienił?

Czasami dane pochodzą z procesu przesyłania wychodzącego. Jeśli proces nagle się zmieni, może to ucierpieć.

Rozważ utworzenie własnej kopii danych otrzymanych w ramach procesu przesyłania. Następnie przejdź do następnej wersji danych na żądanie, jeśli masz pewność, że jest to bezpieczne.

Potrzeba

To pytanie może Ci przypominać o regularizacji:

  • Czy przydatność tej funkcji uzasadnia jej zastosowanie?

Zawsze kuszące jest dodawanie kolejnych funkcji do modelu. Załóżmy na przykład, że znajdujesz nową funkcję, której dodanie sprawia, że model jest nieco dokładniejszy. Większa dokładność to z pewnością lepszy dźwięk niż mniejsza dokładność. Właśnie udało Ci się dodać do zadań konserwacyjnych. Ta dodatkowa funkcja może niespodziewanie ulec obniżeniu, więc musisz ją monitorować. Dobrze się zastanów, zanim dodasz funkcje, które mogą zapewnić niewielkie korzyści krótkoterminowe.

Korelacje

Niektóre funkcje korelują (pozytywnie lub negatywnie) z innymi funkcjami. Zadaj sobie to pytanie:

  • Czy jakieś cechy są tak powiązane, że potrzebujesz dodatkowych strategii, by je odróżnić?

Pętle informacji zwrotnych

Czasami model może wpływać na swoje dane treningowe. Z kolei wyniki z niektórych modeli z kolei bezpośrednio lub pośrednio tworzą funkcje dla tego samego modelu.

Czasami model może mieć wpływ na inny model. Weźmy na przykład 2 modele do prognozowania cen akcji:

  • Model A, który jest niewłaściwym modelem prognozującym.
  • Model B.

Model A jest wadliwy, więc postanowił omyłkowo kupić akcje w magazynie X. Te zakupy zwiększają cenę akcji X. Model B wykorzystuje cenę akcji X jako funkcję wejściową, więc model B może łatwo wyciągać fałszywe wnioski na temat wartości akcji x. Model B może więc kupować lub sprzedawać akcje X akcji w zależności od nieprawidłowego działania modelu A. Działanie modelu B z kolei może wpływać na model A i może prowadzić do manii typu tulipany lub slajdu w magazynie firmy X.