这仅仅是一篇目录,从事深度学习相关工作以来,这目录里面的知识未必都要掌握,可能你只需要知道历史上曾经有过这么一些东西就行,因为其中有些太过于基础了。就像你读高中的时候再也用不到幼儿园学习1+1=2一样,在工作中你也用不到感知机这种东西。
1.1 名词解释
涉及的名词太多,作为目录篇不宜占用过多的篇幅,如有需要请跳转深度学习名词解释,若失效点击这里
1.2 思维导图
1.3 别人吐血整理的机器学习手册,相当好,可以仔细看看
使用深度学习技术的前提条件
1、深度学习不适用于小数据集
为了获得高性能,深度网络需要非常大的数据集。标注的数据越多,模型的性能就越好。由此催生了人工智能标注师这样的岗位,现在已有大量的企业在招聘相关人员,但是人会疲惫感、有情绪,也就导致了标注的质量,尤其是老东家做NLP相关工作时,最差的时候,标注团队连50%的正确率都没有。所以在深度学习时代,有质量数据无疑是最有价值的资源。
基于个人的理解最新的研究,在数据挖掘领域,实现高性能的网络通常需要经过数十万甚至数百万样本的训练。对于许多应用来说,这样大的数据集并不容易获得,并且获取成本高且耗时。对于较小的数据集,传统的ML算法(如回归、随机森林和支持向量机)通常优于深度网络。
2、深度学习运用于实践是困难且昂贵的
深度学习仍然是一项非常尖端的技术。您可以像许多人一样获得快速简便的解决方案,特别是使用广泛使用的API,例如Clarifai和Google的AutoML。但如果你想做一些定制化的事情,这样的一些服务是不够的。除非你愿意把钱花在研究上,否则你就会局限于做一些和其他人稍微相似的事情。
这也是很昂贵,不仅是因为需要获取数据和计算能力所需的资源,还因为需要雇佣研究人员。深度学习研究现在非常热门,所以这三项费用都非常昂贵。当你做一些定制化的事情时,你会花费大量的时间去尝试和打破常规。除了BAT这样的大厂会将算法人员拆分(理论研究如阿里达摩院+基于业务算法使用人员)以外,成都的量化交易的小企业也有这么做拆分的。
3、深层网络不易解释
深层网络就像是一个“黑盒子”,即使到现在,研究人员也不能完全理解深层网络的“内部”。深层网络具有很高的预测能力,但可解释性较低。由于缺乏理论基础,超参数和网络设计也是一个很大的挑战。
虽然最近有许多工具,如显著性映射(saliencymaps)和激活差异(activation differences),它们在某些领域非常有效,但它们并不能完全适用于所有应用程序。这些工具的设计主要用于确保您的网络不会过度拟合数据,或者将重点放在虚假的特定特性上。仍然很难将每个特征的重要性解释为深层网络的整体决策。
另一方面,经典的ML算法,如回归或随机森林,由于涉及到直接的特征工程,就很容易解释和理解。此外,调优超参数和修改模型设计的过程也更加简单,因为我们对数据和底层算法有了更深入的了解。当必须将网络的结果翻译并交付给公众或非技术受众时,这些内容尤其重要。我们不能仅仅说“我们卖了那只股票”或“我们在那个病人身上用了这药”是因为我们的深层网络是这么说的,我们需要知道为什么。不幸的是,到目前为止,我们所掌握的关于深度学习的所有证据或者解释都是经验主义的。
深度学习模型的几大方向
判别式模型
Fukushima在1979年左右提出Neocognitron,感觉这是卷积和池化的雏形。Hinton在1986年提出反向传播的思想和多层感知机(BPNN/MLP),有非常大的意义,对未来几十年(可以说直到现在)影响深远。 接下来比较重要的发展是,LeCun在1998年提出LeNet-5,7层的CNN做数字识别。
然后AlexNet在12年在ImageNet夺冠,主要是CNN+Dropout+Relu,又是Hinton极大的带动了DL的发展,大佬的地位毋庸置疑。另外相似的还有15年的GoogLeNet。
总算有华人大佬作出大贡献了,16年何恺明(CV领域应该无人不知)提出Resnet,还拿了best paper,影响较大,当然效果也很好。另外相似的还有17年的DenseNet。
17年Capsule Network登场了,又是Hinton。我比较看好胶囊网络在NLP领域的发展,虽然现在还没太明显的效果。因为用胶囊网络来做文本的特征表示的话,可以极大的丰富特征,更适合处理文本这种比较灵活的数据。
2012年多伦多大学的Krizhevsky等人构造了一个超大型卷积神经网络,有9层,共65万个神经元,6千万个参数。网络的输入是图片,输出是1000个类,比如小虫、美洲豹、救生船等等。
第一层神经元主要负责识别颜色和简单纹理
第二层的一些神经元可以识别更加细化的纹理,比如布纹、刻度、叶纹。
第三层的一些神经元负责感受黑夜里的黄色烛光、鸡蛋黄、高光。
第四层的一些神经元负责识别萌狗的脸、七星瓢虫和一堆圆形物体的存在。
第五层的一些神经元可以识别出花、圆形屋顶、键盘、鸟、黑眼圈动物。
生成模型
上世纪80年代提出RBM,06年叠加成Deep Belief Network(DBN),这算是重新叠加网络的一个比较重要的开始吧。上世纪80年代Hinton提出Auto-Encode,过了较长时间Bengio在08年提出Denoise Auto-Encode。Welling在13年提出Variational Auto-Encode。
接下来,在14年Goodfellow和Bengio等提出GAN,从此生成网络不仅是AE以及其变种(Denoise Auto-Encode、Variational Auto-Encode等)了,可以这么说:GAN的出现极大的提高了生成模型的地位和热点,GAN也是席卷NLP、CV、AI等领域的各大顶会,甚至是一些best paper。另外,陆续出现很多很多GAN的变种,比如DCGAN、CGAN、PGGAN、LAPGAN、InfoGAN、WGAN、F-GAN、SeqGAN、LeakGAN等。
序列学习
1982年提出hopfield network,1997年 Schmidhuber提出LSTM。Hinton组在13年把RNN用在语音识别上取得巨大突破,RNN立马爆火。03年提出LM(语言模型),13年提出w2v,佩服Bengio,这也是我为啥千里迢迢跑去找Benign合影的原因之一。w2v带来的影响不言而喻,目前NLP领域基本上所有Paper都会用到词向量,包括也影响了后面出现的Glove、FastText、ELMo(18年2月)、Transformer(18年6月)、Bert(18年10月提出,Jacob一战封神,我感觉至少是18年NLP领域最大的发展,甚至可以说是近几年最大的发展)等。Bert的出现,很可能改变所有主流NLP任务的打法和Baseline。
还有一个分支,14年出现Seq2Seq,这个重要性也无需赘述了,NLP领域的都知道。然后15年出现Charater CNN,17年出现self-attention,18年底出现的bert模型。
深度强化学习
提到强化学习就不得不提这Deep Mind、AlphaGo以及其变种、Silver。13年提出Deep Q-learning,15年提出Double DQN,16年提出Dueling Net。 15年的DDPG和16年的A3C都是NN+Policy Gradient,也应用在不少领域。16年的AlphaGo(除了AI领域,很多不懂AI的人都知道,甚至可以说是AI爆火的最大助力),17年出现更疯狂的Alpha Zero。