一周入门,一年自通,机器学习没那么难
科技时代,我们更加怀念温暖邂逅的时光
后台回复“想要”,得到近期有温度的推荐
全文共2559字,预计阅读时长3分钟
机器学习是人工智能的重要内容,在各种技术应用文章中被提及最多。但是隔着人工智能的面纱,要理解机器学习,学习机器学习知识,总让人觉得难以着手。
其实,对机器学习的研究早就开始,也经历过几十年的试错,直到最近几年,这方面的研究才真正开始向前推进。就像站在巨人的肩上,我们学习机器学习可以少走些弯路,直接从机器学习步入正轨的地方开始学习。
道理我们都懂,但具体怎么做才好?说起来容易,做起来哪有那么简单?有没有比较好的示范?
考虑到广大同胞们的困惑和需求,今天我们要和你分享Per Harald Borgen的故事,从他的零基础自学机器学习经历,也许你会受到启发。
Per Harald Borgen来自挪威,从事着计算机软件方面的工作。2014年,他对机器学习产生了兴趣,2015年,他开始了入门,然而,在5天的基础学习中,他发现入门比想象的容易。在之后的一年,边工作边学习,他开发出了自己的机器学习算法,并派上了用场。
入门比我想象的容易
在入门之前,Per Harald Borgen已经通过阅读、视频课程、理论课程,对机器学习有了基本的概念,但他仍然不能将知识转换为代码,这是他想要改变和做到的。虽然当时他只是一个业余编码员,但仍然想要尝试。
在 Hacker News 上咨询之后,他得出的结论是 Python 的 Scikit Learn 库是最适合入门的。这个库提供了丰富的算法,将实际的机器学习问题减少到几行代码。
在一周5天的时间里,他的学习路线是这样的:
星期一:学习一些实例,逐步了解 Scikit 学习。
Per Harald Borgen最后他选择了一个“使用机器学习投资股票”的教程。过程中,他发现,获取和清理数据比机器学习更耗时。因此,编写脚本抓取文件或网络中的数据的能力是一个机器学习“极客”的必备技能。
星期二:尝试用机器学习解决实际问题。
“给定一个人的教育水平,年龄和收入信息,计算机能不能预测其性别?”Per Harald Borgen对这个问题产生了兴趣。观察和清理银行提供的数据集,使用 Scikit Learn map 找到一个适合的算法。虽然最后预测的成功率只有 63%,不过比抛硬币准多了,而且能解决实际问题,这让他备受鼓舞。
星期三:从头开始,学写算法。
在玩转各种 Scikit Learn 模块后,Per Harald Borgen觉得自己其实不明白后台发生了什么。好在coursera 课程详细介绍了几种算法的工作原理,描述了最底层最基础的概念。他就用Python从头编码了一个线性回归算法。追溯源头、了解后台细节,Per Harald Borgen觉得是一种高效的学习技巧。
星期四:研究Kaggle的入门教程
Kaggle 是一个机器学习的竞赛平台,你可以在其中提交公司或组织发布的问题的解决方案。Per Harald Borgen研究了 Kaggle 的入门教程,还做了一点点自然语言处理。他建议在对机器学习有一些理论和实践经验后再尝试 Kaggle,否则可能没什么收获,反而觉得沮丧。他大概也尝到了沮丧的滋味吧。
星期五:继续Kaggle教程的学习。
有什么比一边学习,一边实践,一边交流,更能锻炼和巩固人的呢?用一周时间让自己完全沉浸在一个新的项目当中,这是充实有效和愉快的。
哈哈,我挂了几门AI课
Per Harald Borgen学习机器学习的路并不总是顺顺利利,比如成功挂掉了Coursera 机器学习课程。
原因不是课程的错,只是对一个初学者来说,课程内容太难,很难跟上。再加上用的是一门新的编程语言Octave,同样十分具有挑战性,自己也最终放弃了。
适合自己的才是最好的,事后,Per Harald Borgen总结出了经验。要么是用机器学习图书馆来进行编码任务,而不是从头创建算法,又或者至少是用自己了解的编程语言。
对于新手来说,学习一门新的语言,并同时编码机器学习算法,实在是太难了。应该从简单和容易操作的东西开始学,而不是困难和理论性的。
同样挂掉的还有神经网络课程。
Per Harald Borgen想要复制在机器学习周取得的成功,将经验用在神经网络,结果失败了。原因在于,时间和精力容易被分散。
不同于机器学习周,当时自己处在一个训练营地,周围都是机器学习的爱好者,每天就专注着学习机器学习。而学习神经网络,却没有这样一个相对封闭的环境和积极的氛围。
但是,至少也开始着手从事了神经网络的研究,并且也慢慢掌握了要领。终于在几个月后,成功编写了自己的第一条网络。(此处应有掌声……)
一年后,成功为公司开发了个算法
2015 年圣诞假期,距离一周的入门学习已经过去了10个月,Per Harald Borgen已经积累了一定的实践经验和知识储备,他再一次鼓起勇气,决定试验 Kaggle。
他花了相当一段时间来试验各种算法,用于测试 Kaggle 的住宅报价转换,奥托集团产品分类,以及自行车共享需求竞赛。通过试验各种算法和数据,使结果得到不断改善,这是他最大的收获,也学会了要在做机器学习时相信自己的逻辑。
在做了以上所有工作之后,Per Harald Borgen觉得自己已经准备好在实际工作中做一个机器学习项目。
他通过阅读对企业的描述和简介训练出一套算法,来帮助自己任职的公司Xeneta更好地发现潜在客户,确定销售线索。并且实际证明,这替销售部门的员工节省了大量的时间。
在他的开发日志里写着:“走到这一步确实是一个漫长的旅程,但其实也很快。在我开始一周入门的学习时,我完全没想过自己能在一年的时间内熟练使用机器学习。但是这是100%有可能的。而如果我能做到,你也一定可以。”
读芯君开扒
我有经验有方法,你有心吗?
梳理Per Harald Borgen自学机器学习过程,读芯君从他身上总结出了几条经验:
1. 兴趣不能当饭吃,试过才知道。人工智能一火,带起了不少人的兴趣,但大多数人只停留在兴趣和观望,少了行动力。其实不管好与不好,难于不难,只有自己试了才知道。零基础怕啥,谁还不是一点点学起来的?
2. 做个实用派,从实际问题出发,自上而下学习。大学里的专业教育的思路常常是自下而上,先储备各种理论知识,必要技能,打好基础,再靠实践,一步步往上,解决实际应用中的问题。但Per Harald Borgen是从实际出发,找到一个与AI有关,自己感兴趣或者就在身边的问题,寻找解决问题的方法,根据需要学习理论知识和技能。这种自上而下的学习,其实更有趣也更高效。
3. 我的节奏我做主,先易后难,适合自己的最好。虽说网上的优质资源很多,但不见得适合每一个人。选择时,还要量体裁衣,量力而行。太难了,打击信心,没成就感容易放弃。还是从易到难,循序渐进,没有谁能一口吃成一个胖子,担心消化不良。
4. 组队学习,事半功倍。一个人学是孤独,两三个人一起组队学,过程就会顺利很多。有难题,可请教;有争议,可讨论;想放弃,没面子;比一比,劲儿更足。和志同道合者一起,能创造出很好的学习氛围,效率更高。
5. 这话你可能不爱听——没有什么是坚持解决不了的,如果有,就继续坚持。
机器学习永远是没有那么简单,但也没有我们瞎YY的那样难,读芯君有计划有方法,关键是,你有心吗?
留言 点赞 发个朋友圈
我们一起探讨AI落地的最后一公里
作者:六个太阳
参考文献:
http://dataconomy.com/2016/10/machine-learning-year/
http://www.sohu.com/a/129004140_308467
如需转载,请后台留言,遵守转载规范
推荐文章阅读
长按识别二维码可添加关注
读芯君爱你