通俗讲解多层全连接前向网络的基本结构

通俗讲解多层全连接前向网络的基本结构

  • 1 模拟神经元
  • 2 单层神经网络的分类器
  • 3 激活函数
  • 4 神经网络的结构
  • 5 模型的表示能力和容量

1 模拟神经元

  • 神经网络最开始是受到了模拟脑神经元的启发,但是现在已经发展成了机器学习中的一个重要算法。
  • 脑中的一个计算单元是一个简单的脑神经元,在人脑的神经系统中,大约有8.6*10^10个神经元,他们被10^14~10^15个突触相连。
  • 脑神经元与神经网络的相似之处。
    通俗讲解多层全连接前向网络的基本结构_第1张图片
  • 脑神经元收到一个输入的信号,通过不同的突触,信号进入神经元,接着通过神经元内部的激活处理,最后沿着神经元的轴突产生一个输出信号,这个轴突通过下一个神经元的突触相连将输出信号传到下一个神经元。
  • 在神经网络的计算模型中,输入信号就是我们的输入数据,模型的参数就相当于突触,然后输入信号传入神经元,就像是输入的数据和模型参数进行线性组合,然后经过激活函数,最后传出模型。
  • 这里的模型参数通过学习可以控制输入数据传入神经元的强度,激活函数就是神经元内部的激活处理,最后将结果输出变成第二层网络的输入,Sigmoid就是一种激活函数。

2 单层神经网络的分类器

  • 一个简单的一层神经网络的数学形式是特别简单的,可以看成一个线性运算再加上一个激活函数,一个神经元可以对一个输入进行不同的操作,可以是激活变大(喜欢)或者激活变小(讨厌),正是由于激活函数的作用,可以将一层神经网络用作分类器,正样本就让激活函数激活变大,负样本就让激活函数激活变小。

3 激活函数

https://hulin.blog.csdn.net/article/details/107797538

4 神经网络的结构

  • 神经网络是一个由神经元构成的无环图,一些神经元的输出会变成另一些神经元的输入,环是不被允许的,因为这样会造成网络中的无限循环。
  • 神经网络一般是以层来组织的,最常见的神经网络就是全连接神经网络,其中两个相邻层中每一个层的所有神经元和另外一个层的所有神经元相连,每个层内部的神经元不相连。
    通俗讲解多层全连接前向网络的基本结构_第2张图片
    通俗讲解多层全连接前向网络的基本结构_第3张图片
  • 在之前的线性模型和Logistic回归中,使用了nn.Linear(in,out),它就是在PyTorch里用来表示一个全连接神经网络层的函数,比如输入层4个结点,输出层有2个结点,可以用nn.Linear(4, 2)来表示,同时nn.Linear(in, out, bias=False)可以不使用偏置,默认是True。
  • 一般而言,N层神经网络并不包括输入层,因此一层神经网络是指没有隐藏层、只有输入层和输出层的神经网络,Logistic就是一个一层的神经网络。
  • 输出层一般是没有激活函数的,因为输出层通常表示一个类别的得分或者回归的一个实值目标,所以输出层可以是任意的实数。

5 模型的表示能力和容量

  • 前面通过脑神经结构引出了神经网络的层结构,如果从数学的角度解释神经网络,那么神经网络就是由网络中的参数决定的函数簇,所谓函数簇就是一系列函数,这些函数都是由网络的参数决定的。
  • 1989年被证明过,拥有至少一个隐藏层的神经网络,可以逼近任何连续函数。如果一个只有一层隐藏层的神经网络,就能够逼近任何连续函数,为什么还要使用更多层的网络呢?
  • 理论上,增加的网络层可以看成是一系列恒等变换的网络层,也就是说这些网络层对输入不做任何变换,这样这个深层网络结构至少能达到与这个浅层网络相同的效果,同时,在实际使用中,发现更深层的网络具有更好的表现力,同时有着更好的优化结果。
  • 如果增大网络的层数和每层的节点数,相当于在增大网络的容量,容量的增大意味着网络有着更大的潜在表现能力。
  • 如果数据不太复杂,那么容量较小的模型反而有着更好的效果,是不是可以用小的模型去处理呢?答案并非如此,首先通过这样的方式,没有办法衡量到底多小的模型才算是小的模型,其次小的模型在使用如梯度下降法等训练的时候通常更难。
  • 因为神经网络的损失函数一般是非凸的,容量小的网络更容易陷入局部极小点而达不到最优的效果,同时这些局部最小点的方差特别大,也就是每个局部最优点的差异特别大,但是对于容量更大的神经网络,它的局部极小点的方差特别小,也就说训练多次,虽然可能陷入不同的局部极小点,但是他们之间的差异是很小的,这样的训练就不会完全依靠随机初始化。
  • 使用更大的神经网络训练模型,同时运用一些方法来控制网络的过拟合。

你可能感兴趣的:(神经网络,网络,深度学习,人工智能)