神经网络
1.概念
模拟生物的神经系统,对函数进行估计或者近似
2.神经元
-
神经网络中的基础单元,互相连接,组成神经网络
-
$$
t=f(w^TA+B)
$$ -
一个神经元的功能是求得输入向量和权向量的内积后,经过一个非线性传递函数得到一个标量结果
3.单层神经网络
最简单的神经网络形式
4.感知机
-
两层的一个神经网络
-
把一个N维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入时正类或者是反类
-
把一个二维空间,用直线划分为两个部分,实现二分类;简单的二分类模型,给定阈值,判断数据属于哪一个部分
5.多层神经网络
由单层神经网络进行叠加之后得到的,所以有了 层 的概念,常见的多层神经网络有如下结构:
-
输入层(Input Layer):众多神经元(Neuron)接受大量非线性输入消息。输入的消息称为输入向量
-
输出层(Output Layer):消息在神经元链接中传输、分析、权衡,形成输出结果。输出的消息称为输出向量
-
隐藏层(Hidden Layer):简称隐层。是输入层和输出层之间的众多神经元和链接组成的各个层面。隐层可以有一层或者多层。隐层的节点(神经元)数目不定,但数目越多,神经网络的非线性越显著,从而神经网络的强健性(Robustness)更显著。
Concept:全连接层
当前一层和前一层每一个每一个神经元之间,相互连接,称当前层为全连接层
$$
而全连接层的操作也就是如图:在前一层输出的基础上进行一次 Y=Wx+b 的变化
$$
在不考虑激活函数的情况下就是一次线性变化,也就是平移(+b)和缩放(*W)的组合
6.激活函数
假设有一组数据,三角形和四边形,需要进行一个二分类
通过感知机模型可以划出一条线,把平面分割开,现在无法分割
考虑多层神经网络,在感知机模型中再加一层
但仍是一个线性的函数,只能用一条直线来分割
此时在感知机模型上引入一个非线性的激活函数之后,输出的结果就不是一条直线
如上图,右边是Sigmoid函数,我们对感知机的结果放到Sigmoid函数中进行处理
通过测试与调整,给出合适的参数W和b就能够得到一个合适的曲线去完成最初的非线性分割问题
所以激活函数有一个很重要的作用就是 增强模型的非线性分割能力
常见的激活函数:
激活函数还有的作用:
-
提高模型鲁棒性(Robustness)
-
缓解梯度消失问题
-
加速模型收敛 ————————>加速训练