Sztuczna inteligencja to bez wątpienia najbardziej rozwijana teraz część świata IT. Wiele urządzeń rozpoznaje przy użyciu sztucznej inteligencji właściwe parametry do działania. Począwszy od ABS-u w samochodzie, przez rozpoznawanie uśmiechu w naszych telefonach, gdy chcemy zrobić sobie selfie w dobrym momencie, aż po wykorzystanie jej przy np. dobieraniu parametrów wytopu metali do różnych celów. Wszystko to określane jest dość niejasnym stwierdzeniem „sztuczna inteligencja”. Określenie to kojarzy się różnym osobom z jakimś mózgiem, który myśli podobnie jak my, ludzie. Niestety nie jest to do końca prawdą. Mimo tego, że jedną z dziedzin sztucznej inteligencji są sieci neuronowe zbudowane z neuronów na wzór tych ludzkich, to na tym podobieństwa się kończą. Jednakże do opisu zjawisk będę korzystał dalej z porównań do nas, ludzi.

Wydaje mi się, że pisanie o tym, „jak to działa” z punktu widzenia technicznego, możemy zostawić sobie na jakieś warsztaty dla zainteresowanych tworzeniem takich sieci. Dzisiaj zajmiemy się zrozumieniem na poziomie dość abstrakcyjnym, jak taka sieć „myśli”.

Pytanie z tytułu tego artykułu może wydawać się infantylne, ale przy prezentacji, jak sieć neuronowa „myśli”, trzeba zastosować jakiś przykład, który można w prosty sposób zrozumieć.

 

Krótka historia o… stworku AI

Wyobraźmy sobie, że mamy stworka, który ma 9 oczów. Cztery pary patrzące na boki i jedno oko umieszczone na środku. Dodatkowo oczy stworka są w stanie patrzeć tylko na wprost, nie potrafią się poruszać w żadną stronę. Stworek, nazwijmy go Zygmunt, nie potrafi się poruszać w każdym zakresie. Jego nóżki umożliwiają mu tylko chodzenie do przodu i kręcenie się w kółko w jedną i drugą stronę. Nie potrafi też chodzić do tyłu, a wiadomo, że w stworkowym świecie jest to dużym utrudnieniem. Zygmunt jest wielbicielem jabłuszek, ale lubi tylko ładne, czerwone jabłka, bo po zielonych, niedojrzałych, jest mu bardzo niedobrze.

Stworek Zygmunt — jako dziecko.

Nie bardzo orientuje się, które oko w którą stronę patrzy, więc często rozbija się o ściany albo, co gorsza, zjada zielone jabłuszko.

 

Sieć neuronową działającą w tym przykładzie nazywamy profesjonalnie siecią z wsteczną propagacją błędu (backpropagation method).

Działa w taki sposób, że gdy Zygmunt popełni jakiś błąd (np. uderzy w ścianę albo zje zielone jabłko), to do neuronów przekazywana jest informacja, że ostatnia decyzja była bardzo zła. Gdy stworek zje czerwone jabłuszko, wtedy sieć neuronowa dostaje informację, że ostatnia decyzja była bardzo dobra.

W taki sposób powoli Zygmunt nauczy się, które podejmowane akcje są dla niego dobre, a które prowadzą go w złą stronę. Taki system „kar i nagród” powoduje, że w pewnym momencie stworek nie popełnia już tak wielu błędów, ale niestety dalej mu się one zdarzają. Mówimy wtedy o tym, że sztuczna inteligencja jest na poziomie np. 97% — czyli w 3% przypadków popełni błąd.

 

RST Software Masters Sieć neuronowa

Skąd sztuczna inteligencja bierze wiedzę?

Każda sieć neuronowa potrzebuje kilku rzeczy, aby mogła nauczyć się tego, czego chcemy, żeby się nauczyła. Mówimy o „zbiorze danych”, z którego sieć może czerpać, żeby się tego nauczyć. Możemy podzielić te zbiory danych na dwa rodzaje:

  • Gotowy już zbiór danych, np. wyniki osób chorych z wykrytymi u nich chorobami. Dzięki temu wiemy, jakie dane wejściowe zastosować do sieci neuronowej (oczy Zygmunta) — w tym wypadku będą to wyniki badań pacjentów. Wiemy też, jaka powinna być odpowiedź z sieci neuronowej (co mają robić nóżki Zygmunta), czyli jaka choroba na podstawie tych danych została wykryta.
  • Drugi zbiór jest wynikiem symulacji. W przypadku filmiku powyżej stworzono dla Zygmunta wirtualny labirynt, a w nim losowo poustawiane jabłuszka. Symulacja podaje sieci neuronowej odczyty z czujników, a w odpowiedzi dostaje informacje o ruchu stworka i symuluje ten ruch.

W obu przypadkach ważne jest, żeby danych było dostatecznie dużo. W symulacji ich nie zabraknie, ale gdy bierzemy jakieś dane z świata, musi być ich odpowiednio dużo. Dla uproszczenia przyjmuje się, że minimalna liczba danych powinna wynosić:

10n — gdzie n to liczba „decyzji”, jaką sieć może podjąć.

W przypadku Zygmunta, który chodzi tylko do przodu i kręci się w dwie strony, n będzie równe 3, więc danych do nauki powinno być przynajmniej 1000. W symulacji na pewno jest więcej takich sytuacji. A teraz wyobraźmy sobie, ile musimy mieć danych, żeby móc wykrywać na podstawie wyników badań krwi 10 różnych chorób. Sporo, prawda?

 

Czy Zygmunt polubi się z AI?

 

Po kilkudziesięciu minutach nauki Zygmunt biega i zjada czerwone jabłuszka jak oszalały. Nauczył się po drodze, które oko patrzy w którą stronę. Zrozumiał, że odległości, które widzi w skrajnych oczach, są mniej istotne niż pojawiająca się ściana widziana z oka środkowego.

Jeżeli chcesz się pobawić swoim stworkiem, to zapraszam do odwiedzenia strony Uniwersytetu Stanforda

Udostępnij
Czy ten artykuł był pomocny?
Tak1
Nie0

Tagi