Uczenie maszynowe
Definicja
Najprościej rzecz ujmując uczenie maszynowe to dziedzina nauki (wchodząca w skład sztucznej inteligencji), która umożliwia komputerowi nauke bez jego wcześniejszego zaprogramowania. Uczenie maszynowe dąży do zrozumienia ludzkiego mózgu i podejmowania decyzji takich jakich dokonałby człowiek.
Program komputerowy uczy się z doświadczenia E do zadanej klasy zadań T, która jest mierzona miarą wykonania P. Mówimy, że program komputerowy uczy się wtedy gdy miara jego wykonania wzrasta wraz z doświadczeniem.
Kolokwialnie:
Formalnie:
Uczenie maszynowe w życiu codziennym
Dla przeciętnego zjadacza chleba, pojęcie uczenia maszynowego wydaje się dosyć odległym pojęciem na pograniczu sci-fi, a nauki. Nic bardziej mylnego! Możemy nie dostrzegać zastosowania w życiu codziennym, ale uczenie maszynowe jest wszechobecne.
- Wyszukiwarka google
- Metody rozpoznawania pisma
- Systemy rekomendujące (reklamy, filmy, itp)
W internecie jesteśmy wręcz osaczeni produktami uczenia maszynowego, choć często nie zdajemy sobie z tego sprawy
Dobrymi przykładami są:
Podział metod uczenia
Uczenie maszynowe można podzielić przede wszystim ze względu na obecność "opiekuna".
W tym sposobie uczenia dostarczamy dane (doświadczenie), które dla każdego z przykładów zawiera zmienne oraz co najważniejsze; wynik, podjęte działanie (na podstawie danych).
W tym sposobie dostarczamy tylko dane - wektor zmiennych, program natomiast na ich podstawie ma sam wywnioskować jaka powinno zostać podjęta finalna decyzja
- uczenie maszynowe nadzorowane (z opiekunem)
- uczenie maszynowe nienadzorowane
Uczenie nadzorowane - przykład
Dane - zebrane informacje o lotach pasażerskich
Zmienne - warunki atmosferyczny
Wynik - czy pilot może lądować (tak/nie)
OPADY | WIATR | ZACHMURZENIE | TEMPERATURA | WYNIK |
---|---|---|---|---|
lekkie | 14km/h | brak | 18C | TAK |
ulewa | 45km/h | umiarkowane | -15C | NIE |
mżawka | 60km/h | pełne | 12C | NIE |
brak | 10km/h | umiarkowane | 25C | TAK |
Z tak przygotowanego zestawu trenującego komputer wyciąga pewne wnioski i w przyszłości będzie w stanie podjąć decyzje zbliżoną do zachowania realnego pilota. Im większy zestaw trenujący tym większe prawdopodobieństwo dokonania poprawnej decyzji (takiej jaką podjąłby człowiek) przez komputer. Metody wnioskowania przedstawię w dalszych slajdach prezentacji
Uczenie nienadzorowane - przykład
Odnosząc się do poprzedniego przykładu dane dla uczenia nienadzorowanego wyglądałyby tak samo tyle, że bez ostatniej kolumny WYNIK.
- podejmowanie decyzji o reklamowaniu ulubionych produktów na podstawie odwiedzanych stron
- kojarzenie ludzi w grono znajomych na podstawie ich wzajemnej korespondencji
Innymi przykładami uczenia nienadzorowanego mogą być:
Regresja liniowa

Zakładamy, że dane są zbliżone do pewnej lini (funkcji liniowej). Zadaniem regresji liniowej jest znalezienie tej funkcji, czyli zależności między zmiennymi, która najlepiej przybliża dane.
Niech za przykład posłuży znalezienie IQ badanej osoby na podstawie jej oceny z matematyki. Każdy punkt oznacza 1 osobę. Regresja próbuje znaleźć taką funkcję liniową, wokół której zbierze się najwięcej punktów. Bywa jednak tak, że punkty są tak porozrzuczane, że znalezienie funkcji niewiele daje.
Iteracyjne metody optymalizacji
Metoda gradientu jest jednym z najprostszych algorytmów optymalizacji - iteracyjny algorytm minimalizujący koszty (wyszukuje minimum zadanej funkcji). Jedną z popularniejszych metod jest metoda Newtona przedstawiona poniżej:

Przykładowe metody uczenia w sztucznej inteligencji
Sztuczna inteligencja poświęca dużo miejsca na uczenie maszynowe. Jednymi z popularniejszych metod nauczania są:
- algorytmy genetyczne
- sieci neuronowe
- drzewa decyzyjne
W dalszej części prezentacji, przedstawię szczegółowo uczenie maszynowe na przykładzie drzewa decyzyjnego
Drzewa decyzyjne
Na podstawie zebranych danych zestawu treningowego w procesie uczenia nadzorowanego, dochodzi do wygenerowania struktury drzewiastej, która w zależności od danych, w konkretny sposób klasyfikuje przypadek testowy.
Jako przykład posłuże się własnym projektem o nazwie Garbage-Robot stworzony na potrzeby przedmiotu sztuczna inteligencja. Na kolejnych slajdach przedstawię problemy robota oraz wygenerowane drzewo decyzyjne.
Przykład inteligentny robot sprzątający:
Drzewa decyzyjne cd.

Robot czyszczący wchodzi na brud. Wczytuje parametry brudu i na ich podstawie oraz wygenerowanego drzewa decyzyjnego, odpowiednio klasyfikuje brud jako konkretne zabrudzenie oraz decyduje o środkach czystości, a także narzędziu czyszczenia.
Drzewa decyzyjne cd.
Drzewo decyzyjne zostało wygenerowane algorytmem J48. Jak łatwo zauważyć, w takiej strukturze pewne parametry mają wyższy priorytet od innych i często na podstawie kilku parametrów można podjąć jednoznaczną decyzje, bez analizowania reszty parametrów.
J48 pruned tree
------------------
isSticky = true
| isGreasy = true
| | isFruity = true: cake (50.0)
| | isFruity = false
| | | wetness <= 39
| | | | colorIntensity <= 58: glue (50.0)
| | | | colorIntensity > 58: lubricant (50.0)
| | | wetness > 39
| | | | wetness <= 59: oil (50.0)
| | | | wetness > 59
| | | | | dangerousBacteries <= 37: dressing (50.0)
| | | | | dangerousBacteries > 37: sauce (50.0)
| isGreasy = false
| | smellIntensity <= 22
| | | roughness <= 7: blood (50.0)
| | | roughness > 7: mud (50.0)
| | smellIntensity > 22
| | | isFruity = true: rot (50.0)
| | | isFruity = false
| | | | colorIntensity <= 42: paste (50.0)
| | | | colorIntensity > 42: fungus (50.0)
isSticky = false
| wetness <= 44
| | smellIntensity <= 8
| | | density <= 39: sand (50.0)
| | | density > 39
| | | | colorIntensity <= 63: glass (50.0)
| | | | colorIntensity > 63: paper (50.0)
| | smellIntensity > 8
| | | isFruity = true: grass (50.0)
| | | isFruity = false: dust (50.0)
| wetness > 44
| | isFruity = true: wine (50.0)
| | isFruity = false
| | | wetness <= 94
| | | | smellIntensity <= 19: ink (50.0)
| | | | smellIntensity > 19: coffee (50.0)
| | | wetness > 94: water (50.0)
Number of Leaves : 20
Size of the tree : 39
Algorytmy genetyczne
Krótko mówiąc, jest to symulacja w pamięci komputera populacji jakiegoś gatunku. Na daną populacje mogą składać się nawet tysyiące czy setki tysiący osobników. Takie osobniki ewoolują (mutacja) oraz krzyżują się w celu wytworzenia co raz lepszego potomstwa. Łatwo zauważyć analogie tych algorytmów chociażby w procesje ewolucji człowieka, i tak właśnie jest, algorytmy genetyczne czerpią inspiracje z natury
Przykład - problem komiwojażera:
osobnik - konkretna trasa
mutacje - wymiana miast
krzyżowanie - wymiana częsci trasy między osobnikami
Im dłuższe itereacje tym lepszy wynik - krótsza znaleziona trasa
Sieci neuronowe
Sieci neurowonowe to kolejny przykład algorytmów, który inspirację czerpie z natury. Jak sama nazwa mówi, komputer symuluje sieć neuronów (podobnych do tych w mózgu człowieka) w celu poprawnej klasyfikacji problemu.

Struktura takiej sieci to graf zbudowany z wezłów (neuronów), połączonych oznakowanymi łukami, które przesyłają sygnał między neuronami.
Systemy ekspertowe
Systemy ekspertowe są świetnym przykładem zastosowania uczenia maszynowego w życiu codziennym. Na podstawie zebranych wielu tysięcy danych (zestawu uczącego) i przy pomocy wybranej metody uczącej, następuje proces nauki. Systemy ekspertowe mają służyć do podejmowania decyzji popartej wcześniejszym doświadczeniem.
Dobrym przykładem takiego systemu jest serwis filmweb.pl, który na podstawie obejrzanych i ocenionych filmów oraz aktorów proponuje nam filmy do obejrzenia, które mają procentową szanse na spodobanie się nam. Innym przykładem jest wspomaganie decyzji pilota w samolocie czy też system wyświetlania spersonalizowanych reklam.
Źródła:
Obrazek regresji liniowej:
www.naukowiec.org/wiedza/statystyka/regresja-liniowa_765.html
Obrazek sieci neuronowej:
www.ticker.pl/C4/P/artykuly.dladoswiadczonych/Sieci_neuronowe.odt.html
Uczenie maszynowe
By madjer22
Uczenie maszynowe
- 1,126