二、机器学习基础4

代价函数

通过代价函数获得参数,来寻找最优解的目标函数。

常用平方差代价函数:

假设函数

h\left ( x \right )= \theta _{0}x

平方误差代价函数:将实际数值与拟合数值做差。

J\left ( \theta _{0},\theta _{1} \right )= \frac{1}{2m}\sum_{i=1}^{m}\left ( h\left (x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2}

最优解即为代价函数的最小值。

为什么代价函数要非负?

只要设计的目标函数有下界,基本上都可以,代价函数非负更为方便。

常见代价函数

1.二次代价函数(quadratic cost)

J= \frac{1}{2n}\sum_{x}^{}||y\left (x \right )-a^{L}\left ( x \right )||^{2}

        其中J表示代价函数,x表示样本,y表示实际值,a表示输出值,n表示样本的总数。

2.交叉熵代价函数(cross-entropy)

J=-\frac{1}{n}\sum_{x}[ylna+(1-y)ln(1-a)]

        其中J表示代价函数,x表示样本,y表示实际值,a表示输出值,n表示样本的总数。

二次代价函数适合输出神经元是线性的情况,交叉熵代价函数适合输出神经元是sigmoid函数的情况。

3. 对数释然代价函数(log-likelihood cost)

对数释然函数常用来作为 softmax 回归的代价函数。深度学习中普遍的做法是将 softmax作为最后一层,此时常用的代价函数是对数释然代价函数。

对数似然代价函数与 softmax 的组合和交叉熵与 sigmoid 函数的组合非常相似。对数释然代价函数在二分类时可以化简为交叉熵代价函数的形式。

在 tensorflow 中:
与 sigmoid 搭配使用的交叉熵函数:tf.nn.sigmoid_cross_entropy_with_logits()。
与 softmax 搭配使用的交叉熵函数:tf.nn.softmax_cross_entropy_with_logits()。

 

你可能感兴趣的:(深度学习,深度学习,机器学习)