Technologie i wydarzenia
Artykuł
Mateusz Brzostek, Wtorek, 27 września 2016, 18:13

Machine learning – zastosowania praktyczne

Sieci neuronowe budzące dziś największą fascynację inżynierów i statystyków są wielowarstwowe, wykorzystują różne kombinacje topologii i łączą segmenty uczone pod nadzorem z uczonymi bez nadzoru. Proste sieci są wykorzystywane od dziesiątków lat na przykład do rozpoznawania pisma odręcznego w bankach i na pocztach i rozwiązywania innych problemów tam, gdzie nie są potrzebne gigantyczne zbiory danych ani wysokie poziomy abstrakcji. W tym i podobnych zastosowaniach sieć uczy się tylko raz: duża moc obliczeniowa jest potrzebna jedynie do uczenia, do „codziennej pracy” sieci wystarczają już znacznie prostsze komputery.

Ekscytację w mediach i biznesie budzą głównie najbardziej złożone sieci, występujące pod wspomnianymi na pierwszej stronie sloganami deep learning, machine learning, convolutional networks. Rozwój niejako sam się ukierunkował na ten rodzaj sieci: ich koncept nie jest niczym nowym, ale dostępność komputerów o mocy obliczeniowej dość dużej, żeby je skutecznie zasymulować, dopiero teraz pozwala prowadzić badania w tym kierunku i wykorzystać głębokie sieci w praktyce.

Wśród najistotniejszych praktycznych, nie badawczych zastosowań głębokich sieci jest rozpoznawanie obrazów. Możliwość odróżniania przedstawionych osób niezależnie od pozycji kamery i warunków oświetleniowych jest atrakcyjna dla organizacji zajmujących się bezpieczeństwem. Rozpoznawanie elementów otoczenia i ruchomych obiektów jest kluczowym wynalazkiem umożliwiającym budowanie samoprowadzących się samochodów. Głębokie sieci są już w większości przypadków lepsze od człowieka w rozpoznawaniu obrazów – oczywiście, o ile widziały coś podobnego wcześniej.

Doskonałym przykładem różnicy między ręcznie zaprogramowanymi algorytmami a samouczącymi się są komputerowe gry w szachy i go. Najlepsze programy szachowe nie wykorzystują samouczących się algorytmów: problem gry w szachy jest tak dobrze poznany i zanalizowany, że ręczne programowanie reguł podejmowania decyzji w połączeniu z „siłowym” sprawdzaniem możliwych pozycji na wiele ruchów do przodu skutkuje najsilniejszą grą komputera. Najlepsza grająca w szachy sieć neuronowa gra na poziomie około 2400 Elo, podczas gdy najlepsi gracze przekraczają 2800 Elo, a najlepsze tradycyjne programy szachowe wygrywają z ludźmi bez problemu.

W go jest znacznie więcej możliwych pozycji niż w szachach i przeszukiwanie wszystkich potencjalnych ruchów w poszukiwaniu najlepszego jest zupełnie niepraktyczne w przypadku dzisiejszych komputerów. Również liczba wyborów strategicznych, jakie mogą w odległych ruchach dać korzyść, jest znacznie większa i trudno stworzyć praktyczny katalog gambitów. Pierwszym algorytmem komputerowym, który odniósł sukces w go, jest AlphaGo, sieć neuronowa stworzona przez Google, która po nauczeniu na przykładzie dziesiątek milionów gier między ludźmi (uczenie nadzorowane), a następnie milionów gier przeciwko sobie samej (uczenie nienadzorowane) wygrała z najlepszymi graczami go na świecie. Zamiast przeszukiwać wszystkie możliwe kolejne ruchy, AlphaGo sprawdza tylko te potencjalnie korzystne – ale wyuczone reguły decydują o tym, co jest potencjalnie korzystne, lepiej niż najlepsze ręcznie sformułowane zasady. Choć wyuczona sieć grała z użyciem typowego komputera z wielordzeniowym procesorem, sam proces uczenia wymagał zaangażowania serwerów obliczeniowych chmury Google. 

Ograniczenia i problemy praktyczne

Sieci neuronowe wymagają niesłychanej mocy obliczeniowej: symulacja sztucznych neuronów odbywa się całkowicie programowo. Do tego apetyt tej branży na pamięć i moc obliczeniową wydaje się niewyczerpalny. Budowanie coraz bardziej złożonych sieci i uczenie ich na coraz większych zestawach danych w nadziei, że odkryją prawidłowości, które umknęły ludzkim obserwatorom, jest bardzo kuszącą perspektywą. Do symulowania sieci neuronowych zwykle wykorzystuje się dziś procesory graficzne (GPU) lub podobne (takie jak Xeon Phi). Jednak nie każdy akcelerator nadaje się dobrze do takich obliczeń; programowa symulacja neuronów jest też dość nieudolnym naśladowaniem sposobu działania biologicznego mózgu.

Wyjąwszy problemy techniczne sieci neuronowe mają wiele ograniczeń wynikających z ich natury. Zasadniczym jest ich statystyczne podejście – duża dokładność wymaga dużego zestawu przykładów do uczenia, a nauczona sieć nie poradzi sobie z efektami, które nie wystąpiły w tych przykładach. Również zawoalowana natura pracy sieci neuronowych rozczarowuje wielu naukowców, którzy chcieliby nie tylko otrzymać użyteczny rezultat, ale przede wszystkim dowiedzieć się, jak go otrzymano.

Wykorzystaniem GPU oraz ograniczeniami technicznymi i naukowymi sieci neuronowych i sztucznej inteligencji w ogóle zajmiemy się w drugiej części tego artykułu. Nie regulujcie odbiorników!

Ocena artykułu:
Ocen: 17
Zaloguj się, by móc oceniać
mICh@eL (2016.09.27, 18:22)
Ocena: 10

0%
Trzeba było czasu i kolejnych pomysłów, żeby wróciło zainteresowanie sieciami neuronowymi. Podstawowym przełomem było zastosowanie kilku warstw sztucznych neuronów, które podają sobie dalej cząstkowe wyniki przed otrzymaniem końcowej odpowiedzi.

Nieprawda. Sam pomysł połączenia perceptronów w kilka warstw był znany, natomiast problem był z algorytmem nauki. W przypadku jednego perceptronu znamy wejścia, znamy wyjścia, więc łatwo jest określić błąd i skorygować współczynniki na wejściach. Natomiast kiedy mamy kilka warstw nie wiemy co powinno być na wyjściach z pośrednich warstw i prosty algorytm nauki się wykłada.

Przełom nastąpił dopiero w momencie opracowania algorytmu propagacji wstecznej, który umożliwił skuteczne i względnie szybkie uczenie takich sieci ;)
motiff (2016.09.27, 18:40)
Ocena: 6

0%
No czekam na coś konkretnego, byle nie taka sama demonstracja jak pewna pani od mientkich co ją musieli wyłączyć że wstydu.
Master Husky (2016.09.27, 18:51)
Ocena: 13

0%
motiff @ 2016.09.27 18:40  Post: 1008235
No czekam na coś konkretnego, byle nie taka sama demonstracja jak pewna pani od mientkich co ją musieli wyłączyć że wstydu.


A co jeżeli każda SI z czasem będzie się stawać kolejnym wcieleniem hitlera?
Konrad_K (2016.09.27, 19:05)
Ocena: 5

0%
Master Husky @ 2016.09.27 18:51  Post: 1008238
motiff @ 2016.09.27 18:40  Post: 1008235
No czekam na coś konkretnego, byle nie taka sama demonstracja jak pewna pani od mientkich co ją musieli wyłączyć że wstydu.


A co jeżeli każda SI z czasem będzie się stawać kolejnym wcieleniem hitlera?


A co jeśli będzie stawać się wcieleniem Elvisa Presleya?
Wtedy tak będzie. Trudno.
Pozostanie nie podłączać jej do mikrofonu, jak się komuś nie podoba.
SambaVerde (2016.09.27, 19:39)
Ocena: 6

0%
Hashi @ 2016.09.27 19:29  Post: 1008245

Prawda nie zawsze jest 'pełną' prawdą i negacja nie jest zawsze pełną negacją.

Tak... a 'ale' to takie silniejsze 'nie' ;)
Też byłem na Coaching'u :D
karolthas (2016.09.27, 20:06)
Ocena: 6

0%
Na tej stronie znajdziecie świetny, darmowy kurs z nauczania maszynowego dla początkujących (po angielsku)
https://www.coursera.org/learn/machine-learning/
Koleś bardzo fajnie tłumaczy wszelkie zagadnienia
agent_x007 (2016.09.27, 20:08)
Ocena: 2

0%
Hashi @ 2016.09.27 19:29  Post: 1008245
System powinien być trójkowy (pracuje nad rozkminiem tego) tzw 0 i 1 powinny mieć stany tak jak ma je napięcie + dodatkowy stan pomiędzy 0 i 1 albo większy lub mniejszy od 0 i 1.
Dlaczego tam uważam? Bo cała materia składa się 3 cząstek, elektron, neutron i proton, nawet mózg człowieka.
Prawda nie zawsze jest 'pełną' prawdą i negacja nie jest zawsze pełną negacją.
Tak(1), Nie (0), Dlaczego(2) ?
System trójkowy :P

Z drugiej strony, to że prąd w gniazdku może mieć trzy fazy, nie znaczy to że trzy fazy są bardziej praktyczne od jednej ;)
Osobiście jestem za podejściem hybrydowym (dwójkowy + trójkowy), ponieważ założę się że trójkowy będzie 'zbyt kosztowny' albo niepraktyczny w niektórych zastosowaniach.
SambaVerde (2016.09.27, 20:13)
Ocena: -3

0%
Hashi @ 2016.09.27 20:05  Post: 1008255
No kumasz. Ale jest bardziej akcentem, który sugeruje, ze ktoś chce nam postawić warunek ;)

Jak by nie było, mam zakaz używania słowa ''ale'' :D
Zaloguj się, by móc komentować
Artykuły spokrewnione
Facebook
Ostatnio komentowane