算法工程师修仙之路:TensorFlow(九)

深层神经网络

深度学习与深层神经网络


线性模型的局限性

  • 深度学习的精确定义为:一类通过多层非线性变换对高复杂性数据建模算法的合集。

  • 因为深层神经网络是实现多层非线性变换最常用的一种方法,所以在实际中基本上可以认为深度学习就是深层神经网络的代名词。

  • 深度学习有两个非常重要的特性:多层和非线性。

  • 在线性模型中,模型的输出为输入的加权和。

    • 假设一个模型的输出y和输入 x i x_i 满足 y = i w i x i + b y=\sum_i{w_ix_i+b} 那么这个模型就是一个线性模型,其中 w i , b w_i,b 为模型的参数。
    • 被称之为线性模型是因为当模型的输入只有一个的时候,x 和 y 形成了二维坐标系上的一条直线。类似地,当模型有 n 个输入时,x 和 y 形成了 n+1 维空间中的一个平面。
    • 一个线性模型中通过输入得到输出的函数被称之为一个线性变换。
    • 线性模型的最大特点是任意线性模型的组合仍然还是线性模型。
  • 只通过线性变换,任意层的全连接神经网络和单层神经网络模型的表达能力没有任何区别,而且它们都是线性模型。然而线性模型能够解决的问题是有限的,这就是线性模型最大的局限性,也是为什么深度学习要强调非线性。

  • 通过 TensorFlow 游乐场给出一个具体的例子来验证线性模型的局限性。

    • 以判断零件是否合格为例,输入为 x 1 x_1 x 2 x_2 ,其中 x 1 x_1 代表一个零件质量和平均质量的差 , x 2 x_2 代表一个零件长度和平均长度的差。
    • 假设一个零件的质量及长度离平均质量及长度越近,那么这个零件越有可能合格。
    • 零件合格问题数据分布示意图:
      在这里插入图片描述
      • 蓝色的点代表合格的零件 ,而黄色的点代表不合格的零件。
      • 可以看到大部分代表合格零件的点都在原点 ( 0 , 0 ) (0,0) 的附近,而代表不合格零件的点都在离原点相对远的地方。
      • 这样的分布比较接近真实问题,因为大部分真实的问题都存在大致的趋势,但是很难甚至无法完全正确地区分不同的类别。
    • 使用线性模型解决线性不可分问题的效果:
      在这里插入图片描述
      • 使用的模型有一个隐藏层,并且在顶部激活函数(Activation)那一栏中选择了线性(Linear)。
      • 通过 TensorFlow 游乐场对这个模型训练 100 轮之后,在最右边那一栏可以看到训练的结果。
      • 可以看出,这个模型并不能很好地区分蓝色的点和黄色的点。
      • 虽然整个平面的颜色都比较浅, 但是中间还是隐约有一条分界线,这说明这个模型只能通过直线来划分平面。
      • 如果一个问题可以通过一条直线来划分,那么线性模型就可以用来解决这个问题。
  • 因为线性模型就能解决线性可分问题,所以在深度学习的定义中特意强调它的目的为解决更加复杂的问题。所谓复杂问题,至少是无法通过直线(或者高维空间的平面)划分的。在现实世界中,绝大部分的问题都是无法线性分割的。

猜你喜欢

转载自blog.csdn.net/faker1895/article/details/86470170