ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

读书笔记-白话机器学习的数学

2022-02-06 16:59:03  阅读:245  来源: 互联网

标签:vb position 机器 读书笔记 白话 parse KaTeX error theta


回归

线性回归

步骤

  1. 训练数据,画图

  2. 预测函数和目标函数

    • 初始值是随机的

    • 最小二乘法

    • 1 2 \frac{1}{2} 21​ 是方便计算加的

  3. 梯度下降法

    • 学习率 η \eta η
  4. 复合函数微分的链式法则

  5. 参数更新表达式

  6. 演示程序

  7. 标准化

    • 差值阈值,跳出训练

公式

预测函数:
f θ ( x ) = θ 0 + θ 1 x f_\theta(x)= \theta_0 + \theta_1x fθ​(x)=θ0​+θ1​x
目标函数(误差函数):
E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 E(\theta) = \frac{1}{2}\sum_{i=1}^{n}(y^{(i)} - f_\theta(x^{(i)}))^2 E(θ)=21​i=1∑n​(y(i)−fθ​(x(i)))2
梯度下降法表达式:
θ 0 : = θ 0 − η ∂ E ∂ θ 0 \theta_0 := \theta_0 - \eta\frac{\partial E}{\partial \theta_0} θ0​:=θ0​−η∂θ0​∂E​
链式法则:
u = E ( θ ) v = f θ ( x ) ∂ u ∂ θ 0 = ∂ u ∂ v ⋅ ∂ v ∂ θ 0 u= E(\theta) \\ v = f_\theta(x) \\ \frac{\partial u}{\partial \theta_0} = \frac{\partial u}{\partial v}\cdot\frac{\partial v}{\partial \theta_0} u=E(θ)v=fθ​(x)∂θ0​∂u​=∂v∂u​⋅∂θ0​∂v​
参数更新表达式:

u u u 对 v v v 的微分
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \frac{\partial…
v v v 对 θ 0 \theta_0 θ0​ 的微分
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \frac{\partial…
u u u 对 θ 0 \theta_0 θ0​ 的微分
$$
\begin{align*}
\frac{\partial u}{\partial \theta_0} &= \frac{\partial u}{\partial v}\cdot\frac{\partial v}{\partial \theta_0} \
&= \sum_{i=1}^{n}( v - y^{(i)})\cdot 1\
&= \sum_{i=1}^{n}( f_\theta(x^{(i)}) - y^{(i)})

\end{align*}
KaTeX parse error: Can't use function '$' in math mode at position 2: $̲\theta_0$ 的参数更新…
\theta_0 := \theta_0 - \eta\sum_{i=1}^{n}( f_\theta(x^{(i)}) - y^{(i)})
KaTeX parse error: Can't use function '$' in math mode at position 5: 同理,$̲\theta_1$ 的参数更新…
\theta_1 := \theta_1 - \eta\sum_{i=1}^{n}( f_\theta(x^{(i)}) - y{(i)})x{(i)}
$$

使用矩阵表示

预测函数:
f θ ( x ) = θ 0 + θ 1 x f_\theta(x)= \theta_0 + \theta_1x fθ​(x)=θ0​+θ1​x
使用向量表示:
KaTeX parse error: Undefined control sequence: \va at position 2: \̲v̲a̲{\theta} = \beg…

优化算法

  • 最速梯度下降法的缺点
    • 计算量大
    • 容易陷入局部最优解
  • 随机梯度下降
    • 随机选择一个训练数据来更新参数
    • 最速下降法更新一次,随机梯度下降法可以更新 n 次
  • 小批量梯度下降法
    • 随机选择 m 个训练数据来更新参数

问题

为什么要使用梯度下降法,直接求导不行吗?

  1. 确定不了导数为 0 的时候,是最大值还是最小值
  2. 计算机更擅长循环迭代的方式求解
  3. 多元表达式无法直接求解

为什么使用标准化?

  • 提升模型精度
  • 提升收敛速度
  • 不改变原始数据的分布

为什么是用 python 作为 AI 的主流语言?

  • 广泛的库和框架选择
  • 平台独立性

学习率如何决定?

目前只能通过反复尝试来找到合适的值

扩展

  • 多重回归
    • 对参数进行标准化,校验时需要使用相同的平均数和标准差
  • 多项式回归

分类

感知机

  • 只能处理线性可分的情况
  • 可以处理三维以上的数据

步骤

  1. 训练数据,画图
    • 矩形为横向还是纵向
  2. 预测函数和目标函数
    • KaTeX parse error: Undefined control sequence: \vb at position 1: \̲v̲b̲*{x} 和 \vb*{w}为向量
    • 内积正负说明相似程度
    • 无目标函数
  3. 参数更新表达式
    • 寻找使权重向量成为法线向量的直线
    • 通过向量的相加实现权重的更新
  4. 演示程序
    • 指定训练次数

公式

预测函数(判别函数):
KaTeX parse error: Undefined control sequence: \vb at position 4: f_\̲v̲b̲*{w}(\vb*{x}) =…
参数更新表达式:
KaTeX parse error: Undefined control sequence: \vb at position 2: \̲v̲b̲*{w} := \begin{…

逻辑回归

  • y 值使用 0 和 1 处理更加方便
  • 训练数据
    • 线性可分
    • 同感知机
  • 预测函数
    • KaTeX parse error: Undefined control sequence: \vb at position 1: \̲v̲b̲*{\theta}^T\vb*… 时,值为 0.5
    • 函数值在(0,1)范围内
    • KaTeX parse error: Undefined control sequence: \vb at position 1: \̲v̲b̲*{\theta}^T\vb*… 时的直线称为决策边界
  • 目标函数
    • 似然函数,Likelihood
    • 求使目标函数最大化的参数KaTeX parse error: Undefined control sequence: \vb at position 1: \̲v̲b̲*{\theta}
  • 参数更新表达式
    • l o g ( 1 − v ) log(1-v) log(1−v) 同样使用复合函数求导公式进行微分
    • 指定训练次数

公式

sigmoid函数:
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+e−x1​
image-20220204192840980

常用导数:
( e x ) ′ = e x ( e − x ) ′ = − e − x (e^x)' = e^x \\ (e^{-x})' = -e^{-x} (ex)′=ex(e−x)′=−e−x
sigmoid函数微分:
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \sigma'(x) &= …
预测函数:
KaTeX parse error: Undefined control sequence: \vb at position 4: f_\̲v̲b̲*{\theta}(\vb*{…
阈值函数:
KaTeX parse error: Undefined control sequence: \vb at position 25: …in{cases} 1 & (\̲v̲b̲*{\theta}^T\vb*…
未知数据 KaTeX parse error: Undefined control sequence: \vb at position 1: \̲v̲b̲*{x}是横向图像的概率:
KaTeX parse error: Undefined control sequence: \vb at position 8: P(y=1|\̲v̲b̲*{x}) = f_\vb*{…
目标函数:
KaTeX parse error: Undefined control sequence: \vb at position 4: L(\̲v̲b̲*{\theta}) = \p…
对数似然函数:
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \log L(\vb*{\t…
复合函数:
KaTeX parse error: Undefined control sequence: \vb at position 13: u = \log L(\̲v̲b̲*{\theta}) \\ v…
参数更新表达式:

u u u 对 v v v的微分
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \frac{\partial…
v v v 对 θ j \theta_j θj​ 微分
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \frac{\partial…
u u u 对 θ j \theta_j θj​ 微分
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ \frac{\partial…
θ j \theta_j θj​ 的参数更新表达式:
KaTeX parse error: Undefined control sequence: \vb at position 54: …^n(y^{(i)} - f_\̲v̲b̲*{\theta}(\vb*{…
θ j \theta_j θj​ 的参数更新表达式(和回归时保持一致):
KaTeX parse error: Undefined control sequence: \vb at position 44: …\sum_{i=1}^n(f_\̲v̲b̲*{\theta}(\vb*{…
决策边界:
KaTeX parse error: Undefined control sequence: \vb at position 2: \̲v̲b̲*{\theta}^T\vb*…

线性不可分

  • 多项式函数
  • 决策边界为曲线

决策边界:
KaTeX parse error: Undefined control sequence: \vb at position 2: \̲v̲b̲*{\theta}^T\vb*…

扩展

  • SVM 分类算法
  • 其他分类算法

正则化

  1. 确定正则化项
    • λ \lambda λ 表示正则化项影响程度
  2. 重定义目标函数
  3. 重定义参数更新表达式

公式

L2正则化项:
R ( θ ) = λ 2 ∑ j = 1 m θ j 2 R(\theta) = \frac{\lambda}{2}\sum_{j=1}^{m}\theta_j^2 R(θ)=2λ​j=1∑m​θj2​
目标函数:
KaTeX parse error: Undefined control sequence: \vb at position 59: …i)} - f_\theta(\̲v̲b̲*{x}^{(i)}))^2 …

参数更新表达式:
KaTeX parse error: Undefined control sequence: \vb at position 55: …^{n}( f_\theta(\̲v̲b̲*{x}^{(i)}) - y…

基础

  • 误差函数

    • MSE(Mean Square Error, 均方误差),KaTeX parse error: Undefined control sequence: \vb at position 37: …^n(y^{(i)} - f_\̲v̲b̲*{\theta}(\vb*{…
    • SSE(The Sum Of Squares Due To Error, 和方差)
    • RMSE(Root Mean Squared Error, 均方根误差)
  • 容量

    • batchsize:批大小
    • iteration:1 个iteration 等于使用 batchsize 个样本训练一次
    • epoch:1个epoch等于使用训练集中的全部样本训练一次
  • 随机梯度下降法(Stochastic Gradient Descent,SGD)

模型评估

  • 交叉验证:将数据按一定比例分为测试数据和训练数据,一般为 3:7 或者 2:8
  • 数据的分配方法不能太极端
  • 回归问题:均方误差
  • 计算精确率和召回率时使用数据少的类别
  • K 折交叉验证:需要确定一个合适的 K 值
  • 学习曲线:通过学习曲线判断模型是过拟合还是欠拟合
    • 高偏差(欠拟合):随着数据数量的增加,使用训练数据时的精度不断下降,使用测试数据时的精度不断上升
    • 高方差(过拟合):随着数据数量的增加,使用训练数据时的精度缓慢,使用测试数据时的精度不断上升,但是达不到训练数据精度

分类问题

  • 精度

A c c u r a c y = T P + T N T P + F P + F N + T N Accuracy = \frac{TP + TN}{TP + FP + FN + TN} Accuracy=TP+FP+FN+TNTP+TN​

  • 精确率:当训练数据极不平衡时,在分类为 Positive 的数据中,分类正确的比例

P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP + FP} Precision=TP+FPTP​

  • 召回率:在 Positive 数据中,分类正确的比例
    R e c a l l = T P T P + F N Recall = \frac{TP}{TP + FN} Recall=TP+FNTP​

  • 一般来说,精确率和召回率会一个高一个低,不能取平均值

  • 调和平均值F1值
    F m e a s u r e = 2 1 P r e c i s i o n + 1 R e c a l l F m e a s u r e = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l Fmeasure = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}} \\ \\ Fmeasure = \frac{2 \cdot Precision \cdot Recall}{Precision + Recall} Fmeasure=Precision1​+Recall1​2​Fmeasure=Precision+Recall2⋅Precision⋅Recall​

  • 权重调和平均值F值
    F m e a s u r e = ( 1 + β 2 ) ⋅ P r e c i s i o n ⋅ R e c a l l β 2 ⋅ P r e c i s i o n + R e c a l l Fmeasure = \frac{(1 + \beta^2) \cdot Precision \cdot Recall}{\beta^2 \cdot Precision + Recall} Fmeasure=β2⋅Precision+Recall(1+β2)⋅Precision⋅Recall​

正则化

过拟合

  • 过拟合:只能拟合训练数据
  • 避免过拟合
    • 增加全部训练数据的数量(重要)
    • 使用简单的模型,例:将预测函数从曲线变成直线
    • 正则化
  • 欠拟合:一般模型过于简单
正则化
  • 防止参数变得过大,减少参数的影响,对参数进行惩罚
  • 不对偏置项进行正则化
  • λ \lambda λ 为正则化项影响程度
  • 线性回归的正则化
    E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 R ( θ ) = λ 2 ∑ j = 1 m θ j 2 E(\theta) = \frac{1}{2}\sum_{i=1}^{n}(y^{(i)} - f_\theta(x^{(i)}))^2 \\ R(\theta) = \frac{\lambda}{2}\sum_{j=1}^{m}\theta_j^2 E(θ)=21​i=1∑n​(y(i)−fθ​(x(i)))2R(θ)=2λ​j=1∑m​θj2​
  • 分类函数的正则化,改变目标函数的符号将最大化问题转换为最小化问题
    KaTeX parse error: Undefined control sequence: \vb at position 9: \log L(\̲v̲b̲*{\theta}) = -\…
  • L1 正则化:被判定为不需要的参数为变为 0
    R ( θ ) = λ ∑ j = 1 m ∣ θ j ∣ R(\theta) = \lambda\sum_{j=1}^{m}|\theta_j| R(θ)=λj=1∑m​∣θj​∣
  • L2 正则化:抑制参数
    R ( θ ) = λ 2 ∑ j = 1 m θ j 2 R(\theta) = \frac{\lambda}{2}\sum_{j=1}^{m}\theta_j^2 R(θ)=2λ​j=1∑m​θj2​

参考

  • 数据集 Iris

待学习

  • numpy
  • Matplotlib Pyplot

标签:vb,position,机器,读书笔记,白话,parse,KaTeX,error,theta
来源: https://blog.csdn.net/shichen501/article/details/122799480

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有