Przygotowanie i inżynieria cech w systemach uczących się

Systemy uczące się pomagają nam wykrywać wzorce w danych – wzorce, których używamy następnie do prognozowania nowych punktów danych Aby te prognozy były zawsze poprawne, musimy utworzyć zbiór danych i odpowiednio przekształcić dane. W tym kursie omawiamy 2 kluczowe kroki. Pokażemy też, jak w tym krokach szkolą się użytkownicy.

Projekt dotyczący systemów uczących się podzielony na 5 etapów. 1. Zdefiniuj problem z systemami uczącymi się i zaproponuj rozwiązanie. 2. Utwórz zbiór danych. 3. Przekształć dane
4. wytrenować model; 5. Używaj modelu do tworzenia prognoz.  Kurs obejmuje tworzenie zbioru danych i przekształcanie danych.

Wymagania wstępne

W tym kursie zakładamy, że masz:

Dlaczego warto dowiedzieć się więcej o przygotowywaniu danych i inżynierii funkcji?

Inżynierię cech możesz traktować jako pomoc w zrozumieniu zbioru danych w ten sam sposób, w jaki go osiągasz. Uczniowie często korzystają z kursów systemów uczących się, które skupiają się na budowaniu modeli, ale później poświęcają znacznie więcej czasu na gromadzenie danych.

W przypadku tego pytania kliknij odpowiednią strzałkę, aby sprawdzić odpowiedź:

Który z tych elementów miałby największy wpływ na realizację jednego z poniższych obszarów w Twoim projekcie systemów uczących się?
jakość i rozmiar danych;
Dane mają wyższy priorytet. To prawda, że zaktualizowanie algorytmu nauczania lub architektury modelu pozwoli Ci poznać różne typy wzorców, ale jeśli Twoje dane są błędne, ostatecznie utworzysz funkcje, które się nie sprawdzą. Jakość i rozmiar zbioru danych mają większe znaczenie niż używany algorytm.
Korzystanie z najnowszego algorytmu optymalizacji
Z pewnością możesz zauważyć doskonalenie optymalizatorów, ale nie będzie to miało tak dużego wpływu na Twój model jak inny element na tej liście.
Głębsza sieć
Głębsza sieć może poprawić model, ale jego wpływ nie będzie tak duży jak żaden inny element na tej liście.
Bardziej inteligentna funkcja utraty
Blisko! Lepsza funkcja utraty jest świetnym rozwiązaniem, ale wciąż zajmuje drugie miejsce wśród pozostałych pozycji na liście.

Dlaczego zbieranie odpowiedniego zbioru danych jest ważne?

Tłumacz Google

„...jednym z największych postępów w obszarze jakości, od którego jest tłumaczenie maszynowe neuronowe, jest określenie najlepszego podzbioru naszych danych treningowych do wykorzystania”.

– inżynier oprogramowania, Tłumacz Google

Zespół Tłumacza Google ma więcej danych treningowych niż jest to możliwe. Zamiast dostrajać swój model, zespół zyskał więcej sukcesów, wykorzystując w swoich danych najlepsze funkcje.

 

 

 

„...w większości przypadków, gdy próbuję ręcznie debugować błędy wyglądające nieprawidłowo, można prześledzić ich problemy z danymi treningowymi”. – inżynier oprogramowania, Tłumacz Google

Błędy „wyglądające ciekawie” są zwykle spowodowane danymi. Błędne dane mogą spowodować, że model nauczy się nieprawidłowych wzorców, niezależnie od stosowanych technik modelowania.

 

 

Projekt Brain's Retinopathy

W projekcie Google Brain dotyczącym retinopatii cukrzycowej wykorzystano architekturę sieci neuronowych znaną jako Inception do wykrywania chorób przez klasyfikację obrazów. Zespół nie ulepszył modeli. Udało jej się stworzyć zbiór danych obejmujący 120 tys. przykładów oznaczonych okulistami. (Więcej informacji znajdziesz na https://research.google.com/pubs/pub43022.html).