邱老师的书针对于深度学习深入浅出讲解,让我受益良多,但是在学习过程中查找课后习题答案感觉十分麻烦,故写下此博客帮助后来学习者。
本文主要参考邱锡鹏老师的github讨论区内容及知乎回答,个人认为本文更加详尽清晰,如有问题欢迎指正,后续章节会慢慢更新。
为什么平方损失函数不适用于分类问题
答:平方误差过于严苛,必须是与预测值完全相同才行,并不符合分类的特点(仅需要分为正确类别)。
例如真实值为[0,0,1]时,预测为[0.1,0.2,0.7] 和预测值为 [0,0.3,0.7]其实效果一样,运用CrossEntropy时损失也一样,但是均方误差时损失则不同。
此外,针对于二分类问题,邱老师在课本76页(图3.7)给出了具体图像来解释:
线性回归中,如果我们给每个样本( x ( n ) x^{(n)} x(n), y ( n ) y^{(n)} y(n))赋予一个权重 r ( n ) r^{(n)} r(n),经验风险函数为:
R ( ω ) = 1 2 ∑ n = 1 N r ( n ) ( y ( n ) − ω x ) 2 R(\boldsymbol\omega)=\frac{1}{2}\sum_{n=1}^Nr^{(n)}(y^{(n)} - \boldsymbol\omega \boldsymbol x )^2 R(ω)=21n=1∑Nr(n)(y(n)−ωx)2
计算其最优参数 ω ∗ \omega ^ * ω∗,并分析其权重的作用。
答:其实就是求一下最优参数 ω ∗ \omega^* ω∗, 即导数为0,具体如下:
首先,取权重的对角矩阵: P = d i a g ( r ( n ) ) P= diag(r^{(n)}) P=diag(r(n)),x,y,w均以向量(矩阵)表示,则原式为:
R ( Ω ) = 1 2 P ∣ ∣ Y − X T Ω ∣ ∣ 2 \mathcal{R}(\boldsymbol\Omega) = \frac{1}{2}P||Y- X^T \Omega|| ^2 R(Ω)=21P∣∣Y−XTΩ∣∣2
进行求导:
∂ R ∂ Ω = − X P ( Y − X T Ω ) = 0 \frac{\partial \mathcal{R}}{\partial \Omega} = -XP(Y-X^T \Omega)=0 ∂Ω∂R=−XP(Y−XTΩ)=0
解得
Ω ∗ = ( X P X T ) − 1 X P Y \Omega ^ *= (XPX^T)^{-1}XPY Ω∗=(XPXT)−1XPY
相比于没有P时的 Ω \Omega Ω:
Ω w i t h o u t P = ( X X T ) − 1 X Y \Omega_{without P}=(XX^T)^{-1}XY ΩwithoutP=(XXT)−1XY
可以简单理解为 r ( n ) r^{(n)} r(n)的存在为每个样本增加了权重,权重大的对最优值 ω \omega ω的影响也更大。
证明在线性回归中,如果样本数 N N N小于特征数量 D + 1 D+1 D+1,那么 X X T XX^T XXT的秩最大为N
答:
r a n k ( X X T ) = r a n k ( X ) ≤ m i n ( N , D + 1 ) rank(XX^T) = rank(X)\leq min(N,D+1) rank(XXT)=rank(X)≤min(N,D+1)
第一步可以搜证明过程,第二步就明了了
在线性回归中,验证岭回归的解为结构风险最小化的准则下的最小二乘法估计,见公式(2.44)
答:首先看下岭回归公式(2.44):
R ( ω ) = 1 2 ∣ ∣ y − X T ω ∣ ∣ 2 + 1 2 λ ∣ ∣ ω ∣ ∣ 2 \mathcal{R}(\omega)= \frac{1}{2}||y-X^T\omega||^2+\frac{1}{2}\lambda||\omega||^2 R(ω)=21∣∣y−XTω∣∣2+21λ∣∣ω∣∣2
而根据岭回归想得到最优参数 ω ∗ \omega^* ω∗,对其损失函数求导即可,具体过程不再赘述,最后结果为:
∂ R ( ω ) ∂ ω = − X ( y − X T w ) + w \frac{\partial \mathcal{R}(\omega)}{\partial \omega} = -X(y-X^Tw)+w ∂ω∂R(ω)=−X(y−XTw)+w
即为 λ 2 \lambda_2 λ2正则化, w w w值不能过大,在梯度下降过程中会尽量将w变小,也就是梯度衰减策略(weight_decay)。
在线性回归中,若假设标签 y y y ~ N ( ω T x , β x \mathcal{N} (\omega ^ T x, \beta x N(ωTx,βx),并用最大似然法估计来优化参数,验证最优参数公式为(2.52)的解。
答:直接用书中公式(2.51),仅 β \beta β取代 σ 2 \sigma ^2 σ2,如何推至(2.51)请见书P37
log p ( y ∣ X , ω , β ) = ∑ 1 n log N ( y ( n ) ; ω T x ( n ) , β ) \log p(\bm{y}|\bm{X}, \omega, \beta) = \sum _1^n \log \mathcal{N}(y^{(n)};\omega ^T x^{(n)}, \beta) logp(y∣X,ω,β)=1∑nlogN(y(n);ωTx(n),β)
对 ω \omega ω求导数(忽略了取0后无效的 β \beta β):
∂ log p ( y ∣ X , ω , β ) ∂ ω = ∂ ∑ log 1 2 π β − ∑ ( y − ω T x ) 2 2 β ∂ ω = ∂ ∑ ( y − ω T x ) 2 ∂ ω \frac {\partial \log p(\bm{y}|\bm{X}, \omega, \beta)} {\partial \omega}= \frac{\partial \sum \log \frac{1}{\sqrt{2 \pi \beta}} - \sum \frac{(y -\omega^T x)^2}{2\beta}}{\partial \omega}=\frac{\partial \sum (y -\omega^T x)^2}{\partial \omega} ∂ω∂logp(y∣X,ω,β)=∂ω∂∑log2πβ1−∑2β(y−ωTx)2=∂ω∂∑(y−ωTx)2
同理,可将其写为向量形式,令 y = [ y ( 1 ) , ⋯ , y ( n ) ] T \bm{y} = [y^{(1)},\cdots,y^{(n)}]^T y=[y(1),⋯,y(n)]T, X = [ x ( 1 ) , ⋯ , x ( n ) ] \bm{X}= [x^{(1)},\cdots,x^{(n)}] X=[x(1),⋯,x(n)],那么:
∂ log p ( y ∣ X , ω , β ) ∂ ω = ∂ ∣ ∣ y − X T ω ∣ ∣ 2 ∂ ω = 0 \frac {\partial \log p(\bm{y}|\bm{X}, \omega, \beta)} {\partial \omega} = \frac{\partial ||\bm{y}- \bm{X}^T \omega ||^2}{\partial \omega} = 0 ∂ω∂logp(y∣X,ω,β)=∂ω∂∣∣y−XTω∣∣2=0
与前几题一样,可解得公式(2.52):
ω M L = ( X X T ) − 1 X y \omega ^{ML} = (\bm{XX^T})^{-1}\bm{Xy} ωML=(XXT)−1Xy
假设有N个样本 x ( 1 ) , x ( 2 ) , . . . , x ( n ) x^{(1)},x^{(2)},...,x^{(n)} x(1),x(2),...,x(n)服从正态分布 N ( μ , σ 2 ) \mathcal{N}(\mu,\sigma^2) N(μ,σ2),其中 μ \mu μ为知,1)使用最大似然法估计来求解最优参数 μ M L \mu^{ML} μML;2)若参数 μ \mu μ为随机变量,并服从正态分布 N ( μ 0 , σ 0 2 ) \mathcal{N}(\mu_0,\sigma_0^2) N(μ0,σ02),使用最大后验法来求解最优参数 μ M A P \mu^{MAP} μMAP
答:(1)第一题就是最简单的概率题,假设各个样本独立同分布,则共同出现的概率为:
p ( x ( 1 ) ) ∗ p ( x ( 2 ) ) ∗ ⋯ ∗ p ( x ( n ) ) = ∏ i = 1 n 1 2 π σ e − ( x − μ ) 2 2 σ 2 p(x^{(1)}) * p(x^{(2)})* \cdots*p(x^{(n)})= \prod_{i=1}^n \frac{1}{\sqrt{2\pi}} \sigma \mathrm{e}^{-\frac{(x-\mu)^2}{2\sigma^2}} p(x(1))∗p(x(2))∗⋯∗p(x(n))=i=1∏n2π1σe−2σ2(x−μ)2
采用最大似然法,如何取 μ \mu μ使得出现上式概率最大,直接取对数再取导数为0即可,结果为: μ = ∑ x n = x ‾ \mu = \frac{\sum x}{n} = \overline x μ=n∑x=x
(2)第二题也是传统题目,将贝叶斯估计引入。
先验概率为: p ( μ ) = N ( μ 0 , σ 0 2 ) = 1 2 π σ 0 e − ( x − μ 0 ) 2 2 σ 0 2 p(\mu)=\mathcal{N}(\mu_0,\sigma_0^2)=\frac{1}{\sqrt{2\pi}\sigma_0 } \mathrm{e}^{-\frac{(x-\mu _0)^2}{2\sigma_0^2}} p(μ)=N(μ0,σ02)=2πσ01e−2σ02(x−μ0)2
后验概率为:
p ( x ∣ u ) p ( u ) = { ∏ i = 1 n 1 2 π σ e − ( x − μ ) 2 2 σ 2 } ∗ 1 2 π σ 0 e − ( μ − μ 0 ) 2 2 σ 0 2 p(x|u)p(u)=\{\prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma } \mathrm{e}^{-\frac{(x-\mu)^2}{2\sigma^2}}\} *\frac{1}{\sqrt{2\pi} \sigma_0} \mathrm{e}^{-\frac{(\mu-\mu _0)^2}{2\sigma_0^2}} p(x∣u)p(u)={i=1∏n2πσ1e−2σ2(x−μ)2}∗2πσ01e−2σ02(μ−μ0)2
继续用最大似然法(贝叶斯+最大似然即为最大后验估计),对其求对数并求导,令导数为0,得:
{ ∑ 1 N x − μ σ 2 } + μ − μ 0 σ 0 2 = 0 \{\sum^N_1 \frac{x-\mu}{\sigma ^2 } \} + \frac{\mu - \mu_0}{\sigma_0^2}=0 {1∑Nσ2x−μ}+σ02μ−μ0=0
求解,得:
μ = σ 2 N μ 0 − σ 0 2 x ‾ σ 2 N − σ 0 2 \mu = \frac{\frac{\sigma^2}{N}\mu_0-\sigma_0^2 \overline{x}}{\frac{\sigma^2}{N}-\sigma^2_0} μ=Nσ2−σ02Nσ2μ0−σ02x
最大似然法和贝叶斯估计是机器学习的重要基础,需概率论知识,进阶可阅读李航老师《统计学习方法》及知乎回答:极大似然估计与最大后验概率估计
在第六题中,证明当 N ⟶ ∞ N \longrightarrow \infty N⟶∞ 时,最大后验估计趋向于最大似然估计
答:N无穷大时,原式为 σ 0 x ‾ σ 0 = x ‾ \frac{\sigma _0 \overline{x}}{\sigma_0} = \overline{x} σ0σ0x=x。
根据前文知乎回答,私认为是先验分布导致的这种情况,若先验分布不是正态的,不会导致这种情况。
答:方差大一般是过拟合,偏差大一般认为是过拟合,偏差方差都大,说明模型完全没有学习到数据特征,或者数据有问题。
周志华《机器学习》p45
分别用一元、二元和三元特征的词袋模型表示文本“我打了张三”和“张三打了我”,并分析不同模型的优缺点
答:词袋模型指的是将词语划分为不同词袋,一元词袋指每个词袋有一个词语,n元词袋指每个词袋有n个词语,然后用向量表示句子包含哪些词袋(类似one-hot编码)。
针对于本题,共有“我”,“打了”,“张三”以及句前空白“$”和句后空白“#”五个词语。
(1)一元词袋
每个词袋仅有一个词语,共有五个词袋对应五个单词,因为每句话都包含这五个词袋,所有向量分别为:
句 子 一 : [ 1 , 1 , 1 , 1 , 1 ] 句子一:[1,1,1,1,1] 句子一:[1,1,1,1,1]
句 子 二 : [ 1 , 1 , 1 , 1 , 1 ] 句子二:[1,1,1,1,1] 句子二:[1,1,1,1,1]
(2)二元词袋,每个词袋两个词语,针对这两句话,将每句话依次拆解,
第一句话有:“$我”,“我打了”,“打了张三”,“张三#”
第二句话有: “$张三”,"张三打了”,“打了我”,‘我#’。
根据以上词袋,得到向量分别为:
句 子 一 : [ 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] 句子一:[1,1,1,1,0,0,0,0] 句子一:[1,1,1,1,0,0,0,0]
句 子 二 : [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 ] 句子二:[0,0,0,0,1,1,1,1] 句子二:[0,0,0,0,1,1,1,1]
(3) 三元词袋,每个词袋三个词语,针对这两句话,
第一句话有:“$我打了”,“我打了张三”,“打了张三#”
第二句话有:“$张三打了”,‘张三打了我’,“打了我#”
根据以上词袋,得到向量分别为:
句 子 一 : [ 1 , 1 , 1 , 0 , 0 , 0 ] 句子一:[1,1,1,0,0,0] 句子一:[1,1,1,0,0,0]
句 子 二 : [ 0 , 0 , 0 , 1 , 1 , 1 ] 句子二:[0,0,0,1,1,1] 句子二:[0,0,0,1,1,1]
可以看出,一元词袋无法表示语序特征,三元词袋相对于二元词袋,得到向量更短。
但是词袋容量不能太大,若为五元词袋,则可以直接表示每句话,丧失词袋意义,需选择合适词袋大小。
对于一个三分类问题,数据集的真实标签和模型的预测标签如下:
代号 | ① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ | ⑧ | ⑨ |
---|---|---|---|---|---|---|---|---|---|
真实标签 | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 3 |
预测标签 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 1 | 2 |
答:(1)精确率:所有预测类别为c中的正确率
label1: P 1 = ① / ( ① + ⑧ ) = 0.5 P_1 = ①/(①+⑧)=0.5 P1=①/(①+⑧)=0.5
同理, P 2 = 0.5 , P 3 = 0.667 P_2=0.5,P_3=0.667 P2=0.5,P3=0.667
(2)召回率,所有真实类别为c中的正确率
label1: R 1 = ① / ( ① + ② ) = 0.5 R_1=①/(①+②) = 0.5 R1=①/(①+②)=0.5
同理, R 2 = 0.667 , R 3 = 0.5 R_2=0.667,R_3=0.5 R2=0.667,R3=0.5
(3)F1值
任一类别c的F1值为
F 1 = 2 ∗ P c ∗ R c P c + R c F1=\frac{2*P_c*R_c}{P_c+R_c} F1=Pc+Rc2∗Pc∗Rc
代入,得: F 1 1 = 0.5 , F 1 2 = 4 7 , F 1 3 = 4 7 F1_1=0.5,F1_2=\frac{4}{7},F1_3=\frac{4}{7} F11=0.5,F12=74,F13=74
(4)宏平均(每个算术平均值)
P m a c r o = 1 3 ( P 1 + P 2 + P 3 ) = 5 9 P_{macro}=\frac{1}{3}(P_1+P_2+P_3)=\frac{5}{9} Pmacro=31(P1+P2+P3)=95
同理, R m a c r o = 5 9 , F 1 m a c r o = 5 9 R_{macro}=\frac{5}{9},F1_{macro}=\frac{5}{9} Rmacro=95,F1macro=95
(5)微平均(每个样本算术平均值)
P m i c r o = R m i c r o = 1 9 ( 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 ) = 5 9 P_{micro}=R_{micro}=\frac{1}{9}(1+0+1+1+0+1+1+0+0)=\frac{5}{9} Pmicro=Rmicro=91(1+0+1+1+0+1+1+0+0)=95
根据前文F1公式,可得 F 1 m i c r o = 5 9 F1_{micro}=\frac{5}{9} F1micro=95