《李宏毅机器学习完整笔记》发布,Datawhale开源项目LeeML-Notes

关于机器学习的学习资料从经典书籍、免费公开课到开源项目应有尽有,可谓是太丰富啦,给学习者提供了极大的便利。但网上比比皆是的学习资料大部分都是英文材料,这可难倒了英语不好的学习者,单词不认识,理解不到位。小编不禁想问:就真的就没办法了嘛。其实也不尽然,中文还是有一些不错的学习资料的,像周志华老师的西瓜书,李航老师的统计学习方法等等都是相当经典的学习资料。今天的主角LeeML-Notes也是和一门中文经典视频课程--台大李宏毅的机器学习相关。

目录

1.李宏毅机器学习简介

2.《LeeML-Notes》李宏毅机器学习笔记

3.《LeeML-Notes》学习笔记框架

4.笔记内容细节展示

a. 对梯度下降概念的解析

b. 为什么需要做特征缩放

c. 隐形马尔科夫链的应用

5.代码呈现

a. 回归分析

b. 深度学习

6.作业展示

7.交流互动

8.开源地址

9.配套视频

 1. 李宏毅机器学习简介

李宏毅老师现任台湾大学电气工程助理教授,研究重点是机器学习,特别是深度学习领域。他有一系列公开的机器学习课程视频,在机器学习领域是很多人入门的教材,人气不输吴恩达的 Coursera 机器学习课程。

李宏毅老师的课程视频包括多种监督学习、无监督学习监督学习等领域,算法包括简单的线性回归、logistic 回归、支持向量机,乃至深度学习中的各类神经网络模型。

梯度下降」课程中的 PPT 。对比了不同梯度下曲线的形状。

词嵌入」课程中的PPT。展示了语义相似词语在词嵌入后呈现出的聚集关系。

因为课程中干货满满,李宏毅老师的课程视频也被称为中文世界中最好的机器学习视频。李老师以幽默风趣的上课风格让很多晦涩难懂的机器学习理论变得轻松易懂,他将理论知识与有趣的例子结合在课堂上展现,并且对深奥的理论知识逐步推导,保证学习者能够学习到问题的精髓所在。比如老师会经常用宝可梦来结合很多机器学习算法。对于想入门机器学习又想看中文讲解的人来说绝对是非常推荐的。

但是,考虑到很多机器学习爱好者对于课程笔记的需求,我们不仅仅需要的是教学视频。我们需要一份课程笔记,能够引领学习者的思路,帮助引导他们进入这个领域。因此,就诞生了这款《LeeML-Notes》李宏毅机器学习笔记。

 2.《LeeML-Notes》李宏毅机器学习笔记

LeeML-Notes 是 Datawhale 开源组织自《机器学习南瓜书》后的又一开源学习项目,由团队成员王佳旭、金一鸣牵头,8 名成员历时半年精心打磨而成,实现了李宏毅老师机器学习课程内容的 100% 复现,并且在此基础上补充了有助于学习理解的相关资料和内容,对重难点公式进行了补充推导。期间,Datawhale 开源组织打造了《李宏毅老师机器学习》的组队学习,在众多学习者共同的努力下,对该内容进行了迭代和补充。下面,让我们来详细了解下工作详情吧。

具体准备工作:

  • 2019 年 2 月--2019 年 4 月:笔记整理初级阶段,视频 100% 复现

  • 2019 年 4 月--2019 年 6 月:网站搭建,对笔记内容及排版迭代优化

  • 2019 年 5 月--2019 年 6 月:组队学习《李宏毅机器学习》并对内容进行迭代完善

  • 2019 年 7 月:最后内容修正,正式推广。

下图为修订记录表:

 3.《LeeML-Notes》学习笔记框架

3.a 亮点

这份学习笔记具有以下优点:

  • 完全将李宏毅老师的讲课内容转为文字,方便学习者查阅参考。

  • 不仅保留了 PPT 的内容,还根据课程内容补充了一些知识点。

  • 具有完整的代码复现资料。

3.b 笔记框架

内容在整体框架上与李宏毅老师的机器学习课程保持一致,主要由监督学习监督学习迁移学习、无监督学习监督学习中的结构化学习以及强化学习构成。建议学习过程中将李宏毅老师的视频和这份资料搭配使用,效果极佳。笔记也和课程视频完全同步。

目录详情见下:

  • P1 机器学习介绍

  • P2 为什么要学习机器学习

  • P3 回归

  • P4 回归-演示

  • P5 误差从哪来?

  • P6 梯度下降

  • P7 梯度下降(用 AOE 演示)

  • P8 梯度下降(用 Minecraft 演示)

  • P9 作业 1-PM2.5 预测

  • P10 概率分类模型

  • P11 logistic 回归

  • P12 作业 2-赢家还是输家

  • P13 深度学习简介

  • P14 反向传播

  • P15 深度学习初试

  • P16 Keras2.0

  • P17 Keras 演示

  • P18 深度学习技巧

  • P19 Keras 演示 2

  • P20 Tensorflow 实现 Fizz Buzz

  • P21 卷积神经网络

  • P22 为什么要「深度」学习?

  • P23 监督学习

  • P24 无监督学习-线性降维

  • P25 无监督学习-词嵌入

  • P26 无监督学习-领域嵌入

  • P27 无监督学习-深度自编码器

  • P28 无监督学习-深度生成模型 I

  • P29 无监督学习-深度生成模型 II

  • P30 迁移学习

  • P31 支持向量机

  • P32 结构化学习-介绍

  • P33 结构化学习-线性模型

  • P34 结构化学习-结构化支持向量机

  • P35 结构化学习-序列标签

  • P36 循环神经网络 I

  • P37 循环神经网络 II

  • P38 集成学习

  • P39 深度强化学习浅析

  • P40 机器学习的下一步

 4. 笔记内容细节展示

4.a 对梯度下降概念的解析

在笔记中重新整理PPT内容,并增加了一些注释。

不对视频语音直接转文字,而是根据内容整理成知识点,方便读者理解阅读。

4.b 为什么需要做特征缩放

对特征缩放的PPT进行整理记录。

 4.c 隐形马尔科夫链的应用

隐形马尔科夫链在语言模型中的应用。

4.d 利用贴近学生的例题解释知识点


用算法对精灵宝可梦(神奇宝贝)进行分类。

 5. 代码呈现

代码在李宏毅老师提供代码的基础上进行了优化,在 python3 上全部调试通过。

5.a 回归分析

5.b 深度学习

Keras 的基础模型构建代码。

用Keras构建深层模型

6. 作业展示

对笔记课程的作业进行了讲解与解读,并且总结了一些需要注意的点,同样在 python3 上调试通过。

问题描述。


笔记中提供了课程作业的参考答案。

 7. 交流互动

目录中每一节最后都设置了交流互动区供大家总结学习内容、提出自己的疑问和广大学习者互动,可以使用 GitHub 登录,方便读者们交流。

  • 8.开源地址:https://github.com/datawhalechina/leeml-notes

  • 9. 配套视频:https://www.bilibili.com/video/av59538266

主要贡献人员

  • 负责人:王佳旭、金一鸣

  • 成员:黑桃、李威、 排骨、追风者、Summer、杨冰楠

DataWhale
DataWhale

一个专注于AI领域的开源组织,汇聚了众多顶尖院校和知名企业的优秀学习者,聚集了一群有开源精神和探索精神的团队成员。愿景-for the learner,和学习者一起成长。

入门机器学习李宏毅
1
相关数据
李航人物

李航,毕业于日本京都大学电气电子工程系,日本东京大学获得计算机科学博士学位。北京大学、南京大学兼职教授。曾任日本NEC公司中央研究所研究员,微软亚洲研究院高级研究员与主任研究员、华为技术有限公司诺亚方舟实验室主任,是《统计学习方法》作者。

吴恩达人物

斯坦福大学教授,人工智能著名学者,机器学习教育者。2011年,吴恩达在谷歌创建了谷歌大脑项目,以通过分布式集群计算机开发超大规模的人工神经网络。2014年5月16日,吴恩达加入百度,负责“百度大脑”计划,并担任百度公司首席科学家。2017年3月20日,吴恩达宣布从百度辞职。2017年12月,吴恩达宣布成立人工智能公司Landing.ai,并担任公司的首席执行官。2018年1月,吴恩达成立了投资机构AI Fund。

周志华人物

周志华分别于1996年6月、1998年6月和2000年12月于 南京大学计算机科学与技术系获学士、硕士和博士学位。主要从事人工智能、机器学习、数据挖掘 等领域的研究工作。主持多项科研课题,出版《机器学习》(2016)与《Ensemble Methods: Foundations and Algorithms》(2012),在一流国际期刊和顶级国际会议发表论文百余篇,被引用三万余次。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

半监督学习技术

半监督学习属于无监督学习(没有任何标记的训练数据)和监督学习(完全标记的训练数据)之间。许多机器学习研究人员发现,将未标记数据与少量标记数据结合使用可以显着提高学习准确性。对于学习问题的标记数据的获取通常需要熟练的人类代理(例如转录音频片段)或物理实验(例如,确定蛋白质的3D结构或确定在特定位置处是否存在油)。因此与标签处理相关的成本可能使得完全标注的训练集不可行,而获取未标记的数据相对便宜。在这种情况下,半监督学习可能具有很大的实用价值。半监督学习对机器学习也是理论上的兴趣,也是人类学习的典范。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

集成学习技术

集成学习是指使用多种兼容的学习算法/模型来执行单个任务的技术,目的是为了得到更佳的预测表现。集成学习的主要方法可归类为三大类: 堆叠(Stacking)、提升(Boosting) 和 装袋(Bagging/bootstrapaggregating)。其中最流行的方法包括随机森林、梯度提升、AdaBoost、梯度提升决策树(GBDT)和XGBoost。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

深度生成模型技术

深度生成模型基本都是以某种方式寻找并表达(多变量)数据的概率分布。有基于无向图模型(马尔可夫模型)的联合概率分布模型,另外就是基于有向图模型(贝叶斯模型)的条件概率分布。前者的模型是构建隐含层(latent)和显示层(visible)的联合概率,然后去采样。基于有向图的则是寻找latent和visible之间的条件概率分布,也就是给定一个随机采样的隐含层,模型可以生成数据。 生成模型的训练是一个非监督过程,输入只需要无标签的数据。除了可以生成数据,还可以用于半监督的学习。比如,先利用大量无标签数据训练好模型,然后利用模型去提取数据特征(即从数据层到隐含层的编码过程),之后用数据特征结合标签去训练最终的网络模型。另一种方法是利用生成模型网络中的参数去初始化监督训练中的网络模型,当然,两个模型需要结构一致。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

回归分析技术

回归分析是一种用于估计变量之间的关系(当一个自变量变化而其它变量固定时,因变量会如何变化)的统计过程,在预测任务中有广泛的应用。回归分析模型有不同的种类,其中最流行的是线性回归和 逻辑回归(Logistic Regression)。另外还有多变量回归、泊松回归、逐步回归、脊回归(Ridge Regression)、套索回归(Lasso Regression)和多项式回归等等。随机梯度下降(SGD)就是一种起源于回归分析的常用方法,可用于控制复杂度。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
暂无评论
暂无评论~