人工智能基础部分3-方差损失函数的概念

大家好,我是微学AI,今天给大家介绍一下方差损失函数的概念:

方差损失函数是指计算模型在训练集上的表现和在测试集上的表现之间的差异。它衡量着模型的拟合能力,也可以用来衡量模型的泛化能力。方差损失函数可以帮助我们找到最优模型,从而提高模型的泛化能力。

方差损失函数也是一种常见的回归损失函数,它的原理是,用算法预测出的值减去真实值,然后计算这些差值的方差,该方差越高,意味着算法的预测准确度越低。因此,当算法优化时,我们可以优化方差损失函数,从而提高预测准确率。

损失函数一般有方差损失函数,绝对值损失函数,交叉熵损失函数,方差损失函数将模型预测值与真实值之间的误差衡量为两者之间的方差,因此可以表示模型预测能力的稳定性,常用于回归问题。 而绝对值损失函数,其实质是将模型预测值与真实值之间的误差衡量为两者之间的绝对值,在计算过程中不方便,交叉熵损失函数一般用于分类问题,对于回归问题我们更倾向于选择方差损失函数。

方差损失函数可以用来描述一个组合的偏离度,从而估计模型的不确定性。比如说,一家公司有三个部门,A、B和C,他们的收入分别是100万、200万和300万。公司的总收入是600万,每个部门平均200万收入,我们可以用方差损失函数来计算各部门收入的偏离度:
loss = (100 - 200)^2 + (200 - 200)^2 + (300 - 200)^2 = 200,000
可以看出,总收入为600万的情况下,各部门收入的偏离度为200,000。这里,方差损失函数可以用来衡量各部门收入的不确定性,从而帮助我们更好地评估模型的表现。

 

1.方差损失函数是数学表达:

假设有一个回归问题,其中有三个自变量x_1,x_2,x_3和一个响应变量y。将此问题表示为均方差损失函数时,可以使用以下函数:L=(y-(a_1x_1+a_2x_2+a_3x_3))^2 其中,a_1,a_2,a_3是待估计的参数,用于表示y与每个自变量之间的关系。要估计这些参数,可以使用最小二乘法,以使最小化均方差损失函数。

2.最小二乘法的数学证明:

最小二乘法是一种数据拟合方法,用于拟合一条直线或多项式曲线到一组数据点。它将曲线拟合到数据点,使得所有点到拟合曲线的距离的平方和最小。

举个例子,假设我们有一组数据点,每个点表示成坐标(x,y),如(1,2),(2,4),(3,6),(4,8),(5,10),我们可以用最小二乘法来拟合一条直线到这些点。直线的方程是y=ax+b,其中ab是需要求解的未知参数。根据最小二乘法,我们需要最小化的是所有点到拟合直线的距离的平方和, 即:

                                                      \sum_{i=1}^{n}(y_i-ax_i-b)^2

其中n是数据点的个数,y_i是第i个数据点的y坐标,x_i是第i个数据点的x坐标。 对上面的公式求导,得到:

                                  \frac{\partial}{\partial a}\sum_{i=1}^{n}(y_i-ax_i-b)^2=-2\sum_{i=1}^{n}x_i(y_i-ax_i-b)

                                  \frac{\partial}{\partial b}\sum_{i=1}^{n}(y_i-ax_i-b)^2=-2\sum_{i=1}^{n}(y_i-ax_i-b)

将上面两个式子设置为0,得到:

                                     \sum_{i=1}^{n}x_i(y_i-ax_i-b)=0,\sum_{i=1}^{n}(y_i-ax_i-b)=0

从上面的两个式子可以得到a和b的值:

                                   a=\frac{\sum_{i=1}^{n}x_iy_i-\sum_{i=1}^{n}x_i\sum_{i=1}^{n}y_i/n}{\sum_{i=1}^{n}x_i^2-\sum_{i=1}^{n}x_i\sum_{i=1}^{n}x_i/n}

                                   b=\frac{\sum_{i=1}^{n}x_i\sum_{i=1}^{n}y_i/n-\sum_{i=1}^{n}x_iy_i}{\sum_{i=1}^{n}x_i^2-\sum_{i=1}^{n}x_i\sum_{i=1}^{n}x_i/n}

可得 a=\frac{\sum_{i=1}^{n}(x_i-\overline{x})(y_i-\overline{y})}{\sum_{i=1}^{n}(x_i-\overline{x})^2}, \ \ \ \ b=\overline{y}-\hat{a}\overline{x}

根据上面的公式,当n=5时,a=2,b=0,所以最终的直线方程为:y=2x 。这个结果正是我们预期的,说明最小二乘法拟合的结果是正确的。

 下面是 方差损失函数与 交叉熵损失函数的python代码样例:

# 引入库
import numpy as np

# 定义均方差损失函数
def loss_mse(y_true, y_pred):
    mse_loss = np.mean(np.power(y_true - y_pred, 2))

    return mse_loss
    # 构造 y_true 和 y_pred

y_true = np.array([1,2,3,4,5])
y_pred = np.array([1.5, 2, 3, 4.5, 5])

# 计算和输出均方差损失函数
mse_loss = loss_mse(y_true, y_pred)

print('均方差损失函数:', mse_loss)

# 定义交叉熵损失函数
def loss_ce(y_true, y_pred):

  # 计算真实标签与预测标签之间的交叉熵
  ce_loss = -np.mean(np.sum(np.multiply(y_true, np.log(y_pred)), axis=1))
  return ce_loss

# 构造 y_true 和 y_pred
y_true = np.array([[0, 1, 0], [1, 0, 0], [0, 0, 1]])
y_pred = np.array([[0.6, 0.2, 0.2], [0.2, 0.3, 0.5], [0.3, 0.3, 0.4]])

# 计算和输出交叉熵损失函数
ce_loss = loss_ce(y_true, y_pred) 
print('交叉熵损失函数:',ce_loss)

 更多细节,可私信咨询,获取更多源码教程

往期作品:

 一、人工智能基础部分

1.人工智能基础部分1-人工智能的初步认识

2.人工智能基础部分2-一元一次函数感知器

3.人工智能基础部分3-方差损失函数的概念

4.人工智能基础部分4-梯度下降和反向传播

5.人工智能基础部分5-激活函数的概念

6.人工智能基础部分6-神经网络初步认识

7.人工智能基础部分7-高维空间的神经网络认识

8.人工智能基础部分8-深度学习框架keras入门案例

9.人工智能基础部分9-深度学习深入了解

10.人工智能基础部分10-卷积神经网络初步认识

11.人工智能基础部分11-图像识别实战

12.人工智能基础部分12-循环神经网络初步认识

13.人工智能基础部分13-LSTM网络:自然语言处理实践

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值