查看原文
其他

一周入门,一年自通,机器学习没那么难

2018-02-07 六个太阳 读芯术

科技时代,我们更加怀念温暖邂逅的时光

后台回复“想要”,得到近期有温度的推荐

全文共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


如需转载,请后台留言,遵守转载规范


推荐文章阅读


天呐,这些高校AI开课了!但我发现……

哦活活,在这个领域,AI没有任何一点比得上人类!

用这招,看男朋友到底是不是直男!

懵逼了!我AI还没入门,熊孩子已经玩起了Python

老娘我在百度实习这么嗨,都是因为对自己狠

“读芯术杯”冲顶大会——人工智能专场

斯坦福“AI Index”年度报告说了哪些你不知道的

阅读理解做不过AI?我不服

当心,AI偷走你的声音

上帝不愿咬的那个苹果,为什么是他?

这样面试,你的成功率将达到90%

你们长得太像了!但又不一样!

不想被人脸识别?请这样做

拿去!助你赢得百万大奖的Python代码已上线

如果有一天,AI开口和你谈权利

“祝你永远幸福”,不是吹牛,是真的!

未来如何避免雪乡式被宰?

当AI来拍MV,画面简直流鼻血……

让我一次“架”个“构”

AI这么火,科技公司却争着开源,傻吗?

图灵测试,测的到底是什么?

不好意思,我随便“跳一跳”就破万了

AI水军的点评,认出来算我输

别考驾照了!无人车正在派送中

AI开发者们的江湖


长按识别二维码可添加关注

读芯君爱你


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存