一文回顾深度学习发展史上最重要经典模型( 三 )


2014-Adam优化器
Papers
Adam: A Method for Stochastic Optimization [12]
 
Implementations
Implementing Adam in Python(https://d2l.ai/chapter_optimization/adam.html)
 
PyTorch Adam implementation(https://pytorch.org/docs/master/_modules/torch/optim/adam.html)
 
TensorFlow Adam implementation(https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/keras/optimizer_v2/adam.py#L32-L281)

一文回顾深度学习发展史上最重要经典模型

文章插图
 
资料来源:http : //arxiv.org/abs/1910.11758
通过使用优化器使损失函数(例如平均分类误差)最小化来训练神经网络 。优化器负责弄清楚如何调整网络参数以使其了解目标 。大多数优化器
 
基于随机梯度下降法(SGD)的变体 。但是 , 许多这些优化器本身都包含可调参数 , 例如学习率 。为特定问题找到正确的设置 , 不仅可以减少训练时间 , 而且由于可以找到更好的损失函数局部最小值 , 因此也可以得到更好的结果 。
 
大型研究实验室经常运行昂贵的超参数搜索 , 这些搜索带有复杂的学习速率计划 , 以便从简单但对超参数敏感的优化器(例如SGD)中获得最大收益 。当它们超过现有基准时 , 有时是由于花费大量资金来优化优化器的结果 。这样的细节常常在已发表的研究论文中没有提到 。没有相同预算来优化其优化器的研究人员陷入了更糟糕的结果 。
 
Adam优化器建议使用梯度的第一和第二阶来自动调整学习率 。结果证明是非常可靠的 , 并且对超参数选择不太敏感 。换句话说 , Adam经常可以正常工作 , 不需要像其他优化程序一样进行广泛的调整[24] 。尽管调整得非常好的SGD仍然可以获得更好的结果 , 但是Adam使研究更容易进行 , 因为如果某些事情不起作用 , 你就知道这不太可能是调整不当的优化器的错 。
 
2014/2015-生成对抗网络(GAN)
Papers
Generative Adversarial Networks [6]
 
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks [17]
 
Implementations
DCGAN in PyTorch(https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html)
 
DCGAN in TensorFlow(https://www.tensorflow.org/tutorials/generative/dcgan)
一文回顾深度学习发展史上最重要经典模型

文章插图
 
来源:https://developers.google.com/machine-learning/gan/gan_structure
生成模型(例如变体自动编码器)的目标是创建看起来逼真的数据样本 , 例如你可能在某处看到的这些人脸图像 。因为他们必须对整个数据分布进行建模(很多像素!) , 而不仅仅是将猫或狗分类为判别模型 , 所以此类模型通常很难训练 。生成对抗网络(GAN)就是这样一种模型 。
 
GAN的基本思想是串联训练两个网络-生成器和鉴别器 。生成器的目标是生成使鉴别器蒙蔽的样本 , 该样本经过训练可以区分真实图像和生成的图像 。随着时间的流逝 , 鉴别器将在识别假货方面变得更好 , 但生成器也将在欺骗鉴别器方面变得更好 , 从而生成看起来更逼真的样本 。GAN的第一次迭代会产生模糊的低分辨率图像 , 并且训练起来非常不稳定 。但是随着时间的推移 , 变化和改进 , 例如DCGAN [17] , Wasserstein GAN [25] , CycleGAN [26] , StyleGAN(v2)[27] , 以及其他许多人都基于此想法来生成高分辨率的逼真的图像和视频 。
 
2015年-残差网络(ResNet)
Papers
Deep Residual Learning for Image Recognition聽[13]
 
Implementations
ResNet in PyTorch(https://github.com/pytorch/vision/blob/master/torchvision/models/resnet.py)
 
ResNet in Tensorflow(https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/keras/Applications/resnet.py)
一文回顾深度学习发展史上最重要经典模型

文章插图
 
研究人员一直在AlexNet突破的基础上发展了一段时间 , 发明了基于卷积神经网络的性能更好的架构 , 例如VGGNet [28] , Inception [29]等 。ResNet是这一系列快速发展中的下一个迭代 。迄今为止 , ResNet变体通常用作各种任务的基准模型架构 , 也用作更复杂的架构的基础 。


推荐阅读