损失函数(Cost function)
不能使用跟线性回归一样的损失函数,因为那样会使输出曲线是波浪形的,导致其不适合凸函数,有很多局部最优值。
线性回归的损失函数是这样的:
当 y = 1 时,J(θ) 的图是这样的:
当 y = 0 时,J(θ) 的图如下:
如果 y 为0, 如果 hθ(x) 输出0,那么 cost function 也为0, 如果 hθ(x) 接近1,那么 cost function 会接近无穷大。
如果 y 为1, 如果 hθ(x) 输出1, 那么 cost function 为0,如果 hθ(x) 接近0, 那么 cost function 会接近无穷大。
注意: cosf function 这样表示可以保证 J(θ) 是凸函数。
简化 cost function 和梯度下降
我们可以把 cost function 的两个case 简化为一个 case:
整个 cost function 可以写成这样:
向量化的表示:
梯度下降可以这样表示:
梯度下降的向量化表示:
高级优化
"Conjugate gradient", "BFGS", 以及 "L-BFGS" 是优化 θ 中比梯度下降更复杂但是更快的方法,很多库提供了这些方法。
多类别分类问题
我们将二元分类问题扩展为 y = {0,1,...,n}
多类别分类时,我们先选择一个类,然后把所有剩下的其他类当做一个单独的第二类。这样,对每个 case 我们使用二元逻辑回归,然后返回 hypothesis 的最大值作为我们的预测。