2019-12-14 17:14:18 weixin_40400177 阅读数 10709

Deep-Learning-Papers-Reading-Roadmap(深度学习论文阅读路线图)

深度学习基础及历史

1.0 书

  • 深度学习圣经:Bengio, Yoshua, Ian J. Goodfellow, and Aaron Courville. “Deep learning.” An MIT Press book. (2015)

1.1 报告

  • 三巨头报告:LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. “Deep learning.” Nature 521.7553 (2015)

1.2 深度信念网络 (DBN)

  • 深度学习前夜的里程碑:Hinton, Geoffrey E., Simon Osindero, and Yee-Whye Teh. “A fast learning algorithm for deep belief nets.” Neural computation 18.7 (2006)
  • 展示深度学习前景的里程碑:Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. “Reducing the dimensionality of data with neural networks.” Science 313.5786 (2006)

1.3 ImageNet革命(深度学习大爆炸)

  • AlexNet的深度学习突破:Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems. 2012.
  • VGGNet深度神经网络出现:Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014).
  • GoogLeNet:Szegedy, Christian, et al. “Going deeper with convolutions.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.
  • ResNet极深度神经网络,CVPR最佳论文:He, Kaiming, et al. “Deep residual learning for image recognition.” arXiv preprint arXiv:1512.03385 (2015).

1.4 语音识别革命

  • 语音识别突破:Hinton, Geoffrey, et al. “Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups.” IEEE Signal Processing Magazine 29.6 (2012): 82-97.
  • RNN论文:Graves, Alex, Abdel-rahman Mohamed, and Geoffrey Hinton. “Speech recognition with deep recurrent neural networks.” 2013 IEEE international conference on acoustics, speech and signal processing. IEEE, 2013.
  • 端对端RNN语音识别:Graves, Alex, and Navdeep Jaitly. “Towards End-To-End Speech Recognition with Recurrent Neural Networks.” ICML. Vol. 14. 2014.
  • Google语音识别系统论文:Sak, Haşim, et al. “Fast and accurate recurrent neural network acoustic models for speech recognition.” arXiv preprint arXiv:1507.06947 (2015).
  • 百度语音识别系统论文:Amodei, Dario, et al. “Deep speech 2: End-to-end speech recognition in english and mandarin.” arXiv preprint arXiv:1512.02595 (2015).
  • 来自微软的当下最先进的语音识别论文:W. Xiong, J. Droppo, X. Huang, F. Seide, M. Seltzer, A. Stolcke, D. Yu, G. Zweig “Achieving Human Parity in Conversational Speech Recognition.” arXiv preprint arXiv:1610.05256 (2016).

深度学习方法

2.1 模型

  • Dropout:Hinton, Geoffrey E., et al. “Improving neural networks by preventing co-adaptation of feature detectors.” arXiv preprint arXiv:1207.0580 (2012).
  • 过拟合:Srivastava, Nitish, et al. “Dropout: a simple way to prevent neural networks from overfitting.” Journal of Machine Learning Research 15.1 (2014): 1929-1958.
  • Batch归一化——2015年杰出成果:Ioffe, Sergey, and Christian Szegedy. “Batch normalization: Accelerating deep network training by reducing internal covariate shift.” arXiv preprint arXiv:1502.03167 (2015).
  • Batch归一化的升级:Ba, Jimmy Lei, Jamie Ryan Kiros, and Geoffrey E. Hinton. “Layer normalization.” arXiv preprint arXiv:1607.06450 (2016).
  • 快速训练新模型:Courbariaux, Matthieu, et al. “Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to+ 1 or−1.”
  • 训练方法创新:Jaderberg, Max, et al. “Decoupled neural interfaces using synthetic gradients.” arXiv preprint arXiv:1608.05343 (2016).
  • 修改预训练网络以降低训练耗时:Chen, Tianqi, Ian Goodfellow, and Jonathon Shlens. “Net2net: Accelerating learning via knowledge transfer.” arXiv preprint arXiv:1511.05641 (2015).
  • 修改预训练网络以降低训练耗时:Wei, Tao, et al. “Network Morphism.” arXiv preprint arXiv:1603.01670 (2016).

2.2 优化

  • 动量优化器:Sutskever, Ilya, et al. “On the importance of initialization and momentum in deep learning.” ICML (3) 28 (2013): 1139-1147.
  • 可能是当前使用最多的随机优化:Kingma, Diederik, and Jimmy Ba. “Adam: A method for stochastic optimization.” arXiv preprint arXiv:1412.6980 (2014).
  • 神经优化器:Andrychowicz, Marcin, et al. “Learning to learn by gradient descent by gradient descent.” arXiv preprint arXiv:1606.04474 (2016).
  • ICLR最佳论文,让神经网络运行更快的新方向:Han, Song, Huizi Mao, and William J. Dally. “Deep compression: Compressing deep neural network with pruning, trained quantization and huffman coding.” CoRR, abs/1510.00149 2 (2015).
  • 优化神经网络的另一个新方向:Iandola, Forrest N., et al. “SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 1MB model size.” arXiv preprint arXiv:1602.07360 (2016).

2.3 无监督学习 / 深度生成式模型

  • Google Brain找猫的里程碑论文,吴恩达:Le, Quoc V. “Building high-level features using large scale unsupervised learning.” 2013 IEEE international conference on acoustics, speech and signal processing. IEEE, 2013.
  • 变分自编码机 (VAE):Kingma, Diederik P., and Max Welling. “Auto-encoding variational bayes.” arXiv preprint arXiv:1312.6114 (2013).
  • 生成式对抗网络 (GAN):Goodfellow, Ian, et al. “Generative adversarial nets.” Advances in Neural Information Processing Systems. 2014.
  • 解卷积生成式对抗网络 (DCGAN):Radford, Alec, Luke Metz, and Soumith Chintala. “Unsupervised representation learning with deep convolutional generative adversarial networks.” arXiv preprint arXiv:1511.06434 (2015).
  • Attention机制的变分自编码机:Gregor, Karol, et al. “DRAW: A recurrent neural network for image generation.” arXiv preprint arXiv:1502.04623 (2015).
  • PixelRNN:Oord, Aaron van den, Nal Kalchbrenner, and Koray Kavukcuoglu. “Pixel recurrent neural networks.” arXiv preprint arXiv:1601.06759 (2016).
  • PixelCNN:Oord, Aaron van den, et al. “Conditional image generation with PixelCNN decoders.” arXiv preprint arXiv:1606.05328 (2016).

2.4 RNN / 序列到序列模型

  • RNN的生成式序列,LSTM:Graves, Alex. “Generating sequences with recurrent neural networks.” arXiv preprint arXiv:1308.0850 (2013).
  • 第一份序列到序列论文:Cho, Kyunghyun, et al. “Learning phrase representations using RNN encoder-decoder for statistical machine translation.” arXiv preprint arXiv:1406.1078 (2014).
  • 神经机器翻译:Bahdanau, Dzmitry, KyungHyun Cho, and Yoshua Bengio. “Neural Machine Translation by Jointly Learning to Align and Translate.” arXiv preprint arXiv:1409.0473 (2014).
  • 序列到序列Chatbot:Vinyals, Oriol, and Quoc Le. “A neural conversational model.” arXiv preprint arXiv:1506.05869 (2015).

2.5 神经网络图灵机

  • 未来计算机的基本原型:Graves, Alex, Greg Wayne, and Ivo Danihelka. “Neural turing machines.” arXiv preprint arXiv:1410.5401 (2014).
  • 强化学习神经图灵机:Zaremba, Wojciech, and Ilya Sutskever. “Reinforcement learning neural Turing machines.” arXiv preprint arXiv:1505.00521 362 (2015).
  • 记忆网络:Weston, Jason, Sumit Chopra, and Antoine Bordes. “Memory networks.” arXiv preprint arXiv:1410.3916 (2014).
  • 端对端记忆网络:Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. “End-to-end memory networks.” Advances in neural information processing systems. 2015.
  • 指针网络:Vinyals, Oriol, Meire Fortunato, and Navdeep Jaitly. “Pointer networks.” Advances in Neural Information Processing Systems. 2015.

2.6 深度强化学习

  • 第一篇以深度强化学习为名的论文:Mnih, Volodymyr, et al. “Playing atari with deep reinforcement learning.” arXiv preprint arXiv:1312.5602 (2013).
  • 里程碑:Mnih, Volodymyr, et al. “DeepMind:Human-level control through deep reinforcement learning.” Nature 518.7540 (2015): 529-533.
  • ICLR最佳论文:Wang, Ziyu, Nando de Freitas, and Marc Lanctot. “Dueling network architectures for deep reinforcement learning.” arXiv preprint arXiv:1511.06581 (2015).
  • 当前最先进的深度强化学习方法:Mnih, Volodymyr, et al. “Asynchronous methods for deep reinforcement learning.” arXiv preprint arXiv:1602.01783 (2016).
  • DDPG:Lillicrap, Timothy P., et al. “Continuous control with deep reinforcement learning.” arXiv preprint arXiv:1509.02971 (2015).
  • NAF:Gu, Shixiang, et al. “Continuous Deep Q-Learning with Model-based Acceleration.” arXiv preprint arXiv:1603.00748 (2016).
  • TRPO:Schulman, John, et al. “Trust region policy optimization.” CoRR, abs/1502.05477 (2015).
  • AlphaGo:Silver, David, et al. “Mastering the game of Go with deep neural networks and tree search.” Nature 529.7587 (2016): 484-489.

2.7 深度迁移学习 / 终生学习 / 强化学习

  • Bengio教程:Bengio, Yoshua. “Deep Learning of Representations for Unsupervised and Transfer Learning.” ICML Unsupervised and Transfer Learning 27 (2012): 17-36.
  • 终生学习的简单讨论:Silver, Daniel L., Qiang Yang, and Lianghao Li. “Lifelong Machine Learning Systems: Beyond Learning Algorithms.” AAAI Spring Symposium: Lifelong Machine Learning. 2013.
  • Hinton、Jeff Dean大神研究:Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. “Distilling the knowledge in a neural network.” arXiv preprint arXiv:1503.02531 (2015).
  • 强化学习策略:Rusu, Andrei A., et al. “Policy distillation.” arXiv preprint arXiv:1511.06295 (2015).
  • 多任务深度迁移强化学习:Parisotto, Emilio, Jimmy Lei Ba, and Ruslan Salakhutdinov. “Actor-mimic: Deep multitask and transfer reinforcement learning.” arXiv preprint arXiv:1511.06342 (2015).
  • 累进式神经网络:Rusu, Andrei A., et al. “Progressive neural networks.” arXiv preprint arXiv:1606.04671 (2016).

2.8 一次性深度学习

  • 不涉及深度学习,但值得一读:Lake, Brenden M., Ruslan Salakhutdinov, and Joshua B. Tenenbaum. “Human-level concept learning through probabilistic program induction.” Science 350.6266 (2015): 1332-1338.
  • 一次性图像识别(暂无):Koch, Gregory, Richard Zemel, and Ruslan Salakhutdinov. “Siamese Neural Networks for One-shot Image Recognition.”(2015). pdf
  • 一次性学习基础(暂无):Santoro, Adam, et al. “One-shot Learning with Memory-Augmented Neural Networks.” arXiv preprint arXiv:1605.06065 (2016). pdf
  • 一次性学习网络:Vinyals, Oriol, et al. “Matching Networks for One Shot Learning.” arXiv preprint arXiv:1606.04080 (2016).
  • 大型数据(暂无):Hariharan, Bharath, and Ross Girshick. “Low-shot visual object recognition.” arXiv preprint arXiv:1606.02819 (2016). pdf

应用

3.1 自然语言处理 (NLP)

  • Antoine Bordes, et al. “Joint Learning of Words and Meaning Representations for Open-Text Semantic Parsing.” AISTATS(2012)
  • word2vec Mikolov, et al. “Distributed representations of words and phrases and their compositionality.” ANIPS(2013): 3111-3119
  • Sutskever, et al. “Sequence to sequence learning with neural networks.” ANIPS(2014)
    http://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf
  • Ankit Kumar, et al. “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing.” arXiv preprint arXiv:1506.07285(2015)
  • Yoon Kim, et al. “Character-Aware Neural Language Models.” NIPS(2015) arXiv preprint arXiv:1508.06615(2015)
    https://arxiv.org/abs/1508.06615
  • bAbI任务:Jason Weston, et al. “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks.” arXiv preprint arXiv:1502.05698(2015)
  • CNN / DailyMail 风格对比:Karl Moritz Hermann, et al. “Teaching Machines to Read and Comprehend.” arXiv preprint arXiv:1506.03340(2015)
  • 当前最先进的文本分类:Alexis Conneau, et al. “Very Deep Convolutional Networks for Natural Language Processing.” arXiv preprint arXiv:1606.01781(2016)
  • 稍次于最先进方案,但速度快很多:Armand Joulin, et al. “Bag of Tricks for Efficient Text Classification.” arXiv preprint arXiv:1607.01759(2016)

3.2 目标检测

  • Szegedy, Christian, Alexander Toshev, and Dumitru Erhan. “Deep neural networks for object detection.” Advances in Neural Information Processing Systems. 2013.
  • RCNN:Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.
  • SPPNet(暂无):He, Kaiming, et al. “Spatial pyramid pooling in deep convolutional networks for visual recognition.” European Conference on Computer Vision. Springer International Publishing, 2014. pdf
  • Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE International Conference on Computer Vision. 2015.
  • 相当实用的YOLO项目:Redmon, Joseph, et al. “You only look once: Unified, real-time object detection.” arXiv preprint arXiv:1506.02640 (2015).
  • (暂无)Liu, Wei, et al. “SSD: Single Shot MultiBox Detector.” arXiv preprint arXiv:1512.02325 (2015). pdf
  • (暂无)Dai, Jifeng, et al. “R-FCN: Object Detection via Region-based Fully Convolutional Networks.” arXiv preprint arXiv:1605.06409 (2016). pdf
  • (暂无)He, Gkioxari, et al. “Mask R-CNN” arXiv preprint arXiv:1703.06870 (2017). pdf

3.3 视觉追踪

  • 第一份采用深度学习的视觉追踪论文,DLT追踪器:Wang, Naiyan, and Dit-Yan Yeung. “Learning a deep compact image representation for visual tracking.” Advances in neural information processing systems. 2013.
  • SO-DLT(暂无):Wang, Naiyan, et al. “Transferring rich feature hierarchies for robust visual tracking.” arXiv preprint arXiv:1501.04587 (2015). pdf
  • FCNT:Wang, Lijun, et al. “Visual tracking with fully convolutional networks.” Proceedings of the IEEE International Conference on Computer Vision. 2015.
  • 跟深度学习一样快的非深度学习方法,GOTURN(暂无):Held, David, Sebastian Thrun, and Silvio Savarese. “Learning to Track at 100 FPS with Deep Regression Networks.” arXiv preprint arXiv:1604.01802 (2016). pdf
  • 新的最先进的实时目标追踪方案 SiameseFC(暂无):Bertinetto, Luca, et al. “Fully-Convolutional Siamese Networks for Object Tracking.” arXiv preprint arXiv:1606.09549 (2016). pdf
  • C-COT:Martin Danelljan, Andreas Robinson, Fahad Khan, Michael Felsberg. “Beyond Correlation Filters: Learning Continuous Convolution Operators for Visual Tracking.” ECCV (2016)
  • VOT2016大赛冠军 TCNN(暂无):Nam, Hyeonseob, Mooyeol Baek, and Bohyung Han. “Modeling and Propagating CNNs in a Tree Structure for Visual Tracking.” arXiv preprint arXiv:1608.07242 (2016). pdf

3.4 图像标注

  • Farhadi,Ali,etal. “Every picture tells a story: Generating sentences from images”. In Computer VisionECCV 201match0. Spmatchringer Berlin Heidelberg:15-29, 2010.
  • Kulkarni, Girish, et al. “Baby talk: Understanding and generating image descriptions”. In Proceedings of the 24th CVPR, 2011.
  • (暂无)Vinyals, Oriol, et al. “Show and tell: A neural image caption generator”. In arXiv preprint arXiv:1411.4555, 2014. pdf
  • RNN视觉识别与标注(暂无):Donahue, Jeff, et al. “Long-term recurrent convolutional networks for visual recognition and description”. In arXiv preprint arXiv:1411.4389 ,2014. pdf
  • 李飞飞及高徒Andrej Karpathy:Karpathy, Andrej, and Li Fei-Fei. “Deep visual-semantic alignments for generating image descriptions”. In arXiv preprint arXiv:1412.2306, 2014.
  • 李飞飞及高徒Andrej Karpathy(暂无):Karpathy, Andrej, Armand Joulin, and Fei Fei F. Li. “Deep fragment embeddings for bidirectional image sentence mapping”. In Advances in neural information processing systems, 2014. pdf
  • (暂无)Fang, Hao, et al. “From captions to visual concepts and back”. In arXiv preprint arXiv:1411.4952, 2014. pdf
  • (暂无)Chen, Xinlei, and C. Lawrence Zitnick. “Learning a recurrent visual representation for image caption generation”. In arXiv preprint arXiv:1411.5654, 2014. pdf
  • (暂无)Mao, Junhua, et al. “Deep captioning with multimodal recurrent neural networks (m-rnn)”. In arXiv preprint arXiv:1412.6632, 2014. pdf
  • (暂无)Xu, Kelvin, et al. “Show, attend and tell: Neural image caption generation with visual attention”. In arXiv preprint arXiv:1502.03044, 2015. pdf

3.5 机器翻译

  • Luong, Minh-Thang, et al. “Addressing the rare word problem in neural machine translation.” arXiv preprint arXiv:1410.8206 (2014).
  • Sennrich, et al. “Neural Machine Translation of Rare Words with Subword Units”. In arXiv preprint arXiv:1508.07909, 2015.
  • Luong, Minh-Thang, Hieu Pham, and Christopher D. Manning. “Effective approaches to attention-based neural machine translation.” arXiv preprint arXiv:1508.04025 (2015).
  • Chung, et al. “A Character-Level Decoder without Explicit Segmentation for Neural Machine Translation”. In arXiv preprint arXiv:1603.06147, 2016.
  • Lee, et al. “Fully Character-Level Neural Machine Translation without Explicit Segmentation”. In arXiv preprint arXiv:1610.03017, 2016.
  • Wu, Schuster, Chen, Le, et al. “Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation”. In arXiv preprint arXiv:1609.08144v2, 2016.

3.6 机器人

  • Koutník, Jan, et al. “Evolving large-scale neural networks for vision-based reinforcement learning.” Proceedings of the 15th annual conference on Genetic and evolutionary computation. ACM, 2013.
  • Levine, Sergey, et al. “End-to-end training of deep visuomotor policies.” Journal of Machine Learning Research 17.39 (2016): 1-40.
  • Pinto, Lerrel, and Abhinav Gupta. “Supersizing self-supervision: Learning to grasp from 50k tries and 700 robot hours.” arXiv preprint arXiv:1509.06825 (2015).
  • Levine, Sergey, et al. “Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection.” arXiv preprint arXiv:1603.02199 (2016).
  • Zhu, Yuke, et al. “Target-driven Visual Navigation in Indoor Scenes using Deep Reinforcement Learning.” arXiv preprint arXiv:1609.05143 (2016).
  • Yahya, Ali, et al. “Collective Robot Reinforcement Learning with Distributed Asynchronous Guided Policy Search.” arXiv preprint arXiv:1610.00673 (2016).
  • Gu, Shixiang, et al. “Deep Reinforcement Learning for Robotic Manipulation.” arXiv preprint arXiv:1610.00633 (2016).
  • A Rusu, M Vecerik, Thomas Rothörl, N Heess, R Pascanu, R Hadsell.”Sim-to-Real Robot Learning from Pixels with Progressive Nets.” arXiv preprint arXiv:1610.04286 (2016).
  • Mirowski, Piotr, et al. “Learning to navigate in complex environments.” arXiv preprint arXiv:1611.03673 (2016).

3.7 艺术

  • Mordvintsev, Alexander; Olah, Christopher; Tyka, Mike (2015). “Inceptionism: Going Deeper into Neural Networks”. Google Research.
  • 当前最为成功的艺术风格迁移方案,Prisma:Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “A neural algorithm of artistic style.” arXiv preprint arXiv:1508.06576 (2015).
  • iGAN:Zhu, Jun-Yan, et al. “Generative Visual Manipulation on the Natural Image Manifold.” European Conference on Computer Vision. Springer International Publishing, 2016.
  • Neural Doodle:Champandard, Alex J. “Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks.” arXiv preprint arXiv:1603.01768 (2016).
  • Zhang, Richard, Phillip Isola, and Alexei A. Efros. “Colorful Image Colorization.” arXiv preprint arXiv:1603.08511 (2016).
  • 超分辨率,李飞飞:Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. “Perceptual losses for real-time style transfer and super-resolution.” arXiv preprint arXiv:1603.08155 (2016).
  • Vincent Dumoulin, Jonathon Shlens and Manjunath Kudlur. “A learned representation for artistic style.” arXiv preprint arXiv:1610.07629 (2016).
  • 基于空间位置、色彩信息与空间尺度的风格迁移:Gatys, Leon and Ecker, et al.”Controlling Perceptual Factors in Neural Style Transfer.” arXiv preprint arXiv:1611.07865 (2016).
  • 纹理生成与风格迁移:Ulyanov, Dmitry and Lebedev, Vadim, et al. “Texture Networks: Feed-forward Synthesis of Textures and Stylized Images.” arXiv preprint arXiv:1603.03417(2016).

3.8 目标分割

  • J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation.” in CVPR, 2015.
  • L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. “Semantic image segmentation with deep convolutional nets and fully connected crfs.” In ICLR, 2015.
  • Pinheiro, P.O., Collobert, R., Dollar, P. “Learning to segment object candidates.” In: NIPS. 2015.
  • Dai, J., He, K., Sun, J. “Instance-aware semantic segmentation via multi-task network cascades.” in CVPR. 2016
  • Dai, J., He, K., Sun, J. “Instance-sensitive Fully Convolutional Networks.” arXiv preprint arXiv:1603.08678 (2016).

其他

4.0 补充

  • Big Data Mining.Deep Learning with Tensorflow(Google TensorFlow 深度学习)
  • Introduction to TensorFlow, Alejandro Solano - EuroPython 2017
  • Learning with TensorFlow, A Mathematical Approach to Advanced Artificial Intelligence in Python
  • Deep Learning with Python
  • Deep Learning with TensorFlow
2019-10-02 11:53:02 duxinshuxiaobian 阅读数 140

全文共2086字,预计学习时长4分钟

图片来源:unplash

斯坦福大学吴恩达教授在计算机科学课上阐述如何在人工智能领域出类拔萃时说到:

深度学习的发展势如破竹,即便已掌握了深度学习的基础知识,在研究特定应用程序时,仍需阅读论文以紧跟最新趋势。

吴恩达教授分享了一个简单有效的阅读计划技巧。包括以下步骤:

· 选择一个感兴趣的话题(如语音识别、文本摘要、GANs图像生成)。

· 列出包含10-20篇论文/期刊/博客的文献清单。

· 逐步把文章量扩大到50篇以上。

此外,吴恩达教授还分享了几个查找资源的地方,如Twitter,Machine Learning subreddit(https://www.reddit.com/r/MachineLearning/),NIPS(https://nips.cc/),ICML(https://icml.cc/)和ICLR(https://iclr.cc/)(后三者为机器学习会议)。

那么就这个方法来说,制定合适的论文清单需要花多少时间和精力?本文将传授你一些小技巧。

如何开始?

第一步,选定主题/问题。在笔者的案例中,主题是如何将深度学习应用于各种类型贷款(抵押贷款、个人贷款、信用卡等)的信用风险评估。

一旦确定了主题就列出相关关键词。笔者的关键词是:信用、贷款、放贷、抵押、风险、评估、分数、银行和金融。

搜索论文/期刊/博客文章时,将这些关键词与“深度学习”、“机器学习”或“神经网络”结合起来,就能获取所需结果。

浏览网络以获取资源

寻找到合适的资源可能需要耗费1小时到一两天,这取决于找到“完美”论文的决心有多大。但应当避免在搜索上耗费不必要的时间,只要找到3-4篇论文,就可以真正开始阅读了。下方列出了几种寻找资源的有效方法。

标准Google搜索

 

众所周知,在Google搜索上文提到的关键字是第一步。然后,笔者发现这种方法并不高效,因为其结果通常并无实际解决方案,而是适合所有读者的主题概述。

然而,如果使用Google Scholar搜索,找到所需内容的可能性则高得多。

搜索高级机器学习会议

第二步是浏览过去几年会议的所有标题,从中提取有趣论文。以NIPS会议为例,寻找已提交论文的列表。

· 首先,访问https://nips。将年份切换为2019年、2018年、2017年等分别搜索。

对会议进行逐年搜索时,将https://nips.cc/Conferences/2019改为https://nips.cc/Conferences/2019/Workshopbook并点击回车键。携有当年所有论文摘要的“研讨会手册”PDF文档将自动下载。

· 最后,浏览各部分,选择与主题相关的论文。

其他会议网站也有“研讨会手册”,可通过类似途径获取。

搜索最热门的线上论文图书馆

这类网站包括arxiv.org,Semantic Scholar,Science Direct等。在每个平台将先前选定的关键字通过“高级搜索”选项筛选出有趣的内容。

注:有些文件可能是私人的,需要购买。

深入研究论文

寻找与主题完全匹配的论文的过程可能既乏味又耗时,很可能会找到不完全匹配但主题相关的论文(在相同或相邻领域)。

提醒一点,研究人员的论文是基于先前发现并包含大量参考文献的。

以下就是笔者如何利用这一点指导自己的:

1.看完NIPS 2018研讨会手册后,笔者发现了一个很棒的研讨会,名为《金融服务业人工智能的挑战和机遇:公平、解释性、精确性和隐私的影响》。

2.大多数论文并不完全是关于信用价值评估的,而是关于使金融领域的深度学习模型更易解释的新方法。

3.笔者看来,为让作者讨论模型的可解释性,他们就必须查看(并引用)实际算法。惊讶的是,前3-4个引用正是笔者所需要的。

这种方法帮助笔者拓展了资源列表并找到了真正有用的材料。

过滤不需要的内容

在最后一部分中,笔者想回顾一下在选定论文时需要考虑的几件事,有助于过滤很多不需要的内容,专注于更少但质量更高的资源。

· 作者——论文可由不同领域的不同研究人员发表。笔者通常会在领英或推特上查找作者的姓名与所在机构。例如,由大型银行/金融机构的研究人员撰写的一篇信用风险评估深度学习的论文,很可能是一篇高质量论文。此外,著名的学校(斯坦福、麻省理工、蒙特利尔大学)和公司(脸书、谷歌、百度)通常拥有最优秀的研究人员。

· 发表日期——深度学习领域迅猛发展,因此5年前的论文可能与现在无关。笔者倾向于寻找更近期的论文,但也从不忽视很久之前的优秀论文,尤其是介绍突破性技术的论文。

· 引用次数——如果一篇论文引用次数不高,这并不意味着该论文质量不高。笔者经常查看论文的引用次数,只是为了了解论文的受欢迎程度,但这从来不是决定性因素。

留言 点赞 关注

我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

2019-12-12 23:20:50 weixin_40400177 阅读数 3858

Zero-Shot Learning

Table of Contents

Zero-Shot Object Classification

Papers

CVPR 2019

  • CADA-VAE: Edgar Schönfeld, Sayna Ebrahimi, Samarth Sinha, Trevor Darrell, Zeynep Akata. “Generalized Zero- and Few-Shot Learning via Aligned Variational Autoencoders.” CVPR (2019). [pdf] [code]
  • GDAN: He Huang, Changhu Wang, Philip S. Yu, Chang-Dong Wang. “Generative Dual Adversarial Network for Generalized Zero-shot Learning.” CVPR (2019). [pdf] [code]
  • DeML: Binghui Chen, Weihong Deng. “Hybrid-Attention based Decoupled Metric Learning for Zero-Shot Image Retrieval.” CVPR (2019). [pdf] [code]
  • Gzsl-VSE: Pengkai Zhu, Hanxiao Wang, Venkatesh Saligrama. “Generalized Zero-Shot Recognition based on Visually Semantic Embedding.” CVPR (2019). [pdf]
  • LisGAN: Jingjing Li, Mengmeng Jin, Ke Lu, Zhengming Ding, Lei Zhu, Zi Huang. “Leveraging the Invariant Side of Generative Zero-Shot Learning.” CVPR (2019). [pdf] [code]
  • DGP: Michael Kampffmeyer, Yinbo Chen, Xiaodan Liang, Hao Wang, Yujia Zhang, Eric P. Xing. “Rethinking Knowledge Graph Propagation for Zero-Shot Learning.” CVPR (2019). [pdf] [code]
  • DAZL: Yuval Atzmon, Gal Chechik. “Domain-Aware Generalized Zero-Shot Learning.” CVPR (2019). [pdf]
  • PrEN: Meng Ye, Yuhong Guo. “Progressive Ensemble Networks for Zero-Shot Recognition.” CVPR (2019). [pdf]
  • Tristan Hascoet, Yasuo Ariki, Tetsuya Takiguchi. “On Zero-Shot Learning of generic objects.” CVPR (2019). [pdf] [code]
  • SABR-T: Akanksha Paul, Naraynan C Krishnan, Prateek Munjal. “Semantically Aligned Bias Reducing Zero Shot Learning.” CVPR (2019). [pdf]
  • AREN: Guo-Sen Xie, Li Liu, Xiaobo Jin, Fan Zhu, Zheng Zhang, Jie Qin, Yazhou Yao, Ling Shao. “Attentive Region Embedding Network for Zero-shot Learning.” CVPR (2019). [pdf] [code]
  • Zhengming Ding, Hongfu Liu. “Marginalized Latent Semantic Encoder for Zero-Shot Learning.” CVPR (2019). [pdf]
  • PQZSL: Jin Li, Xuguang Lan, Yang Liu, Le Wang, Nanning Zheng. “Compressing Unknown Classes with Product Quantizer for Efficient Zero-Shot Classification.” CVPR (2019). [pdf]
  • Mert Bulent Sariyildiz, Ramazan Gokberk Cinbis. “Gradient Matching Generative Networks for Zero-Shot Learning.” CVPR (2019). [pdf]
  • Bin Tong, Chao Wang, Martin Klinkigt, Yoshiyuki Kobayashi, Yuuichi Nonaka. “Hierarchical Disentanglement of Discriminative Latent Features for Zero-shot Learning.” CVPR (2019). [pdf]

NeurIPS 2018

  • DCN: Shichen Liu, Mingsheng Long, Jianmin Wang, Michael I. Jordan.“Generalized Zero-Shot Learning with Deep Calibration Network” NeurIPS (2018). [pdf]
  • S2GA: Yunlong Yu, Zhong Ji, Yanwei Fu, Jichang Guo, Yanwei Pang, Zhongfei (Mark) Zhang.“Stacked Semantics-Guided Attention Model for Fine-Grained Zero-Shot Learning.” NeurIPS (2018). [pdf]
  • DIPL: An Zhao, Mingyu Ding, Jiechao Guan, Zhiwu Lu, Tao Xiang, Ji-Rong Wen “Domain-Invariant Projection Learning for Zero-Shot Recognition.” NeurIPS (2018). [pdf]

ECCV 2018

  • SZSL: Jie Song, Chengchao Shen, Jie Lei, An-Xiang Zeng, Kairi Ou, Dacheng Tao, Mingli Song. “Selective Zero-Shot Classification with Augmented Attributes.” ECCV (2018). [pdf]
  • LCP-SA: Huajie Jiang, Ruiping Wang, Shiguang Shan, Xilin Chen. “Learning Class Prototypes via Structure Alignment for Zero-Shot Recognition.” ECCV (2018). [pdf]
  • MC-ZSL: Rafael Felix, Vijay Kumar B. G., Ian Reid, Gustavo Carneiro. “Multi-modal Cycle-consistent Generalized Zero-Shot Learning.” ECCV (2018). [pdf] [code]

CVPR 2018

  • GCN: Xiaolong Wang, Yufei Ye, Abhinav Gupta. “Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs.” CVPR (2018). [pdf] [code]
  • PSR: Yashas Annadani, Soma Biswas. “Preserving Semantic Relations for Zero-Shot Learning.” CVPR (2018). [pdf]
  • GAN-NT: Yizhe Zhu, Mohamed Elhoseiny, Bingchen Liu, Xi Peng, Ahmed Elgammal. “A Generative Adversarial Approach for Zero-Shot Learning From Noisy Texts.” CVPR (2018). [pdf]
  • TUE: Jie Song, Chengchao Shen, Yezhou Yang, Yang Liu, Mingli Song. “Transductive Unbiased Embedding for Zero-Shot Learning.” CVPR (2018). [pdf]
  • SP-AEN: Long Chen, Hanwang Zhang, Jun Xiao, Wei Liu, Shih-Fu Chang. “Zero-Shot Visual Recognition Using Semantics-Preserving Adversarial Embedding Networks.” CVPR (2018). [pdf] [code]
  • ML-SKG: Chung-Wei Lee, Wei Fang, Chih-Kuan Yeh, Yu-Chiang Frank Wang. “Multi-Label Zero-Shot Learning With Structured Knowledge Graphs.” CVPR (2018). [pdf] [project]
  • GZSL-SE: Vinay Kumar Verma, Gundeep Arora, Ashish Mishra, Piyush Rai. “Generalized Zero-Shot Learning via Synthesized Examples.” CVPR (2018). [pdf]
  • FGN: Yongqin Xian, Tobias Lorenz, Bernt Schiele, Zeynep Akata. “Feature Generating Networks for Zero-Shot Learning.” CVPR (2018). [pdf] [code] [project]
  • LDF: Yan Li, Junge Zhang, Jianguo Zhang, Kaiqi Huang. “Discriminative Learning of Latent Features for Zero-Shot Recognition.” CVPR (2018). [pdf]
  • WSL: Li Niu, Ashok Veeraraghavan, and Ashu Sabharwal. “Webly Supervised Learning Meets Zero-shot Learning: A Hybrid Approach for Fine-grained Classification.” CVPR (2018). [pdf]

TPAMI 2018

  • C-GUB: Yongqin Xian, Christoph H. Lampert, Bernt Schiele, Zeynep Akata. “Zero-shot learning-A comprehensive evaluation of the good, the bad and the ugly.” TPAMI (2018). [pdf] [project]

AAAI 2018, 2017

  • GANZrl: Bin Tong, Martin Klinkigt, Junwen Chen, Xiankun Cui, Quan Kong, Tomokazu Murakami, Yoshiyuki Kobayashi. “Adversarial Zero-shot Learning With Semantic Augmentation.” AAAI (2018). [pdf]
  • JDZsL: Soheil Kolouri, Mohammad Rostami, Yuri Owechko, Kyungnam Kim. “Joint Dictionaries for Zero-Shot Learning.” AAAI (2018). [pdf]
  • VZSL: Wenlin Wang, Yunchen Pu, Vinay Kumar Verma, Kai Fan, Yizhe Zhang, Changyou Chen, Piyush Rai, Lawrence Carin. “Zero-Shot Learning via Class-Conditioned Deep Generative Models.” AAAI (2018). [pdf]
  • AS: Yuchen Guo, Guiguang Ding, Jungong Han, Sheng Tang. “Zero-Shot Learning With Attribute Selection.” AAAI (2018). [pdf]
  • DSSC: Yan Li, Zhen Jia, Junge Zhang, Kaiqi Huang, Tieniu Tan.“Deep Semantic Structural Constraints for Zero-Shot Learning.” AAAI (2018). [pdf]
  • ZsRDA: Yang Long, Li Liu, Yuming Shen, Ling Shao. “Towards Affordable Semantic Searching: Zero-Shot Retrieval via Dominant Attributes.” AAAI (2018). [pdf]
  • DCL: Yuchen Guo, Guiguang Ding, Jungong Han, Yue Gao. “Zero-Shot Recognition via Direct Classifier Learning with Transferred Samples and Pseudo Labels.” AAAI (2017). [pdf]

ICCV 2017

  • A2C: Berkan Demirel, Ramazan Gokberk Cinbis, Nazli Ikizler-Cinbis. “Attributes2Classname: A Discriminative Model for Attribute-Based Unsupervised Zero-Shot Learning.” ICCV (2017). [pdf] [code]
  • PVE: Soravit Changpinyo, Wei-Lun Chao, Fei Sha. “Predicting Visual Exemplars of Unseen Classes for Zero-Shot Learning.” ICCV (2017). [pdf][code]
  • LDL: Huajie Jiang, Ruiping Wang, Shiguang Shan, Yi Yang, Xilin Chen. “Learning Discriminative Latent Attributes for Zero-Shot Classification.” ICCV (2017). [pdf]]

CVPR 2017

  • Deep-SCoRe: Pedro Morgado, Nuno Vasconcelos.“Semantically Consistent Regularization for Zero-Shot Recognition.” CVPR (2017). [pdf] [code]
  • DEM: Li Zhang, Tao Xiang, Shaogang Gong. “Learning a Deep Embedding Model for Zero-Shot Learning.” CVPR (2017). [pdf] [code]
  • VDS: Yang Long, Li Liu, Ling Shao, Fumin Shen, Guiguang Ding, Jungong Han. “From Zero-Shot Learning to Conventional Supervised Classification: Unseen Visual Data Synthesis.” CVPR (2017). [pdf]
  • ESD: Zhengming Ding, Ming Shao, Yun Fu. “Low-Rank Embedded Ensemble Semantic Dictionary for Zero-Shot Learning.” CVPR (2017). [pdf]
  • SAE: Elyor Kodirov, Tao Xiang, Shaogang Gong. “Semantic Autoencoder for Zero-Shot Learning.” CVPR (2017). [pdf] [code]
  • DVSM: Yanan Li, Donghui Wang, Huanhang Hu, Yuetan Lin, Yueting Zhuang. “Zero-Shot Recognition Using Dual Visual-Semantic Mapping Paths”. CVPR (2017). [pdf]
  • MTF-MR: Xing Xu, Fumin Shen, Yang Yang, Dongxiang Zhang, Heng Tao Shen, Jingkuan Song. “Matrix Tri-Factorization With Manifold Regularizations for Zero-Shot Learning.” CVPR (2017). [pdf]
  • Nour Karessli, Zeynep Akata, Bernt Schiele, Andreas Bulling. “Gaze Embeddings for Zero-Shot Image Classification.” CVPR (2017). [pdf] [code]
  • GUB: Yongqin Xian, Bernt Schiele, Zeynep Akata. “Zero-Shot learning - The Good, the Bad and the Ugly.” CVPR (2017).
    [pdf] [code]

CVPR 2016

  • MC-ZSL: Zeynep Akata, Mateusz Malinowski, Mario Fritz, Bernt Schiele. “Multi-Cue Zero-Shot Learning With Strong Supervision.” CVPR (2016). [pdf] [code]
  • LATEM: Yongqin Xian, Zeynep Akata, Gaurav Sharma, Quynh Nguyen, Matthias Hein, Bernt Schiele. “Latent Embeddings for Zero-Shot Classification.” CVPR (2016). [pdf][code]
  • LIM: Ruizhi Qiao, Lingqiao Liu, Chunhua Shen, Anton van den Hengel. “Less Is More: Zero-Shot Learning From Online Textual Documents With Noise Suppression.” CVPR (2016). [pdf]
  • SYNC: Soravit Changpinyo, Wei-Lun Chao, Boqing Gong, Fei Sha. “Synthesized Classifiers for Zero-Shot Learning.” CVPR (2016). [pdf][code]
  • RML: Ziad Al-Halah, Makarand Tapaswi, Rainer Stiefelhagen. “Recovering the Missing Link: Predicting Class-Attribute Associations for Unsupervised Zero-Shot Learning.” CVPR (2016). [pdf]
  • SLE: Ziming Zhang, Venkatesh Saligrama. “Zero-Shot Learning via Joint Latent Similarity Embedding.” CVPR (2016). [pdf] [code]

ECCV 2016

  • Wei-Lun Chao, Soravit Changpinyo, Boqing Gong2, Fei Sha. “An Empirical Study and Analysis of Generalized Zero-Shot Learning for Object Recognition in the Wild.” ECCV (2016). [pdf]
  • MTE: Xun Xu, Timothy M. Hospedales, Shaogang Gong. “Multi-Task Zero-Shot Action Recognition with Prioritised Data Augmentation.” ECCV (2016). [pdf]
  • Ziming Zhang, Venkatesh Saligrama.“Zero-Shot Recognition via Structured Prediction.” ECCV (2016). [pdf]
  • Maxime Bucher, Stephane Herbin, Frederic Jurie.“Improving Semantic Embedding Consistency by Metric Learning for Zero-Shot Classification.” ECCV (2016). [pdf]

AAAI 2016

  • RKT: Donghui Wang, Yanan Li, Yuetan Lin, Yueting Zhuang. “Relational Knowledge Transfer for Zero-Shot Learning.” AAAI (2016). [pdf]

TPAMI 2016, 2015, 2013

  • ALE: Zeynep Akata, Florent Perronnin, Zaid Harchaoui, and Cordelia Schmid. “Label-Embedding for Image Classification.” TPAMI (2016). [pdf]
  • TMV: Yanwei Fu, Timothy M. Hospedales, Tao Xiang, Shaogang Gong. “Transductive Multi-view Zero-Shot Learning.” TPAMI (2015) [pdf] [code]
  • DAP: Christoph H. Lampert, Hannes Nickisch and Stefan Harmeling. “Attribute-Based Classification for Zero-Shot
    Visual Object Categorization.” TPAMI (2013) [pdf]

CVPR 2015

  • SJE: Zeynep Akata, Scott Reed, Daniel Walter, Honglak Lee, Bernt Schiele. “Evaluation of Output Embeddings for Fine-Grained Image Classification.” CVPR (2015). [pdf] [code]
  • Zhenyong Fu, Tao Xiang, Elyor Kodirov, Shaogang Gong. “Zero-Shot Object Recognition by Semantic Manifold Distance.” CVPR (2015). [pdf]

ICCV 2015

  • SSE: Ziming Zhang, Venkatesh Saligrama. “Zero-Shot Learning via Semantic Similarity Embedding.” ICCV (2015). [pdf] [code]
  • LRL: Xin Li, Yuhong Guo, Dale Schuurmans.“Semi-Supervised Zero-Shot Classification with Label Representation Learning.” ICCV (2015). [pdf]
  • UDA: Elyor Kodirov, Tao Xiang, Zhenyong Fu, Shaogang Gong. “Unsupervised Domain Adaptation for Zero-Shot Learning.” ICCV (2015). [pdf]
  • Jimmy Lei Ba, Kevin Swersky, Sanja Fidler, Ruslan Salakhutdinov. “Predicting Deep Zero-Shot Convolutional Neural Networks using Textual Descriptions.” ICCV (2015). [pdf]

NIPS 2014, 2013, 2009

  • Dinesh Jayram, Kristen Grauman.“Zero-Shot Recognition with Unreliable Attributes” NIPS (2014) [pdf]
  • CMT: Richard Socher, Milind Ganjoo, Christopher D. Manning, Andrew Y. Ng. “Zero-Shot Learning Through Cross-Modal Transfer” NIPS (2013) [pdf] [code]
  • DeViSE: Andrea Frome, Greg S. Corrado, Jonathon Shlens, Samy Bengio, Jeffrey Dean, Marc’Aurelio Ranzato, Tomas Mikolov.“DeViSE: A Deep Visual-Semantic Embedding Model” NIPS (2013) [pdf]
  • Mark Palatucci, Dean Pomerleau, Geoffrey Hinton, Tom M. Mitchell. “Zero-Shot Learning with Semantic Output Codes” NIPS (2009) [pdf]

ECCV 2014

  • TMV-BLP: Yanwei Fu, Timothy M. Hospedales, Tao Xiang, Zhenyong Fu, Shaogang Gong. “Transductive Multi-view Embedding for
    Zero-Shot Recognition and Annotation” ECCV (2014).[pdf] [code]
  • Stanislaw Antol, Larry Zitnick, Devi Parikh. “Zero-Shot Learning via Visual Abstraction.” ECCV (2014). [pdf] [code] [project]

CVPR 2013

  • ALE: Z.Akata, F. Perronnin, Z. Harchaoui, and C. Schmid. “Label Embedding for Attribute-Based Classification.” CVPR (2013). [pdf]

Other Papers

  • EsZSL: Bernardino Romera-Paredes, Philip H. S. Torr. “An embarrassingly simple approach to zero-shot learning.” ICML (2015). [pdf] [Code]
  • AEZSL: “Zero-Shot Learning via Category-Specific Visual-Semantic Mapping and Label Refinement” IEEE SPS (2018). [pdf]
  • ZSGD: Tiancheng Zhao, Maxine Eskenazi. “Zero-Shot Dialog Generation with Cross-Domain Latent Actions” SIGDIAL (2018). [pdf] [code]
  • Yanwei Fu, Tao Xiang, Yu-Gang Jiang, Xiangyang Xue, Leonid Sigal, Shaogang Gong “Recent Advances in Zero-shot Recognition”. IEEE Signal Processing Magazine. [pdf]
  • Michael Kampffmeyer, Yinbo Chen, Xiaodan Liang, Hao Wang, Yujia Zhang, Eric P. Xing “Rethinking Knowledge Graph Propagation for Zero-Shot Learning” arXiv (2018). [pdf] [code]
  • Survey: Wei Wang, Vincent W. Zheng, Han Yu, Chunyan Miao. “A Survey of Zero-Shot Learning: Settings, Methods, and Applications”. TIST (2019). [pdf]

Datasets

  • LAD: Large-scale Attribute Dataset. Categories:230. [link]
  • CUB: Caltech-UCSD Birds. Categories:200. [link]
  • AWA2: Animals with Attributes. Categories:50. [link]
  • aPY: attributes Pascal and Yahoo. Categories:32 [link]
  • Flowers Dataset: There are two datasets, Categories: 17 and 102. [link]
  • SUN: Scene Attributes. Categories:717. [link]

Starter Code

This repository contains a Demo folder which has a Jupyter Notebook step-by-step code to “An embarrassingly simple approach to zero-shot learning.” ICML (2015).
This can be used as an introductory code to obtain the basic understanding of Zero-shot Learning.

Other resources

  • https://medium.com/@alitech_2017/from-zero-to-hero-shaking-up-the-field-of-zero-shot-learning-c43208f71332
  • https://www.analyticsindiamag.com/what-is-zero-shot-learning/
  • https://medium.com/@cetinsamet/zero-shot-learning-53080995d45f

License

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-toLgVBbD-1576163986178)(http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)]

2020-02-02 23:25:40 Chile_Wang 阅读数 81

戳上方蓝字【阿力阿哩哩的炼丹日常】关注我~

4.3

CNN卷积神经网络

我们在4.2节讲到了神经网络已经逐步成为人类智能生活的璀璨明珠,并介绍了全连接神经网络的整个训练过程(深度学习开端-全连接神经网络),整个流程紧凑而又科学,似乎全连接神经网络已经能解决很多问题了,但细心的读者会发现笔者并没有提及全连接神经网络的缺点。因此,这一节笔者正好通过全连接神经网络的缺点来开展CNN卷积神经网络(Convolutional Neural Network)的教学。

01

4.3.1 全连接神经网络的缺点

为了讲清全连接神经网络的局限性,笔者还是拿出上一节最简单的全连接网络结构图来讲解,如图4.3所示,相信大家对这个图也不陌生了。设想一下,我们为了求解损失Loss 列出了关于w,b 的方程,并通过梯度下降的方法去求解最佳的(w , b),从而得到最小的损失Loss。换言之,4.2节的内容简单来讲就是站在山上找最陡峭的地方(梯度),不断地往下走,一直走到山谷,这时候我们所在坐标(w , b)就是Loss方程的最优解。

为此,针对图 4.3的这个网络结构,我们要对隐藏层和输出层求4个偏导,又因为隐藏层的输出作为输出层的输入,这时我们就要用到求偏导的链式法则,公式如下:

由公式(4.14)~(4.19),我们可以看出,两个神经元,为了求出隐藏层和输出层最佳的(w , b),我们就要求四个偏导,期间还得为链式求导付出3次连乘的代价。

现在,重点来了,如图 4.8所示,倘若我们的网络层次越深,偏导连乘也就越多,付出的计算代价也就越大。

紧接着,一个网络层不单止一个神经元,它可能会有多个神经元,那么多个神经元的输出作为下一级神经元的输入时,就会形成多个复杂的嵌套关系。

我们知道全连接神经网络层级之间都是全连接的,所以网络结构越复杂,那要求的(w , b)就会非常多,整个网络就会收敛得非常慢,这是我们所不希望看到的。这就是全连接神经网络的局限性,特别是针对图像这些冗余信息特别多的输入,如果用全连接神经网络去训练,简直就是一场计算灾难。那么既然问题出现了,就会有人提出解决方法。这时候CNN卷积神经网络便应运而生了。

图 4.8 多层全连接神经网络

02

4.3.2 CNN卷积神经网络原理

说了这么多,笔者这就给大家附上一张CNN网络结构图,如图 4.9所示,让大家都有个直观的了解。大家可以看到一个经典的CNN网络结构一般包含输入层(Input layer)、卷积层(convolutional layer)、池化层(pooling layer)和输出层(全连接层+softmax layer)。虽说目前除了输入层,咱啥也不认识,不过,不要慌,接下来就是剖析CNN的精彩时刻。

图 4.9 CNN卷积神经网络示意图

03

4.3.3 卷积神经网络与全连接神经网络的区别

1)总有至少1个的卷积层,用以提取特征。

2)卷积层级之间的神经元是局部连接和权值共享,这样的设计大大减少了(w , b)的数量,加快了训练。

以上便是卷积神经网络的特点,为了让大家更清晰地了解这个网络结构的特点,笔者接下来将分别对它的两个特性和特有的网络层次进行详细讲解。

04

4.3.4 卷积层(Convolutional Layer)

前面我们提到,图像拥有很多冗余的信息,而且往往作为输入信息,它的矩阵又非常大,利用全连接神经网络去训练的话,计算量非常大,前人为此提出了CNN,它的亮点之一就是拥有卷积层。

大家可以想象一下,如果信息过于冗余,那么我们能否去除冗余取出精华部分呢?对,卷积层就是干这个的,通俗易懂来说就是压缩提纯。

那卷积层又是如何工作的呢?大家可以看下图 4.9的CNN网络结构图。卷积层里面有个小框框,那个就是卷积核(Convolutional Kernel),压缩提纯的工作主要通过它来实现的。

现在,笔者再附上一张图,如图 4.10,让大家明白卷积核是怎么工作的,我们可以把蓝色矩阵看做卷积层的上一层,绿色矩阵看做卷积层,在蓝色矩阵上蠕动的便是卷积核,卷积核通过与他所覆盖蓝色矩阵的一部分进行卷积运算,然后把结果映射到绿色矩阵中。

图 4.10 卷积核运算示意图1

那么接下来我们要了解卷积核是如何将结果映射到卷积层的。如图 4.11所示。

 

图 4.11卷积核运算示意图2

现在大家也看到了,卷积核在滑动过程中做的卷积运算就是卷积核w 与其所覆盖的区域的数进行点积,最后将结果映射到卷积层。具体的运算公式如式(4.20)所示。

这样看来,我们将9个点的信息量,压缩成了1个点,也就是有损压缩,这个过程我们也可以认为是特征提取。

公式中(w , b)和之前全连接神经网络并没有区别,就是权值w 和偏置b ,它们在初始化之后,随着整个训练过程一轮又一轮的迭代逐渐趋向于最优。

在卷积核 之后一般会加一个Relu的激励函数,就跟4.2节介绍的全连接神经网络的神经元计算组合公式(4.1)和(4.2)一样,只不过这里换成了Relu激励函数,而全连接神经网络用的是sigmod激励函数。这么做的目的都是让训练结果更优。

好了,讲到这,大家应该大致明白了卷积层的工作方式,就是个压缩提纯的过程,而且每个卷积层不单止一个卷积核,它是可以多个的,大家又可以看一下图 4.9的CNN网络的卷积层,大家会看到输出的特征图在“变胖”,因为特征图的上一级经过多个卷积核压缩提纯,每个卷积核对应一层,多层叠加当然会“变胖”。

05

4.3.5 局部连接和权值共享

笔者在全连接神经网络的局限性中提它的网络层与层之间是全连接的,这就导致了整个训练过程要更新多对(w , b),为此CNN特定引入了局部连接和权值共享的两个特性,来减少训练的计算量。

笔者先给大家介绍一下这么做的科学性在哪?图像或者语言亦或者文本都是冗余信息特别多的东西,倘若我们依照全连接神经网络那般全连接,也就是将所有信息的权值都考虑进了训练过程。

讲到这,大家应该明白这么设计的用途了吧,没错,就是适当得放弃一些连接(局部连接),不仅可以避免网络将冗余信息都学习进来,同时也和权值共享特性一样减少训练的参数,加快整个网络的收敛。

局部连接与权值共享如图 4.12和图 4.13所示。

图 4.12 局部连接

图 4.13权值共享

大家可以重点看权值共享这张图,它同时也采用了局部连接,总共就有3*4=12个权值,再加上权值共享,我们就只用求3个权值了,大大减少了我们的计算量。

06

4.3.6 池化层(Pooling Layer)

一般来说,卷积层后面都会加一个池化层,这时候大家又可以往上看看图 4.9的CNN网络结构了,并且可以将它理解为对卷积层进一步特征抽样,池化层主要分为两种,这时候笔者认为前面说了这么多,现在给大家上一张图,大家应该就明白池化层是何用处。池化层运算如图 4.14所示。

图 4.14 Pooling运算示意图

是的,max就是将对应方块中最大值一一映射到最大池化层(max pooling layer),mean就是将对应方块的平均值一一映射到平均池化层(mean pooling layer)。

07

4.3.7 训练

好了,讲到这,我们终于把整个CNN架构特有的层次结构和属性都过了一遍,这时候大家应该大致明白整个CNN架构就是一个不断压缩提纯的过程,目的不单止是为了加快训练速度,同时也是为了放弃冗余信息,避免将没必要的特征都学习进来,保证训练模型的泛化性。

CNN整个训练过程和全连接神经网络差不多,甚至是笔者之后介绍的RNN、LSTM模型,他们的训练过程也和全连接神经网络差不多,唯一不同的就是损失Loss 函数的定义,之后就是不断训练,找出最优的(w , b),完成建模,所以大家搞懂了全连接神经网络的训练过程,就基本吃遍了整个深度学习最重要的数学核心知识了。

这时候,细心的读者们会发现CNN网络结构的输出层也就是softmax层没介绍,是的,笔者现在就开始介绍。CNN损失函数之所以不同也是因为它,这层是CNN的分类层,如图 4.15所示。 

图 4.15 softmax层示意图 

softmax层的每一个节点的激励函数

上面的公式,我们可以理解为每个节点输出一个概率,所有节点的概率加和等于1,这也是CNN选择softmax层进行分类的原因所在,可以将一张待分类的图片放进模型,softmax输出的概率中,最大概率所对应的标签便是这张待分类图的标签。

这时候,笔者给大家举个例子就明白了。现在我们的softmax层有3个神经元,也就是说我们可以训练一个分三类的分类器,现在假设我们有一组带标签的训练样本,他们的标签可以如此标记,对应节点标记1,其他标记0。其实就是onehot编码,如图 4.16所示。

图 4.16 One-hot编码示意图

训练的时候将训练样本图片放入输入层,标签向量放入输出层,最终训练出一个模型。

此时,笔者将一张待分类的图片放入我们的模型中,如果最后softmax层输出的结果是结果(4.25)。

这时,大家就明白了上诉公式的含义了,0.85对应着最大概率,说明这张图片是猫。接着所有概率加起来等于1,这样是不是好理解很多啦。好了,讲了这么久,我们还是没有把softmax的损失函数给写出来,它有点特殊,叫交叉熵,如式(4.26)~(4.27)所示。   

虽说它长得奇奇怪怪的,但是整体的训练过程和全连接神经网络的思路是一样,都是通过梯度下降法找出最优的(w , b),使Loss 最小,最终完成建模。

08

4.3.8 CNN卷积神经网络的超参数设置

接下来介绍的内容就比较愉快了,主要是介绍训练CNN网络之前有些参数需要大家手动去设置,行话称之为超参数设置(hyperparameters setting)。

1. 卷积核初始化

卷积核的权值w和偏置b一开始是需要我们人工去初始化的,这里初始化的方法有很多,Tensorflow或者Keras在我们构建卷积层的时候自行给我们初始化了,但是哪天大家心血来潮想自己初始化也是可以的,我们的权值初始化可以根据高斯分布去设置,这样得到的初始化权值更加符合自然规律,毕竟咱们的计算机也是自然界的一部分。

2. Padding

Padding是指对输入图像用多少个像素去填充,如图 4.17所示。

这么做的目的也非常的简单,就是为了保持边界信息,倘若不填充,边界信息被卷积核扫描的次数远比不是中间信息的扫描次数,这样就降低了边界信息的参考价值了。

其次还有另外一个目的是,有可能输入图片的尺寸参差不齐,通过Padding来使所有的输入图像尺寸一致,避免训练过程中没必要的错误。

图 4.17 Padding示意图

3. Stride步幅

就是卷积核工作的时候,每次滑动的格子数,默认是1,但是也可以自行设置,步幅越大,扫描次数越少,得到的特征也就越“粗糙”,至于如何设置,业界并没有很好的判断方法,也就是说,一切全靠大家自己去试,怎么优秀怎么来。如图 4.18所示。

图 4.18 Stride示意图

09

4.3.9 CNN卷积神经网络小结

上面讲了这么多,其实放在TensorFlow或者Keras里面就是几行代码的事,但是笔者还是倾向于让大家理解整个CNN到底是怎么训练的,它的优点又在哪,这样大家也不至于只知道CNN能用来干嘛,也知道了CNN为什么能这么做,这样对大家以后自己组建一个厉害的网络是很有指导意义的。

下一期,我们将讲授

神经网络的超参数(Hyperparameters)

敬请期待~

关注我的微信公众号~不定期更新相关专业知识~

内容 |阿力阿哩哩 

编辑 | 阿璃 

点个“在看”,作者高产似那啥~

 

2017-12-12 00:00:00 tkkzc3E6s4Ou4 阅读数 369

来源:ResysChina

作者:张相於

注:本文是作者发表在《程序员》杂志(2017年11月刊)的专题约稿文章。

成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能力,这些能力中的每一项掌握起来都需要足够的努力和经验。

而要成为一名合格的机器学习算法工程师(以下简称算法工程师)更是难上加难,因为在掌握工程师的通用技能以外,还需要掌握一张不算小的机器学习算法知识网络。

下面我们就将成为一名合格的算法工程师所需的技能进行拆分,一起来看一下究竟需要掌握哪些技能才能算是一名合格的算法工程师。


图1 机器学习算法工程师技能树




基础开发能力




所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。有些同学对于这一点存在一些误解,认为所谓算法工程师就只需要思考和设计算法,不用在乎这些算法如何实现,而且会有人帮你来实现你想出来的算法方案。这种思想是错误的,在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。

笔者曾经见过一些企业实行过算法设计与算法实现相分离的组织架构,但是在这种架构下,说不清楚谁该为算法效果负责,算法设计者和算法开发者都有一肚子的苦水,具体原因不在本文的讨论范畴中,但希望大家记住的是,基础的开发技能是所有算法工程师都需要掌握的。

基础开发所涉及到的技能非常的多,在这里只挑选了两个比较重要的点来做阐述。

单元测试

在企业应用中,一个问题的完整解决方案通常包括很多的流程,这其中每个环节都需要反复迭代优化调试,如何能够将复杂任务进行模块划分,并且保证整体流程的正确性呢?最实用的方法就是单元测试。单元测试并不只是简单的一种测试技能,它首先是一种设计能力。并不是每份代码都可以做单元测试,能做单元测试的前提是代码首先是可以划分为多个单元——也就是模块的。在把项目拆解成可独立开发和测试的模块之后,再加上对每个模块的独立的、可重复的单元测试,就可以保证每个模块的正确性,如果每个模块的正确性都可以保证,那么整体流程的正确性就可以得到保证。

对于算法开发这种流程变动频繁的开发活动来讲,做好模块设计和单元测试是不给自己和他人挖坑的重要保证。也是能让自己放心地对代码做各种改动优化的重要前提。

逻辑抽象复用

逻辑的抽象复用可以说是所有软件开发活动中最为重要的一条原则,衡量一个程序员代码水平的重要原则之一就是看他代码中重复代码和相似代码的比例。大量重复代码或相似代码背后反映的是工程师思维的懒惰,因为他觉得复制粘贴或者直接照着抄是最省事的做法。这样做不仅看上去非常的丑陋,而且也非常容易出错,更不用提维护起来的难度。

算法开发的项目中经常会有很多类似逻辑的出现,例如对多个特征使用类似的处理方法,还有原始数据ETL中的很多类似处理方法。如果不对重复逻辑做好抽象,代码看上去全是一行行的重复代码,无论是阅读起来还是维护起来都会非常麻烦。




概率和统计基础




概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。学会用概率的视角看待问题,用概率的语言描述问题,是深入理解和熟练运用机器学习技术的最重要基础之一。

概率论内容很多,但都是以具体的一个个分布为具体表现载体体现出来的,所以学好常用的概率分布及其各种性质对于学好概率非常重要。对于离散数据,伯努利分布、二项分布、多项分布、Beta分布、狄里克莱分布以及泊松分布都是需要理解掌握的内容;对于离线数据,高斯分布和指数分布族是比较重要的分布。这些分布贯穿着机器学习的各种模型之中,也存在于互联网和真实世界的各种数据之中,理解了数据的分布,才能知道该对它们做什么样的处理。

此外,假设检验的相关理论也需要掌握。在这个所谓的大数据时代,最能骗人的大概就是数据了,掌握了假设检验和置信区间等相关理论,才能具备分辨数据结论真伪的能力。例如两组数据是否真的存在差异,上线一个策略之后指标是否真的有提升等等。这种问题在实际工作中非常常见,不掌握相关能力的话相当于就是大数据时代的睁眼瞎。

在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。




机器学习理论




虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义:

  • 掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。只有在这个基础上才能够真正具备搭建一套机器学习系统的能力,并对其进行持续优化。否则只能算是机器学习搬砖工人,算不得合格的工程师。出了问题也不会解决,更谈不上对系统做优化。

  • 学习机器学习的基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是,这些基础理论里面体现的是一套思想和思维模式,其内涵包括概率性思维、矩阵化思维、最优化思维等多个子领域,这一套思维模式对于在当今这个大数据时代做数据的处理、分析和建模是非常有帮助的。如果你脑子里没有这套思维,面对大数据环境还在用老一套非概率的、标量式的思维去思考问题,那么思考的效率和深度都会非常受限。

机器学习的理论内涵和外延非常之广,绝非一篇文章可以穷尽,所以在这里我列举了一些比较核心,同时对于实际工作比较有帮助的内容进行介绍,大家可在掌握了这些基础内容之后,再不断探索学习。

基础理论

所谓基础理论,指的是不涉及任何具体模型,而只关注“学习”这件事本身的一些理论。以下是一些比较有用的基础概念:

  • VC维。VC维是一个很有趣的概念,它的主体是一类函数,描述的是这类函数能够把多少个样本的所有组合都划分开来。VC维的意义在哪里呢?它在于当你选定了一个模型以及它对应的特征之后,你是大概可以知道这组模型和特征的选择能够对多大的数据集进行分类的。此外,一类函数的VC维的大小,还可以反应出这类函数过拟合的可能性。

  • 信息论。从某种角度来讲,机器学习和信息论是同一个问题的两个侧面,机器学习模型的优化过程同时也可以看作是最小化数据集中信息量的过程。对信息论中基本概念的了解,对于机器学习理论的学习是大有裨益的。例如决策树中用来做分裂决策依据的信息增益,衡量数据信息量的信息熵等等,这些概念的理解对于机器学习问题神本的理解都很有帮助。这部分内容可参考《Elements of Information Theory》这本书。

  • 正则化和bias-variance tradeoff。如果说现阶段我国的主要矛盾是“人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾”,那么机器学习中的主要矛盾就是模型要尽量拟合数据和模型不能过度拟合数据之间的矛盾。而化解这一矛盾的核心技术之一就是正则化。正则化的具体方法不在此讨论,但需要理解的,是各种正则化方法背后透露出的思想:bias-variance tradoff。在不同利益点之间的平衡与取舍是各种算法之间的重要差异,理解这一点对于理解不同算法之间的核心差异有着非常重要的作用。

  • 最优化理论。绝大多数机器学习问题的解决,都可以划分为两个阶段:建模和优化。所谓建模就是后面我们会提到的各种用模型来描述问题的方法,而优化就是建模完成之后求得模型的最优参数的过程。机器学习中常用的模型有很多,但背后用到的优化方法却并没有那么多。换句话说,很多模型都是用的同一套优化方法,而同一个优化方法也可以用来优化很多不同模型。对各种常用优化方法的和思想有所有了解非常有必要,对于理解模型训练的过程,以及解释各种情况下模型训练的效果都很有帮助。这里面包括最大似然、最大后验、梯度下降、拟牛顿法、L-BFGS等。

机器学习的基础理论还有很多,可以先从上面的概念学起,把它们当做学习的起点,在学习过程中还会遇到其他需要学习的内容,就像一张网络慢慢铺开一样,不断积累自己的知识。这方面基础理论的学习,除了Andrew Ng的著名课程以外,《Learning from Data》这门公开课也非常值得大家学习,这门课没有任何背景要求,讲授的内容是在所有模型之下的基础中的基础,非常地靠近机器学习的内核本质。这门课的中文版本叫做《机器学习基石》,也可以在网上找到,其讲授者是上面英文版本讲授者的学生。

有监督学习

在了解了机器学习的基本概念之后,就可以进入到一些具体模型的学习中了。在目前的工业实践中,有监督学习的应用面仍然是最广泛的,这是因为我们现实中遇到的很多问题都是希望对某个事物的某个属性做出预测,而这些问题通过合理的抽象和变换,都可以转化为有监督学习的问题。

在学习复杂模型之前,我建议大家都先学习几个最简单的模型,典型的如朴素贝叶斯。朴素贝叶斯有很强的假设,这个假设很多问题都不满足,模型结构也很简单,所以其优化效果并不是最好的。但也正是由于其简单的形式,非常利于学习者深入理解整个模型在建模和优化过程中的每一步,这对于搞清楚机器学习是怎么一回事情是非常有用的。同时,朴素贝叶斯的模型形式通过一番巧妙的变换之后,可以得到和逻辑回归形式上非常统一的结果,这无疑提供了对逻辑回归另外一个角度的解释,对于更加深刻理解逻辑回归这一最常用模型有着非常重要的作用。

在掌握了机器学习模型的基础流程之后,需要学习两种最基础的模型形式:线性模型和树形模型,分别对应着线性回归/逻辑回归和决策回归/分类树。现在常用的模型,无论是浅层模型还是深度学习的深层模型,都是基于这两种基础模型形式变幻而来。而学习这两种模型的时候需要仔细思考的问题是:这两种模型的本质差异是什么?为什么需要有这两种模型?他们在训练和预测的精度、效率、复杂度等方面有什么差异?了解清楚这些本质的差异之后,才可以做到根据问题和数据的具体情况对模型自如运用。

在掌握了线性模型和树形模型这两种基础形式之后,下一步需要掌握的是这两种基础模型的复杂形式。其中线性模型的复杂形式就是多层线性模型,也就是神经网络。树模型的复杂形式包括以GDBT为代表的boosting组合,以及以随机森林为代表的bagging组合。这两种组合模型的意义不仅在于模型本身,boosting和bagging这两种组合思想本身也非常值得学习和理解,这代表了两种一般性的强化方法:boosting的思想是精益求精,不断在之前的基础上继续优化;而bagging的思想是“三个臭裨将顶一个诸葛亮”,是通过多个弱分类器的组合来得到一个强分类器。这两种组合方法各有优劣,但都是在日常工作中可以借鉴的思想。例如在推荐系统中所我们经常会使用多个维度的数据做召回源,从某个角度来看就是一种bagging的思想:每个单独召回源并不能给出最好表现,但是多个召回源组合之后,就可以得到比每个单独召回源都要好的结果。所以说思想比模型本身更重要。

无监督学习

有监督学习虽然目前占了机器学习应用的大多数场景,但是无监督学习无论从数据规模还是作用上来讲也都非常的重要。无监督学习的一大类内容是在做聚类,做聚类的意义通常可以分为两类:一类是将聚类结果本身当做最终的目标,另一类是将聚类的结果再作为特征用到有监督学习中。但这两种意义并不是和某种聚类方法具体绑定,而只是聚类之后结果的不同使用方式,这需要在工作中不断学习、积累和思考。而在入门学习阶段需要掌握的,是不同聚类算法的核心差异在哪里。例如最常用的聚类方法中,kmeans和DBSCAN分别适合处理什么样的问题?高斯混合模型有着什么样的假设?LDA中文档、主题和词之间是什么关系?这些模型最好能够放到一起来学习,从而掌握它们之间的联系和差异,而不是把他们当做一个个孤立的东西来看待。

除了聚类以外,近年来兴起的嵌入表示(embedding representation)也是无监督学习的一种重要方法。这种方法和聚类的差异在于,聚类的方法是使用已有特征对数据进行划分,而嵌入表示则是创造新的特征,这种新的特征是对样本的一种全新的表示方式。这种新的表示方法提供了对数据全新的观察视角,这种视角提供了数据处理的全新的可能性。此外,这种做法虽然是从NLP领域中兴起,但却具有很强的普适性,可用来处理多种多样的数据,都可以得到不错的结果,所以现在已经成为一种必备的技能。

机器学习理论方面的学习可以从《An Introduction to Statistical Learning with Application in R》开始,这本书对一些常用模型和理论基础提供了很好的讲解,同时也有适量的习题用来巩固所学知识。进阶学习可使用上面这本书的升级版《Elements of Statistical Learning》和著名的《Pattern Recognition and Machine Learning》。




开发语言和开发工具




掌握了足够的理论知识,还需要足够的工具来将这些理论落地,这部分我们介绍一些常用的语言和工具。

开发语言

近年来Python可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。所以Python方面我就不再赘述。但是在学习Python以外,我建议大家可以再学习一下R语言,主要原因有以下几点:

  • R语言具有最完备的统计学工具链。我们在上面介绍了概率和统计的重要性,R语言在这方面提供的支持是最全面的,日常的一些统计方面的需求,用R来做可能要比用Python来做还要更快。Python的统计科学工具虽然也在不断完善,但是R仍然是统计科学最大最活跃的社区。

  • 向量化、矩阵化和表格化思维的培养。R中的所有数据类型都是向量化的,一个整形的变量本质上是一个长度为一的一维向量。在此基础上R语言构建了高效的矩阵和(DataFrame)数据类型,并且在上面支持了非常复杂而又直观的操作方法。这套数据类型和思考方式也在被很多更现代化的语言和工具所采纳,例如Numpy中的ndarray,以及Spark最新版本中引入的DataFrame,可以说都是直接或间接从R语言得到的灵感,定义在上面的数据操作也和R中对DataFrame和向量的操作如出一辙。就像学编程都要从C语言学起一样,学数据科学和算法开发我建议大家都学一下R,学的既是它的语言本身,更是它的内涵思想,对大家掌握和理解现代化工具都大有裨益。

除了R以外,Scala也是一门值得学习的语言。原因在于它是目前将面向对象和函数式两种编程范式结合得比较好的一种语言,因为它不强求你一定要用函数式去写代码,同时还能够在能够利用函数式的地方给予了足够的支持。这使得它的使用门槛并不高,但是随着经验和知识的不断积累,你可以用它写出越来越高级、优雅的代码。

开发工具

开发工具方面,Python系的工具无疑是实用性最高的,具体来说,Numpy、Scipy、sklearn、pandas、Matplotlib组成的套件可以满足单机上绝大多数的分析和训练工作。但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如LibSVM、Liblinear、XGBoost等。

大数据工具方面,目前离线计算的主流工具仍然是Hadoop和Spark,实时计算方面Spark Streaming和Storm也是比较主流的选择。近年来兴起的新平台也比较多,例如Flink和Tensorflow都是值得关注的。值得一提的是,对于Hadoop和Spark的掌握,不仅要掌握其编码技术,同时还要对其运行原理有一定理解,例如,Map-Reduce的流程在Hadoop上是如何实现的,Spark上什么操作比较耗时,aggregateByKey和groupByKey在运行原理上有什么差异,等等。只有掌握了这些,才能对这些大数据平台运用自如,否则很容易出现程序耗时过长、跑不动、内存爆掉等等问题。




架构设计




最后我们花一些篇幅来谈一下机器学习系统的架构设计。所谓机器学习系统的架构,指的是一套能够支持机器学习训练、预测、服务稳定高效运行的整体系统以及他们之间的关系。

在业务规模和复杂度发展到一定程度的时候,机器学习一定会走向系统化、平台化这个方向。这个时候就需要根据业务特点以及机器学习本身的特点来设计一套整体架构,这里面包括上游数据仓库和数据流的架构设计,以及模型训练的架构,还有线上服务的架构等等。这一套架构的学习就不像前面的内容那么简单了,没有太多现成教材可以学习,更多的是在大量实践的基础上进行抽象总结,对当前系统不断进行演化和改进。但这无疑是算法工程师职业道路上最值得为之奋斗的工作。在这里能给的建议就是多实践,多总结,多抽象,多迭代。




机器学习算法工程师领域现状




现在可以说是机器学习算法工程师最好的时代,各行各业对这类人才的需求都非常旺盛。典型的包括以下一些细分行业:

  • 推荐系统。推荐系统解决的是海量数据场景下信息高效匹配分发的问题,在这个过程中,无论是候选集召回,还是结果排序,以及用户画像等等方面,机器学习都起着重要的作用。

  • 广告系统。广告系统和推荐系统有很多类似的地方,但也有着很显著的差异,需要在考虑平台和用户之外同时考虑广告主的利益,两方变成了三方,使得一些问题变复杂了很多。它在对机器学习的利用方面也和推荐类似。

  • 搜索系统。搜索系统的很多基础建设和上层排序方面都大量使用了机器学习技术,而且在很多网站和App中,搜索都是非常重要的流量入口,机器学习对搜索系统的优化会直接影响到整个网站的效率。

  • 风控系统。风控,尤其是互联网金融风控是近年来兴起的机器学习的又一重要战场。不夸张地说,运用机器学习的能力可以很大程度上决定一家互联网金融企业的风控能力,而风控能力本身又是这些企业业务保障的核心竞争力,这其中的关系大家可以感受一下。

但是所谓“工资越高,责任越大”,企业对于算法工程师的要求也在逐渐提高。整体来说,一名高级别的算法工程师应该能够处理“数据获取→数据分析→模型训练调优→模型上线”这一完整流程,并对流程中的各种环节做不断优化。一名工程师入门时可能会从上面流程中的某一个环节做起,不断扩大自己的能力范围。

除了上面列出的领域以外,还有很多传统行业也在不断挖掘机器学习解决传统问题的能力,行业的未来可谓潜力巨大。

参考文献 

朴素贝叶斯和逻辑回归之间的关系可参考:http://www.cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdf 

《learning_from_data》 

《An Introduction to Statistical Learning with Application in R》: 

英文版下载:http://www-bcf.usc.edu/~gareth/ISL/; 

中译版名为《统计学习导论》,前七章的视频课程可见:http://edu.csdn.net/huiyiCourse/series_detail/13。 

《Elements of Statistical Learning》 

《Elements of Information Theory》


本文作者:

张相於(zhangxy@live.com)现任转转推荐系统负责人负责转转的推荐系统。

点击下方“阅读原文”下载【同声译】
↓↓↓
没有更多推荐了,返回首页