来源:人工智能头条
大家好,我是
为人造的智能操碎了心
的智能禅师。
最近很多读者问本禅师:
转行机器学习需要注意哪些事情呢?
我想学习机器学习,需要学习哪些知识呢?
机器学习如何避免走弯路呢?
本禅师表示非常理解大家的需求。
人工智能(其实本禅师认为目前看来翻译成人造智能可能更直白一点)毫无疑问,已经是科技趋势,却又是门槛相对较高、对学习者要求非常高的一门科学。
说起对机器学习所需要的基础知识掌握程度,一个有经验的开发者可能并不比刚开始接触机器学习的学生多。
机器学习有哪些关键要素?需要掌握什么语言?如何理解机器是怎么学习的?… 接下来,我们听听
人工智能头条
特约作者李烨,讲讲她开始学习机器学习的经验。
讲讲她踩过的那xiiieeeee坑们,以及如何从一个摸着石头过河的
机器学习的新手
,逐步成为老司机的。
李烨,高级软件工程师,现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师。先后参与聊天机器人、大数据分析平台等项目的开发。
全文大约1500字。读完可能需要下面这首歌的时间
👇
学习“机器学习”这件事,我走过很长的一段弯路
有一些心得、体会和方法,在此和大家分享。
以模型为驱动,了解“机器学习”的本质
本课力图引导大家以模型为驱动,进行学习。
我选择了几种经典模型(例如:线性回归,逻辑回归,决策树,支持向量机,条件随机场,K 均值等),作为入门的进阶。
初次学习模型,不必贪多。但就这些选定的模型,一定要搞清楚其问题域、模型函数、目标函数、训练算法……潜入到数学公式推导的层面,对每一步的公式变换和对应物理意义有所理解,然后再去实践。
这一个个的模型,就是机器学习的“肌肉”,我们要通过观察学习这一块块肌肉,以其为载体来了解机器学习的核心——将事物转化为数值,将关系、变换转化为运算——以事实(数据)为依据,以规章(算法)为准绳,通过计算来掌握事物的客观规律(模型)
。
要知道,这些经典模型固然经典,但是到了实际应用中,它们并非神圣不可稍加改变。也不是说机器学习就仅限于这些经典模型。
只有掌握了机器学习精髓的人,才可能灵活运用现有模型去解决实际问题,甚至进一步针对具体问题发明自己的模型和/或算法。
反复学习,从记忆到掌握
当然,达到这种程度并非一撮而就,总要从最简单的模型开始。
根据我的经验,即使是本课列出的这几个最常用也相对简单的模型,要真正掌握,都需要反复学习。
有可能第一遍看完有点似是而非,或者感觉自己明白了,但要自己从头推导又会半截断片儿。
就像刚学完又忘掉生字,或是背诵到一半想不起后续99乘法表的小学生,这都是非常正常的现象。真正原因,就是还没有真正掌握。
反复多学几遍
,从头到尾掌握整件事情的逻辑,知道一个模型是怎么从最初设定目标,到一步步实现目标的——当真正掌握了这个过程之后,再回头看一个个具体的模型,每一步都是顺利成章的。
掌握了事物内在的逻辑性,再去记忆,就容易多了。
学习标准设置得不必太高,比如可以这样:
第一遍学,只要求自己能完全掌握机器学习数据、模型、算法相互作用的基本关系,训练过程和评价标准。具体的模型,掌握最简单的线性回归就可以。
只要 end2end 掌握了第一个模型,做到:能够从模型函数开始推导出目标函数,再用梯度下降算法求解,用(伪)代码实现梯度下降求解过程。
第一遍学习掌握一个模型;第二遍学习就不难掌握2-3个模型;第三遍就有可能掌握本课列出的大部分模型………如此
由易到难,螺旋式推进
。
对于一些数学模型本身就比较复杂的,比如条件随机场、隐马尔科夫这类涉及场论和势函数的模型。
如果直接入手,往往会被卡在模型函数本身上。但是当有了前面几个模型的基础,了解了更抽象层面的原理,掌握起来就容易多了。
数学需要多精深?
很多同学,想学机器学习。但是一上来就看模型,看到一大堆炫酷的公式,往往感觉很吓人。
有些人也就因此萌生退意,要么放弃,要么只用现成工具把模型当作黑盒使用。
其实,学习经典模型,并不需要多么精深的数学功底,理工科大学本科的数学课就基本够用了。
基础数学概念
在学习的最初阶段,只要:
-
学过坐标系
-
了解函数、向量和矩阵的概念
-
能从直观角度对求导、求微与函数的关系有所理解
-
并掌握最简单的矩阵运算
就可以对本课中的经典机器学习模型有一定深度的感性认识了。
本课中的公式都是减了再减的,务必要掌握。如果实在数学工具掌握太少,最次最次,也至少要读懂一组公式推导中的第一个和最后一个式子
-
读懂它们都针对哪些变量进行了怎么样的运算
-
这些变量和运算对应的物理意义是什么
-
第一个式子是对哪种真实场景的数学描述
-
最后推导的结果又具备怎样的特征
初次学习者,可以暂且掌握到这个深度。
两条路径反刍数学知识
当然,仅仅这样的程度,套用现成模型还将就,却不可能达到灵活运用的程度。
所以,还是建议同学们力求理解每一步推导过程。
如果有可能,可以事先复习一下大学本科的高数(数学分析)、概率统计和线性代数课本。
或者,在学习模型的过程中,一旦遇到了数学上的阻碍,就回头去查找相应知识。
制定数学知识速查手册
很多数学问题,之所以让人头大,其实并不是真的有多难,而是符号系统比较复杂,运算繁复,或者运算所表达的物理意义多样。
很多时候造成困扰是因为想不起来这里用到什么定理,哪个公式,或者这样操作表达的含义是什么了。
如果把常用的细小知识点都记录下来,按主题整理在一起,做成速查手册(小字典),需要用的时候迅速查找一下对应点,效果往往意想不到地好。能让我们学习“机器学习”的道路顺畅不少。
日常学习 Tips
关联
把新学到的东西和日常的工作、生活联系起来,进行思考。比如:将理论代入现实,不同领域间事物的类比,相似内容的对比等。
以身边的实例来检测理论。不仅能够加深理论知识的理解,而且有助于改进日常事物的处理方法。
记录
准备一个笔记本,纸的或者电子的。有什么发现、感想、疑问、经验等等,全都记下来。
如果是对某个话题、题目有比较完整的想法,最好能够及时整理成文,至少记录下要点。
隔一段时间后把笔记整理一下,把分散的点滴整理成块,一点点填充自己的“思维地图”。
分享
知识技能这种东西,学了,就得“得瑟”——把学习到的新知识、理论、方法,分享给更多的人。如此一来,倒逼自己整理体系、记忆要点,堪称与人方便自己方便的最佳实例。
把自己的感想、体会、经验分享出来也是同理,还多出了锻炼自己逻辑思维能力和归纳总结能力。一举多得,何乐而不为?
江湖有句话:宁舍一锭金,不舍一句春。意思就是,宁愿我舍去一锭金子不要,也不愿把我学习的门道泄露给别人。可见,
学习的方法
的价值
,才是最为宝贵的。
看得出,作者从踩过的这些坑中,掌握了一套行之有效的学习方式。同时也应GitChat的邀请,把自己的学习经历做成系列课程,分享给各位正在学习机器学习道路上,挣扎、迷茫的朋友。
写作不易,分享难得。我们更希望作者的这些经验,能够帮助更多的朋友,少走弯路、多走捷径。
目前该课程正在特价中,望大家都能从中有所得,有所悟。
今天带来的文章,由特约作者王学宽撰写。作者有着多年一线开发经验,对深度学习的学习路径有非常深刻的理解,他不满意市面流通的入行教程都太敷衍,不走心,亲自写了一系列教程,详细、系统的为大家剖析如何入行。
全文大约2000字,读完可能需要下面这首歌的时间
深度学习到底有多热,这里我就不再强调了,也因此有很多人关心这样的几个问题,“适不适合转行深度学习(机器学习)”,“怎么样转行深度学习(机器学习)”,“转行深度学习需要哪些入门材料?”等等。
而网上相应问题的回答也比较杂乱,存在不走心、不够基础等等问题
。
考虑到太多的人没有一定的专业基础,又恰恰对转行、学习的问题比较关心,因此,本文希望从一个小白的角度出来,真正从零基础的角度来为大家提供一些专业的建议和指导.
避免大家看很多无用的信息,少走弯路。接下来,本文从以下几个方向出发,来展开叙述:
-
什么样的人适合入行深度学习?
-
怎样学习深度学习?
-
有哪些入门深度学习的材料推荐?
哪些人适合入行深度学习
深度学习存在一定的门槛,这是必然的,并不是网上说的仅仅成为一个“调包狭”。你可能是结合一些实际的业务场景,需要复现一些模型,甚至自己设计一些模型,所以需要具备一定的数学、英语、编程等等能力。
1.初中毕业、高中毕业是否适合学习深度学习?
这里,我不建议这样的人转行深度学习,因为你现在需要的不是深度学习,而是高中知识积累、大学的知识积累,思维模式的培养,如果你还年轻,那我建议你先去把这些该走的路走完,再考虑入行深度学习。
你们的人生还有很多种可能,没有必要急着早早的作出选择。当然,如果你已经到了一定年纪了,那我觉得真的没必要在这个上面折腾了,赚钱的机会还有很多。
2.文科生是否适合学习深度学习?
对于文科生的话,我觉得不能一概而论。有些文科生,尤其学习语言学、文学专业的,他们的思维方式可能更多的偏向于发散思维,对于逻辑思维能力可能会有所欠缺。
对于这样的人,不是很建议入行深度学习,更多的是希望把本行业的事情做好,或者可以选择一些深度学习产品经理等等这样的岗位,避免一些编程、模型设计训练的任务。
3.机械、电气等理工科的专业背景的人是否适合入行深度学习?
对于诸如电气、电子、机械、化工、生物等等这样的理工科专业的学生,如果选择入行深度学习,个人觉得还是存在可能的。
以机械为例,很多机械行业的朋友,也会接触到底层编程的一些任务;对于一些电子和电气相关的专业的学生,往往也会接触到一些编程的任务。
同样,还具备一些信号处理的知识,对于这些人来讲,深度学习和机器学习,入门相对门槛会低一些。当然,实际上还要结合自身的情况来看,具体是否合适,可以对照我后面的几个标准。
4.年纪太大了是否适合转行深度学习?
个人不建议,因为核心竞争力确实会和一些年轻人存在一些差距。如果有可能,更希望能够在本领域深耕下去。
5.期待学习两三个月成大神,年薪20万+。
任何一门技术的学习,都需要一定时间的积累,尤其对于深度学习、机器学习这样的工作。短期内,结合专业的指导,你可能会初窥门径,但精通一定不行。虚心学习,经过一定时间积累,年薪20万+希望还是很大的。
总结下,有哪些人适合入行深度学习?
-
大学里学习过高等数学的本科生,硕博士研究生;
-
有高等数学基础的公司技术岗在职人员,需要 AI 赋能;
-
过去 PC、iOS、安卓开发的码农,有编程基础的人;
-
具备较好的逻辑思维能力的本科生。
如何入行深度学习
聊完了什么人适合入行深度学习,我们再来看一看如何学习深度学习?
具体你需要经历以下几个步骤:
-
深度学习整体概述:了解深度学习的前世今生、为什么会爆发深度学习热潮?代表的技术有哪些,涉及到什么样的领域、产品、公司,以及各行各业中的应用。尽可能的科普深度学习的相关知识。
-
深度学习概论知识:深度学习、机器学习、人工智能等区别和联系;
-
深度学习预备知识:数学基础(线性代数、矩阵、概率统计、优化等等)、机器学习基础、编程基础;
-
深度学习核心知识:神经网络、深度网络结构、图像任务、语音任务、自然语言任务;
-
深度学习进阶知识:如何使用深度学习框架,完成网络的搭建、训练。
关于深度学习的公司,也就是人工智能公司,我们在之前也提到过,这里,我们再重点介绍一些代表性的企业:
-
语音识别技术,国内公司讯飞、百度。国外公司 Google、亚马逊,微软等,行业应用就是智能音箱等产品;
-
图像识别技术,比如做安防的海康威视,图森科技,依图科技,旷视科技,代表性的就是面部识别,iPhone X 的人脸识别;
-
自动驾驶技术,比如特斯拉,Uber,百度等公司开发的自动驾驶技术;
-
金融领域的预测股价、医疗领域的疾病监测,教育领域的技术赋能等;
-
阿里巴巴淘宝网的千人千面等。
接下来我们看一些关于深度学习的概论知识。
我们必须要清楚的就是深度学习属于机器学习的一种方法,除了深度学习以外,还包括了线性回归、逻辑回归、SVM、随机森林、图模型、贝叶斯等等很多方法。
而深度学习,并不是对所有的任务都有效,有些时候,也需要用到一些传统的机器学习方法。而机器学习则是实现人工智能必不可少一种技术手段。
深度学习和传统机器学习有哪些区别和联系呢?请看下面这几点。
-
数据依赖性。深度学习与传统的机器学习最主要的区别在于,随着数据规模的增加其性能也不断增长。当数据很少时,深度学习算法很容易过拟合(可以简单理解成性能不好)。
-
硬件依赖。深度学习算法需要进行大量的矩阵运算,GPU 主要用来高效优化矩阵运算,所以 GPU 是深度学习正常工作的必须硬件。与传统机器学习算法相比,深度学习更依赖安装 GPU 的高端机器。当然,除了 GPU 以外,还有一些其他的深度学习芯片发展也十分重要。通常的做法是,GPU 训练,而在实际的项目中则使用其他的深度学习芯片代替。
-
特征表示。传统机器学习更多的依赖手动设计特征,需要引入更多的领域知识,而深度学习,则能够直接抽取不同粒度上的特征,因此,能够具有更高的表示能力。
-
端到端。对于传统的机器学习方法,更加注重逻辑规则的设计,在解决一个问题的时候,会将其拆分成几个不同的子问题,而深度学习则更加强调从数据的角度出发,直接对问题进行求解,也就是更加的端到端。
-
训练时间。深度学习模型的训练一般需要较长的时间,不过好在测试的时候,则需要较少的时间。
-
可解释性。深度学习算法的可解释性较差,更像一个黑盒运算。
了解完深度学习的一个基本情况以后,我们再来看一些学习深度学习,
你需要学习哪些预备知识?
-
数学(高数、线性代数、概率统计、矩阵分析,如果还有机会,可以了解下优化的相关知识);
-
英语,需要阅读大量的英语文献,英语阅读和理解的能力还是应该具备的;
-
编程,至少会 Python,如果有精力再学一下 C/C++;
-
机器学习,关于一些传统的机器学习算法建议还是要了解一下的。
准备好了上述的一些基本能力以后,
我们再看看关于深度学习的一些核心知识,你需要了解:
注意:
对于上述提到的(深度学习+图像处理模型、深度学习+语音识别模型、深度学习+自然语言处理模型)三个任务,其实不需要你都精通,只要专注于其中一个领域就可以,这个要结合自己的兴趣来看。
具体可以看一下之前的几篇文章“深度学习在计算机视觉行业中的应用、深度学习在语音技术领域的应用、深度学习在自然语言处理行业中的应用”,看看自己更喜欢哪个行业,初期就以这个行业研究为主,后续如果有机会,在考虑更高层面上的通用技术和框架。
最后,理论部分都强调完了以后,我们在重点强调一下进阶的知识,也就是实战部分。大家在学习深度学习的时候,一定要认识到,深度学习更多的还是需要编程!编程!编程!也就是说,不能仅仅停留在理论层面,更多的还是需要动手实战的能力,利用 Caffe 或者 TensorFlow 针对一些实际的分类任务进行实验。只有这样才能更快地积累经验,更早的入行深度学习。
大数据文摘出品
记者:魏子敏
当地时间10月15日,2018 Teradata全球用户大会在美国拉斯维加斯举行。来自15个国家的3000多位数据人参与了本次峰会。
大会第一日,Teradata发布了针对“企业数据分析”的2018年调研结果。
调研结果显示,多数被访问的高级管理人员对数据分析投资结果不满意:他们认为相关投资并未带来他们期望的成果。
具体来看,该调研报告罗列了企业数据分析项目面临三大基本挑战:
1) 分析技术过于复杂:近四分之三(74%)的受访者表示,企业使用的分析技术过于复杂d;其中42%的受访者认为企业员工难以使用或理解分析技术。