监督机器学习

样本的值是具体已知的。

  1. 回归问题:根据数据集预测连续的数值
  2. 分类问题:根据数据集预测离散的数值

无监督机器学习

只有数据集没有任何标签(lable)与数值,自动找出数据的某种结构

2.线性模型

  • 训练集:给出需要预测的数据集(x(i),y(i))
  • 假设函数:h(x)=θ0+θ1x
  • 代价(损失)函数:image-20220902004822067

3.梯度下降法

  • 用于最小化损失函数J,求解目标函数系数。局部最低点

  • 梯度:目标函数的等高线图 增长最快的方向,是一个向量。

  • image-20220902004804725

  • 初始化θ0,θ1,通常为0。

  • 需要同步更新θ1,θ0

  • α:学习效率,梯度下降更新参数的速率

  • 由于J需要整个训练集的样本,因此每次梯度下降需要遍历整个样本

  • 二元线性回归函数各个系数的偏导:

    image-20220731182224947

    • 线性函数梯度下降公式:

      image-20220731191141563

    • 线性方程使用矩阵表示:

      image-20220731191342060

      • X * A = Y;

      • X: 行为不同维度的影响因子,每一行第一个通常为1,即常数项因子。列为数据组数。

      • A:系数矩阵:同一列为一组对应因子前的系数。

      • 矩阵求逆:AA* = |A|I,A*为伴随矩阵:每个元素的代数余子式 构成的矩阵的转置

      • 代数余子式:M(i,j) = (-1)^(i + j) * |划掉所在行,所在列剩余矩阵。

4.多功能线性回归

4.1多特征

  • n:特征维度

  • image-20220731191520778

  • 用矩阵乘法来表示hypothesis formula:

    image-20220731191541605

4.2多元梯度下降

  • 多元损失函数J(θ):

    image-20220731191737631

  • 梯度下降中的偏导项:

    image-20220731191800473

4.3特征缩放

  • 当多个特征的范围一致时:梯度下降速度块:

    • 4fmSWn.png
  • 不一致时:速度慢。

    • 假设hypothesis有两个参数:θ1>>θ2 。损失函数的对应的等值(高)线:

      • 4feUqU.png

      • 根据梯度公式:

        4fVTkd.png

      • 范围越大的哪个特质值,梯度中对应参数参数值越大。

  • 通常特征缩放:将特征范围缩放在:-1<= x <= 1

  • 常用方法:均值归一化:

    • {均值归一化:ximinmaxmin/xiuimaxmin标准化:xiuiSi\begin{cases}\text{均值归一化:} \frac{x_i-min}{max - min} / \frac{x_i-u_i}{max- min} \\ \text{标准化:} \frac{x_i - u_i}{S_i}\end{cases}

      image-20220731191830717

4.4学习率:

  • 学习率过大:反复横跳,不收敛。
  • 小:梯度下降速度慢。
  • 通常画出损失函数 J(θ) 与梯度下降递归次数的函数图像。应该是个单调递减图像。

4.5特征与多项式回归

  • 多项式可以将高次项换元成一次项 变成线性回归。

4.6正规方程

  • 给定一组样本数据 与 预期结果,用矩阵表示为:

    image-20220731192145849

    • 正规方程:

      image-20220731192226728

    • 证明过程:

    • 正规方程与梯度下降:

      • 梯度下降:
        • 需要选择学习效率α,需要迭代
        • n很大时仍然可以很好的运行
      • 正规方程
        • 不需要选择学习效率,也不需要迭代
        • n很大时不能很好的运行,计算矩阵的逆开销很大O(N^3)
        • 线性回归模型中,数据特征少时可以替代梯度下降
  • 正规方程矩阵不可逆时(奇异矩阵\退化矩阵):

    • 可能是有两列(不同特征)是线性相关的,那么就删除一个特征。
    • 可能是特征值过多,则删除一些特征值。

5.分类:逻辑回归算法

5.1 二分类问题

  • logical function/sigmod function:

    image-20220731192258473

    • 输出:二分类:
      • 概率
      • P( Y = 0 | x;θ) = 1 - P (y = 1| x;θ)
      • image-20220621180150306
  • 决定边界

    • θX
    • θX >=0,out>0.5
    • θX<0,out<0.5
    • 决策边界不是由数据集决定,给定θ即确定一个决策边界,数据集不断地拟合决策边界。
  • 代价函数

    image-20220731192402130

    image-20220731192424938

    • 由于sigmod为非线性函数,代价函数不是凸函数,梯度下降会找到局部最优解。

    • 采用新cost_func

      image-20220731192456474

      image-20220731192516936

      image-20220731192545783

    • 连续性cost_function:

      image-20220731192607714

      • 极大似然估计法得出地cost_func

        image-20220731192642360

    • 梯度下降算法:拟合θ

      image-20220731192701175

    • 其他算法:

      • Conjugate gradient
      • BFGS
      • L-BFGS
      • 不需要手动选择学习效率

5.2 多分类问题

5.2.1一对多

  • 使用多个二分类器函数:拟合出多个决定边界

    image-20220731192718975

  • 预测:x特征值输入每个分类器,得到的最大值:

    image-20220731192742746

5.3 过拟合

5.3.1线性回归正则化

  • 特征值过多,数据集过少

  • 解决:

    • 减少特征向量

    • 正则化 ( 减少规模/或者参数θ的大小)

    • 正则化方程

      image-20220731192813498

      • 前一半为优化参数目标损失函数,后一半为正则化参数参数平方之和,会使得每个θ都适当减小。
      • 正则化参数太大,使得惩罚系数过大,θ1到θj都趋近于0,而退化成水平直线。
    • 正则化后的梯度下降:

      image-20220731192833083

    • 正规方程使用正则化:

      image-20220731192849520

      • 同时解决了X^T*X 矩阵不可逆的情况。(m < n)

5.3.2 logical回归正则化

  • 同理线性回归的损失函数:

    image-20220731192910255

    • 梯度下降:

      image-20220731192934079

    • 高级优化函数使用正则化:

      • 自定义costFunction函数计算损失,和梯度:

        image-20220731192951935

6 神经网络

6.1 模型展示

  • 神经元image-20220731193130037

  • 神经网络

    image-20220731193507938

    • 输入层(Input layer):
    • 神经元,激活层(activation function:sigmoiod function)
    • 隐藏层(hidden layer)
    • 输出层 (out layer)
    • 权重
  • 计算过程:

    image-20220731195031478

    • 说明:

      Si+1:i+1层神经元个数S_{i+1}: 第i+1层神经元个数

      • θ矩阵:j层到j+1层的权重矩阵,用于计算下一层的输入,维度为:S(j+1) * (Sj + 1):
        • Sj+1行θ
        • 每一行Sj + 1个 权重参数

6.2 模型展示

  • 前向传播

    image-20220731202832626

  • 使用隐藏层的输出作为 logistic regression 的输入特征:

    image-20220731202912615

  • 神经网络架构:神经元的连接方式

    image-20220731202934630

6.3例子与直觉解释

  • 神经网络用于学习复杂的非线性假设模型

  • AND 逻辑函数拟合:

    • image-20220621225415638
  • OR 逻辑拟合

    • image-20220621225621714
  • NOT 逻辑拟合

    • image-20220621225825038
  • XNOR(同或)

    • image-20220621230404176

6.4多元分类

  • 一对多:
    • image-20220621231254723

7 神经网络原理

7.1 代价函数

  • 神经网络代价函数

  • 分类模型

    • image-20220621232152230

    • L :神经网络层数

    • S_l: l层神经元个数,不含偏置单元

  • 损失函数

    • 逻辑回归损失函数

      • image-20220621232656123
    • 神经网络损失函数:逻辑回归一般表达:

      • image-20220622003843433

      • 每一类的交叉损失函数 求和“1–K

      • 正则参数:j:θ矩阵行数,i:θ矩阵列数,未算偏置参数

7.2 反向传播算法

7.3 梯度检测

  • 梯度的近似值计算 并与梯度进行比较

    • image-20220622221659694

    • image-20220622221943076

    • 训练时关闭 梯度检测 方法:降低算法效率。

7.4 随机初始化

  • 初始化全为0:

    • image-20220622223443587

    • 所有的输入输出值都为相同的值和函数

7.5 总结

  • 神经网络架构:神经元之间的连接方式。

    • 输入:特征值的维度
    • 输出:分类的个数
    • 合理的默认架构:一个隐藏层,或者多个隐藏层的神经元个数相等
  • 训练神经网络步骤:

    • image-20220622224619915

    • image-20220622225048877

    • 搭建神经网络并随机初始化参数值

    • 实现前向传播计算每层输入与输出值

    • 实现损失函数

    • 实现反向传播计算每个参数偏导项

    • 使用梯度检测 检测梯度近似值是否符合要求,训练前关闭梯度检测

    • 使用梯度下降或者其他优化算法 优化损失函数。

8 机器学习算法诊断

8.1 评估假设

  • 防止过拟合:
    • 正则化
    • 减少多余特征
    • 划分数据集,7:3 训练集+测试集
  • 使用测试数据集 计算测试误差

8.2 模型/特征选择,训练,验证,测试数据集

  • 增强模型泛化能力
    • 将数据集划分为 训练集 验证集 测试集6 : 2 : 2
    • 训练集误差, 验证集误差,测试集误差
    • image-20220623160950194

8.3 诊断偏差与方差

  • 验证集误差与训练集误差 图:

    • image-20220623155043956

    • 高偏差问题:左边,欠拟合,训练集验证集误差都很大

    • 高方差问题:右边,过拟合,训练姐误差小,验证集误差大

8.4 正则化与偏差,方差

  • 正则化参数过大:

    • 欠拟合,训练数据集和验证集误差都大,偏差问题
  • 正则化参数刚好

  • 正则化参数过小

    • 过拟合,训练集误差小验证集误差大,方差问题。
  • image-20220623155753988

  • 如何选择正则化参数

    • image-20220623160758213
  • 正则化参数图

    • image-20220623161155797

8.5 学习曲线

  • 学习曲线:检验算法是否正确,是否存在偏差,方差问题

    • y轴:误差
    • x轴:数据集大小
    • image-20220623161946197
  • 高偏差:high bias

    • image-20220623162143732
  • 高方差:high variance

    • image-20220623162429516
  • 选择优化方法:

    • 过拟合/高方差问题:获取更多数据集,减少特征数量,正则化,提高正则化参数

    • 欠拟合/高偏差问题:获取更多特征,添加其他多项式特征,减小正则化参数

      image-20220623164345942

9 机器学习系统设计思想

9.1不对称分类误差评估

  • 偏斜类问题:数据集中其中一类的数据过多或过少
    • 偏斜类问题 需要一种新的评估参数:查准率/召回率(Precision/Recall):
    • image-20220623212832555
    • image-20220623211841087-
      • Precision查准率:某一类准确预测数/预测为该类的总数
      • Recall 召回率:某一类准确预测数/该类的总数
    • F score:
      • image-20220623215133504

10 支持向量机 SVM

10.1优化目标

  • 损失函数:对逻辑回归损失函数做一点小修改

    • image-20220623221914469

    • image-20220623222612210

      • 参数C 与正则化参数 λ相同的作用
    • SVM 不输出概率 而是直接进行分类输出

      • image-20220623222909532

10.2 大间距分类器

  • image-20220623223507526

    • 对比于逻辑回归,当y=1时,z>=1时,才能预测为1
    • y=0时,z<=-1时才能预测为0
  • SVM 决策边界:

    • C十分大的情况下 拟合出来的决策边界:存在一个SVM间距
    • image-20220623224709399
  • 数学原理

    • 假设只有两个特征,θ0=0

    • image-20220623231742805

    • θX=0为决策边界,因此θ向量与决策边界正交

    • 此时X向量向θ向量投影会非常的小,满徐限制条件则θ向量的模 需要十分大,此时J损失函数误差大,因此此 决策边界不行

10.3 核函数

  • 相似度函数:高斯核函数:

    • image-20220624121334715

    • image-20220624121544524

    • 核函数图

      • image-20220624122231479
    • 核函数与决策边界:

      • image-20220624122745260
  • 标记点 landmark:

    • 直接选取样本点为landmark:

    • 将样本点特征值映射到新的特征空间:维度发生了变化

      • image-20220624123425424
    • image-20220624123957492

  • SVM参数C

    • image-20220624124630426
    • C大:低偏差,高方差(过拟合)
    • C小;高偏差,低方差(欠拟合)
  • SVM参数 ð

    • 大:高偏差,低方差(欠拟合)
    • 小:低偏差,高方差(过拟合)

使用SVM

image-20220624151339597

  • 指定参数C

  • 指定核函数

    • 线性核函数:初始特征维度n大,数据集m小,使用非线性容易过拟合
    • 高斯核函数:初始特征维度n小,数据集m大
      • 提供核函数计算方式:
      • image-20220624151653365
  • 核函数需满足 莫塞尔定理

    • 多项式核函数
      • image-20220624152531510
    • 字符串核函数,卡方核函数,直方核函数
  • 逻辑回归与SVM

    • 特征维度 n >> m
      • 线性回归,线性核函数SVM
    • 特征维度 n小,m适中
      • 高斯SVM
    • 特征维度n小,m大
      • 创建更多特征,使用逻辑回归 并 使用线性核函数SVM

11 无监督学习

  • 数据集没有标签
  • 通过算法找到数据集中的结构:聚类算法

11.1 K-Means 聚类算法

  • 选取聚类中心 (cluster center)

  • 首先进行簇分类:根据距离聚类中心的距离对样本进行分类

  • 然后进移动聚类中心:计算同一类样本的均值并移动聚类中心到均值

  • 重复进行迭代

  • K-Means 算法输入

    • image-20220624182258825

    • 聚类数目:K

    • 无标签样本

  • K-Means 算法步骤

    • image-20220624183116788

11.2 优化目标

  • 优化目标:失真代价函数

    • image-20220624190502610

    • 使损失函数最小:

      • 找到每个样本所属的聚类c参数
      • 找到每个聚类的聚类中心

11.3随机初始化

  • 随机初始化

    • image-20220624191601458

    • 聚类数小于样本数

    • 随机K个训练样本作为 初始化聚类中心

  • 局部最优化

    • image-20220624192428597
  • 防止局部最优解,运行多次随机初始化并寻找最小损失函数解

    • image-20220624192546671

11.4 选取聚类数量

  • 肘部法则

    • image-20220624193126863
  • 根据下游目的选择K的数量

    • image-20220624193704381

12 降维

12.1 数据压缩

  • 2D-1D:

    • image-20220624204806772
  • 3D - 2D

    • image-20220624204848595

12.2 主成分析问题规划 PCA

  • 将高维特征 映射到低维 空间

    • image-20220624210626335

    • 寻找K个向量组成的子空间,将n维向量映射到该子空间

  • 线性回归与 PCA:误差函数不一样

    • image-20220624210921887
  • PCA算法过程

    • image-20220624214218051

    • 首先进行特征值的均值归一化/特征缩放

      • image-20220624214432722
    • 然后计算协方差矩阵,并运用奇异值分解计算协方差矩阵获得 前k个向量组成的低维子空间

      • image-20220624214802496
    • 最后计算 映射到低维的向量

      • image-20220624215021820

12.3 压缩重现

    • image-20220624220438140

12.4如何选择K

  • image-20220624222503778
  • 确保该不等式小于等于一个小值:也称作保留了99%方差
  • 如何查看该值是否满足要求,在svd函数中返回的矩阵即可求解,不需要反复计算该值:
    • image-20220624222800425

12.5 PCA使用建议

  • 应用:

    • 数据降维加快算法效率
    • 数据可视化
    • image-20220624224149023
  • PCA不用于 防止过拟合

    • image-20220624224235657

13 异常检测

13.1 问题动机

  • 主要用于非监督学习

    • 例子

    • image-20220625160559316

    • image-20220625160734599

      • 用户欺骗行为检测
      • 工业产品制造检测
      • 数据中心集群检测

13.2 高斯分布(正态分布)

  • 高斯分布:

    • image-20220625161848085
  • 参数估计问题:给定数据集,拟合出数据集的概率分布参数

    • image-20220625162113860

13.3 异常检测算法

  • (各个特征独立同分布/不独立也可以),假设概率模型P(x) 为:

    • image-20220625163457242
  • 算法步骤

    • image-20220625164010183

    • 选择特征值

    • 计算拟合每个特征的 正态分布 参数并计算总的概率密度函数

    • 带入新的数据参数 计算概率值

13.4 评估 异常检测算法

  • 划分数据集

    • image-20220625170632034

    • 训练集:无标签

    • CV 交叉验证集:带标签

    • 测试集:带标签

  • 评估步骤

    image-20220625170712665

    • 计算拟合模型P(x)
    • 在 CV集 和test集 上计算 概率值并检验是否异常
    • 计算画出评估矩阵,计算查准率和召回率 并计算 F-score

13.5 异常检测与监督学习

  • 异常检测:正样本/负样本 很少
  • 监督学习:正样本与负样本 都很多
    • image-20220625172433841

13.6 如何 选择 异常检测 特征

  • 画出数据集中不同特征的直方图

    • image-20220625173007324
  • 误差分析:

    • image-20220625173803119

    • 从CV数据集中检查 被误分类的数据,并检查其中的特征,是否包含标志性特征

13.7 多变量高斯分布

  • 多变量高斯分布 函数

    • image-20220625175806454

    • image-20220625180615656

  • 通过数据集拟合 多元高斯函数 参数:

    • image-20220625180737514
  • 多元高斯分布函数 异常检测算法步骤

    • image-20220625181157207
  • 普通高斯函数模型与多元高斯函数模型

    • image-20220625182156935
    • 普通高斯函数时一种特殊情况:多元高斯模型 协方差矩阵非对角线值为0
    • 多元高斯模型可以自动捕获特征之间的关系,普通高斯分布模型需要设置一个新的特征捕获特征间的关联,普通高斯模型计算性能更快

14 推荐算法

14.1 基于内容的推荐算法

  • 例子:根据已有用户对不同 电影的评价,拟合出不同用户的 的参数,从而预测用户未看过的电影评价

    • image-20220625184808139

    • 假设每个电影有两个特征:浪漫程度和 动作指数

    • 参数意义:

      • image-20220625184932956
    • 优化函数:

      • image-20220625185005064

      • 对每个用户j:有一个参数向量θ_j,总的优化目标函数将每个 用户的损失函数相加 并加上正则项

    • 计算梯度

      • image-20220625185203576

14.2 协同过滤

  • 先提供参数 θ_j, 拟合出每个电影的特征值 x_i

  • 优化目标:

    • image-20220625192433632

    • 对于每个电影的特征值 x_i,计算在已知θ_j 下的误差值并求和,再优化

  • 协同过滤

    • image-20220625192612648

    • 随机初始化θ_j, 拟合出 特征值 x_i,再拟合出 θ_j ,直到收敛

  • 将两个优化目标 函数结合在一起:

    • image-20220625193301324
  • 协同过滤步骤

    • image-20220625194347444

    • 随机初始化特征值 向量与 参数向量

    • 优化算法 优化协同损失函数

    • 对 用户未作评价的电影 根据拟合的 参数θ和电影的特征值进行预测

14.3 协同过滤向量化

  • 低秩矩阵分解:

    • image-20220625195313065
  • 相似推荐:

    • 根据学习到的特征向量,判断两个电影的相似程度:
      • image-20220625195826358

14.4 均值归一化

  • 将数据集均值归一化后进行训练:
    • image-20220625200435465

15 大数据机器学习处理

15.1 随机梯度下降

  • 思想:在对数据集进行遍历一次的同时开始 对参数进行拟合优化,而不是需要进行多次遍历数据求和进行梯度下降。

  • 步骤

    • image-20220625202003777

    • 随机打乱数据

    • 对每个样本数据集 进行单个梯度下降,进行参数拟合

15.2 Mini-Batch 梯度下降

  • 思想:介于batch 梯度下降与随机梯度下降之间,选用b个样本进行梯度下降

  • image-20220625202421172

  • Mini-Batch 步骤:

    • image-20220625202623999

15.3 随机梯度收敛

  • 思想:不是每一步进行检验损失函数是否 下降,选择一个步骤间隙,每隔一个大步骤计算损失函数平均值 并检查与前一大步 损失函数是否下降
    • image-20220625204303975

15.4 减少映射与数据并行(Map Reduce)

  • 思想:

    • image-20220625210234644

    • image-20220625210258801