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
- Czym są sieci neuronowe?
- Jak działają sieci neuronowe?
- Nauka sieci neuronowej
- Rodzaje sieci neuronowych
- Prosta implementacja sieci neuronowej
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:
- Sieć neuronowa jest symulowana w nowym środowisku.
- Następnie w wyniku tej symulacji zmieniają się swobodne parametry sieci neuronowej.
- Sieć neuronowa reaguje wówczas w nowy sposób na otoczenie ze względu na zmiany jej swobodnych parametrów.

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 .

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: - 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.