社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习笔记 | 20讲内容与资料总结

狗熊会 • 6 年前 • 1076 次点击  




大家好!好久不见了,不知不觉咱们这个深度学习系列的推文已经断断续续推出整整20期了,作为科普和推广性质的目的,想来也应该能达到的。本期的目的就是对整个系列的内容做一次简单的回顾和总结,对涉及的教材、书籍和代码进行整理,以方便大家根据不同的路线和方向继续深入的走下去。


1

系列回顾

先列一下20讲的目录:

  • 第1讲:深度学习简介和感知机原理与实现

  • 第2讲:神经网络的过拟合与正则化

  • 第3讲:深度学习优化算法之从SGD到Adam

  • 第4讲:写一篇人人都能看得懂得卷积神经网络

  • 第5讲:CNN的图像学习过程与简单示例

  • 第6讲:CNN图像分类发家史之从LeNet5到ResNet

  • 第7讲:CNN目标检测发家史之从R-CNN到yolo

  • 第8讲:CNN图像分割发家史之从FCN到u-net

  • 第9讲:迁移学习-理论与实践

  • 第10讲:序列模型:RNN循环神经网络

  • 第11讲:写一篇人人都能看得懂得LSTM

  • 第12讲:自然语言处理与词向量

  • 第13讲:word2vec词向量

  • 第14讲:词向量的训练与应用

  • 第15讲:seq2seq与注意力机制模型

  • 第16讲:语音识别——一份简短的技术综述

  • 第17讲:深度生成模型之自编码器(AutoEncoder)

  • 第18讲:深度生成模型之生成式对抗网络(GAN)

  • 第19讲:神经风格迁移、强化学习与胶囊网络

  • 第20讲:再谈三大深度学习框架TensorFlow、Keras和PyTorch

在前面三讲中,我们讲述了感知机和神经网络的基本原理,对反向传播算法进行了详细的推导,并对神经网络的正则化方法进行了介绍,重点学习了dropout这种随机失活的防止神经网络过拟合的技术。此外,我们也研究了神经网络训练的优化方法,对整个梯度下降方法论进行了系统的总结。前三讲的内容作为整个神经网络和深度学习的基础知识,可以说对全系列有着奠基性的作用。

基于前三讲的参考论文和延伸阅读资料包括:

[1] deeplearning.ai course1 neural networks and deep learnng

[2] Kukačka J, Golkov V, Cremers D. Regularization for Deep Learning: A Taxonomy[J]. 2017.

[3] Neyshabur B. Implicit Regularization in Deep Learning[J]. 2017.

[4] 李航 统计学习方法

[5] 周志华 机器学习

[6] On Loss Functions for Deep Neural Networks in Classification

Kingma D, Ba J. Adam: A Method for Stochastic Optimization[J]. Computer Science, 2014.

第四和第五讲我们则是重点讲解了卷积神经网络的原理和相关概念,对卷积的机制、池化以及全连接进行了详细的解读,我们也向大家展示了如何通过卷积网络一步步学习到图像的各级别特征的。CNN在整个深度学习中有着举足轻重的地位,大家在学习过程中也务必要对卷积原理和其中的各个细节了如指掌,这样在学习后续基于深度学习的计算机视觉相关内容时才能游刃有余。

第四、第五讲的参考资料包括:

[1] http://www.tensorfly.cn/tfdoc/tutorials/mnist_pros.html

[2] deeplearning.ai course4 convolutional neural networks 

第六、第七和第八三讲中我们重点对深度学习计算机视觉的三大任务:图像分类、目标检测和图像分割进行了专题的概述。在图像分类任务中,我们对经典的CNN网络,从早期的LeNet-5、AlexNet到后来的ResNet,都进行了相对详细的介绍。在目标检测领域,我们分别对两阶段的R-CNN系列和一步走的yolo系列目标检测框架进行了整理和归纳,整个知识体系和脉络都非常清晰。在图像分割方面,对编码-解码框架下的FCN和U-Net都进行了详细的介绍。可以说,深度学习在计算机视觉领域完全占据了主流。

这三讲的参考资料如下:

[1] https://www.deeplearning.ai/

[2] Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

[3] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.

[4] Zeiler M D, Fergus R. Visualizing and Understanding Convolutional Networks[J]. 2013, 8689:818-833.

[5] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.

[6] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2015:1-9.

He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[J]. 2015:770-778.

[7] deeplearning.ai course4 convolutional neural networks 

[8]Rich feature hierarchies for accurate object detection and semantic segmentation

[9] Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

Fast R-CNN

[10] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

[11] Mask R-CNN

[12] You Only Look Once: Unified, Real-Time Object Detection

[13] SSD: Single Shot MultiBox Detector

[14] YOLO9000: Better, Faster, Stronger

[15] YOLOv3: An Incremental Improvement

[16] Deep Learning for Generic Object Detection: A Survey

[17] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 39(4):640-651.

[18]Ronneberger O, Fischer P, Brox T. U-Net: Convolutional Networks for Biomedical Image Segmentation[C]// International Conference on Medical Image Computing and Computer-Assisted Intervention. Springer, Cham, 2015:234-241.

[19] Milletari F, Navab N, Ahmadi S A. V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation[C]// International Conference on 3d Vision. IEEE, 2016:565-571.

[20] Jegou S, Drozdzal M, Vazquez D, et al. The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation[J]. 2016:1175-1183.

[21] He K, Gkioxari G, Dollar P, et al. Mask R-CNN[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, PP(99):1-1.

[22] https://www.jeremyjordan.me/semantic-segmentation

[23] https://github.com/matterport/Mask_RCNN

[24] cs231n

第九讲中,我们将目光投向了迁移学习领域,我们解释了迁移学习的基本原理以及为什么要用迁移学习,对迁移学习的基本套路也有所了解。作为深度学习未来的一个重要发展方向,迁移学习值得我们深入关注。

第九讲的参考资料如下:

[1] https://cosx.org/2017/10/transfer-learning/

[2] 王晋东 迁移学习简明手册

在第十、十一和十五讲中,我们开始学习了另一种神经网络——循环神经网络RNN。我们对RNN的基本原理、主要的RNN模型——GRU和LSTM进行了详细的介绍,根据输入输出长度对RNN的四种类型进行了区分,并且在第15讲中,我们着重向大家介绍了著名的seq2seq框架,对注意力机制原理进行了解读,并借以机器翻译的例子进行举例。

第十、十一和十五讲的参考资料如下:

[1] deeplearningai.com

[2] Sequence to Sequence Learning with Neural Networks 

[3] Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

[4] https://github.com/luwill/Attention_Network_With_Keras

然后在第十二、十三和十四讲中,我们和大家介绍了深度学习和神经网络在自然语言处理处理领域的一些应用。我们学会了使用词向量进行词汇表征的基本方法,对基于神经网络训练的word2vec词向量的两种类型进行了研究,以及如何训练一个skip-gram词向量进行了示范,并且对词向量的在计算文本相似度、语义类比等方面的应用进行了举例。

这三讲的参考文献如下:

[1] deeplearningai.com

[2] http://cs224d.stanford.edu/

[3] https://zhuanlan.zhihu.com/p/26306795

[4] word2vec Parameter Learning Explained

[5] Efficient Estimation of Word Representations in Vector Space

[6] https://www.cnblogs.com/peghoty/p/3857839.html

[7] https://cs224d.stanford.edu/lecture_notes/notes1.pdf

[8] 黄文坚  TensorFlow实战

[9] https://nlp.stanford.edu/pubs/glove.pdf

在第16讲中,我们单独对语音识别进行了一个不是特别详细的技术综述,对基于HMM-GMM的传统语音识别技术和基于深度学习的语音识别技术进行了概览,了解了其技术全貌。更多的细分领域和方向可参考如下材料:

[1] Supervised Sequence Labelling with Recurrent

[2] https://www.zhihu.com/question/20398418/answer/18080841

[3] 俞栋 邓力 解析深度学习 语音识别实践

[4] http://www.eeboard.com/news/yuyinshibie/

[5]https://ai.googleblog.com/2017/12/improving-end-to-end-models-for-speech.html

在第十七和十八讲中,我们向大家介绍了深度学习中生成模型的两座大山:自编码器(AE)和生成式对抗网络(GAN)。对二者的基本演化和原理进行了详细的讲解,并给出了DCGAN的训练实例。这两讲的参考资料如下:

[1] https://blog.keras.io/building-autoencoders-in-keras.html

[2] 深度学习  Ian GoodFellow

[3] https://zhuanlan.zhihu.com/p/34238979

[4] Auto-Encoding Variational Bayes

[5] https://kexue.fm/

[6] paperweekly 苏剑林 变分自编码器VAE:原来是这么一回事

[7] Tutorial on Variational Autoencoders

[8] Generative Adversarial Nets

[9] Deep Learning with Python

[10] UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS

[11] thttp://www.twistedwg.com/2018/01/31/Various-GAN.html

在第十九讲中,我们对深度学习中的其他领域进行了一些拓展性的介绍,包括图像的神经风格迁移、强化学习以及著名的胶囊网络,希望这些能给大家在深度学习方面一些不一样的启发。参考资料如下:

[1] 深度卷积网络 原理与实践 彭博

[2] A Neural Algorithm of Artistic Style

[3] Neural Style Transfer: A Review

[4] https://github.com/ycjing/Neural-Style-Transfer-Papers

[5] https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning

[6] https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow

[7] DEEP REINFORCEMENT LEARNING

[8] https://zhuanlan.zhihu.com/p/21421729

[9] Dynamic Routing Between Capsules

[10] https://github.com/naturomics/CapsNet-Tensorflow

[11] https://jhui.github.io/2017/11/03/Dynamic-Routing-Between-Capsules/

[12] https://zhuanlan.zhihu.com/p/33556066

[13] http://www.sohu.com/a/206548662_473283


第二十讲是系列的最后一讲,在主体知识介绍完了之后,我们最后回过头来对深度学习主要的三大计算框架TensorFlow、Keras和PyTorch进行了总结和对比,三大框架各有特点,但最好是都能掌握。参考资料如下:

[1] https://www.jiqizhixin.com/articles/deep-learning-framework-scores-2018

[2] https://keras-cn.readthedocs.io/en/latest/

[3]https://medium.com/neuromation-io-blog/neuronuggets-an-overview-of-deep-learning-frameworks-8e5c164ce012

系列总结到这里就结束了,那么咱们整个深度学习的系列推文也就全部完结了。小编感谢各位读者一路以来的支持,希望大家在深度学习的学习和实践道路上都能有所收获!

作者简介


鲁伟,狗熊会人才计划一期学员。目前在杭州某软件公司从事数据分析和深度学习相关的研究工作,研究方向为贝叶斯统计、计算机视觉和迁移学习。

识别二维码,查看作者更多精彩文章





识别下方二维码成为狗熊会会员!

友情提示:

个人会员不提供数据、代码

视频only!

个人会员网址:http://teach.xiong99.com.cn

点击“阅读原文”,成为狗熊会会员!
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32473
 
1076 次点击