# Нейрончики Вроде как, в нашей лабе мы рассматриваем нейронные __сети прямого распространения__ ( СПР ). ## Нейронная сеть в общем ввиде ![neuralnet](https://drive.google.com/uc?id=1KuM8paeRNvOEt-0WUxgjKihRwnRuvylu) ## Как работает нейрон ![neuron](https://i.imgur.com/9NiJObo.jpg) __Активация нейрона:__ $h = \sum_{i=1}^n w_ix_i - b$ __Выход нейрона:__ $y = f( h )$, где $f$ -- функция активации ## Гиперпараметры нейронной сети ### Слои #### Layers ![layers_practice](https://i.imgur.com/Uxc5om8.png) Буквально число скрытых слоев т.е. число групп последовательно соединенных нейронов, кроме входного и выходного. ![layered_neuralnet](https://drive.google.com/uc?id=1CbGqsE55Yo2XWzTtkg33K3PMjEVdjREz) ### Функция потерь #### Loss function Это функция, частная производная значения которой используются в backpropagation при корректировке весов нейронов. $$ \delta_i = \frac{\partial Loss}{\partial h_i }( h_i ) = \frac{\partial Loss}{\partial y_i}\frac{\partial y_i}{\partial h_i}( h_i ) = \frac{\partial Loss}{\partial y_i}\frac{df(h_i))}{dh_i}( h_i ) $$ ![loss_practice](https://i.imgur.com/cupbP3i.png) + Binary crossentropy: $$ \log Loss = -\frac{1}{n}\sum^n_i( y_i\log[ p(y_i) ] + ( 1 - y_i )\log[ 1 - p(y_i) ] ) $$ + Mean absolute devitaion: $$ Loss = \frac{1}{n}\sum^n_i | y_i - \hat y_i | $$ + Standard deviation: $$ Loss = \sqrt{ \sum^n_i ( y_i - \hat y_i )^2 p( y_i ) } $$ + Categorical Crossenthropy: $$Loss = -\sum^n_i y_i\cdot\log\hat y_i$$ ### Размер партии #### Batch size ![batch_practice](https://i.imgur.com/pfc1WkN.png) Число примеров данных в одной партии. В ходе одной эпохи нейронной сети скармливается весь датасет, но порционно ( партийно ), причем эти порции наполняются случайными данными из датасета и вкупе формируют весь датасет. Таким образом, за одну эпоху мы скармливаем нейросети весь датасет. ## Регуляризаторы __Регуляризаторы__ -- это один из способов предотвращения __переобучения ( overfitting )__ нейронной сети. `P.S. о переобучении будет сказано дальше` `P.P.S. далее одинарная кавычка не символ взятия производной` ### L1-Регуляризатор #### Regularization L1 $L_1$ -- регуляризация (англ. lasso regression), или регуляризация через __манхэттенское расстояние__: $$L_1 = \lambda\sum_i |w_i|\\ Loss' = Loss + L1$$ ### L2-Регуляризатор #### Regularization L2 $L_2$ -- регуляризация, или __регуляризация Тихонова__ (в англоязычной литературе — ridge regression или Tikhonov regularization), для _интегральных уравнений_ позволяет балансировать между соответствием данным и маленькой нормой решения: $$L_2 = \lambda\sum_i w^2_i\\ Loss' = Loss + L_2$$ #### Итоговый Loss Итого значение функции потерь с применением регуляризаторов $L_1$ и $L_2$: $$Loss' = Loss + L_1 + L_2$$ ### Скорость ( Темпы ) обучения #### Learning rate Коэффициент $\alpha$, на который домножается итоговая корректировка веса. $$w_i = w_i - \alpha\frac{\partial Loss}{\partial h_i}( h_i )$$ ![learnr_practice](https://i.imgur.com/bupFUmD.png) ### Функции активации #### Activation function ![activationf_practice](https://i.imgur.com/OZePPjz.png) + softmax: $f(h_i) = \frac{e^{h_i}}{\sum^n_j e^{h_j}}$ + relu: $f(h) = max( 0, h )$ + tahn: $f(h) = \frac{e^h - e^{-h}}{e^h + e^{-h}}$ + sigmoid: $f(h) = \frac{1}{1+e^{-h}}$ + linear: $f(h) = h$ ### Число эпох #### Epoch Count ![epoch_practice](https://i.imgur.com/A7tDxBc.png) Число циклов обучения нейронной сети. ![foriki](https://i.imgur.com/0QQ3KN7.png) ### Число нейронов в слое #### Neurons count in layer ![neurons_count_practice](https://i.imgur.com/Bhe6P80.png) ![neurons_count](https://drive.google.com/uc?id=1HwmTGIBiGgQZA_nJKvPyhFQvaQHFkOut) ## Переобучение ### Overfitting Это явление, при котором неройнная сеть выдает точные данные, но только на тренировачных данных, т.е. по сути не "обобщает" решение, а "запоминает" решения для конкретных входных данных. Есть несколько методов предотвращения переобучения + __Регуляризация__ -- описана выше + __Dropout__ -- на каждой итерации с определенным шансом зануляем вес нескольких нейронов, таким образом, мы обучаем несколько нейросетей, состоящих из подмножества нейронов исходной нейросети.