Praca dyplomowa magisterska

Wielkość: px
Rozpocząć pokaz od strony:

Download "Praca dyplomowa magisterska"

Transkrypt

1 AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I INŻYNIERII BIOMEDYCZNEJ KATEDRA AUTOMATYKI I INŻYNIERII BIOMEDYCZNEJ Praca dyplomowa magisterska Wykorzystanie głębokich sieci neuronowych w weryfikacji mówcy Deep neural networks in speaker recognition Autor: Kierunek studiów: Opiekun pracy: Krzysztof Odrzywołek Automatyka i Robotyka dr inż. Jakub Gałka Kraków, 2016

2 Uprzedzony o odpowiedzialności karnej na podstawie art. 115 ust. 1 i 2 ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (t.j. Dz.U. z 2006 r. Nr 90, poz. 631 z późn. zm.): Kto przywłaszcza sobie autorstwo albo wprowadza w bład co do autorstwa całości lub części cudzego utworu albo artystycznego wykonania, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3. Tej samej karze podlega, kto rozpowszechnia bez podania nazwiska lub pseudonimu twórcy cudzy utwór w wersji oryginalnej albo w postaci opracowania, artystycznego wykonania albo publicznie zniekształca taki utwór, artystyczne wykonanie, fonogram, wideogram lub nadanie., a także uprzedzony o odpowiedzialności dyscyplinarnej na podstawie art. 211 ust. 1 ustawy z dnia 27 lipca 2005 r. Prawo o szkolnictwie wyższym (t.j. Dz. U. z 2012 r. poz. 572, z późn. zm.): Za naruszenie przepisów obowiazuj acych w uczelni oraz za czyny uchybiajace godności studenta student ponosi odpowiedzialność dyscyplinarna przed komisja dyscyplinarna albo przed sadem koleżeńskim samorzadu studenckiego, zwanym dalej «sadem koleżeńskim»., oświadczam, że niniejsza pracę dyplomowa wykonałem osobiście i samodzielnie i że nie korzystałem ze źródeł innych niż wymienione w pracy.

3 Spis treści 1. Wstęp Weryfikacja mówcy Biometria głosowa Klasyczne metody weryfikacji mówcy Modele statystyczne I-vectory Ewaluacja skuteczności systemów weryfikacji mówcy Metody ewaluacji Wskaźniki skuteczności Głębokie sieci neuronowe Sztuczne sieci neuronowe Głębokie uczenie Trening sieci neuronowych Forma nauki Funkcja kosztu Uogólniona reguła delta Wsteczna propagacja błędu Warianty metody gradientu prostego Inicjalizacja wag Regularyzacja Etapy treningu głębokiej sieci neuronowej Funkcje aktywacji Architektury głębokich sieci neuronowych Autoenkodery Ograniczone Maszyny Boltzmanna Konwolucyjne sieci neuronowe Rekurencyjne sieci neuronowe

4 4 SPIS TREŚCI 4. Zastosowanie głębokich sieci neuronowych w weryfikacji mówcy Przegląd literatury Proponowane rozwiązanie Realizacja systemu Narzędzia i biblioteki Korpusy danych Bazowa parametryzacja Głęboka parametryzacja Redukcja wymiarowości Klasyfikacja binarna Testy systemu Metodologia badań Optymalizacja konfiguracji sieci neuronowej Pretrenowanie Dotrenowanie Wielkość warstwy Liczba warstw Funkcja aktywacji Podsumowanie Wpływ zawartości leksykalnej wypowiedzi Wpływ niezależnej bazy Wpływ zmiany urządzenia Wpływ płci użytkownika Omówienie rezultatów Podsumowanie Bibliografia... 69

5 1. Wstęp Mimo nieustannego rozwoju systemów cyfrowych w kierunku przetwarzania coraz większej ilości informacji i szukania w nich coraz bardziej złożonych zależności, biologiczny mózg jest ciągle niedoścignionym wzorem. Inżynieria stara się odtwarzać zasady jego działania, formułując grupę algorytmów nazwanych Sztucznymi sieciami neuronowymi. Już pierwsze ich wersje wniosły wkład do ówczesnej analizy danych, a każda kolejna generacja znajduje zastosowania w coraz bardziej złożonych problemach. Tytułowe Głębokie sieci neuronowe są kontynuacją tej myśli, próbującą rozwiązywać problemy o hierarchicznej strukturze, inspirując się działaniem mózgu. Zadanie weryfikacji mówcy jest rozpoznaniem czy mówiąca osoba jest tym za kogo się podaje, przy pomocy cech charakterystycznych jej głosu. Rozwiązania problemu są znane. W ostatnich latach osiągnęły już dojrzałość i są stosowane w komercyjnych aplikacjach, lecz ich niezadowalająca skuteczność w trudnych warunkach pozostawia ten problem ciągle otwartym. Sztuczne sieci neuronowe w swej historii były już stosowane w algorytmach weryfikacji mówcy, jednak nigdy nie odgrywały w nich znaczącej roli. Dopiero dynamiczny rozwój algorytmów głębokiego uczenia doprowadził do nowych prób wykorzystania sieci neuronowych w przetwarzaniu dźwięku. Dzięki nim osiągnięto przełom w dziedzinie rozpoznawania mowy. Pomimo kilku prób zastosowania ich w weryfikacji mówcy, nie wypracowano jeszcze metody, która przewyższyłaby wyniki metod klasycznych. Rezultaty są jednak na tyle obiecujące, że skupiają uwagę wielu grup badawczych. Głównym celem pracy jest przeanalizowanie możliwości zastosowania głębokich sieci neuronowych do rozwiązania problemu weryfikacji mówcy. Omawiana grupa algorytmów wykorzystywana jest w rozwiązywaniu wielu współczesnych problemów, jednak nie istnieje uniwersalna topologia sieci, która dawałaby dobre rezultaty dla każdego z nich. W pracy porównane więc zostaną wybrane topologie, aby znaleźć najlepiej dostosowaną do rozwiązywanego zadania. Dalsza część analizy porówna skuteczność wypracowanego rozwiązania zarówno w trybie zależnym od wypowiadanej frazy, jak i od niej niezależnym. Zbadany zostanie również wpływ trudniejszych warunków testowych na skuteczność systemu. Jako że w polskiej literaturze ciągle brakuje prac na temat głębokich sieci neuronowych, to pierwsza część pracy poświęcona zostanie ich przybliżeniu, kładąc nacisk na te topologie sieci neuronowych, które są wykorzystywane w systemach weryfikacji mówcy. Kolejnym etapem pracy jest omówienie, w jaki sposób zastosować można sieci neuronowe w analizowanym problemie oraz przedstawienie kilku interesujących prac naukowych w tej dziedzinie. Na ich bazie zostanie zaproponowana i zrealizowana autorska architektura systemu, pozwalająca przeprowadzić omówioną wyżej analizę. 5

6 6 Struktura pracy przedstawia się następująco. W rozdziale 2 zostanie przybliżony problem weryfikacji mówcy - zasady, na których bazuje postawiony problem oraz klasyczne metody go rozwiązujące, wraz z pomocnymi pojęciami i narzędziami. W rozdziale 3 przedstawione będą sieci neuronowe, zaczynając od zwięzłego opisu podstaw ich działania oraz pojęć dotyczących ich trenowania. Następnie opisana zostanie dziedzina głębokich sieci neuronowych, definicje modeli zawierających się w tej grupie oraz metody ich nauki. Rozdział 4 to przegląd metod rozwiązujących problem weryfikacji mówcy przy pomocy głębokich sieci neuronowych na przykładzie najnowszych wyników badań. Na jego podstawie wybrany zostanie schemat realizowanego systemu. W rozdziale 5 zostanie omówiona praktyczna strona zbudowanego systemu, dokładna jego struktura oraz wykorzystane narzędzia. Rozdział 6 będzie zawierać analizę eksperymentów przeprowadzonych na zbudowanym systemie. Rozdział 7 podsumuje całą pracę.

7 2. Weryfikacja mówcy Weryfikacja tożsamości znajduje zastosowanie w systemach takich jak poczta elektroniczna, sklep internetowy, infolinia banku. Proces ten zawsze wymaga podania klucza dostępu i ze względu na jego typ można wyróżnić: Weryfikację oparta na wiedzy, w której kluczem jest zwykłe hasło, PIN, czy odpowiedź na prywatne pytanie bezpieczeństwa. Weryfikację oparta na posiadaniu, gdzie kluczem może być token z listy otrzymanej pocztą, kod wysłany na telefon komórkowy, a nawet zwykły klucz do drzwi. Weryfikacja biometryczna różni się od obydwu grup, ponieważ pozwala na potwierdzenie swojej tożsamości w oparciu nie o to co wiemy czy posiadamy, ale o to jacy jesteśmy [1]. Weryfikacja mówcy jest przykładem weryfikacji biometrycznej i definiuje się ją jako podejmowanie decyzji, czy mówca jest osobą, za którą się podaje, na podstawie jego głosu. Należy wyraźnie odróżnić ten problem od problemu identyfikacji mówcy, który polega na znalezieniu tożsamości mówcy wśród zamkniętej grupy osób Biometria głosowa Tożsamość mówcy wpływa na produkcję mowy na wiele sposobów, m.in: z powodu unikalnej budowy i ułożeniu narządów traktu głosowego, języka, którym mówca się posługuje, kontekstu społecznego mówcy, jego edukacji. Istnieją dwa główne etapy realizacji mowy, produkcja głosu i generacja języka. Cechy mówcy wpływają na obydwa komponenty. W przetwarzaniu mowy odpowiadają one cechom niskopoziomowym oraz wysokopoziomowym: Cechy niskopoziomowe, to cechy, w których informacje o tożsamości mówcy są ekstrahowane ze spektrum sygnału mowy, analizowanego w krótkich ramkach. Spektrum sygnału mowy jest bezpośred- 7

8 Klasyczne metody weryfikacji mówcy nio związane z dynamiczną konfiguracją traktu wokalnego, który jest zależny od budowy ciała mówcy. Cechy wysokopoziomowe można podzielić na kilka podgrup. Cechy fonotaktyczne informują o poszczególnym użyciu fonemów lub sylab i ich realizacji. Cechy prozodyczne reprezentują intonację, czy też tempo mowy. Cechy idiolektalne przechowują informacje o sposobie używania języka przez mówcę. Systemy weryfikacji głosowej analizują obie grupy cech, jednak skupiają się na cechach niskopoziomowych, które niosą więcej informacji o tożsamości mówcy oraz są niezależne od jego świadomości Klasyczne metody weryfikacji mówcy Uniwersalny schemat podejścia do rozwiązania problemu weryfikacji mówcy można opisać poprzez kolejne procedury: Parametryzacja sygnału dźwiękowego, w literaturze często nazywana front-end. Sygnał dźwiękowy jest poddawany algorytmowi Voice Activity Detection, który rozpoznaje fragmenty sygnału zawierające mowę. Następnie sygnał jest segmentowany na ramki, zazwyczaj o długości około 20 milisekund, aby z każdej ramki wyekstrahować zbiór cech częstotliwościowych sygnału. Najpopularniejszą reprezentacją częstotliwościową w problemie weryfikacji mówcy jest cepstrum sygnału przedstawione w skali melowej. Parametry MFCC (ang. Mel-frequency cepstral coefficients) są współczynnikami cepstrum w odpowiednich pasmach melowych. Drugą często stosowaną metodą parametryzacji sygnału mowy jest percepcyjna predykcja liniowa (ang. Perceptual Linear Prediction, PLP), bazuje ona na kodowaniu LPC (ang. Linear Predictive Coding) zmodyfikowanym o przypisanie wag poszczególnym pasmom częstotliwości tak, aby wzmocnić wpływ tych najlepiej odbieranych przez ucho ludzkie [2]. Rzadziej stosowaną formą parametryzacji są Banki Filtrów (ang. Filter Bank). Reprezentują one energię sygnału w kolejnych pasmach jego częstotliwości. Modelowanie, którego celem jest wyznaczenie najbardziej dystynktywnych cechy mowy danego użytkownika. Modele mówcy są tworzone z wektorów cech wyekstrahowanych z nagrań mowy rejestrującego się użytkownika. Mogą być one modelami wzorcowymi, jak w metodach Vector Quantization, Dynamic Time Warping czy Nearest Neighbours lub modelami stochastycznymi jak w Gaussian Mixture Models czy Hidden Markov Models. Obecnie stosuje się głównie modele stochastyczne, jako że są one bardziej pojemne [3]. Klasyfikacja, w literaturze etap często nazywany back-end. Proces podejmuje decyzję o sklasyfikowaniu mówcy, jako osoby zgodnej z podawaną tożsamością lub jako włamywacza. Etap ten zazwyczaj poprzedza wyznaczenie funkcji wiarygodności, która definiuje w jakim stopniu możemy uznać

9 2.2. Klasyczne metody weryfikacji mówcy 9 osobę mówiącą za tę, za którą się podaje. Dla modeli wzorcowych wynik dopasowania jest określany jako dystans pomiędzy weryfikowaną próbką głosu a modelem. Natomiast dla modeli stochastycznych jest to miara prawdopodobieństwa, iż weryfikowana próbka głosu oraz model pochodzą od tego samego mówcy. W obydwu przypadkach stosowane są różne warianty tych miar [3]. Natomiast ze strony użytkownika cały proces obejmuje kolejno: 1. Jednokrotną rejestrację próbek głosu. 2. Nieskończoną ilość weryfikacji. Zadania weryfikacji mówcy można podzielić ze względu na to, czy fraza wypowiadana przez użytkownika podczas weryfikacji jest taka sama jak w czasie rejestracji: Zależne od frazy (ang. Text-Dependent), które są ściśle ograniczone frazą, więc informacje leksykalne są wbudowane w modelowanie mówców. Niezależne od frazy (ang. Text-Independent), w których rejestrację oraz weryfikację można przeprowadzić bez wiedzy użytkownika, ponieważ nie jest on zobligowany do wypowiedzenia konkretnej frazy. [1] Modele statystyczne W zadaniu weryfikacji mówcy bardzo często stosowane są statystyczne modele GMM (ang. Gaussian Mixture Models). Najbardziej znanym ich wykorzystaniem jest podejście GMM-UBM. Schemat struktury tej metody jest przedstawiony na rysunku 2.1, składa się ona z trzech etapów: Rysunek 2.1: Schemat działania metody GMM-UBM Trening tła określanego skrótem UBM (ang. Universal Background Model), jest to wytrenowanie modelu GMM z dużej bazy wypowiedzi, pomijając informację o mówcach. W ten sposób otrzymujemy ogólną dystrybucję akustycznych cech mowy. W celu uzyskania dystrybucji jak najbardziej

10 Klasyczne metody weryfikacji mówcy odzwierciedlającej rzeczywistą, należy do treningu dobrać próbki różnych fraz, różnych kanałów oraz osób różnej płci. Standardową metodą trenowania modeli GMM jest iteracyjny algorytm Expectation Maximization opisany dokładniej w [4]. Rejestracja użytkownika generuje model mówcy poprzez adaptacje modelu tła, korzystając tylko z próbek głosu nagranych przez danego mówcę podczas rejestracji. Dzięki tej operacji model mówcy zawiera informację o cechach, które wyróżniają mówcę z ogólnej dystrybucji modelowanej przez UBM. Weryfikacja użytkownika, bazując na funkcji wiarygodności Λ(U), podejmuje decyzję o uwierzytelnieniu otrzymanej próbki głosuu. W procesie istnieją dwie hipotezy: H 0 : U pochodzi od deklarowanego mówcy. H 1 : U pochodzi od włamywacza. Funkcja wiarygodności może być więc określona jako: Λ(U) = log P(U H 0) P(U H 1 ) (2.1) Gdzie P(U H i ),i = 0,1 są prawdopodobieństwami hipotez H i, które mogą być obliczone przy posiadaniu modeli GMM mówcy (λ m ) oraz włamywacza. Zazwyczaj model tła (λ UBM ) służy jako aproksymacja modelu włamywacza, dlatego możemy (2.1) zapisać jako: Λ(U) = log P(U λ m) P(U λ UBM ) = logp(u λ m) logp(u λ UBM ) (2.2) Aby podjąć binarną decyzję, potrzeba jeszcze ustalić próg weryfikacji θ, powyżej którego próbka pozostanie uwierzytelniona: θ akceptujh 0 Λ(U) = (2.3) < θ akceptujh 1 Podejście to jest proste w implementacji oraz osiąga zadowalające wyniki, zarówno w systemach zależnych od frazy jak i niezależnych od frazy. W systemach zależnych od frazy najlepsze dotychczas rezultaty osiągają modele oparte o fuzję GMM oraz modeli HMM (ang. Hidden Markov Model) [5] [6].

11 2.2. Klasyczne metody weryfikacji mówcy I-vectory Rozwinięciem metody GMM-UBM, oraz najszerzej dziś stosowaną metodą weryfikacji mówcy, jest metoda i-vectorów (ang. identity vectors). Celem metody jest przeniesienie informacji zawartych w modelach GMM do przestrzeni zawierającej tylko te cechy akustyczne, na które wpływ ma tożsamość mówcy - do przestrzeni i-vectorów. W bazowej metodzie model mówcy jest adaptowaną wersją modelu UBM, jednak podczas adaptacji wagi komponentów GMM oraz macierze kowariancji każdego z nich pozostają niezmienne. Z tego powodu, wyróżnikiem mówcy może być sam wektor średnich modelu GMM. Przez konkatenacje średnich wszystkich komponentów modelu GMM otrzymujemy superwektor (ang. Supervector GMM). Superwektor można rozbić na cechy wspólne dla wszystkich mówców oraz na cechy zależne od tożsamości mówcy: s = m+ti (2.4) W powyższym równaniu s jest superwektorem otrzymanym z modelu GMM mówcy, natomiast m jest superwektorem uzyskanym z modelu UBM. Dalej T jest macierzą TV (ang. Total Variability), a i tytułowym i-vectorem - wektorem opisującym tożsamość mówcy. System rozpoznawania mówcy metodą i-vectorów opiera się o procesy: Trening modelu UBM dokładnie jak w rozdziale Trening macierzy TV, który jest kluczowym punktem metody. Macierz TV opisuje transformację przestrzeni superwektorów do pożądanej przestrzeni i-vectorów. Aby określić jej elementy należy, wyznaczyć statystyki Bauma-Welcha dla każdego komponentu modelu UBM, a następnie zastosować algorytm Expectation Maximization. Dokładny opis tego procesu znajduje się w [7]. Istotną kwestią jest również określenie wymiaru przestrzeni i-vectorów, a tym samym długości pojedynczego i-vectora. Parametr ten jest określany empirycznie, zazwyczaj jednak zawiera się w przedziale [8]. Rejestracja użytkownika poprzez wyznaczenie wzorcowego i-vectora użytkownika z próbek głosu nagranych przez danego mówcę podczas rejestracji. Proces ekstrakcji i-vectora również opisuje praca [7]. Weryfikacja użytkownika bazująca na funkcji wiarygodności Λ(X), podejmuje decyzję o uwierzytelnieniu otrzymanej próbki głosu. Jako funkcję wiarygodności stosuje się najczęściej kosinusową miarę podobieństwa dwóch wektorów, zwaną dalej CDS (ang. Cosine Distance Score): Λ(X) = CDS(i wzor,i test ) = < i wzor,i test > i wzor i test (2.5) Gdzie i wzor jest i-vectorem wzorcowym, otrzymanym podczas rejestracji, natomiast i test i-vectorem uzyskanym z weryfikowanej próbki głosu. Tak jak i w metodzie GMM-UBM, należy wyznaczyć próg weryfikacji (2.3).

12 Ewaluacja skuteczności systemów weryfikacji mówcy Rzadziej stosowaną alternatywą dla CDS jest metoda maszyny wektorów nośnych (ang. Support Vector Machine, SVM) zdefiniowana w [9], a zastosowana w omawianym problemie w [10]. Jako że przestrzeń, do której transformowany jest superwektor przez macierz TV, może uwzględniać nie tylko cechy mowy, ale również zjawiska akustyczne nie będące mową, stosowane są kolejne transformaty redukujące przestrzeń, a zarazem filtrujące wpływ niepożądanych zjawisk akustycznych: Liniowa analiza dyskryminacyjna (ang. Linear Discriminant Analysis, LDA) Wewnątrz klasowa normalizacja wariancji (ang. Within Class Covariance Normalisation, WCCN) Probabilistyczna liniowa analiza dyskryminacyjna (ang. Probabilistic Linear Discriminant Analysis, PLDA) Pierwsze dwie opisane są w [8] i [11], natomiast ostatnia w [12] Ewaluacja skuteczności systemów weryfikacji mówcy Aby mówić o skuteczności systemu weryfikacji mówcy, należy zdefiniować wskaźniki, które tę skuteczność określają oraz metody ich wyznaczania Metody ewaluacji Faza testu systemu powinna jak najwierniej odzwierciedlać działanie użytkowników, trzeba więc przeprowadzać zarówno próby weryfikacji, gdzie tożsamość mówcy jest zgodna z podawaną, jak i próby oszukania systemu. W literaturze dotyczącej automatycznego rozpoznawania mówcy, te pierwsze przyjęto nazywać weryfikacjami typu target lub też po prostu testami target. Natomiast te drugie są nazywane weryfikacjami typu impostor lub testami impostor. Metodą ewaluacji modeli statystycznych jest kroswalidacja. Polega ona na podziale zbioru danych na podzbiory, a następnie przeprowadzeniu treningu systemu na części z nich, gdy pozostałe służą do ocenienia skuteczności danego rozwiązania. Najpopularniejszą realizacją kroswalidacji jest k-krotna walidacja, w której cały zbiór danych jest dzielony na K podzbiorów, a następnie kolejno każdy z nich służy jako zbiór testowy, gdy pozostałe łącznie tworzą zbiór treningowy. Model jest więc trenowany i testowanyk razy. Otrzymane wyniki cząstkowe są uśredniane, aby otrzymać rezultat końcowy [13]. Ewaluacja systemów weryfikacji mówcy wykorzystuję tę metodę w następujący sposób. Dla każdego mówcy, losowo dzieli jego zbiór nagrań na rejestracyjne i weryfikacyjne. Nagrania rejestracyjne służą do stworzenia profilu mówcy, na którym następnie wykonywane są testy target z nagrań weryfikacyjnych danego mówcy oraz testy impostor z losowo wybranych nagrań pozostałych mówców.

13 2.3. Ewaluacja skuteczności systemów weryfikacji mówcy Wskaźniki skuteczności W celu oceny skuteczności systemu należy wyznaczyć liczbowy wskaźnik jakości, opisujący jak dobrze system radzi sobie z powierzonym mu zadaniem. W systemach rozpoznawania mówcy korzysta się z czterech podstawowych wskaźników: True Positive - system prawidłowo rozpoznał osobę uprawnioną. True Negative - system prawidłowo rozpoznał włamywacza. False Positive - system uznał włamywacza za osobę uprawnioną. False Negative - system uznał osobę uprawnioną jako włamywacza. Prawdopodobieństwo wystąpienia błędnych decyzji mierzą dwa kolejne wskaźniki: False Positive Rate, FPR - stosunek udanych prób włamania do wszystkich prób włamania. Opisuje bezpieczeństwo systemu - im większy, tym większe szanse włamania. False Negative Rate, FNR - stosunek odrzucenia osób uprawnionych do wszystkich prób osób uprawnionych. Opisuje użyteczność systemu - im większy tym częściej system będzie błędnie odrzucał osobę uprawnioną. Obydwa powyższe wskaźniki są zależne od progu weryfikacji. Decydując się na ustalenie jego wartości, zawsze trzeba przyjąć pewien kompromis między użytecznością a bezpieczeństwem systemu. Celem uzyskania wartości niezależnej od progu weryfikacji, definiuje się wskaźnik Equal Error Rate (EER). Jest to wartość błędów FPR i FNR w punkcie, w którym są one równe. Inną miarą skuteczności systemu jest funkcja Detection Cost Function (DCF) (2.6) [14]. Przykłada ona większą wagę do bezpieczeństwa niż do użyteczności, jednak nie jest tak intuicyjna jak EER, dlatego nie będzie wykorzystywana w tej pracy. DCF(θ) = 0.99 FPR(θ)+0.10 FNR(θ) (2.6) Istnieje również kilka standardowych sposobów wizualizowania rezultatów otrzymanych przez testy ewaluacyjne: Histogram wiarygodności, na którym wyraźnie widać wiarygodność osiąganą przez dwie klasy testów - target oraz impostor. Celem systemu weryfikacji jest wyznaczenie takich wyników, aby te dwie klasy były rozłączne na osix(rys. 2.2). Wykres Detection Error Tradeoff (ang. DET plot) prezentując zależność pomiędzy wartościami FPR na osi x i FNR na osi y, wizualizuje opisany wyżej kompromis pomiędzy bezpieczeństwem a użytecznością systemu. Wykres umożliwia łatwe porównanie wyników osiąganych przez kilka systemów, dzięki zastosowaniu skal logarytmicznych na obu jego osiach. Skuteczniejszy system będzie zawsze reprezentowany linią bliższą przecięcia się zakresów bezpiecznego i użytecznego (rys. 2.3).

14 Ewaluacja skuteczności systemów weryfikacji mówcy Rysunek 2.2: Demonstracyjny histogram wyników weryfikacji. Rysunek 2.3: Demonstracyjny wykres Detection Error Tradeoff.

15 3. Głębokie sieci neuronowe Komputery świetnie rozwiązują algebraiczne problemy, potrafią mnożyć i dzielić na poziomie, który dla człowieka nigdy nie będzie osiągalny. Jednak takich problemów współczesnej inżynierii, jak rozpoznanie twarzy czy mowy, przetwarzanie języka naturalnego, nie da się rozwiązać z zadowalającą skutecznością przy pomocy konwencjonalnych algorytmów. Z drugiej strony te same zadania nie sprawiają trudności mózgowi człowieka, który w latach ewolucji przystosował się do codziennie spotykanych problemów. Sztuczne sieci neuronowe starają się imitować sposób działania biologicznego mózgu, aby rozwiązywać te klasy problemów, które są dla niego proste. Zakres algorytmów określanych sieciami neuronowymi jest nieprecyzyjny, inżynieria miesza modele probabilistyczne z ogólnymi zasadami poznawczymi mózgu, aby osiągać jak najlepsze rezultaty Sztuczne sieci neuronowe Ludzki mózg jest jest ogromną siecią połączonych ze sobą neuronów, które przetwarzają informację i modelują świat w którym żyjemy. Mózg zawiera około 100 miliardów neuronów i mniej więcej 1000 razy więcej połączeń między nimi, nazwanych synapsami (rys. 3.1). Rysunek 3.1: Uproszczony schemat biologicznego neuronu [15]. Neuron jest podstawową jednostką obliczeniową w mózgu, otrzymuje sygnał wejściowy od swych dendrytów i wytwarza sygnał wyjściowy wysyłając go wzdłuż jego jedynego aksonu. Akson jest podłączony przez synapsy do dendrytów kolejnych neuronów, przekazując w ten sposób sygnał dalej. Siła z jaką każda synapsa przekazuje sygnał jest zmienna, przyswajalna podczas uczenia. Wszystkie sygnały przekazane przez dendryty do neuronu są sumowane w ciele komórki. Jeśli suma jest większa od pewne- 15

16 Sztuczne sieci neuronowe go progu, to do aksonu wysyłany jest impuls elektryczny. Zakładając, że dokładny czas poszczególnych impulsów jest nieistotny i korzystając tylko z częstotliwości ich generowania, można modelować ten sygnał statyczną funkcją aktywacji [15]. Ten wzorzec działania neuronu został uformowany w równanie (3.1) oraz zobrazowany na rysunku 3.2. Sygnał wyjściowy neuronuy jest ważoną sumąn sygnałów wejściowychx i powiększoną o bias b, przekształconą przez funkcję aktywacji f. Nie mający polskiego określenia bias jest wartością modelującą próg, powyżej którego biologiczny neuron wysyła impuls. Rysunek 3.2: Model matematyczny pojedynczego neuronu [15]. N y = f( w i x i +b) (3.1) i=1 Sieci neuronowe są modelowane jako kolekcje neuronów połączonych w acykliczny graf skierowany. Wyjścia części neuronów stają się wejściami kolejnych neuronów. Ponadto, sieci neuronowe są zazwyczaj zorganizowane w oddzielne warstwy neuronów. Zwykle też każda warstwa jest w pełni połączona z sąsiadującymi, tzn. każdy neuron z danej warstwy jest połączony z każdym neuronem warstw sąsiadujących, ale nie jest połączony z żadnym neuronem własnej warstwy (rys. 3.3). Zwyczajowo nazywa się taką sieć Multi Layer Perceptron (MLP), nazwa pochodzi od nazwy jednowarstwowej sieci z progową funkcją aktywacji - Perceptronu. Określenie to jednak bywa mylące, gdyż w sieciach MLP progowe funkcje aktywacji z reguły nie są stosowane.

17 3.1. Sztuczne sieci neuronowe 17 Rysunek 3.3: Wielowarstwowa sieć neuronowa MLP. Warstwy sieci neuronowej można podzielić na: Warstwę wejściowa, która przechowuje dane dostarczone do sieci. Warstwę ukryta, czyli standardową warstwę przetwarzającą informacje według podanego wyżej schematu. Warstwę wyjściowa, która przechowuje wyniki sieci. Określenie Siećn-warstwowa w literaturze oznacza sieć o n warstwach ukrytych. Przebieg informacji od warstwy wejściowej do warstwy wyjściowej określany jest mianem propagacji w przód (ang. Forward propagation). Jednym z głównym powodów organizacji sieci neuronowej w warstwy jest łatwość i wydajność korzystania z tej struktury. Mając dany model neuronu (3.1) można określić modelm-neuronowej warstwy jako: N y j = f( w ij x i +b j ), j = 0..M 1 (3.2) i=1 Co można zapisać jako równanie macierzowe: y = f(w x+b) (3.3) Gdzie y R M jest wektorem wyjść, x R M wektorem wejść, W R MxN macierzą wag, ab R N wektorem biasu.

18 Głębokie uczenie 3.2. Głębokie uczenie Głębokie uczenie (Deep learning) jest działem uczenia maszynowego, rozwijającym się wokół algorytmów modelujących abstrakcje wysokich poziomów w dostępnych danych, korzystając z wielu warstw nieliniowych transformacji. Z założenia kolejne poziomy tworzą hierarchię cech od najmniej do najbardziej abstrakcyjnych. Głębokie sieci neuronowe (Deep Neural Networks) są najbardziej popularną grupą algorytmów głębokiego uczenia (rys. 3.4) [16]. Rysunek 3.4: Głębokie sieci neuronowe cechują się większą liczbą warstw niż sieci klasyczne. Głębokość architektury sieci neuronowej definiuje się jako długość najdłuższej ścieżki pomiędzy neuronem wejściowym a wyjściowym. W sieciach przesyłających sygnał w przód przekłada się to wprost na liczbę warstw. Nie istnieje graniczna liczba warstw, od której można nazwać sieć głęboka. Przyjęto uważać, że sieć posiadająca powyżej dwóch warstw ukrytych jest już siecią głęboką, jednak wraz z rozwojem coraz większych sieci ta granica może zostać przesunięta. Problemy z którymi zmaga się uczenie maszynowe, często posiadają hierarchiczną strukturę danych: W przetwarzaniu języka naturalnego każdą treść można podzielić na zdania, a te znowu na słowa. W trakcie automatycznego rozpoznawania twarzy, zdjęcie zawiera twarz składającą się z widocznych fragmentów jak nos, usta, czy oczy i każdy z nich można opisać jako zbiór prostych kształtów. Podczas przetwarzania mowy, każde słowo dzieli się na sylaby, a te znowu na fonemy. Struktury te można opisać przy pomocy sieci jednowarstwowej, co dowodzi twierdzenie o uniwersalnej aproksymacji, jednak płaska reprezentacja nie jest ani zwięzła, ani łatwa do nauczenia [17]. Głębokie sieci neuronowe, inspirując się działaniem mózgu, starają się nauczyć tych struktur danych, co znacznie ułatwia wnioskowanie. Kolejne warstwy rozpoznają coraz bardziej złożone obiekty, bazując na abstrakcji reprezentowanej przez poprzednie warstwy (rys. 3.5). Nie znaczy to jednak, że dla każdego

19 3.2. Głębokie uczenie 19 problemu głębokie sieci sprawdzą się lepiej. Dla mniej skomplikowanych problemów lub problemów nie posiadających hierarchicznej struktury, sieci płytkie mogą dać lepsze rezultaty. Rysunek 3.5: Hierarchia abstrakcji cech w głębokich sieciach neuronowych Mocnym atutem głębokich sieci neuronowych jest także automatyczna ekstrakcja cech. W klasycznych algorytmach uczenia maszynowego zespół ekspertów w dziedzinie zastosowania algorytmu jest zmuszony znaleźć metodę wydobywającą najbardziej informatywne oraz nieredundantne cechy posiadanych danych i dopiero bazując na tych informacjach uczyć algorytm. Głębokie sieci neuronowe potrafią nauczyć się wybierać najistotniejsze cechy danych bez udziału ekspertów. Idea głębokich sieci neuronowych powstała już na początku lat 70-tych, jednak istnieją powody, dla których początkowy ich rozwój był tak powolny, a ich rozmiar jest wciąż ograniczony: Wraz z rosnącą liczbą warstw rośnie liczba parametrów modelu, które należy nauczyć. Ucząc wiele warstw na małej ilości danych, sieć bardzo szybko się przetrenowuje. W skrajnych przypadkach sieć o zbyt dużej pojemności może nauczyć się całego zbioru treningowego na pamięć. Zwiększając rozmiar sieci neuronowych oraz ilość danych treningowych, zwiększa się także znacznie zapotrzebowanie na moc obliczeniową jednostek przetwarzających taką ilość informacji. Klasyczne podejście treningu, przy użyciu metod gradientowych oraz algorytmu propagacji wstecznej, cierpi na problem zanikajacego gradientu, opisany w dalszej części pracy. Podczas ostatniej dekady wpływ tych problemów został zmniejszony gdyż: Rozwój Internetu i idąca razem z nim ogólna cyfryzacja życia udostępniła ogromne ilości danych. W niektórych przypadkach problem się odwrócił, trudność stanowi eksploracja pokaźnych objętości baz danych. Istnieją jednak specjalistyczne dziedziny, w których ciągle brakuje wystarczających ich ilości, aby stosować głębokie metody nauki. Moc obliczeniowa procesorów nieprzerwanie rośnie od kilku dekad, a wprowadzenie na rynek wydajnych procesorów graficznych przyśpieszyło treningi sieci neuronowych o rząd wielkości.

20 Trening sieci neuronowych Prace Yanna LeCuna na temat sieci konwolucyjnych [18] oraz pomysł Geoffreya Hintona na pretrenowanie głębokich sieci neuronowych przy użyciu Ograniczonych Maszyn Boltzmanna [19] bardzo mocno pobudziły dziedzinę. Z każdym rokiem rośnie liczba prac badawczych jej dotyczących, owocując coraz skuteczniejszymi metodami treningu, dla coraz większych modeli Trening sieci neuronowych Aby nauczyć sieć neuronową określonego zadania, należy najpierw wyznaczyć funkcję kosztu reprezentującą popełnione przez sieć błędy. Po jej określeniu, nauka sieci opiera się na minimalizacji błędów metodami gradientowymi optymalizacji statycznej. Poniżej szerzej zostaną opisane elementy całego procesu Forma nauki W dziedzinie uczenia maszynowego można wyróżnić kilka form nauki w zależności od tego, czy model ma nauczyć się wnioskować na podstawie opisanych danych, czy też wnioskować bazując na ukrytej strukturze danych nieetykietowanych. Oto jak definiuje się te formy: Uczenie nadzorowane (ang. Supervised learning). Algorytm uczenia podpada pod tę kategorię, gdy pożądany rezultat jest dostarczony razem z danymi wejściowymi podczas treningu. Dostarczając obydwie informacje możliwym jest obliczyć błąd pomiędzy pożądanym rezultatem, a tym otrzymanym od sieci neuronowej i na tej podstawie wyliczyć korektę do zaktualizowania jej wag. Uczenie nienadzorowane (ang. Unsupervised learning). W tej formie sieci neuronowej podawane są tylko dane wejściowe, a zadaniem sieci jest odkrycie struktury dostarczonych danych bez pomocy z zewnątrz. W uczeniu nadzorowanym istotne są te informacje, które kierują wynik ku temu pożądanemu. W nienadzorowanym uczeniu natomiast istotne są te informację, które pozwalają jak najniższym kosztem zrozumieć rozkład danych wejściowych. Zazwyczaj w algorytmach tego typu wbudowane są tzw. wąskie gardła (Bottleneck), co uniemożliwia sieci przechowywanie nieistotnych informacji. Uczenie ze wzmocnieniem (ang. Reinforcement learning) jest podobne do uczenia nadzorowanego, jednak zamiast podania wprost pożądanych danych wyjściowych, sieć otrzymuje wskaźnik jakości otrzymanego rozwiązania, czasem nazywany nagrodą. Celem sieci jest maksymalizacja tej nagrody. Ta forma nauki jest rzadziej stosowana i nie będzie dalej omawiana w tej pracy.

21 3.3. Trening sieci neuronowych Funkcja kosztu Funkcja kosztu (ang. loss function) określa miarę błędów popełnionych przez sieć. Dla zadań regresji liniowej koszt można opisać jako średnią kwadratów różnic (ang. mean square error) pomiędzy pożądanymi rezultatami (Y ), a tymi wnioskowanymi przez sieć (Z): L(Z,Y) = 1 N ( ) 2 yn z n (3.4) N n=1 Dla zadań klasyfikacji dyskretnej korzysta się ze średniej entropii krzyżowej (ang. cross entropy): L(Z,Y) = 1 N N n=1 ( ) y n logz n +(1 y n )log(1 z n ) Oba przypadki mają swoje modyfikacje stosujące sumy w miejsce średnich. (3.5) Uogólniona reguła delta Reguła delta opisuje zastosowanie metody gradientu prostego do aktualizacji wag sieci neuronowej. Stąd zmianę wagij-tego neuronu względem jegoi-tego wejścia można zapisać jako: A zmianę biasuj-tego neuronu jako: w ij w ij = w ij η L w ij (3.6) b j b j = b j η L b j (3.7) Regułę można rozumieć jako podążanie krokami o długości η w kierunku antygradientu funkcji kosztu ( L w ij ), czyli w kierunku najszybszego spadku wartości tej funkcji. Długość krokuη określana jest mianem współczynnika nauki (ang. learning rate), jego wartość ma wpływ na zbieżność minimalizacji i powinna być odpowiednio dobrana do stosowanej architektury sieci. Reguła jest nazywana uogólnioną, ponieważ oryginalna jej definicja uwzględniała tylko funkcję kosztu, określoną jako średnia kwadratów różnic Wsteczna propagacja błędu Reguła delta korzysta z funkcji kosztu jako miary popełnianego przez neuron błędu. Ma to uzasadnienie, gdy sieć jest jednowarstwowa lub gdy dotyczy to ostatniej warstwy sieci wielowarstwowej. W takiej sytuacji neuron ma bezpośredni wpływ na wartość funkcji kosztu. W przypadku sieci wielowarstwowej należy wpierw określić, jaki wpływ miał dany neuron na otrzymany błąd. Algorytm wstecznej propagacji błędu (ang. backpropagation) propaguje błąd otrzymany w ostatniej warstwie do warstw wcześniejszych. Reguła aktualizacji wag (3.6) zostaje zachowana, jednak pochodna cząstkowa L w ij jest określana przez regułę łańcuchową pochodnych funkcji złożonych. Rachunki, które za tym się kryją, nie są skomplikowane, lecz obszerne i dlatego zostaną w tej pracy pominięte.

22 Trening sieci neuronowych Propagacje wstecz można rozumieć w następujący sposób. Na podstawie reguły delta liczona jest zmiana wag ostatniej warstwy, następnie liczony jest wpływ warstwy przedostatniej na błędne wagi warstwy ostatniej i na tej podstawie wagi warstwy przedostatniej są aktualizowane. W podobny sposób jest liczony wpływ wag warstwy wcześniejszej itd., aż do wyliczenia poprawki wag warstwy pierwszej Warianty metody gradientu prostego Metoda gradientu prostego (ang. gradient descent) zakłada wyliczenie wartości funkcji kosztu dla całego zbioru danych treningowych i na tej podstawie aktualizacje wag sieci. Takie podejście określane jest jako Batch Gradient Descent. Jednak ten sposób jest bardzo powolny, zwłaszcza przy osiągających dziś ogromne rozmiary zbiorach treningowych. Z powyższego powodu powstały modyfikacje metody, polegające na mniejszych, za to częstszych krokach w kierunku gradientu przybliżonego. Na podstawie sposobu estymacji gradientu można wyróżnić: Stochastic Gradient Descent (SGD), która estymuje gradient na podstawie tylko jednego przykładu ze zbioru treningowego. Aktualizacje wag są szybkie i bardzo niedokładne. Zmniejsza to stabilność algorytmu, ale wprowadza szum do metody, co redukuje znaną wadę metody bazowej - utknięcia w minimach lokalnych. W praktyce stosuje się kompromis w postaci Mini-Batch Gradient Descent lub dodaje silny wpływ opisanego niżej momentum. Mini-Batch Gradient Descent estymuje wartość gradientu na podstawie małego podzbioru zbioru treningowego. Przeciętny rozmiar takiej paczki danych (ang. batch size) waha się w granicach Zastosowanie takiej ilości danych ciągle jest dużo szybsze niż zastosowanie całego zbioru, jednocześnie jest dużo stabilniejsze niż SGD. W przypadku klasyfikacji istotne jest, aby w paczce danych znalazła się równa liczba przykładów każdej z klas. W obydwu wariantach niezbędne jest wybieranie podzbioru w sposób losowy. Innym usprawnieniem metody jest tak zwane momentum. Jest to uwzględnienie ostatniej dokonanej zmiany wagi w obecnie dokonywanej, gdzie parametrζ (0;1) jest siłą tego wpływu. w ij = η L w ij +ζ w ij (3.8) Momentum stabilizuje zbieżność minimalizacji przez przeciwdziałanie zjawisku zygzakowania. W procesie treningu przedstawienie sieci całego zbioru danych, niezależnie od omówionych wyżej metod, nazywane jest jedną epoka nauki.

23 3.3. Trening sieci neuronowych Inicjalizacja wag Wszystkie neurony jednej warstwy otrzymują ten sam wektor danych wejściowych, lecz uzyskują inne wartości wyjściowe tylko dlatego, że każdy z nich posiada inny zestaw wag. Z tego powodu nie należy inicjalizować wag neuronów tą samą wartością. W początkowej fazie treningu powodowałoby to powstawanie identycznych, a później bardzo mocno skorelowanych wartości na każdym neuronie danej warstwy, co z kolei bardzo utrudniłoby naukę sieci. Ochroną przeciw takiej sytuacji jest proces nazywany łamaniem symetrii (ang. breaking symmetry). Jest to po prostu losowanie początkowych wartości wag z małego zakresu, który musi być wystarczająco duży, żeby złamać symetrię, a jednocześnie na tyle mały, aby nie wprowadzać sieci do stanu, którego ciężko będzie ją oduczyć. W przypadku sieci głębokich dobór wag ma jeszcze większe znaczenie. Jeśli wagi są zbyt małe, to siła sygnału maleje wraz z przechodzeniem przez kolejne warstwy i sygnał powoli przestaje być użyteczny. Znowu gdy wagi są zbyt duże, to siła sygnału rośnie przechodząc przez kolejne warstwy, co również zmniejsza jego przydatność. Dobór odpowiedniego zakresu był tematem prac badawczych [20, 21]. Ustaliły one, że aby siła sygnału była stała, wariancja wag powinna wynosić 1 n in w czasie propagacji w przód i adekwatnie 1 n out w czasie propagacji wstecznej, gdzie n in oraz n out oznaczają odpowiednio liczbę wejść i liczbę wyjść neuronu. Aby pogodzić obydwa warunki zaproponowano generowanie początkowych wag według: w N ( 2 ) 0, (3.9) n in +n out Korzystając jednak z funkcji aktywacji ReLU, opisanej w rozdziale 3.4, praca [21] prezentuje lepsze rezultaty, gdy zainicjuje się wagi w następujący sposób: w N ( 2 ) 0, (3.10) n in Przedstawione techniki inicjalizacji wag opierają się na wielu założeniach co do architektury sieci neuronowej. Optymalny zakres wartości początkowych wag jest od niej ściśle zależny, więc zawsze warto empirycznie sprawdzić, czy lekkie zmiany tego parametru nie poprawią skuteczności treningu Regularyzacja Z treningiem sieci neuronowej, jako swego rodzaju uczeniem modelu statystycznego, wiążę się kilka istotnych pojęć: Pojemność (ang. capacity) jest własnością sieci wyznaczoną przez jej architekturę oraz wszystkie jej metaparametry i odnosi się do możliwości modelowania przez sieć dowolnej zależności występującej w danych. Może być również interpretowana jako ilości informacji, które mogą być zawarte w sieci i na których podstawie sieć może wnioskować. Niedotrenowanie (ang. underfiting) występuję gdy model jest zbyt prosty, ma zbyt małą pojemność i nie potrafi prawidłowo zrozumieć zbyt skomplikowanej struktury danych. Rozwiązaniem jest

24 Trening sieci neuronowych zwiększenie pojemności modelu. Można to zrobić na przykład przez zwiększenie rozmiaru bądź liczby warstw sieci neuronowej. Przetrenowanie (ang. overfitting) jest nadmiernym dopasowaniem modelu do danych treningowych. Model ma zbyt dużą pojemność i oprócz istotnej struktury przedstawionych mu danych, udaje mu się nauczyć także szumu danych. Przetrenowanie można uchwycić stosując walidację, natomiast przeciwdziałać jej można zmniejszając model lub też ograniczając możliwości modelu przez regularyzację. Regularyzacja to ogólna nazwa grupy metod ograniczających, czy też regulujących pojemność sieci w trakcie treningu. Proste zmniejszenie wymiarów sieci zapobiega przetrenowaniu, lecz także zmniejsza możliwości sieci. Preferuje się więc metody regularyzacji, które starają się ograniczać model w miejscach najbardziej podatnych na przetrenowanie oraz tylko w czasie treningu, co nie zmniejsza możliwości nauczonej już sieci. W sieciach neuronowych stosuje się następujące metody regularyzacji: Regularyzacja L2 jest najbardziej powszechną formą regularyzacji. Implementowana jest przez dodanie kary do funkcji kosztu na kwadrat wartości wszystkich wag modelu, tj. dodanie członu 1 2 λw2, gdzie λ jest parametrem określającym siłę tej regularyzacji. Regularyzację L2 można interpretować jako nakładanie kary na wagi o dużo większej wartości od pozostałych i preferowanie ich równomiernego rozłożenia. Zmusza to sieć do korzystania z wszystkich wymiarów danych wejściowych. Regularyzacja L1 w implementacji podobna do L2, lecz dodająca człon λ w. Możliwe jest łączenie obydwu poprzez dodanie λ 1 w +λ 2 w 2. Regularyzacja L1 sprawia, że wektory wag stają się bardziej rzadkie podczas optymalizacji (większość wartości w wektorze wag neuronu jest bliska zeru). Inaczej mówiąc, neurony korzystają tylko z kilku najistotniejszych wejść i stają się niezależne od szumu w innych. Max-norm wytycza górną granicę wartości wektora wag dla każdego neuronu i skaluje ten wektor w dół, jeśli wartość graniczna zostaje przekroczona. Ograniczenie można zapisać jako w 2 < d, gdzie d jest górną granicą. Główną zaletą tego typu regularyzacji jest uniemożliwienie eksplozji wag, gdy współczynnik nauki jest zbyt duży. Dla niektórych modeli umożliwia to nieszkodliwe zwiększanie tego współczynnika, co znacznie przyśpiesza proces nauki. Dropout jest prostą i bardzo skuteczną techniką przedstawioną pierwszy raz w [22], która uzupełnia powyższe metody. Podstawową ideą jest losowe omijanie pewnych neuronów podczas treningu sieci (rys. 3.6). W trakcie treningu pozostawiona jest tylko część p neuronów warstwy, a pozostałe 1 p są ignorowane. Metoda realizowana jest przez nałożenie binarnej maski r n na wartości wyjściowe każdej warstwy: y n = r n y n p (3.11)

25 3.3. Trening sieci neuronowych 25 Zmodyfikowany wektor wyjść y n uczestniczy dalej w propagacji w standardowy sposób: y n+1 = f ( w n y n +b n ) (3.12) Maskar n jest inna dla każdej warstwy i generowana przy każdej propagacji w przód zgodnie z: r n Bernoulli(p) (3.13) Metoda ma kilka interpretacji, spoglądających na nią z różnych perspektyw: Neurony nie mogą polegać na innych neuronach tej samej warstwy, dlatego starają się niezależnie ekstrahować istotne informację z danych wejściowych. Cechy te są bardziej ogólne i redundantne w pozytywny sposób. Pozwala to te same informacje prezentować kolejnym warstwom w różnych formach, co ułatwia im wnioskowanie. Zastosowanie techniki dropoutu może być też interpretowane jako próbkowanie podsieci z pełnej topologi sieci (rys. 3.6). W takiej wykładni całą sieć można traktować jako duży zbiór modeli o wspólnych parametrach, a wynik otrzymany przez pełną sieć jako uśredniony rezultat wszystkich modeli. W kolejnej interpretacji można rozumieć dropout jako szum dodany do informacji na wszystkich warstwach sieci. Sieć stara się uczyć mimo szumu, więc zauważa tylko istotne informacje, których wpływu szum nie zdołał zredukować. Rysunek 3.6: (a) Standardowy przebieg połaczeń sieci wielowarstowej, (b) przykładowy przebieg połączeń po zastosowaniu techniki dropout.

26 Trening sieci neuronowych Etapy treningu głębokiej sieci neuronowej Wsteczna propagacja błędu jest zależna od gradientu funkcji aktywacji. Gdy ma on małą wartość, blokuje propagacje, co prowadzi do minimalnych lub zerowych zmian w wagach neuronów warstw początkowych. Neurony warstw wyższych wnioskują na podstawie warstw niższych, dlatego gdy one nie potrafią się nauczyć, trening całej sieci jest niemożliwy. Problem ten nazywany jest problemem zanikajacego gradientu. Aby go uniknąć, naukę można rozpocząć nienadzorowanym treningiem wstępnym - pretreningiem, a następnie dostroić tak otrzymany model przez nadzorowane dotrenowanie. 1. Pretrening (ang. Pre-training) wykonywany jest przez nienadzorowane trenowanie kolejno każdej ukrytej warstwy sieci (rys. 3.7). Najpierw trenowana jest pierwsza warstwa ukryta tak, aby jak najlepiej reprezentowała dane wejściowe. Następnie wytrenowaną warstwę traktujemy jako warstwę wejściową dla warstwy kolejnej, powtarzając schemat aż do ostatniej warstwy ukrytej. Jest to algorytm zachłanny, nie aktualizuje wagi w już pretrenowanych warstwach. Mimo to wagi sieci po wstępnym treningu są dużo lepiej dostosowane do występujących w zbiorze treningowym danych, niż byłby przy losowej inicjalizacji. 2. Dotrenowanie (ang. Finetuning) jest treningiem dostrajającym wagi zainicjalizowane przez pretrening do rozwiązywanego problem. W wariancie nauki z nauczycielem z pretrenowanych warstw można złożyć głęboką sieć MLP. Można również wykorzystać je do zbudowania głębokich modeli uczonych w sposób nienadzorowany. Najpopularniejszymi z nich są Stacked denoising Autoencoders oraz Deep Belief Networks. Rysunek 3.7: (1-3) Pretrening kolejnych warstw, (4) dotrenowanie całości modelu. Zastosowanie najnowszych praktyk podczas treningu, jak funkcja aktywacji ReLU wraz z regularyzacją dropout, pozwala zrezygnować z fazy trenowania wstępnego, gdy dostępna jest bardzo duża ilość danych etykietowanych. W przypadku gdy zbiór danych etykietowanych jest mniejszy, a zwłaszcza gdy uzupełniony jest dużym nieetykietowanym zbiorem, pretrening jest ciągle stosowany.

27 3.4. Funkcje aktywacji Funkcje aktywacji Rolą funkcji aktywacji jest przedstawienie, w jakim stopniu dany neuron jest pobudzony aktualnie docierającymi do niego wartościami. Jej wybór ma duży wpływ na przebieg treningu sieci neuronowej. Poniżej opisano kilka z nich w kolejności chronologicznej, aby lepiej zrozumieć zalety obecnych rozwiązań na przykładach wad ich poprzedników (rys. 3.8, 3.9). Rysunek 3.8: Przebieg popularnych funkcji aktywacji wraz z ich gradiente Funkcja liniowa f(x) = ax (3.14) Prosta funkcja używana na początku historii sieci neuronowych. Przez brak nieliniowości znacznie zmniejsza możliwości sieci. Powoduje niestabilną zbieżność modelu podczas nauki, gdyż w żaden sposób nie ogranicza przetwarzanych wartości. Ponadto wiele warstw sieci o liniowej funkcji aktywacji jest równoważne jednej liniowej warstwie 1, więc ten rodzaj aktywacji nie ma zastosowania w wielowarstwowych sieciach. Funkcja progowa a, x 0 f(x) = 0, x < 0 (3.15) Funkcja wolna od wymienionych wad funkcji liniowej, jednak poprzez swoją nieciągłość oraz zerowy gradient powoduje duże problemy z nauką modelu. 1 Wyjście z dwuwarstwowej sieci o liniowej funkcji aktywacji można zapisać jakoy 2 = W 2x 2+b 2, gdziex 2 jest wyjściem z warstwy pierwszej: x 2 = W 1x 1 + b 1, więc: y 2 = W 2(W 1x 1 + b 1) + b 2 = W 2W 1x 1 + W 2b 1 + b 2, a co można zapisać w postaci jednej warstwyy 2 = W x 1 +b, gdziew = W 2W 1, ab = W 2b 1 +b 2.

28 Funkcje aktywacji Funkcja sigmoidalna f(x) = σ(x) = 1 1+e x (3.16) Funkcja sigmoidalna jest ciągłym przybliżeniem funkcji progowej, ograniczającym rzeczywiste wartości do zakresu pomiędzy 0 a 1. Posiada też dobrą interpretację biologiczną: od braku aktywności neuronu (0) do maksymalnej częstotliwości wysyłania impulsów (1). Jeszcze parę lat temu była standardowym wyborem podczas implementacji sieci neuronowej, jednak ostatnio jej popularność maleje. Są tego dwa główne powody: Gdy sigmoida jest nasycona, bliska 0 lub 1, wartość jej gradientu jest prawie bliska zeru (rys 3.8), co bardzo utrudnia naukę danego neuronu oraz sprawia, że neuron nie przesyła sygnału do wcześniejszych warstw podczas propagacji wstecznej. Neurony, które na wyjściu dają "zawsze 0" lub "zawsze 1", są nazywane martwymi. Gdy początkowe wagi lub współczynnik nauki sieci są zbyt duże, większość neuronów szybko się nasyca i sieć praktycznie się nie uczy. Wartości wyjściowe sigmoidy nie są skoncentrowane wokół zera, przez co kolejne warstwy sieci otrzymują dane o coraz większej średniej wartości, co znowu często implikuje zjawisko zygzakowania podczas optymalizacji modelu. Tanh f(x) = tanh(x) = 2σ(x) 1 (3.17) Tangens hiperboliczny zasadniczo jest przeskalowaną funkcją sigmoidalną i również nasyca się w tych samych przedziałach, lecz wyjścia neuronów o tej funkcji aktywacji są skoncentrowane wokół zera. Rysunek 3.9: Przebieg popularnych funkcji aktywacji wraz z ich gradientem

29 3.4. Funkcje aktywacji 29 Softplus ReLU f(x) = i=1 1 1+e (x i+0.5) ln(1+ex ) (3.18) Funkcja softplus jest aproksymacją sumy wielu sigmoid przesuniętych względem siebie na osi x, co może być również interpretowane jako suma wielu neuronów z sigmoidalną funkcją aktywacji o tych samych wagach, lecz różnych biasach. f(x) = max(0,x) (3.19) Rectified Linear Units stały się bardzo popularne w ostatnich latach. Jest to przybliżenie funkcji Softplus przez proste progowanie w zerze. Zabieg ten przyśpiesza zarówno implementację jak i obliczenia algorytmu w porównaniu do funkcji sigmoidalnej i tanh. Udowodniono również, że znacznie przyśpiesza zbieżność stochastycznej metody gradientu prostego. Z drugiej jednak strony neuron może łatwo "umrzeć", gdy jego wagi dojdą do stanu, w którym neuron będzie zawsze zwracał 0. Wejście w taki stan jest dla neuronu nieodwracalne. Mała wartość współczynnika nauki zmniejsza prawdopodobieństwo wystąpienia tego problemu [23]. LeakyReLU f(x) = max(ax,x) (3.20) Jest to modyfikacja ReLU usiłująca rozwiązać problem umierających neuronów. W zakresie w którym x < 0 funkcja aktywacji wyróżnia się małym dodatnim gradientem (a 0.01), co pozwala neuronowi opuścić nieodwracalny w ReLU stan. Podobnymi podejściami do rozwiązania problemu są funkcje: PReLU (Parametric Rectified Linear Unit), gdzie a jest odrębne dla każdego neuronu i dostosowuje się podczas nauki modelu. ELU (Exponential Linear Unit), w którym krzywa w II ćwiartce wykresu ma kształt eksponencjalny. Softmax f(x) j = e x j K, j = 1..K (3.21) k=1 ex k Funkcja softmax lub inaczej znormalizowana funkcja wykładnicza, jest uogólnieniem funkcji sigmoidalnej, Transformuje ona K-wymiarowy wektor wartości rzeczywistych do K-wymiarowego wektora wartości w zakresie (0;1), którego wartości sumują się do 1. Funkcja ta jest często implementowana w ostatniej warstwie sieci wykorzystywanej do zadań klasyfikacji, gdy klasy wykluczają się wzajemnie. Wartośćf(x) j reprezentuje prawdopodobieństwo przynależenia wartości wejściowej do klasyj.

30 Architektury głębokich sieci neuronowych 3.5. Architektury głębokich sieci neuronowych Opisana wyżej MLP nie jest jedyną głęboką architekturą sieci neuronowej. Istnieje wiele alternatywnych rozwiązań, mniej lub bardziej podobnych do tej najpopularniejszej. Poniższa cześć rozdziału zawiera opis najczęściej stosowanych z nich w kontekście omawianego problemu Autoenkodery Autoenkoder to sieć neuronowa, która jest uczona tak, by na wyjściu przedstawić wartości otrzymane na wejściu. Wewnątrz zbudowana jest z ukrytej warstwyh, która opisuje kod reprezentujący wartości wejściowe. Sieć składa się z dwóch części: enkodera (3.22a) oraz dekodera (3.22b), który tworzy rekonstrukcjęy. Taka architektura jest przedstawiona na rysunku h = f(w e x+b e ) (3.22a) y = f(w d x+b d ) (3.22b) Rysunek 3.10: Architektura autoenkodera Gdyby jednak pozwolono autoenkoderom w prosty sposób nauczyć się zależność y = x, nie byłyby one specjalnie użyteczne. Z tego powodu są one projektowane tak, aby nie potrafiły powielić wartości wejściowej idealnie, lecz aby pomijały część informacji. W celu jak najlepszego odwzorowania wartości wejściowych mimo tych ograniczeń, zmuszone są do znalezienia najistotniejszych informacji w wektorze wejściowym i tę cechę autoenkoderów wykorzystuje się w praktyce. Jeden ze skuteczniejszych, a zarazem prosty sposób ograniczenia pojemności autoenkodera, jest zrealizowany w modelu Denoising Autoencoder (DAE). Przypomina on nałożenie losowej maski binarnej,

31 3.5. Architektury głębokich sieci neuronowych 31 opisanej już przy okazji definicji techniki dropout (3.13), jednak maska ta jest nakładana na neurony warstwy wejściowej. Część kodującą można zatem zapisać jako: r Bernoulli(p) (3.23a) x = r n x (3.23b) h = f ( wx +b ) (3.23c) Ten wariant autoenkodera zmuszony jest do odtworzenia prawdziwej wartości wejściowej, mimo jej uszkodzenia w fazie kodowania. Staje się przez to odporny na szum i zniekształcenia. Stosuje się go również wraz z regularyzacją dropout, co powoduje jeszcze większą generalizację cech znalezionych przez autoenkoder. Innym popularnym sposobem zapobiegania nauczenia funkcji tożsamościowej jest powiązanie wag autoenkodera: W d = We T (3.24) Jednowarstwowe autoenkodery najczęściej wykorzystuje się do pretrenowania głębokich sieci neuronowych (rys. 3.7). Natomiast rozszerzając obydwie części, enkoder oraz dekoder, o dodatkowe warstwy, można uzyskać Stacked Autoencoders, głęboki autoenkoder wykorzystywany do modelowania złożonych zależności danych. Szersze źródło informacji o autoenkoderach stanowi [16] Ograniczone Maszyny Boltzmanna Ograniczona Maszyna Boltzmanna (ang. Restricted Boltzmann Machine, RBM) to stochastyczna, generatywna sztuczna sieć neuronowa, składająca się z warstwy widocznej oraz warstwy ukrytej (rys. 3.11). Względem zwykłej Maszyny Boltzmanna wyróżnia się ograniczeniem nałożonym na połączenia - model nie zawiera połączeń pomiędzy neuronami tej samej warstwy, co pozwala na bardziej wydajny trening. Rysunek 3.11: Struktura modelu RBM

32 Architektury głębokich sieci neuronowych Generatywność oznacza, że model potrafi generować próbki z nauczonego rozkładu danych. Nauka tego rozkładu jest przeprowadzana przez zwiększanie prawdopodobieństwa wystąpienia przykładów ze zbioru treningowego - próbek pozytywnych - oraz zmniejszenie prawdopodobieństwa przykładów generowanych przez model, a nie występujących w zbiorze treningowym - próbek negatywnych. Model RBM jest także modelem energetycznym (ang. Energy-Based Models). Modele takie przypisują skalarną wartość energii do każdej konfiguracji zmiennych. Energia przypisana do konfiguracji jest niska, gdy prawdopodobieństwo jej wygenerowania przez model jest duże. Nauka polega na dopasowaniu funkcji energetycznej modelu tak, aby dane wejściowe ze zbioru treningowego posiadały niską energię. W modelu energetycznym prawdopodobieństwo wygenerowania próbki przez model p(x) można zapisać jako (3.25), co gwarantuje niezerowe prawdopodobieństwo dla dowolnego przykładu x. Czynnik normalizujący Z jest nazywany sumą statystyczną, a E(x) jest wartością energii związanej z daną próbką. p(x) = e E(x) Z (3.25a) Z = x e E(x) (3.25b) Jednak gdy modele posiadają nieobserwowalne zmienne (ang. hidden, h), tak jak warstwa ukryta w RBM, prawdopodobieństwo (3.25) należy zsumować dla każdej możliwej konfiguracji wartości ukrytych: p(x) = P(x,h) = h h e E(x,h) Z (3.26) W takim wypadku miarę dopasowania modelu do rozkładu danych przejmuje funkcja swobodnej energii (3.27), czyli energii liczonej tylko na podstawie zmiennych widocznych. Pozwala to zapisać prawdopodobieństwo znów w formie (3.28) F(x) = log h e E(x,h) (3.27) p(x) = e F(x) Z (3.28a) Z = x e F(x) (3.28b)

33 3.5. Architektury głębokich sieci neuronowych 33 Energie Ograniczonej Maszyny Boltzmanna definiuje zależność (3.29), w której parametry W, b, c to kolejno: macierz wag połączeń pomiędzy warstwami, wektor biasu neuronów ukrytych, wektor biasu neuronów widocznych. E(v,h) = c T x b T h h T Wx (3.29) Przez restrykcje wpisaną w model RBM, widoczne oraz ukryte neurony są wzajemnie warunkowo niezależne. Korzystając z tej własności można zapisać: P(h x) = i P(h i x) (3.30a) P(x h) = j P(x j h) (3.30b) Podstawowy model RBM korzysta z neuronów binarnych, z tego powodu nazywany jest często Bernoulli-Bernoulli RBM. W takim przypadku prawdopodobieństwa aktywacji neuronów widocznych i ukrytych można zapisać w prostej formie funkcji sigmoidalnych: P(h i = 1 x) = σ(w i x+b i ) (3.31a) P(x j = 1 h) = σ(w T j h+c j ) (3.31b) Prawdopodobieństwo aktywacji neuronów ukrytych w zależności od aktywacji neuronów widocznych nazywamy propagacja w górę (3.31a), w przeciwieństwie do propagacji w dół (3.31b). Warianty RBM Binarne wartości neuronów w modelu Bernoulli-Bernoulli RBM znacznie zmniejszają możliwości modelowania wartości rzeczywistych, które przeważają w realnych problemach. W takich przypadkach rozwiązaniem jest wariant Gaussian-Bernoulli RBM, w którym neurony warstwy widocznej generują wartości rzeczywiste, a propagacja w dół w takim modelu korzysta z rozkładu Gaussa: x j N(0,W T j h+c j ) (3.32) Powyższa zależność wynika z dodania członu 1 2 xt x do funkcji energetycznej.: E(v,h) = c T x b T h h T Wx+ 1 2 xt x (3.33) Równania (3.32) i (3.33) komplikują się, gdy rozkład danych treningowych nie jest standaryzowany. Kolejną popularną modyfikacją jest zamiana neuronów binarnych w warstwie ukrytej na neurony o aktywacji NoisyReLU, w takim przypadku propagacja w dół, czyli generowanie próbki ma formę: h j max(0,w i x+b i +N(0,1)) (3.34)

34 Architektury głębokich sieci neuronowych Trening RBM Pośrednim celem nauki Ograniczonych Maszyn Boltzmanna jest zmaksymalizowanie prawdopodobieństwa wygenerowania przykładów ze zbioru treningowego. Funkcją kosztu spełniającą te założenia jest ujemne log-prawdopodobieństwo: L(x) = log(p(x)) = F(x) log( x p( x)) (3.35a) L(x) Θ = F(x) Θ x p( x) F( x) Θ (3.35b) Pierwszy człon gradientu funkcji kosztu względem parametrów Θ (3.35b) nazywany jest faza pozytywna, ponieważ maksymalizuje prawdopodobieństwo wygenerowania przedstawionego przykładu x. Natomiast drugi człon faza negatywna, ponieważ minimalizuje prawdopodobieństwo pozostałych przykładów generowanych przez model, a oznaczonych x. Liczenie pełnej sumy w fazie negatywnej jest niepraktyczne, jednak jako że jest to wartość oczekiwana wyrażenia F( x) Θ to estymuje się ją podzbioremm: L(x) Θ F(x) Θ 1 M x M F( x) Θ (3.36) Próbki x M, nazywane próbkami negatywnymi, generowane są zgodnie z rozkładem wyznaczonym przez aktualny stan modelu. Ostatnim brakującym elementem w procesie treningu modelu RBM jest określenie rozkładu związanego z aktualnym stanem modelu, może być to wykonane przez skorzystanie z łańcucha Markowa oraz próbkowania Gibbsa [24]. Wykorzystując fakt, że obie warstwy są warunkowo niezależne, można wykonywać następujące kroki (rys. 3.12) : h (n+1) p(h (n+1) x (n) ) (3.37a) x (n+1) p(x (n+1) h (n+1) ) (3.37b) Gdziex (0) jest wektorem losowym, ax n dąży do p(x) przyn. Rysunek 3.12: Zastosowanie łańcucha Markova w algorytmie Contrastive Divergence

35 3.5. Architektury głębokich sieci neuronowych 35 Oczekiwanie na zbieżność łańcucha Markova jest jednak czasochłonne, dlatego opublikowany w [24] algorytm Contrastive Divergence (CD) przyśpiesza cały proces poprzez: 1. Rozpoczęcie łańcucha Markowa aktualnym przykładem treningowym, tj. x (0) = x, który wraz z postępami w nauce staje się coraz bliższy rozkładowip(x). 2. Wykonywanie tylko k kroków Gibbsa, nie czekając na zbieżność. W praktyce już nawet k = 1 daje zaskakująco dobre rezultaty. Modyfikacją algorytmu CD jest Persistent Contrastive Divergence, który korzysta z łańcucha Markowa posiadającego wewnętrzny stan aktualnej aproksymacji p(x), dzięki czemu z każdym krokiem SGD ta aproksymacja jest dokładniejsza [25]. Zastosowanie W praktyce Ograniczone Maszyny Boltzmanna najczęściej wykorzystane są do pretrenowania sieci wielowarstwowych (rys. 3.7), jednak mogą też tworzyć głębokie generatywne modele: Deep Belief Network oraz Deep Boltzmann Machine. Pierwszy z nich składa się z modelu RBM rozszerzonego o dodatkowe, zazwyczaj sigmoidalne, warstwy sieci neuronowej. Natomiast drugi stanowi powiększony model RBM o wielu warstwach połączonych ze sobą dwukierunkowo. Szersze źródło informacji o Maszynach Boltzmanna stanowi [16] Konwolucyjne sieci neuronowe Sieci konwolucyjne są odpowiedzią na problem skalowalności danych wejściowych w standardowych sieciach MLP. Problem ten jest szczególnie widoczny dla dziedziny przetwarzania obrazów. Przetwarzając nawet mały czarno-biały obraz o wymiarach 255x255, każdy neuron warstwy ukrytej posiadałby 65 tysięcy wag. Jest to oczywiście kłopotliwe. Pierwszym krokiem rozwiązania jest podłączenie neuronów tylko lokalnie, to znaczy tylko do małego fragmentu obrazu. Pomysł zainspirowany został ludzkim systemem wzrokowym, który zawiera neurony aktywujące się tylko, gdy zdarzenie następuje w danym fragmencie pola widzenia. Kolejnym krokiem jest zauważenie faktu, że cechy reprezentowane przez lokalne neurony sprawdzają się równie dobrze na całej przestrzeni obrazu. Wykorzystując ten fakt tworzy się grupy neuronów, o wspólnych wagach, różniących się jednak miejscem podłączenia do wejściowego obrazu (rys. 3.13). Zbiór sygnałów wyjściowych z neuronów o tych samych wagach, można interpretować jako mapę aktywności danej cechy na całym obszarze obrazu. Cecha reprezentowana przez jeden dzielony zestaw wag jest nazywana filtrem.

36 Architektury głębokich sieci neuronowych Rysunek 3.13: Architektura konwolucyjnej sieci neuronowej rozpoznającej litery [26]. Kompletna architektura (rys. 3.13), składa się z następujących warstw: Warstwa konwolucyjna, czy też splotowa, jest zbiorem opisanych wyżej map filtrów. Jako że każda mapa jest dwuwymiarowa na podobieństwo obrazów wejściowych, to warstwę konwolucyjną często interpretuje się jako trójwymiarową. Warstwa zawdzięcza swoją nazwę zamianie operacji mnożenia wektorów wykonywanej w klasycznym neuronie (3.1), na operację splotu (3.38), która lepiej sprawdza się przy wykrywaniu wzorców. y j = f(w j x+b j ) (3.38) Warstwa głosujaca (ang. pooling layer) ma za zadanie zredukować wymiar sieci przez wyciągnięcie prostych statystyk aktywacji z lokalnego zakresu mapy neuronów. Najczęściej stosowane statystyki to maksimum aktywacji (max pooling) lub średnia aktywacja (ang. mean pooling) (rys. 3.14). Rysunek 3.14: Warstwy głosujące zmniejszają wymiar danych poprzez wyciąganie prostych statystyk z map aktywacji.

37 3.5. Architektury głębokich sieci neuronowych 37 Warstwa pełna jest wykorzystywana w ostatnich etapach przetwarzania, aby ze znalezionych cech wyciągać wnioski adekwatne do rozwiązywanego problemu. Trening sieci konwolucyjnej nie różni się od nadzorowanego treningu sieci MLP, choć spotykane są rozwiązania, w których najpierw wykonuje się pretrening filtrów warstwy konwolucyjnej. Mimo że ta architektura sieci wywodzi się z dziedziny przetwarzania obrazów, to znalazła również swoje zastosowanie w przetwarzaniu języka naturalnego, czy też przetwarzaniu dźwięku Rekurencyjne sieci neuronowe W najprostszej formie (rys. 3.15) sieci rekurencyjne wyróżniają się tylko sprzężeniem zwrotnym, czyli pętlą łączącą wyjście danego neuronu z jego wejściem. Pętla ta tworzy w modelu stan wewnętrzny, który pozwala przetwarzać i modelować ciąg wejść, przez co sieci rekurencyjne stosowane są do zadań o charakterze sekwencyjnym. Pętle w grafie sprawiają również, że głębokość sieci jest nieskończona. Jako że wraz z głębokością rośnie pojemność sieci, to ma ona ogromne możliwości nauki, ale też sprawia duże problemy podczas treningu. Ilość danych potrzebnych do wytrenowania sieci rekurencyjnej sprawia, że są to ciągle modele przyszłości, ale ich potencjał jest przyczyną intensywnego rozwoju tej tematyki i już dzisiaj widać kilka świetnych rezultatów. Najciekawszym z nich jest wykorzystanie wielu warstw jednego z wariantów sieci rekurencyjnych: modelu Long Short Term Memory (LSTM) przez zespół naukowy Google. Zmniejszył on procent błędów ich autorskiego systemu rozpoznawania mowy aż o połowę. Cała sieć została wytrenowana wykorzystując algorytm Connectionist Temporal Classification (CTC) [27]. Rysunek 3.15: Sieci rekurencyjne wyróżniają się pętlami łączącymi wyjście danego neuronu z jego wejściem.

38 Architektury głębokich sieci neuronowych

39 4. Zastosowanie głębokich sieci neuronowych w weryfikacji mówcy W dziedzinach przetwarzania obrazu, czy przetwarzania dźwięku dane wejściowe muszą być wielkowymiarowe, aby można je było prawidłowo interpretować. Można powiedzieć, że te dziedziny są nasycone danymi. Zarazem są to dziedziny najbardziej podstawowe dla percepcji człowieka. Mimo tego, że właśnie dla takich zadań głębokie sieci neuronowe są najlepiej przystosowane, to nie były one często stosowane w weryfikacji mówcy. Dopiero niedawny sukces głębokich sieci neuronowych, w pokrewnym zadaniu rozpoznawania mowy, sprawił, że stały się bardziej popularne w tytułowej dziedzinie. W teorii, głęboka sieć neuronowa mogłaby zastąpić wszystkie trzy elementy sytemu weryfikacji: parametryzację, modelowanie i klasyfikację. W takim rozwiązaniu sieć otrzymywałaby surowe fragmenty sygnału mowy i decydowałaby czy pochodzą one od tego samego mówcy. Jednak ciągle nie stworzono tak kompleksowej sieci - wymagałaby ona zbyt dużo danych oraz zbyt dużo zasobów obliczeniowych. Większość do tej pory opublikowanych badań angażuje głębokie sieci neuronowe do głębokiej parametryzacji fragmentów wypowiedzi, tj. zastępuje lub rozszerza klasyczne cechy MFCC czy PLP przez korzystanie z szerszego kontekstu wypowiedzi. Tego typu cechy zawierającą wystarczającą ilość informacji, aby dalsze operacje modelowania i klasyfikacji sprowadzały się do prostych metod statystycznych. Zastosowania głębokich sieci neuronowych w weryfikacji mówcy można podzielić na dwie grupy: Bezpośrednie (ang. direct, end-to-end), w których głęboka sieć trenowana jest jako binarny klasyfikator weryfikujący mówcę. Pośrednie (ang. indirect), które wykorzystują cechy nauczone przez głęboką sieć wytrenowaną dla innego, pokrewnego zadania, aby następnie na podstawie tych cech wytrenować klasyfikator weryfikujący mówcę. Rozwiązania bezpośrednie są koncepcyjnie prostsze oraz w pełni wykorzystują sieć neuronową, jednak z założenia sieć taka przetwarza więcej niż jedną wypowiedź jednocześnie, co znacznie zwiększa rozmiar sieci. Z tego powodu aktualnie przeważają rozwiązania pośrednie. 39

40 Przegląd literatury 4.1. Przeglad literatury Klasyczne sieci neuronowe były stosowane w zadaniu weryfikacji mówcy od początku swego istnienia. Najpierw jako klasyfikatory lub w prostych zadaniach pobocznych [28, 29]. Pierwszą pracą, która przypominała ideowo szeroko dzisiaj stosowane pomysły jest [30]. Zaproponowana w niej topologia wąskiego gardła wydobywała nieliniowo przetworzone cechy (ang. Bottleneck Features) z dostępnych danych, aby na ich bazie, przy pomocy Nieliniowej Analizy Dyskryminacyjnej, rozpoznawać mówcę. Na początku wieku sieci neuronowe straciły jednak zainteresowanie badaczy i to nie tylko w tej dziedzinie. Dopiero opisany wyżej powrót sieci neuronowych w ich głębokiej formie przyniósł dalsze postępy. Podążając za ówcześnie najskuteczniejszymi modelami - Ograniczonymi Maszynami Boltzmana oraz sieciami konwolucyjnymi - praca [31] łączy zalety obu rozwiązań w Konwolucyjnych Ograniczonych Maszynach Boltzmanna, osiągając interesujące wyniki w kilku zadaniach dotyczących przetwarzania dźwięku. Jednak opracowany model jest skomplikowany zarówno podczas treningu jak i w czasie późniejszego praktycznego zastosowania. Dalsze pracę nad nim nie przyniosły sukcesów. Ważnym krokiem były próby włączania głębokich sieci neuronowych do najskuteczniejszego do tej pory rozwiązania problemu - i-vectorów. Pierwsza z nich [32] zastosowała model RBM jako klasyfikator wydobytych już i-vectorów, modelując klasy target oraz impostor. Nie był to jednak model głęboki, a wyniki nie były obiecujące. Kolejna [33] wykorzystała sieci Deep Belief Network, jako ekstraktor pseudo i-vectorów czyli wektorów, które miały takie samo zadanie, jednak nie pochodziły z oryginalnej metody. Sieć składała się z 5 warstw ukrytych, z których każda zawierała 1000 neuronów. Korzystała z wektora cech MFCC jedenastu kolejnych ramek sygnału dźwiękowego, a pseudo i-vectory były z sieci wydobywane jako statystyki z aktywacji jej ostatniej warstwy. Praca [34] natomiast wzorowała się na starszym podejściu GMM-UBM. Z wszystkich dostępnych i-vectorów wytrenowano model DBN i nazwano go Universal DBN, na wzór oryginalnego Universal Background Model. Następnie dla każdego rejestrowanego mówcy tworzono jego własny model DBN przez dotrenowanie (adaptacje) modelu Universal DBN nagraniami tego mówcy. Najpierw uczeniem nienadzorowanym, a później dyskryminatywnie dla klas target-impostor, w których klasa target reprezentowała tylko i wyłącznie danego mówcę. Powyższe prace osiągały zbliżoną skuteczność do metody i-vectorów, jednak żadnej nie udało się jej przewyższyć. W kolejnych latach znaczny sukces Bottleneck Features w rozpoznawaniu mowy skłonił do przeniesienia tej koncepcji do weryfikacji mówcy oraz zadań pokrewnych, jak na przykład rozpoznawanie języka wypowiedzi. Oba te zadania starali się rozwiązać autorzy prac [35, 36] przy pomocy jednej głębokiej sieci neuronowej wytrenowanej do rozpoznawania mowy. Sieć zawierała warstwę wąskiego gardła i cechy przez nią reprezentowane były używane dalej, zastępując bazowe parametry MFCC w podejściu i-vector. Podobna sieć neuronowa została zaprojektowana w pracy [37], w której jednak połączono cechy PLP z cechami wąskiego gardła. Dodatkowym wyróżnikiem pracy było wytrenowanie sieci neuronowej na dwóch językach jednocześnie - Angielskim i Mandaryńskim - co miało uogólnić otrzymane cechy. Rewelacyjne wyniki prezentuje praca [38]. Skupiając się na weryfikacji w trybie ze stałą frazą, udało

41 4.1. Przegląd literatury 41 się w najlepszym proponowanym wariancie, uzyskać wartość EER 15 razy mniejszą niż w do tej pory najlepszym znanym rozwiązaniu. W pracy zaproponowano 7-warstwą sieć, pretrenowaną przy użyciu modeli RBM, a następnie dotrenowaną do rozpoznawania mówcy, mowy lub obu jednocześnie. Z wytrenowanej sieci wyciągano wektor aktywacji jednej z warstw dla każdej ramki, uśredniano dla całego nagrania i traktowano jako reprezentację wypowiedzi. Na końcu korzystając z klasyfikatorów CDS, LDA lub PLDA weryfikowano mówcę. O ile pierwszy z nich, dawał racjonalne wyniki, porównywalne z podobnymi rozwiązywaniami, to najlepszy wynik został osiągnięty dzięki klasyfikatorom LDA i PLDA wytrenowanym na zbiorze testowym, co sprawia, że praca wydaje się nierzetelna. Niezależnie od przedstawionych wyżej rozwiązań, swoją ścieżkę do rozwiązania tego problemu prowadzi zespół naukowy korporacji Google [39, 40]. Ich celem jest wypracowanie jak najlepszej skuteczności weryfikacji mówcy na krótkiej frazie Ok, Google. Ich doświadczenie w dziedzinie oraz bardzo praktyczne podejście sprawia, że ich rezultaty są nie tylko obiecujące, ale również bardzo wiarygodne. Rozwiązanie przedstawione przez zespół Google, jako jedyne w opisywanej grupie, jest bezpośrednie, gdyż posiadają wielkich rozmiarów bazę nagrań tej frazy oraz mają dostęp do dużych zasobów obliczeniowych. System (rys. 4.1) jest trenowany jako całość w celu wykrycia, czy danych kilka wypowiedzi pochodzi od tego samego mówcy. Rysunek 4.1: Schemat systemu zrealizowanego przez zespół Google [40]. Pierwszy etap przetwarzania stanowi sieć neuronowa, bazująca na cechach Filter Bank całego nagrania i posiadająca pierwszą warstwę połączoną tylko lokalnie z danymi wejściowymi. Wyjście sieci stanowi wektor reprezentujący cechy mówcy w nagraniu, który dalej jest porównywany przez CDS z wektorem, który jest uśrednieniem wektorów otrzymanych w ten sam sposób, jednak dla nagrań rejestracyjnych. Wynik następnie przechodzi przez dodatkową warstwę regresji logistycznej, decydującą

42 Proponowane rozwiązanie o zaakceptowaniu lub odrzuceniu próby. Pomysł jest prosty, skuteczny i sprawdzony w rzeczywistych warunkach, jednak wytrenowanie takiej sieci wymaga ogromnej ilości danych, co stanowi dużą przeszkodę. Duża baza nagrań pozwoliła także na wytrenowanie sieci rekurencyjnych, co dało jeszcze lepsze rezultaty. Nie są one jednak wciąż wdrażane w rozwiązaniach produkcyjnych tej korporacji, gdyż wymagają dużo większych nakładów obliczeniowych. Ostatnie prace przyjęły nazywać wektor reprezentujący wypowiedź, a otrzymany z głębokiej sieci neuronowej, d-vectorem i nazewnictwo to zostanie wykorzystane w dalszej części tej pracy Proponowane rozwiazanie Aby zrealizować główny temat pracy, zaproponowana zostanie architektura systemu weryfikacji mówcy oparta o głębokie sieci neuronowe. Wzięto jednak pod uwagę dostępne zasoby, dlatego zrezygnowano z systemu bezpośredniego, mimo jego prostoty i dobrych rezultatów osiąganych przez zespół Google. Proponowany system (rys. 4.2) jest kompromisem pomiędzy pracą [38], a pracą [40]. Architektura całego systemu bardziej przypomina pierwszą, jednak skorzystano z wielu szczegółów zawartych w pracy drugiej. Na pierwszym etapie system parametryzuje każdą ramkę sygnału mowy klasycznymi metodami parametryzacji. Następnie wektor parametrów związanych z kilkoma ramkami, stanowiący kontekst około 100 milisekund, jest wprowadzany na wejście głębokiej sieci neuronowej. Każda warstwa sieci reprezentuje pewien zbiór cech, dzięki którym kolejne warstwy są wstanie wykonać swoje zadanie. Można więc traktować wartości aktywacji sieci na wybranej warstwie jako głębokie parametry danego nagrania. Głębokie parametry są uśredniane dla całej posiadanej wypowiedzi, tworząc wektor średniej aktywacji. Liczba jego wymiarów zostaje zmniejszona, otrzymując d-vector, czyli reprezentację mówcy w danym nagraniu. Wektor ten jest następnie porównywany z d-vectorem uzyskanym tą samą drogą, lecz z nagrań rejestracyjnych osoby, za którą podaje się mówca. System akceptuje mówcę tylko, gdy podobieństwo między tymi wektorami jest wysokie. Proponowany system spełnia wszystkie założenia dotyczące realizacji głównego celu pracy. Architektura jest niezależna od wykorzystanej wewnątrz topologii sieci neuronowej, więc umożliwia porównanie kilku z nich. Głęboka parametryzacja może być zrealizowana na dowolnej warstwie, co pozwala sprawdzić rozkład informacji biometrycznych na przestrzeni sieci. System można zastosować zarówno w trybie ze stałą, jak i ze zmienną frazą. Dokładniejszy opis zbudowanego systemu prezentuje kolejny rozdział.

43 4.2. Proponowane rozwiązanie 43 Rysunek 4.2: Poglądowy schemat budowanego systemu, w którym wybrano drugą warstwę ukrytą sieci neuronowej jako źródło głębokiej parametryzacji.

44 Proponowane rozwiązanie

45 5. Realizacja systemu W rozdziale zostanie umówiona praktyczna realizacja opisanej w rozdziale 4.2 koncepcji systemu rozpoznawania mówcy Narzędzia i biblioteki System został zbudowany przy pomocy następujących narzędzi: Python - Język programowania wysokiego poziomu ogólnego przeznaczenia. Numpy - Biblioteka do obliczeń naukowych w języku Python. Tensorflow - Biblioteka przeznaczona do implementacji zadań uczenia maszynowego z wykorzystaniem grafów skierowanych, posiadająca interfejs w języku Python. Pandas - Biblioteka dostarczająca struktur danych o wysokiej wydajności w języku Python. SciKit-learn - Biblioteka oferująca implementacje metod uczenia maszynowego w języku Python. Matplotlib i Seaborn - Biblioteki do wizualizacji danych w języku Python. MATLAB - Interaktywne środowisko do wykonywania obliczeń naukowych i inżynierskich. Rastamat - Implementacja ekstrakcji cech MFCC i PLP w środowisku MATLAB [41] Korpusy danych W trakcie treningu systemu, a także podczas jego testów, wykorzystano niżej opisane korpusy danych: RSR2015 to baza danych zaprojektowana dla systemów weryfikacji mówcy w trybie zależnym od frazy, zebrana przez Intitute for Infocomm Research (I2R) w Singapurze. Składa się z 3 segmentów, jednak w pracy został wykorzystany tylko pierwszy, który zawiera nagrania 300 mówców (157 mężczyzn i 143 kobiet), wypowiadających 30 różnych fraz w języku angielskim. Każda wypowiedź trwa średnio 3.2 sekundy [42]. 45

46 Bazowa parametryzacja BigBase jest bazą zagregowaną na potrzeby pracy [8], składająca się m.in z nagrań zaczerpniętych z serwisu YouTube, z bazy danych TIMIT, czy z polskiej części bazy GlobalPhone. Treść wypowiedzi jest dowolna. LibriSpeech to korpus składający się z około 1000 godzin nagrań angielskiej mowy. Wypowiedzi pochodzą z projektu LibriVox, który zawiera audiobooki czytane przez wolontariuszy. Oprócz treści książek, każdy z 1983 mówców odczytuje frazę: This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information, or to volunteer, please visit: librivox DOT org, co zostało wykorzystane przy testach o stałej frazie. Z pozostałych danych wybrano tylko 60 godzin mowy, aby nie zdominować treningu tą bazą [43]. VMVMP. Dzięki uprzejmości firmy VoicePIN z Krakowa wykorzystano także bazę nagrań 298 mówców wypowiadających frazę Verify me with my VoicePIN. Część wypowiedzi została nagrywana równocześnie na kilku urządzeniach, co umożliwia wykonanie testów wpływu zmiany urządzenia nagrywającego na skuteczność systemu. Całość zawiera 4,5 godziny audio, które jednak w sporej części jest ciszą przed i po wypowiedzeniem frazy. Po jej usunięciu zostało około 2 godziny mowy, co daje średnio 3,5 sekundy na każdą wypowiedź. Najważniejsze informacje dotyczące baz nagrań zebrano w tabeli 5.1. Tabela 5.1: Zestawienie korpusów wykorzystanych w realizowanym systmeie Długość całkowita [h] średnia [s] Liczba mówców Treść RSR , fraz BigBase mieszana LibriSpeech 1000 (60) 10s 1983 książkowa VMWMVP 4,5 (2) 7,8 (3.5) fraza 5.3. Bazowa parametryzacja Bazy nagrań przechowywano w sparametryzowanej formie, co przyśpieszyło operacje treningu oraz pozwoliło na zupełnie losową kolejność przedstawiania ramek sieci neuronowej. Cały proces bazowej parametryzacji (rys. 5.1) rozpoczyna przepróbkowanie nagrań do częstotliwości 8 khz i rozdzielczości 16 bitów. Operacja jest wymagana, gdyż wyżej opisane bazy danych różnią się w formacie zapisu dźwięku. Korzystając z okna Hamminga podzielono otrzymany sygnał na 20 milisekundowe ramki, przesunięte względem siebie o 10 milisekund. Następnie odrzucono ramki nie zawierające głosu, bazując na decyzji podjętej przez detektor głosu zaimplementowany w środowisku Matlab.

47 5.4. Głęboka parametryzacja 47 Z każdej z pozostałych ramek wyekstrahowano 13 cech PLP wraz z cechami delta oraz delta-delta, co dało łącznie 39 parametrów na ramkę głosu. Każdy z parametrów ustandaryzowano przez odjęcie średniej wartości w zbiorze i podzielenie przez odchylenie standardowe. Do każdego wektora parametrów dodano wektory sąsiadujących ramek, po 5 z każdej strony, tworząc kontekst 11 ramek, co rozszerzyło wektor do rozmiaru 429 parametrów. Na koniec przetasowano cały zbiór i zapisano go do pliku csv. Rysunek 5.1: Schemat przeprowadzonej bazowej parametryzacji 5.4. Głęboka parametryzacja Sieć neuronowa na podstawie wektora cech PLP wraz z kontekstem (PLP-429) uczy się wykonać pewne zadanie lub wyciągnąć wnioski z przedstawionych danych. Każda warstwa sieci reprezentuje pewien zbiór cech, dzięki którym kolejne warstwy są wstanie wykonać swoje zadanie. Korzystając z tego faktu zbudowany system używa aktywacji neuronów na wybranej warstwie jako wektora głębokich cech związanych z daną ramką. Uśrednienie wszystkich głębokich cech dla wszystkich ramek danego nagrania tworzy wektor średniej aktywacji (rys. 5.2). Pobudzenie neuronów podczas przykładowej wypowiedzi wizualizuje rysunek 5.3. W rozdziale 6.2 zostaną przetestowane różne konfiguracje głębokiej sieci neuronowej, aby dobrać sieć najlepiej sprawdzającą się w tym zadaniu Redukcja wymiarowości Wektor średniej aktywacji przedstawia mocno skorelowane cechy. Z tego powodu zastosowano algorytmy redukujące redundantne informacje, co również skutkuje zmniejszeniem wymiaru wektora. W opisywanym systemie jest to przeprowadzone dwuetapowo (rys. 5.4). Najpierw wykorzystana jest Analiza Składowych Głównych (PCA) trenowana bez nauczyciela. Transformuje ona wektor do podprzestrzeni, w której cały zbiór treningowy posiada maksymalną wariancję. Następnie dane są rzutowane na przestrzeń, w której najłatwiej rozróżnić mówcę, dzięki Liniowej Analizie Dyskryminacyjnej (LDA). Algorytm ten jest trenowany z nauczycielem, tj. razem z każdą wypowiedzią podawany jest jej mówca.

48 Klasyfikacja binarna Rysunek 5.2: Schemat głębokiej parametryzacji W zbudowanym systemie transformacja PCA redukuje liczbę wymiarów wektora średniej aktywacji do 400, a kolejnie LDA do 200, tworząc końcową reprezentację nagrania: d-vector. Transformacje te są trenowane na zbiorze innym niż wykorzystany w treningu sieci neuronowej Klasyfikacja binarna Końcowa decyzja zostaje podjęta przez porównanie d-vectora reprezentującego testowane nagranie z d-vectorem modelowym, pochodzącym z kilku nagrań rejestracyjnych (rys. 5.5). Miarą podobieństwa tych dwóch wektorów jest odległość kosinusowa pomiędzy nimi, która następnie jest porównywana z zadanym progiem. Liczba wypowiedzi użytych do rejestracji w zbudowanym systemie jest dowolna.

49 5.6. Klasyfikacja binarna 49 Rysunek 5.3: Wizualizacja parametryzacji PLP oraz cech głębokich względem spektogramu nagrania. Cechy głębokie są tutaj reprezentowane przez 100 najbardziej aktywnych neuronów, uszeregowanych według pobudzenia na coraz mniejsze częstotliwości sygnału.

50 Klasyfikacja binarna Rysunek 5.4: Schemat redukcji wymiarowości. Rysunek 5.5: Schemat podejmowania decyzji przez system.

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ Celem ćwiczenia jest zapoznanie się ze sposobem działania sieci neuronowych typu MLP (multi-layer perceptron) uczonych nadzorowaną (z nauczycielem,

Bardziej szczegółowo

Podstawy Sztucznej Inteligencji (PSZT)

Podstawy Sztucznej Inteligencji (PSZT) Podstawy Sztucznej Inteligencji (PSZT) Paweł Wawrzyński Uczenie maszynowe Sztuczne sieci neuronowe Plan na dziś Uczenie maszynowe Problem aproksymacji funkcji Sieci neuronowe PSZT, zima 2013, wykład 12

Bardziej szczegółowo

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe PB, 2009 2010 Sztuczna Inteligencja Tematy projektów Sieci Neuronowe Projekt 1 Stwórz projekt implementujący jednokierunkową sztuczną neuronową złożoną z neuronów typu sigmoidalnego z algorytmem uczenia

Bardziej szczegółowo

Metody Sztucznej Inteligencji II

Metody Sztucznej Inteligencji II 17 marca 2013 Neuron biologiczny Neuron Jest podstawowym budulcem układu nerwowego. Jest komórką, która jest w stanie odbierać i przekazywać sygnały elektryczne. Neuron działanie Jeżeli wartość sygnału

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Elementy inteligencji obliczeniowej

Elementy inteligencji obliczeniowej Elementy inteligencji obliczeniowej Paweł Liskowski Institute of Computing Science, Poznań University of Technology 9 October 2018 1 / 19 Perceptron Perceptron (Rosenblatt, 1957) to najprostsza forma sztucznego

Bardziej szczegółowo

Algorytm do rozpoznawania człowieka na podstawie dynamiki użycia klawiatury. Paweł Kobojek, prof. dr hab. inż. Khalid Saeed

Algorytm do rozpoznawania człowieka na podstawie dynamiki użycia klawiatury. Paweł Kobojek, prof. dr hab. inż. Khalid Saeed Algorytm do rozpoznawania człowieka na podstawie dynamiki użycia klawiatury Paweł Kobojek, prof. dr hab. inż. Khalid Saeed Zakres pracy Przegląd stanu wiedzy w dziedzinie biometrii, ze szczególnym naciskiem

Bardziej szczegółowo

Wrocław University of Technology. Uczenie głębokie. Maciej Zięba

Wrocław University of Technology. Uczenie głębokie. Maciej Zięba Wrocław University of Technology Uczenie głębokie Maciej Zięba UCZENIE GŁĘBOKIE (ang. deep learning) = klasa metod uczenia maszynowego, gdzie model ma strukturę hierarchiczną złożoną z wielu nieliniowych

Bardziej szczegółowo

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

Wstęp do teorii sztucznej inteligencji Wykład II. Uczenie sztucznych neuronów. Wstęp do teorii sztucznej inteligencji Wykład II Uczenie sztucznych neuronów. 1 - powtórzyć o klasyfikacji: Sieci liniowe I nieliniowe Sieci rekurencyjne Uczenie z nauczycielem lub bez Jednowarstwowe I

Bardziej szczegółowo

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

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda Sieci neuropodobne 1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN Agenda Trochę neurobiologii System nerwowy w organizmach żywych tworzą trzy

Bardziej szczegółowo

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

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Temat: Sztuczne Sieci Neuronowe Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Dr inż. Barbara Mrzygłód KISiM, WIMiIP, AGH mrzyglod@ agh.edu.pl 1 Wprowadzenie Sztuczne sieci neuronowe

Bardziej szczegółowo

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

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta www.michalbereta.pl Sieci radialne zawsze posiadają jedną warstwę ukrytą, która składa się z neuronów radialnych. Warstwa wyjściowa składa

Bardziej szczegółowo

Temat: Sieci neuronowe oraz technologia CUDA

Temat: Sieci neuronowe oraz technologia CUDA Elbląg, 27.03.2010 Temat: Sieci neuronowe oraz technologia CUDA Przygotował: Mateusz Górny VIII semestr ASiSK Wstęp Sieci neuronowe są to specyficzne struktury danych odzwierciedlające sieć neuronów w

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

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

8. Neuron z ciągłą funkcją aktywacji. 8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i

Bardziej szczegółowo

Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, Spis treści

Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, Spis treści Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, 2011 Spis treści Przedmowa 11 Rozdział 1. WPROWADZENIE 13 1.1. Czym jest automatyczne rozpoznawanie mowy 13 1.2. Poziomy

Bardziej szczegółowo

Podstawy sztucznej inteligencji

Podstawy sztucznej inteligencji wykład 5 Sztuczne sieci neuronowe (SSN) 8 grudnia 2011 Plan wykładu 1 Biologiczne wzorce sztucznej sieci neuronowej 2 3 4 Neuron biologiczny Neuron Jest podstawowym budulcem układu nerwowego. Jest komórką,

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa, Andrzej Rutkowski Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2018-10-15 Projekt

Bardziej szczegółowo

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe Trening jednokierunkowych sieci neuronowych wykład 2. dr inż. PawełŻwan Katedra Systemów Multimedialnych Politechnika Gdańska

Bardziej szczegółowo

Uczenie sieci typu MLP

Uczenie sieci typu MLP Uczenie sieci typu MLP Przypomnienie budowa sieci typu MLP Przypomnienie budowy neuronu Neuron ze skokową funkcją aktywacji jest zły!!! Powszechnie stosuje -> modele z sigmoidalną funkcją aktywacji - współczynnik

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3 Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3 Andrzej Rutkowski, Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2018-11-05 Projekt

Bardziej szczegółowo

Deep Learning na przykładzie Deep Belief Networks

Deep Learning na przykładzie Deep Belief Networks Deep Learning na przykładzie Deep Belief Networks Jan Karwowski Zakład Sztucznej Inteligencji i Metod Obliczeniowych Wydział Matematyki i Nauk Informacyjnych PW 20 V 2014 Jan Karwowski (MiNI) Deep Learning

Bardziej szczegółowo

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje:

Bardziej szczegółowo

Sztuczne sieci neuronowe

Sztuczne sieci neuronowe www.math.uni.lodz.pl/ radmat Cel wykładu Celem wykładu jest prezentacja różnych rodzajów sztucznych sieci neuronowych. Biologiczny model neuronu Mózg człowieka składa się z około 10 11 komórek nerwowych,

Bardziej szczegółowo

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

Literatura. Sztuczne sieci neuronowe. Przepływ informacji w systemie nerwowym. Budowa i działanie mózgu Literatura Wykład : Wprowadzenie do sztucznych sieci neuronowych Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Tadeusiewicz R: Sieci neuronowe, Akademicka Oficyna Wydawnicza RM, Warszawa

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

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

Sieć przesyłająca żetony CP (counter propagation) Sieci neuropodobne IX, specyficzne architektury 1 Sieć przesyłająca żetony CP (counter propagation) warstwa Kohonena: wektory wejściowe są unormowane jednostki mają unormowane wektory wag jednostki są

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2011-10-11 1 Modelowanie funkcji logicznych

Bardziej szczegółowo

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

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład III 2016/2017 Systemy pomiarowo-diagnostyczne Metody uczenia maszynowego wykład III bogumil.konopka@pwr.edu.pl 2016/2017 Wykład III - plan Regresja logistyczna Ocena skuteczności klasyfikacji Macierze pomyłek Krzywe

Bardziej szczegółowo

Inteligentne systemy przeciw atakom sieciowym

Inteligentne systemy przeciw atakom sieciowym Inteligentne systemy przeciw atakom sieciowym wykład Sztuczne sieci neuronowe (SSN) Joanna Kołodziejczyk 2016 Joanna Kołodziejczyk Inteligentne systemy przeciw atakom sieciowym 2016 1 / 36 Biologiczne

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe. Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe. zajecia.jakubw.pl/nai Literatura: S. Osowski, Sieci neuronowe w ujęciu algorytmicznym. WNT, Warszawa 997. PODSTAWOWE ZAGADNIENIA TECHNICZNE AI

Bardziej szczegółowo

Zastosowania sieci neuronowych

Zastosowania sieci neuronowych Zastosowania sieci neuronowych aproksymacja LABORKA Piotr Ciskowski zadanie 1. aproksymacja funkcji odległość punktów źródło: Żurada i in. Sztuczne sieci neuronowe, przykład 4.4, str. 137 Naucz sieć taką

Bardziej szczegółowo

Rozpoznawanie obrazów

Rozpoznawanie obrazów Rozpoznawanie obrazów Laboratorium Python Zadanie nr 3 Regresja logistyczna autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest zaimplementowanie modelu

Bardziej szczegółowo

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

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

Uczenie sieci neuronowych i bayesowskich

Uczenie sieci neuronowych i bayesowskich Wstęp do metod sztucznej inteligencji www.mat.uni.torun.pl/~piersaj 2009-01-22 Co to jest neuron? Komputer, a mózg komputer mózg Jednostki obliczeniowe 1-4 CPU 10 11 neuronów Pojemność 10 9 b RAM, 10 10

Bardziej szczegółowo

Sieci neuronowe w Statistica

Sieci neuronowe w Statistica http://usnet.us.edu.pl/uslugi-sieciowe/oprogramowanie-w-usk-usnet/oprogramowaniestatystyczne/ Sieci neuronowe w Statistica Agnieszka Nowak - Brzezińska Podstawowym elementem składowym sztucznej sieci neuronowej

Bardziej szczegółowo

wiedzy Sieci neuronowe

wiedzy Sieci neuronowe Metody detekcji uszkodzeń oparte na wiedzy Sieci neuronowe Instytut Sterowania i Systemów Informatycznych Universytet Zielonogórski Wykład 7 Wprowadzenie Okres kształtowania się teorii sztucznych sieci

Bardziej szczegółowo

Zmienne zależne i niezależne

Zmienne zależne i niezależne Analiza kanoniczna Motywacja (1) 2 Często w badaniach spotykamy problemy badawcze, w których szukamy zakresu i kierunku zależności pomiędzy zbiorami zmiennych: { X i Jak oceniać takie 1, X 2,..., X p }

Bardziej szczegółowo

Uczenie sieci radialnych (RBF)

Uczenie sieci radialnych (RBF) Uczenie sieci radialnych (RBF) Budowa sieci radialnej Lokalne odwzorowanie przestrzeni wokół neuronu MLP RBF Budowa sieci radialnych Zawsze jedna warstwa ukryta Budowa neuronu Neuron radialny powinien

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

Wstęp do sztucznych sieci neuronowych

Wstęp do sztucznych sieci neuronowych Wstęp do sztucznych sieci neuronowych Michał Garbowski Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Wydział Informatyki 15 grudnia 2011 Plan wykładu I 1 Wprowadzenie Inspiracja biologiczna

Bardziej szczegółowo

Jakość uczenia i generalizacja

Jakość uczenia i generalizacja Jakość uczenia i generalizacja Dokładność uczenia Jest koncepcją miary w jakim stopniu nasza sieć nauczyła się rozwiązywać określone zadanie Dokładność mówi na ile nauczyliśmy się rozwiązywać zadania które

Bardziej szczegółowo

Wprowadzenie do uczenia maszynowego

Wprowadzenie do uczenia maszynowego Wprowadzenie do uczenia maszynowego Agnieszka Ławrynowicz 12 stycznia 2017 Co to jest uczenie maszynowe? dziedzina nauki, która zajmuje się sprawianiem aby komputery mogły uczyć się bez ich zaprogramowania

Bardziej szczegółowo

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

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych. Wstęp do teorii sztucznej inteligencji Wykład III Modele sieci neuronowych. 1 Perceptron model najprostzszy przypomnienie Schemat neuronu opracowany przez McCullocha i Pittsa w 1943 roku. Przykład funkcji

Bardziej szczegółowo

Sztuczne sieci neuronowe

Sztuczne sieci neuronowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Sztuczne sieci neuronowe Sztuczne sieci neuronowe Wprowadzenie Trochę historii Podstawy działania Funkcja aktywacji Typy sieci 2 Wprowadzenie Zainteresowanie

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA SYSTEMY ROZMYTE Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium

Bardziej szczegółowo

Zastosowania sieci neuronowych

Zastosowania sieci neuronowych Zastosowania sieci neuronowych klasyfikacja LABORKA Piotr Ciskowski zadanie 1. klasyfikacja zwierząt sieć jednowarstwowa żródło: Tadeusiewicz. Odkrywanie własności sieci neuronowych, str. 159 Przykład

Bardziej szczegółowo

SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe

SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe JOANNA GRABSKA-CHRZĄSTOWSKA Wykłady w dużej mierze przygotowane w oparciu o materiały i pomysły PROF. RYSZARDA TADEUSIEWICZA BUDOWA RZECZYWISTEGO NEURONU

Bardziej szczegółowo

Systemy uczące się wykład 2

Systemy uczące się wykład 2 Systemy uczące się wykład 2 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 19 X 2018 Podstawowe definicje Fakt; Przesłanka; Konkluzja; Reguła; Wnioskowanie. Typy wnioskowania

Bardziej szczegółowo

Rozpoznawanie obrazów

Rozpoznawanie obrazów Rozpoznawanie obrazów Ćwiczenia lista zadań nr 7 autorzy: A. Gonczarek, J.M. Tomczak Przykładowe problemy Klasyfikacja binarna Dla obrazu x zaproponowano dwie cechy φ(x) = (φ 1 (x) φ 2 (x)) T. Na obrazie

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline. Wstęp do sieci neuronowych, wykład 3 Warstwy, jednostka Adaline. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 211-1-18 1 Pomysł Przykłady Zastosowanie 2

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY

METODY INŻYNIERII WIEDZY METODY INŻYNIERII WIEDZY WALIDACJA KRZYŻOWA dla ZAAWANSOWANEGO KLASYFIKATORA KNN ĆWICZENIA Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2012-10-10 Projekt pn. Wzmocnienie

Bardziej szczegółowo

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska Sieci neuronowe w Statistica Agnieszka Nowak - Brzezioska Podstawowym elementem składowym sztucznej sieci neuronowej jest element przetwarzający neuron. Schemat działania neuronu: x1 x2 w1 w2 Dendrites

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 3 Detekcja twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba Cel zadania Celem zadania jest zaimplementowanie algorytmów

Bardziej szczegółowo

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

Wprowadzenie do Sieci Neuronowych Laboratorium 05 Algorytm wstecznej propagacji błędu Wprowadzenie do Sieci Neuronowych Laboratorium Algorytm wstecznej propagacji błędu Maja Czoków, Jarosław Piersa --7. Powtórzenie Perceptron sigmoidalny Funkcja sigmoidalna: σ(x) = + exp( c (x p)) () Parametr

Bardziej szczegółowo

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

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak 2 Rozdział 1 Sztuczne sieci neuronowe. 3 Sztuczna sieć neuronowa jest zbiorem prostych elementów pracujących równolegle, których zasada działania inspirowana jest biologicznym systemem nerwowym. Sztuczną

Bardziej szczegółowo

BIOCYBERNETYKA SIECI NEURONOWE. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

BIOCYBERNETYKA SIECI NEURONOWE. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej BIOCYBERNETYKA Adrian Horzyk SIECI NEURONOWE www.agh.edu.pl Mózg inspiruje nas od wieków Co takiego

Bardziej szczegółowo

Systemy agentowe. Sieci neuronowe. Jędrzej Potoniec

Systemy agentowe. Sieci neuronowe. Jędrzej Potoniec Systemy agentowe Sieci neuronowe Jędrzej Potoniec Złe wieści o teście To jest slajd, przy którym wygłaszam złe wieści. Perceptron (Rossenblat, 1957) A. Géron, Hands-On Machine Learning with Scikit-Learn

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

Algorytmy sztucznej inteligencji Algorytmy sztucznej inteligencji Dynamiczne sieci neuronowe 1 Zapis macierzowy sieci neuronowych Poniżej omówione zostaną części składowe sieci neuronowych i metoda ich zapisu za pomocą macierzy. Obliczenia

Bardziej szczegółowo

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS Dyskretyzacja - definicja Dyskretyzacja - zamiana atrybutów

Bardziej szczegółowo

Widzenie komputerowe

Widzenie komputerowe Widzenie komputerowe Uczenie maszynowe na przykładzie sieci neuronowych (3) źródła informacji: S. Osowski, Sieci neuronowe w ujęciu algorytmicznym, WNT 1996 Zdolność uogólniania sieci neuronowej R oznaczenie

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium JAVA Zadanie nr 2 Rozpoznawanie liter autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z problemem klasyfikacji

Bardziej szczegółowo

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych mgr inż. C. Dendek prof. nzw. dr hab. J. Mańdziuk Politechnika Warszawska, Wydział Matematyki i Nauk Informacyjnych Outline 1 Uczenie

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY

METODY INŻYNIERII WIEDZY METODY INŻYNIERII WIEDZY SZTUCZNE SIECI NEURONOWE MLP Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii

Bardziej szczegółowo

Sztuczne sieci neuronowe (SNN)

Sztuczne sieci neuronowe (SNN) Sztuczne sieci neuronowe (SNN) Pozyskanie informacji (danych) Wstępne przetwarzanie danych przygotowanie ich do dalszej analizy Selekcja informacji Ostateczny model decyzyjny SSN - podstawy Sieci neuronowe

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA WYKŁAD 4. UCZENIE SIĘ INDUKCYJNE Częstochowa 24 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska WSTĘP Wiedza pozyskana przez ucznia ma charakter odwzorowania

Bardziej szczegółowo

Hierarchiczna analiza skupień

Hierarchiczna analiza skupień Hierarchiczna analiza skupień Cel analizy Analiza skupień ma na celu wykrycie w zbiorze obserwacji klastrów, czyli rozłącznych podzbiorów obserwacji, wewnątrz których obserwacje są sobie w jakimś określonym

Bardziej szczegółowo

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE INSTYTUT TECHNOLOGII MECHANICZNEJ Metody Sztucznej Inteligencji Sztuczne Sieci Neuronowe Wstęp Sieci neuronowe są sztucznymi strukturami, których

Bardziej szczegółowo

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

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. LICZBA TEMAT GODZIN LEKCYJNYCH Potęgi, pierwiastki i logarytmy (8 h) Potęgi 3 Pierwiastki 3 Potęgi o wykładnikach

Bardziej szczegółowo

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy Wykorzystane materiały: Zadanie W dalszej części prezentacji będzie omawiane zagadnienie rozpoznawania twarzy Problem ten można jednak uogólnić

Bardziej szczegółowo

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, 2013 Spis treści Przedmowa 7 1. Wstęp 9 1.1. Podstawy biologiczne działania neuronu 9 1.2. Pierwsze modele sieci neuronowej

Bardziej szczegółowo

Klasyfikacja LDA + walidacja

Klasyfikacja LDA + walidacja Klasyfikacja LDA + walidacja Dr hab. Izabela Rejer Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Plan wykładu 1. Klasyfikator 2. LDA 3. Klasyfikacja wieloklasowa 4. Walidacja

Bardziej szczegółowo

Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory

Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory Dr Anna ADRIAN Paw B5, pok 407 adrian@tempus.metal.agh.edu.pl

Bardziej szczegółowo

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor S O M SELF-ORGANIZING MAPS Przemysław Szczepańczyk Łukasz Myszor Podstawy teoretyczne Map Samoorganizujących się stworzył prof. Teuvo Kohonen (1982 r.). SOM wywodzi się ze sztucznych sieci neuronowych.

Bardziej szczegółowo

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Dr Joanna Banaś Zakład Badań Systemowych Instytut Sztucznej Inteligencji i Metod Matematycznych Wydział Informatyki Politechniki

Bardziej szczegółowo

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE SIECI NEURONOWE Przedmiotem laboratorium jest stworzenie algorytmu rozpoznawania zwierząt z zastosowaniem sieci neuronowych w oparciu o 5 kryteriów: ile zwierzę ma nóg, czy żyje w wodzie, czy umie latać,

Bardziej szczegółowo

Kształcenie w zakresie podstawowym. Klasa 2

Kształcenie w zakresie podstawowym. Klasa 2 Kształcenie w zakresie podstawowym. Klasa 2 Poniżej podajemy umiejętności, jakie powinien zdobyć uczeń z każdego działu, aby uzyskać poszczególne stopnie. Na ocenę dopuszczającą uczeń powinien opanować

Bardziej szczegółowo

AKUSTYKA MOWY. Podstawy rozpoznawania mowy część I

AKUSTYKA MOWY. Podstawy rozpoznawania mowy część I AKUSTYKA MOWY Podstawy rozpoznawania mowy część I PLAN WYKŁADU Część I Podstawowe pojęcia z dziedziny rozpoznawania mowy Algorytmy, parametry i podejścia do rozpoznawania mowy Przykłady istniejących bibliotek

Bardziej szczegółowo

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM ZASTOSOWANIE SIECI NEURONOWYCH W SYSTEMACH AKTYWNEJ REDUKCJI HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM WPROWADZENIE Zwalczanie hałasu przy pomocy metod aktywnych redukcji hałasu polega

Bardziej szczegółowo

Optymalizacja systemów

Optymalizacja systemów Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16 Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Wykład 1: Wprowadzenie do sieci neuronowych

Wykład 1: Wprowadzenie do sieci neuronowych Wykład 1: Wprowadzenie do sieci neuronowych Historia badań nad sieciami neuronowymi. - początki: badanie komórek ośrodkowego układu nerwowego zwierząt i człowieka, czyli neuronów; próby wyjaśnienia i matematycznego

Bardziej szczegółowo

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH**

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH** Górnictwo i Geoinżynieria Rok 31 Zeszyt 3 2007 Dorota Pawluś* PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH** 1. Wstęp Eksploatacja górnicza złóż ma niekorzystny wpływ na powierzchnię

Bardziej szczegółowo

Metoda weryfikacji mówcy na podstawie nieuzgodnionej wypowiedzi

Metoda weryfikacji mówcy na podstawie nieuzgodnionej wypowiedzi BIULETYN INSTYTUTU AUTOMATYKI I ROBOTYKI NR, 005 Metoda weryfikacji mówcy na podstawie nieuzgodnionej wypowiedzi Leszek GRAD Zakład Automatyki, Instytut Teleinformatyki i Automatyki WAT, ul. Kaliskiego,

Bardziej szczegółowo

Systemy agentowe. Sieci neuronowe. Jędrzej Potoniec

Systemy agentowe. Sieci neuronowe. Jędrzej Potoniec Systemy agentowe Sieci neuronowe Jędrzej Potoniec Perceptron (Rossenblat, 1957) A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017 Perceptron { 1 z 0 step(z) = 0 w przeciwnym przypadku

Bardziej szczegółowo

Weryfikacja hipotez statystycznych

Weryfikacja hipotez statystycznych Weryfikacja hipotez statystycznych Hipoteza Test statystyczny Poziom istotności Testy jednostronne i dwustronne Testowanie równości wariancji test F-Fishera Testowanie równości wartości średnich test t-studenta

Bardziej szczegółowo

ALGORYTM RANDOM FOREST

ALGORYTM RANDOM FOREST SKRYPT PRZYGOTOWANY NA ZAJĘCIA INDUKOWANYCH REGUŁ DECYZYJNYCH PROWADZONYCH PRZEZ PANA PAWŁA WOJTKIEWICZA ALGORYTM RANDOM FOREST Katarzyna Graboś 56397 Aleksandra Mańko 56699 2015-01-26, Warszawa ALGORYTM

Bardziej szczegółowo

Wprowadzenie do analizy korelacji i regresji

Wprowadzenie do analizy korelacji i regresji Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 2 Detekcja twarzy autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się algorytmem gradientu prostego

Bardziej szczegółowo

Sztuczne sieci neuronowe Ćwiczenia. Piotr Fulmański, Marta Grzanek

Sztuczne sieci neuronowe Ćwiczenia. Piotr Fulmański, Marta Grzanek Sztuczne sieci neuronowe Ćwiczenia Piotr Fulmański, Marta Grzanek Piotr Fulmański 1 Wydział Matematyki i Informatyki, Marta Grzanek 2 Uniwersytet Łódzki Banacha 22, 90-232, Łódź Polska e-mail 1: fulmanp@math.uni.lodz.pl,

Bardziej szczegółowo

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

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 Uczenie się pojedynczego neuronu W0 X0=1 W1 x1 W2 s f y x2 Wp xp p x i w i=x w+wo i=0 Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z=0 Wówczas: W 1 x 1 + w 2 x 2 + = 0 Algorytm

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 16 2 Data Science: Uczenie maszynowe Uczenie maszynowe: co to znaczy? Metody Regresja Klasyfikacja Klastering

Bardziej szczegółowo

Analiza głównych składowych- redukcja wymiaru, wykł. 12

Analiza głównych składowych- redukcja wymiaru, wykł. 12 Analiza głównych składowych- redukcja wymiaru, wykł. 12 Joanna Jędrzejowicz Instytut Informatyki Konieczność redukcji wymiaru w eksploracji danych bazy danych spotykane w zadaniach eksploracji danych mają

Bardziej szczegółowo

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych Uniwersytet Zielonogórski Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Elektrotechnika niestacjonarne-zaoczne pierwszego stopnia z tyt. inżyniera

Bardziej szczegółowo

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.

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. Sieci neuronowe model konekcjonistyczny Plan wykładu Mózg ludzki a komputer Modele konekcjonistycze Perceptron Sieć neuronowa Uczenie sieci Sieci Hopfielda Mózg ludzki a komputer Twój mózg to 00 000 000

Bardziej szczegółowo