Sztuczne sieci neuronowe
Sztuczna sieć neuronowa, lub w skrócie sieć neuronowa, nie jest nowym pomysłem. Istnieje od około 80 lat.
Dopiero w 2011 roku Deep Neural Networks zyskały popularność dzięki zastosowaniu nowych technik, ogromnej dostępności zestawów danych i potężnych komputerów.
Sieć neuronowa naśladuje neuron, który ma dendryty, jądro, akson i końcowy akson.
W przypadku sieci potrzebujemy dwóch neuronów. Te neurony przekazują informacje poprzez synapsę między dendrytami jednego i końcowego aksonu drugiego.
Prawdopodobny model sztucznego neuronu wygląda następująco -
Sieć neuronowa będzie wyglądać tak, jak pokazano poniżej -
Okręgi są neuronami lub węzłami, a ich funkcje w danych i łączące je linie / krawędzie to wagi / informacje, które są przekazywane.
Każda kolumna to warstwa. Pierwsza warstwa danych to warstwa wejściowa. Następnie wszystkie warstwy między warstwą wejściową a warstwą wyjściową są warstwami ukrytymi.
Jeśli masz jedną lub kilka ukrytych warstw, masz płytką sieć neuronową. Jeśli masz wiele ukrytych warstw, masz głęboką sieć neuronową.
W tym modelu masz dane wejściowe, ważisz je i przekazujesz je przez funkcję w neuronie, która jest nazywana funkcją progową lub funkcją aktywacji.
Zasadniczo jest to suma wszystkich wartości po porównaniu z określoną wartością. Jeśli wystrzelisz sygnał, wynik jest (1) wyłączony lub nic nie jest wystrzelone, a następnie (0). To jest następnie ważone i przekazywane do następnego neuronu i uruchamiany jest ten sam rodzaj funkcji.
Możemy mieć funkcję sigmoidalną (kształt litery S) jako funkcję aktywacji.
Jeśli chodzi o wagi, są one uruchamiane losowo i są unikalne dla każdego wejścia do węzła / neuronu.
W typowym „sprzężeniu naprzód”, najbardziej podstawowym typie sieci neuronowej, informacje przechodzą bezpośrednio przez utworzoną sieć i porównujesz wynik z tym, co, jak miałeś nadzieję, przy użyciu danych przykładowych.
W tym miejscu musisz dostosować wagi, aby uzyskać wynik zgodny z żądanym wyjściem.
Czynność polegająca na wysyłaniu danych bezpośrednio przez sieć neuronową nazywa się a feed forward neural network.
Nasze dane przechodzą od wejścia do kolejnych warstw, a następnie do wyjścia.
Kiedy cofamy się i zaczynamy dostosowywać wagi, aby zminimalizować straty / koszty, nazywa się to back propagation.
To jest optimization problem. W przypadku sieci neuronowej w praktyce mamy do czynienia z setkami tysięcy zmiennych, milionami lub więcej.
Pierwszym rozwiązaniem było zastosowanie stochastycznego zejścia gradientowego jako metody optymalizacji. Teraz są opcje takie jak AdaGrad, Adam Optimizer i tak dalej. Tak czy inaczej, jest to ogromna operacja obliczeniowa. Dlatego sieci neuronowe były w większości pozostawione na półce przez ponad pół wieku. Dopiero niedawno mieliśmy moc i architekturę w naszych maszynach, aby nawet rozważyć wykonanie tych operacji, a także odpowiednio dopasowane zestawy danych.
W przypadku prostych zadań klasyfikacyjnych sieć neuronowa ma stosunkowo zbliżoną wydajność do innych prostych algorytmów, takich jak K Nearest Neighbors. Prawdziwa użyteczność sieci neuronowych jest realizowana, gdy mamy znacznie większe dane i znacznie bardziej złożone pytania, z których oba przewyższają inne modele uczenia maszynowego.