深度学习资料

开源库

  1. Tensorflow:无需解释
  2. Keras:使用起来非常方便,几十行代码就能达到5年前世界顶级的效果
  3. tensorflow-model: 维护着tensorflow(最新版本)实现的业界比较流行的model,如何看paper觉得还不够具体,该repository提供了一个好的参照对象
  4. CMU OpenPose:  实时识别人体姿势的开源库,例如实时识别人的身体,手脚等。感兴趣的可以研究下,可以基于该工具做个什么创业项目也是可能的
  5. DeepSpeech:开源Speech-2-Text框架
  6. Deep Voice Conversion:使用深度学习进行不同人的声音转换
  7. Seq2Seq:Google Seq2Seq模型的Tensorflow实现
  8. FaceNet:人脸识别的开源库
  9. Face_Recognition:人脸识别库, 基于DLib开发,号称最易用的人脸识别库, 包括 Face Detection, Face Recognition等新版的DeepFakes的人脸定位及人脸特征抽取就基于该库
  10. TTS的WaveNet实现:用Tensorflow实现的Text2Speech的WaveNet实现
  11. Keras-rl:常见RL算法的python实现
  12. Fashion-Mnist:公开的时装分类的数据集:学术算法大牛固然牛叉, 但后来大家发现学术界还有一种牛法,叫另辟蹊径搞数据集,例如FeiFei,Li 搞得ImageNet,学术上引用次数暴多,简直就是增粉利器。 Fashion-Mnist感觉就是类似的思路

Courses

  1. dlsys-course: 华盛顿大学的Deep Learning教程,包含如何搭建,优化深度学习系统,包括上层算法和底层GPU性能优化等,github上有教程,也有代码
  2. Stanford CS20SI:Tensorflow for Deep Learning Research:Stanford关于Tensorflow for Deep Learning的课程;有具体课程示例代码参考
  3. Stanford CS231n: Convolutional Neural Networks for Visual Recognition,原视频在youtube上需要翻墙,国内也可在网易云课堂上观看CS231n
  4. Oxford NLP Lectures:Oxford Deep NLP Lectures,介绍NLP,特别是NN在NLP领域的使用

Book

  1. Deep Learning:Goodfellow, Ian, Yoshua Bengio, Aaron Courville, and Yoshua Bengio. Deep learning. Vol. 1. Cambridge: MIT press, 2016. 厚块头,偏理论
  2. http://neuralnetworksanddeeplearning.com/ neural network and deep learning
  3. Deep Learning with Python 》: Keras的作者写的书,很多使用Keras示例和项目。虽然是英文版,但是读起来很流畅。可以一边看着PDF一边调试代码。强烈推荐
  4. Hands-On Machine Learning with Scikit-Learn and TensorFlow》:前一半主要介绍sklearn,后一半主要介绍tensorflow。感觉sklearn介绍比较详细, tensorflow的内容偏少
  5. Building Machine Learning Projects with TensorFlow》:tensorflow使用介绍,有描述有代码
  6. Getting Started with TensorFlow – Giancarlo Zaccone》:tensorflow使用介绍,有描述有代码,而且比较简短
  7. tensorflow cookbook》:tensorflow使用介绍,虽然叫cookbook,不过块头也没那么厚
  8. PyTorch Tutorials:PyTorch 的使用代码示例,没细看,但应该对学习PyTorch有很好的帮助
  9. Tensorflow程序代码框架:一个简单的组织TF代码框架+规范

网站

  1. NIPS 2017资料: NIPS 2017的资料,包括视频,PPT/PDF,Tutorials,各种当前发展的技术,趋势的演讲和讨论,值得拥有
  2. ImageNet:Image-Net官网
  3. CVPR 2015: CVPR 2015,有比较多的优秀论文和视频,包括 GoogLeNet
  4. VGG: VGG研究的成果,包括blog, paper, pre-trained model下载
  5. The Data Science Blog: 比较详细介绍了CNN的工作原理,另外还有较多数据分析技术的介绍
  6. awesome-datascience: 非常全面的Data Science学习资料,还包含部分机器学习,相关比赛等
  7. cheatsheets-ai:有很多关于机器学习的工具介绍,其特点是将每个工具的主要技术和技术点都做成png或者pdf类似的大纲。的确是cheatsheets,方便查阅;也适合用来check自己知识点的完备性
  8. Reinforcement-Learning资料:比较全的Reinforcement-Learning的教程,包括教程,相关书籍,示例代码,Paper等RL方面的很多资料,方便查阅
  9. https://www.deepfakes.club/ :  deepfakes club,很多deepfakes的资料。deepfakes能催生规模不小的黑产
  10. Quick Draw:Google发布的手绘数据集, 很多有意思的应用或者论文都基于该数据集,包括之前比较火的微信小程序‘猜画小歌’

有意思的应用

  1. https://www.deepfakes.club/ :  deepfakes club,很多deepfakes的资料。deepfakes能催生规模不小的黑产
  2. deepfakes/faceswap:深度学习换脸, 基本的思路是先定位两组图片中的face, 一组作为content(保留表情特征, 例如面部是微笑, 哭泣, 咆哮等,以及原图的剩余内容), 另一组作为style(替换着的脸部内容),另外考虑lighting和平滑。 之后将content, sytle,  lighting,  smooth结合起来考虑作为优化目标进行优化。 具体参见:《deepfakes关键技术详解》
  3. Neural-Style:神经网络进行图像变换,能够得到较多风格奇异的图片。融合两张照片,  使用VGG抽取特征, 一张的特征作为content代表图片内容, 另一张抽出的特征使用Gram Matrix进行计算作为Style,之后进行融合, 使用随机的图片最小化和content, style表示的偏差;具体参见《Neural-Style关键技术详解》

经典论文

经典CNN结构
  • LeNet-5:LeCun Y, Bottou L, Bengio Y, Haffner P. Gradient-based learning applied to document recognition. Proceedings of the IEEE. 1998 Nov;86(11):2278-324.
  • GoogLeNet: Szegedy C, Liu W, Jia Y, Sermanet P, Reed S, Anguelov D, Erhan D, Vanhoucke V, Rabinovich A. Going deeper with convolutions. Cvpr. GoogLeNet的原版内容
  • Residual Net:He K, Zhang X, Ren S, Sun J. Deep residual learning for image recognition. InProceedings of the IEEE conference on computer vision and pattern recognition 2016 (pp. 770-778). Residual Net介绍
  • Inception BN:Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift. arXiv preprint arXiv:1502.03167. 2015 Feb 11.
  • AlexNet:Krizhevsky A, Sutskever I, Hinton GE. Imagenet classification with deep convolutional neural networks. InAdvances in neural information processing systems 2012 (pp. 1097-1105).  模型下载AlexNet FineTuning
  • U-Net: 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. U-Net用于语义分割
  • Lin, Min, Qiang Chen, and Shuicheng Yan. “Network in network.” arXiv preprint arXiv:1312.4400 (2013).  论文中主要提出了两个重点:一是在传统conv filter的基础上再叠加multiple layer perception,用于增加低层的抽象能力(避免低层需要使用更多filter来对非线性可分的特征进行刻画); 二是提出取代传统conv网络中最后的Full Connection(传统FC参数较多,且很难和分类的categories的置信度对应起来)而提出的Global Average Pooling让每个feature map和每个categories关联, 相当于每个feature map的线性组合可以作为category的confidence,增加网络的可解释性,同时减少模型参数
  • Goodfellow, Ian J., et al. “Maxout networks.” arXiv preprint arXiv:1302.4389 (2013).  maxout network提出的原论文,相当于在convolution后,对各feature map进行参数化的max pooling(对比network in network相当于使用的是conv1d进行参数化pooling)
RNN/LSTM/GRU
  1. Understanding LSTM Network: LSTM工作原理的详细介绍
  2. Auli M, Galley M, Quirk C, et al. Joint language and translation modeling with recurrent neural networks[J]. American Journal of Psychoanalysis, 2013, 74(2):212-3.
  3. Kalchbrenner N, Blunsom P. Recurrent continuous translation models[C]// 2013.
  4. Cho K, Van Merrienboer B, Gulcehre C, et al. Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation[J]. Computer Science, 2014.
  5. Sutskever I, Vinyals O, Le Q V. Sequence to Sequence Learning with Neural Networks[J]. 2014, 4:3104-3112.
  6. Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science, 2014.
  7. Zhu, Lingxue, and Nikolay Laptev. “Deep and confident prediction for time series at uber.” Data Mining Workshops (ICDMW), 2017 IEEE International Conference on. IEEE, 2017.  Uber使用的时间序列概率模型
  8. 图像相关

    • Neural-Style:Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “A neural algorithm of artistic style.” arXiv preprint arXiv:1508.06576 (2015).
      将图像区分为content和style两类, 使用深层次卷积层提取content图像和style特征,去逼近content图像的深层卷积特征(相当于图像的语义表示),同时使用深层次卷积层的Gram Matrix抽取Style图像的特征进行Sytle的表示,loss = alpha*loss_content+belta*loss_style拟合最终图像
      代码参见Neural-Style. 上述的深层卷积特征抽取使用VGG模型进行
    • 另一种Neural-Style: Li, Chuan, and Michael Wand. “Combining markov random fields and convolutional neural networks for image synthesis.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.  类似的Neural-Style方法: 新图像的loss = alpha*loss_content + belta*loss_style + gama*.regularity。其中loss_content使用深层卷积网络抽取的特征(语义特征)与最终图像对应的特征的差值表示;loss_style为使用k*k*c(k大小,c为channel)大小的patch将目标图像和原style图像进行划分,并进行对应位置的patch相似度计算找出最相似patch后计算sytle偏差;regularity为像素点之间的平滑。综合loss_content, loss_style, regularity后得到最终图像

其他持续补充

  • Nair V, Hinton GE. Rectified linear units improve restricted boltzmann machines. InProceedings of the 27th international conference on machine learning (ICML-10) 2010 (pp. 807-814). 介绍了ReLU
  • Bell RM, Koren Y. Lessons from the Netflix prize challenge. Acm Sigkdd Explorations Newsletter. 2007 Dec 1;9(2):75-9. Netflix获奖算法的论文,主要提出多模型融合和现在大家经常用的改进SVD算法
  • Breiman L. Random forests. Machine learning. 2001 Oct 1;45(1):5-32.
  • Cheng, Heng-Tze, et al. “Wide & deep learning for recommender systems.” Proceedings of the 1st Workshop on Deep Learning for Recommender Systems. ACM, 2016.  Google App推荐系统中深度学习模型, Github上有开源。主要思路就是使用wide的线性模型捕捉根据历史信息得到的经验,同时使用深度学习对未看到过的特征进行交叉特征的exploration。深度部分会引入较多embedding;目前很多大厂中的系统都参照该模型来实现; 开原地址为:wide&deep source code

原文参见: 深度学习参考资料

更多也可参见:推荐系统参考资料