• 数学基础之曲线拟合



    活动地址:CSDN21天学习挑战赛

    曲线拟合

    当今深度学习所有令人印象深刻的成就,都只不过是为了适应“曲线拟合(Curve fitting)”。 ————图灵奖得主、贝叶斯网络之父 朱迪亚·珀尔(Judea Pearl, 2018)
    更多参考网址

    预备知识

    微积分之导数

    基本概念

    拟合: 定义一个损失函数,用于描述模型在训练数据的错误程度,调解参数最大限度地降低这个损失函数,这个过程称为拟合。

    在深度学习中,各个网络层有很多参数,而且随着网络结构的复杂,会有更多参数,而我们要做的就是优化网络结构中的权重,优化目标就是损失函数。即通过调整网络权重,使得损失函数在训练数据上达到最优。

    残差:实际观察值 y i y_i yi与模型估计值(或拟合值) y ^ i \hat{y}_i y^i之间的差$\varepsilon ,即 ,即 ,即\varepsilon = y_i - \hat{y}_i$

    平方误差(Residual Sum of Squared Errors, RSS, 亦称为残差平方和): R S S = ∑ i = 1 n ( y i − y ^ i ) 2 RSS= \sum^n_{i=1} (y_i - \hat{y}_i)^2 RSS=i=1n(yiy^i)2
    残差平方和会随着拟合所用数据点的增加而增大。

    平均绝对误差(Mean Absolute Error, MAE):实际值与预测值之间的残差的绝对值的和的平均值, 即 M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE= \frac{1}{n} \sum^n_{i=1} |y_i - \hat{y}_i| MAE=n1i=1nyiy^i

    均方误差(Mean Squared Error,MSE): 实际值与预测值之间的残差的平方和的平均值,即
    M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE= \frac{1}{n} \sum^n_{i=1} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

    均方根误差(Root Mean Square Error, RMSE):实际值与预测值之间的残差的平方和的平均值的根, 即 R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE= \sqrt {\frac{1}{n} \sum^n_{i=1} (y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2

    R平方(R-Squared)也称为决定系数

    简单的损失函数可以通过公式,训练数据直接求解出模型的最佳参数;然而对于复杂的损失函数,就不能直接计算。在深度学习中,经常使用梯度下降法来确定模型的参数。

    梯度下降

    梯度下降是机器学习中最常用的迭代优化方法。

    梯度: 表示某一函数在该点的方向导数沿着该方向取得最大值,用grad表示,即在该点的导数越大,变化越快。

    有梯度相关还有一个斜率,即

    斜率:表示一条直线(或曲线的切线)关于横坐标轴倾斜程度,即 k = Δ y ∖ Δ x k={\Delta y} \setminus {\Delta x} k=ΔyΔx

    以下以均方误差为例, l o s s = M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 loss= MSE= \frac{1}{n} \sum^n_{i=1} (y_i - \hat{y}_i)^2 loss=MSE=n1i=1n(yiy^i)2
    如果 y = a x + b y=ax+b y=ax+b,则上式可以进一步写成 l o s s = M S E = 1 n ∑ i = 1 n ( y i − a x i − b ) 2 loss= MSE= \frac{1}{n} \sum^n_{i=1} (y_i - ax_i - b)^2 loss=MSE=n1i=1n(yiaxib)2 , 即此时是一个线性回归问题。

    梯度下降的更新规则
    a t + 1 = a t − η ⋅ g r a d a ( l o s s ) (1) a_{t+1}=a_{t} - \eta \cdot grad_a(loss) \tag{1} at+1=atηgrada(loss)(1)
    这里的 η \eta η称为学习率。
    于是有

    g r a d a ( l o s s ) = ∂ ( 1 n ∑ i = 1 n ( a ⋅ x i + b − y i ) 2 ) ∂ a   = 2 n ∑ i = 1 n ( a ⋅ x i + b − y i ) ⋅ x i (2) grad_a(loss)=\frac{\partial (\frac{1}{n} \sum^n_{i=1} (a \cdot x_i + b - y_i)^2 )}{\partial a} \ =\frac{2}{n}\sum^n_{i=1} ( a \cdot x_i + b - y_i) \cdot x_i \tag{2} grada(loss)=a(n1i=1n(axi+byi)2) =n2i=1n(axi+byi)xi(2)
    联立式(1)(2),以计算出 a a a b b b

  • 相关阅读:
    又重新搭了个个人博客
    Python调用ChatGPT API使用国内中转key 修改接口教程
    基于java的大学教室管理系统——计算机毕业设计
    【内核的设计与实现笔记】| 【01】初步了解内核
    8、常用基本命令(重要)
    线程基础(一)
    深度学习入门课程
    数组转换字符串
    (附源码)spring boot公选课在线选课系统 毕业设计 142011
    云原生存储解决方案Rook-Ceph与Rainbond结合的实践
  • 原文地址:https://blog.csdn.net/YoungChiu2016/article/details/126453793