ML&DEV[3] | 机器学习入门线路

【ML&DEV】

这是大家没有看过的船新栏目!ML表示机器学习,DEV表示开发,本专栏旨在为大家分享作为算法工程师的工作,机器学习生态下的有关模型方法和技术,从数据生产到模型部署维护监控全流程,预备知识、理论、技术、经验等都会涉及,近期内容以入门线路为主,敬请期待!

往期回顾:

之前写了有关计算机开发能力和数学能力的入门,在已有一定开发和数学基础的前提下,大家可以慢慢开展机器学习方面的学习。另外,我的线路不求全面和仔细,我只提出一种可靠性最高的线路给大家,大家可以根据自己的实际情况参考,开始之前记住一点:

入门玩家有简单模式,高手玩家有困难模式,简单模式的收获肯定没有困难模式高,当然的,入门玩家为了得到更大的收益可以先在简单模式练习然后再上困难模式,游戏怎么玩都是自己喜欢的策略,但是值得关注的是,只有游戏通关了才会有收益。

补充一句,对于已经入门的大家,也可以一起看看,自己有什么缺漏之处,或者我有什么可以添加的,均可交流讨论。

懒人目录:

  • 学习目标

  • 我的入门经历

  • 学习路线

  • 其他学习

学习目标

在开始一项任务之前,我们还是先确认一下学习目标。

基本要求如下:

  • 掌握基本的机器学习算法,并学会具体应用。

  • 尝试了解基本的深度学习模型,并能够完成一定的案例练习。

基本要求其实很简短,但其实并不是大家想的那么简单,注意这里有几个隐含的内容。

  • 理论要懂。

  • 会实现,大部分都是代码实现。

  • 解决实际问题,要考虑到问题的背景,因此特征工程也要了解。

  • 掌握模型评估。

这也是机器学习初学者最容易忽略的几个点,只有把这几个点全都能掌握,才算是真正称得上是“会”。

补充目标,这个是补充目标,但是非常关键——知道自己为什么要学机器学习,根据自己的目标来进一步确定学习策略。

  • 为了解决一个实际问题——理解机器学习的基本内容,多看相关的案例,然后模仿解决。

  • 工作——直接对标算法工程师的话,技术和理论都得扎实,同时要匹配市场需求。

  • 科研——理论优先,技术保证实现即可,以能够做实验比对实验结果为目标。

我的入门经历

简单说说我的经历吧,我的入门其实就是在统计梯队下的集体学习,当时学的是《统计学习方法》的第一版。

数学系更喜欢抠理论,要求深度理解,要求知道为什么,但是对如何实现倒是不太关心,每周一次讨论班集体学习,每个人负责一章,内容基本就是在照着书本的进度在推进,同时会加上一些自己网上查阅的资料进行讲解,说实话,在这段时间下,我的收获很大,但是,我其实不止步于此吧,我还查阅了比较多的资料,了解机器学习的实现,同时也知道了很多有关python的内容,学习了python,掌握了sklearn,同时自己尝试做了很多例子的尝试,所以水平进步的很快吧。

至于深度学习,是在我意识到浅层的机器学习问题时才开始学习的,但是学习的路子比较粗暴,是淘宝上买课程学的,理论买了一份,tensorflow也买了一份,在此基础上,结合网上很多前辈的博客,慢慢把只是补了上来。

在这里给大家点启示吧。

  • 有高效的团队学习,当然会事半功倍。

  • 接上条,但是自己学,也要自己坚持下去,毕竟不是每一步都得有人陪着你走。

  • 淘宝和B站是很好的低价甚至免费学习圣地。虽然低价和免费是好,但是有的时候为了学会下点血本真的可能会值(此条5毛记得删)

  • 多思考自己怎么突破现状,想想一个问题会有什么更好的方法。

学习路线

我分两块来讲吧,首先是理论。

理论学习

理论上,我只推一本书——《统计学习方法》,尤其是第二版,能看懂,你的机器学习理论能力会非常扎实,要是能手推,面试有很大优势(这是个加分项,不是核心竞争力,毕竟真正工作不需要你会手推),而在科研上,这是你提出新算法的核心基础,必须过,再者,第二版里面新增了很多内容,非常建议大家好好学学。

说说这本书怎么看,其实非常简单,就是生啃。尝试性地把书上的内容看懂,自己跟着推导(不是抄),遇到不懂的再行查资料(说什么求导忘了的,自行回去看数学基础),此时需要多问为什么,例如为什么此处要这么表示,为什么可以这么推导,另外,不要就盯着这本书看,在学习某个点学不会时,可以多百度看看这方面的资料,很多人写了博客笔记,对比着看,这样有利于你了解。

视频上,我只推一个——吴恩达老师的CS229机器学习课程,有且只有一个。照着他讲的,加上课件学习,推导的时候自己也跟着推,你会成长很快,另外不要害怕英语,有中文字幕,英文课件也可以放翻译软件,而且,你要机器学习做进阶,看论文的时候,你也避不开英文,相比你也不会只是想入个门找个工作就完事了吧?

对于深度学习,其实我学的路子很野,基本上是百度找的博客自学的,基础模型百度一定有啊。至于细节理论会通过看论文方式深入了解,知识点上主要是这些:

  • BPNN、CNN、RNN、LSTM等的正向传播、反向传播。

  • SGD等一系列最优化方法。

说白就这些,剩下其实都是围绕这些进行的,对于比较新潮潮流的,你可以在进阶学习中补充,例如atteention等,说白了这些改进都离不开前面这些基础。

顺便回应一下为什么不推荐《机器学习》西瓜书和被誉为”AI圣经“的花书《深度学习》,并非抨击,只是觉得有些不合适。(个人建议,不喜勿喷)

西瓜书虽然内容全面性很强,但是个人觉得内容讲的太泛不够深入,看完了其实就只能浮于表面,举个例子,对于隐马尔可夫,这本书只提到了他涉及的3个问题,但是解决方案根本没有,所以为了深入理解机器学习理论,西瓜书不太建议作为主线学习材料,当然做辅助材料还是可以的。

花书同样是一本全面性很强的书,理论讲解其实也很泛泛,或者有些该深入的地方讲的很粗略,让人反而看不懂,里面虽然谈到很多模型但是感觉都没讲到位,要是真想看完整的理解,建议看黑色封面的《神经网络与机器学习》。

建议:

  • 和打游戏一样,简单版本有小奖励,困难版本有大奖励,新手玩家可以先简单模式,如果想要得到大奖励,等练习后再来挑战无妨,老手可以直接上困难,也可以在简单版本娱乐,反正记住要完成关卡才能获得奖励。

  • 时刻都不要忘记你最朴素最基本的学习目标——学到东西。

  • 看完啊,看完啊,看完吧,把书看完。

  • 虽然是理论,但是仍建议大家自己动手推。

技术学习

其实对于有开发基础的同学,这些实现都不是难事了,很多方案其实百度就能了解到,而如果你要系统学习,路径当然还是有的。

机器学习方面的书籍,首推塞巴斯蒂安的《python机器学习》,很全面。至于视频,小象学院、七月在线啥的其实都行,机器学习这个领域的模式已经非常规范化,所以课程其实也比较规范。

深度学习方向,我比较喜欢用tensorflow和keras,我各推荐一本,黄文坚的《tensorflow实战》,《keras深度学习实战》,当然的,网络资源丰富,大家也可以找更多适合自己的,tf的更新迭代很快,2现在也有了(虽然很多公司还没开始用),大家可以通过网络资源开始学习。

建议:

  • 技术,更新迭代快,知识点零散,成书的时间成本和技术积累要求高,所以网络资源学习,教程、博客、视频其实更加适合学习。

  • 资料多,重在选择自己最喜欢,最适合的工具。

  • 自己跟着动手写。

其他学习

除了理论和技术,这两个非常受到初学者关心的内容之外,应该还有很多该学该做的事情,只有这些事情做完了,掌握了,你才能说机器学习上道了。

首先要说的是特征工程,这是一个位于机器学习模型上游的重要步骤,具体的工作就是对特征进行处理,使之对目标具有更直接的指向性,或者说使特征所表现的形式更加适合这个机器学习模型。推荐两本书吧,《特征工程入门与实践》,另外是《百面机器学习》中有关特征工程的部分,特征工程的知识本身比较规范化,但是用起来会比较灵活,基础知识知道后,后续就是根据自己对业务的理解进行操作。

然后是,模型评估,如何衡量一整套机器学习方法是否达到目标,这是需要评估的,理论指标、性能指标等等,都需要学习,这不是个很大的问题,却是一个有点深度的问题,我曾经在我的一个小系列中讨论过这个问题,此处我把它放出来供大家参考。

最后,就是实战了,自己找个机器学习问题,自己动手实践一下。例如一些天池、kaggle的竞赛,一些经典例子,如手写数字识别等,这里不要求大家拿奖啥的,而是找个比较贴合的例子,有代码有实战,自己动手做,在此基础上带上自己的想法,思考怎么迭代更新使得结果更加好,思考过程才是最为重要的,结束之后复盘,思考自己的优缺点,从而总结得到比较好的经验。

总结

有关机器学习入门就谈到这里,希望能够对大家有所帮助吧,按照这个路线走,肯定能够比较好的入门,万丈高楼平地起,大家扎实的学,扎实的做,总有质变时候,加油吧。

悄悄预告一下,本系列下一期讨论机器学习如何进阶,敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值