神经网络

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