Sztucznego Neuronu

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Neuron- implementacja

Z jakiej podstawowej jednostki składa się sztuczna sieć neuronowa?

Sztucznego neuronu

Ile sztuczny neuron może mieć sygnałów wejściowych?

Nieskończenie wiele

Ile może być przypisanych wag (parametrów modelu) w ramach jednego neuronu?

Tyle wag ile sygnalow wejściowych

Jaki element sztucznego neuronu wprowadza nieliniowość do modelu?

Funkcja aktywacji

Jeśli jedna z warstw posiada pięć neuronów i sygnały wyjściowe podawane również są na warstwę
o 5 neuronach, to ile, co najmniej, wag będzie pomiędzy tymi warstwami przypisane ?

25

Jakie benefity dają nam funkcje aktywacji w sieciach neuronowych?

A Spowalniają uczenie
B Pozwalają przeskalować wartości neuronów
C Wprowadzają liniowość
D Wprowadzają nieliniowość

Jaką funkcję aktywacji zastosujemy na wyjściu sieci neuronowej rozwiązując problem


klasyfikacji wieloklasowej (multiclass classification)?

A ReLu
B Sigmoid
C Softmax
D TanH
E Solosis

Hiperparametr `learning rate` w algorytmie spadku gradientu pozwala na

A Skalowanie korekty wagi, jaka zostanie zaaplikowana do obecnych wag - wielkość kroku
B Regularyzację - karanie algorytmu za zbyt duże wagi
C Obliczenie błędu dowolnego modelu
D Usunięcie części neuronów w procesie treningu aby przeciwdziałać zjawisku overfittingu

Warstwa gęsta `Dense` w bibliotece keras oznacza warstwę, w której neurony

A Są połączone z każdym neuronem warstwy następnej


B Są gęsto upakowane w stosunku do siebie
C Są wyłączane w pewnej części aby przyspieszyć trening i dodać regularyzację
D Są połączone z każdym neuronem warstwy poprzedniej

Trening sieci neuronowych opiera się o

A Maksymilizację funkcji straty


B Propagację w przód, a następnie propagację w tył
C Minimalizację funkcji straty
D Propagację w lewo, a następnie propagację w prawo

Dropout Layer w sieci neuronowej pozwala na

A Obliczenie błędu dowolnego modelu


B Skalowanie korekty wagi, jaka zostanie zaaplikowana do obecnych wag - wielkość kroku
C Wyłączenie losowej części neuronów w procesie treningu aby przeciwdziałać zjawisku
overfittingu
D Wyłączenie funkcji straty, aby uzyskać lepsze wyniki

Zastosowanie Deep Learning:

-Forecasting
-Computer Vision (Classification, Classification+Localization, Object Detection, Instance
Segmentation)
-Natural Language Processing
-Reinforcment Learning
-Modele Generatywne

Trening sieci neuronowych opiera się o:

-Propagację w przód, a następnie propagację w tył

-Minimalizację funkcji straty

1. Wejścia xo, x1, x2

2. Mnożenie przez wagi wo, w1, w2

3. Sumowanie Sygnałów + dodanie biasu b (przesuniecie wyniku, przetworzenie informacji)

4. Funkcja aktywacji f(x) – wprowadza drobna nieliniowość do neuronu

5. Wyjście Y (zakres zależny od funkcji aktywacji)

SZTUCZNA SIEĆ NEURONOWA

Funkcje aktywacji (najpopularniejsze) Pozwalają przeskalować wartości neuronów, Wprowadzają


nieliniowość, przyśpieszają uczenie, inspiracja biologią(w naturze nie ma liniowości)

- sigmoid (od 0 do 1)

- rectified linear (ReLU) liniowa przedziałami, nieliniowa w całym zakresie wartości

- Softmax - zastosujemy na wyjściu sieci neuronowej rozwiązując problem


klasyfikacji wieloklasowej (multiclass classification)

-TanH

-Solosis

Dobieramy w zależności od wielkości sieci oraz celu funkcjonowania konkretnych warstw.


Czy jeden neuron wystarczy?

• Pojedynczy neuron nie wystarczy

• Pozwala na rozdzielenie hiperprzestrzeni liniowo • Może działać w wielu wymiarach (xi) Czy jeden
neuron wystarczy? • Nie sprawdza się w problemach nieliniowych, które najczęściej są spotykane w
Data Science • W rzeczywistości dane dla których budujemy modele nie są tak łatwo rozdzielne

Warstwy:

-połączenia każdy z każdym (wag jest tyle co sygnałów miedzy warstwami)

- dowolność modyfikacji

• Kolejne iteracje pozwalają na wytrenowanie wag, dzięki uzyskamy wynik ze zmniejszonym błędem
• Podział hiperprzestrzeni, których rozdział liniowy jest niemożliwy

Jak się uczy sieć?

 I do przodu (feed forward) - Macierz wag: • Liczba wierszy = liczba neuronów na kolejnej
warstwie • Liczba kolumn = liczba wejść / neuronów na wcześniejszej warstwie g - funkcja
aktywacji z - po warstwie, przed funkcją aktywacji a = g(z)
 do tyłu (backpropagation)
 gradienty w dół (gradient descent): Cel: Znalezienie wag dla którego uzyskamy minimum
globalne kosztu • Krokowa korekta wag przy wykorzystaniu gradientu • Gradient skalowany
parametrem szybkości uczenia

Funkcja Kosztu
• Regresja: MSE (Mean Squared Error)
• Klasyfikacja: CE (Cross Entropy), Quadratic, Likelihood-używane z Softmax
• Pozwala na obliczenie błędu dowolnego modelu
• Jest on wykorzystywany w procesie optymalizacji

PROCES UCZENIA SIECI: OPTYMALIZACJA

1. FEED FORVARD (przejście w przód) – wyznaczenie wyjść na podstawie wejść


2. BACKWARD PASS – zestawiamy wyjście z sieci z wartościami referencyjnymi(prawidłowymi Y)
funkcja błędu lub kosztu – ocena jak bardzo model się myli
3. Obliczenie pochodnych funkcji błędu po każdej z wag
4. Policzony wpływ zmiany wagi na błąd generowany przez cala siec
5. GRADIENT DESCENT – proces uczenia wykonywany jest iteracyjnie, przy każdym wyznaczeniu
błędu wagi są odrobine korygowane z silą zależną od parametru
learning rate (współczynnik ograniczający zmianę wag w celu uniknięcia nadmiernym zmianą
i wystrzelania błędu w kosmos)

Rozszerzenie o warstwę Dropout ma zapobiegać przeuczeniu.

Chain rule (reguła łańcuchowa) Pozwala na obliczenie pochodnych funkcji złożonych.

Korekta wag

Nowa_Waga = Obecna_waga - tempo_uczenia * pochodna_z obecnej_wagi


Wnew = Wcurr - lr*dWcurr

• Sample - pojedyncza próbka danych

• Batch - pojedyncza “porcja” danych treningowych, najczęściej 32-128 próbek. Pozwala “wygładzić”
proces optymalizacji wag i przyspiesza trening.

• Epoch - wykorzystanie wszystkich danych treningowych, jedna iteracja treningu.

Człon momentum

• Pozwala na przyspieszenie treningu


• Redukuje wpływ “szumu” w danych treningowych
• Wykorzystuje poprzednie kroki
Regularyzacja
Dodatkowy czynnik zmniejszający nadmierne dopasowanie danych, dodawany do funkcji kosztu. Na
przykładzie L2.

+ -
• Wszechstronna (regresja, klasyfikacja i inne ● Może wymagać milionów i więcej parametrów
zadania) ● Złożona obliczeniowo
• Dowolne wymiary wejścia i wyjścia ● Problem zanikającego i eksplodującego
• Radzi sobie z dużą ilością danych (szczególnie gradientu
DNN) ● Relatywnie długi trening bez GPU/VPU/TPU
• Teoretycznie istnieje taka SN, która poradzi
sobie z każdym problemem

Konwolucyjne sieci neuronowe

Google Colab
- Środowisko podobne do jupyter notebooka
- Uruchamiane na linuxowych serwerach google
- Możliwość korzystania z GPU i TPU do obliczeń
- Łatwa integracja z usługami google
- Istnieje darmowa wersja

Obraz to macierz 3 wymiarowa, ewentualnie 2D ale to w szarościach.

256 z każdej z 3 komponentów wartości.

Nazwa Liczba bitów Min, Max zastosowanie


Uint8 8 0,255 Obrazy 8-bit
Float16 16 +/- 65504 Obliczenia GPU
Float32 32 +/- 3.4e+38 Domyślny Keras
Float64 64 +/- 1.8e+308 Obliczenia CPU

Imagenet Challange – zbior danych


-1000 klas
-1.2M zbior treninowy
-100k zbior testowy

Filtr Laplacian – wyostrzający filtr do znajdowania linii granic obiektu

Filtr medianowy – wygładzający, do zdjęć nocnych (add_salt_pepper

tf.keras - Obecnie najpopularniejszy framework do DL, wspierający większość niskopoziomowych


frameworków. Początkowo wykorzystywał Theano, następnie również Tensorflow. Można go
wywoływać bezpośrednio lub z poziomu tf.keras ▪ Wykorzystywany do nauki metod DL, jak i dużych
komercyjnych projektów

Tf.keras - API :

▪ keras.models ▪ Sequential - jedno wyjście/wejście - append ▪ Model - modele z wieloma


wej/wyjściami
▪ layers - zawiera warstwy gotowe do wykorzystania
▪ preprocessing - generatory danych
▪ ImageDataGenerator - augmentacja obrazów
▪ losses - funkcje straty
▪ metrics - metryki do kontroli treningu
▪ activations - funkcje aktywacji
▪ datasets - gotowe zbiory danych do wczytania
▪ applications - gotowe modele, również wytrenowane
▪ backend - funkcje do pisania ręcznie np. f. straty
▪ utils - dodatkowe, pomocne funkcjonalności - np. wczytanie, wizualizacja modelu
▪ callbacks - funkcje zwrotne - przydatne w treningu

ZALETY KERAS:

 Szybkie przejście od pomysłu do implementacji


 Wsparcie sprzętowe (CPU, GPU, TPU)

Augmentacja danych:
Problem:
 - Zbyt mało danych
 - Mała różnorodność
 - Przeuczanie
 - Słabe predykcje na zbiorze walidacyjnym
Rozwiązanie:
 - Urozmaicenie danych
 - Zmiana tła
 - Usunięcie niektórych szczegółów, by model musiał wykorzystać inne
Parametry:
samplewise_center i samplewise_std_normalization – standaryzacja
preprocessing_function - pozwala zdefiniować sposób obróbki danych funkcją

Wybrane metody ImageDataGenerator:


- flow - wykorzystanie macierzy NxWxHxCH
- flow_from_directory - wykorzystanie danych pod ścieżką
- next - pozwala na wygenerowanie batchu danych

Warstwy konwolucyjne:

- Macierz 5x5
- Filtr konwolucyjny o kroku (stride) 1 i wymiarze 3x3
- Brak obramowania (padding)
- Tylko jeden filter - zwykle stosujemy ich więcej

Warstwy poolingowe (głosujące)

▪ Pozwalają na redukcję wymiarów i przejście na następny “poziom” abstrakcji


▪ Zwykle stosowana jest maska 2x2, krok = 2, funkcja max

Typowe funkcje aktywacji stosowane w CNN do klasyfikacji:

▪ ReLU = max(x,0) - na warstwach ukrytych:- Przeciwdziała zanikającemu gradientowi -Mały narzut


obliczeniowy
▪ Sigmoid - na końcowej warstwie do problemów binarnych
▪ Softmax - na końcowej warstwie do problemów wieloklasowych
▪ Transformują mapy aktywacji do prawdopodobieństwa

W pełni połączone (Dense):


▪ W połączeniu z keras.layers.Flatten()
▪ Podejmują ostateczne decyzje dotyczące danych
▪ Ostatnia warstwa jest zazwyczaj łączona z nieliniową funkcją aktywacji

Dropout:
▪ Powoduje wyzerowanie % map aktywacji losowych neuronów w trakcie treningu
▪ Zapobiega przeuczeniu
▪ Jest jedną z metod regularyzacji

wynik operacji konwolucji i pullingu TEST!!


Rekurencja – czyli funkcje, które wywołują same siebie. Rekurencja polega na wywoływaniu
funkcji przez samą siebie.

LSTM(Long Short Term Memory Networks) – rodzaj rekurencyjnych sieci neuronowych, zdolne do

GRU(Gated Recurrent Unit) – prostszy, zmniejszy od LSTM

Czy zawsze, podczas modelowania należy wyposażyć się w zbiór walidacyjny?

Tak. Konieczne jest sprawdzenie jakości modelu na zbiorze walidacyjnym

Kiedy występuje zjawisko nadmiernego dopasowania (ang. overfitting)?

Kiedy wartość błędu na zbiorze treningowym jest znacznie odbiegająca(niższa) od wartości błędu na
zbiorze walidacyjnym

Czy zwiększanie wielkości sieci zawsze pomaga w osiągnięciu lepszego dopasowania?

Nie. Za duży model może nie osiągnąć lepszych wyników, zaś łatwiej wpada w nadmierne
dopasowanie

Jaką optymalną wartość hiperparametru learning rate należy zawsze ustawić na początku
treningu?

Nie jest to określone, ponieważ to zależy na przykład od tego jak duży mamy model lub jak trudny
jest zbiór treningowy

Jaką warstwę warto dodać aby zapobiegać nadmiernemu dopasowaniu (ang. overfitting)?

tensorflow.keras.layers.Dropout()

W jaki sposób można stworzyć stałą w tensorflow.keras, której wartości nie mogą być
modyfikowane podczas treningu sieci?

tensorflow.constant()

W jakim celu korzystamy z warstwy tensorflow.keras.layers.Softmax() ?

oxaby przenieść wartości danego wektora na przestrzeń rozkładu prawdopodobieństwa, sumujących


się do 1

Czy konieczne jest zawsze podawać funkcję kosztu podczas uczenia sieci?

Niekoniecznie, w niektórych zadaniach sieć można dopasowywać losowo

Co oznacza ustawienie w metodzie fit() parametru epochs na np. 100?

Wykonanych zostanie 100 rund dopasowania modelu, za każdym razem na całym zbiorze
treningowym
Co otrzymamy po wykonaniu metody predict() w ramach modelu sztucznej sieci neuronowej w
tensorflow.keras ?

Wektor wartości z ostatniej warstwy sieci

Ile sygnałów wyjściowych może posiadać sztuczny neuron ?

Zawsze jeden

Ile warstw może posiadać sztuczna sieć neuronowa?

Nieskończenie wiele. Zależy jak złożoną projektujemy architekturę

Czym się charakteryzuje przejście w przód sieci, tzw. feed forward?

Wyznaczeniem wartości sygnałów wyjściowych warstwa po warstwie, aż do głównego wyjścia z sieci

Czym się charakteryzuje proces uczenia sieci, tzw. backward pass?

Wyznaczeniem wielkości błędu i skorygowaniem wag modelu

Za pomocą jakiego hiperparametru kontrolujemy prędkość schodzenia po gradiencie?

Learning rate

Jeżeli na naszej tabeli wykonamy metodę tail(10), to co zostanie zwrócone?

ostatnie dziesięć wierszy tabeli

W jaki sposób możemy pozyskać z tabeli komórkę z drugiego wiersza oraz trzeciej kolumny tabeli?

df.iloc[1][2]

Co otrzymamy po uruchomieniu metody np.arange(3,8) ?

Wektor wartości 3,4,5,6,7

Co otrzymamy po uruchomieniu metody np.array([ [1,2,3], [4,5,6], [7,8,9]]).shape?

krotkę (3,3)

Czy dwa numpy’owe wektory można dodawać?

Tak, wektory można sumować, nawet korzystając z operatora “+”

Do czego służy środowisko conda w ramach deep learningu?

Tworzenia i kontrolowania środowisk wirtualnych python’a

Czy każda komórka w jupyter notebook’u to niezależnie wykonywany kod?

Nie, ponieważ w ramach notebook’a uruchamiania jest interaktywna sesja

You might also like