logo

Co to jest sieć neuronowa?

Sieci neuronowe to modele obliczeniowe naśladujące złożone funkcje ludzkiego mózgu. Sieci neuronowe składają się z połączonych ze sobą węzłów lub neuronów, które przetwarzają dane i uczą się na ich podstawie, umożliwiając wykonywanie takich zadań, jak rozpoznawanie wzorców i podejmowanie decyzji w ramach uczenia maszynowego. W artykule omówiono więcej na temat sieci neuronowych, ich działania, architektury i nie tylko.

Spis treści



Ewolucja sieci neuronowych

Od lat czterdziestych XX wieku nastąpił szereg godnych uwagi postępów w dziedzinie sieci neuronowych:

  • Lata czterdzieste i pięćdziesiąte XX wieku: wczesne koncepcje
    Sieci neuronowe rozpoczęły się wraz z wprowadzeniem przez McCullocha i Pittsa pierwszego modelu matematycznego sztucznych neuronów. Jednak ograniczenia obliczeniowe utrudniały postęp.
  • Lata 60. i 70. XX wieku: Perceptrony
    Erę tę definiuje praca Rosenblatta na temat perceptronów. Perceptrony są sieciami jednowarstwowymi, których zastosowanie ograniczało się do zagadnień, które można było rozwiązać liniowo oddzielnie.
  • Lata 80.: Wsteczna propagacja i koneksjonizm
    Sieć wielowarstwowa szkolenie było możliwe dzięki wynalezieniu przez Rumelharta, Hintona i Williamsa metody propagacji wstecznej. Dzięki naciskowi na uczenie się poprzez wzajemnie połączone węzły, koneksjonizm zyskał na atrakcyjności.
  • Lata 90.: Boom i zima
    Dzięki zastosowaniom w identyfikacji obrazu, finansach i innych dziedzinach sieci neuronowe przeżyły rozkwit. Badania nad sieciami neuronowymi przeżyły jednak zimę ze względu na wygórowane koszty obliczeniowe i zawyżone oczekiwania.
  • Lata 2000: odrodzenie i głębokie uczenie się
    Większe zbiory danych, innowacyjne struktury i ulepszone możliwości przetwarzania spowodowały powrót. Głęboka nauka wykazał niesamowitą skuteczność w wielu dyscyplinach, wykorzystując liczne warstwy.
  • 2010-obecnie: dominacja głębokiego uczenia się
    Konwolucyjne sieci neuronowe (CNN) i rekurencyjne sieci neuronowe (RNN), dwie architektury głębokiego uczenia się, zdominowały uczenie maszynowe. Ich moc została zademonstrowana innowacjami w grach, rozpoznawaniu obrazu i przetwarzaniu języka naturalnego.

Czym są sieci neuronowe?

Sieci neuronowe wyodrębnić cechy identyfikujące z danych, którym brakuje zaprogramowanego zrozumienia. Składniki sieci obejmują neurony, połączenia, wagi, błędy systematyczne, funkcje propagacji i regułę uczenia się. Neurony otrzymują dane wejściowe, regulowane przez progi i funkcje aktywacji. Połączenia obejmują wagi i uprzedzenia regulujące przesyłanie informacji. Uczenie się, dostosowywanie wag i odchyleń odbywa się w trzech etapach: obliczenia wejściowe, generowanie wyników i iteracyjne udoskonalanie zwiększające biegłość sieci w różnorodnych zadaniach.

Obejmują one:



  1. Sieć neuronowa jest symulowana w nowym środowisku.
  2. Następnie w wyniku tej symulacji zmieniają się swobodne parametry sieci neuronowej.
  3. Sieć neuronowa reaguje wówczas w nowy sposób na otoczenie ze względu na zmiany jej swobodnych parametrów.
nn-Geeksforgeeks


Znaczenie sieci neuronowych

Niezbędna jest zdolność sieci neuronowych do identyfikowania wzorców, rozwiązywania skomplikowanych zagadek i dostosowywania się do zmieniającego się otoczenia. Ich zdolność do uczenia się na podstawie danych ma daleko idące skutki, począwszy od rewolucjonizacji technologii przetwarzanie języka naturalnego i autonomicznych samochodów do automatyzacji procesów decyzyjnych i zwiększania wydajności w wielu gałęziach przemysłu. Rozwój sztucznej inteligencji w dużej mierze uzależniony jest od sieci neuronowych, które także napędzają innowacje i wpływają na kierunek rozwoju technologii.

Jak działają sieci neuronowe?

Wyjaśnijmy na przykładzie działania sieci neuronowej:



Rozważmy sieć neuronową do klasyfikacji wiadomości e-mail. Warstwa wejściowa obejmuje takie funkcje, jak treść wiadomości e-mail, informacje o nadawcy i temat. Dane wejściowe, pomnożone przez skorygowane wagi, przechodzą przez ukryte warstwy. Sieć poprzez szkolenie uczy się rozpoznawać wzorce wskazujące, czy wiadomość e-mail jest spamem, czy nie. Warstwa wyjściowa z binarną funkcją aktywacji przewiduje, czy wiadomość e-mail jest spamem (1), czy nie (0). W miarę jak sieć iteracyjnie udoskonala swoje wagi poprzez propagację wsteczną, staje się biegła w odróżnianiu spamu od prawdziwych wiadomości e-mail, pokazując praktyczność sieci neuronowych w rzeczywistych zastosowaniach, takich jak filtrowanie poczty e-mail.

Działanie sieci neuronowej

Sieci neuronowe to złożone systemy naśladujące pewne cechy funkcjonowania ludzkiego mózgu. Składa się z warstwy wejściowej, jednej lub większej liczby warstw ukrytych oraz warstwy wyjściowej składającej się z połączonych ze sobą warstw sztucznych neuronów. Dwa etapy podstawowego procesu nazywane są propagacją wsteczną i propagacja do przodu .

nn-ar-Geeksforgeeks


Propagacja do przodu

  • Warstwa wejściowa: Każda cecha w warstwie wejściowej jest reprezentowana przez węzeł w sieci, który odbiera dane wejściowe.
  • Masy i przyłącza: Waga każdego połączenia neuronowego wskazuje, jak silne jest to połączenie. W trakcie treningu ciężary te ulegają zmianie.
  • Ukryte warstwy: Każdy neuron warstwy ukrytej przetwarza dane wejściowe, mnożąc je przez wagi, dodając, a następnie przepuszczając przez funkcję aktywacji. W ten sposób wprowadza się nieliniowość, umożliwiając sieci rozpoznawanie skomplikowanych wzorców.
  • Wyjście: Ostateczny wynik uzyskuje się poprzez powtarzanie procesu aż do osiągnięcia warstwy wyjściowej.

Propagacja wsteczna

  • Obliczanie strat: Wyniki sieci porównuje się z rzeczywistymi wartościami docelowymi, a do obliczenia różnicy wykorzystuje się funkcję straty. W przypadku problemu regresji, Średni błąd kwadratowy (MSE) jest powszechnie używana jako funkcja kosztu.
    Funkcja straty: MSE = frac{1}{n} Sigma^{n}_{i=1} (y_{i} - hat y_{i})^2
  • Zejście gradientowe: Sieć wykorzystuje następnie opadanie gradientowe w celu zmniejszenia strat. Aby zmniejszyć niedokładność, wagi zmienia się w oparciu o pochodną straty w odniesieniu do każdej wagi.
  • Regulacja ciężarów: Wagi są dostosowywane przy każdym połączeniu poprzez zastosowanie procesu iteracyjnego, lub propagacja wsteczna , wstecz przez sieć.
  • Szkolenie: Podczas uczenia z różnymi próbkami danych cały proces propagacji w przód, obliczania strat i propagacji wstecznej odbywa się iteracyjnie, umożliwiając sieci adaptację i uczenie się wzorców z danych.
  • Funkcje aktywacji: Nieliniowość modelu wprowadza się za pomocą funkcji aktywacji, takich jak: rektyfikowana jednostka liniowa (ReLU) godz esowaty . Ich decyzja o uruchomieniu neuronu opiera się na całości ważonych danych wejściowych.

Nauka sieci neuronowej

1. Uczenie się poprzez uczenie się pod nadzorem

W Nadzorowana nauka , siecią neuronową kieruje nauczyciel, który ma dostęp do obu par wejście-wyjście. Sieć tworzy wyjścia na podstawie danych wejściowych, bez uwzględnienia otoczenia. Porównując te wyjścia z pożądanymi wynikami znanymi nauczycielowi, generowany jest sygnał błędu. Aby ograniczyć błędy, parametry sieci zmieniane są iteracyjnie i zatrzymują się, gdy wydajność osiągnie akceptowalny poziom.

2. Uczenie się bez nadzoru

Brakuje równoważnych zmiennych wyjściowych uczenie się bez nadzoru . Jego głównym celem jest zrozumienie podstawowej struktury przychodzących danych (X). Nie ma instruktora, który mógłby udzielić porady. Zamiast tego zamierzonym rezultatem jest modelowanie wzorców i relacji danych. Słowa takie jak regresja i klasyfikacja są powiązane z uczeniem się pod nadzorem, podczas gdy uczenie się bez nadzoru jest powiązane z grupowaniem i asocjacją.

3. Uczenie się ze wzmocnieniem

Sieć zdobywa wiedzę poprzez interakcję z otoczeniem i informację zwrotną w postaci nagród lub kar. Celem sieci jest znalezienie polityki lub strategii optymalizującej skumulowane nagrody w czasie. Ten rodzaj jest często wykorzystywany w grach i aplikacjach do podejmowania decyzji.

Rodzaje sieci neuronowych

Tam są siedem rodzaje sieci neuronowych, które można zastosować.

  • Sieci ze sprzężeniem zwrotnym: A wyprzedzająca sieć neuronowa to prosta architektura sztucznej sieci neuronowej, w której dane przemieszczają się od wejścia do wyjścia w jednym kierunku. Ma warstwy wejściowe, ukryte i wyjściowe; pętle sprzężenia zwrotnego są nieobecne. Jego prosta architektura sprawia, że ​​nadaje się do wielu zastosowań, takich jak regresja i rozpoznawanie wzorców.
  • Perceptron wielowarstwowy (MLP): MLP to rodzaj sieci neuronowej z wyprzedzeniem, składającej się z trzech lub więcej warstw, w tym warstwy wejściowej, jednej lub większej liczby warstw ukrytych i warstwy wyjściowej. Wykorzystuje nieliniowe funkcje aktywacji.
  • Konwolucyjna sieć neuronowa (CNN): A Konwolucyjna sieć neuronowa (CNN) to wyspecjalizowana sztuczna sieć neuronowa przeznaczona do przetwarzania obrazu. Wykorzystuje warstwy splotowe do automatycznego uczenia się cech hierarchicznych z obrazów wejściowych, umożliwiając efektywne rozpoznawanie i klasyfikację obrazów. Sieci CNN zrewolucjonizowały widzenie komputerowe i odgrywają kluczową rolę w zadaniach takich jak wykrywanie obiektów i analiza obrazu.
  • Rekurencyjna sieć neuronowa (RNN): Typ sztucznej sieci neuronowej przeznaczonej do sekwencyjnego przetwarzania danych nazywa się a Rekurencyjna sieć neuronowa (RNN). Jest odpowiedni do zastosowań, w których zależności kontekstowe mają krytyczne znaczenie, takich jak przewidywanie szeregów czasowych i przetwarzanie języka naturalnego, ponieważ wykorzystuje pętle sprzężenia zwrotnego, które umożliwiają przetrwanie informacji w sieci.
  • Pamięć długoterminowa (LSTM): LSTM to rodzaj RNN, który ma na celu przezwyciężenie problemu zanikającego gradientu w szkoleniu RNN. Wykorzystuje komórki i bramki pamięci do selektywnego odczytu, zapisu i usuwania informacji.

Prosta implementacja sieci neuronowej

Python3

import> numpy as np> # array of any amount of numbers. n = m> X>=> np.array([[>1>,>2>,>3>],> >[>3>,>4>,>1>],> >[>2>,>5>,>3>]])> # multiplication> y>=> np.array([[.>5>, .>3>, .>2>]])> # transpose of y> y>=> y.T> # sigma value> sigm>=> 2> # find the delta> delt>=> np.random.random((>3>,>3>))>-> 1> for> j>in> range>(>100>):> > ># find matrix 1. 100 layers.> >m1>=> (y>-> (>1>/>(>1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt))))))>*>((>1>/>(> >1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt)))))>*>(>1>->(>1>/>(> >1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt)))))))> ># find matrix 2> >m2>=> m1.dot(delt.T)>*> ((>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))> >*> (>1>->(>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))))> ># find delta> >delt>=> delt>+> (>1>/>(>1> +> np.exp(>->(np.dot(X, sigm))))).T.dot(m1)> ># find sigma> >sigm>=> sigm>+> (X.T.dot(m2))> # print output from the matrix> print>(>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))>
>
>

Wyjście:

[[0.99999325 0.99999375 0.99999352]  [0.99999988 0.99999989 0.99999988]  [1. 1. 1. ]]>

Zalety sieci neuronowych

Sieci neuronowe są szeroko stosowane w wielu różnych zastosowaniach ze względu na wiele zalet:

  • Zdolność adaptacji: Sieci neuronowe są przydatne w działaniach, w których powiązanie między danymi wejściowymi i wyjściowymi jest złożone lub słabo zdefiniowane, ponieważ mogą dostosowywać się do nowych sytuacji i uczyć się na podstawie danych.
  • Rozpoznawanie wzorców: Ich biegłość w rozpoznawaniu wzorców czyni je skutecznymi w zadaniach takich jak identyfikacja dźwięku i obrazu, przetwarzanie języka naturalnego i inne skomplikowane wzorce danych.
  • Przetwarzanie równoległe: Ponieważ sieci neuronowe z natury są zdolne do przetwarzania równoległego, mogą przetwarzać wiele zadań jednocześnie, co przyspiesza i poprawia efektywność obliczeń.
  • Nieliniowość: Sieci neuronowe są w stanie modelować i rozumieć skomplikowane zależności w danych dzięki nieliniowym funkcjom aktywacji występującym w neuronach, które przezwyciężają wady modeli liniowych.

Wady sieci neuronowych

Sieci neuronowe, choć potężne, nie są pozbawione wad i trudności:

  • Intensywność obliczeniowa: Uczenie dużych sieci neuronowych może być pracochłonnym i wymagającym obliczeniowo procesem, wymagającym dużej mocy obliczeniowej.
  • Czarna skrzynka Natura: Jako modele czarnych skrzynek sieci neuronowe stanowią problem w ważnych zastosowaniach, ponieważ trudno jest zrozumieć, w jaki sposób podejmują decyzje.
  • Nadmierne dopasowanie: Nadmierne dopasowanie to zjawisko, w którym sieci neuronowe zapisują materiał szkoleniowy w pamięci, zamiast identyfikować wzorce w danych. Chociaż podejścia regularyzacyjne pomagają złagodzić ten problem, problem nadal istnieje.
  • Potrzeba dużych zbiorów danych: Do wydajnego uczenia sieci neuronowe często potrzebują dużych, oznaczonych etykietami zbiorów danych; w przeciwnym razie ich działanie może ucierpieć z powodu niekompletnych lub zniekształconych danych.

Często zadawane pytania (FAQ)

1. Co to jest sieć neuronowa?

Sieć neuronowa to sztuczny system złożony z połączonych ze sobą węzłów (neuronów), które przetwarzają informacje, wzorowany na strukturze ludzkiego mózgu. Jest stosowany w zadaniach uczenia maszynowego, w których wzorce są wydobywane z danych.

2. Jak działa sieć neuronowa?

Warstwy połączonych neuronów przetwarzają dane w sieciach neuronowych. Sieć przetwarza dane wejściowe, modyfikuje wagi podczas uczenia i generuje dane wyjściowe w zależności od odkrytych wzorców.

3. Jakie są popularne typy architektur sieci neuronowych?

Sieci neuronowe ze sprzężeniem zwrotnym, rekurencyjne sieci neuronowe (RNN), splotowe sieci neuronowe (CNN) i sieci z pamięcią długoterminową (LSTM) to przykłady typowych architektur, z których każda jest zaprojektowana do określonego zadania.

4. Jaka jest różnica pomiędzy uczeniem nadzorowanym a uczeniem bez nadzoru w sieciach neuronowych?

W uczeniu nadzorowanym oznakowane dane są wykorzystywane do uczenia sieci neuronowej, tak aby mogła nauczyć się mapować dane wejściowe na pasujące dane wyjściowe. Uczenie się bez nadzoru działa z nieoznakowanymi danymi i szuka w danych struktur lub wzorców .

5. Jak sieci neuronowe radzą sobie z danymi sekwencyjnymi?

Pętle sprzężenia zwrotnego zawarte w rekurencyjnych sieciach neuronowych (RNN) umożliwiają im przetwarzanie danych sekwencyjnych i, z biegiem czasu, wychwytywanie zależności i kontekstu.