Model sieci neuronowej: krótkie wprowadzenie, glosariusz i wsteczna propagacja

Opublikowany: 2020-05-22

Jeśli jesteś entuzjastą inżynierii oprogramowania, który próbuje zrozumieć, jak działają sieci neuronowe, jesteś we właściwym miejscu.

W tym przewodniku pomożemy początkującym poznać znaczenie sieci neuronowych, zapoznamy się z tym, czym jest model sieci neuronowej i poszerzymy swoją wiedzę o nowe obszary tej dziedziny.

Spis treści

Co to jest sieć neuronowa?

Zanim przejdziemy do terminologii obliczeniowej, zrozummy istnienie sieci neuronowych w naszym codziennym życiu.

Termin „nerwowy” pochodzi od „neuronu”, który jest terminem używanym dla pojedynczej komórki nerwowej. Zgadza się – sieć neuronowa zasadniczo oznacza sieć neuronów, które wykonują proste czynności w naszym codziennym życiu.

Rozpoznawanie wzorców, wykrywanie obiektów i inteligencja to główne aspekty problemów, z którymi borykamy się na co dzień. Chociaż są one wykonywane z taką łatwością, z której nawet nie zdajemy sobie sprawy, prawda jest taka, że ​​te reakcje są trudne do zautomatyzowania.

Przykład:

  • Dzieci zapamiętujące, jak wygląda jabłko
  • Zwierzę rozpoznające swoją matkę lub właściciela
  • Postrzeganie, czy coś jest gorące czy zimne

Nasze sieci neuronowe wykonują te skomplikowane obliczenia.

Ludzie byli teraz w stanie zbudować system obliczeniowy, który może działać w sposób podobny do naszego układu nerwowego. Są to tak zwane sztuczne sieci neuronowe (SSN).

Chociaż początkowo korzystaliśmy z sieci ANN do wykonywania prostych funkcji, wzrost mocy obliczeniowej pozwolił nam teraz zbudować dość potężną architekturę sieci neuronowej do rozwiązywania coraz bardziej skomplikowanych problemów.

Dowiedzmy się więcej o SSN w następnej sekcji.

Przeczytaj: Samouczek wykrywania obiektów TensorFlow dla początkujących

Co to jest model sztucznej sieci neuronowej?

Wielowarstwowa, w pełni połączona sieć neuronowa zawierająca warstwę wejściową, warstwy ukryte i warstwę wyjściową nazywana jest sztuczną siecią neuronową lub SSN.

Poniższy obraz przedstawia SSN.

Źródło

Jeśli przyjrzysz się uważnie, zauważysz, że każdy węzeł w jednej warstwie jest połączony z każdym węzłem w warstwie obok.

Wraz ze wzrostem liczby ukrytych warstw sieć staje się głębsza.

Zobaczmy, jak wygląda pojedynczy węzeł w warstwie wyjściowej lub ukrytej.

Źródło

Jak widać, węzeł otrzymuje wiele danych wejściowych. Sumuje wszystkie wagi i przekazuje je jako wyjście poprzez nieliniową funkcję aktywacji.

Te dane wyjściowe węzła stają się danymi wejściowymi węzła w następnej warstwie.

Ważną rzeczą, na którą należy zwrócić uwagę, jest to, że sygnał będzie zawsze przesuwał się od lewej do prawej. Gdy wszystkie węzły wykonają procedurę, zostanie podany ostateczny wynik.

Oto jak wygląda równanie węzła.

Źródło

W powyższym równaniu b oznacza stronniczość. Jest to wejście do wszystkich węzłów i zawsze ma wartość 1.

Bias pomaga przesunąć wynik funkcji aktywacji w lewo lub w prawo.

Słowniczek modeli sztucznych sieci neuronowych

Przyjrzyjmy się podstawowym terminom, które powinieneś znać, jeśli chodzi o model sztucznej sieci neuronowej.

Wejścia

Dane wprowadzone do sieci neuronowej jako pierwsze ze źródła nazywane są danymi wejściowymi. Jego celem jest przekazanie danych sieci, aby podjąć decyzję lub przewidzieć informacje o wprowadzonych do niej informacjach. Model sieci neuronowej zwykle przyjmuje rzeczywiste zbiory wartości wejściowych i powinien być podawany do neuronu w warstwie wejściowej.

Zestaw treningowy

Wejścia, dla których znasz już prawidłowe dane wyjściowe, nazywane są zestawami uczącymi. Są one używane, aby pomóc sieci neuronowej nauczyć się i zapamiętać wynik dla danego zestawu danych wejściowych.

Wyjścia

Każda sieć neuronowa generuje dane wyjściowe jako predykcję lub decyzję dotyczącą wprowadzanych do niej danych. Dane wyjściowe mają postać zestawu wartości rzeczywistych lub decyzji logicznych. Tylko z neuronów w warstwie wyjściowej generuje wartość wyjściową.

Neuron

Znany również jako perceptron, neuron jest podstawową jednostką sieci neuronowej. Przyjmuje wartość wejściową i na jej podstawie generuje dane wyjściowe.

Jak wspomniano wcześniej, każdy neuron otrzymuje część sygnału wejściowego i przekazuje go przez nieliniową funkcję aktywacji do węzła w kolejnej warstwie. Te funkcje aktywacji mogą być TanH, sigmoid lub ReLu. Nieliniowa cecha tych funkcji pomaga w szkoleniu sieci.

Miejsce na wagę

Każdy neuron ma wagę liczbową. Kiedy dostarcza dane wejściowe do innej nuty, jej waga jest sumowana z innymi, aby wygenerować dane wyjściowe. Wprowadzając niewielkie zmiany w tych wagach, trenowane są sieci neuronowe. Precyzyjne dostrojenie wag pomaga określić prawidłowy zestaw wag i błędów systematycznych, który zapewni najlepszy wynik. Tutaj pojawia się propagacja wsteczna.

Co to jest propagacja wsteczna w modelu sieci neuronowej?

Jednym ze sposobów pomyślnego wykrycia niewielkich zmian, które należy wprowadzić w wagach, aby zminimalizować utratę całej sieci, jest propagacja wsteczna.

  • Najpierw aktywacje mają być propagowane w kierunku do góry lub do przodu.
  • Teraz pochodne funkcji kosztu muszą być propagowane w kierunku dolnym lub odwrotnym.

W ten sposób będziesz w stanie określić pochodną częściowego kosztu względem każdej wagi. Następnie można obliczyć koszt, który zostałby zmniejszony, wprowadzając korekty.

Wniosek

Wielu inżynierów oprogramowania nie poleca modelu sieci neuronowej, ponieważ uważają, że jest on raczej nieefektywny, biorąc pod uwagę, że potrzeba kilku iteracji, aby znaleźć najbardziej opłacalne rozwiązanie.

Jednak wiele nowych algorytmów, takich jak kapsułowe sieci Hintona, kapsułowe sieci neuronowe, wymaga znacznie mniejszej liczby korekt, aby uzyskać precyzyjny model. A zatem z pewnością sieci neuronowe będą miały duży zakres w przyszłości.

Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Dlaczego musisz uczyć się matematyki dla sztucznej inteligencji?

Wbrew temu, co wielu z nas myśli, sztuczna inteligencja jest silnie uzależniona od matematyki. Cała koncepcja uczenia maszyn myślenia i działania podobnie do ludzi opiera się na koncepcjach należących do różnych gałęzi matematyki, takich jak prawdopodobieństwo i statystyka, żeby wymienić tylko kilka. Nauka o danych ma również swoje podstawy związane z różnymi koncepcjami matematycznymi, od rachunku różniczkowego, algebry liniowej i teorii gier po zaawansowane regresje, klasyfikacje, statystyki, prawdopodobieństwo, gradienty i inne. Silne podstawy matematyki są niezbędne do skutecznego zrozumienia pojęć AI, które pomogą Ci zbudować udaną karierę w tej dziedzinie.

Czy sieć neuronowa jest algorytmem w uczeniu maszynowym?

Sztuczne sieci neuronowe lub po prostu sieci neuronowe można zdefiniować jako zestaw algorytmów uczenia maszynowego zaprojektowanych tak, aby przypominały ludzki mózg i stworzonych do zaawansowanego rozpoznawania wzorców. Sieci neuronowe są zaprojektowane do identyfikowania wzorców numerycznych w wektorach, na które tłumaczone są wszystkie zgromadzone dane. Wykrywając wzorce w danych nieustrukturyzowanych lub nieprecyzyjnych, sieci neuronowe pomagają w klasyfikowaniu i tworzeniu klastrów w celu lepszego przechowywania danych i zarządzania nimi. Dane sensoryczne, które są przesyłane do sieci neuronowych, są interpretowane przez percepcję maszynową, która oznacza lub grupuje dane wejściowe.

Dlaczego w sieciach neuronowych potrzebna jest propagacja wsteczna?

W dziedzinie sztucznych sieci neuronowych metoda wstecznej propagacji błędów w rzeczywistości odnosi się do wstecznej propagacji błędów. Jest to ustandaryzowana technika wykorzystywana do trenowania sztucznych sieci neuronowych i przebiega w sposób iteracyjny. Propagacja wsteczna służy do precyzyjnego dostrajania wag sztucznej sieci neuronowej, pomaga zminimalizować błędy oraz zwiększyć dokładność i niezawodność systemu. Ta metoda działa szybko i można ją również łatwo zaprogramować. Jest to elastyczna technika; nie wymaga wcześniejszej wiedzy o sieci neuronowej. Nie wymaga żadnych dodatkowych parametrów, a jedynie dostraja liczby wprowadzane do systemu.