这篇文章的目的是回顾经过时间考验的,被广泛采用的想法。我将介绍一小部分技术,这些技术涵盖了解现代深度学习研究所必需的许多基本知识。如果你是该领域的新手,那么这是一个很好的起点。
深度学习是一个瞬息万变的领域,大量的研究论文和想法可能会令人不知所措。即使是经验丰富的研究人员,也很难告诉公司PR什么是真正的突破。这篇文章的目的是回顾经受住时间考验的想法,这也许是人们应该依靠的唯一参考标准。这些想法或对它们的改进已被反复使用。他们已经“家喻户晓”。
如果你今天要开始学习深度学习,那么理解和实现这些技术中的每一个都将为你了解最新研究和开展自己的项目奠定良好的基础。这就是我认为最好的入门方法。以历史顺序浏览论文也是了解当前技术的来历以及为什么会发明它们。换句话说,我会尽量呈现最小集的想法,最必要的基本知识,了解现代的深度学习研究核心发展历程。
关于深度学习的一个相当独特的事情是它的应用领域(视觉,自然语言,语音,RL等)共享大多数技术。例如,某人曾在计算机视觉深度学习领域工作过,整个职业很快就能在NLP研究中取得成果。特定的网络体系结构可能有所不同,但是概念,方法和代码基本相同。我将尝试介绍来自各个领域的想法,但此列表有一些警告:
1. 我的目标不是为这些技术提供深入的解释或代码示例。将长篇复杂的论文总结成一个段落是不容易的。相反,我将简要概述每种技术,其历史背景以及与论文和实现的链接。如果你想学习一些东西,我强烈建议你尝试在不使用现有代码库或高级库的情况下,从头开始在原始PyTorch中重现其中的某些纸本结果。
2. 该列表偏向于我自己的知识和我熟悉的领域。我没有很多激动人心的子领域。我会坚持大多数人认为的主流领域,包括视觉,自然语言,语音和强化学习/游戏。
3. 我将只讨论具有已知能很好运行的官方或半官方开源实现的研究。有些研究不容易重现,因为它涉及巨大的工程挑战,例如DeepMind的AlphaGo或OpenAI的Dota 2 AI,因此在这里我不会重点介绍。
4. 有些选择是任意的。通常,大约在同一时间发布相当相似的技术。这篇文章的目的不是要进行全面的回顾,而是要使刚接触该领域的新人了解涵盖很多领域的各种观点。例如,可能有数百种GAN变体,但是要了解GAN的一般概念,你学习哪一个都没关系。
2012年-使用AlexNet和Dropout解决ImageNet
Papers
ImageNet Classification with Deep Convolutional Neural Networks (2012)[1]
Improving neural networks by preventing co-adaptation of feature detectors (2012) [2]
One weird trick for parallelizing convolutional neural networks (2014) [14]
Implementations
AlexNet in PyTorch(https://pytorch.org/hub/pytorch_vision_alexnet)
AlexNet in TensorFlow(https://github.com/tensorflow/models/blob/master/research/slim/nets/alexnet.py)