Uczenie się AI

Odpowiedz Nowy wątek
2020-07-28 13:44

Rejestracja: 6 miesięcy temu

Ostatnio: 3 tygodnie temu

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

Pozostało 580 znaków

2020-07-28 14:05
Moderator

Rejestracja: 12 lat temu

Ostatnio: 2 godziny temu

3

Może to Ci pomoże.


Po angielsku i to jeszcze link... Zakop xd - Dregorio 2020-07-28 15:57

Pozostało 580 znaków

2020-07-28 14:18

Rejestracja: 5 miesięcy temu

Ostatnio: 6 godzin temu

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

edytowany 1x, ostatnio: 0xmarcin, 2020-07-28 14:19
Nie wytłumaczyłeś tego w żaden sposób. W wideo zalinkowanym wyżej możesz sobie zobaczyć o co autorowi tematu chodziło. - ToTomki 2020-07-28 14:33
ToTomki - dokładnie, z jego opisu wynika, że jest to takie proste, że aż dziw, że nie jest pionierem algorytmów AI:))) - Mangustastream 2020-07-28 15:23
Szczególnie stosujesz matematyczne wzorki. I tak naprawdę o ile część dotycząca uczenia nadzorowanego jest jeszcze w miarę ok, bo rzeczywiście stosuje się matematyczne wzorki (czy to SGD, czy neuroewolucja, czy jakikolwiek algorytm czegokolwiek), to nienadzorowane jest kwestionowalne. Nienadzorowana sieć to np. sieci kohonena i tam nie "osłabiasz wag neruonów", ewentualnie robisz tuning hyperparametrów i startujesz od nowa. - part 2020-07-28 15:30

Pozostało 580 znaków

2020-07-28 14:40

Rejestracja: 2 lata temu

Ostatnio: 6 godzin temu

1

wyszukaj w google 'karpathy neural networks for hackers'

Pozostało 580 znaków

2020-07-28 15:20

Rejestracja: 1 rok temu

Ostatnio: 9 godzin temu

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ę

...

Pokaż pozostałe 4 komentarze
Ale swoja droga to czy sub-op nie opisuje bardziej interpolacji? - stivens 2020-07-28 15:39
W komentarzu interpolacja, w opisie zjawiska - aproksymacja. Przynajmniej moim zdaniem, ja się tam nie znam. - ToTomki 2020-07-28 15:40
No jesli bierzemy wielomian, ktory przechodzi przez wszystkie wskazane punkty to raczej interpolacja - stivens 2020-07-28 15:42
Mogło mi się pomylić w sumie, dawno to było na studiach :P - kelog 2020-07-28 15:43
@stivens: to zależy, jeżeli chcesz aproksymować tylko punkty w danym zakresie to interpolacja, ale poza to już ekstrapolacja (np. proces gaussowki do prognozowania szeregów czasowych) - part 2020-07-28 15:48

Pozostało 580 znaków

2020-07-28 15:29

Rejestracja: 6 miesięcy temu

Ostatnio: 3 tygodnie temu

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?

Pozostało 580 znaków

2020-07-28 15:33

Rejestracja: 1 rok temu

Ostatnio: 2 minuty temu

Lokalizacja: Silesia

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


edytowany 1x, ostatnio: KamilAdam, 2020-07-28 15:34

Pozostało 580 znaków

2020-07-28 15:34
Moderator

Rejestracja: 16 lat temu

Ostatnio: 2 godziny temu

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.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Pokaż pozostałe 6 komentarzy
Ok, już nie będę zadawał więcej głupich pytań zanim nie poczytam o tym gdzieś, bo temat wydaje się być ciekawy dla mnie osobiście. - bakunet 2020-07-29 09:05
@bakunet: tylko że uczenie sieci robi się jednym z kilku standardowych algorytmów, więc sama metoda uczenia w zasadzie niczego ci nie powie bo jest generyczna. Możesz mieć dwie identyczne strukturalnie sieci, uczone tym samym algorytmem i jedna rozpoznaje czy na obrazku jest kot na podstawie obrazka, a druga rozpoznaje czy jutro spadnie deszcz na podstawie pomiarów z jakichś sensorów. A sam model jest zupełnie nieczytelny, bo to tylko mnożenie i dodawanie, które bardzo trudno przełożyć na "domenę". - Shalom 2020-07-29 09:27
Ale wnioskuję, że 2 identyczne sieci, które prognozują opady deszczu na podstawie tych samych danych, będą dawać zawsze takie same wyniki. Czy się mylę? - bakunet 2020-07-29 09:30
@bakunet: jeżeli mówisz o gotowych modelach to tak - jeżeli topologia i wagi są te same, to będą tak samo działały. Ale jeżeli mówisz o tym, że trenujesz sieć 2 razy z zadanymi hyperparametrami to nie, chyba że sobie ustawisz rng seeda. - part 2020-07-29 09:41
@bakunet: oczywiście ze nie :D Ani nie będą wyglądać tak samo (w sensie wag) ani nie muszą dawać podobnych wyników (w sensie np. dokładności) - Shalom 2020-07-29 10:05

Pozostało 580 znaków

2020-07-28 16:01

Rejestracja: 9 lat temu

Ostatnio: 6 godzin temu

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[...]lnych-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.


edytowany 1x, ostatnio: vpiotr, 2020-07-28 16:02

Pozostało 580 znaków

2020-07-28 16:05

Rejestracja: 3 lata temu

Ostatnio: 3 minuty temu

0

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


Pozostało 580 znaków

2020-07-28 16:14

Rejestracja: 6 miesięcy temu

Ostatnio: 3 tygodnie temu

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?

Pokaż pozostałe 16 komentarzy
Termin sztuczna inteligencja pojawił się już dawno ale my tutaj rozmawiamy o algorytmie. Kiedyś nie było urządzeń, które mogły nas poznać po twarzy/sylwetce jak np: pies. Właściwie to wszystko odbywa się tak jak pisze Patryk27 na zasadzie przepychania liczb z jednej warstwy danych do innych ale jaka jest kwintesencja uczenia się? W prostych słowach można powiedzieć to tak: modulujesz oryginał i ustalasz próg wartości po przekroczeniu którego dany obiekt nie jest tym za który uchodzi. Dobrym przykładem jest tutaj działanie średniej ważonej i regulacja decyzji za pomocą wag. - Mangustastream 2020-07-28 20:07
Generalnie termin sztuczna inteligencja powinien IMO kojarzyć się ze sztucznym człowiekiem, który zdał test Turinga a nie algorytmem w telefonie, który pieknie tuninguje zdjęcia bo zapamiętuje pewne warunki. Na obraz i podobieństwo swoje człowiek stworzy krzemową wersję siebie ale nie stworzy w żadnym wypadku istoty wyższej. To, że roboty będą coś robiły szybciej albo będą na coś odporne nie czyni z nich zwycięzców. Ktoś kiedyś powiedział, że programista może zrobić tak silny program szachowy jak sam jest silny w szachy. Z tworzeniem ludzi przez innych ludzi jest podobnie. - Mangustastream 2020-07-28 20:27
Ktoś kiedyś powiedział, że programista może zrobić tak silny program szachowy jak sam jest silny w szachy to akurat idiotyzm i bzdura. Już od dawna silniki szachowe są wielokrotnie mocniejsze od najlepszych graczy, a co dopiero od programistów. - Shalom 2020-07-28 20:31
@Mangustastream: Generalnie termin sztuczna inteligencja powinien IMO kojarzyć się ze sztucznym człowiekiem, który zdał test Turinga a nie algorytmem w telefonie, który pieknie tuninguje zdjęcia bo zapamiętuje pewne warunki. - nie, bo sztuczna inteligencja ma jasny podział na tą która "tuninguje zdjecia na telefonie" - https://en.wikipedia.org/wiki/Weak_AI i taką która ma symulować życie - https://en.wikipedia.org/wiki/Strong_AI - part 2020-07-28 20:40
Zgadzam się z powyższym terminem podziału sztucznej inteligencji lecz retusz zdjęć na tel jest (dla mnie) zwykłym algorytmem upiększającym zdjęcia mimo, że mogą tam działać podobne rozwiązania co w projektach strong_AI ale to jest jak z odciętym palcem, każda komórka też działa na podobnych algorytmach ale nie jest już nami. Co do szachów Shalom wydaje mi się, że obecnie kwestia nie tkwi w mocy algorytmu a szybkości jego wykonywania. Potrzebowałbyś 25-30% mocy własnego mózgu aby móc go znacznie prześcignąć. Aby to osiągnać musisz "tylko" rozbudować system nerwowy. - Mangustastream 2020-07-29 10:38

Pozostało 580 znaków

Odpowiedz

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