Python深度学习(第二部分-1)

2020-12-29  本文已影响0人  沉寂之舟

传送门:
Python深度学习(第一部分)
Python深度学习(第二部分 -1)
Python深度学习(第二部分 -2)


前面几章讲的是"道",这两章就十分接地气地讲"术"

第五章 深度学习用于计算机视觉

  1. 卷积神经网络简介

卷积层-Conv2D层,参数为深度(过滤器),大小,激活函数,输入形状.
可以"学习"的特征有:平移不变性,空间层次结构,机器视觉就是利用了卷积网络的这两个特性进行的.
卷积核(convolution kernel): 对小区域进行全连接的权重矩阵.
本质是通过运算,对图像的小区域进行数值变化.
边界效应,步幅,定义卷积层的参数.

池化层-Pool层: 对特征图进行采样. 一是减少需要处理的特征图的元素个数,二是通过让连续
卷积层的观察窗口越来越大,从而突出特征. 既然要"突出",那么最大池就自然成了最好用的.

注意: Dense 层是从输入特征空间学到全局模式,而卷积层则是通过小窗口的局部模式.

  1. 从头开始训练一个卷积神经网络

model.add(layers.Dropout(0.5))

也就三十行代码,就有了识别度82%的东西了,深度学习果然厉害.

  1. 使用预训练的卷积神经网络(VGG16 架构)

使用方法:


5-4.png
  1. 卷积神经网络的可视化

第六章 深度学习用于文本和序列

  1. 处理文本数据

首先需要进行文本向量化: 按照单词划分,按照字母划分,按照N-gram(单词组)划分.
one-hot编码: 简单地序列化
word embedding: 词嵌入(篇幅占比大),通过学习获得一些单词间关系,压缩词向量(信息密度大).获取方法:主任务同时学习,使用预训练词嵌入-wordvec,GloVe,预训练可以大大减少样本量.

  1. 理解循环神经网络

RNN表示数据点并非完全孤立,而是存在先后次序(如气温序列),需要通过"循环连接"保存状态.
Keras有SimpleRNN,LSTM,GRU多个循环层.而SimpleRNN因存在梯度消失问题,时间并不常用.LSTM引入携带(carry),运行过去的信息稍后重新进入循环.

6-1.png
  1. 循环神经网络高级用法

数据准备需要把多个维度的数据进行预处理:可以先求出平均值,再计算每个值得标准差-变换到[0-1]区间.
基准方法MAE: 通过常识获得,如气温为2天的温差
密集连接-误差大于MAE,循环网络基准(MAE),加入循环dropout降低过拟合,通过循环层堆叠改进验证损失,通过双向RNN多维度检测序列(针对气温并不有效)

6-2.png

也就是说,深度学习的好处就是可以通过各种策略,逐步地优化训练结构,使得精度一步步提升.

  1. 用卷积网络处理序列

RNN由于需要上一数据计算的结果作为下一数据的输入,显然并发性较低,计算代价也比较大.可以用卷积神经网络完成类似工作(Conv1D).

对于长序列,还可以通过结合CNN与RNN的方法-取长补短.

6-3.png
上一篇 下一篇

猜你喜欢

热点阅读