很早之前,听过雷军说的一句话:“站在风口上,猪都可以飞起来”!这句话用来形容现在的深度学习非常贴切。是的,近几年来,深度学习的发展极其迅速。其影响力已经遍地开花,在医疗、自动驾驶、机器视觉、自然语言处理等各个方面大展身手。在深度学习这个世界大风口上,谁能抢先进入深度学习领域,学会运用深度学习技术,谁就能真正地在AI时代“飞”起来。
对于每一个想要开始学深度学习的大学生、IT程序员或者其他想转行的人来说,最迫切的需求就是深度学习该如何入门。下面来谈一谈笔者的看法。
没错,就是放弃海量资料!在我们想要入门深度学习的时候,往往会搜集很多资料,比如xx学院深度学习内部资源、深度学习从入门到进阶百吉字节资源、xx人工智能教程等。很多时候我们拿着十几吉字节、几百吉字节的学习资源,然后踏踏实实地放到了某个云盘里存着,等着日后慢慢学习。殊不知,有90%的人仅仅只是搜集资料、保存资料而已,放在云盘里一年半载也没打开学习。躺在云盘的资料很多时候只是大多数人“以后好好学习”的自我安慰和“自我”安全感而已。而且,面对海量的学习资料,很容易陷入一种迷茫的状态,最直接的感觉就是:天啊,有这么多东西要学!天啊,还有这么多东西没学!简单来说,就是选择越多,越容易让人陷入无从选择的困境。
所以,第一步就是要放弃海量资料,选择一份真正适合自己的资料,好好研读下去,消化它。最终会发现收获很大。
深度学习的初学者总会在学习路径上遇到困惑。先是那些框架,就让你不知道该从哪里着手。一堆书籍,也让你犹豫如何选择。即便你去咨询专业人士,他们也总会轻飘飘地告诉你一句“先学好数学”。怎样算是学好?深度学习是一门融合概率论、线性代数、凸优化、计算机、神经科学等多方面的复杂技术。学好深度学习需要的理论知识很多,有些人可能基础不是特别扎实,就想着从最底层的知识开始学起,如概率论、线性代数、机器学习、凸优化公式推导等。但是这样做的坏处是比较耗费时间,而且容易造成“懈怠学习”,打消学习的积极性,直到你彻底放弃学习的想法。真要按照他们的要求按部就班地学习,没有几年功夫,你连数学和编程基础都学不完。可到那时候,许多“低垂的果实”还在吗?
因为“啃”书本和推导公式相对来说是比较枯燥的,远不如自己搭建一个简单的神经网络更能激发自己学习的积极性。当然,不是说不需要钻研基础知识,只是说,在入门的时候,最好先从顶层框架上有个系统的认识,然后从实践到理论,有的放矢地查缺补漏机器学习的知识点。从宏观到微观,从整体到细节,更有利于深度学习快速入门。而且从学习的积极性来说,也起到了“正反馈”的作用。
谈完了深度学习入门的两个“放弃”之后,接下来看深度学习究竟该如何快速入门。
俗话说“工欲善其事,必先利其器”。学习深度学习,掌握一门合适的编程语言非常重要。最佳的选择就是Python。为什么人工智能、深度学习会选择Python呢?一方面是因为Python作为一门解释型语言,入门简单,容易上手。另一方面是因为Python的开发效率高,Python有很多库很方便实现人工智能,比如NumPy、SciPy做数值计算,Sklearn做机器学习,Matplotlib将数据可视化,等等。总的来说,Python既容易上手,又是功能强大的编程语言。可以毫不夸张地说,Python可以支持从航空航天器系统的开发到小游戏开发的几乎所有领域。
这里笔者强烈推荐Python,因为Python作为一个万能胶水语言,能做的事情实在太多,并且它非常容易上手。笔者大概花了50个小时学习了Python的基础语法,然后就可以开始动手写神经网络代码了。
总之,Python是整个过程并不耗精力的环节,但是刚开始记语法确实挺无聊的,需要些许坚持。
对于工业界的人工智能项目,一般都不重复造轮子:不会从零开始写一套人工智能算法,而往往选择采用一些已有的算法库和算法框架。以前,我们可能会选用已有的各种算法来解决不同的问题。现在一套深度学习框架就可以解决几乎所有问题,进一步降低了人工智能项目开发的难度。Facebook人工智能研究院(FAIR)团队在GitHub上开源了PyTorch深度学习框架,并迅速占领GitHub热度榜榜首。
如果说Python是我们手中的利器,那么一个好的深度学习框架无疑给了我们更多的资源和工具,方便我们实现庞大、高级、优秀的深度学习项目。
奥卡姆剃刀定律(Occam’s Razor, Ockham’s Razor)又称“奥康的剃刀”,它是由14世纪英格兰的逻辑学家、圣方济各会修士奥卡姆的威廉(William of Occam,约1285—1349年)提出的。这个原理称为“如无必要,勿增实体”,即“简单有效原理”。正如他在《箴言书注》2卷15题说的“切勿浪费较多东西去做,用较少的东西,同样可以做好事情。”
深度学习的底层实际结构很复杂。然而,作为应用者,你只需要几行代码,就能实现上述神经网络。加上数据读取和模型训练,也不过寥寥十来行代码。感谢科技的进步,深度学习的用户接口越来越像搭积木。只要你投入适当的学习成本,总是能很快学会。PyTorch是当前主流的深度学习框架之一,其追求最少的封装、最直观的设计,其简洁优美的特性使得PyTorch代码更易理解,对新手非常友好。今年大火的ChatGPT是由OpenAI使用Python编程语言实现的自然语言处理模型,是基于深度学习技术实现的,使用了Python中的PyTorch等深度学习框架来训练模型。
现在很多教程和课程都忽视了实践的重要性,将大量精力放在了理论介绍上。我们都知道纸上谈兵的典故,重理论、轻实践的做法是非常不可取的。就像前面讲的第2个“放弃”一样,在具备基本的理论知识之后,最好就去实践、编写代码,解决实际问题。从学习的效率上讲,速度是最快的。
对于毫无AI技术背景,只会Python编程语言,从零开始入门深度学习的同学,不要犹豫开始学习吧,深度学习入门可以很简单!