【Deep Learning Based On PyTorch】神经网络介绍
神经网络
- 概念
人工神经网络(简称神经网络),是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计或近似。
和其它的机器学习方法一样,神经网络已经被用于解决各种各样的问题。 - 神经元
在生物神经网络中,每个神经元与其他神经元相连,当它兴奋时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某个神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。
一个简单的神经元如下图所示:
其中:
- a1,a2,...,an为各个输入的分量
- w1,w2,...,wn为各个输入分量对应的权重参数
- b为偏置
- f为激活函数,常见的激活函数有tanh,sigmolid,relu
- t为神经元的输出
使用数学公式表达为:
可见,一个神经元的功能是求得输入向量与权向量的内积后,经过一个非线性传递函数得到一个标量结果
- 单层神经网络
单层神经网络是最基本的神经网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量,由于每一个神经元都会产生一个标量结果,所有单层神经元的输出是一个向量,向量的维数等于神经元的数目。
示例如下:
- 感知机
感知机由两层神经网络组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元
其中w0,w1,...,wn都表示
感知机的作用:把一个n维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入是正类还是反类,对应到二维空间就是一条直线把一个平面分为两个部分。 - 多层神经网络
多层神经网络就是由单层神经网络进行叠加之后得到的,所以就形成了层的概念,常见的多层神经网络有如下结构:
- 输入层(Input layer),众多神经元 (Neuron)接受大量非线形输入信息。输入的信息称为输入向量。
- 输出层(Output layer) ,消息在神经元链接中传输、分析、权衡,形成输出结果。输出的消息称为输出向量。
- 隐藏层(Hidden layer) ,简称“隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有一层或多层。隐层的节点(神经元)数目不定,但数目越多神经网络的非线性越显著,从而神经网络的鲁棒性(robustness)更显著。
示意图如下:
概念:全连接层。当一层和前一层每个神经元互相链接,我们称当前这一层为全连接层。
- 激活函数
激活函数的作用:
- 增加模型的非线性分割能力。
- 提高模型鲁棒性
- 缓解梯度消失问题
- 加速模型收敛
常见的激活函数有: