Nowy procesor nadzieją na sieci neuronowe w smartfonach
Eksperci z MIT stworzyli nowatorki neuronowy układ scalony, który jest nawet 7-krotnie szybszy od innych tego typu kości, a jednocześnie zużywa nawet 95% mniej energii. To zaś oznacza, że tego typu chip można stosować w urządzeniach zasilanych bateriami, niewykluczone więc, że wkrótce do smartfonów trafią sieci neuronowe.
Większość współczesnych osiągnięć na polu sztucznej inteligencji opiera się właśnie na sieciach neuronowych, czyli gęsto połączonych sieciach prostych procesorów, które uczą się wykonywać zadania analizując olbrzymie zestawy danych treningowych.
Problem jednak w tym, że sieci neuronowe są bardzo rozległe i wymagają dużych ilości energii. nie nadają się więc dla urządzeń przenośnych. Oczywiście już teraz można za pomocą smartfonu korzystać z sieci neuronowych, ale polega to na przesłaniu danych do sieci i odebraniu wyników, a nie na przetwarzaniu ich przez sam smartfon.
Nowy chip z MIT może rozwiązać problem sieci neuronowych na urządzeniach przenośnych. Powszechnie wykorzystywany model procesora wygląda w ten sposób, że gdzieś tam na chipie znajduje się układ pamięci, gdzie indziej znajduje się procesor, a dane są ciągle przesyłane pomiędzy tymi elementami. Jako, że algorytmy maszynowego uczenia się wymagają olbrzymiej ilości obliczeń, to największa część energii jest zużywana na przesyłanie danych w tę i z powrotem. Jednak obliczenia wykonywane przez te algorytmy można sprowadzić do jednak konkretnej operacji, zwanej iloczynem skalarnym. Zaczęliśmy się więc zastanawiać, czy możemy zaimplementować iloczyn skalarny wewnątrz układy pamięci, by nie trzeba było ciągle przekazywać danych, wyjaśnia Avishek Biswas, który stał na czele grupy pracującej nad nowym chipem.
Sieci neuronowe są zwykle zorganizowane w warstwy. Węzeł obliczeniowy jednej warstwy otrzymuje dane z wielu węzłów poniżej i wysyła dane do wielu węzłów powyżej. Każde połączenie pomiędzy węzłami ma swoją wagę, która oznacza, jak istotne są dane wysyłane przez ten węzeł dla obliczeń kolejnego węzła. Trening sieci neuronowych polega właśnie na przypisywaniu wagi połączeniom.
Węzeł otrzymujący dane w wielu węzłów niższej warstwy mnoży każdy sygnał wejściowy przez wagę połączenia i sumuje otrzymane wyniki. To sumowanie iloczynów to właśnie definicja iloczynu skalarnego. Jeśli iloczyn ten przekracza pewną założoną wartość, węzeł przekazuje go do węzłów kolejnej warstwy połączeniami o określonych wagach.
Sieć neuronowa to pewien abstrakt. Węzły to wagi przechowywane w pamięci komputera. Obliczenie iloczynu skalarnego wymaga pobrania wagi z pamięci, pobranie powiązanych danych, pomnożenie, odłożenie wyniku do pamięci i powtórzenie tej operacji dla każdych danych docierających do węzła. Biorąc pod uwagę fakt, że sieci neuronowe składają się z tysięcy lub milionów węzłów, ich działanie wymaga przesyłania olbrzymich ilości danych.
Naukowcy z MIT postanowili poprawić wydajność całego sygnału. W ich układzie scalonym wartości sygnałów docierających do węzła są konwertowane do wartości napięcia prądu elektrycznego i mnożone przez odpowie wagi. Sumowanie to nic innego jak łączenie wartości napięć. Po tym procesie całość jest konwertowana do wartości cyfrowej i przesyłana do układu pamięci w celu przechowania na potrzeby kolejnych obliczeń. Nowy chip jest w stanie w jednym przebiegu obliczyć wartość iloczynu skalarnego jednocześnie dla 16 węzłów i nie musi przy tym ciągle przesyłać danych pomiędzy procesorem a układem pamięci.
Jednym z kluczowych elementów tego systemu jest fakt, że wszystkie wagi mają wartość 1 lub -1. A to oznacza, że mogą zostać zaimplementowane w układzie pamięci jako proste przełączniki zamykające obwód lub pozostawiające go otwartym. Pomysł na zastosowanie takiego rozwiązania opiera się na niedawnych pracach teoretycznych, które wykazały, że ograniczenie sieci neuronowych do dwóch wartości wagi połączeń prowadzi jedynie do niewielkiego spadku dokładności, rzędu 1 lub 2 procent.
Biswas i jego zespół przeprowadzili odpowiednie eksperymenty i wykazali, że sieć neuronowa oparta na ich układzie jest 2-3 procent mniej dokładna od sieci konwencjonalnej.
Prace naukowców pochwalił Dario Gil, wiceprezes ds. sztucznej inteligencji w IBM. To imponujący pokaz wydajnych energetycznie konwolucyjnych operacji w układach pamięci. Z pewnością pozwoli to na stworzenie bardziej złożonych neuronowych sieci konwolucyjnych przetwarzających obrazy i materiały wideo dla przyszłych urządzeń typu IoT.
Komentarze (3)
smoczeq, 16 lutego 2018, 10:29
Przyczepię się tylko do
A tak poza tym to fajny artykuł! Ekstra wyjaśniony. Dzięki!
Krzychoo, 16 lutego 2018, 13:21
A jak do tego się ma sztuczna synapsa?
nantaniel, 16 lutego 2018, 13:52
Zdaje się, że sztuczna synapsa to pomysł, który ma o wiele większy potencjał - mowa o jednoczesnym, rozproszonym przetwarzaniu informacji. Tutaj mamy po prostu sprzętowy element usprawniający obliczania wykonywane w sieciach neuronowych (które są wykonywane po kolei).