NNDL 作业2:第三章课后题

习题3-2 在线性空间中,证明一个点x到到平面f(x;w)=w^{T}+b=0的距离为|f(x;w)|/||w||
理论推导:

设平面内有一点  x',使得 x-x' 垂直于此平面

又因为 w 垂直于此平面,所以有 x-x' 平行于 w

即:x-x'=kwk为常数)

因此点 x 到平面距离为 |k||w||

又 w^{T}x+b=f(x;w)

w^{T}x'+b=0

所以f(x;w)=w^{T}(x-x')

带入kw

f(x;w)=w^{T}kw

两边同时取模:

|f(x;w)|=||w|| |k|||w||

|k|||w||=\frac{f(x;w)}{||w||}



习题3-5 在Logistic回归中,是否可以用\hat{y}=\sigma (w^{T}x)去逼近正确的标签y,并用平方损失函数(y-\hat{y})^{2}最小化来优化参数w?
用sigmoid函数去逼近正确的标签y是非常明智的选择,但是不能使用平方损失函数(y-\hat{y})^{2}最小化来优化参数w

1.主观理解:因为Logistic回归是一个分类模型,所以跟上个作业差不多,即:
分类问题中的标签,是没有连续的概念的。每个标签之间的距离也是没有实际意义的,所以预测值和标签两个向量之间的平方差这个值不能反应分类这个问题的优化程度。比如分类 1,2,3, 真实分类是1, 而被分类到2和3错误程度应该是一样的,但是明显当我们预测到2的时候是损失函数的值为1/2而预测到3的时候损失函数为2,这里在相同的结果下却给出了不同的值,这对我们优化参数产生了误导,因而分类问题我们一般采取交叉熵损失函数(Cross-Entropy Loss Function)来进行评估,只关注分类正确的预测结果有关,交叉熵的值越小,模型预测效果就越好。

易错点:不是分类问题中不使用平方损失,而是逻辑回归不使用平方损失,具体的可见下面博客讲解:
分类问题中的损失函数 - 知乎


2.吴恩达老师讲解:
吴恩达的机器学习视频上说过,一般平方损失函数的公式如下图所示:

h表示的是你的预测结果,y表示对应的标签,J就可以理解为用二范数的方式将预测和标签的差距表示出来,模型学习的过程就是优化权重参数,使得J达到近似最小值,理论上这个损失函数是很有效果的,但是在实践中却又些问题,它这个h是激活函数激活后的结果,激活函数通常是非线性函数,例如sigmoid之类的,这就使得这个J的曲线变得很复杂,并不是凸函数,不利于优化,很容易陷入到局部最优解的情况。吴恩达说当激活函数是sigmoid的时候,J的曲线就如下图所示,可以看到这个曲线是很难求出全局最小值的,稍不留神就是局部最小值。
NNDL 作业2:第三章课后题_第1张图片

 

我们当然希望J的曲线能使下图所示,这样可以很容易通过梯度下降来求近似的全局最优解。

NNDL 作业2:第三章课后题_第2张图片

所以用均方来做损失函数就显得有局限性,现在大多数损失函数的设计都是基于交叉熵的,如下公式:

 他们的曲线就是下图所示:
NNDL 作业2:第三章课后题_第3张图片

NNDL 作业2:第三章课后题_第4张图片

 这样更加容易优化。

讲的可能不太清晰,具体可参考吴恩达老师的课程:
3.2 Softmax_哔哩哔哩_bilibili
10 - 2.3逻辑回归损失函数_哔哩哔哩_bilibili

 

3.理论推导:自己没有那么大的本事手推理论,所以找了网上的一篇博客和习题参考答案理解后推了一边。

假设Logistic以sigmoid函数作为激活函数。

(1)使用平方损失函数作为激活函数时:
NNDL 作业2:第三章课后题_第5张图片

由sigomid曲线特征可知当 x较大时sigmoid函数趋于平缓,因此在大多数情况下其导数几乎为0,导致 几乎为0, 很难去优化。

(2).当以交叉熵损失作为损失函数时:NNDL 作业2:第三章课后题_第6张图片

 可以看到梯度公式中没有\hat{\sigma}这一项,权重受到误差(y-\hat{y})^{2}的影响,所以当误差大的时候,权重更新快;当误差小的时候,权重更新慢。这是一个很好的性质。

所以当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数

习题3-6 在Softmax回归的风险系数(公式(3.39))中,如果加上正则化项会有什么影响?
理论推导真是我最头疼的地方,能实现与能推导真是两个完全不同的概念,但学习不仅要知其然,还要知其所以然,干就完了。
加入正则化项可以解决 softmax 回归的参数冗余所带来的数值问题。

我们通过添加一个权重衰减项在这里插入图片描述(其中n为样本的维度,k为样本的类别数)来修改代价函数,感觉还是L2正则化,为了解决参数过多模型复杂导致的过拟合问题。

这个衰减项会惩罚过大的参数值,我们的代价函数变为:

 

 

有了这个权重衰减项以后(λ>0),代价函数就变成了严格的凸函数,这样就可以保证得到独立的解了。 此时的 Hessian矩阵变为可逆矩阵,并且因为 J(θ) 是凸函数,梯度下降法和 L-BFGS 等算法可以保证收敛到全局最优解。

为了使用优化算法,我们需要求得这个新函数 J(θ) 的导数,如下:

通过最小化 J(θ) ,我们就能实现一个可用的 softmax 回归模型。

 顺带提一嘴正则化:
正则化项:防止过拟合,提高泛化能力。直译应该是规则化(惩罚项),就是说给需要训练的目标函数加上一些规则(限制),让他们不要自我膨胀

像常见的正则化方法有L2 regularization(权重衰减)、L1 regularization、Dropout。

至于这些方法为什么能防止过拟合,提高模型的泛化能力,可见下面的博客:
正则化为什么能防止过拟合(重点地方标红了) - alexanderkun - 博客园


本小问参考:
2.2 正则化、偏差、方差_哔哩哔哩_bilibili
3.2 Softmax_哔哩哔哩_bilibili


总结:
1.这次作业更多的是理论上的推导,因为很多时候都是会写代码,会调参,但是对理论上的推导一无所知(感觉对我来说,这个得时常看,要不然下次推还是不会)。逐渐上手markdown语法,觉得敲出来得公式很美观,起码比以前好太多了。
2.吴恩达老师yyds!
NNDL 作业2:第三章课后题_第7张图片
 

 

你可能感兴趣的:(DL实验,机器学习,人工智能)