Uczenie się AI

2

Witam, czy ktoś byłby tak miły i wyjaśnił na czym polega samouczenie się sieci neuronowej? Przeglądam różne materiały i są tam wyjaśnienia np: ogólna idea procesu uczenia polega na minimalizacji funkcji błędu. Podczas działania algorytmu uczenia dochodzi do iteracyjnego modyfikowania wag w sieci neuronowej. Osobiście uważam, że na Ziemi wystepuje problem w przepływie informacji a dalej to skutkuje na wzajemnym zrozumieniu się. Proszę o wasze odpowiedzi a nie o linki. Linki to ja mogę sobie sam wyszukać.

Nie mogę znaleźć koncepcji sieci neuronowych typu program "hello world" aby zrozumieć tok myślenia innych. Za to w internecie ludzie się prześcigają (a szczególnie wykładowcy uczelni) by przekazywana wiedza brzmiała jak najbardziej profesjonalnie. Im trudniej podana tym lepiej. Jednak ciągle mam w pamięci słowa mojego ulubionego naukowca Alberta: ~kto w prosty sposób nie potrafi wyjaśnić bardzo skomplikowanych rzeczy pokazuje, że tak naprawdę niewiele z nich rozumie.

Znam koncepcję budowy tych sieci. Wiem, że sztuczny neuron ma kilka wejść i dane z tych wejść są obrabiane przez szereg różnych funkcji "w jego środku" i ostatecznie jest produkowana jedna informacja wyjściowa. Właściwie bardziej mnie interesuje solidny schemat blokowy niż linijki kodu źródłowego. Z góry dziękuję.

8

Są dwa rodzaje uczenia:

  1. Z nadzorem - tak jak w szkole na lekcjach matematyki, robisz 2+5= i jak odpowiesz źle to masz wpirdol - czyli nauczyciel powie ci jaka jest poprawna odpowiedź i a ty starasz się to zapamiętać
  2. Bez nadzoru - jeździsz na deskorolce, jak się wypierdoliz i boli dupa to zapamiętujesz że zanim się wywaliłeś zrobiłeś ruch X i że lepiej tego w przyszłości nie robić

W przypadku 1 ponieważ masz odpowiedź, to stosujesz matematyczne wzorki które tak zmodyfikują połączenia w sieci żeby dały wynik bliższy do oczekiwanego.
W przypadku 2 jeżeli odpowiedz sieci jest zdowalająca to zwiększasz wagę(moc) połączenia między neuronami gdy jest duża i osłabiasz gdy jest mała (czyli sieć ma robić to samo tylko mocniej). Gdy opowiedz jest zła to zmiejszasz połaczenia o dużej wadze a zwiększasz te o małej wadze (czyli sieć ma robić coś innego).

Prościej nie potrafię...

1

wyszukaj w google 'karpathy neural networks for hackers'

1

Ja zawsze wyobrażałem sobie uczenie sieci neuronowej jak aproksymację. Pewnie to jakiś uber-banalny przypadek, ale co tam. Powiedzmy funkcja do 3 potęgi po prostu:

ja: jak dostaniesz na wejście 1 to proszę, aby na wyjściu było 1
sieć: ok

ja: ile wynosi f(1)?
sieć: 1
ja: dobrze
sieć: ok, fajnie

ja: jak dostaniesz na wejście 2 to proszę, aby na wyjściu było 8
sieć: ok

ja: ile wynosi f(3)
sieć: 12
ja: źle, ma być 27
sieć: ok, poprawiam się

... tych kroków sporo

ja: ile wynosi f(10)
sieć: 999
ja: źle, ma być 1000
sieć: ok, poprawiam się

...

1
hauleth napisał(a):

Może to Ci pomoże.

Póki co zobiłem sobie klasę neuronu z wejściami, funkcjami modującymi i wyjściem. Wie ktoś z was na jakiej zasadzie porównuje się powiedzmy dwa obrazy czy są do siebie podobne czy nie? np: dwa widoki leśne będą do siebie podobne ale obraz miasta już nie.

Czy porównuje się każdy piksel obrazka osobno i na podstawie "odległości" od oryginału wydaje werykt podobieństwa czy są jakieś bardziej upowszechnione metody?

1
Mangustastream napisał(a):

Czy porównuje się każdy piksel obrazka osobno i na podstawie "odległości" od oryginału wydaje werykt podobieństwa czy są jakieś bardziej upowszechnione metody?

Przekształcenie Fouriera obrazów
Nie porównuje się piksel po pikselu. Robi się transformatę Fouriera lub inną transformatę i te wyniki porównuje.
Pewnie s też inne metody

6

@Mangustastream Nie, nie porównuje sie tak, bo zmniejszysz obraz o 50% i twoje porównanie powie że to 2 różne obrazki bo żaden piksel nie pasuje ;) Cały trik uczenia maszynowego a szczególnie sieci neuronowych polega na tym, że NIE WIADOMO jak sieć neuronowa porównuje. Z tego też powodu sieci nie są jakoś strasznie popularne, bo nie da się w prosty sposób stwierdzić dlaczego działają/nie działają i nie da sie ich poprawić.
Idea jest taka, ze ładujesz w sieć dużo przykładów, aktualizujesz wagi neuronów tak żeby sieć dawała dobre wyniki i voila. W jaki sposób dokładnie odbywa się porównanie? W żaden sposób czytelny dla człowieka.

1
Shalom napisał(a):

Z tego też powodu sieci nie są jakoś strasznie popularne, bo nie da się w prosty sposób stwierdzić dlaczego działają/nie działają i nie da sie ich poprawić.

Zabrakło słowa "płytkich" przed "sieci".
Deep Learning to obecnie jedna z najważniejszych dziedzin ML.
Sieci są do tego stopnia popularne, że problem który opisałeś został ujęty w przepisach.
Więcej o tym: http://smarterpoland.pl/index.php/2019/03/bank-bedzie-musial-wyjasnic-czyli-o-wyjasnialnych-modelach-predykcyjnych/

A do OP: opis metody BP: wybierając odpowiednio kolejność przedstawiania danych testowych korygujesz wagi neuronów w celu zminimalizowania błędu. Powtarzasz do skutku.
Sieci uczące się bez nadzoru to jest dopiero ciekawe: https://www.hindawi.com/journals/cin/2016/5139574/
Możesz albo to analizować czytając materiały dostępne w sieci, albo samemu coś kodując. Ja proponuję to drugie rozwiązanie.

0

Ta książeczka załatwia sprawę:
http://neuralnetworksanddeeplearning.com/

0

No właśnie Shalom, jak to sieci neuronowe nie są zbyt popularne? Przecież to fundament dzisiejszej technologii. Nawet można już ten dobrze brzmiący slogan wrzucać do reklam smartfonów bo aparaty faktycznie opierają się w jakimś stopniu o decyzję podjętą przez AI co do retuszu czy nasycenia zdjęcia w nocy.

cleverbot.com to zwykła amatorka jaką można było zrobić w BASIC na Atari :) Bo chyba nikt nie zrobił nic lepszego dostępnego w necie?

5

Mój wykładowca zwykł mawiać że "sieci neuronowe to drugie najlepsze rozwiązanie danego problemu". Co można wytłumaczyć następująco:

  • sieć nie jest świadoma problemu który rozwiązuje bo jest narzędziem generycznym. sieć jedyne co potrafi to aproxymacja (przybliżanie) nieznanej funkcji wy = f(we)
  • jeżeli poświęcimy wystarczająco dużo uwagi dla danego zagadnienia X to najprawdopodobniej znajdziemy sposób jego rozwiązania znacznie lepszy niż to co jakakolwiek sieć może osiągnąć

PS. AI w reklamach to często regresja liniowa z bardzo dużą liczbą zmiennych. Wiele wymiarów robi różnicę :P

0

ja szukam gdzies implementacji lstm from scratch, zeby dowiedziec sie jak dziala dokladnie ale nie moge nigdzie znalezc

0
0xmarcin napisał(a):
  • sieć nie jest świadoma problemu który rozwiązuje bo jest narzędziem generycznym.

Wydaje się, że sieć nie jest świadoma problemu ale i też jeszcze nie ma takich urządzeń. Ale kiedy maszyna mówi i myśli i przeżywa emocje dokładnie w ten sam sposób co Ty zaczynasz się zastanawiać gdzie jest granica między świadomością a sztuczną świadomością.

0

Tezy współczesnych fizjologów:

  • co ma emocje, nie może być maszyną
  • maszyna z emocjami = czajnik z wrzątkiem

1 użytkowników online, w tym zalogowanych: 0, gości: 1