在网上看到一篇关于深度学习的贴子,写的比较好,特转来与大家分享,感谢原作者
Tel-Aviv大学深度学习实验室的Ofir同学写了一篇如何入门深度学习的文章,顺手翻译一下,造福大家。
人工神经网络最近在很多领域(例如面部识别,物体发现和围棋)都取得了突破,深度学习变得炙手可热。如果你对深度学习感兴趣的话,这篇文章是个不错的起点。
如果你学过线性代数,微积分,概率论和编程,我建议你从斯坦福大学的CS231n课程开始。这门课内容广泛,写得很高。可每次课的幻灯片都可以下载,虽然官方网站删除了配套的视频,但是你很容易就能在网上搜索到。
如果你没有学过那些数学课,网上也有很多免费的学习材料可以用来学习必要的数学知识。Gilbert Stange的线性代数课程很适合入门。对于其他科目,edX上有MIT的微积分和概率论课程。
如果想学习更多关于机器学习的东西,Andrew Ng在Coursera上的机器学习课程是最佳入门选择。除此之外,Yaser Abu-Mostafa的机器学习课程更关注理论,但也很适合初学者。学习深度学习并不要求掌握机器学习,但如果能有一些了解的话还是很有帮助的。此外,学习经典的机器学习,而不仅仅是深度学习,能让我们有深厚的理论背景————因为,深度学习并不总是最佳方案。
CS231n并不是在线深度学习课程的唯一选择。Geoffrey Hinton的Coursera课程『用于机器学习的神经网络』(Neural Nerworks for Machine Learning)涵盖了诸多内容,Hugo Larochelle的『神经网络课』(Neural Networks Class) 也是如此。这两门课都有视频材料。Nando de Freitas的在线课程也带有视频、幻灯片和家庭作业。
如果你不喜欢看视频,而是更喜欢阅读,《神经网络和深度学习》(Neural Networks and Deep Learning)是一本为深度学习的初学者撰写的在线免费书。《深度学习之书》(The Deep Learning Book)也是一本很赞的免费书,不过内容略高阶一点。
有了基础知识之后,还可以往这些方面发展:
几乎上述所有的深度学习材料都或多或少的涉及到计算机视觉(Computer Vision)。
递归神经网络(Recurrent Nerual Networks)是用于解决诸如机器翻译和语音识别之类的问题的神经网络模型的基础。Andrej Karpathy关于RNN的博客文章可以帮你学习它。Christopher Olah的博客上有一篇文章用非常形象生动的方式解释了很多深度学习的概念。他关于LSTM网络的文章是一篇很不错的导论,LSTM是一种应用广泛的RNN变体。
自然语言处理:CS224d课程介绍了深度学习在自然语言处理中的应用。更高阶的课程来自Kyunghyun Cho(这里有课堂笔记)和Yoav Goldberg。
增强学习:如果你想要控制机器人,或者是在围棋比赛上战胜人类,增强学习或许是最佳选择。Andrej Karpathy关于深度增强学习的博客文章可以帮你入门。David Silver最近也发表了一篇介绍深度增强学习的短文章。
深度学习框架:深度学习框架很多,最有名的三个应该是Tensorflow(谷歌),Torch(Facebook)和Theano(MILA)。三个都很牛逼,如果一定要推荐一个的话,我建议初学者去试试Tensorflow。Tensorflow的教程很不错。
训练神经网络几乎离不开GPU。虽然不是必须的,但GPU可以帮你更快的完成工作。NVIDIA显卡是工业标准,大部分研究实验室都在用一千美元的显卡,很少有便宜货能搞定这个事情。另一个成本更低的办法是从诸如亚马逊之类的云计算服务供应商那租一个带GPU的实例(这里有短教程)。