心得
本文来自作者 李烨 在 GitChat 上分享,本处作了不改变原意的删减!
引子
IT 行业发展迅速,各种新名词此起彼伏。身处这样一个热点行业,学习是必须的。不打算成为终身学习者的程序员,失业就在明天。
可是,怎么学呢?
自学的困境
如今,网络资源那么发达,IT类技术都不难找到各式各样免费或费用很低的书籍、资料、课件、讲座、代码。从理论到实践都有讲解。
如果想要自学,是完全有条件的,那为什么还要去上培训班呢?原因大概有一下这些:
• 直接原因:精力分散,不够专注,书读不下去,代码看不下去。
• 深层原因:驱动力不足以让自己专注。
• 根本原因:没有足够渴望的目标,无法调动自身能量形成驱动力。
其实归根到底,学不下去是因为不知道学习是为什么,学了到底有什么用。漫无目的的学习注定是浪费时间。
有效学习三要点:目标明确,系统性强,足够深入。三者缺一不可。
明确学习目标
好在读本文的同学,已经共同拥有了一个优势:目标明确。
我们学习的目的是为了入行AI!
在明确目标的指引下,比较容易找到什么“有用”——虽然有点功利,但不得不承认,“有用”与否是大多数人产生驱动力的重要所在。
我们可以以“在AI领域找到技术岗位工作”为基准,进行学习。避免东一下,西一下的“乱学”。
什么样的目标才算明确
但是要注意,这个目标如果仅仅停留在:“我要做AI”,是不能称之为一个目标的。真正的目标必须具有可实施性,并最终体现为实施计划。
想要入行AI,先搞清楚几件事:
目前真正落地的AI领域都有哪些?
每个领域有什么样的代表企业?
这些企业中,都有什么样的技术岗位?
每种岗位哦需要什么入门条件?
至少要能够定位到你的目标岗位,明确了这个/类岗位的技术要求,才有可能确定需要学习的内容有哪些,从而选择到正确的培训课程。
如何划定明确的目标
但是怎么能知道这些呢?笔者个人推荐如下调研步骤:
Step 1. 先确定一个领域(图像、语音、NLP等等)
可能你本来就有特别感兴趣的领域;或者你对某一种技术,比如人脸识别,特别兴趣,那么可以直接由此入手。
如果你本来对AI了解不多,只是想做当前市场上最热门的领域,那也比较好办。多爬一些招聘网站、职场社交媒体的招聘信息,做一下数据分析,看看哪些领域招的人最多,薪水最高。
Step 2. 了解本领域当前的科研状况
最简单的方法:找十篇本领域核心期刊或会议的论文,读一遍。
用Google找论文还是比较赞的,而且相关度排序综合了论文的成果贡献,作者的学术地位和新颖度。
如果方便用Google,直接输入领域相关keyword,取前3-5篇拿来读。读后再根据阅读中遇到的问题、产生的兴趣回溯寻找其引用文献,或者重新搜索。
Step 3. 了解本领域理论的落地技术以及相关企业
AI作为一个新兴方向,很多领域还处在研究阶段,真正能够应用到现实产品中的领域相当有限。
有代表性不过就是:语音识别/合成,图片/人脸识别,和NLP的一些分散应用。
Step 4. 了解具体岗位的招聘需求
这里的具体岗位,到并不一定指XXX公司的XXXX岗位,而是指同一类型公司同一技术角色的相对普遍要求。
AI行业的技术岗位,按角色可以简单地分为三类:
角色1:科学家——研究理论,开发/改进算法;
角色2:工程师——结合业务,训练模型;
角色3:工程辅助——选择、清洗、标注数据等。
制定学习计划
有了明确的目标,也就有了明确的范畴(scope)。同时,经过上节step2-4,还搞明白了,学了这些东西,能用来干什么,最终会把它用到什么场景中去。
很多人在制定学习计划的时候,会从时间出发。但是如果没有内容,光指定时间是没有意义的。学习计划的最初步应该是知道要学什么。具体步骤可以这样来走:
明确知识范畴和应用目的;
划定知识体系并确定深度目标;
填充知识模块;
列举针对具体模块的主要知识点。
可以借鉴做作文列提纲的办法:在勾勒出轮廓之后,先把知识结构的骨干勾勒出来,分为篇章,列出大标题,再在其中填注小标题(知识点)。
我们下面用一个例子来说明一下具体从目标到学习计划的制定过程。
【举例说明】
从需求出发:笔者要学习基于机器学习的自然语言处理,具体的应用是开发聊天机器人的语言理解模块。
进行调研:通过 i) 向有类似经验的同事请教; ii) 到网上搜索综述性文章和 NLP 领域论文;iii) 查找实践类的文章、类似开源项目……等一系列手段,笔者了解到,最起码有两件事情必须要做:意图分类和实体提取。
目前,要做这两件事情,有基于规则和基于机器学习/深度学习模型两类方法。
基于规则虽然直接、初始代价小,但是可扩展性差,所有规则都需要人工添加。
机器学习和深度学习的区别在于:前者适合相对数据量、运算资源较小,而开发者对业务理解较深的场景;后者则更加“自动化”,但对于数据量和运算量需求巨大,尤其是对人工标注的数据要求很高,先期投入太大。
笔者决定在工作用应用机器学习模型,因此就要先从机器学习学起。
目标确定:根据调研,确定了目标为机器学习。
接下来第一步就是了解“机器学习”的学科框架。
很多学校计算机专业的都开设机器学习课程,找到相应的教学大纲和课本并不难。通过高等院校的教学大纲和课本目录来了解一个学科体系,普遍而言是最靠谱的方法。
机器学习有一点特殊的地方——有一位大牛,Andrew Ng,在几年前就发布了一份免费网上课程叫做“机器学习”。因其经典和学术上的严谨,也可以用来作为了解机器学习体系的一个来源。
构建体系:通过对比多本机器学习著作,不难发现,机器学习理论是以一个个模型为主要内容的。
之前工作中要用到的意图识别和实体提取,正好对应分类和seq2seq预测模型。而为了获取意图,可能还需要对原始语料做文本聚类。
因此我们构建的体系可以以模型为主要节点。
填注内容: 确定了主干节点,下一步就是填注课程的“血肉”。
归根到底,模型是用来解决问题的。比如 chat bot 语言理解所用到的分类,序列预测,聚类等,都是典型的机器学习问题,每一个问题都对应多个模型。每一个模型都有其适用的具体情形。
模型的获得包括算法和数据两个方面。需要一个训练过程,训练过程一般迭代进行,期间要做多次验证,根据验证结果调优,最终通过测试来检验模型质量。
再通过进一步查询资料得知,要了解这些模型的运行原理,就得读公式,那么就需要求导、求微分、求积分、矩阵运算、概率统计等方面的知识。
还有就是,所有模型处理的都是数值,我们要把现实当中的文本等人类可读信息都转化成向量。这就需要掌握将文本转化为向量空间模型的能力,和数据清洗整理的能力。这些能力又都是以编码能力为支撑的。
制定提纲:由此,我们学习计划体系就已经有了眉目。
我们需要学习(复习)下列这些知识:
1)高数、线代和概率论的知识;
2)选择一批在实践中应用较多的典型模型,学习其原理、数学推导过程和训练模型的算法;
3)模型的训练、验证、测试过程和评判模型的指标;
4)将人类可读信息转化为数值的方法;
5)训练、测试模型的工具、框架和编程语言。
学习计划成型:有了上面这些,再结合资料和自己当前需求,确定必学范畴内的模型类型,就可以构建详细计划了。
“机器学习”学习内容提纲:
A. 数学
a. 数学分析:求导、微分、积分
b. 线性代数:向量基本运算,矩阵基本运算,矩阵分解,多种矩阵的性质
c. 概率统计:古典概率模型,贝叶斯公式,常见概率分布及其公式和特点B. 模型原理及公式
a. Linear Regression(最小二乘法)
b. Logestic Regression(极大似然估计)
c. Naive Bayes
d. Decision Tree(ID3, C4.5)
e. SVM
f. CRF
g. KMeans
h. Spectral Clustering
i. LDAC. 模型的构建和验证
a. Binary-Classification vs Multi-Classification
b. Normalization & Regularization
c. Validation & Test
d. Cross Validation Methods
e. Precesion, Recall, F1Score f. ROC, AUCD. 数据处理和向量模型空间的构建
a. 文本标注
b. Bagging & Boosting
c. 中文分词方法及原理
d. n-gram模型原理
e. bi-gram文本特征提取
f. 计算文档tf-idf 及其信息熵E. 工具及语言
a. Python,Java,C#类比及对比
b. Python 库,Java 库,C# 库
c. 分词工具(jieba分词)和词库
d. word2vecF. 实践
如上只是第一个版本,可以先依据它制定一个为期两到三个月的学习计划。在执行过程中,根据新的认识和具体需要可随时调整提纲和计划。
选择培训课程
本文的主题就是如何选择技术培训,居然前面废了那么多话才说到选择培训课程,是不是已经有朋友等不及了?
选课容易选对难
或者有的朋友觉得,选培训课有什么难的?现在互联网信息这么发达,就把培训课当餐馆电影院一样选又有什么不好?
大众点评里有好多培训机构培训班呢,上去看看评价,看看星级,还有优惠券拿,直接选一个不就行啦。何必还要自己定制什么学习计划,多此一举。
此处笔者想说的是:选择培训课程容易,选择有效的培训课程可就难了。
如果选择了错的培训课程,浪费钱还是小事,浪费自己的时间才可惜。
培训的用处
AI行业的知识、技术,包括各种工程实践,best practice,都是纯粹的书面知识。
不像乐器、舞蹈之类,文字不足以描述,需要老师面对面指导和反复多角度演示才能掌握到位的技能;书面知识,肯定是可以自学的。
对于这样的知识,培训课程的作用何在?
上培训课的原因很简单:为了省事——自己学太累了,不如听老师讲。用耳朵听,比用眼睛看书轻松,而且老师讲得,总比书上写的丰富细致吧。
学习的过程,必须学习者主动吸收理解,才能达到掌握知识的目的。
而培训课程的作用,无外乎两点:
I. 讲解细致
相对于力求清晰、简洁、逻辑性强,具有“攻击性”的书面资料,合格的课堂讲解应该是丰富、细腻、包容性强,具有“防守性”的。
特别是和数学相关的内容,那些公式推导过程,往往一步千里,如果有人能够给每一个前进步骤一个解释,理解起来会比自己看轻松好多。
II. 和教师直接交流,获得即时反馈(答疑)
学习复杂的东西时,常有这样的体验:
前面一大段都会,就是绊在一个点、一句话上,这一点东西不明白,后面的全都不懂。
自己的理解明明是这样的,可是习题答案却是那样的,是自己学错了,还是习题答案印错了?
这种情况应该这样,那么那种情况呢,也这样还是另有不同解法?
拿着自己的学习计划去找培训,能在大概率上保证培训课程的有效性。
因为:
1)制定计划的过程,是一个带着问题探索的过程,而“带着问题”很容易产生驱动力。
当自己有疑问要解答的时候,就会有探索、学习下去兴趣和好奇,不至于看见那些东西就想睡觉。
2)对照自己制定的学习计划寻找满足内容需求的课程,有助于独立判断培训课程和培训教师的“斤两”。
3)制定计划也是一个了解自己的过程。
知道自己现在缺什么,缺到何种程度。同时对照培训课程大纲和介绍,也可以辨识自己目前知识背景和培训课程深度是否匹配。
搜寻有效培训的途径
现在我们已经有了一份自己定制的详细学习计划,而且也明白了按图索骥的重要性。下一步就要寻找具体的培训课程了。
对找寻过程,笔者的建议是:先从免费资源开始。
1)首先,AI领域有少量非常经典的现在培训课程,是完全免费的,而且非常容易找到。
2)其次,通过书籍、文章、论坛、微信/QQ群、免费讲座和分享等渠道,去搜集大家的学习经验和各种培训班的信息。
3)然后,在尽量广泛地收集了大量培训信息后,对照课程大纲和自己的学习计划进行选择。
教师声誉、培训机构声誉、网友评价等可以作为参考和背书,但核心是课程大纲与个人计划的匹配度!
4)再次,按优先级裁剪个人计划。
当然,想找到和最初版本计划100%匹配的培训课程基本是不可能的(除非的你的计划就是照着某个培训课抄的)。
这就不能不涉及到对于个人学习计划的裁剪。裁剪的原则应该是:确保核心知识和大体结构,在细节上做出妥协。
但是如果大致结构和计划一致,只是有部分细节(例如模型类型)和你自己最初计划不同,则可以再进一步考虑。
有效学习的几点提示
分享几个笔者认为行之有效的日常学习Tips。
关联
把新学到的东西和日常的工作、生活联系起来,进行思考。比如:将理论代入现实,不同领域间事物的类比,相似内容的对比等。
以身边的实例来检测理论。不仅能够加深理论知识的理解,而且有助于改进日常事物的处理方法。
记录
准备一个笔记本,纸的或者电子的。有什么发现、感想、疑问、经验等等,全都记下来。
如果是对某个话题、题目有比较完整的想法,最好能够及时整理成文,至少记录下要点。
隔一段时间后把笔记整理一下,把分散的点滴整理成块,一点点填充自己的“思维地图”。
分享
知识技能这种东西,学了,就得“得瑟”——把学习到的新知识、理论、方法,分享给更多的人。如此一来,倒逼自己整理体系、记忆要点,堪称与人方便自己方便的最佳实例。
把自己的感想、体会、经验分享出来也是同理,还多出了锻炼自己逻辑思维能力和归纳总结能力。一举多得,何乐而不为?
定制知识速查手册
这一点算是针对AI方面学习的专门建议吧。
AI涉及到的数学特别多。很多数学问题,之所以让人头大,其实并不是真的有多难,而是符号系统比较复杂,运算繁复,或者运算所表达的物理意义多样。
如果把常用的细小知识点都记录下来,按主题整理在一起,做成速查手册(小字典),需要用的时候迅速查找一下对应点,效果往往意想不到地好。能让我们的学习“机器学习”之路顺畅不少。
心得
本文来自作者 李烨 在 GitChat 上分享,本处作了不改变原意的删减!
引子
IT 行业发展迅速,各种新名词此起彼伏。身处这样一个热点行业,学习是必须的。不打算成为终身学习者的程序员,失业就在明天。
可是,怎么学呢?
自学的困境
如今,网络资源那么发达,IT类技术都不难找到各式各样免费或费用很低的书籍、资料、课件、讲座、代码。从理论到实践都有讲解。
如果想要自学,是完全有条件的,那为什么还要去上培训班呢?原因大概有一下这些:
• 直接原因:精力分散,不够专注,书读不下去,代码看不下去。
• 深层原因:驱动力不足以让自己专注。
• 根本原因:没有足够渴望的目标,无法调动自身能量形成驱动力。
其实归根到底,学不下去是因为不知道学习是为什么,学了到底有什么用。漫无目的的学习注定是浪费时间。
有效学习三要点:目标明确,系统性强,足够深入。三者缺一不可。
明确学习目标
好在读本文的同学,已经共同拥有了一个优势:目标明确。
我们学习的目的是为了入行AI!
在明确目标的指引下,比较容易找到什么“有用”——虽然有点功利,但不得不承认,“有用”与否是大多数人产生驱动力的重要所在。
我们可以以“在AI领域找到技术岗位工作”为基准,进行学习。避免东一下,西一下的“乱学”。
什么样的目标才算明确
但是要注意,这个目标如果仅仅停留在:“我要做AI”,是不能称之为一个目标的。真正的目标必须具有可实施性,并最终体现为实施计划。
想要入行AI,先搞清楚几件事:
目前真正落地的AI领域都有哪些?
每个领域有什么样的代表企业?
这些企业中,都有什么样的技术岗位?
每种岗位哦需要什么入门条件?
至少要能够定位到你的目标岗位,明确了这个/类岗位的技术要求,才有可能确定需要学习的内容有哪些,从而选择到正确的培训课程。
如何划定明确的目标
但是怎么能知道这些呢?笔者个人推荐如下调研步骤:
Step 1. 先确定一个领域(图像、语音、NLP等等)
可能你本来就有特别感兴趣的领域;或者你对某一种技术,比如人脸识别,特别兴趣,那么可以直接由此入手。
如果你本来对AI了解不多,只是想做当前市场上最热门的领域,那也比较好办。多爬一些招聘网站、职场社交媒体的招聘信息,做一下数据分析,看看哪些领域招的人最多,薪水最高。
Step 2. 了解本领域当前的科研状况
最简单的方法:找十篇本领域核心期刊或会议的论文,读一遍。
用Google找论文还是比较赞的,而且相关度排序综合了论文的成果贡献,作者的学术地位和新颖度。
如果方便用Google,直接输入领域相关keyword,取前3-5篇拿来读。读后再根据阅读中遇到的问题、产生的兴趣回溯寻找其引用文献,或者重新搜索。
Step 3. 了解本领域理论的落地技术以及相关企业
AI作为一个新兴方向,很多领域还处在研究阶段,真正能够应用到现实产品中的领域相当有限。
有代表性不过就是:语音识别/合成,图片/人脸识别,和NLP的一些分散应用。
Step 4. 了解具体岗位的招聘需求
这里的具体岗位,到并不一定指XXX公司的XXXX岗位,而是指同一类型公司同一技术角色的相对普遍要求。
AI行业的技术岗位,按角色可以简单地分为三类:
角色1:科学家——研究理论,开发/改进算法;
角色2:工程师——结合业务,训练模型;
角色3:工程辅助——选择、清洗、标注数据等。
制定学习计划
有了明确的目标,也就有了明确的范畴(scope)。同时,经过上节step2-4,还搞明白了,学了这些东西,能用来干什么,最终会把它用到什么场景中去。
很多人在制定学习计划的时候,会从时间出发。但是如果没有内容,光指定时间是没有意义的。学习计划的最初步应该是知道要学什么。具体步骤可以这样来走:
明确知识范畴和应用目的;
划定知识体系并确定深度目标;
填充知识模块;
列举针对具体模块的主要知识点。
可以借鉴做作文列提纲的办法:在勾勒出轮廓之后,先把知识结构的骨干勾勒出来,分为篇章,列出大标题,再在其中填注小标题(知识点)。
我们下面用一个例子来说明一下具体从目标到学习计划的制定过程。
【举例说明】
从需求出发:笔者要学习基于机器学习的自然语言处理,具体的应用是开发聊天机器人的语言理解模块。
进行调研:通过 i) 向有类似经验的同事请教; ii) 到网上搜索综述性文章和 NLP 领域论文;iii) 查找实践类的文章、类似开源项目……等一系列手段,笔者了解到,最起码有两件事情必须要做:意图分类和实体提取。
目前,要做这两件事情,有基于规则和基于机器学习/深度学习模型两类方法。
基于规则虽然直接、初始代价小,但是可扩展性差,所有规则都需要人工添加。
机器学习和深度学习的区别在于:前者适合相对数据量、运算资源较小,而开发者对业务理解较深的场景;后者则更加“自动化”,但对于数据量和运算量需求巨大,尤其是对人工标注的数据要求很高,先期投入太大。
笔者决定在工作用应用机器学习模型,因此就要先从机器学习学起。
目标确定:根据调研,确定了目标为机器学习。
接下来第一步就是了解“机器学习”的学科框架。
很多学校计算机专业的都开设机器学习课程,找到相应的教学大纲和课本并不难。通过高等院校的教学大纲和课本目录来了解一个学科体系,普遍而言是最靠谱的方法。
机器学习有一点特殊的地方——有一位大牛,Andrew Ng,在几年前就发布了一份免费网上课程叫做“机器学习”。因其经典和学术上的严谨,也可以用来作为了解机器学习体系的一个来源。
构建体系:通过对比多本机器学习著作,不难发现,机器学习理论是以一个个模型为主要内容的。
之前工作中要用到的意图识别和实体提取,正好对应分类和seq2seq预测模型。而为了获取意图,可能还需要对原始语料做文本聚类。
因此我们构建的体系可以以模型为主要节点。
填注内容: 确定了主干节点,下一步就是填注课程的“血肉”。
归根到底,模型是用来解决问题的。比如 chat bot 语言理解所用到的分类,序列预测,聚类等,都是典型的机器学习问题,每一个问题都对应多个模型。每一个模型都有其适用的具体情形。
模型的获得包括算法和数据两个方面。需要一个训练过程,训练过程一般迭代进行,期间要做多次验证,根据验证结果调优,最终通过测试来检验模型质量。
再通过进一步查询资料得知,要了解这些模型的运行原理,就得读公式,那么就需要求导、求微分、求积分、矩阵运算、概率统计等方面的知识。
还有就是,所有模型处理的都是数值,我们要把现实当中的文本等人类可读信息都转化成向量。这就需要掌握将文本转化为向量空间模型的能力,和数据清洗整理的能力。这些能力又都是以编码能力为支撑的。
制定提纲:由此,我们学习计划体系就已经有了眉目。
我们需要学习(复习)下列这些知识:
1)高数、线代和概率论的知识;
2)选择一批在实践中应用较多的典型模型,学习其原理、数学推导过程和训练模型的算法;
3)模型的训练、验证、测试过程和评判模型的指标;
4)将人类可读信息转化为数值的方法;
5)训练、测试模型的工具、框架和编程语言。
学习计划成型:有了上面这些,再结合资料和自己当前需求,确定必学范畴内的模型类型,就可以构建详细计划了。
“机器学习”学习内容提纲:
A. 数学
a. 数学分析:求导、微分、积分
b. 线性代数:向量基本运算,矩阵基本运算,矩阵分解,多种矩阵的性质
c. 概率统计:古典概率模型,贝叶斯公式,常见概率分布及其公式和特点B. 模型原理及公式
a. Linear Regression(最小二乘法)
b. Logestic Regression(极大似然估计)
c. Naive Bayes
d. Decision Tree(ID3, C4.5)
e. SVM
f. CRF
g. KMeans
h. Spectral Clustering
i. LDAC. 模型的构建和验证
a. Binary-Classification vs Multi-Classification
b. Normalization & Regularization
c. Validation & Test
d. Cross Validation Methods
e. Precesion, Recall, F1Score f. ROC, AUCD. 数据处理和向量模型空间的构建
a. 文本标注
b. Bagging & Boosting
c. 中文分词方法及原理
d. n-gram模型原理
e. bi-gram文本特征提取
f. 计算文档tf-idf 及其信息熵E. 工具及语言
a. Python,Java,C#类比及对比
b. Python 库,Java 库,C# 库
c. 分词工具(jieba分词)和词库
d. word2vecF. 实践
如上只是第一个版本,可以先依据它制定一个为期两到三个月的学习计划。在执行过程中,根据新的认识和具体需要可随时调整提纲和计划。
选择培训课程
本文的主题就是如何选择技术培训,居然前面废了那么多话才说到选择培训课程,是不是已经有朋友等不及了?
选课容易选对难
或者有的朋友觉得,选培训课有什么难的?现在互联网信息这么发达,就把培训课当餐馆电影院一样选又有什么不好?
大众点评里有好多培训机构培训班呢,上去看看评价,看看星级,还有优惠券拿,直接选一个不就行啦。何必还要自己定制什么学习计划,多此一举。
此处笔者想说的是:选择培训课程容易,选择有效的培训课程可就难了。
如果选择了错的培训课程,浪费钱还是小事,浪费自己的时间才可惜。
培训的用处
AI行业的知识、技术,包括各种工程实践,best practice,都是纯粹的书面知识。
不像乐器、舞蹈之类,文字不足以描述,需要老师面对面指导和反复多角度演示才能掌握到位的技能;书面知识,肯定是可以自学的。
对于这样的知识,培训课程的作用何在?
上培训课的原因很简单:为了省事——自己学太累了,不如听老师讲。用耳朵听,比用眼睛看书轻松,而且老师讲得,总比书上写的丰富细致吧。
学习的过程,必须学习者主动吸收理解,才能达到掌握知识的目的。
而培训课程的作用,无外乎两点:
I. 讲解细致
相对于力求清晰、简洁、逻辑性强,具有“攻击性”的书面资料,合格的课堂讲解应该是丰富、细腻、包容性强,具有“防守性”的。
特别是和数学相关的内容,那些公式推导过程,往往一步千里,如果有人能够给每一个前进步骤一个解释,理解起来会比自己看轻松好多。
II. 和教师直接交流,获得即时反馈(答疑)
学习复杂的东西时,常有这样的体验:
前面一大段都会,就是绊在一个点、一句话上,这一点东西不明白,后面的全都不懂。
自己的理解明明是这样的,可是习题答案却是那样的,是自己学错了,还是习题答案印错了?
这种情况应该这样,那么那种情况呢,也这样还是另有不同解法?
拿着自己的学习计划去找培训,能在大概率上保证培训课程的有效性。
因为:
1)制定计划的过程,是一个带着问题探索的过程,而“带着问题”很容易产生驱动力。
当自己有疑问要解答的时候,就会有探索、学习下去兴趣和好奇,不至于看见那些东西就想睡觉。
2)对照自己制定的学习计划寻找满足内容需求的课程,有助于独立判断培训课程和培训教师的“斤两”。
3)制定计划也是一个了解自己的过程。
知道自己现在缺什么,缺到何种程度。同时对照培训课程大纲和介绍,也可以辨识自己目前知识背景和培训课程深度是否匹配。
搜寻有效培训的途径
现在我们已经有了一份自己定制的详细学习计划,而且也明白了按图索骥的重要性。下一步就要寻找具体的培训课程了。
对找寻过程,笔者的建议是:先从免费资源开始。
1)首先,AI领域有少量非常经典的现在培训课程,是完全免费的,而且非常容易找到。
2)其次,通过书籍、文章、论坛、微信/QQ群、免费讲座和分享等渠道,去搜集大家的学习经验和各种培训班的信息。
3)然后,在尽量广泛地收集了大量培训信息后,对照课程大纲和自己的学习计划进行选择。
教师声誉、培训机构声誉、网友评价等可以作为参考和背书,但核心是课程大纲与个人计划的匹配度!
4)再次,按优先级裁剪个人计划。
当然,想找到和最初版本计划100%匹配的培训课程基本是不可能的(除非的你的计划就是照着某个培训课抄的)。
这就不能不涉及到对于个人学习计划的裁剪。裁剪的原则应该是:确保核心知识和大体结构,在细节上做出妥协。
但是如果大致结构和计划一致,只是有部分细节(例如模型类型)和你自己最初计划不同,则可以再进一步考虑。
有效学习的几点提示
分享几个笔者认为行之有效的日常学习Tips。
关联
把新学到的东西和日常的工作、生活联系起来,进行思考。比如:将理论代入现实,不同领域间事物的类比,相似内容的对比等。
以身边的实例来检测理论。不仅能够加深理论知识的理解,而且有助于改进日常事物的处理方法。
记录
准备一个笔记本,纸的或者电子的。有什么发现、感想、疑问、经验等等,全都记下来。
如果是对某个话题、题目有比较完整的想法,最好能够及时整理成文,至少记录下要点。
隔一段时间后把笔记整理一下,把分散的点滴整理成块,一点点填充自己的“思维地图”。
分享
知识技能这种东西,学了,就得“得瑟”——把学习到的新知识、理论、方法,分享给更多的人。如此一来,倒逼自己整理体系、记忆要点,堪称与人方便自己方便的最佳实例。
把自己的感想、体会、经验分享出来也是同理,还多出了锻炼自己逻辑思维能力和归纳总结能力。一举多得,何乐而不为?
定制知识速查手册
这一点算是针对AI方面学习的专门建议吧。
AI涉及到的数学特别多。很多数学问题,之所以让人头大,其实并不是真的有多难,而是符号系统比较复杂,运算繁复,或者运算所表达的物理意义多样。
如果把常用的细小知识点都记录下来,按主题整理在一起,做成速查手册(小字典),需要用的时候迅速查找一下对应点,效果往往意想不到地好。能让我们的学习“机器学习”之路顺畅不少。