Sieci neuronowe – jak wygląda przyszłość sztucznej inteligencji?

Opublikowany: 2020-01-14

Co to są sieci neuronowe?

Zainspirowany biologicznymi sieciami neuronowymi, ten system komputerowy „uczy się” wykonywania różnych zadań, biorąc pod uwagę pewne przykłady, zwykle bez programowania regułami specyficznymi dla zadania.
Sieci neuronowe są funkcjonalną jednostką głębokiego uczenia się i są inspirowane strukturą ludzkiego mózgu. Jednak nowsze sztuczne sieci neuronowe są funkcjonalną jednostką głębokiego uczenia.

Sieci neuronowe
Rys. 1: Sieć neuronowa

Na przykład w rozpoznawaniu obrazu, takim jak identyfikacja obrazu kota.
Systemy komputerowe mogą nauczyć się identyfikować obrazy przedstawiające koty, analizując przykładowe obrazy, które zostały ręcznie oznaczone jako „kot” lub „bez kota”. Wykorzystując wyniki do identyfikacji kotów na innych obrazach, są one w stanie nauczyć się rozpoznawać rzeczywisty obraz. Robią to bez wcześniejszej wiedzy o kotach lub ich cechach, na przykład o tym, że mają futro, ogony, wąsy i kocie twarze.

Sieć neuronowa — identyfikacja kota

Rys. 2: Identyfikacja kota

Głębokie uczenie wykorzystuje sztuczne sieci neuronowe, które naśladują zachowanie ludzkiego mózgu, aby rozwiązywać złożone problemy związane z danymi. Głębokie uczenie jest samo w sobie częścią uczenia maszynowego, które wchodzi w zakres sztucznej inteligencji (AI).
Uczenie maszynowe — zastosowanie sztucznej inteligencji (AI), uczenie maszynowe zapewnia systemom możliwość automatycznego uczenia się i doskonalenia na podstawie doświadczenia bez konieczności wyraźnego programowania. Uczenie maszynowe koncentruje się na tworzeniu programów komputerowych, które mogą uzyskiwać dostęp do danych i wykorzystywać je do samodzielnej nauki.
Proces uczenia się rozpoczyna się, gdy zaczynają obserwować dane, takie jak przykłady, bezpośrednie doświadczenia czy instrukcje, w celu poszukiwania wzorców, które pomogą im podejmować lepsze decyzje w przyszłości. Głównym celem jest umożliwienie komputerom automatycznego uczenia się bez interwencji lub pomocy człowieka i odpowiedniego dostosowania ich działań.
Głębokie uczenieuczenie głębokie (znane również jako uczenie głębokie ustrukturyzowane lub uczenie hierarchiczne) jest częścią szerszej rodziny metod uczenia maszynowego opartych na sztucznych sieciach neuronowych. W ramach Deep Learning proces uczenia się może być nadzorowany, częściowo nadzorowany lub nienadzorowany. Głębokie uczenie to klasa algorytmów uczenia maszynowego, która wykorzystuje wiele warstw do stopniowego wyodrębniania funkcji wyższego poziomu z nieprzetworzonych danych wejściowych.
Na przykład w przetwarzaniu obrazu niższe warstwy mogą identyfikować krawędzie, podczas gdy wyższe warstwy mogą identyfikować pojęcia istotne dla człowieka, takie jak cyfry, litery lub twarze.

Struktura sieci neuronowej

Struktura sieci neuronowej

Sieci neuronowe zbudowane są z neuronu, który jest podstawową jednostką przetwarzania sieci. Sieci neuronowe składają się zasadniczo z 3 różnych warstw, a mianowicie warstwy wejściowej, warstwy ukrytej i warstwy wyjściowej.
Warstwa wejściowa to warstwa, z której dane wejściowe są podawane do sieci. Warstwa wyjściowa wykorzystuje dane wyjściowe tej konkretnej warstwy ukrytej, w której odbywa się większość obliczeń. Jest to związane z pewną wartością liczbową zwaną bias, która jest następnie dodawana do sumy wejściowej, która jest przekazywana do funkcji progowej zwanej funkcją aktywacji.
Funkcja aktywacji określa, czy dany neuron powinien być aktywowany, czy nie. Aktywowany neuron przekazuje dane do kolejnej warstwy.
Między tymi neuronami łączy się kanał.

Działanie sieci neuronowych na przykładzie

Podstawowe kroki:

  1. Nasze neurony wejściowe reprezentują dane wejściowe na podstawie informacji, które próbujemy sklasyfikować.
  2. Każdej liczbie w neuronach wejściowych przypisuje się wagę w każdej synapsie (kanale).
  3. W każdym neuronie w następnej warstwie dodajemy wyjścia wszystkich synaps przychodzących do tego neuronu wraz z odchyleniem i stosujemy funkcję aktywacji (zwykle funkcję sigmoidalną) do sumy ważonej (to sprawia, że ​​liczba jest między 0 a 1).
    Suma wejściowa= (w1*x1) + (w1*x2) + (w1*x3) + b1 obliczona dla każdego wejścia neuronowego
  4. Wyjście tej funkcji będzie traktowane jako wejście dla następnej warstwy synapsy
  5. Kontynuuj, aż dojdziesz do wyjścia.

Rozważ przykład klasyfikacji liścia, takiego jak zwykły liść lub liść uszkodzony.
Tutaj dostarczamy obraz liścia do naszego systemu, aby sklasyfikować na podstawie jego stanu.
Obraz jest dzielony na porcje na podstawie jego wymiarów, na przykład, jeśli ma 28 pikseli wysokości i wagi, jest dzielony na 28x28 pikseli (784px) i podawany do warstwy wejściowej. Ale w tym przypadku jest to 30px szerokości i 900px wysokości, które jest podawane na warstwę wejściową.

Neuron

Neuron jednej warstwy jest połączony z drugą warstwą losową wagą, która służy do obliczania sumy. Suma wejściowa jednej warstwy jest przesyłana do następnej warstwy (warstwy ukrytej), a każda warstwa ukryta jest powiązana z wartością liczbową, która jest dodawana do sumy wejściowej.
Funkcja aktywacji decyduje o tym, który neuron zostanie aktywowany i który z neuronów zostanie aktywowany, a wartość neuronu zostanie przekazana do kolejnej warstwy. Nazywa się to propagacją do przodu.

neuron o wyższej wartości

W warstwie wyjściowej neuron o wyższej wartości decyduje o wyjściu. Wartość jest w zasadzie wartością prawdopodobieństwa. Jeśli wyższa wartość prawdopodobieństwa przewiduje błędne dane wyjściowe, sieć nie została jeszcze przeszkolona. W tym przypadku jest on określany jako wadliwy i wymaga przeszkolenia, po którym można przeprowadzić detekcję/klasyfikację.

Nerwowy

Propagacja wsteczna jest wykonywana w celu przewidzenia prawidłowego wyniku, który jest oparty na przewidywanej wartości. Jest to porównywane z rzeczywistą wydajnością. Wagi są przypisywane iteracyjnie, dopóki nie przewidzą prawidłowo liścia. Waga jest następnie ponownie inicjowana, aby zminimalizować błąd.

Wyjście sieci neuronowej


Po ponownej inicjalizacji wagi, na podstawie różnicy błędu przewidywanej wartości, otrzymaliśmy dokładny wynik jako normalny liść.

Niektóre zastosowania sieci neuronowych

  1. Tłumaczenie Google
  2. Rozpoznawanie twarzy
  3. Samojezdne samochody
  4. Wykrywanie obiektów
  5. Kompozycja muzyczna
  6. Rozpoznawanie mowy
  7. Sprawdzanie pisowni
  8. Rozpoznawanie znaków


Zalety

  • Gdy element sieci neuronowej ulegnie awarii, może bez problemu działać przy pomocy równoległej natury.
  • Sieci neuronowe uczą się i nie trzeba ich przeprogramowywać.
  • Może być zaimplementowany w dowolnej aplikacji.
  • Sieci neuronowe wykonują zadania, których nie może wykonać program liniowy.

Niedogodności

  • Sieci neuronowe wymagają szkolenia do działania.
  • Wymaga długiego czasu przetwarzania w przypadku większych sieci neuronowych.
  • Ilość danych.