心得想入行AI,别让那些技术培训坑了你

本文来自作者李烨在GitChat上分享,本处作了不改变原意的删减!

引子

IT行业发展迅速,各种新名词此起彼伏。身处这样一个热点行业,学习是必须的。不打算成为终身学习者的程序员,失业就在明天。

可是,怎么学呢?

自学的困境

如今,网络资源那么发达,IT类技术都不难找到各式各样免费或费用很低的书籍、资料、课件、讲座、代码。从理论到实践都有讲解。

如果想要自学,是完全有条件的,那为什么还要去上培训班呢?原因大概有一下这些:

?直接原因:精力分散,不够专注,书读不下去,代码看不下去。?深层原因:驱动力不足以让自己专注。?根本原因:没有足够渴望的目标,无法调动自身能量形成驱动力。

其实归根到底,学不下去是因为不知道学习是为什么,学了到底有什么用。漫无目的的学习注定是浪费时间。

有效学习三要点:目标明确,系统性强,足够深入。三者缺一不可。

明确学习目标

好在读本文的同学,已经共同拥有了一个优势:目标明确。

我们学习的目的是为了入行AI!

在明确目标的指引下,比较容易找到什么“有用”——虽然有点功利,但不得不承认,“有用”与否是大多数人产生驱动力的重要所在。

我们可以以“在AI领域找到技术岗位工作”为基准,进行学习。避免东一下,西一下的“乱学”。

什么样的目标才算明确但是要注意,这个目标如果仅仅停留在:“我要做AI”,是不能称之为一个目标的。真正的目标必须具有可实施性,并最终体现为实施计划。

想要入行AI,先搞清楚几件事:

目前真正落地的AI领域都有哪些?

每个领域有什么样的代表企业?

这些企业中,都有什么样的技术岗位?

每种岗位哦需要什么入门条件?

至少要能够定位到你的目标岗位,明确了这个/类岗位的技术要求,才有可能确定需要学习的内容有哪些,从而选择到正确的培训课程。

如何划定明确的目标

但是怎么能知道这些呢?笔者个人推荐如下调研步骤:

Step1.先确定一个领域(图像、语音、NLP等等)

可能你本来就有特别感兴趣的领域;或者你对某一种技术,比如人脸识别,特别兴趣,那么可以直接由此入手。

如果你本来对AI了解不多,只是想做当前市场上最热门的领域,那也比较好办。多爬一些招聘网站、职场社交媒体的招聘信息,做一下数据分析,看看哪些领域招的人最多,薪水最高。

Step2.了解本领域当前的科研状况

最简单的方法:找十篇本领域核心期刊或会议的论文,读一遍。

用Google找论文还是比较赞的,而且相关度排序综合了论文的成果贡献,作者的学术地位和新颖度。

如果方便用Google,直接输入领域相关keyword,取前3-5篇拿来读。读后再根据阅读中遇到的问题、产生的兴趣回溯寻找其引用文献,或者重新搜索。

Step3.了解本领域理论的落地技术以及相关企业

AI作为一个新兴方向,很多领域还处在研究阶段,真正能够应用到现实产品中的领域相当有限。

有代表性不过就是:语音识别/合成,图片/人脸识别,和NLP的一些分散应用。

Step4.了解具体岗位的招聘需求

这里的具体岗位,到并不一定指XXX公司的XXXX岗位,而是指同一类型公司同一技术角色的相对普遍要求。

AI行业的技术岗位,按角色可以简单地分为三类:

角色1:科学家——研究理论,开发/改进算法;角色2:工程师——结合业务,训练模型;角色3:工程辅助——选择、清洗、标注数据等。

制定学习计划

有了明确的目标,也就有了明确的范畴(scope)。同时,经过上节step2-4,还搞明白了,学了这些东西,能用来干什么,最终会把它用到什么场景中去。

很多人在制定学习计划的时候,会从时间出发。但是如果没有内容,光指定时间是没有意义的。学习计划的最初步应该是知道要学什么。具体步骤可以这样来走:

明确知识范畴和应用目的;

划定知识体系并确定深度目标;

填充知识模块;

列举针对具体模块的主要知识点。

可以借鉴做作文列提纲的办法:在勾勒出轮廓之后,先把知识结构的骨干勾勒出来,分为篇章,列出大标题,再在其中填注小标题(知识点)。

我们下面用一个例子来说明一下具体从目标到学习计划的制定过程。

从需求出发:笔者要学习基于机器学习的自然语言处理,具体的应用是开发聊天机器人的语言理解模块。

进行调研:通过i)向有类似经验的同事请教;ii)到网上搜索综述性文章和NLP领域论文;iii)查找实践类的文章、类似开源项目……等一系列手段,笔者了解到,最起码有两件事情必须要做:意图分类和实体提取。

目前,要做这两件事情,有基于规则和基于机器学习/深度学习模型两类方法。

基于规则虽然直接、初始代价小,但是可扩展性差,所有规则都需要人工添加。

机器学习和深度学习的区别在于:前者适合相对数据量、运算资源较小,而开发者对业务理解较深的场景;后者则更加“自动化”,但对于数据量和运算量需求巨大,尤其是对人工标注的数据要求很高,先期投入太大。

笔者决定在工作用应用机器学习模型,因此就要先从机器学习学起。

目标确定:根据调研,确定了目标为机器学习。

接下来第一步就是了解“机器学习”的学科框架。

很多学校计算机专业的都开设机器学习课程,找到相应的教学大纲和课本并不难。通过高等院校的教学大纲和课本目录来了解一个学科体系,普遍而言是最靠谱的方法。

机器学习有一点特殊的地方——有一位大牛,AndrewNg,在几年前就发布了一份免费网上课程叫做“机器学习”。因其经典和学术上的严谨,也可以用来作为了解机器学习体系的一个来源。

构建体系:通过对比多本机器学习著作,不难发现,机器学习理论是以一个个模型为主要内容的。

之前工作中要用到的意图识别和实体提取,正好对应分类和seq2seq预测模型。而为了获取意图,可能还需要对原始语料做文本聚类。

因此我们构建的体系可以以模型为主要节点。

填注内容:确定了主干节点,下一步就是填注课程的“血肉”。

归根到底,模型是用来解决问题的。比如chatbot语言理解所用到的分类,序列预测,聚类等,都是典型的机器学习问题,每一个问题都对应多个模型。每一个模型都有其适用的具体情形。

模型的获得包括算法和数据两个方面。需要一个训练过程,训练过程一般迭代进行,期间要做多次验证,根据验证结果调优,最终通过测试来检验模型质量。

再通过进一步查询资料得知,要了解这些模型的运行原理,就得读公式,那么就需要求导、求微分、求积分、矩阵运算、概率统计等方面的知识。

还有就是,所有模型处理的都是数值,我们要把现实当中的文本等人类可读信息都转化成向量。这就需要掌握将文本转化为向量空间模型的能力,和数据清洗整理的能力。这些能力又都是以编码能力为支撑的。

制定提纲:由此,我们学习计划体系就已经有了眉目。

我们需要学习(复习)下列这些知识:

1)高数、线代和概率论的知识;2)选择一批在实践中应用较多的典型模型,学习其原理、数学推导过程和训练模型的算法;3)模型的训练、验证、测试过程和评判模型的指标;4)将人类可读信息转化为数值的方法;5)训练、测试模型的工具、框架和编程语言。

学习计划成型:有了上面这些,再结合资料和自己当前需求,确定必学范畴内的模型类型,就可以构建详细计划了。

“机器学习”学习内容提纲:

A.数学a.数学分析:求导、微分、积分b.线性代数:向量基本运算,矩阵基本运算,矩阵分解,多种矩阵的性质c.概率统计:古典概率模型,贝叶斯公式,常见概率分布及其公式和特点

B.模型原理及公式a.LinearRegression(最小二乘法)b.LogesticRegression(极大似然估计)c.NaiveBayesd.DecisionTree(ID3,C4.5)e.SVMf.CRFg.KMeansh.SpectralClusteringi.LDA

C.模型的构建和验证a.Binary-ClassificationvsMulti-Classificationb.NormalizationRegularizationc.ValidationTestd.CrossValidationMethodse.Precesion,Recall,F1Scoref.ROC,AUC

D.数据处理和向量模型空间的构建a.文本标注b.BaggingBoostingc.中文分词方法及原理d.n-gram模型原理e.bi-gram文本特征提取f.计算文档tf-idf及其信息熵

E.工具及语言a.Python,Java,C#类比及对比b.Python库,Java库,C#库c.分词工具(jieba分词)和词库d.word2vec

F.实践

如上只是第一个版本,可以先依据它制定一个为期两到三个月的学习计划。在执行过程中,根据新的认识和具体需要可随时调整提纲和计划。

选择培训课程

本文的主题就是如何选择技术培训,居然前面废了那么多话才说到选择培训课程,是不是已经有朋友等不及了?

选课容易选对难

或者有的朋友觉得,选培训课有什么难的?现在互联网信息这么发达,就把培训课当餐馆电影院一样选又有什么不好?

大众点评里有好多培训机构培训班呢,上去看看评价,看看星级,还有优惠券拿,直接选一个不就行啦。何必还要自己定制什么学习计划,多此一举。

此处笔者想说的是:选择培训课程容易,选择有效的培训课程可就难了。

如果选择了错的培训课程,浪费钱还是小事,浪费自己的时间才可惜。

培训的用处

AI行业的知识、技术,包括各种工程实践,bestpractice,都是纯粹的书面知识。

不像乐器、舞蹈之类,文字不足以描述,需要老师面对面指导和反复多角度演示才能掌握到位的技能;书面知识,肯定是可以自学的。

对于这样的知识,培训课程的作用何在?

上培训课的原因很简单:为了省事——自己学太累了,不如听老师讲。用耳朵听,比用眼睛看书轻松,而且老师讲得,总比书上写的丰富细致吧。

学习的过程,必须学习者主动吸收理解,才能达到掌握知识的目的。

而培训课程的作用,无外乎两点:

I.讲解细致

相对于力求清晰、简洁、逻辑性强,具有“攻击性”的书面资料,合格的课堂讲解应该是丰富、细腻、包容性强,具有“防守性”的。

特别是和数学相关的内容,那些公式推导过程,往往一步千里,如果有人能够给每一个前进步骤一个解释,理解起来会比自己看轻松好多。

II.和教师直接交流,获得即时反馈(答疑)

学习复杂的东西时,常有这样的体验:

前面一大段都会,就是绊在一个点、一句话上,这一点东西不明白,后面的全都不懂。

自己的理解明明是这样的,可是习题答案却是那样的,是自己学错了,还是习题答案印错了?

这种情况应该这样,那么那种情况呢,也这样还是另有不同解法?

拿着自己的学习计划去找培训,能在大概率上保证培训课程的有效性。

因为:

1)制定计划的过程,是一个带着问题探索的过程,而“带着问题”很容易产生驱动力。

当自己有疑问要解答的时候,就会有探索、学习下去兴趣和好奇,不至于看见那些东西就想睡觉。

2)对照自己制定的学习计划寻找满足内容需求的课程,有助于独立判断培训课程和培训教师的“斤两”。

3)制定计划也是一个了解自己的过程。

知道自己现在缺什么,缺到何种程度。同时对照培训课程大纲和介绍,也可以辨识自己目前知识背景和培训课程深度是否匹配。

搜寻有效培训的途径

现在我们已经有了一份自己定制的详细学习计划,而且也明白了按图索骥的重要性。下一步就要寻找具体的培训课程了。

对找寻过程,笔者的建议是:先从免费资源开始。

1)首先,AI领域有少量非常经典的现在培训课程,是完全免费的,而且非常容易找到。

2)其次,通过书籍、文章、论坛、







































北京如何治疗白癜风
北京那家医院治疗白癜风好



转载请注明:http://www.beicanshijie.com/sxnr/1923.html