第三讲-损失函数和优化-课时7--损失函数

SVM有点忘记了,记不得score怎么计算的。该复习一下统计学习方法和林轩田的课了。

-----------------------------------------------------------------------------------------

SVM也是线性分类而已,损失函数是hinge loss,之所以那么复杂的推导来推到去,只是因为:

hinge loss不是处处可导,不能用梯度下降,可参看

https://www.zhihu.com/question/265751466/answer/302448091

而SVM使用对偶形式之后是一个凸优化问题,前人研究的很透彻,求解更快速。

-----------------------------------------------------------------------------------------

下图为多分类损失函数求和项中的一项,横坐标是Syi,纵坐标是损失函数。Sj是定值。

实施类别的预测值要比其余类别的预测值高,而且要高出一个安全距离。下图选择了固定距离为1,这个固定距离并不重要,没有影响。

当权重初始化为很小的值时,那么对于一个数据,所有类别的分数都几乎为0,损失函数为C-1,C为类别数。可以作为debug策略。

如果error measure中加上j=yi的那一项,那么Li会增加1。正是因为我们不使j=yi,才能让Li的最小值变为0,以便与理解。

###################################################

L1正则就是Lasso回归

L2正则就是岭回归

不同点:L1可以让一部分特征的系数缩小到0,权重矩阵变成稀疏矩阵,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。

              L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况

L1和L2的结合

L1和L2的优点可以结合起来,这就是Elastic Net

L1和L2的具体解释可以参考https://blog.csdn.net/jinping_shi/article/details/52433975,讲解的非常生动,很详细。

######################################################################################

假设x = [1,1,1,1].T   ,  w1= [1,0,0,0].T     ,     w2 = [0.25,0.25,0.25,0.25].T

使用w1或者w2所得到的预测分数事实上是一样的,但是

L2约束会更喜欢w2,因为w2的模长更小。

L2模型的参数是各个位置都小,而L1是几个位置为0。

L2依赖于所有特征,当数据中含有噪声时(某个特征的值记录错误了),L2的鲁棒性更强.

L2具有正则化的原因是L2之后的参数变小了,参数下模型就简单,当x发生变化时,预测分数变化不会很大(预测分数=参数*x)

####################################################################

二分类的损失函数为

其中yi是0或者1,预测值也是数字。

二分类的代价函数可以改为:

\begin{align}J(\theta) &= -\frac{1}{m} \left[ \sum_{i=1}^m   (1-y^{(i)}) \log (1-h_\theta(x^{(i)})) + y^{(i)} \log h_\theta(x^{(i)}) \right] \\&= - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=0}^{1} 1\left\{y^{(i)} = j\right\} \log p(y^{(i)} = j | x^{(i)} ; \theta) \right]\end{align}


\begin{align}h_\theta(x) = \frac{1}{1+\exp(-\theta^Tx)},\end{align}

####################################################

多分类的代价函数

\begin{align}J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k}  1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }}\right]\end{align}

Li = -sum( Y * log(Y_hat) ) #这里的Y和Y_hat都是长度为C的向量,C为类别数。


此时y和h(x)均为编码向量

Li的范围为0 - +inf

Li若为0,则在softmax之前的向量为一个值为无穷大,其余均为无穷小。

与SVM一样,当最初权重初始为0,分数全为0,


##########################################

多标签其实就是二分类啊!只不过是多个标签同时进行分类,就是sigmoid!

假如每个物体有4个标签,则代价函数如下


多标签分类神经网络其实完全可以使用多个分类器分别去做,但是假如是自动驾驶问题中的图片多标签这种问题,各个标签的初级特征是基本相同的,使用一个神经网络可以共享这些特征,这样的一个multi-task网络会比四个分别去做的效果更好。

multi-task时,每个任务的数据量要接近(实际中,训练数据的有些标签是不知道的,此时相当于对于这个任务来说,这样的数据无法使用。)。这样的话,对于每一类标签的有效数据集,其余标签的有效数据集都可以为那一类标签的二分类问题提供帮助。

只有网络足够大,multi-task网络一定比多个单独任务的网络做得好。

####迁移学习中,提取学习到的参数需要是在更大的数据集上训练得到的,才能发挥作用。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值