发信人: CRH1235 (江左没狼), 信区: Programming 标 题: 胡扯几句什么叫Deep Learning入门 发信站: BBS 未名空间站 (Sat Jul 8 22:23:36 2017, 美东) 今天有空瞎扯几句,版上的大神们不要见笑。其实今天很多人所谓的ML入门,其实是DL 入门,或者叫神经网络入门。我觉得可以分三步。 第一,把Goodfellow等著的deep learning书Part I and Park II都看懂,包括第一章数 学基础都查漏补缺完成,基本的理论基础就具备了。看不懂的youtube,Coursera, udacity找资源帮助理解。 第二,自己实现几个简单的神经网络,我个人建议是用numpy手撕一个MLP,一个 vanilla的CNN和一个vanilla的RNN,重点是了解matrix(或者叫tensor)在层之间怎么流 动,forward(比如convolution),backward(尤其是RNN的backpropagation through time)怎么实现。这些都不难,但是需要一些耐心。虽然耗时间,但是对彻底 摸清神经网络的工作细节很有帮助。所有的三个网络都可以用mnist数据集。 第三,学习一两个主流的libraries。个人推荐先学pytorch,后学tensorflow。因为这 两个是DL libraries的两种风格,imperative programming vs symbolic programming 的代表。symbolic programming一开始会不习惯,不如先把pytorch学好再开始 tensorflow。这两个反正都得学会,先学哪个都一样。从pytorch开始learning curve 比较平缓。 学习libraries的顺序是先看tutorial,依葫芦画瓢做几个图像识别(比如 not hotdog )和简单的语言模型,这就算CNN和RNN都算是“会了”。下一步可以做些复杂的图像应 用比如style transfer,object detection,对RNN有兴趣的可以用pytorch自己 写个LSTM什么的。 能做到以上三点个人觉得可以算DL入门了。再往下的更深入的研究就要看个人的兴趣。