神经网络的基础与原理介绍 随笔,内容包括 :
Make your own neural networks - Tariq Rashid
Machine Learning - Hung-yi lee
3Blue1Brown

原理

左边784个neuron的**值分别为28x28图像的784个pixels的灰度,最右边九个neuron**值即选择为0-9分别的可能性。
Neural Network Introduction
中间的hidden layers可能对识别某些部分都有不同的作用, 每一个neuron的作用:
Neural Network Introduction
反向传播,每一个样本影响前面所有的神经元的w
Neural Network Introduction

通过Back Propagation + Gradient Descent来得到各参数

C为距离
Neural Network Introduction
Neural Network Introduction
Neural Network Introduction

计算方法

Neural Network Introduction
Neural Network Introduction
Forward Pass
Neural Network Introduction
Backward Pass
Neural Network Introduction
Neural Network Introduction
那么就可以从output layer开始往前算起偏微分了!
Neural Network IntroductionNeural Network Introduction

问题

Train烂了?

层数收敛问题

Neural Network Introduction
train出来效果差,也不是overfitting,是因为层数多了,前面的层数还几乎是random的而后面的层数已经收敛了。而且如果用的是sigmoid函数激励,会将影响缩到(-1,1)范围,那么影响无论多大,过一层后都缩了太多。
解决方法
所以可以用ReLU(ReLU大法好)
不过也可以用神奇Maxout的方法:
Neural Network Introduction
这也是一个可学习的激励函数。

最佳参数

一般gradient descent很有可能可能由于plateau,saddle point,local minima停了下来:
Neural Network Introduction
解决方法
Momentum动量模拟:现在的gradient加上前一次移动的方向
Neural Network Introduction
Neural Network Introduction

Test烂了?

Early Stopping

Neural Network Introduction

Regularization

(对Deep Learning实际上效果不大)
https://blog.csdn.net/chitoseyono/article/details/86515759 Chapter 8 Regularization 模型正则化
Neural Network Introduction
Neural Network Introduction

Dropout

对每个neuron进行sampling,每个有p%被丢掉,瘦身NN
Neural Network Introduction
只在training的时候进行dropout,test时不dropout,但
Neural Network Introduction
(w要乘dropout rate的原因是在train的时候丢的如果直接上test数据,输出会变多几倍,所以应该乘上(1-p))
用dropout,在minibatch分别train,然后能得到ensemble的效果(就很爽)
Neural Network Introduction
而且因为在线性条件下dropout的效果跟直接的效果是相同的,而也有ReLU的线性特性,所以用ReLU的时候,dropout效果会很好。

相关文章: