【TensorFlow深度学习框架教程四】深层神经网络

深层神经网络(Deep Neural Network)

深度学习(Deep Learning)和深层神经网络(DNN)

现在很火的深度学习的概念,其实在实际中基本上可以认为是深层神经网络的代名词。那么为什么要叫“深层”呢?与上一篇笔记中的神经网络又有什么区别呢?
上一篇笔记中的神经网络,其实使用的是线性模型:y = Σxiwi + b(偏置),任意线性模型组合仍为线性→单层←→多层,线性模型仅可解决线性可分问题,那么如何去线性化(全连接非线性问题),这时候我们就要引入这篇笔记的主角——深层神经网络。
深层神经网络有两个非常重要的特性——①非线性、②多层,下面一一阐述

①非线性
  • 相对于以往的神经网络,由于没有使用激活函数,构造出来的函数往往形如:w1x1+w2x2+…+wnxn + b = 0,很显然这种函数只能模拟线性分割。即只能通过直线来划分,一旦分割面是一个圆形,通过这种方式只能尽可能的得到一个多棱角保卫面,而不能拟合成圆形,存在很大的误差。
  • 细想一下,如果我们换一种权重作用方式,比如将w1x1换为x1^w1 或者 w1*e^x1,很显然这种指数函数作用的结果是一种弯曲状态,就能够拟合上面所说的圆形。但是,目前我们采用的方式是直接在输出层外加上一层激活函数(弯曲函数),就能够实现这种方式(不同的函数作用效果也不一样)。通过激活函数(NN去线性化)有3种:
    • ①tf.nn.relu();
    • ②tf.nn.sigmoid();
    • ③tf.nn.tanh();
②多层
  • 还是相对于之前的神经网络,由于之前的神经网络没有隐藏层,相当于只有一层权重作用在输入变量上面,这样,w1x1+w2x2+…+wnxn + b = 0函数作用下,无论是几维空间,输出的结果总是为一条直线。
  • 考虑下简单地二维空间,比如进行异或运算。这种方式显然不能够通过一条直线就能够分成两类。再到多维,那将更不可能,一条直线只能分两类,多个类就无法实行。
  • 现在我们想想,既然一层能画一条直线,那我多画几条直线,然后将这两条直线组合一下不就可以了吗?确实是这样,比如进行异或运算,加上一个隐藏层,隐藏层节点为4,这输入到这四个节点的都负责自己的一部分划分,分别划分四个点区域,这样,输出处理时将这四个区域进行组合,就是整个完整的区域。
  • 多个隐藏层逐层抽取更高层特征(高层次特征抽取)——解决异或可分,综上,深层神经网络实际上有组合特征提取的特性,这个特性对于解决不易提取特征向量的问题(比如图像识别、语义识别等)有很大帮助。
多层 + 非线性

深度学习应深层数且非线性,可解决:

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值