Machine learning 为逻辑回归定义自己的成本函数可以吗?
在最小二乘模型中,成本函数被定义为预测值与实际值之差的平方,作为输入的函数 当我们进行逻辑回归时,我们将成本函数改为对数函数,而不是将其定义为sigmoid函数(产值)与实际产出之差的平方Machine learning 为逻辑回归定义自己的成本函数可以吗?,machine-learning,data-mining,regression,Machine Learning,Data Mining,Regression,在最小二乘模型中,成本函数被定义为预测值与实际值之差的平方,作为输入的函数 当我们进行逻辑回归时,我们将成本函数改为对数函数,而不是将其定义为sigmoid函数(产值)与实际产出之差的平方 更改并定义我们自己的成本函数以确定参数可以吗?使用逻辑函数、铰链损耗、平滑铰链损耗等,因为它们是零一二进制分类损耗的上界 这些函数通常也会对正确分类但仍在决策边界附近的示例进行惩罚,从而产生“裕度” 所以,如果你在做二进制分类,那么你当然应该选择一个标准的损失函数 如果您试图解决不同的问题,那么不同的损失函数
更改并定义我们自己的成本函数以确定参数可以吗?使用逻辑函数、铰链损耗、平滑铰链损耗等,因为它们是零一二进制分类损耗的上界 这些函数通常也会对正确分类但仍在决策边界附近的示例进行惩罚,从而产生“裕度” 所以,如果你在做二进制分类,那么你当然应该选择一个标准的损失函数 如果您试图解决不同的问题,那么不同的损失函数可能会表现得更好。是的,您可以定义自己的损失函数,但如果您是新手,则最好使用文献中的损失函数。损失函数应满足以下条件:
(*)平方误差与线性判别分析一起使用,但通常以闭合形式而不是迭代方式求解。是,其他成本函数可用于确定参数 平方误差函数(线性回归的常用函数)不太适合逻辑回归 与logistic回归一样,假设是非线性的(sigmoid函数),这使得平方误差函数是非凸的。 对数函数是一个凸函数,它没有局部最优解,所以梯度下降效果很好 你选择的不是损失函数,而是模型 当使用最大似然估计(MLE)拟合参数时,损失函数通常由模型直接确定,这是机器学习中最常用的方法 您提到了均方误差作为线性回归的损失函数。然后“将代价函数改为对数函数”,即交叉熵损失。我们没有改变成本函数。事实上,均方误差是线性回归的交叉熵损失,当我们假设
y
为正态分布,其均值由Wx+b
定义
解释
使用最大似然估计,您可以选择这样的参数,即训练数据的可能性最大化。整个训练数据集的可能性是每个训练样本的可能性的乘积。因为这可能会下溢到零,我们通常会最大化训练数据的对数似然/最小化负对数似然。因此,成本函数成为每个训练样本的负对数似然之和,由下式给出:
-log(p(y;x;w))
其中w是我们模型的参数(包括偏差)。现在,对于逻辑回归,这是你提到的对数。但是,关于这也对应于线性回归的均方误差的说法呢
例子
为了显示MSE对应于交叉熵,我们假设y
正态分布在平均值周围,我们使用w^T x+b
进行预测。我们还假设它有一个固定的方差,所以我们不使用线性回归预测方差,只使用高斯分布的平均值
p(y | x;w)=N(y;w^T x+b,1)
你可以看到,mean=w^T x+b
和variance=1
现在,损失函数对应于
-日志N(y;w^T x+b,1)
如果我们看看高斯N
是如何定义的,我们会看到:
现在,取它的负对数。这导致:
我们选择了1的固定方差。这将使第一项保持不变,并将第二项减少为:
0.5(y-平均值)^2
现在,请记住,我们将平均值定义为w^T x+b
。由于第一项是常数,最小化高斯函数的负对数对应于最小化
(y-w^T x+b)^2
它对应于最小化均方误差。假设在逻辑回归模型中,有标量输入x,模型为每个输入样本x输出概率$\hat{y}(x)=σ(wx+b)$。如果继续,在非常特殊的情况下,建立二次损失函数w