深度学习软件

PyTorch(TODO)

组成(三层)

Tensor

运行在GPU上的命令式数组(Imperative ndarray)

Variable

计算图中的节点,存储数据和梯度

Module

一个神经网络的层

CNN架构

AlexNet:8layers

ZFNet:在AlexNet基础上调整了超参数

VGG:16/19layers(全部采用3X3的卷积核——更有利于加深神经网络的深度)

GoogleNet:

22layers,高效的“Inception”层,无全连接层

Inception层是设计好的一个局部网络拓朴,对输入的层进行并行操作,然后将每个滤波器的输出进行深度上的串联,通过0填充保持输出尺寸一致。

1572427047546

利用1X1卷积核进行深度的压缩对模型进行改进。

1572427217649

ResNet: 152layers

1572428187168

ResNet的整体结构

RNN

1572832029309

Vanilla RNN

Loss是每一个时步下的loss之和

W的梯度是每个节点的W梯度值和

Vanilla RNN梯度流

1572869122126

在计算h0梯度时会发生梯度爆炸或者梯度消失

当梯度爆炸,L2范式大于一个阙值时可以进行剪枝。

1
2
3
grad_norm = np.sum(grad * grad)
if grad_norm > threshold
grad *= (threshold / grad_norm)

当梯度消失时可以采用更深的RNN网络,比如LSTM。

LSTM(长短期记忆网络)

1572870827165

ht为隐藏状态,ct为单元状态,保留在lstm内部不会暴露到外面。

LSTM状态变化图

1572882658486

利用加法和乘法门可以很好的解决梯度消失和梯度爆炸问题。

图像标注