• 机器学习基础学习笔记


    最小化经验风险函数

    目的

    用来学习模型参数,具体来说就是先随机初始化模型参数w,然后根据模型表达式所有训练数据的预测输出,将预测值和真实值进行对比,以减小误差为目标来更新模型参数w。这里的误差实际就是刚才所说的经验风险。

    损失函数(loss function)

    损失函数 是关于模型预测值f(xi)和样本标记值yi的函数,记做:L(f(xi), yi),L是loss的缩写。它用来度量模型在单个样本上预测效果的好坏。
    常见的损失函数有:0-1损失函数、绝对损失函数、平方损失函数、对数损失函数。

    0-1损失

    0-1损失
    样本预测值f(xi)等于样本标记值yi,则模型在该样本上的预测损失为0,否则为1.

    绝对损失

    绝对损失
    将样本预测值f(xi)和样本标记值yi差的绝对值作为模型在该样本上的预测损失。

    平方损失

    平方损失
    将样本预测值f(xi)和样本标记值yi差的平方值作为模型在该样本上的预测损失。

    总结

    三个损失函数中,平方损失用的最多。

    经验风险

    基本公式

    经验风险是模型在训练数据集上的平均损失,用来度量模型在整个训练数据集上预测效果的好坏,数学表达式为:
    在这里插入图片描述
    经验风险是将每个样本的损失进行求和,然后再除以样本数。自然地,线性回归的经验风险只需要把它的损失函数带入上述公式就可以了。

    线性回归的经验风险

    在这里插入图片描述
    公式右侧的分母多了一个2,这个其实是为了函数求导后形式的简洁而添加的,具体来说就是为了和二次函数求导后出现的常数2进行抵消。

    将平方损失直接带入经验风险基本公式得到的是均方误差(mean squared error, 简称MSE),从名字可以知道它的计算方式为:先计算差值,然后平方,最后取均值。所以,线性回归的经验风险是MSE的一半。

    公式左侧J(w)表示经验风险是参数向量w的函数;J表示函数的映射关系,其实就是用来表示线性回归经验风险的符号标识。

    上面的经验风险(标量求和式)还可以转换成矩阵乘法的形式,线性回归的预测函数既有标量形式又有矩阵乘法的形式,但是他们表达的逻辑是一样的:

    在这里插入图片描述
    可以看到,行矩阵乘列矩阵等于对应元素乘积的求和式。所以,线性回归的经验风险也可以写成行矩阵乘列矩阵相乘的形式。
    在这里插入图片描述

    总结

    经验风险用来度量模型在整个训练集上的预测效果好坏,而损失函数用来度量模型在单个训练样本上的预测效果好坏。

    知道了线性回归的经验风险之后,下一步就是要最小化这个经验风险,并将经验风险最小时的模型参数作为学习到的最佳参数。

    这个问题有两种解法,第一种是令经验风险的导数为0;第二种是机器学习中求解模型参数更加通用的一种方法:梯度下降法(gradient descent,简称GD)。

    梯度下降

    偏导数和梯度

    偏导数是相对与多变量函数而言的,例如函数f(w1, w2)对于变量w1求偏导时,是把除w1以外的变量当做常数,然后计算导数。函数f(w1,w2)对w1的偏导记为:
    在这里插入图片描述

    导数的计算

    在这里插入图片描述
    注意:复合函数的导数为外层函数的导数与内层函数导数的乘积。

    梯度(gradient):其实就是一个向量,一个函数对于其自变量分别求偏导数,这些偏导数所组成的向量就是函数的梯度。

    梯度下降的理解

    梯度下降法是求解模型参数的常用方法,那为什么是梯度下降呢?梯度实际就是一个向量,向量既有大小也有方向,所谓梯度下降实际上是模型参数的更新方法:沿梯度的负方向进行参数更新
    经验风险大多是一个凸函数,它的梯度方向是经验风险增大的方向,我们要最小化经验风险就必须朝着负梯度方向更新参数。

    **凸函数定义:**曲线上任意两点的连线都位于曲线的上方。

    关于一元二次函数,这个函数的梯度可以看做只有一个元素的向量。

    模型参数的更新公式

    在这里插入图片描述
    公式中的alpha在机器学习中的术语叫做学习率,是一个人为设定的超参数,代表了参数w一次更新的幅度大小;梯度gradient在一元二次函数中为导数的值。

    梯度下降的推导

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    web前端期末大作业:青岛旅游网页主题网站设计——青岛民俗4页 HTML+CSS 民俗网页设计与制作 web网页设计实例作业 html实训大作业
    nvm安装(非C盘安装)
    Android 11.0 Launcher3去掉抽屉模式 双层改成单层(二)
    【kali-权限提升】(4.2.6)社会工程学工具包(中):中间人攻击工具Ettercap
    神经痛分类图片大全,神经病理性疼痛分类
    SpringBoot日志文件
    数据治理的改造系统
    1616. 分割两个字符串得到回文串;1717. 删除子字符串的最大得分;1605. 给定行和列的和求可行矩阵
    什么是Webpack的热模块替换(Hot Module Replacement)?它的作用是什么?
    Docker(10)compose容器编排
  • 原文地址:https://blog.csdn.net/weixin_44572041/article/details/126083300