Jak podejść do problemów z uczeniem maszynowym

Opublikowany: 2022-03-11

Jednym z głównych zadań komputerów jest automatyzacja zadań człowieka. Niektóre z tych zadań są proste i powtarzalne, na przykład „przenieś X z A do B”. O wiele ciekawiej robi się, gdy komputer musi podejmować decyzje dotyczące problemów, które są znacznie trudniejsze do sformalizowania. To tutaj zaczynamy napotykać podstawowe problemy z uczeniem maszynowym.

Problemy z uczeniem maszynowym obejmują ilustrację

Historycznie, takie algorytmy zostały zbudowane przez naukowców lub ekspertów, którzy mieli dogłębną wiedzę w swojej dziedzinie i były w dużej mierze oparte na regułach. Wraz z eksplozją mocy obliczeniowej oraz dostępnością dużych i zróżnicowanych zestawów danych, nacisk został przesunięty na bardziej obliczeniowe podejście.

Większość spopularyzowanych obecnie koncepcji uczenia maszynowego ma do czynienia z sieciami neuronowymi, co z mojego doświadczenia wynika, że ​​wielu ludzi ma wrażenie, że sieci neuronowe są swego rodzaju cudowną bronią dla wszystkich problemów z wnioskowaniem. W rzeczywistości jest to dość dalekie od prawdy. W oczach statystyka tworzą one jedną klasę podejść do wnioskowania z powiązanymi z nimi mocnymi i słabymi stronami, a to, czy sieci neuronowe będą najlepszym rozwiązaniem, całkowicie zależy od problemu.

Często są lepsze podejścia.

W tym artykule przedstawimy strukturę rozwiązywania problemów z uczeniem maszynowym. Nie ma możliwości wchodzenia w szczegóły dotyczące konkretnych modeli uczenia maszynowego, ale jeśli ten artykuł wzbudzi zainteresowanie, kolejne artykuły mogą oferować szczegółowe rozwiązania niektórych interesujących problemów z uczeniem maszynowym.

Najpierw jednak poświęćmy trochę wysiłku, aby pokazać, dlaczego powinieneś być bardziej ostrożny, niż automatycznie myśleć o „sieci neuronowej” w obliczu problemu z uczeniem maszynowym.

Plusy i minusy sieci neuronowych

W przypadku sieci neuronowych wnioskowanie odbywa się za pomocą ważonej „sieci”. Wagi są kalibrowane podczas tzw. procesu „uczenia się”, a następnie stosowane w celu przypisania wyników do danych wejściowych.

Choć może się to wydawać proste, wszystkie wagi są parametrami skalibrowanej sieci, a zwykle oznacza to zbyt wiele parametrów, aby człowiek mógł je zrozumieć.

Ilustracja wejścia-wyjścia teorii sieci neuronowych

Równie dobrze moglibyśmy więc uznać sieci neuronowe za swego rodzaju czarną skrzynkę wnioskowania, która łączy dane wejściowe z danymi wyjściowymi, bez żadnego konkretnego modelu pomiędzy nimi.

Przyjrzyjmy się bliżej plusom i minusom tego podejścia.

Zalety sieci neuronowych

  • Dane wejściowe to same dane. Użyteczne wyniki nawet przy niewielkiej lub zerowej inżynierii funkcji.
  • Umiejętność do trenowania. Bez inżynierii funkcji nie ma potrzeby posiadania tak trudnych do rozwinięcia umiejętności, jak intuicja czy wiedza specjalistyczna. Dostępne są standardowe narzędzia do ogólnych wniosków.
  • Dokładność wzrasta wraz z ilością danych. Im więcej danych wejściowych widzi, tym lepiej działa sieć neuronowa.
  • Może przewyższać klasyczne modele, gdy nie ma pełnych informacji o modelu. Pomyśl na przykład o nastrojach społecznych.
  • Wnioskowanie otwarte może wykryć nieznane wzorce. Jeśli użyjesz modelu i pominiesz w nim uwagę, nie wykryje on odpowiedniego zjawiska. Sieci neuronowe mogą.

Przykład udanej sieci neuronowej: sztuczna inteligencja Google znalazła planetę krążącą wokół odległej gwiazdy – w przeciwieństwie do NASA – poprzez analizę zgromadzonych danych teleskopu.

Wady sieci neuronowych

  • Wymagają dużej ilości (z adnotacjami!) danych. Po pierwsze, ta ilość danych nie zawsze jest dostępna. Konwergencja jest powolna. Model bryłowy (powiedzmy, w fizyce) można skalibrować po kilku obserwacjach — w przypadku sieci neuronowych to nie wchodzi w rachubę. Adnotacja to dużo pracy, nie wspominając o tym, że sama w sobie nie jest niezawodna.
  • Brak informacji o wewnętrznej strukturze danych. Czy jesteś zainteresowany tym, na czym opiera się wnioskowanie? Tu nie ma szczęścia. Zdarzają się sytuacje, w których ręczna korekta danych poprawia wnioskowanie skokowo, ale sieć neuronowa nie będzie w stanie w tym pomóc.
  • Problemy z nadmiernym dopasowaniem. Często zdarza się, że sieć ma więcej parametrów niż to uzasadniają dane, co prowadzi do nieoptymalnego wnioskowania.
  • Wydajność zależy od informacji. Jeśli istnieje pełna informacja o problemie, model bryłowy ma tendencję do przewyższania wydajnością sieci neuronowej.
  • Wystąpiły problemy z próbkowaniem. Sampling to zawsze delikatna kwestia, ale mając model, można szybko wyrobić sobie pojęcie próbkowania problematycznego. Sieci neuronowe uczą się tylko na podstawie danych, więc jeśli otrzymają stronnicze dane, będą miały stronnicze wnioski.

Przykład porażki: Osobista osoba powiedziała mi o dużej korporacji (której nie potrafię nazwać), która pracowała nad wykrywaniem pojazdów wojskowych na zdjęciach lotniczych. Mieli obrazy, na których były takie pojazdy, a inne, które nie. Większość zdjęć pierwszej klasy została wykonana w deszczowy dzień, podczas gdy ta druga została wykonana przy słonecznej pogodzie. W rezultacie system nauczył się odróżniać światło od cienia.

Podsumowując, sieci neuronowe tworzą jedną klasę metod wnioskowania, które mają swoje wady i zalety.

Fakt, że ich popularność w oczach opinii publicznej przyćmiewa wszystkie inne metody statystyczne, prawdopodobnie ma więcej wspólnego z ładem korporacyjnym niż z czymkolwiek innym.

Szkolenie ludzi w zakresie korzystania ze standardowych narzędzi i ustandaryzowanych metod sieci neuronowych jest procesem o wiele bardziej przewidywalnym niż polowanie na ekspertów dziedzinowych i artystów z różnych dziedzin. Nie zmienia to jednak faktu, że użycie sieci neuronowej do prostego, dobrze zdefiniowanego problemu to tak naprawdę strzelanie do wróbla z armaty: wymaga dużej ilości danych, wymaga dużo pracy z adnotacjami, a w zamian może po prostu gorsze w porównaniu z modelem bryłowym. Nie najlepszy pakiet.

Wciąż jednak jest ogromna siła w tym, że „demokratyzują” wiedzę statystyczną. Gdy rozwiązanie wnioskowania oparte na sieci neuronowej jest postrzegane jako zwykłe narzędzie programistyczne, może pomóc nawet tym, którzy nie czują się komfortowo ze złożonymi algorytmami. Tak więc nieuchronnie powstaje wiele rzeczy, które w przeciwnym razie nie istniałyby, gdybyśmy mogli operować tylko wyrafinowanymi modelami.

Podejście do problemów z uczeniem maszynowym

Zbliżając się do problemów z uczeniem maszynowym, oto kroki, przez które musisz przejść:

  • Ustalanie kryteriów akceptacji
  • Czyszczenie danych i maksymalizacja zawartości informacji
  • Wybór najbardziej optymalnego podejścia do wnioskowania
  • Trenuj, testuj, powtarzaj

Przyjrzyjmy się szczegółowo tym przedmiotom.

Różne etapy problemu z uczeniem maszynowym

Ustalanie kryteriów akceptacji

Powinieneś mieć pojęcie o dokładności swojego celu tak szybko, jak to możliwe, w miarę możliwości. To będzie cel, do którego dążysz.

Oczyszczanie danych i maksymalizacja ich zawartości informacyjnej

To jest najbardziej krytyczny krok. Przede wszystkim Twoje dane nie powinny zawierać (lub niewiele) błędów. Oczyszczenie go z nich jest niezbędnym pierwszym krokiem. Zastąp brakujące wartości, spróbuj zidentyfikować wzorce, które są oczywiście fałszywe, wyeliminuj duplikaty i wszelkie inne anomalie, które możesz zauważyć.

Jeśli chodzi o informacje, jeśli twoje dane są bardzo pouczające (w sensie liniowym), to praktycznie każda metoda wnioskowania da dobre wyniki. Jeśli nie ma tam wymaganych informacji, wynikiem będzie szum. Maksymalizacja informacji oznacza przede wszystkim znalezienie użytecznych nieliniowych zależności w danych i ich linearyzację. Jeśli to znacznie poprawi dane wejściowe, to świetnie. Jeśli nie, może być konieczne dodanie większej liczby zmiennych. Jeśli to wszystko nie przyniesie owoców, może ucierpieć dokładność celu.

Przy odrobinie szczęścia pojawią się pojedyncze zmienne, które będą przydatne. Możesz zidentyfikować przydatne zmienne, jeśli – na przykład – wykreślisz je w odniesieniu do zmiennej docelowej uczenia się i stwierdzisz, że wykres jest podobny do funkcji (tj. wąski zakres na wejściu odpowiada wąskiemu zakresowi na wyjściu). Tę zmienną można następnie zlinearyzować — na przykład, jeśli wykreśla się ją jako parabolę, odejmij niektóre wartości i wyciągnij pierwiastek kwadratowy.

W przypadku zmiennych, które są zaszumione — wąski zakres na wejściu odpowiada szerokiemu zakresowi na wyjściu — możemy spróbować połączyć je z innymi zmiennymi.

Aby mieć pojęcie o dokładności, możesz chcieć zmierzyć warunkowe prawdopodobieństwa klas dla każdej ze zmiennych (w przypadku problemów z klasyfikacją) lub zastosować bardzo prostą formę regresji, taką jak regresja liniowa (w przypadku problemów z przewidywaniem). Jeśli zawartość informacyjna danych wejściowych ulegnie poprawie, twoje wnioskowanie również ulegnie poprawie i po prostu nie chcesz tracić zbyt wiele czasu na tym etapie kalibracji modelu, gdy dane nie są jeszcze gotowe. Dlatego testowanie powinno być tak proste, jak to tylko możliwe.

Wybór najbardziej optymalnego podejścia do wnioskowania

Gdy dane będą w przyzwoitym stanie, możesz skorzystać z metody wnioskowania (w razie potrzeby dane mogą być później dopracowane).

Czy powinieneś użyć modelu? Cóż, jeśli masz dobry powód, by sądzić, że możesz zbudować dobry model do tego zadania, prawdopodobnie powinieneś. Jeśli tak nie sądzisz, ale jest dużo danych z dobrymi adnotacjami, możesz korzystać z sieci neuronowej bez użycia rąk. Jednak w praktycznych zastosowaniach uczenia maszynowego często nie ma na to wystarczającej ilości danych.

Gra celność kontra osłona często ogromnie się opłaca. Podejścia hybrydowe są zwykle całkowicie w porządku. Załóżmy, że dane są takie, że za pomocą prostego modelu można uzyskać prawie 100% dokładność na 80% z nich? Oznacza to, że możesz szybko zademonstrować wyniki, a jeśli twój system może zidentyfikować, kiedy działa na terytorium przyjaznym dla 80%, to w zasadzie rozwiązałeś większość problemu. Twój klient może nie być jeszcze w pełni zadowolony, ale szybko zdobędziesz jego zaufanie. I nic nie stoi na przeszkodzie, abyś zrobił coś podobnego z pozostałymi danymi: przy rozsądnym wysiłku teraz pokrywasz, powiedzmy, 92% danych z 97% dokładnością. To prawda, w przypadku pozostałych danych jest to rzut monetą, ale już wytworzyłeś coś użytecznego.

W większości praktycznych zastosowań jest to bardzo przydatne. Powiedzmy, że zajmujesz się pożyczkami i chcesz zdecydować, komu udzielić pożyczki, a wszystko, co wiesz, to to, że w przypadku 70% klientów Twój algorytm jest bardzo dokładny. Świetnie — to prawda, pozostałe 30% Twoich kandydatów będzie wymagać więcej przetwarzania, ale 70% można w pełni zautomatyzować. Albo: załóżmy, że próbujesz zautomatyzować pracę operatora dla call center, możesz wykonać dobrą (szybką i brudną) pracę tylko w przypadku najprostszych zadań, ale te zadania obejmują 50% połączeń? Świetnie, call center oszczędza pieniądze, jeśli może niezawodnie zautomatyzować 50% swoich połączeń.

Podsumowując: Jeśli dane nie są wystarczająco pouczające lub problem jest zbyt złożony, aby rozwiązać go w całości, myśl nieszablonowo. Identyfikuj przydatne i łatwe do rozwiązania podproblemy, dopóki nie znajdziesz lepszego pomysłu.

Po przygotowaniu systemu ucz się go, testuj i zapętlaj, aż będziesz zadowolony z wyników.

Trenuj, testuj, powtarzaj

Po poprzednich krokach pozostało niewiele zainteresowania. Masz dane, masz metodę uczenia maszynowego, więc czas na wyodrębnienie parametrów poprzez uczenie, a następnie przetestowanie wnioskowania na zbiorze testowym. Literatura sugeruje, że 70% zapisów należy wykorzystać do szkolenia, a 30% do testowania.

Jeśli jesteś zadowolony z wyników, zadanie jest zakończone. Ale bardziej prawdopodobne jest, że w trakcie procedury opracowałeś kilka nowych pomysłów, które mogą pomóc ci zwiększyć dokładność. A może potrzebujesz więcej danych? A może po prostu więcej czyszczenia danych? A może inny model? Tak czy inaczej, są szanse, że będziesz zajęty przez dłuższy czas.

Powodzenia i miłej pracy!

Związane z:
  • Maszyny i zaufanie: jak złagodzić uprzedzenia AI
  • Stars Realigned: Poprawa systemu oceny IMDb