If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Algorytmy uczenia maszynowego

„Machine learning”, czyli uczenie maszynowe to rodzaj algorytmu, który ulepsza się na podstawie doświadczenia, a nie poprzez pisanie lepszego algorytmu przez programistę. Algorytm zdobywa doświadczenie, przetwarzając coraz więcej danych, a następnie modyfikując się na podstawie właściwości tych danych.
Istnieje wiele rodzajów technik uczenia maszynowego, spośród których można ogólnie wyodrębnić trzy podejścia:
  • Uczenie przez wzmacnianie: Algorytm wykonuje działania, które zostaną najbardziej nagrodzone. Często stosowane przez AI grające w gry lub roboty nawigacyjne.
  • Uczenie nienadzorowane: Algorytm znajduje wzorce w nieoznaczonych danych poprzez grupowanie i identyfikowanie podobieństw. Popularne zastosowania obejmują systemy rekomendacji i ukierunkowaną reklamę.
  • Uczenie nadzorowane: Algorytm analizuje oznaczone dane i uczy się, jak mapować dane wejściowe na etykietę wyjściową. Często używane do klasyfikacji i prognozowania.
Aby lepiej zrozumieć, jak działa algorytm uczenia maszynowego, przyjrzyjmy się jednej z najpopularniejszych technik uczenia maszynowego.

Sieci neuronowe

Popularnym podejściem do uczenia nadzorowanego jest sieć neuronowa. Sieć neuronowa działa w sposób podobny do tego, jak według naszej najlepszej wiedzy sądzimy, jak działają nasze mózg. Dane wejściowe przepływają, są przetwarzane przez wiele warstw „neuronów” iw procesie ostatecznie prowadzącym do wyniku.
Diagram sieci neuronowej. Koła reprezentują poszczególne neurony, a linie przedstawiają połączenia między neuronami. Sieć zaczyna się po lewej stronie od kolumny 3 neuronów oznaczonych jako wejście, „Input”. Te neurony są połączone z inną kolumną 4 neuronów, która z kolei łączy się z kolejną kolumną 4 neuronów, oznaczoną jako warstwy ukryte, „Hidden layers”. Druga warstwa ukryta neuronów jest połączona z kolumną 3 neuronów oznaczoną jako wyjście, „Output”.

Trenowanie sieci neuronowej

Informatycy nie programują każdego neuronu z osobna. Zamiast tego, trenują sieć neuronową, używając ogromnej ilości odpowiednio oznaczonych danych.
Dane treningowe zależą od celu, dla którego stworzono daną sieć. Jeśli jej celem jest klasyfikacja obrazów, zestaw danych treningowych może zawierać tysiące obrazów oznaczonych jako „ptak”, „samolot” itp.
A grid of images in 10 categories (airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck).
Zdjęcia z zestawu danych treningowych CIFAR10. Źródło zdjęć: CIFAR10
Podczas fazy treningu, sieć neuronowa testuje różne wagi dla połączeń między neuronami, aż znajdzie zestaw wag, który daje poprawną klasyfikację.
Do każdego z połączeń między neuronami przypisana jest pewna waga (reprezentowanej przez odcienie zieleni). Neuron mnoży wagę każdego połączenia przez wartość neuronu wejściowego i sumuje wszystkie te wartości, aby otrzymać jedną liczbę (zaznaczoną na każdym neuronie). Neuron tę wartość do następnej warstwy tylko wtedy, gdy przekroczy on określony próg.
Sieć neuronowa rozpoczyna pracę z wagami ustawionymi na losowe wartości, więc jej początkowe klasyfikacje są dalekie od prawidłowych. Uczy się jednak na swoich błędach i ostatecznie znajduje zestaw wag, które najlepiej sprawdzają się w klasyfikacji wszystkich danych treningowych.

Wykorzystanie sieci neuronowej

Gdy sieć neuronowa napotyka nowy obraz, wykorzystuje wcześniej wytrenowane wagi i generuje możliwe odpowiedzi wraz z ich prawdopodobieństwami.
Diagram sieci neuronowej, na którym koła reprezentują poszczególne neurony, a linie reprezentują połączenia między neuronami. Sieć zaczyna się po lewej stronie od obrazu lisa. Obraz jest podzielony na 4 części, które są połączone z kolumną 4 neuronów, która z kolei łączy się z inną kolumną 4 neuronów. Druga kolumna jest połączona z 3 możliwymi wynikami: „Lis (FOX) (0,85)”, „Pies (DOG) (0,65)” i „Kot (CAT) (0,25)”.

Dokładność

Dokładność sieci neuronowej w dużym stopniu zależy od jej danych treningowych, zarówno od ich ilości, jak i różnorodności. Czy sieć widziała obiekt z różnych kątów i w różnych warunkach oświetleniowych? Czy widziała obiekt na tle wielu różnych teł? Czy naprawdę widziała wszystkie odmiany tego obiektu?
Jeśli chcemy, aby sieć neuronowa naprawdę zrozumiała świat, musimy trenować ją na danych uwzględniających ogromną różnorodność naszego świata.
W następnym artykule zbadamy, co się dzieje, gdy algorytmy uczenia maszynowego są trenowane na stronniczych danych.

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.