0-1 loss
L(Y,f(x))={1,0,Y=f(x)Y=f(x) 方差 quadratic loss
C=21(y−a)2
其中 a=σ(wx+b) 若用梯度下降来更新w,则w的偏导: ∂w∂C=(y−a)σ′(wx)x 因为sigmoid函数的性质,导致σ′(wx)在z取大部分值时会很小(曲线的两端),会导致w更新很慢。
cross entropy
C=−n1∑[ylna+(1−y)ln(1−a)]
其中y为期望输出,a为实际输出a=σ(∑wjxj)。y的值为{0,1},所以而a只是接近于{0,1},所以不要换y与a的位置,因为ln0没有意义。
与方差代价函数一样,交叉熵代价函数同样有两个性质:
当真实输出a与期望输出y接近的时候,代价函数接近于0.(比如y=0,a~0;y=1,a~1时,代价函数都接近0)。
另外,它可以克服方差代价函数更新权重过慢的问题。
∂wj∂C=n1∑xj(σ(wx)−y) 可以看到,导数中没有σ′(wx)这一项,权重的更新是受σ(z)−y这一项影响,即受误差的影响。所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢。这是一个很好的性质。
log-likelihood loss
对数似然函数也常用来作为softmax回归的代价函数,深度学习中普遍的做法是将softmax作为最后一层,此时常用的是代价函数是log-likelihood cost。
其实这两者是一致的,logistic回归用的就是sigmoid函数,softmax回归是logistic回归的多类别推广。log-likelihood代价函数在二类别时就可以化简为交叉熵代价函数的形式。
以logistic regression举例
P(y=1∣x,θ)=hθ(x)P(y=0∣x,θ)=1−hθ(x)P(y∣x,θ)=(hθ(x))y(1−hθ(x))(1−y)L(θ)=−logi=1∏nP(yi∣xi,θ)=−i=1∑nlog(hθ(xi))yi(1−hθ(xi))(1−yi) 这个就是最小化 cross entropy 。
absolute loss
L(Y,f(x))=∣Y−f(x)∣
参考佳文
交叉熵代价函数
Cross entropy
各种Loss Function的比较