首页 > 编程知识 正文

间接效用函数求马歇尔需求函数,cost函数

时间:2023-05-03 06:29:05 阅读:60305 作者:1490

本文目录1 .成本函数是什么2 .成本函数的一般形式2.1平方误差2.2交叉熵2.3神经网络中成本函数3 .成本函数和参数4 .成本函数和梯度4.1线性回归模型成本函数对参数的偏导数

成本函数(有时也称为损失函数。 Loss Function ) )在机器学习的所有算法中都很重要。 之所以这么说,是因为训练模型的过程是优化成本函数的过程,成本函数各参数的偏导数是梯度下降中提到的梯度,防止过伪和时添加的正则化项也添加在成本函数之后。

1 .成本函数假设有训练样本(x,y ),假设模型为h,参数为。 h()=tx )t表示的倒置)

)总之,能够测量模型预测的值h()与真值y之间差异的函数均可以称为成本函数c )),如果存在多个样本,则所有成本函数的取值平均可以称为j )。 因此,能够简单地得到与成本函数相关以下性质:

对于每个算法来说,代价函数都不是唯一的; 成本函数可以使用作为参数函数的总成本函数j()来评价模型的好坏,成本函数越小表示模型和参数与训练样本(x,y )越一致。 j()是标量)2)在确定模型h时,后面要做的都是训练模型的参数。 那么模型训练什么时候结束呢? 此时,也与成本函数有关。 因为成本函数用于测量模型的好坏,所以我们的目标当然是最好的模型(即训练样本(x,y ) ) ) ) ) ) ) ) ) ) ) 理想地,取成本函数j的最小值时,可以获得最佳参数,并表示为minj()

例如,j()=0表明我们的模型得到了完美的模拟,与观察到的数据没有误差。

)3)在优化参数的过程中,最常用的方法是梯度下降,其中梯度下降是代价函数j()对1、2、…、n的偏导数。 由于需要求偏导数,我们可以得到另一个关于成本函数的性质:选择成本函数时,最好对参数选择可调函数(存在全微分,一定存在偏导数) )。

2 .成本函数的一般形式经过上述说明,一个好的成本函数需要满足两个最基本的要求。 可以评价模型的正确性,可以对参数进行微调。

2.1均方误差线性回归中,最常用的是均方误差,具体形式如下:

m:培训的样本数量

h() :参数和根据x预测的y值

y:元训练样本的y值,即标准答案

上角标记(I )第:个样本

2.2交叉熵是逻辑回归中最常用的代价函数是交叉熵,交叉熵是常见的代价函数,也可以用于神经网络。 以下是《神经网络与深度学习》一书的交叉熵描述:

交叉熵是“意外”(译者注:原文中使用suprise )的尺度。 神经元的目标是计算函数y,y=y(x )。 但是,改为让计算函数a,设为a=a(x )。 假设a是y为1的概率,1-a是y为0的概率。 交叉熵衡量我们知道y真值时的平均“意想不到”程度。 如果输出是我们的期望值,我们的“意外”程度比较低; 如果输出不是预期的,我们的“意外”水平会很高。

1948年,chdlc将热力学熵引入信息论中。 因此,也被称为香农熵(Shannon Entropy ),是香农信息量(Shannon信息内容,SIC )的期待。 香农信息量被用于测量不确定性的大小。 一个事件的香农信息量为0,说明那个事件的发生不会给我们提供任何新的信息。 例如,确定的事件,发生的概率为1,发生也不会引起任何惊讶。 当不可能的事件发生时,兼容信息量无限大,这意味着提供了无限的新信息,是我们无限的惊喜。 更多的说明可以看到这里。

2.3神经网络中的代价函数在学习神经网络后,发现了逻辑实际上返回神经网络的特例(无隐层神经网络)。 因此,神经网络中的代价函数与逻辑回归中的代价函数非常相似:

这里增加一个加法项是因为神经网络的输出一般不是单一的值,k表示多分类中的类行数。

例如,在数字的死别中,k=10,表示分为10种。 此时,对于某个样本,输出结果如下

1.1266 e-0041.7413 e-0032.5270 e-0031.8403 e-0059.3626 e-003.9927 e-003.5152 e-003.0147 e-004.4807 e-003.9573 e-004 理想的预测结果应该如下。 (9的概率为1,其他为0 )。

000000001如果将预测结果与理想情况下的结果相比较,则这两个向量中的对应要素之间存在10组不同,其中10表示成本函数中的k。 相当于累积各自类型的差异。

3 .成本函数和参数成本函数测量模型的预测值h()和标准答案y之间的差异,因此总成本函数j是h ))和y的函数,即j=f ) h )),y )。 因为y是被训练的

本中给定的,h(θ)由θ决定,所以,最总还是模型参数θ的改变导致了J的改变。对于不同的θ,对应不同的预测值h(θ),也就对应着不同的代价函数J的取值。变化过程为:θ−−>h(θ)−−>J(θ)
θ引起了h(θ)的改变,进而改变了J(θ)的取值。为了更值观的看到参数对代价函数的影响,举个简单的例子:
有训练样本{(0, 0), (1, 1), (2, 2), (4, 4)},即4对训练样本,每个样本对中的第一个数表示x的值,第2个数表示y的值。这几个点都很明显都是y=x这条址线上的点。如下图:

import matplotlib.pyplot as pltimport numpy as npX = np.array([[0, 1, 2, 4]]).T # 都转换成列向量y = np.array([[0, 1, 2, 4]]).Ttheta1 = np.array([[0, 0]]).T # 三个不同的theta_1值theta2 = np.array([[0, 0.5]]).Ttheta3 = np.array([[0, 1]]).TX_size = X.shapeX_0 = np.ones((X_size[0],1)) # 添加x_0X_with_x0 = np.concatenate((X_0, X), axis=1)h1 = np.dot(X_with_x0, theta1)h2 = np.dot(X_with_x0, theta2)h3 = np.dot(X_with_x0, theta3)plt.plot(X, y, 'rx', label='y')plt.plot(X, h1, 'b', label='h1, theta_1=0')plt.plot(X, h2, 'm', label='h2, theta_1=0.5')plt.plot(X, h3, 'g', label='h3, theta_1=1')plt.xlabel('X')plt.ylabel('y/h')plt.axis([-0.1, 4.5, -0.1, 4.5])plt.legend(loc='upper left')plt.savefig('liner_gression_error.png', dpi=200)

常数项为0,所以可以取θ0=0,然后取不同的θ1,可以得到不同的拟和直线。当θ1=0时,拟和的直线是y=0,即蓝色线段,此时距离样本点最远,代价函数的值(误差)也最大;当θ1=1时,拟和的直线是y=x,即绿色线段,此时拟和的直线经过每一个样本点,代价函数的值为0。
通过下图可以查看随着θ1的变化,J(θ)的变化情况:

# 计算代价函数的值def calcu_cost(theta, X, y): m = X.shape[0] # sample size X_0 = np.ones((m,1)) X_with_x0 = np.concatenate((X_0, X), axis=1) h = np.dot(X_with_x0, theta) return(np.dot((h-y).T, (h-y))/(2*m)) X = np.array([[0, 1, 2, 4]]).Ty = np.array([[0, 1, 2, 4]]).Ttheta_0 = np.zeros((101, 1))theta_1 = np.array([np.linspace(-2, 4, 101)]).Ttheta = np.concatenate((theta_0, theta_1), axis=1) # 101组不同的参数J_list = []for i in range(101): current_theta = theta[i:i+1].T cost = calcu_cost(current_theta, X, y) J_list.append(cost[0,0])plt.plot(theta_1, J_list)plt.xlabel('theta_1')plt.ylabel('J(theta)')plt.savefig('cost_theta.png', dpi=200)

从图中可以很直观的看到θ对代价函数的影响,当θ1=1时代价函数取到最小值。因为线性回归模型的代价函数(均方误差)的性质非常好,因此也可以直接使用代数的方法,求J(θ)的一阶导数为0的点,就可以直接求出最优的θ(正规方程法)。

4.代价函数与梯度

梯度下降中的梯度指的是代价函数对各个参数的偏导数,偏导数的方向决定了在学习过程中参数下降的方向。学习率(通常使用α表示)决定了每步变化的步长,有了导数和学习率就可以使用梯度下降算法(Gradient Descent Algorithm)更新参数了。下图中展示了只有两个参数的模型运用梯度下降算法算法的过程。

下图可以看作是代价函数J(θ)与参数θ做出的图,曲面上一个点(θ0, θ1, J(θ)),有无数条切线,在这些切线中与x-y平面(底面,相当于θ0,θ1)夹角最大的那条边切线就是该点梯度的方向,沿该方向移动,会产生最大的高度变化(相对于z轴,这里的z轴相对于代价函数J(θ))。

4.1 线性回归模型的代价函数对参数的偏导数

4.2 逻辑回归模型的代价函数对参数的偏导数

根据逻辑回归模型的代价函数以及sigmoid函数

得到对每个参数的偏导数为

详细推导过程可以看这里- 逻辑回归代价函数的导数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。