Filip Graliński. Ku sztucznym sieciom neuronowym

Podobne dokumenty
Elementy inteligencji obliczeniowej

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Rozpoznawanie obrazów

Zastosowania sieci neuronowych

Temat: Sieci neuronowe oraz technologia CUDA

Podstawy Sztucznej Inteligencji (PSZT)

Sieć przesyłająca żetony CP (counter propagation)

Uczenie sieci neuronowych i bayesowskich

Uczenie sieci typu MLP

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Sieci neuronowe w Statistica

Zawansowane modele wyborów dyskretnych

Wstęp do głębokich sieci neuronowych. Paweł Morawiecki IPI PAN

Metody Sztucznej Inteligencji II

8. Neuron z ciągłą funkcją aktywacji.

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Projekt Sieci neuronowe

Sztuczne sieci neuronowe (SNN)

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

Optymalizacja ciągła

Rozpoznawanie obrazów


Technologie informacyjne Wykład VII-IX

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Automatyczna predykcja. Materiały/konsultacje. Co to jest uczenie maszynowe? Przykład 6/10/2013. Google Prediction API, maj 2010

Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych.

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład III 2016/2017

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Wprowadzenie do Sieci Neuronowych Laboratorium 05 Algorytm wstecznej propagacji błędu

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

Metody systemowe i decyzyjne w informatyce

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka ADALINE.

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

zdarzenie losowe - zdarzenie którego przebiegu czy wyniku nie da się przewidzieć na pewno.

Sztuczne sieci neuronowe

Widzenie komputerowe

sieci jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym, kontynuacja badań

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Podstawy Sztucznej Inteligencji Sztuczne Sieci Neuronowe. Krzysztof Regulski, WIMiIP, KISiM, B5, pok. 408

3. FUNKCJA LINIOWA. gdzie ; ół,.

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów.

Rozpoznawanie obrazów

Agnieszka Nowak Brzezińska Wykład III

Metody systemowe i decyzyjne w informatyce

Sieci M. I. Jordana. Sieci rekurencyjne z parametrycznym biasem. Leszek Rybicki. 30 listopada Leszek Rybicki Sieci M. I.

Metody systemowe i decyzyjne w informatyce

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Sztuczne sieci neuronowe i sztuczna immunologia jako klasyfikatory danych. Dariusz Badura Letnia Szkoła Instytutu Matematyki 2010

I EKSPLORACJA DANYCH

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Badacze zbudowali wiele systemów technicznych, naśladujących w komputerze ludzki mózg. Najbardziej pożyteczne okazały się sieci neuronowe.

Agnieszka Nowak Brzezińska Wykład III

PODYPLOMOWE STUDIA ZAAWANSOWANE METODY ANALIZY DANYCH I DATA MINING W BIZNESIE

Sztuczne Sieci Neuronowe. Wiktor Tracz Katedra Urządzania Lasu, Geomatyki i Ekonomiki Leśnictwa, Wydział Leśny SGGW

Uczenie ze wzmocnieniem

Podstawy sztucznej inteligencji

Instytut Informatyki Uniwersytet Wrocławski. Dane w sieciach. (i inne historie) Marcin Bieńkowski

EGZAMIN MAGISTERSKI, czerwiec 2014 Matematyka w ekonomii i ubezpieczeniach

Technologie Informatyczne Wykład VII

1. Logika, funkcje logiczne, preceptron.

6. Perceptron Rosenblatta

Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner. rok akademicki 2013/2014

Lekcja 5: Sieć Kohonena i sieć ART

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Rozpoznawanie obrazów

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Sztuczne sieci neuronowe. Uczenie, zastosowania

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Inteligentne systemy przeciw atakom sieciowym

ALGORYTMY SZTUCZNEJ INTELIGENCJI

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

SVM: Maszyny Wektorów Podpieraja cych

Programowanie celowe #1

Zagadnienia do małej matury z matematyki klasa II Poziom podstawowy i rozszerzony

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Wprowadzenie do sieci neuronowych i zagadnień deep learning

Zastosowania sieci neuronowych - automatyka identyfikacja sterowanie

SZTUCZNA INTELIGENCJA

Uczenie maszynowe w zastosowaniu do fizyki cząstek

Prognozowanie kierunku ruchu indeksów giełdowych na podstawie danych historycznych.

Metody klasyfikacji danych - część 1 p.1/24

Metody systemowe i decyzyjne w informatyce

SPOTKANIE 6: Klasteryzacja: K-Means, Expectation Maximization

Literatura. Sztuczne sieci neuronowe. Przepływ informacji w systemie nerwowym. Budowa i działanie mózgu

TEORETYCZNE PODSTAWY INFORMATYKI

Ile waży arbuz? Copyright Łukasz Sławiński

Wykład 6 Centralne Twierdzenie Graniczne. Rozkłady wielowymiarowe

Klasyfikacja metodą Bayesa

PROGRAMOWANIE KWADRATOWE

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Technologie cyfrowe semestr letni 2018/2019

Transkrypt:

Filip Graliński Ku sztucznym sieciom neuronowym

Część I Wstęp

Sztuczna sieć neuronowa to NIE: sztuczny mózg mózg elektronowy symulacja mózgu To co to jest? Sztuczna sieć neuronowa to (zazwyczaj) układ wielu jednostek dokonujących regresji logistycznej. WTF??? spokojnie, podamy później intuicję bardziej strawne dla programistów

Część II Regresja logistyczna

Regresja liniowa Regresja liniowa jest prosta... 0 500000 1000000 1500000 25 50 75 100 125 powierzchnia cena

Regresja liniowa Regresja liniowa jest prosta... 0 500000 1000000 1500000 25 50 75 100 125 powierzchnia cena... dosłownie dopasuj prostą y = ax + b do punktów Należy odgadnąć a i b tak, aby zminimalizować błąd kwadratowy, tj. wartość: n i=1 (y i (ax i + b)) 2

Regresja liniowa (cd.) Regresje liniowa jest łatwa do rozwiązania wystarczy podstawić do wzoru! ni=1 x i y i ˆb 1 ni=1 n x nj=1 i y j = ni=1 xi 2 1 n ( n i=1 x i ) 2 â = ȳ ˆb x

Regresja liniowa (cd.) Regresje liniowa jest łatwa do rozwiązania wystarczy podstawić do wzoru! ni=1 x i y i ˆb 1 ni=1 n x nj=1 i y j = ni=1 xi 2 1 n ( n i=1 x i ) 2 â = ȳ ˆb x Na przykład dla mieszkań: b = -30809.203 zł, a = 5733.693 zł/m 2.

Regresja liniowa (cd.) W praktyce mamy do czynienia z wielowymiarową regresją liniową. Cena mieszkań może być prognozowana na podstawie: powierzchni liczby pokoi piętra wieku odległości od Dworca Centralnego w Warszawie cer zerojedynkowych: czy wielka płyta? czy jest jacuzzi? czy jest grzyb? czy to Kielce?

Regresja liniowa (cd.)... więc uogólniamy na wiele (k) wymiarów: gdzie: k y = w 0 + w 1 x 1 +... + w k x k = w 0 + w j x j j=1 x 1,...,x k zmienne, na podstawie których zgadujemy w 0, w 1,...,w k wagi modelu (do wymyślenia na podstawie przykładów) y odgadywana wartość Też istnieje wzór ładny wzór na wyliczenie wektora wag! w = (X T X) 1 X T y... niestety odwracanie macierzy nie jest tanie :(

Regresja liniowa podsumowanie Regresja liniowa to najprostszy możliwy model: im czegoś więcej na wejściu, tym proporcjonalnie (troszkę) więcej/mniej na wyjściu nic prostszego nie da się wymyślić (funkcja stała?? LOL) niestety model liniowy czasami kompletnie nie ma sensu (np. wzrost człowieka w stosunku do wieku) To teraz do regresji logistycznej, prowadzą tam dwie drogi: 1 od naiwnego Bayesa 2 od klasyfikacji liniowej

od naiwnego Bayesa do regresji logistycznej Policzmy logarytm szans, że tekst q należy do klasy c (np. że jest spamem). (Szanse to stosunek prawdopodobieństwa zajścia czegoś do prawdopodobieństwa niezajścia). Oznaczmy przez x i liczbę wystąpień termu t i w tekście q, teraz: log P(c q) P(c)P(q c) = log P( c q) P( c)p(q c) = log( P(c) P(t i c) x i P( c) P(t i i c) x ) = log(p(c) i P( c) = log P(c) P( c) + i P(c) i = log P(t i c) x i P( c) i P(t i c) x i x i log P(t i c) P(t i c) i = ( P(t i c) P(t i c) )x i ) =

od naiwnego Bayesa do regresji logistycznej (cd.)... weźmy teraz w 0 = log P(c) P( c), w i = log P(t i c) P(t i c) i mamy: log P(c q) P( c q) = w 0 + i w i x i = w 0 + w 1 x 1 + + w k x k A zatem sprowadziliśmy naiwnego Bayesa do liniowej formuły! (Wagi nie są odbierane optymalnie, lecz na podstawie idiot-modelu, który w praktyce działa całkiem nieźle.) Optymalne dobieranie wag to regresja logistyczna!

od naiwnego Bayesa do regresji logistycznej y Jeszcze popatrzmy na lewą stronę, logarytm szans: log P(c q) P( c q) = log P(c q) 1 P(c q) = logit(p(c q)) gdzie logit to funkcja logitowa: logit(x) = log x 1 x 5.0 2.5 0.0 2.5 Funkcja logitowa rozciąga wartości [0, 1] (np. prawdopodobieństwa) do [ inf, + inf]. 5.0 0.00 0.25 0.50 0.75 1.00 x

od regresji liniowej do logistycznej y No to spróbujmy inaczej. Dlaczego nie zastosować regresji liniowej do klasyfikacji? Powiedzmy, że y = 1 to spam, a y = 0 nie-spam... NIE, to jest głupie! Regresja liniowa nie lubi ograniczonych wartości y 1.25 1.00 0.75 0.50 0.25 0.00 0 5 10 15 20 25 x

od regresji liniowej do logistycznej 1 Przepuścić prawdopodobieństwa przez logit. 2 Zastosować regresję liniową, by ustalić wagi w i. 3 Odgadywać przez zastosowanie odwróconego logitu.

od regresji liniowej do logistycznej 1 Przepuścić prawdopodobieństwa przez logit. 2 Zastosować regresję liniową, by ustalić wagi w i. 3 Odgadywać przez zastosowanie odwróconego logitu. 4 PROFIT!

od regresji liniowej do logistycznej 1 Przepuścić prawdopodobieństwa przez logit. 2 Zastosować regresję liniową, by ustalić wagi w i. 3 Odgadywać przez zastosowanie odwróconego logitu. 4 PROFIT! Nie tak szybko! Niestety wszystkie przykłady uczące mają albo y = 0, albo y = 1, a zatem albo logit(y) = inf, albo logit(y) = + inf. Normalna regresja liniowa uczona na wartościach nieskończonych niedobrze...

od regresji liniowej do logistycznej Przedefiniujmy problem nasz klasyfikator będzie zwracał prawdopodobieństwo, nie wartości 0/1 w sumie słusznie, nie jesteśmy Duchem Św., żeby twierdzić coś na pewno jest albo nie jest minimalizujemy log-loss (nie błąd kwadratowy) logloss = 1 n n (y i log(p i ) + (1 y i ) log(1 p i )) i=1 jeśli chcesz zwracać p i = 0 albo p i = 1, to radzę być pewnym!

od regresji liniowej do logistycznej y Jednostka dokonująca regresji logistycznej: k ˆp = logit 1 (w 0 + w i x i ) i=1 Czyli: najpierw liniowo, a potem nieliniowo. A tak wygląda logit 1 : 1.00 0.75 0.50 0.25 0.00 10 5 0 5 10 x (Ściska całą oś w przedział (0, 1).)

od regresji liniowej do logistycznej Wejście x 1 w 1 Obciążenie w 0 Funkcja aktywacji x 2 w 2 Σ logit 1 Wyjście y x 3 w 3 Wagi

od regresji liniowej do logistycznej A jak nauczyć się wag z przykładów? Wzoru (z odwracaniem macierzy) podanego wcześniej nie da się zastosować (nieskończoności!)

od regresji liniowej do logistycznej A jak nauczyć się wag z przykładów? Wzoru (z odwracaniem macierzy) podanego wcześniej nie da się zastosować (nieskończoności!) Metoda gradientu prostego Schodź wzdłuż lokalnego spadku funkcji błędu.

od regresji liniowej do logistycznej Regresja liniowa uczenie 1: Zacznij od byle jakich wag w i (np. wylosuj) 2: repeat 3: Weź losowy przykład uczący x 1,...,x n, y. 4: Oblicz wyjście ŷ na podstawie x 1,...,x n. 5: Oblicz funkcję błędu między y a ŷ. 6: Zmodyfikuj lekko wagi w i w kierunku spadku funkcji błędu. 7: until Błąd stanie się wystarczająco mały

Zaraz, zaraz... Regresja logistyczna sama w sobie też jest potężnym narzędziem. W praktyce polecam Vowpal Wabbit: bardzo szybki potrafi przemielić miliardy (!) cech przykład: http://gonito.net/challenge/ petite-difference-challenge

Softmax uogólnienie regresja logistycznej na przypadek wieloklasowy. dla każdej klasy c mamy osobny wektor wag w c wynik dla każdej klasy możemy rozpisać jako iloczyn skalarny w c x wyniki tych iloczynów mogą być dowolnymi wartościami, jak z nich zrobić prawdopodobieństwa klas? tak: P(c x) = ewc x c ewc x

Część III Sztuczne sieci neuronowe

Regresja logistyczna wszystkiego nie załatwi. Sieci? A dlaczego nie zrobić sieci jednostek liniowych (zamiast logistycznych)?

Sztuczna sieć neuronowa Warstwa wejścia Warstwa ukryta Warstwa wyjścia Wejście #1 Wejście #2 Wejście #3 Wyjście Wejście #4 Wyliczanie wyjścia dla zadanego wejścia warstwa po warstwie (wprzód) rób regresję logistyczną

Sztuczna sieć neuronowa (cd.) jednostki w warstwach ukrytych i wyjściowej realizują regresję logistyczną (jednostki w warstwie wejściowej tylko wpuszczają wejście) warstw ukrytych może być więcej niż jedna (5, 6, 7,... ) jednostek może być tysiące (albo i więcej... ) (dużo, dużo mniej niż w mózgu)

Sztuczna sieć neuronowa uczenie Propagacja wsteczna (back propagation) 1: Zacznij od byle jakich wag w i (np. wylosuj) 2: repeat 3: Weź losowy przykład uczący x 1,...,x n, y. 4: for all Dla każdej warstwy od wejściowej do wyjściowej do 5: Oblicz wyjście (wprzód) na podstawie sygnału na wejściu 6: end for 7: for all Dla każdej warstwy od wyjściowej do wejściowej do 8: Zmodyfikuj lekko wagi w kierunku spadku funkcji błędu (różnicy między oczekiwanym a rzeczywistym wyjściem z danej warstwy). 9: end for 10: until Błąd stanie się wystarczająco mały

Sztuczna sieć neuronowa intuicje uczenie sieci neuronowej to rodzaj miękkiego programowania regresja logistyczna to rodzaj instrukcji warunkowej if x > 28.11 and x > 7.02 then... progi ustalane są automatycznie...... często takie, których człowiek nigdy by nie wymyślił człowiek programuje, nadając ogólny strukturę sieci pętle (sieci rekurencyjne) wykonywanie w wielu miejscach tej samej procedury (sieci splotowe) wsteczna propagacja wypełnia wartości liczbowe

Część IV Praktyka

Sztuczne sieci neuronowe nie przejmą władzy nie osiągną samoświadomości nie będą knuły nie wyślą terminatora Ale to NIE moda. Sieci neuronowe rozwiązują realne problemy i parę (?) zawodów przez nie zniknie. (Ktoś pamięta zecerów?)

program AlphaGo (oparty na sieciach neuronowych) pokonuje najlepszego goistę na świecie, Lee Sedola sieci neuronowe zmniejszają stopę błędów systemów rozpoznawania mowy o kilka procent neuronowe tłumaczenie automatyczne okazuje się lepsze od poprzedniej generacji translatorów (http://104.131.78.120/) sieci neuronowe podpisują zdjęcia (http://googleresearch.blogspot.com/2014/11/ a-picture-is-worth-thousand-coherent.html) nowy kierunek w sztuce incepcjonizm

Sieci neuronowe zrób to sam I to nie o przechwałki, kto ma większą. Może chodzić o różnice pomiędzy 1 tygodniem a 2 miesiącami. Ale do eksperymentów z sieciami wystarczy np. nvidia 960 (ok. 1000 zł).

narzędzia otwartoźródłowe numpy Theano TensorFlow Keras