Temat: Sieci neuronowe oraz technologia CUDA

Podobne dokumenty
Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

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

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

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

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

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

Wstęp do sztucznych sieci neuronowych

Sztuczne sieci neuronowe

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

Metody Sztucznej Inteligencji II

Podstawy Sztucznej Inteligencji (PSZT)

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Sieci neuronowe w Statistica

1. Logika, funkcje logiczne, preceptron.

Sztuczne sieci neuronowe

Elementy inteligencji obliczeniowej

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

Wykład 1: Wprowadzenie do sieci neuronowych

Podstawy sztucznej inteligencji

Inteligentne systemy przeciw atakom sieciowym

Uczenie sieci neuronowych i bayesowskich

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

SIECI NEURONOWE Liniowe i nieliniowe sieci neuronowe

MODELOWANIE RZECZYWISTOŚCI

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

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD X: Sztuczny neuron

Uczenie sieci typu MLP

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

Sieci neuronowe jako sposób na optymalizacje podejmowanych decyzji. Tomasz Karczyoski Wydział W-08 IZ

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Optymalizacja optymalizacji

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

Algorytmy sztucznej inteligencji

SIEĆ NEURONOWA JAKO NARZĘDZIE APROKSYMACJI I KLASYFIKACJI DANYCH. Jakub Karbowski Gimnazjum nr 17 w Krakowie

Sztuczne sieci neuronowe (SNN)

I EKSPLORACJA DANYCH

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

Sztuczne siei neuronowe - wprowadzenie

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

Podstawy Sztucznej Inteligencji

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

wiedzy Sieci neuronowe

Inteligentne systemy informacyjne

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania

Metody i techniki sztucznej inteligencji / Leszek Rutkowski. wyd. 2, 3 dodr. Warszawa, Spis treści

ID1SII4. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

HAŁASU Z UWZGLĘDNIENIEM ZJAWISK O CHARAKTERZE NIELINIOWYM

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

Widzenie komputerowe

Definicja perceptronu wielowarstwowego

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

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

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

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.

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

Obliczenia Naturalne - Sztuczne sieci neuronowe

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 sieci radialnych (RBF)

METODY INŻYNIERII WIEDZY

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Zastosowania sieci neuronowych

METODY INTELIGENCJI OBLICZENIOWEJ wykład 5

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

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty

Lekcja 5: Sieć Kohonena i sieć ART

Sztuczna inteligencja

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

ELEMENTY SZTUCZNEJ INTELIGENCJI. Sztuczne sieci neuronowe

SIECI REKURENCYJNE SIECI HOPFIELDA

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

wiedzy Sieci neuronowe (c.d.)

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

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

Projekt Sieci neuronowe

Testowanie modeli predykcyjnych

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD XI: Sztuczne sieci neuronowe

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

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

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

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

OCENA DZIAŁANIA AE. METODY HEURYSTYCZNE wykład 4 LOSOWOŚĆ W AE KRZYWE ZBIEŻNOŚCI ANALIZA STATYSTYCZNA:

Emergentne właściwości. sztucznych sieci neuronowych

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

1. Architektury, algorytmy uczenia i projektowanie sieci neuronowych

PRÓBA ZASTOSOWANIA SIECI NEURONOWYCH DO PROGNOZOWANIA OSIADAŃ POWIERZCHNI TERENU POWSTAŁYCH NA SKUTEK EKSPLOATACJI GÓRNICZEJ**

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

Praktyczne informacje o sieciach neuronowych. Elżbieta Dłubis. Państwowa Wyższa Szkoła Zawodowa w Chełmie

Zastosowania sieci neuronowych - automatyka identyfikacja sterowanie

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

Deep Learning na przykładzie Deep Belief Networks

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

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

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

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

SZTUCZNA INTELIGENCJA

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

Algorytmiczne sieci neuronowe idea działania, słabe i mocne strony

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

Transkrypt:

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 mózgu. Oczywiście zwykle jest to uproszczony model, jednak spełnia swoje zadania. Początki sieci neuronowych sięgają końca lat pięćdziesiątych, kiedy to pojawiły się pierwsze modele neuronów i sieci. Był to pierwszy perceptron oraz model Madaline. Pierwsze emocje i zachwyty opadły, gdy kilku naukowców dowiodło ograniczenie zastosowań liniowych sieci neuronowych oraz niemożliwość nauczenia sieci wielowarstwowych. Lata osiemdziesiąte stanowiły renesans sieci. Powstało wiele nowych artchitektur, koncepcji, podsumowań badań oraz, co najważniejsze, algorytm uczenia wielowarstwowych sieci neuronowych: algorytm wstecznej propagacji błędu. Jest on stosunkowo prosty. Najpierw obliczamy, odpowiednim wzorem błąd sieci, pomiędzy wartością oczekiwaną, a wartością jaką otrzymujemy. Następnie rzutujemy ten błąd do warstwy poprzedniej i na jego podstawie poprawiamy warstwę. Więcej o tym w dalszej części. Kolejną przyczyną wzrostu popularności sieci było rosnące zainteresowanie sztuczną inteligencją i zastosowaniem w niej sztucznych neuronów. Obecnie sztuczne sieci neuronowe znajdują zastosowanie w wielu dziedzinach, często zupełnie niespodziewanych. Sztuczny neuron Sieć neuronowa składa się z warstw, które są zbudowane z neuronów. A więc najważniejszą składową jest tutaj neuron. Neuron biologiczny: 1 synapsy 2 aksom 3 ciało komórki 4 dendryty

Model sztucznego neuronu: x1 xn wejście neuronu w1 wn wagi neuronu s suma f funkcja aktywacji neuronu y wejście Neuron działa w następujący sposób. Sygnały wejściowe są pomnożone przez odpowiadające im wagi. Otrzymany wektor trafia do sumatora. Otrzymany wynik trafia do funkcji aktywacji, gdzie zostaje przetworzony. W ten oto sposób otrzymujemy wyjście. To jest najbardziej ogólny model neuronu. Jednak stosuje się przeróżne jego modyfikacje wynikające ze zmiany funkcji aktywacji. Czym jednak ona jest? Jest to funkcja, która modyfikuje otrzymaną sume w sposób najbardziej odpowiedni dla danego modelu. Np. funkcja aktywacji perceptronu na wyjściu daje 1 lub -1. Dzięki czemu otrzymujemy jednoznaczną odpowiedź. Tak jak true lub false. Funkcja aktywacji modelu Adaline na wyjściu daje 0 lub 1. Założenia są proste, sam schemat również. A więc, gdzie tu jest genialne rozwiązanie pasujące do tak wielu zastosowań? To rozwiązanie to informacja. Informacja przechowywana przez wagi neuronu. Oczywiście istnieje kilka algorytmów zmieniających odpowiednio wagi neuronu. Każdy algorytm jest indywidualnym rozwiązaniem dla danego modelu pasującym do danej funkcji aktywacji.

Czym są sieci neuronowe Sieci neuronowe są strukturą składającą się z kilku warstw, które składają się z neuronów. Wyróżniamy trzy rodzaje warstw: warstwa wejściowa zwykle służy jedynie do przekazania wejścia do warstw kolejnych; warstwa ukryta zwykle jest ich kilka. Znajdują się pomiędzy warstwą wejściową i wyjściową. Wszystkie dane z tych warstw nie powinny być widoczne. Wyjścia każdej z tych warstw (podobnie jak pozostałych) są wejściami warstwy następnej. Warstwa wyjściowa jej wejściami są wyjścia warstwy ukrytej. Służy do wyświetlenia wyjścia użytkownikowi. Jest kilka rodzajów sieci: sieci jednokierunkowe wielowarstwowe; sieci rekurencyjne; sieci samoorganizujące z konkurencją; Sieci jednokierunkowe wielowarstwowe są najprostszą strukturą. Przebieg neuronów odbywa się w jednym kierunku. Bardzo łatwo jest przewidzieć zachowanie sygnałów. Podobnie algorytmy nauki są bardzo proste. Sieci rekurencyjne inaczej zwane sieciami ze sprzężeniem zwrotnym. Jedyna różnica to występowanie tak zwanego sprzężenia zwrotnego. Polega ono na występowaniu dodatkowego wejścia w postaci wyjścia danej warstwy. W związku z tym algorytmy uczące są trochę zmodyfikowane. Jednym z nich jest zmiana wejść dopóki sieć się nie ustabilizuje. Obie powyższe sieci są sieciami z wykorzystaniem algorytmów z nauczycielem. Musimy w nim znać wyjście, by móc nauczyć sieć. W tym momencie należy wspomnieć w jaki sposób można nauczyć sieć. Pomysł jest prosty. Podajemy na wejście sieci tzw. ciąg uczący, a następnie obliczamy wyjście sieci. Jeżeli nie jest bliskie wartościom oczekiwanym obliczamy różnicę pomiędzy faktycznym wyjście, a oczekiwanym. Jeżeli wartości te różnią się o pewną liczbę delta obliczamy błąd warstwy wyjściowej. Przekazujemy następnie ten błąd do warstwy poprzedniej. I kolejnej. Aż dojdziemy do warstwy wejściowej. Ponownie obliczamy wyjście i jeżeli dalej się nie zgadza ponawiamy algorytm. W związku z tym, że błąd jest propagowany do warstw poprzednich został nazwany: algorytm propagacji wstecznej błędów. Sieci samoorganizujące z konkurencją należą do sieci z nauczaniem bez nauczyciela. Służą głównie w zadaniach grupowania danych. Mają nieskomplikowaną budowę, a do ich zrozumienia wymagana jest niewielka znajomość matematyki. Charakteryzującą je rzeczą jest stopień podobieństwa niektórych wag, przez co tworzą swego rodzaju grupy. Po stworzeniu sieci należy dobrać odpowiednio wagi. Zwykle są dobierane losowo często z przedziału (1; 0). Wartości zero i jeden przeważnie nie używa się do doboru wag. Podobnie wartość zero jest unikana w sieci. Jest ona neutralna i często nie bierze udziału w nauce i przechowaniu informacji. Jednak te sprawy są indywidualną sprawą danej sieci oraz projektanta. Dobór początkowych wartości jest bardzo ważny. Optymalny dobór wag powoduje znaczne skrócenie nauki sieci.

Czym jest technologia CUDA Od dłuższego czasu widać znaczny wzrost wydajności oraz współbieżności procesorów. Obecnie, w użytku domowym, znajdują się procesory 2 4 rdzeniowe, czyli mogące obsłużyć kolejno 2 4 wątki. Wydaje się to ogromną wartością, jednak to nic w porównaniu z kartami graficznymi, posiadającymi jednostki mogące obsłużyć 100, 200 a nawet więcej wątków. Do tej pory ta cała moc obliczeniowa była wykorzystywana wyłącznie w programach komputerowych. Kilka lat temu programistom udało się stworzyć proste programy używające części mocy karty jednak programy takie pisane były dosyć żmudnie. Jednak trzy lata temu wszystko to się zmieniło. Nvidia, 15 lutego 2007 roku, wypuściła na rynek CUDA SDK. Dzięki temu programiści uzyskali łatwy dostęp do zasobów karty w języku C. Obecnie technologia CUDA jest wspierana przez karty GeForce z serii 8, 9, 100 i 200 z minimum 256 MB lokalnej pamięci graficznej RAM. Przygotowane przez nvidia sdk pozwala programistom w łatwy sposób przenieść część żmudnych obliczeń na kartę graficzną. Dzięki czemu uzyskujemy spore przyspieszenie. W jaki sposób się to dzieje? W karcie graficznej wbudowane jest kilka jednostek, które mogą wykonywać kilku lub kilkadziesiąt operacji równolegle.

Użycie CUDA w sieciach neuronowych. Sieci neuronowe są strukturą idealnie nadającą się do współbieżnego obliczania. Każda taka sieć składa się z co najmniej kilkunastu neuronów, które obliczają wyjście niezależnie od siebie. Poza tym, w każdym neuronie potrzebna jest operacja sumowania oraz obliczenia funkcji aktywacji, a czasami jej pochodnej. Operacje te są żmudne dla procesora jednak nie dla jednostki gpu. Przekazując wektor wejść i wag możemy za pomocą CUDA dostać sumę wszystkich elementów w czasie co najmniej dwukrotnie mniejszym niż poprzez cpu. Podobnie obliczanie sinusów, cosinusów. Możemy również dokonać wszystkich obliczeń neuronu w jednym wątku. Spowoduje to kilkukrotne przyspieszenie.