视频介绍:对于各网络的基本框架讲的比较有意思,123678比较详细一些
1、2、DL基本框架,全连接网络和神经网络的基本介绍
3、计算图和反向传播
4、语言模型的练习
5、空间
6、highway network & grid LSTM
7、recursive structure
8、GAN
视频百度云链接:https://pan.baidu.com/s/1pY-F_O1ZAaGhpNLx28hRow 密码:79vx
详细手写笔记链接(随便写写,挺乱的):https://pan.baidu.com/s/1nXW8Pne1-p5xYzdK-bjGIg 密码:hjdi
1、basic structures for DL设计神经网络→损失函数→优化
A.fully connected layer(全连接网络)
B.recurrent structure neural network:(循环神经网络:处理输入长度不易,相同函数的sequence)
变体:Deep RNN、 Bidirection RNN、 LSTM(一个参数变化快,一个变化慢)(input-gate\forget-gate\output-gate)、 GRU(保持了LSTM的效果、又使结构更加简单)(reset-gate\update-gate) Stack RNN
C.convolutional/poolig layer:
卷积:连接稀疏,比全连接参数少,好训练
池化:多种池化方法
2、Gradient:
A.BP
B.Computational Graph
3、eg:Language model based on RNN
4、Spatial Transformer Layer:
问题:CNN对于尺度和旋转不具有不变性(有一定的旋转不变性,通过数据增强)
参数变化很小时,梯度下降得到的是0,实际用差值,+GD更新
5、Highway network:相当于把RNN拉直,用一种可学习的门限机制,用SGD解决深层神经网络训练困难的问题
grid LSTM:在两个方向上LSTM
6、Recurive Structursie:
RNN是Recurive Structursie的特例
7、Conditional Generation by RNN & Attention
有条件场景、有记忆、生成 encoder & decoder
memory network(记忆)\ neural turing network(记忆,并可以在生成的过程中清空与更新记忆)
tips:
A.尽量使每一个参数都是好的,regularization term,使每一个phase在生成过程中,attention的累加接近一个值
B.训练&测试:
question:
如果把标签作为下一步的输入,则在测试过程中会有很多mismatch
如果把训练结果作为下一步的输入,则训练的模型不会很好
solution:
1、scheduled sampling:在标签和训练结果中选取一个
2、beam search:每一步中只保留beam search个可能性最大的路径
C.关于cross entropy
reinforcement learning :生成的时候,只有在最后生成出结果的一步给一个reward,其余为0.则训练的优化目标可以是reward最大来微调
8、GAN(generative adversarial network)
auto-encoder的思想:input → NN encoder → code → NN decoder → output
GAN 思想:
discriminator的训练思想:【给定输入x和discriminator可以输出一个标量,得到Pdata(x)】
随机选取一个向量 → NN Generator → 生成图像(标记为0),真实图像(标记为1)→ discriminator → 1/0(能够区分真假image)
generator的训练思想:【给定Pprior(z),给定输入和generator可以输出x,得到PG(x)】
固定discriminator的参数,训练generator,新生成的比较真实图像为real image
generator & discriminator 联合训练迭代
V(G,D)=E(X~Pdata)[logD(x)]+E(X~PG)[log(1-D(x))]
,使G*=argmin maxV(G,D)
G D
方法:先给定一个G,学习D。重复多次找到maxV(G,D)
maxV(G,D)评估的是G和data的概率之间的差异,最后从不同的G中选出一个使得生成的概率和期望的最接近
然后学习并找到最合适的G
但实际中,1、概率只能抽样求和,无法精确得到
2、修改V(G,D)=E(X~Pdata)[logD(x)]+E(X~PG)[log(1-D(x))]为V(G,D)=E(X~Pdata)[logD(x)]+E(X~PG)[-logD(x)]
因为:这样可以使训练在一开始加快,接近结果时变慢
3、实际中因为是采样得到的输入,而且PG和Pdata很低维,没有重叠。所以maxV(G,D)很多0
解决:在discriminator加噪声,随训练噪声减少
4、mode collapse:很多重复或者模糊缺失
因为在PG和Pdata有一个为0时,模型学习过程中趋于保守,不会冒险生成很多新的值。应该PG和Pdata分布比较均匀