• 机器学习之归一化


    1.目的

    1.1损失函数求解问题

    • 线性回归Loss函数梯度公式
    参数含义
    θ \theta θ函数参数
    α \alpha α学习率
    x j i x^i_{j} xjix:数据集,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

    θj:=θjαLoss(θ)θj:=θjα(z(θj)yi)xji" role="presentation">θj:=θjαLoss(θ)θj:=θjα(z(θj)yi)xji
    θ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

      θ1:=θ1α(z(θ1)yi)x1iθ2:=θ2α(z(θ2)yi)x2i" role="presentation">θ1:=θ1α(z(θ1)yi)x1iθ2:=θ2α(z(θ2)yi)x2i
      θ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

    xi,j=xi,jxjminxjmaxxjmin" role="presentation">xi,j=xi,jxjminxjmaxxjmin
    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]]
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
      • 更新路线可能不是最优路线在这里插入图片描述
        • 当我们使用最大值最小值归一化时,会将数据集的值归一化到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

    xi,j=xi,jxjmeanstandarddeviation" role="presentation">xi,j=xi,jxjmeanstandarddeviation
    xi,j=standarddeviationxi,jxjmean

    • 公式分子为均值归一化,使数据有正有负,可以得到最优的迭代路线,使更新尽可能沿着最优解路径去。
    • 公式分子为方差归一化,可以减小噪点数据的影响。
  • 相关阅读:
    MAC层协议总结
    运行近20年,基于Win 98的火星探测器软件迎来首次升级
    JVM笔记: JVM内存模型
    Ansible之 AWX 创建管理项目的一些笔记
    黑马瑞吉外卖之菜品的启售停售
    Java项目:SSH电影在线售票管理系统
    FFmpeg 命令:从入门到精通 | FFmpeg 解码流程
    IDEA 28 个天花板技巧 + 12 款神级插件,生产力起飞...
    MATLAB初学者入门(17)—— 爬山算法
    Spring Boot EasyPOI 使用指定模板导出Excel
  • 原文地址:https://blog.csdn.net/m0_46926492/article/details/128092775