李宏毅深度学习视频摘要

痴心易碎 提交于 2019-11-29 08:54:41

视频地址

李宏毅深度学习(nlp)2017

视频摘要

P1

讲了RNN,LSTM ,GRU网络构造

P2

讲了卷积的原理,pooling的原理,已经不太常规的poolling方法。另外提到一种特殊的Rnn结构stackRNN

P3

讲了深度学习反向传播的知识,其中提到链式法则,fc网络的bp方法和RNN的bp方法

P4

讲语言模型
n-gram : P(a|b)直接统计语料库的概率
nn-based-LM: P(a|b)由网络计算出来,其原理是matrix-factorization
RNN-based-LM: P(a|b,c)由网络计算出,RNN可以用前一次计算的隐状态,相比传统方法计算P(a|b,c)参数计算量更少。

P5

Spatial Transfromer Layer
主要思路是在图像进入CNN之前,先经过旋转缩放操作,然后在进行识别。主要解决了cnn网络无法识别经过旋转缩放的图像。(感觉好像random corp 也能部分解决)
该转换层仅仅需要6个参数,对图像的左边进行转换:
[xbeforeybefore][w1w2w3w4]+[b1b2]=[xafteryafter]\begin{bmatrix}x_{before}\\ y_{before}\\\end{bmatrix}*\begin{bmatrix}w_1&w_2\\ w_3&w_4\\\end{bmatrix}+\begin{bmatrix}b_1\\ b_2\\\end{bmatrix}=\begin{bmatrix}x_{after}\\ y_{after}\\\end{bmatrix}
训练时通过下图方法将权重和loss联系起来,然后训练权重
在这里插入图片描述

P6

HighWay Network &Gird LSTM
HighWay Network的方式和ResNet的方式有点相似
Resnet的下一层输出可表示为:
Layert+1=Laytert+RELU(W1Laytert)Layer_{t+1}=Layter_t+RELU(W_1*Layter_t)
HighwayNet的下一层的输出可表示为:
H=(W1Laytert) H=(W_1*Layter_t)
Z=signmod(W2Laytert) Z=signmod (W_2*Layter_t)
Layert+1=ZLaytert+(1Z)H Layer_{t+1}=Z\bigodot Layter_t+(1-Z)\bigodot H
Gird LSTM:
在多层LSTM网络中横向(时间方向)都会有hidden做为隐转态传递,作为短时记忆。纵向(深度方向)传递前一层LSTM的输出。
Gird LSTM 在纵向(深度方向)加了一个隐状态。使得多层LSTM见深度方向上也具备短时记忆。

P7

Recuesive Network 递归神经网络
主要思想是重复使用一个网络。
在这里插入图片描述
介绍了两种实现形式:
1.Recuesive Neural Tensor Network
2.Matrix-Vector Recuesive Network
区别是网络内部数据流动方式不一样。

P8

1.RNN生成模型

1.RNN直接生成一些文字内容。写诗机
2.RNN生成图片。(gird lstm的高级用法,考虑临近像素的相关性)
3.看图说话。CNN信息提取Vector,作为RNN的输入(隐状态),RNN输出文字
4.seq2seq。不同的是encoder的输出,多次的传给decoder(防止遗忘),而不是只在开头穿一次
5.多轮对话的RNN。多级RNN,多的那一级RNN用于处理每句话RNN输出vector,然后输出一个vector给Decoder

2.attention

attention 本质上做的事情就是为decoder筛选有用的输入信息.
1.在seq2seq中是在decoder的输入(hidden和input)考虑所有encoder的输出(hiddenoutput),具体方法就是乘某些可训练的权值
2.在看图说话中可以将图片划分成多个图,每个图通过CNN产生一个Vector,然后使用注意力来选择这些vector(加权求和之类的办法)

3.memory network

感觉和attention的有点像,被用来做阅读理解

4.neurl turning machine

在网络之外,维护一组vector(记忆),作为网络的部分输入,网络会输出一些控制,来修改这些记忆。

5.训练的track

attention训练应保持每次关注不同的元素,加一些正则化方法
seq2seq的训练,decoder输入可以 以一定概率选择前一次decoder的输出或者正确的标签。(scheduled samaling)
Beam Search:decoder的输出保留K个最可能的输出,下一时间输出K个,在k*N(词的个数)个输出中保留K个输出,最终选择一条最好的seq
在这里插入图片描述
整体最好与局部最好:局部最好的方法就是每个decoder的输出求交叉熵之和,整体最好就是所有decoder输出的整体与target seq的差异最小,后者使用了reinforcement learning

P9 (特别注意)

1.Point Network

seq2seq模型的attention变种,decoder 产生的序列是 encoder输入序列的子集。decoder的attention的权重直接argmax挑选出输入。

2.Point Network的拓展应用

Point Network 的输出,结合seq2seq的输出做文本摘要。
在这里插入图片描述

P10

Batch Normalization 在网络的隐含层中按批次做Normalization。具体方法:在这里插入图片描述
通常在激活层之前加BN。
由于σ\sigmaμ\mu需要一个batch。在predict时没有batch,只有单个样本。一种方法是记录训练时每轮的σ\sigmaμ\mu按照一定的权重加权平均。
Batch Normalization 的优点:
1.加快训练,可以使用较大的learnrate。(解决了 Internal Covariate Shift)
2.一定程度上缓解了梯度消失和爆照,特别是针对激活函数为signmod和tanh。(BN后输入的值落在0附近,梯度适中)
3.减少了训练结果和权重初始化的相关性。(w同乘k,BN后相当于没有乘)
4.一定程度上相当于进行的正则化,减少overfitting。(噪声被BN了)

P11

relu激活函数家族(大多数只是是<0的部分设置成一个负数)
其中一个特别的激活函数selu,在输入进行standardscale后(均值0,方差1),权重高斯分布初始化时。训练往往取得较好效果。
在这里插入图片描述

P12

capsule (胶囊网络)

单个神经元输入输出的不再是一个scalar(标量)而是一个vector(向量)。细胞内部部分权值更新部分依赖BP,部分靠迭代(像RNN)。
传统cnn可以检测到有没有某个pattern,而capsule自带了pattern之间的联系。
例如,是否有人脸:CNN,有鼻子眼睛就可以,capsule有鼻子眼睛还要位置合理才行
主要针对传统wangluo
如何构建capsule网络参考:
https://blog.csdn.net/u013010889/article/details/78722140/

P13

超参选择:

  1. 网格搜索
  2. 随机搜索(效率高于网格搜索,如果只是要求选到比较好的超参,而不是最优超参)
  3. 用一个模型去学习超参和ACC之间的关系。(逻辑回归,RNN学习CNN的层数和卷积核大小和步长【RL】。RNN学习激活函数组合,还有learn_rate)

P14

  1. local minima 和 saddle point (优化时的问题)
  2. 网络巨大可以硬背输入数据。(但是网络并没有硬背,现阶段不知道为啥。)实验方法挺奇妙的。
  3. 用一个网络去学习另一个网络的输出(softmax),而非直接学习标签,效果比直接学好。(可以用于网络压缩,用小网络学大网络)

P15

1.auto encoder
2.Auto encoding variational bayes (VAE)
3.GAN 的数学原理推导
4.实际使用时的方法化简后的数学方法
83min

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!