Sieci neuronowe
Koncepcja działania sztucznych sieci neuronowych oraz komputerów jest zupełnie inna. Mówiąc w uproszczeniu, komputery wykonują obliczenia korzystając z mocy obliczeniowej procesora oraz pamięci. Przy czym procesor oraz pamięć są od siebie niezależne. Sieć neuronowa, podobnie jak mózg, wykonuje obliczenia nie sięgając do odrębnych "modułów" pamięci - wykorzystuje zdobytą wcześniej wiedzę, bez konieczności korzystania z innych zasobów - potrafi przechować informacje w swojej strukturze.
Więcej szczegółowych informacji na temat sieci neuronowych można przeczytać w artykule "Wprowadzenie do praktyki stosowania sieci neuronowych".
Mówiąc o sieciach neuronowych, warto wiedzieć, że normalizacja wartości wejściowych jest standardową procedurą. Kiedy dane wejściowe zbytnio się od siebie różnią, to sieć się słabo uczy. Najlepiej jest wtedy, gdy dane leżą w przedziale 0-1.
Wydaje mi się, że to jaka jest najbardziej optymalna architektura, zależy od rozwiązywanego problemu. Podstawowa architektura sztucznej sieci neuronowej to architektura jednokierunkowa, w której przepływ sygnałów występuje w jednym kierunku od wejścia do wyjścia.
Co może spowodować nadmierna ilośc neuronów?
Jeżeli występuje za mało neuronów, proces uczenia może się nie udać, gdyż sieć nie ma szans odwzorować w swojej strukturze wszystkich niuansów rozwiązywanego zadania. Natomiast zbyt duża liczba warstw ukrytych może doprowadzić do znacznego pogorszenia sprawności procesu uczenia. Sieć o mniejszej liczbie warstw ukrytych często daje lepsze rezultaty niż sieć z większą liczbą warstw ukrytych.
Z kolei nadmierna liczba neuronów w warstwie ukrytej może prowadzić do niekorzystnego efektu nazywanego "uczeniem się na pamięć". Sieć w ten sposób zamiast uogólniania nabywanych wiadomości dokonuje zapamiętania reguł.
Realizacja funkcji XOR za pomocą pojedynczego neuronu jest problematyczna.
Z wykresu funkcji XOR wynika, że nie da się za pomocą jednej prostej podzielić przestrzeni na dwa zbiory, czyli ten problem nie jest separowalny liniowo.
Nie można zatem zrealizować funkcji XOR za pomocą pojedynczego neuronu.
Można jednak podzielić przestrzeń za pomocą dwóch prostych:
Rozwiązaniem tego problemu jest rozszerzenie sieci neuronowej w taki sposób, by dodając neuron w warstwie, stworzyć sieć neuronów o wagach realizujących następujący podział przestrzeni:
1) dla pierwszego neuronu:
o1 = w11x1 + w12x2 + w10 > 0
o1 = w21x1 + w22x2 + w20 < 0
2) dla drugiego neuronu:
o2 = w21x1 + w22x2 + w10 > 0
o2 = w21x1 + w22x2 + w20 < 0
Po dodaniu dodatkowej warstwy z neuronem możliwe staje się zrealizowanie sumy logicznej.
Uważasz, że artykuł był ciekawy i chcesz otrzymywać powiadomienia o moich kolejnych wpisach lub projektach?
Wpisz swoje imię oraz adres e-mail a następnie kliknij "ZAPISZ MNIE"
Podobne wpisy
By accepting you will be accessing a service provided by a third-party external to https://www.slawop.net/