1.目的

1.1损失函数求解问题

  • 线性回归Loss函数梯度公式
参数 含义
θ \theta θ 函数参数
α \alpha α 学习率
x j i x^i_{j} xji x:数据集,i:样本,j:特征 【数据集的每一行是一条样本,每一列是一个特征】
z ( θ j ) z_{(\theta_{j})} z(θj) 预测值
y i y^i yi 真实值

θ j : = θ j − α ∗ ∂ L o s s ( θ ) ∂ θ j : = θ j − α ∗ ( z ( θ j ) − y i ) ∗ x j i \begin{aligned} \theta_{j}&:=\theta_{j}-\alpha*\frac{\partial Loss_{(\theta)}}{\partial \theta_{j}} \\&:=\theta_{j}-\alpha* (z_{(\theta_{j})}-y^i)*x^i_{j} \end{aligned} θj:=θjαθjLoss(θ):=θjα(z(θj)yi)xji

  • 对参数求偏导【求梯度】如下:
    θ 1 : = θ 1 − α ∗ ( z ( θ 1 ) − y i ) ∗ x 1 i θ 2 : = θ 2 − α ∗ ( z ( θ 2 ) − y i ) ∗ x 2 i \begin{aligned} \theta_{1}&:=\theta_{1}-\alpha* (z_{(\theta_{1})}-y^i)*x^i_{1} \\\theta_{2}&:=\theta_{2}-\alpha* (z_{(\theta_{2})}-y^i)*x^i_{2} \end{aligned} θ1θ2:=θ1α(z(θ1)yi)x1i:=θ2α(z(θ2)yi)x2i

    • 对于损失函数初始参数时,参数值期望是均值为0方差1的正太分布随机在0附近的,所以每个初始参数值大小是差不多的。
    • 根据公式可知 α ∗ ( z ( θ 1 ) − y i ) \alpha* (z_{(\theta_{1})}-y^i) α(z(θ1)yi)值也差不多,即参数迭代的快慢就由 x j i x^i_{j} xji【特征值的大小】决定的
    • 假设 x 1 i x^i_{1} x1i特征为年龄, x 2 i x^i_{2} x2i特征为收入,由于年龄的取值范围远小于收入, x 1 i x^i_{1} x1i< x 2 i x^i_{2} x2i,则 θ 2 \theta_{2} θ2迭代速度快于 θ 1 \theta_{1} θ1,导致 θ 2 \theta_2 θ2达到最优解时,需要等待 θ 1 \theta_1 θ1迭代到最优解
  • 图像说明
    在这里插入图片描述

    • 在机器学习算法模型中,需要根据损失函数(Loss)求梯度根据损失求最优解参数 θ \theta θ
    • 如图,对于loss损失的最优解在中心点
    • 迭代参数路线如图蓝色线所示,当 θ 2 \theta_2 θ2迭代到最优解时, θ 1 \theta_1 θ1距离最优解的距离还有一段距离,导致 θ 2 \theta_2 θ2达到最优解时,需要等待 θ 1 \theta_1 θ1迭代到最优解,会导致 θ 1 \theta_1 θ1在最优解的位置慢慢震荡,不能同时获取最优解

1.2 归一化目的

在这里插入图片描述

  • 归一化可以把数据统一到某个范围,达到梯度下降求参数迭代速度一致,统一每个特征的范围,即无量纲化【就是去单位】
  • 如图,对参数进行归一化后, θ 1 \theta_1 θ1 θ 2 \theta_2 θ2迭代速度一致,可以同时求得最优解,同时收敛,减少迭代次数,模型速度加快

2. 归一化

2.1 最大值最小值归一化

参数 含义
j 特征
i 样本
x j m i n x^{min}_{j} xjmin 每个特征的最小值
x j m a x x^{max}_{j} xjmax 每个特征的最大值
x i , j x_{i,j} xi,j 特征的每个样本值

x i , j = x i , j − x j m i n x j m a x − x j m i n \begin{aligned} x_{i,j} &= \frac{x_{i,j}-x^{min}_{j}}{x^{max}_{j}-x^{min}_{j}} \end{aligned} xi,j=xjmaxxjminxi,jxjmin

  • 优点
    • 会将数据归一化到0-1之间
  • 缺点
    • 容易受到噪点数据的影响,公式分母是最大值与最小值的差
      • 如果存在最大值噪点,会导致分母值变大,大部分数据趋向于0,最大值噪点的值趋向于1
      • 如果存在最小值噪点,会导致分母值变大,大部分数据趋向于1,最小值噪点的值趋向于0
        from sklearn.preprocessing import MinMaxScaler
        
        data=[[1],[2],[3],[1000]]
        scaler=MinMaxScaler()
        data_fit=scaler.fit_transform(data)
        print(data_fit)
        # [[0.      ],[0.001001],[0.002002], [1.      ]]
        data=[[1],[1100],[1020],[1000]]
        scaler=MinMaxScaler()
        data_fit=scaler.fit_transform(data)
        print(data_fit)
        #[[0.        ],[1.        ],[0.92720655],[0.90900819]]
        
    • 更新路线可能不是最优路线在这里插入图片描述
      • 当我们使用最大值最小值归一化时,会将数据集的值归一化到0-1之间,导致数据的值都为正
      • 导致参数只能同时增大或减小 ,但是每个参数的关系并不都是正相关性
      • 如图,我们希望参数 w t w_t wt迭代到 w ∗ w_* w,我们发现 w 2 w_2 w2迭代过程中在增大, w 1 w_1 w1迭代过程中在减小,由于我们将数值都归一化为正数,只能根据图中黑线迭代得到最优参数,不能通过最优路径【红色线】迭代,导致迭代次数增加

2.2 标准化

参数 含义
x j m e a n x^{mean}_{j} xjmean 特征均值
s t a n d a r d d e v i a t i o n standard \quad deviation standarddeviation 特征方差

x i , j = x i , j − x j m e a n s t a n d a r d d e v i a t i o n \begin{aligned} x_{i,j} &= \frac{x_{i,j}-x^{mean}_{j}}{standard \quad deviation} \end{aligned} xi,j=standarddeviationxi,jxjmean

  • 公式分子为均值归一化,使数据有正有负,可以得到最优的迭代路线,使更新尽可能沿着最优解路径去。
  • 公式分子为方差归一化,可以减小噪点数据的影响。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐