微信号:imkuqin

介绍:本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询.目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能.

是否人人都能学机器学习?入门的前提是什么?

2018-05-08 09:00 程序猿

机器学习是什么?


套用一下大神们对机器学习的定义,机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。简单一点说,就是计算机从数据中学习出规律和模式,以应用在新数据上做预测的任务。



近年来互联网数据大爆炸,数据的丰富度和覆盖面远远超出人工可以观察和总结的范畴,而机器学习的算法能指引计算机在海量数据中,挖掘出有用的价值,也使得无数学习者为之着迷。


作为机器学习工程师,虽说不是专家,但总算有一些机器学习的项目经验,这一篇就我们的经验和各位同仁的分享,总结一些对于初学者入门有帮助的方法和对进阶有用的资料。


◆ ◆ 

机器学习关注问题


并非所有的问题都适合用机器学习解决(很多逻辑清晰的问题用规则能很高效和准确地处理),也没有一个机器学习算法可以通用于所有问题。机器学习,到底关心和解决什么样的问题。


从功能的角度分类,机器学习在一定量级的数据上,可以解决下列问题:


1.分类问题根据数据样本上抽取出的特征,判定其属于有限个类别中的哪一个。比如:垃圾邮件识别(结果类别:1、垃圾邮件 2、正常邮件)。


2.回归问题根据数据样本上抽取出的特征,预测一个连续值的结果。比如:星爷《美人鱼》票房


3.聚类问题根据数据样本上抽取出的特征,让样本抱抱团(相近/相关的样本在一团内)。比如:google的新闻分类。


我们再把上述常见问题划到机器学习最典型的2个分类上。

  • 分类与回归问题需要用已知结果的数据做训练,属于“监督学习”

  • 聚类的问题不需要已知标签,属于“非监督学习”。


如果在IT行业(尤其是互联网)里溜达一圈,你会发现机器学习在以下热点问题中有广泛应用:


◆ ◆ 

入门方法与学习路径


机器学习对大多数入门者也有一个比较通用的学习路径,也有一些优秀的入门资料可以降低大家的学习门槛,同时激发我们的学习乐趣。


简单说来,大概的一个学习路径如下: 



最左边之所以列了『数学基础』『典型机器学习算法』『编程基础』三个并行的部分,是因为机器学习是一个将数学/算法理论和工程实践紧密结合的领域,需要扎实的理论基础帮助引导数据分析与模型调优,同时也需要精湛的工程开发能力去高效化地训练和部署模型和服务。


在互联网领域从事机器学习的人,有2类背景的人比较多:

1.程序员出身,这类同学工程经验相对会多一些。

2.学数学统计领域出身,这部分同学理论基础相对扎实一些。

因此对比上图,2类同学入门机器学习,所欠缺和需要加强的部分是不一样的。


下面就上述图中的部分,展开来分别扯几句:


 数学基础 


机器学习之所以相对于其他开发工作,更有门槛的根本原因就是数学。每一个算法,要在训练集上最大程度拟合同时又保证泛化能力,需要不断分析结果和数据,调优参数,这需要我们对数据分布和模型底层的数学原理有一定的理解。所幸的是如果只是想合理应用机器学习,而不是做相关方向高精尖的research,需要的数学知识啃一啃还是基本能理解下来的。


基本所有常见机器学习算法需要的数学基础,都集中在微积分、线性代数和概率与统计当中。


 典型算法 


绝大多数问题用典型机器学习的算法都能解决,粗略地列举一下这些方法如下:



机器学习里所说的“算法”与程序员所说的“数据结构与算法分析”里的“算法”略有区别。前者更关注结果数据的召回率、精确度、准确性等方面,后者更关注执行过程的时间复杂度、空间复杂度等方面。 当然,实际机器学习问题中,对效率和资源占用的考量是不可或缺的。


 编程语言、工具和环境 


看了无数的理论与知识,总归要落到实际动手实现和解决问题上。对初学者而言,Python和R语言是很好的入门语言,很容易上手,同时又活跃的社区支持,丰富的工具包帮助我们完成想法。相对而言,似乎计算机相关的同学用Python多一些,而数学统计出身的同学更喜欢R一些。资深程序员则更偏向java和C++相关机器学习package。


 基本工作流程 


以上我们基本具备了机器学习的必要条件,剩下的就是怎么运用它们去做一个完整的机器学习项目。其工作流程如下: 抽象成数学问题—— 获取数据——特征预处理与特征选择——训练模型与调优——模型诊断——模型融合——上线运行。


这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。


说了这么多,你应该对机器学习都有了基本框架!或者已经机器学习有了自己的一套心得。那么如何求职机器学习工程师呢?


最好的方法就是能找到一个比你自己更靠谱的前辈、老师帮你持续性的指导!


因此,就在5月9日网易云课堂准备了一场关于《机器学习》的免费直播课,告诉你如何快速拿到机器学习工程师offer!



扫码即可加入“机器学习QQ群”

获取机器学习资料、直播课和精品体验课


(转载授权:寒小阳)

 
程序猿 更多文章 濒临窒息!北京33岁患病程序员自述“生死5小时” 来阿里前 vs 来阿里后 首部高中 AI 基础教材出版发布:40 所重点中学将引入 做技术的,需要项目管理能力吗? 程序员辞职卖卷饼:4天挣1个月工资
猜您喜欢 这次我们侧重讲讲云灾备的行业实践 流利说前端单元测试实践 极牛沙龙:怎样才能在火热的SaaS领域脱颖而出? 超快速指南:使用Docker开始容器化Java应用——设置CI\/CD管道 从微信直接唤起App——【提活拉新】你必须知道的事