狠狠撸

狠狠撸Share a Scribd company logo
Head First
Machine Learning
Cyanny Liang, 2021 Sept
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 最佳实践方法
? 深度学习和应用
? 未来的研究方向
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 最佳实践方法
? 深度学习和应用
? 未来的研究方向
什么是机器学习?
? 机器可以学习和思考么?
? “Machine Learning”, 1959, IBM, Arthur Samuel
? 机器学习(统计学习): 计算机系统基于数据运用统计方法提升系统
性能的过程
? 基本假设: 同类型的数据具有一定的统计规律性
Data ML Skill
机器学习的定义
? 形式化定义:
? A computer program is said to learn from experience E with
respect to some class of tasks T and performance measure P if its
performance at tasks in T, as measured by P, improves with
experience E (Tom M.Mitchell)
Data ML Skill
Improved performance measure
(e.g. prediction accuracy)
Experience Task: e.g. prediction
什么时候用机器学习
? 机器学习是一种构建复杂系统的方式
? 很难用程序清楚地定义和表达问题
? 存在有规律的模式
? 可以收集到足够的数据
时尚推荐 地图导航
房价预测
餐厅选址
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 最佳实践方法
? 深度学习和应用
? 未来的研究方向
先驱
? 神话和科幻
? 哲学和形式推理
? 亚里士多德, 三段论逻辑的形势分析; 17世纪, 笛卡尔, 莱布尼兹, 霍布斯将理性的
思考转化为数学体系
? 图灵机, 将任意数学推理过程转化为对0和1二元符号的处理
古希腊火神赫准斯托斯
铸造的金属巨人塔罗斯
中世纪炼金术
人造人(Homunculus)
2001太空漫游
AI的诞生: 40~50年代
? 1943, Pitts和McCulloch提出人工神经网络(ANN)
? 1950, 图灵测试,如果一台机器能够与人类展开对话而不能被辨别出
其机器身份,那么称这台机器具有智能
? 1952, 游戏AI, Samuel的国际象棋程序可以挑战有相当水平的业务
爱好者
? 1955, Newell&Simon开发了逻辑理论家证明数学原理的38个原理
? 1956, 达特茅斯Workshop, 提出AI定义
? 人工智能就是要让机器的行为和人所表现的智能行为一样
? Every aspect of learning or any other feature of
intelligence can be so precisely described that a
machine can be made to simulate it.
AI黄金年代: 50~60年代
? 1958, 搜索式推理, Herbet Gelernter的几何定理证明机器
? 自然语言, ELIZA第一个聊天机器人, 按固定套路说英语
? 60年代, Minsky和Papert制作了一个会搭积木的机器臂
? 乐观思潮:
? 1958年,艾伦·纽厄尔和赫伯特·西蒙:“十年之内,数字计算机将成为国际象棋世界冠军。
十年之内,数字计算机将发现并证明一个重要的数学定理。”
? 1965年,赫伯特·西蒙:“二十年内,机器将能完成人能做到的一切工作。”
? 1967年,马文·闵斯基:“一代之内……创造‘人工智能’的问题将获得实质上的解决。”
? 1970年,马文·闵斯基:“在三到八年的时间里我们将得到一台具有人类平均智能的机
器。”
AI第一个寒冬: 60~70年代
? 1966, 自动语言处理顾问委员会的报告批评机器翻译的进展缓
慢, NRC停止政府自助
? 70年代, AI遭遇瓶颈: 现实问题的复杂度是指数级的; 算力和数
据不够等问题
? 人工神经网络遭到冷落, 1969, Minsky&Papert, 线性模型无法
计算XOR
AI第二波浪潮: 70~80年代
? 专家系统(Knowledge Based System)
? 1965, Dendral,根据分光计读数分辨混合物
? 1972年设计的MYCIN能够诊断血液传染病
? 1980, CMU, 客户订单转化为规格说明, 节省DEC公司4千万美元
? 1981年, 日本八亿五千万美元, 第五代计算机项目
AI第二次低谷: 80~90年代
? 专家系统的一系列问题,
? 规则越来越复杂, 老一代Lisp机器, 升级维护费用昂贵
? 很难处理现实中的不确定性情况
? 直到1991年, 第五代工程没有实现
AI第三波浪潮: 90年代至今
? 神经网络重生
? 1986, Rumelhart, Hinton, 推广反向传播算法训练神经网络
? 1989, Lecun, CNN, 手写数字识别
? 1997, 深蓝战胜国际象棋世界冠军
? 2009, 蓝脑计划, 模拟部分鼠脑
? 2011, IBM沃森, 危险边缘项目打败人类
AI第三波浪潮: Bigdata+AI
? Deep Learning兴起
? ImageNet识别准确率已经达到90.45
? 2016, AlphaGO, Deep Reinforcement Learning
Hype Cycle
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 最佳实践方法
? 深度学习和应用
? 未来的研究方向
算法基本分类: 监督学习
学习系统 模型
预测系统
P(y|x)或
y = f(x)
样本数据:
(x1, y1), (x2, y2), … (xn, yn)
测试数据: xn+1, xn+2, … yn+1, yn+2, …
? 监督学习: 从标注的样本数据中学习从输入到输出的映射关系或条件概率分布
? 经典算法: 线性回归, 逻辑斯谛回归, 决策树, 感知机, 支持向量机, 朴素贝叶斯,
K近邻法, Boosting提升方法, EM, 隐马尔可夫模型, 条件随机场, 神经网络
算法基本分类: 无监督学习
学习系统 模型
预测系统
Z = g(x)
P(z|x)
P(x|z)
样本数据: x1, x2, …, xn
测试数据: xn+1, xn+2, …
? 无监督学习: 从没有标注的样本数据中学习潜在的统计规律和结构
? 经典算法: kmeans聚类, DBSCAN聚类, GMM, PCA主成分分析, t-SNE降维,
潜在语义分析, 马尔可夫链蒙特卡洛方法, 潜在狄利克雷分配(LDA),
PageRank算法, AutoEncoder算法
?!"# = ? ?!"#
?!"# = argmax P(z| ?!"#)
P(?!"# | ?!"#)
算法基本分类: 强化学习
? 智能体系统与环境的连续互动中学习最优的行为策略, 其目标
不是短期奖励最大化, 而是长期累积奖励最大化
? 例如: AlphaGo, 自动驾驶, 交易策略, 医疗实验, 电商推荐…
算法基本分类: 半监督学习
? 利用标注和未标注的数据学习模型, 利用未标注数据的信息,
节省标注成本
其他分类维度
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 三种经典算法
? 算法框架和套路
? 什么是梯度下降
? 最佳实践方法
? 深度学习和应用
? 未来的研究方向
经典算法一: 线性回归(Linear Regression)
? 例如: 预测广告投放的销售额
? 模型: ? = ?? + ?
? 策略: 最小化 Mean Squared Error
? 算法: 最小二乘法, 梯度下降法
经典算法二: 逻辑回归(Logistic Regression)
? 基于逻辑分布函数的对数线性模型
? Logistic函数: S型函数(Sigmoid), 1838, 数学家Pierre, 人口增长模型
? 例如: 垃圾邮件判别, 欺诈用户判别, 癌症判别
? 函数输出[0, 1], 概率估计
? 概率模型,解决分类问题
? ? ? = 1 ?) =
&!
'(&! =
'
'( &"!
经典算法二: 逻辑回归(Logistic Regression)
? 输入: (?!, y!), y = 0 or 1
? 模型: ? =
#
#$ %!" ? = ?? + ?
? 策略: 最小化交叉熵损失
? 算法: 拟牛顿法, 梯度下降法
经典算法三: 决策树
? 基于特征对实例进行划分, 构建树形结构模型
? 解释性好: 类似if-else的规则, 互斥且完备
? 内部节点表示特征属性, 叶节点表示属性
? 概率模型, 非参数模型
经典算法三: 决策树
? 模型: 利用特征集合递归地生成树
? 策略: 特征选择, 决策树生成, 决策树剪枝
? 算法:
? 特征选择: 信息熵最小, 不确定性最小
? ID3 信息增益, C4.5 信息增益比, CART基尼指数
算法框架: 三要素
模型
? 学习什么样的模型
? 模型假设空间: 决策函数集合? = ? ? = ?(?) 或条件概率分布族F = ? ?(?|?)
策略
? 用什么标准选择最优模型
? 经验风险最小化(损失函数):min
!
"
∑#$!
"
?(?#, ?(?#))
? 结构风险最小化(正则化):min
!
"
∑#$!
"
?(?#, ?(?#)) + ??(?)
算法
? 用什么算法学习模型, 如何找到全局最优解, 如何加快学习效率
? 学习问题归结为最优化问题: 梯度下降, 牛顿法, 最小二乘法, 拉格朗日函数法等
Demo: 如何学习线性回归(Linear Regression)
? 例如: 预测广告投放的销售额
? 模型: ? = ?? + ?
? 策略: 最小化 Mean Squared Error
? 算法: 最小二乘法, 梯度下降法
什么是梯度下降(Gradient Descent)
? 一种求解无约束最优化问题的迭代算法
? 问题定义: min ? ? , ? ∈ ?%
? 前提假设: ? ? 具有一阶连续偏导数
? 梯度
? 由各方向的偏导数组成的向量
? [
&'
&(!
,
&'
&("
, . . ,
&'
&(#
])
? 向量的方向是函数在该点变化最快的方向
? 向量的模是方向导数的最大值
? 梯度下降
? 迭代执行 ? = ? ? α
&'
&(
? 目标函数凸函数可以求得全局最优解, 一般情况不保证全局最优
Demo: 线性回归
1.损失函数
2.求偏导数(chain rule)
3.求偏导数(chain rule)
为什么梯度下降可以逼近最优值?
1.损失函数一阶连续可导, 对损失函数进行一阶泰勒展开
2.令? ? ?$ = ?d (d是单位向量,?是步长)
3.向量的内积转化为向量的模和夹角余弦值的乘积
损失函数越小越好, cos(theta) = -1, 两个向量方向相反,
4.代入公式 ? ? ?$ = ?d
为什么梯度的方向是下降最快的方向?
? 证明梯度向量是变化率最大的向量
1.多元函数在某一个点(??, ??)处延某个方向的变化率
假设该方向的单位向量e' = (cos ?, sin ?), ?是该向量和x轴正方向的夹角
沿此方向的最大变化率(方向导数):
2.改写为标量和余弦夹角的乘积
当? = 0, 函数变化率最大, 两个向量方向相同, 即正梯度
当? = ?, 函数变化率最大, 两个向量方向相反, 即负梯度
梯度下降的人生启示
? 要有目标, 你需要有目标。短的也好,长的也好
? 目标要大, 目标在哪儿你不知道, 如果知道就太简单了
? 坚持走, 虽然有人赢在起点, 但只要坚持, 很远也能到达, 可以开始
给自己一些小目标, 每次按一个方向(梯度), 迈一步(下降), 不断积累
? 痛苦的卷, 每一步改变模型参数, 改变会带来痛苦, 但没有改变就没
有进步
? 四处看看, 四处走走,迈过舒适区(局部最优), 可能会做些错误的决定
? 简单最好, 有更复杂的算法, 可以看到更远更准, 但快也是慢, 如果
目标很复杂, 简单的随机梯度下降反而效果最好
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 最佳实践方法
? 特征工程
? 模型评估
? 模型调优
? 深度学习和应用
? 未来的研究方向
机器学习工程化Pipeline
收集数据
特征工程
模型训练
? 模型,策略,算法
? 大规模训练
模型评估
? 准确率, 召回率
模型调优
? 超参调优, 正则化
模型部署
效果评估
? 收集Bad Case
特征工程: 连续型变量
? 正则化(Normalization)
? 数值型变量归一化到[-1, 1]或[0,1]
? 提升梯度下降收敛速度, 防止数值溢出
? 标准化(Standardization)
? 归一化为标准正态分布
? 适合场景
? 无监督学习算法
? 神经网络: 加快收敛速度, 避免局部最优
? 特征分布接近正太分布
? 存在一些异常的特征值
特征工程: 离散型变量
? Integer encoding
? red 1, yellow 2, green 3
? 保留了标签的顺序性, 可能会导致过拟合
? One-hot encoding
? 增加特征维度
? 适合场景
? 标签集合可数
? 模型只能接收数值类型的输入, 例如神经网络, 逻辑回归
特征工程
模型评估: 分类问题
Spam(Predicted) Not Spam(Predicted)
Spam(actual) 23(TP) 1(FN)
Not Spam(actual) 12(FP) 556(TN)
混淆矩阵(Confusion Matrix)
准确率(Accuracy) =
()"(*
()"+*"+)"(*
=
,-"../
,-"#"#,"../
= 0.97
精确率(Precision) =
()
()"+)
=
,-
,-"#,
= 0.65
召回率(Recall) =
()
()"+*
=
,-
,-"#
= 0.95
Precision Recall Curve
F1-Score =
,)?1
)"1
=
, ?$./. ?$.3.
$./."$.3.
= 0.77
适合正样本很少的场景
模型评估: ROC Curve
Spam(Predicted) Not Spam(Predicted)
Spam(actual) 23(TP) 1(FN)
Not Spam(actual) 12(FP) 556(TN)
混淆矩阵(Confusion Matrix)
召回率(Recall), True Positive Rate =
()
()"+*
=
,-
,-"#
= 0.95
Receiver Operating Characteristic Curve
ROC AUC Score(Area Under the ROC Curve)
? ROC Curve曲线下方的面积
? 值域是[0, 1], 越大模型的性能越好
? 表达正样本比负样本排名更靠前的概率
? 与Threshold的选择无关, 综合指标
False Positive Rate =
+)
+)"(*
=
#,
#,"../
= 0.02
模型评估: 回归问题
1.Mean Squared Error: 对误差惩罚度高
2.Root Mean Squared Error:
与样本量纲相同, 相比MSE, 解释性更好
3.Mean Absolute Error: 线性的, 忽略小误差
4.Mean Absolute Percentage Error
对相对误差更敏感
5. R2 Score 确定系数
[0, 1], 越大越好, R2=1表示没有错误
模型调优
模型
? 过拟合问题与模型选择
策略
? 正则化与交叉验证
算法
? 超参调优
模型选择: Overfitting vs Underfitting
? 偏差(Bias): 预测值和真实值之间的差异
? 方差(Variance): 预测值的变化范围, 离散程度
模型选择: Trade-Off
? 模型泛化能力: 平衡模型偏差和方差
? 欠拟合: 高偏差, 低方差
? 提高模型复杂度, 例如NN
? 过拟合: 低偏差, 高方差
? 模型: 降低模型复杂度, 例如线性模型
? 策略: 正则化, 降低结构风险
? 算法: 超参数调优
? 数据: 降低特征维度, 数据增强(降采样, 过采样)
策略: 正则化
? 结构风险最小化策略的一种实现, 遵循奥卡姆剃刀原则
? 正则化项是模型复杂度的单调递增函数
? L1: 生成稀疏模型, 可用于特征选择, 提升可解释性, 也叫做Lasso回归
? L2: 可微函数, 适合梯度下降算法, 也叫做ridge回归
? 神经网络: dropout, batch normalization
算法: 超参调优
? 如何挑选参数?
? Random Search
? Grid Search
? Bayesian Optimization
? Multi Armed Bandit
? 如何验证?
? 交叉验证
碍折交叉验证
超参数调优
超参数调优: 贝叶斯优化
目录
? 什么是机器学习
? 机器学习发展历程
? 机器学习算法类型
? 机器学习算法框架
? 最佳实践方法
? 深度学习算法和应用
? 反向传播算法
? 图像识别
? 自然语言处理
? 未来的研究方向
什么是深度学习?
机器学习与深度学习介绍.辫诲蹿
MLP--Multilayer Perceptron
? 全连接多层神经网络
? 隐藏层超过2层叫做深度神经网络
? ? = ?3(?2(?1(?1? + ?))), 如何训练?
? 例如: 损失函数: ? =
$
%
∑&'$
%
(?& ? ?&
(
)) , 梯度下降: ?& ← ?& -
*+
*,!
反向传播(Backpropagation)
? 训练前向神经网络的方法, 基于链式法则(chain 谤耻濒别)计算梯度
机器学习与深度学习介绍.辫诲蹿
Backward Pass
Chain Rule
图像识别: 卷积神经网络CNN
? 卷积层: 一种特殊的线性变换, 表征特征的空间关系
? 优势: 稀疏链接, 参数共享, 训练效率高, 模型性能更好
自然语言: Recurrent Neural Network
? RNN
? 输入: 序列数据, 例如: 时间序列, 自然语言序列
? 网络中包括循环
深度学习框架
总结与展望
? 机器学习是基于数据运用统计方法提升系统性能的算法和技术
? 主要分类: 监督学习, 无监督学习, 强化学习, 半监督学习
? 算法框架三要素: 模型(假设空间), 策略(损失函数), 算法(梯度
下降)
? 实践中需要做好特征工程, 构建模型评估体系, 调优中遵循奥
卡姆剃刀原理
? 深度学习核心算法: 反向传播
未来研究方向: 解决ML的Tech Debt
机器学习与深度学习介绍.辫诲蹿
AutoML
未来研究方向: 因果推理
? 演绎推理
? 关联
? 干预
? 反事实
推荐书单
? 入门
? The Hundred-Page Machine Learning Book
? Machine Learning Course, Andrew NG
? 进阶
? 统计学习方法
? 机器学习的基石, 台湾大学, 林轩田
? Deep Learning(花书)
THANK YOU

More Related Content

机器学习与深度学习介绍.辫诲蹿