M-P神经元
y
=
f
(
∑
i
=
1
n
w
i
x
i
−
θ
)
\ y=f\left(\sum_{i=1}^{n} w_{i} x_{i}-\theta\right) \,
y=f(i=1∑nwixi−θ)
θ
\theta
θ表示超过一定的阈值则会激活,没有激活函数就只能拟合线性函数。
万有逼近定理
- 如果一个隐层包含足够多的神经元,三层前馈神经网络(输入-隐层-输出)能以任意精度逼近任意预定的连续函数。
- 当隐层足够宽时,双隐层感知器(输入-隐层1-隐层2-输出)可以逼近任意非连续函数:可以解决任何复杂的分类问题。
神经网络每一层的作用
- 神经网络学习如何利用矩阵的线性变换加激活函数的非线性变换,将原始输入空间投影到线性可分的空间去分类/回归。
- 增加节点数:增加维度,即增加线性转换能力。
- 增加层数:增加激活函数的次数,即增加非线性转换次数
matplotlib展示生成随机数的直方图
螺旋分类
线性模型分类:
两层神经网络分类:
可以看到,加入ReLU激活函数之后,分类的准确率得到了显著提高。然后我又试了试Sigmoid、Tanh、LeakyReLU等其他的激活函数。发现经过1000次迭代下Sigmoid激活函数的分类效果最差,准确率百分之五十左右。但是在增加迭代次数后,加入激活函数总能使得分类的准确率提高,而没有加入激活函数的线性分类则一直维持在百分之五十左右。这说明通过在线性网络里面添加非线性的激活函数可以解决更为复杂的分类问题,同时不同的激活函数在应对螺旋分类问题是也体现出不同的效率。