前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >制定「机器学习」学习计划【2】

制定「机器学习」学习计划【2】

作者头像
叶锦鲤
发布2018-03-15 11:32:42
8870
发布2018-03-15 11:32:42
举报
文章被收录于专栏:悦思悦读悦思悦读

IT 行业发展迅速,各种新名词此起彼伏。身处这样一个热点行业,学习是必须的。

大数据、AI(人工智能)相继席卷世界后,作为程序员,真得学点机器学习了。具体为什么大家还是自己思考一下吧——本文的重点不在于讲解Machine Learning到底有什么用,而是讲如何从0开始自学它。

之前我们讲过,有效学习三要点:目标明确、系统性强、足够深入,三者缺一不可。

既然是定制针对自己的学习计划,那么势必要让计划符合这三个要素。

上一篇中,我们已经讲述了确定学习目标的重要性及方法。本篇我们的重点放在梳理准备学习的内容大纲。

制定「机器学习」学习计划——定制学习大纲

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

构建知识体系

有了这些,就可以确定一个知识体系(至少是其中一个结构分明的分支)。并进一步确定,对这个体系中的内容需要了解到什么深度。

有了体系和深度,进而可以列举出所需要掌握的各个知识模块。在此基础上,划分学习内容。然后根据需要学习的内容制定学习计划。

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

具体步骤可以这样来走:

  1. 明确知识范畴和应用目的;
  2. 划定知识体系并确定深度目标;
  3. 填充知识模块;
  4. 列举针对具体模块的主要知识点。

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

这里很关键的一点是,计划中最细粒度的“小标题”到底有多大。

个人意见:学习一个计划中的最小单位,如果是不脱产,仅在业余时间学习,掌握它的时间不应该超过一周;如果是全脱产学习,最好不要超过2天。

实例分析

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

【1】明确需求

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

【2】多方调研

调研的方法有多种,可以:

i) 向有类似经验的同事请教;

ii) 到网上搜索综述性文章和NLP领域论文;

iii) 查找实践类的文章、类似开源项目,等等……

【3】认定目标

通过上述等手段,笔者了解到,最起码有两件事情必须要做:意图分类和实体提取。

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

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

而基于模型的方法有较强的可扩展性,而且随着聊天机器人用户和语料的增多,还可以通过反馈持续增强模型。在聊天机器人中应用机器学习/深度学习不仅符合产品发展的需求,也是当前业界的发展方向。

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

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

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

【4】了解学科框架

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

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

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

但是一般情况下,不建议在最开始的时候就直接把公开课、培训课程作为学习体系架构的依据。

【5】纲举目张

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

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

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

【6】充实内容

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

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

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

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

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

【7】制定学习提纲

由此,我们学习计划体系就已经有了眉目。

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

1)高数、线代和概率论的知识;

2)选择一批在实践中应用较多的典型模型,学习其原理、数学推导过程和训练模型的算法;

3)模型的训练、验证、测试过程和评判模型的指标;

4)将人类可读信息转化为数值的方法;

5)训练、测试模型的工具、框架和编程语言。

【8】学习计划成型

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

“机器学习”学习内容提纲: 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. LDA C. 模型的构建和验证 a. Binary-Classification vs Multi-Classification b. Normalization & Regularization c. Validation & Test d. Cross Validation Methods e. Precesion, Recall, F1Score f. ROC, AUC D. 数据处理和向量模型空间的构建 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. word2vec F. 实践

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智汇AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档