部分题目的个人解答,参考了github上的习题解答分享与知乎解答。题目是自己做的,部分解答可能出错,有问题的解题部分欢迎指正。原文挂在自己的自建博客上。

第二章

2-1

直观上,对特定的分类问题,平方差的损失有上限(所有标签都错,损失值是一个有效值),但交叉熵则可以用整个非负域来反映优化程度的程度。

从本质上看,平方差的意义和交叉熵的意义不一样。概率理解上,平方损失函数意味着模型的输出是以预测值为均值的高斯分布,损失函数是在这个预测分布下真实值的似然度,softmax损失意味着真实标签的似然度。

分类问题中的标签,是没有连续的概念的。1-hot作为标签的一种表达方式,每个标签之间的距离也是没有实际意义的,所以预测值和标签两个向量之间的平方差这个值不能反应分类这个问题的优化程度。

大部分分类问题并非服从高斯分布

根据吴恩达机器学习视频:J(θ)=1m∑i=1m12(hθ(x(i))−y(i))2J(\theta)=\frac{1}{m}\sum^m_{i=1}\frac{1}{2}(h_{\theta}(x^{(i)})-y^{(i)})^2J(θ)=m1​∑i=1m​21​(hθ​(x(i))−y(i))2,h表示的是你的预测结果,y表示对应的标签,J就可以理解为用二范数的方式将预测和标签的差距表示出来,模型学习的过程就是优化权重参数,使得J达到近似最小值,理论上这个损失函数是很有效果的,但是在实践中却又些问题,它这个h是激活函数激活后的结果,激活函数通常是非线性函数,例如sigmoid之类的,这就使得这个J的曲线变得很复杂,并不是凸函数,不利于优化,很容易陷入到局部最优解的情况。吴恩达说当激活函数是sigmoid的时候,J的曲线就如下图所示,可以看到这个曲线是很难求出全局最小值的,稍不留神就是局部最小值。

交叉熵的公式为:Cost(hθ(x),y)=−y⋅log(hθ(x))+(y−1)⋅log(1−hθ(x))Cost(h_{\theta}(x),y)=-y\cdot log(h_{\theta}(x))+(y-1)\cdot log(1-h_{\theta}(x))Cost(hθ​(x),y)=−y⋅log(hθ​(x))+(y−1)⋅log(1−hθ​(x))

使用交叉熵的时候就变成:

2-2

最优参数

令[r‾(n)]2=r(n)[\overline{r}^{(n)}]^2 = r^{(n)}[r(n)]2=r(n),则:
R(w)=12∑n=1N[r‾(n)]2(y(n)−w⊤x(n))2=12∑n=1N((‾r)(n)(y(n)−w⊤x(n)))2=12∣∣r‾⊤(y−X‾w)∣∣2\begin{aligned} R(w) &=\frac{1}{2}\sum^N_{n=1}[\overline{r}^{(n)}]^2(y^{(n)}-w^\top x^{(n)})^2 \\ & =\frac{1}{2}\sum^N_{n=1}(\overline(r)^{(n)}(y^{(n)}-w^\top x^{(n)}))^2 \\ & =\frac{1}{2}||\overline{r}^\top(y-\overline{X}w)||^2 \end{aligned} R(w)​=21​n=1∑N​[r(n)]2(y(n)−w⊤x(n))2=21​n=1∑N​((​r)(n)(y(n)−w⊤x(n)))2=21​∣∣r⊤(y−Xw)∣∣2​
损失函数对参数www求导:
∂R(w)∂w=12∣∣r‾⊤(y−X‾w)∣∣2∂w=−Xr‾r‾⊤(y−X⊤w)=0\begin{aligned} \frac{\partial R(w)}{\partial w}&= \frac{\frac{1}{2}||\overline{r}^\top(y-\overline{X}w)||^2}{\partial w} \\ &= -X\overline{r}\overline{r}^\top (y-X^\top w) \\ &= 0 \end{aligned} ∂w∂R(w)​​=∂w21​∣∣r⊤(y−Xw)∣∣2​=−Xrr⊤(y−X⊤w)=0​
于是有:w∗=(Xr‾r‾⊤X⊤)−1Xr‾r‾⊤yw^* =(X\overline{r}\overline{r}^\top X^\top)^{-1}X\overline{r}\overline{r}^\top yw∗=(Xrr⊤X⊤)−1Xrr⊤y

参数r(n)r^{(n)}r(n)

这个参数是为了对不同的数据进行加权,相当于不同数据对结果的影响程度会不同,如果某个数据比较重要,希望对其高度重视,那么就可以设置相对较大的权重,反之则设置小一点。

2-3

已知定理:A、BA、BA、B分别为n×m,m×sn \times m,m\times sn×m,m×s的矩阵,则rank(AB)≤min{rank(A),rank(B)}rank(AB)\leq min\{rank(A),rank(B)\}rank(AB)≤min{rank(A),rank(B)}

X∈R(d+1)×N,XT∈RN×(d+1)X\in \mathbb{R}^{(d+1)\times N},X^T \in \mathbb{R}^{N\times (d+1)}X∈R(d+1)×N,XT∈RN×(d+1)

rank(X)=rank(X⊤)=min((d+1),N),N<d+1rank(X)=rank(X^\top)=min((d+1),N),N<d+1rank(X)=rank(X⊤)=min((d+1),N),N<d+1,因此rank(X)=Nrank(X)=Nrank(X)=N

rank(XX⊤)≤N,N=Nrank(XX^\top)\leq{N,N}=Nrank(XX⊤)≤N,N=N

2-4

R(w)=12∣∣y−X⊤w∣∣2+12λ∣∣w∣∣2R(w)=\frac{1}{2}||y-X^\top w||^2+\frac{1}{2}\lambda||w||^2R(w)=21​∣∣y−X⊤w∣∣2+21​λ∣∣w∣∣2,w∗=(XX⊤+λI)−1Xyw^* = (XX^\top+\lambda I)^{-1}Xyw∗=(XX⊤+λI)−1Xy

可得:
∂R(w)∂w=12∂∣∣y−X⊤w∣∣2+λ∣∣w∣∣2∂w=−X(y−X⊤w)+λw=0\begin{aligned} \frac{\partial R(w)}{\partial w} &=\frac{1}{2}\frac{\partial ||y-X^\top w||^2+\lambda||w||^2}{\partial w} \\ &=-X(y-X^\top w)+\lambda w \\ &= 0 \end{aligned} ∂w∂R(w)​​=21​∂w∂∣∣y−X⊤w∣∣2+λ∣∣w∣∣2​=−X(y−X⊤w)+λw=0​
因此有:
−XY+XX⊤w+λw=0(XX⊤+λI)w=XYw∗=(XX⊤+λI)−1Xy-XY+XX^\top w+\lambda w = 0 \\ (XX^\top+\lambda I)w =XY \\ w^* = (XX^\top+\lambda I)^{-1}Xy −XY+XX⊤w+λw=0(XX⊤+λI)w=XYw∗=(XX⊤+λI)−1Xy

2-5

根据题意,有:log⁡p(y∣X;w,σ)=∑n=1Nlog⁡N(y(n)w⊤x(n),σ2)\log p(y|X;w,\sigma) =\sum^N_{n=1}\log N(y^{(n)}w^\top x^{(n)},\sigma^2)logp(y∣X;w,σ)=∑n=1N​logN(y(n)w⊤x(n),σ2)

令∂log⁡p(y∣X;w,σ)∂w=0\frac{\partial \log p(y|X;w,\sigma)}{\partial w} = 0∂w∂logp(y∣X;w,σ)​=0,因此有:
∂(∑n=1N−(y(n)−w⊤x(n))22β)∂w=0∂12∣∣y−X⊤w∣∣2∂w=0−X(y−X⊤w)=0\frac{\partial(\sum^N_{n=1}-\frac{(y^{(n)}-w^\top x^{(n)})^2}{2\beta})}{\partial w}=0 \\ \frac{\partial \frac{1}{2}||y-X^\top w||^2}{\partial w} =0 \\ -X(y-X^\top w) = 0 ∂w∂(∑n=1N​−2β(y(n)−w⊤x(n))2​)​=0∂w∂21​∣∣y−X⊤w∣∣2​=0−X(y−X⊤w)=0
因此有:wML=(XX⊤)−1Xyw^{ML}=(XX^\top)^{-1}XywML=(XX⊤)−1Xy

2-6

样本均值

参数μ\muμ在样本上的似然函数为:p(x∣μ,σ2)=∑n=1N(x(n);μ,σ2)p(x|\mu,\sigma^2)=\sum^N_{n=1}(x^{(n)};\mu,\sigma^2)p(x∣μ,σ2)=∑n=1N​(x(n);μ,σ2)

对数似然函数为:log⁡p(x;μ,σ2)=∑n=1Nlog⁡p(x(n);μ,σ2)=∑n=1N(log⁡12πσ−(x(n)−μ)22σ2)\log p(x;\mu,\sigma^2)=\sum^N_{n=1}\log p(x^{(n)};\mu,\sigma^2)=\sum^N_{n=1}(\log \frac{1}{\sqrt{2\pi}\sigma}-\frac{(x^{(n)}-\mu)^2}{2\sigma^2})logp(x;μ,σ2)=∑n=1N​logp(x(n);μ,σ2)=∑n=1N​(log2π​σ1​−2σ2(x(n)−μ)2​)

我们的目标是找到参数μ\muμ的一个估计使得似然函数最大,等价于对数自然函数最大。

令∂log⁡p(x;μ,σ2)∂μ=1σ2∑n=1N(x(n)−μ)=0\frac{\partial \log p(x;\mu,\sigma^2)}{\partial \mu}=\frac{1}{\sigma^2}\sum^N_{n=1}(x^{(n)}-\mu)=0∂μ∂logp(x;μ,σ2)​=σ21​∑n=1N​(x(n)−μ)=0,得到:μML=1N∑n=1Nx(n)\mu^{ML}=\frac{1}{N}\sum^N_{n=1}x^{(n)}μML=N1​∑n=1N​x(n),即样本均值

MAP证明

参数μ\muμ的后验分布:p(μ∣x;μ0,σ02)∝p(x∣μ;σ2)p(μ;μ0,σ02)p(\mu|x;\mu_0,\sigma_0^2)\propto p(x|\mu;\sigma^2)p(\mu;\mu_0,\sigma_0^2)p(μ∣x;μ0​,σ02​)∝p(x∣μ;σ2)p(μ;μ0​,σ02​)

令似然函数p(x∣μ;σ2)p(x|\mu;\sigma^2)p(x∣μ;σ2)为高斯密度函数,后验分布的对数为:
log⁡p(μ∣x;μ0,σ02)∝log⁡p(x∣μ;σ2)+log⁡p(μ;μ0,σ2)∝−1σ2∑n=1N(x(n)−μ)2−1σ2(μ−μ0)2\begin{aligned} \log p(\mu|x;\mu_0,\sigma_0^2)&\propto\log p(x|\mu;\sigma^2)+\log p(\mu;\mu_0,\sigma^2) \\ &\propto -\frac{1}{\sigma^2}\sum^N_{n=1}(x^{(n)}-\mu)^2-\frac{1}{\sigma^2}(\mu-\mu_0)^2 \end{aligned} logp(μ∣x;μ0​,σ02​)​∝logp(x∣μ;σ2)+logp(μ;μ0​,σ2)∝−σ21​n=1∑N​(x(n)−μ)2−σ21​(μ−μ0​)2​
令∂log⁡p(μ∣x;μ0,σ02)∂μ=0\frac{\partial \log p(\mu|x;\mu_0,\sigma_0^2)}{\partial \mu}=0∂μ∂logp(μ∣x;μ0​,σ02​)​=0,得到:μMAP=(1σ2∑n=1Nx(n)+μ0σ02)/(Nσ2+1σ02)\mu^{MAP}=(\frac{1}{\sigma^2}\sum^N_{n=1}x^{(n)}+\frac{\mu_0}{\sigma_0^2})/(\frac{N}{\sigma^2}+\frac{1}{\sigma_0^2})μMAP=(σ21​∑n=1N​x(n)+σ02​μ0​​)/(σ2N​+σ02​1​)

证明完毕

2-7

σ→∞\sigma\rightarrow \inftyσ→∞,μMAP=1N∑n=1Nx(n)\mu^{MAP}=\frac{1}{N}\sum^N_{n=1}x^{(n)}μMAP=N1​∑n=1N​x(n)

2-8

因为fff可测量,故σ\sigmaσ可测量,又fff有界,有:Ey[f2(x)∣x]=f2(x),Ey[yf(x)∣x]=f(x)⋅Ey(y∣x)\mathbb{E}_y[f^2(x)|x]=f^2(x),\ \mathbb{E}_y[yf(x)|x]=f(x)\cdot \mathbb{E}_y(y|x)Ey​[f2(x)∣x]=f2(x), Ey​[yf(x)∣x]=f(x)⋅Ey​(y∣x)

R(f)=Ex[Ey[(y−f(x))2∣x]]=Ex[Ey[y2∣x]+Ey[f2(x)∣x]−2Ey[yf(x)∣x]]R(f)=\mathbb{E}_x[\mathbb{E}_y[(y-f(x))^2|x]]=\mathbb{E}_x[\mathbb{E}_y[y^2|x]+\mathbb{E}_y[f^2(x)|x]-2\mathbb{E}_y[yf(x)|x]]R(f)=Ex​[Ey​[(y−f(x))2∣x]]=Ex​[Ey​[y2∣x]+Ey​[f2(x)∣x]−2Ey​[yf(x)∣x]]

R(f)=Ex[Ey[y2∣x]+f2(x)−2f(x)Ey[y∣x]]R(f)=\mathbb{E}_x[\mathbb{E}_y[y^2|x]+f^2(x)-2f(x)\mathbb{E}_y[y|x]]R(f)=Ex​[Ey​[y2∣x]+f2(x)−2f(x)Ey​[y∣x]]

由Jensen不等式:Ey[y2∣x]≥Ey[y∣x]2\mathbb{E}_y[y^2|x]\geq \mathbb{E}_y[y|x]^2Ey​[y2∣x]≥Ey​[y∣x]2

故:R(f)≥Ex[Ey[f(x)−Ey[y∣x]]]2R(f)\geq \mathbb{E}_x[\mathbb{E}_y[f(x)-\mathbb{E}_y[y|x]]]^2R(f)≥Ex​[Ey​[f(x)−Ey​[y∣x]]]2

故:f∗(x)=Ey∼pr(y∣x)[y]f^*(x)=\mathbb{E}_{y\sim p_r(y|x)}[y]f∗(x)=Ey∼pr​(y∣x)​[y]

2-9

高偏差原因:数据特征过少;模型复杂度太低;正则化系数λ\lambdaλ太大;

高方差原因:数据样例过少;模型复杂度过高;正则化系数λ\lambdaλ太小;没有使用交叉验证

2-10

对于单个样本EDE_DED​,f∗(x)f^*(x)f∗(x)是常数,因此:ED[f∗(x)]=f∗(x)E_D[f^*(x)]=f^*(x)ED​[f∗(x)]=f∗(x)

ED[(fD(x)−f∗(x))2]=ED[(fD(x)−ED[fD(x)]+ED[fD(x)]−f∗(x))2]=ED[(fD(x)−ED[fD(x)])2+(ED[fD(x)]−f∗(x))2+2(fD(x)−ED[fD(x)])(ED[fD(x)]−f∗(x))]=ED[(fD(x)−ED[fD(x)])2]+ED[ED[fD(x)]2+(f∗(x))2−2ED[fD(x)]f∗(x)]+2ED[(fD(x)−ED[fD(x)])(ED[fD(x)]−f∗(x))]=ED[(fD(x)−ED[fD(x)])2]+ED[fD(x)]2+(f∗(x))2−2ED[fD(x)+2ED[(fD(x)−ED[fD(x)])(ED[fD(x)]−f∗(x))]=ED[(fD(x)−ED[fD(x)])2]+(ED[fD(x)]−f∗(x))2+2ED[(fD(x)−ED[fD(x)])(ED[fD(x)]−f∗(x))]=ED[(fD(x)−ED[fD(x)])2]+(ED[fD(x)]−f∗(x))2+2(ED[fD(x)])2−2ED[fD(x)f∗(x)]−2(ED[fD(x)])2+2ED[fD(x)f∗(x)]=ED[(fD(x)−ED[fD(x)])2]+(ED[fD(x)]−f∗(x))2\begin{aligned} E_D[(f_D(x)-f^*(x))^2] &= E_D[(f_D(x)-E_D[f_D(x)]+E_D[f_D(x)]-f*(x))^2] \\ &=E_D[(f_D(x)-E_D[f_D(x)])^2+(E_D[f_D(x)]-f^*(x))^2+2(f_D(x)-E_D[f_D(x)])(E_D[f_D(x)]-f^*(x))] \\ &=E_D[(f_D(x)-E_D[f_D(x)])^2]+E_D[E_D[f_D(x)]^2+(f^*(x))^2-2E_D[f_D(x)]f^*(x)]+2E_D[(f_D(x)-E_D[f_D(x)])(E_D[f_D(x)]-f^*(x))] \\ &=E_D[(f_D(x)-E_D[f_D(x)])^2]+E_D[f_D(x)]^2+(f^*(x))^2-2E_D[f_D(x)+2E_D[(f_D(x)-E_D[f_D(x)])(E_D[f_D(x)]-f^*(x))] \\ &=E_D[(f_D(x)-E_D[f_D(x)])^2]+(E_D[f_D(x)]-f^*(x))^2+2E_D[(f_D(x)-E_D[f_D(x)])(E_D[f_D(x)]-f^*(x))] \\ &=E_D[(f_D(x)-E_D[f_D(x)])^2]+(E_D[f_D(x)]-f^*(x))^2+2(E_D[f_D(x)])^2-2E_D[f_D(x)f^*(x)]-2(E_D[f_D(x)])^2+2E_D[f_D(x)f^*(x)] \\ &=E_D[(f_D(x)-E_D[f_D(x)])^2]+(E_D[f_D(x)]-f^*(x))^2 \end{aligned} ED​[(fD​(x)−f∗(x))2]​=ED​[(fD​(x)−ED​[fD​(x)]+ED​[fD​(x)]−f∗(x))2]=ED​[(fD​(x)−ED​[fD​(x)])2+(ED​[fD​(x)]−f∗(x))2+2(fD​(x)−ED​[fD​(x)])(ED​[fD​(x)]−f∗(x))]=ED​[(fD​(x)−ED​[fD​(x)])2]+ED​[ED​[fD​(x)]2+(f∗(x))2−2ED​[fD​(x)]f∗(x)]+2ED​[(fD​(x)−ED​[fD​(x)])(ED​[fD​(x)]−f∗(x))]=ED​[(fD​(x)−ED​[fD​(x)])2]+ED​[fD​(x)]2+(f∗(x))2−2ED​[fD​(x)+2ED​[(fD​(x)−ED​[fD​(x)])(ED​[fD​(x)]−f∗(x))]=ED​[(fD​(x)−ED​[fD​(x)])2]+(ED​[fD​(x)]−f∗(x))2+2ED​[(fD​(x)−ED​[fD​(x)])(ED​[fD​(x)]−f∗(x))]=ED​[(fD​(x)−ED​[fD​(x)])2]+(ED​[fD​(x)]−f∗(x))2+2(ED​[fD​(x)])2−2ED​[fD​(x)f∗(x)]−2(ED​[fD​(x)])2+2ED​[fD​(x)f∗(x)]=ED​[(fD​(x)−ED​[fD​(x)])2]+(ED​[fD​(x)]−f∗(x))2​

2-11

2-12

用笔算一下就OK,9

第三章

3-1

设任意α\alphaα为超平面上的向量,取两点α1,α2∈a\alpha_1,\alpha_2 \in aα1​,α2​∈a,则满足:
{ω⊤α1+b=0ω⊤α2+b=0\begin{cases} \omega^\top\alpha_1+b=0 \\\\ \omega^\top\alpha_2+b=0 \\\\ \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧​ω⊤α1​+b=0ω⊤α2​+b=0​
两式相减,得到:ωT(α1−α2)=0\omega^T(\alpha_1-\alpha_2)=0ωT(α1​−α2​)=0,由α1−α2\alpha_1-\alpha_2α1​−α2​平行于aaa,故ω⊥α\omega \perp \alphaω⊥α,即ω\omegaω垂直于决策边界。

3-2

设xxx投影到平面f(x,ω)=ω⊤x+b=0f(x,\omega)=\omega^\top x+b=0f(x,ω)=ω⊤x+b=0的点为x′x'x′,则:可知x−x′x-x'x−x′垂直于f(x,ω)f(x,\omega)f(x,ω),由3-1有x−x′x-x'x−x′平行于ω\omegaω

于是有:δ=∣∣x−x′∣∣=k∣∣ω∣∣\delta=||x-x'||=k||\omega||δ=∣∣x−x′∣∣=k∣∣ω∣∣,又:
{f(x,ω)=ω⊤x+bω⊤x2+b=0\begin{cases} f(x,\omega)=\omega^\top x+b \\\\ \omega^\top x_2+b=0 \end{cases} ⎩⎪⎨⎪⎧​f(x,ω)=ω⊤x+bω⊤x2​+b=0​
故有:wT(x−x′)=f(x,ω)w^T(x-x')=f(x,\omega)wT(x−x′)=f(x,ω),带入x−x′=kωx-x'=k\omegax−x′=kω有:k∣∣ω∣∣2=f(x,ω)k||\omega||^2=f(x,\omega)k∣∣ω∣∣2=f(x,ω)

故:δ=∣f(x,ω)∣∣∣ω∣∣\delta=\frac{|f(x,\omega)|}{||\omega||}δ=∣∣ω∣∣∣f(x,ω)∣​

3-3

由多线性可分定义

可知:ωcx1>ωc~x1\omega_cx_1>\omega_{\tilde{c}}x_1ωc​x1​>ωc~​x1​,ωcx2>ωc~x2\omega_cx_2>\omega_{\tilde{c}}x_2ωc​x2​>ωc~​x2​,又ρ∈[0,1]\rho \in[0,1]ρ∈[0,1],故:ρ>0,1−ρ>0\rho>0,1-\rho>0ρ>0,1−ρ>0

线性组合即有:ρωcx1+(1−ρ)ωcx2>ρωa~x1+(1−ρ)ωc~x2\rho\omega_cx_1+(1-\rho)\omega_cx_2>\rho\omega_{\tilde{a}}x_1+(1-\rho)\omega_{\tilde{c}}x_2ρωc​x1​+(1−ρ)ωc​x2​>ρωa~​x1​+(1−ρ)ωc~​x2​

3-4

对于每个类别ccc,他们的分类函数为fc(x;ωc)=ωcTx+bc,c∈{1,⋯,C}f_c(x;\omega_c)=\omega^T_cx+b_c,c\in \{1,\cdots,C\}fc​(x;ωc​)=ωcT​x+bc​,c∈{1,⋯,C}

因为每个类都与除它本身以外的类线性可分,所以:ωc⊤x(n)>ωc~⊤x(n)\omega_c^\top x^ {(n)}>\omega_{\tilde{c}}^\top x^{(n)}ωc⊤​x(n)>ωc~⊤​x(n)

因此有:∑n=1N(ωc⊤x(n)−ωc~⊤x(n))>0\sum^N_{n=1}(\omega^\top_cx^{(n)}-\omega^\top_{\tilde{c}}x^{(n)})>0∑n=1N​(ωc⊤​x(n)−ωc~⊤​x(n))>0,即:XTωc−XTωc~>0X^T\omega_c-X^T\omega_{\tilde{c}}>0XTωc​−XTωc~​>0,故整个数据集线性可分。

3-5

从理论上来说,平方损失函数也可以用于分类问题,但不适合。首先,最小化平方损失函数本质上等同于在误差服从高斯分布的假设下的极大似然估计,然而大部分分类问题的误差并不服从高斯分布。而且在实际应用中,交叉熵在和Softmax激活函数的配合下,能够使得损失值越大导数越大,损失值越小导数越小,这就能加快学习速率。然而若使用平方损失函数,则损失越大导数反而越小,学习速率很慢。

Logistic回归的平方损失函数是非凸的:L=12∑t(y^−y)2L=\frac{1}{2}\sum_t(\hat{y}-y)^2L=21​∑t​(y^​−y)2,y^=σ(ωTx)\hat{y}=\sigma(\omega^Tx)y^​=σ(ωTx)

∂L∂ω=∑t(y^−yi)∂y^∂ω=∑i(y^−yi)y^(1−y^)xi=∑i(−y^3+(yi+1)y^2−yiy^)xi\frac{\partial L}{\partial \omega} =\sum_t(\hat{y}-y_i)\frac{\partial \hat{y}}{\partial \omega}=\sum_i(\hat{y}-y_i)\hat{y}(1-\hat{y})x_i=\sum_i(-\hat{y}^3+(y_i+1)\hat{y}^2-y_i\hat{y})x_i∂ω∂L​=∑t​(y^​−yi​)∂ω∂y^​​=∑i​(y^​−yi​)y^​(1−y^​)xi​=∑i​(−y^​3+(yi​+1)y^​2−yi​y^​)xi​

进一步地: ∂2L∂ω2=∑(−3y^2+2(yi+1)y^−yi)∂y^∂ωxi=∑[−3y^2+2(yi+1)y^−yi]y^(1−y^)xi2\frac{\partial^2 L}{\partial \omega^2}=\sum(-3\hat{y}^2+2(y_i+1)\hat{y}-y_i)\frac{\partial \hat{y}}{\partial \omega}x_i=\sum[-3\hat{y}^2+2(y_i+1)\hat{y}-y_i]\hat{y}(1-\hat{y})x_i^2∂ω2∂2L​=∑(−3y^​2+2(yi​+1)y^​−yi​)∂ω∂y^​​xi​=∑[−3y^​2+2(yi​+1)y^​−yi​]y^​(1−y^​)xi2​

又y^∈[0,1],y∈0,1\hat{y}\in[0,1],y\in{0,1}y^​∈[0,1],y∈0,1,二阶导数不一定大于零。

3-6

不加入正则化项限制权重向量的大小,可能造成权重向量过大,产生上溢。

3-7

原式中:ω‾=1T∑k=1Kckωk\overline{\omega}=\frac{1}{T}\sum^K_{k=1}c_k\omega_kω=T1​∑k=1K​ck​ωk​,又ck=tk+1−tkc_k=t_{k+1}-t_kck​=tk+1​−tk​

即:ω‾=1T∑k=1K(tk+1−tk)ωk\overline{\omega}=\frac{1}{T}\sum^K_{k=1}(t_{k+1}-t_k)\omega_kω=T1​∑k=1K​(tk+1​−tk​)ωk​,即只需要证明算法和该式等价。

根据算法第8、9行有:ωk=y(n)x(n)\omega_k=y^{(n)}x^{(n)}ωk​=y(n)x(n),故原算法中:ω‾=ωT−1Tu=∑k=1Kωk−1Tu\overline{\omega}=\omega_T-\frac{1}{T}u=\sum^K_{k=1}\omega_k-\frac{1}{T}uω=ωT​−T1​u=∑k=1K​ωk​−T1​u

又有:u=∑k=1Ktkωku=\sum^K_{k=1}t_{k}\omega_ku=∑k=1K​tk​ωk​

故算法3.2能得到:ω‾=∑k=1K(1−1Ttkωk)\overline{\omega}=\sum^K_{k=1}(1-\frac{1}{T}t_k\omega_k)ω=∑k=1K​(1−T1​tk​ωk​),由算法第12行可知:tk+1=Tt_{k+1}=Ttk+1​=T并带入可得到:

ω‾=1T∑k=1K(T−tk)ωk=1T∑k=1K(tk+1−tk)ωk\overline{\omega}=\frac{1}{T}\sum^K_{k=1}(T-t_k)\omega_k=\frac{1}{T}\sum^K_{k=1}(t_{k+1}-t_k)\omega_kω=T1​∑k=1K​(T−tk​)ωk​=T1​∑k=1K​(tk+1​−tk​)ωk​,证毕。

3-8

ωk=ωk−1+ϕ(x(k),y(k))−ϕ(x(k),z)\omega_k=\omega_{k-1}+\phi(x^{(k)},y^{(k)})-\phi(x^{(k)},z)ωk​=ωk−1​+ϕ(x(k),y(k))−ϕ(x(k),z)

因此可知:∣∣ωK∣∣2=∣∣ωK−1+ϕ(x(k),y(k))−ϕ(x(k),z)∣∣2||\omega_K||^2=||\omega_{K-1}+\phi(x^{(k)},y^{(k)})-\phi(x^{(k)},z)||^2∣∣ωK​∣∣2=∣∣ωK−1​+ϕ(x(k),y(k))−ϕ(x(k),z)∣∣2

即∣∣ωK∣∣2=∣∣ωK−1∣∣2+∣∣ϕ(x(k),y(k))−ϕ(x(k),z)∣∣2+2ωK−1⋅(ϕ(x(n),y(n))−ϕ(x(n),z))||\omega_K||^2=||\omega_{K-1}||^2+||\phi(x^{(k)},y^{(k)})-\phi(x^{(k)},z)||^2+2\omega_{K-1}\cdot(\phi(x^{(n)},y^{(n)})-\phi(x^{(n)},z))∣∣ωK​∣∣2=∣∣ωK−1​∣∣2+∣∣ϕ(x(k),y(k))−ϕ(x(k),z)∣∣2+2ωK−1​⋅(ϕ(x(n),y(n))−ϕ(x(n),z))

因为zzz为ωK−1\omega_{K-1}ωK−1​的最倾向的候选项,因此2ωK−1⋅(ϕ(x(n),y(n))−ϕ(x(n),z))2\omega_{K-1}\cdot(\phi(x^{(n)},y^{(n)})-\phi(x^{(n)},z))2ωK−1​⋅(ϕ(x(n),y(n))−ϕ(x(n),z))将小于0。

故:∣∣ωK∣∣2≤∣∣ωK−1∣∣2+R2||\omega_K||^2\leq||\omega_{K-1}||^2+R^2∣∣ωK​∣∣2≤∣∣ωK−1​∣∣2+R2

迭代到最后有:∣∣ωK∣∣2≤KR2||\omega_K||^2\leq KR^2∣∣ωK​∣∣2≤KR2,找到了上界。

再寻找下界:∣∣ωK∣∣2=∣∣ω∗∣∣2⋅∣∣ωK∣∣2≥∣∣ω∗⊤ωK∣∣2||\omega_K||^2=||\omega^*||^2\cdot||\omega_K||^2\geq||\omega^{*\top}\omega_K||^2∣∣ωK​∣∣2=∣∣ω∗∣∣2⋅∣∣ωK​∣∣2≥∣∣ω∗⊤ωK​∣∣2

带入ωK\omega_KωK​有:∣∣ωK∣∣2≥∣∣ω∗⊤∑k=1K(ϕ(x(n),y(n))−ϕ(x(n).z))∣∣||\omega_K||^2\geq ||\omega^{*\top}\sum^K_{k=1}(\phi(x^{(n)},y^{(n)})-\phi(x^{(n)}.z))||∣∣ωK​∣∣2≥∣∣ω∗⊤∑k=1K​(ϕ(x(n),y(n))−ϕ(x(n).z))∣∣

即:∣∣ωK∣∣2≥[∑k=1K⟨ω∗,(ϕ(x(n),y(n))−ϕ(x(n).z))⟩]2||\omega_K||^2\geq [\sum^K_{k=1}\langle\omega^*,(\phi(x^{(n)},y^{(n)})-\phi(x^{(n)}.z))\rangle]^2∣∣ωK​∣∣2≥[∑k=1K​⟨ω∗,(ϕ(x(n),y(n))−ϕ(x(n).z))⟩]2

根据广义线性可分有:⟨ω∗,ϕ(x(k),y(k))⟩−⟨ω∗,ϕ(x(k),z)⟩≥γ\langle\omega^*,\phi(x^{(k)},y^{(k)})\rangle-\langle\omega^*,\phi(x^{(k)},z)\rangle\geq\gamma⟨ω∗,ϕ(x(k),y(k))⟩−⟨ω∗,ϕ(x(k),z)⟩≥γ

因此:∣∣ωK∣∣2≥K2γ2||\omega_K||^2\geq K^2\gamma^2∣∣ωK​∣∣2≥K2γ2

因此结合起来就得到了:K2γ2≤KR2K^2\gamma^2\leq KR^2K2γ2≤KR2,即K≤R2γ2K\leq\frac{R^2}{\gamma^2}K≤γ2R2​,证毕

3-9

存在性证明:

因为数据集线性可分,因此该最优化问题存在可行解,又根据线性可分的定义可知目标函数一定有下界,所以最优化问题一定有解,记作:(ω∗,b∗)(\omega^*,b^*)(ω∗,b∗)

因为y∈{1,−1}y\in \{1,-1\}y∈{1,−1},因此(ω∗,b∗)≠(0,b∗)(\omega^*,b^*)\not=(0,b^*)(ω∗,b∗)​=(0,b∗),即ω∗≠O\omega^*\not=\mathbb{O}ω∗​=O,故分离的超平面一定存在。

唯一性证明(反证法):

假定存在两个最优的超平面分别为ω1∗x+b=0\omega_1^*x+b=0ω1∗​x+b=0和ω2∗x+b=0\omega_2^*x+b=0ω2∗​x+b=0

因为为最优,故有:∣∣ω1∗∣∣=∣∣ω2∗∣∣=C||\omega_1^*||=||\omega_2^*||=C∣∣ω1∗​∣∣=∣∣ω2∗​∣∣=C,其中C为一个常数。

于是令:ω=ω1∗+ω2∗2\omega=\frac{\omega_1^*+\omega_2^*}{2}ω=2ω1∗​+ω2∗​​,b=b1∗+b2∗2b=\frac{b_1^*+b_2^*}{2}b=2b1∗​+b2∗​​,可知该解也为可行解。

于是有:C≤∣∣ω∣∣C\leq||\omega||C≤∣∣ω∣∣,又根据范数的三角不等式性质:∥∣ω∣∣≤∣∣ω1∗∣∣2+∣∣ω2∗∣∣2=C\||\omega||\leq\frac{||\omega_1^*||}{2}+\frac{||\omega_2^*||}{2}=C∥∣ω∣∣≤2∣∣ω1∗​∣∣​+2∣∣ω2∗​∣∣​=C

因此:2∣∣ω∣∣=∣∣ω1∗∣∣+∣∣ω2∗∣∣2||\omega||=||\omega_1^*||+||\omega^*_2||2∣∣ω∣∣=∣∣ω1∗​∣∣+∣∣ω2∗​∣∣

又根据不等式取等号的条件可以得到:ω1∗=λω2∗\omega_1^*=\lambda\omega_2^*ω1∗​=λω2∗​

代入可知:λ=1\lambda=1λ=1 (-1的解舍去,会导致ω=0\omega=0ω=0)

因此不存在两个超平面最优,故该超平面惟一。

证毕

3-10

ϕ(x)=[1,2x1,2x2,2x1x2,x12,x22]⊤\phi(x)=[1,\sqrt{2}x_1,\sqrt{2}x_2,\sqrt{2}x_1x_2,x_1^2,x_2^2]^{\top}ϕ(x)=[1,2​x1​,2​x2​,2​x1​x2​,x12​,x22​]⊤,ϕ(z)=[1,2z1,2z2,2z1z2,z12,z22]⊤\phi(z)=[1,\sqrt{2}z_1,\sqrt{2}z_2,\sqrt{2}z_1z_2,z_1^2,z_2^2]^{\top}ϕ(z)=[1,2​z1​,2​z2​,2​z1​z2​,z12​,z22​]⊤

故:ϕ(x)⊤ϕ(z)=1+2x1z1+2x2z2+2x1x2z1z2+x12z12+x22z22=(1+(x1x2)(z1z2)⊤)2\phi(x)^\top\phi(z)=1+2x_1z_1+2x_2z_2+2x_1x_2z_1z_2+x_1^2z_1^2+x_2^2z_2^2=(1+(x_1 \ x_2)(z_1 \ z_2)^\top)^2ϕ(x)⊤ϕ(z)=1+2x1​z1​+2x2​z2​+2x1​x2​z1​z2​+x12​z12​+x22​z22​=(1+(x1​ x2​)(z1​ z2​)⊤)2

即:ϕ(x)⊤ϕ(z)=(1+x⊤z)2=k(x,z)\phi(x)^\top\phi(z)=(1+x^\top z)^2=k(x,z)ϕ(x)⊤ϕ(z)=(1+x⊤z)2=k(x,z),证毕

3-11

原问题:
min12∣∣w∣∣2+C∑n=1Nξns.t.1−yn(w⊤xn+b)−ξn≤0,∀n∈{1,⋯,N}ξn≥0,∀n∈{1,⋯,N}\begin{array}{c} min\frac{1}{2}||w||^2+C\sum^N_{n=1}\xi_n \\\\ s.t. 1-y_n(w^\top x_n+b)-\xi_n\leq 0,\forall n\in\{1,\cdots,N\} \\\\ \xi_n\geq0,\forall n\in\{1,\cdots,N\} \end{array} min21​∣∣w∣∣2+C∑n=1N​ξn​s.t.1−yn​(w⊤xn​+b)−ξn​≤0,∀n∈{1,⋯,N}ξn​≥0,∀n∈{1,⋯,N}​
使用拉格朗日乘子法,可得:
L(w,b,ξ,λ,μ)=12∣∣w∣∣2+C∑i=1Nξi+∑i=1Nλi(1−yi(w⊤xi+b)−ξi)−∑i=1NμiξiL(w,b,\xi,\lambda,\mu)=\frac{1}{2}||w||^2+C\sum^N_{i=1}\xi_i+\sum^N_{i=1}\lambda_i(1-y_i(w^\top x_i+b)-\xi_i)-\sum^N_{i=1}\mu_i\xi_i L(w,b,ξ,λ,μ)=21​∣∣w∣∣2+Ci=1∑N​ξi​+i=1∑N​λi​(1−yi​(w⊤xi​+b)−ξi​)−i=1∑N​μi​ξi​
将其转化为最小最大问题:
min⁡w,b,ξmax⁡λ,μL(w,b,ξ,λ,μ)s.t.λi≥0,∀n∈{1,⋯,N}\begin{array}{c} \min\limits_{w,b,\xi} \ \max\limits_{\lambda,\mu} \ L(w,b,\xi,\lambda,\mu) \\\\ s. t. \lambda_i\geq0,\forall n\in\{1,\cdots,N\} \end{array} w,b,ξmin​ λ,μmax​ L(w,b,ξ,λ,μ)s.t.λi​≥0,∀n∈{1,⋯,N}​
转化为对偶问题:
max⁡λ,μmin⁡w,b,ξL(w,b,ξ,λ,μ)s.t.λi≥0,∀n∈{1,⋯,N}\begin{array}{c} \max\limits_{\lambda,\mu} \ \min\limits_{w,b,\xi} \ L(w,b,\xi,\lambda,\mu) \\\\ s. t. \lambda_i\geq0,\forall n\in\{1,\cdots,N\} \end{array} λ,μmax​ w,b,ξmin​ L(w,b,ξ,λ,μ)s.t.λi​≥0,∀n∈{1,⋯,N}​
求解min⁡w,b,ξL(w,b,ξ,λ,μ)\min\limits_{w,b,\xi}L(w,b,\xi,\lambda,\mu)w,b,ξmin​L(w,b,ξ,λ,μ)如下:

令∂L∂b=0\frac{\partial L}{\partial b}=0∂b∂L​=0,得到∑i=1Nλiyi=0\sum^N\limits_{i=1}\lambda_iy_i=0i=1∑N​λi​yi​=0,带入LLL中,有:

L(w,b,ξ,λ,μ)=12∣∣w∣∣2+C∑i=1Nξi+∑i=1Nλi−∑i=1Nλiyiw⊤xi−∑i=1Nλiξi−∑i=1NμiξiL(w,b,\xi,\lambda,\mu)=\frac{1}{2}||w||^2+C\sum^N\limits_{i=1}\xi_i+\sum^N\limits_{i=1}\lambda_i-\sum^N\limits_{i=1}\lambda_iy_iw^\top x_i-\sum^N\limits_{i=1}\lambda_i\xi_i-\sum^N\limits_{i=1}\mu_i\xi_iL(w,b,ξ,λ,μ)=21​∣∣w∣∣2+Ci=1∑N​ξi​+i=1∑N​λi​−i=1∑N​λi​yi​w⊤xi​−i=1∑N​λi​ξi​−i=1∑N​μi​ξi​

令∂L∂w=0\frac{\partial L}{\partial w}=0∂w∂L​=0,可得:w−∑i=1Nλiyixi=0w-\sum^N\limits_{i=1}\lambda_iy_ix_i=0w−i=1∑N​λi​yi​xi​=0,因此:w=∑i=1Nλiyixiw=\sum^N\limits_{i=1}\lambda_iy_ix_iw=i=1∑N​λi​yi​xi​

带入LLL得到:
L(w,b,ξ,λ,μ)=12∑i=1N∑i=1Nλiλjyiyjxi⊤xj+C∑i=1Nξi+∑i=1Nλi−∑i=1N∑j=1Nλiλjyiyjxi⊤xj−∑i=1Nλiξi−∑i=1Nμiξi=−12∑i=1N∑i=1Nλiλjyiyjxi⊤xj+∑i=1N(C−λi−μi)ξi+∑i=1Nλi\begin{aligned} L(w,b,\xi,\lambda,\mu) &=\frac{1}{2}\sum^N\limits_{i=1}\sum^N\limits_{i=1}\lambda_i\lambda_jy_iy_jx^\top_ix_j+C\sum^N\limits_{i=1}\xi_i+\sum^N\limits_{i=1}\lambda_i-\sum^N\limits_{i=1}\sum^N\limits_{j=1}\lambda_i\lambda_jy_iy_jx_i^\top x_j-\sum^N_{i=1}\lambda_i\xi_i-\sum^N_{i=1}\mu_i\xi_i \\\\ &=-\frac{1}{2}\sum^N\limits_{i=1}\sum^N\limits_{i=1}\lambda_i\lambda_jy_iy_jx^\top_ix_j+\sum^N_{i=1}(C-\lambda_i-\mu_i)\xi_i+\sum^N_{i=1}\lambda_i \end{aligned} L(w,b,ξ,λ,μ)​=21​i=1∑N​i=1∑N​λi​λj​yi​yj​xi⊤​xj​+Ci=1∑N​ξi​+i=1∑N​λi​−i=1∑N​j=1∑N​λi​λj​yi​yj​xi⊤​xj​−i=1∑N​λi​ξi​−i=1∑N​μi​ξi​=−21​i=1∑N​i=1∑N​λi​λj​yi​yj​xi⊤​xj​+i=1∑N​(C−λi​−μi​)ξi​+i=1∑N​λi​​
令∂L∂ξi=0\frac{\partial L}{\partial \xi_i}=0∂ξi​∂L​=0,可得C−λi−μi=0C-\lambda_i-\mu_i=0C−λi​−μi​=0

带入LLL再次有:L(w,b,ξ,λ,μ)=−12∑i=1N∑j=1Nλiλjyiyjxi⊤xj+∑i=1NλiL(w,b,\xi,\lambda,\mu)=-\frac{1}{2}\sum^N\limits_{i=1}\sum^N\limits_{j=1}\lambda_i\lambda_jy_iy_jx^\top_ix_j+\sum^N\limits_{i=1}\lambda_iL(w,b,ξ,λ,μ)=−21​i=1∑N​j=1∑N​λi​λj​yi​yj​xi⊤​xj​+i=1∑N​λi​

因此对偶问题可以为:
max⁡λ−12∑i=1N∑j=1Nλiλjyiyjxi⊤xj+∑i=1Nλis.t.∑i=1Nλiyi=0,∀i∈{1,⋯,N}C−λi−μi=0,∀i∈{1,⋯,N}λi≥0,∀i∈{1,⋯,N}μi≥0,∀i∈{1,⋯,N}\begin{array}{c} \max\limits_{\lambda}-\frac{1}{2}\sum^N\limits_{i=1}\sum^N\limits_{j=1}\lambda_i\lambda_jy_iy_jx^\top_ix_j+\sum^N\limits_{i=1}\lambda_i \\ s. t. \sum^N\limits_{i=1}\lambda_iy_i=0,\forall i\in\{1,\cdots,N\} \\ C-\lambda_i-\mu_i=0,\forall i\in\{1,\cdots,N\} \\ \lambda_i\geq 0,\forall i \in\{1,\cdots,N\} \\ \mu_i\geq 0,\forall i \in\{1,\cdots,N\} \end{array} λmax​−21​i=1∑N​j=1∑N​λi​λj​yi​yj​xi⊤​xj​+i=1∑N​λi​s.t.i=1∑N​λi​yi​=0,∀i∈{1,⋯,N}C−λi​−μi​=0,∀i∈{1,⋯,N}λi​≥0,∀i∈{1,⋯,N}μi​≥0,∀i∈{1,⋯,N}​
化简得到:
max⁡λ−12∑i=1N∑j=1Nλiλjyiyjxi⊤xj+∑i=1Nλis.t.∑i=1Nλiyi=0,∀i∈{1,⋯,N}0≤λi≤C,∀i∈{1,⋯,N}\begin{array}{c} \max\limits_{\lambda}-\frac{1}{2}\sum^N\limits_{i=1}\sum^N\limits_{j=1}\lambda_i\lambda_jy_iy_jx^\top_ix_j+\sum^N\limits_{i=1}\lambda_i \\ s. t. \sum^N\limits_{i=1}\lambda_iy_i=0,\forall i\in\{1,\cdots,N\} \\ 0\leq \lambda_i \leq C,\forall i\in\{1,\cdots,N\} \end{array} λmax​−21​i=1∑N​j=1∑N​λi​λj​yi​yj​xi⊤​xj​+i=1∑N​λi​s.t.i=1∑N​λi​yi​=0,∀i∈{1,⋯,N}0≤λi​≤C,∀i∈{1,⋯,N}​
因此其KKT条件如下:
{∇wL=w−∑i=1Nλiyixi=0∇bL=−∑i=1Nλiyixi=0∇ξL=C−λ−μ=0λi(1−yn(w⊤xn+b)−ξi)=01−yn(w⊤xn+b)−ξn≤0ξi≥0λi≥0μi≥0\begin{cases} \nabla_w L=w-\sum^N\limits_{i=1}\lambda_iy_ix_i=0 \\ \nabla_b L=-\sum^N\limits_{i=1}\lambda_iy_ix_i=0 \\ \nabla_{\xi}L=C-\lambda-\mu=0 \\ \lambda_i(1-y_n(w^\top x_n+b)-\xi_i)=0 \\ 1-y_n(w^\top x_n+b)-\xi_n\leq 0 \\ \xi_i\geq 0 \\ \lambda_i\geq 0 \\ \mu_i \geq 0 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​∇w​L=w−i=1∑N​λi​yi​xi​=0∇b​L=−i=1∑N​λi​yi​xi​=0∇ξ​L=C−λ−μ=0λi​(1−yn​(w⊤xn​+b)−ξi​)=01−yn​(w⊤xn​+b)−ξn​≤0ξi​≥0λi​≥0μi​≥0​

第四章

4-1

零均值化的输入,使得神经元在0附近,sigmoid函数在零点处的导数最大,所有收敛速度最快。非零中心化的输入将导致ω\omegaω的梯度全大于0或全小于0,使权重更新发生抖动,影响梯度下降的速度。形象一点而言,就是零中心化的输入就如同走较为直的路,而非零时七拐八拐才到终点。

4-2

题目要求有两个隐藏神经元和一个输出神经元,那么网络应该有W(1)W^{(1)}W(1)和w(2)w^{(2)}w(2)两个权重,取:
W(1)=[1111],b(1)=[01]w(2)=[1−2],b(2)=0W^{(1)}=\left[\begin{array}{c}1 & 1\\ 1& 1\end{array}\right],b^{(1)}=\left[\begin{array}{c}0 \\ 1\end{array}\right] \\ w^{(2)}=\left[\begin{array}{c}1 \\ -2\end{array}\right],b^{(2)}=0 W(1)=[11​11​],b(1)=[01​]w(2)=[1−2​],b(2)=0
带入得到:
X=[00110101]X=\left[\begin{array}{c}0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 1\end{array}\right] X=[00​01​10​11​]
神经元的输入与输出:

x1x_1x1​ x2x_2x2​ yyy
0 0 0
1 0 1
0 1 1
1 1 0

实验代码(需要tensorflow2.3):

import numpy as np
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
#input and output
X=np.array([[0,0],[0,1],[1,0],[1,1]])
Y=np.array([[0],[1],[1],[0]])
x=tf.placeholder(dtype=tf.float32,shape=[None,2])
y=tf.placeholder(dtype=tf.float32,shape=[None,1])
#weight
w1=tf.Variable(tf.random_normal([2,2]))
w2=tf.Variable(tf.random_normal([2,1]))
#bias
b1=tf.Variable([0.1,0.1])
b2=tf.Variable(0.1)
#relu activation function
h=tf.nn.relu(tf.matmul(x,w1)+b1)
output=tf.matmul(h,w2)+b2
#loss and Adam optimizer
loss=tf.reduce_mean(tf.square(output-y))
train=tf.train.AdamOptimizer(0.05).minimize(loss)with tf.Session() as session:session.run(tf.global_variables_initializer())for i in range(2000):session.run(train,feed_dict={x:X,y:Y})loss_=session.run(loss,feed_dict={x:X,y:Y})if i%50 == 0:print("step:%d,loss:%.3f"%(i,loss_))print("X:%r"%X)print("Pred:%r"%session.run(output,feed_dict={x:X}))

4-3

二分类的例子

二分类交叉熵损失函数为:L(y,y^)=−(ylog⁡y^+(1−y)log⁡(1−y^))L(y,\hat{y})=-(y\log\hat{y}+(1-y)\log(1-\hat{y}))L(y,y^​)=−(ylogy^​+(1−y)log(1−y^​))

不同取值损失函数如表所示:

yyy y^\hat{y}y^​ L(y,y^)L(y,\hat{y})L(y,y^​)
0 0 0
1 0 +∞+\infty+∞
0 1 −∞-\infty−∞
1 1 0

如果我们要损失函数尽可能小的时候,yyy为1的时候y^\hat{y}y^​尽可能要大,yyy为0的时候y^\hat{y}y^​尽可能要小。而在后一种情况下需要ω\omegaω尽可能小,因此如果更新过多,会导致样本的所有输出全部为负数,因而梯度会为0,造成权重无法更新,因而成死亡结点。

解决方法

使用Leaky ReLU、PReLU、ELU或者SoftPlus函数当作激活函数。

ReLU死亡问题数学推导

向前传播公式:{z=ω⋅xa=ReLU(z)\begin{cases}z=\omega\cdot x\\ a=ReLU(z)\end{cases}{z=ω⋅xa=ReLU(z)​

损失函数为LLL,反向传播公式为:{∂L∂z=∂L∂a⋅∂a∂z∂L∂W=∂L∂z⋅x⊤∂L∂x=ω⊤⋅∂L∂z\begin{cases}\frac{\partial L}{\partial z}=\frac{\partial L}{\partial a}\cdot\frac{\partial a}{\partial z}\\\\ \frac{\partial L}{\partial W}=\frac{\partial L}{\partial z}\cdot x^\top\\\\ \frac{\partial L}{\partial x}=\omega^\top \cdot \frac{\partial L}{\partial z}\end{cases}⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​∂z∂L​=∂a∂L​⋅∂z∂a​∂W∂L​=∂z∂L​⋅x⊤∂x∂L​=ω⊤⋅∂z∂L​​

对固定的学习率lrlrlr,梯度∂L∂W\frac{\partial L}{\partial W}∂W∂L​越大,权重WWW更新也就越快,梯度更新公式:W=W+lr⋅∂L∂WW=W+lr\cdot \frac{\partial L}{\partial W}W=W+lr⋅∂W∂L​

如果梯度太大,而学习率又不小心设置得太大,就会导致权重一下子更新过多。

而我们又想使得损失函数最小,就有可能出现这种情况:对于任意训练样本 xix_ixi​ ,网络的输出都是小于0的,用数学描述为:zi=W⋅xi<0,∀xi∈Dtrainz_i=W\cdot x_i<0,\forall x_i\in D_{train}zi​=W⋅xi​<0,∀xi​∈Dtrain​

此时:ai=max{zi,0}=0a_i=max\{z_i,0\}=0ai​=max{zi​,0}=0,即与该神经元相连的参数都得不到更新,神经元进入“休眠”状态。

4-4

Swish求导:dxσ(βx)dx=σ(βx)+xσ(βx)(1−σ(βx))β=1+(βx+1)⋅exp(−βx)(1+exp⁡(−βx))2GELU求导:dGELU(x)dx=P(X≤x)+xdP(X≤x)dx=Φ(x)+x⋅exp⁡(−x22)2πSwish求导:\frac{\mathbb{d}x\sigma(\beta x)}{\mathbb{d}x}=\sigma(\beta x)+x\sigma(\beta x)(1-\sigma(\beta x))\beta=\frac{1+(\beta x+1)\cdot exp(-\beta x)}{(1+\exp(-\beta x))^2} \\\\ GELU求导:\frac{\mathbb{d}GELU(x)}{\mathbb{d}x}=P(X\leq x)+\frac{x\mathbb{d}P(X\leq x)}{\mathbb{d}x}=\Phi(x)+\frac{x\cdot \exp(\frac{-x^2}{2})}{\sqrt{2\pi}} Swish求导:dxdxσ(βx)​=σ(βx)+xσ(βx)(1−σ(βx))β=(1+exp(−βx))21+(βx+1)⋅exp(−βx)​GELU求导:dxdGELU(x)​=P(X≤x)+dxxdP(X≤x)​=Φ(x)+2π​x⋅exp(2−x2​)​

4-5

输入层到隐藏层:输入的样本数量为m(0)⋅NLm^{(0)}\cdot\frac{N}{L}m(0)⋅LN​,偏置数量为111

LLL层隐藏层之间:神经元需要的参数为(L−1)⋅(NL)2(L-1)\cdot(\frac{N}{L})^2(L−1)⋅(LN​)2,偏置数量为N−1N-1N−1

隐藏层到输出层:输出需要的参数为NL\frac{N}{L}LN​,偏置数量为111

一共为:N+1+(L−1)(NL)2+M0NL+NLN+1+(L-1)(\frac{N}{L})^2+\frac{M_0N}{L}+\frac{N}{L}N+1+(L−1)(LN​)2+LM0​N​+LN​

4-6

通用近似定理对于具有线性输出层和至少一个使用 ReLU 激活函数的隐藏层组成的前馈神经网络,也都是适用的。

时间有限要赶毕设了,深入推导请看:https://arxiv.org/pdf/1505.03654.pdf

4-7

加入正则化项的目的是为了防止过拟合, 防止它对于输入的微小变化过于敏感, 但偏置对任意的输入都产生同样的效应, 加入他们对于防止过拟合没有什么帮助。

以线性回归为例:最终我们可以看到ω=(XX⊤+λI)Xy\omega=(XX^\top+\lambda I)Xyω=(XX⊤+λI)Xy,偏置并没有影响到ω\omegaω,而拟合好坏是由ω\omegaω相关的,故不需要对偏置进行正则化。

4-8

因为 将ω\omegaω和bbb初始化为0,则初始输入:z=ω⊤x+b=0z=\omega^\top x+b=0z=ω⊤x+b=0,在第一遍前向计算的过程中所有的隐藏层神经元的激活值都相同。在反向传播时,所有权重更新也都相同,这样会导致隐藏层神经元没有区分性。这种现象称为对称权重现
象。

4-9

可以缓解,但不一定能得到理想的效果,增大学习率可能使最优值被跨越,也可能造成梯度爆炸。

第五章

5-1

1)证明:
原式=x(t+1)−x(t)−(x(t)−x(t−1))=lim⁡Δt→1x(t+Δt)−x(t)Δt−x(t)−x(t−Δt)Δt=x′(t)−x′(t−1)=lim⁡Δt→1x′(t)−x′(t−Δt)Δt即有:x(t+1)−x(t)−(x(t)−x(t−1))=x′′(t)\begin{aligned} 原式&=x(t+1)-x(t)-(x(t)-x(t-1)) \\ &=\lim_{\Delta t\rightarrow 1}\frac{x(t+\Delta t)-x(t)}{\Delta t}-\frac{x(t)-x(t-\Delta t)}{\Delta t} \\ &=x'(t)-x'(t-1)=\lim_{\Delta t\rightarrow 1}\frac{x'(t)-x'(t-\Delta t)}{\Delta t} \end{aligned} \\即有:x(t+1)-x(t)-(x(t)-x(t-1))=x''(t) 原式​=x(t+1)−x(t)−(x(t)−x(t−1))=Δt→1lim​Δtx(t+Δt)−x(t)​−Δtx(t)−x(t−Δt)​=x′(t)−x′(t−1)=Δt→1lim​Δtx′(t)−x′(t−Δt)​​即有:x(t+1)−x(t)−(x(t)−x(t−1))=x′′(t)
2) 由原式自然地可以知道:
∂2f∂x2=f(x+1,y)+f(x−1,y)−2f(x,y)∂2f∂y2=f(x,y+1)+f(x,y−1)−2f(x,y)\frac{\partial^2 f}{\partial x^2}=f(x+1,y)+f(x-1,y)-2f(x,y) \\\\ \frac{\partial^2 f}{\partial y^2}=f(x,y+1)+f(x,y-1)-2f(x,y) \\\\ ∂x2∂2f​=f(x+1,y)+f(x−1,y)−2f(x,y)∂y2∂2f​=f(x,y+1)+f(x,y−1)−2f(x,y)
于是有二维的二阶微分:
∂2f∂x2+∂2f∂y2=f(x+1,y)+f(x,y+1)−4f(x,y)+f(x−1,y)+f(x,y−1)\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}=f(x+1,y)+f(x,y+1)-4f(x,y)+f(x-1,y)+f(x,y-1) ∂x2∂2f​+∂y2∂2f​=f(x+1,y)+f(x,y+1)−4f(x,y)+f(x−1,y)+f(x,y−1)
因此可以有卷积核:
[0101−41010]\left[\begin{array}{c} 0 & 1 & 0 \\\\ 1 & -4 & 1 \\\\ 0 & 1 & 0 \end{array}\right] ⎣⎢⎢⎢⎢⎡​010​1−41​010​⎦⎥⎥⎥⎥⎤​

5-2

根据卷积,有:yij=∑u=1U∑v=1Vwuv⋅xi+u−1y_{ij}=\sum^U_{u=1}\sum^V_{v=1}w_{uv}\cdot x_{i+u-1}yij​=∑u=1U​∑v=1V​wuv​⋅xi+u−1​

变换坐标:k=i−u+1,d=j−v+1k=i-u+1,d=j-v+1k=i−u+1,d=j−v+1,于是有:u=k−i+1,v=d−j+1u=k-i+1,v=d-j+1u=k−i+1,v=d−j+1

因此原式变为:
yij=∑k=i−u+1U+i−1∑d=j−v+1V+j−1xkd⋅wk−i+1,d−j+1y_{ij}=\sum_{k=i-u+1}^{U+i-1}\sum_{d=j-v+1}^{V+j-1}x_{kd}\cdot w_{k-i+1,d-j+1}yij​=k=i−u+1∑U+i−1​d=j−v+1∑V+j−1​xkd​⋅wk−i+1,d−j+1​

根据宽卷积的性质,宽卷积仅是进行了X的零填充,可以发现该等式仍然成立,故宽卷积也符合可交换性。

5-3

  1. 降低特征映射的深度,例如v1版本的Inception模块1×11\times 11×1的卷积核作用
  2. 针对特征映射之间的冗余信息,能实现跨映射空间的特征抽取的作用。
  3. 减小时间复杂度,见5-4

5-4

1)时间:O(M2⋅K2⋅Cin⋅Cout)=5.898×109O(M^2\cdot K^2\cdot C_{in}\cdot C_{out})=5.898\times 10^9O(M2⋅K2⋅Cin​⋅Cout​)=5.898×109,其中M=100,K=3,Cin=256,Cout=256M=100,K=3,C_{in}=256,C_{out}=256M=100,K=3,Cin​=256,Cout​=256

2)时间:O(M2⋅K2⋅Cin⋅Cout)+O(M2⋅K′2⋅Cin′⋅Cout′)=1.6384×109O(M^2\cdot K^2\cdot C_{in}\cdot C_{out})+O(M^2\cdot K'^2\cdot C_{in}'\cdot C_{out}')=1.6384\times 10^9O(M2⋅K2⋅Cin​⋅Cout​)+O(M2⋅K′2⋅Cin′​⋅Cout′​)=1.6384×109,其中M=100,K=K′=3,Cin=256,Cout=64,Cin′=64,Cout′=256M=100,K=K'=3,C_{in}=256,C_{out}=64,C_{in}'=64,C_{out}'=256M=100,K=K′=3,Cin​=256,Cout​=64,Cin′​=64,Cout′​=256

5-5

将XXX其根据列优先展开为九维向量:

X=[a11a12a13a21a22a23a31a32a33]=[α1⋅α2⋅α3⋅]展开之后有:X′=[α1⋅α2⋅α3⋅]X=\left[ \begin{array}{c} a_{11} & a_{12} & a_{13} \\\\ a_{21} & a_{22} & a_{23} \\\\ a_{31} & a_{32} & a_{33} \end{array}\right] =\left[\begin{array}{c}\alpha_{1\cdot} & \alpha_{2\cdot} &\alpha_{3\cdot}\end{array}\right] \\展开之后有:X'=\left[\begin{array}{c}\alpha_{1\cdot} \\ \alpha_{2\cdot} \\ \alpha_{3\cdot}\end{array}\right] X=⎣⎢⎢⎢⎢⎡​a11​a21​a31​​a12​a22​a32​​a13​a23​a33​​⎦⎥⎥⎥⎥⎤​=[α1⋅​​α2⋅​​α3⋅​​]展开之后有:X′=⎣⎡​α1⋅​α2⋅​α3⋅​​⎦⎤​

因此我们的仿射变换的WWW为:

W=[w11w12w21w22]W′=[w11w210w12w220000000w11w210w12w2200w11w210w12w220000000w11w210w12w22]W=\left[ \begin{array}{c} w_{11} & w_{12} \\ w_{21} & w_{22} \end{array}\right]\\ W'=\left[ \begin{array}{c} w_{11} & w_{21} & 0 & w_{12} & w_{22} & 0 & 0 & 0 & 0 \\\\ 0 & 0 & 0 & w_{11} & w_{21} & 0 & w_{12} & w_{22} & 0 \\\\ 0 & w_{11} & w_{21} & 0 & w_{12} & w_{22} & 0 & 0 & 0 \\\\ 0 & 0 & 0 & 0 & w_{11} & w_{21} & 0 & w_{12} & w_{22} \\\\ \end{array}\right] W=[w11​w21​​w12​w22​​]W′=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​w11​000​w21​0w11​0​00w21​0​w12​w11​00​w22​w21​w12​w11​​00w22​w21​​0w12​00​0w22​0w12​​000w22​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​
因此放射变换为:Affine(W,X)=W′X′Affine(W,X)=W'X'Affine(W,X)=W′X′

5-6

∀xi,xj,i≠j有xi≠xj时:∂Max∂X={1Max≠00Max=0\forall x_i,x_j,i\not=j有x_i\not=x_j时:\frac{\partial Max}{\partial X}=\begin{cases}1 & Max\not=0\\ 0 & Max=0\end{cases}∀xi​,xj​,i​=j有xi​​=xj​时:∂X∂Max​={10​Max​=0Max=0​

argmaxargmaxargmax不可导。

5-7

在第lll层时:净输入为z(l+1)=W(l+1)z(l)z^{(l+1)}=W^{(l+1)}z^{(l)}z(l+1)=W(l+1)z(l), 反向传播的误差项为δ(l)=(W(l+1))⊤δ(l+1)\delta^{(l)}=(W^{(l+1)})^\top \delta^{(l+1)}δ(l)=(W(l+1))⊤δ(l+1)

当在第l+1l+1l+1层时:净输入为z(l)=(W(l+1))⊤z(l+1)z^{(l)}=(W^{(l+1)})^\top z^{(l+1)}z(l)=(W(l+1))⊤z(l+1),而反向传播的误差项为δ(l+1)=W(l+1)δ(l)\delta^{(l+1)}=W^{(l+1)}\delta^{(l)}δ(l+1)=W(l+1)δ(l)

因此,忽略激活函数下前向计算和反向传播是一种转置关系。

5-8

(P+1)2=K+(K−1)×(D−1)(P+1)^2=K+(K-1)\times (D-1)(P+1)2=K+(K−1)×(D−1)

第六章

6-1

共同点: 都共享参数权重,

相异点: 延时神经网络当前层神经元的活性值仅依赖于前一层神经元的最近K个时刻的活性值,而循环神经网络当前时刻的活性值依赖之前所有时刻的活性值;循环神经网络和延时神经网络都是在时间维度上共享权重,卷积神经网络则是在空间上共享权重。

6-2

第ttt时刻损失函数为:Lt=L(yt,g(ht))L_t=L(y_t,g(h_t))Lt​=L(yt​,g(ht​)),故总的损失函数为:L=∑t=1TLtL=\sum^T_{t=1}L_tL=∑t=1T​Lt​

关于参数WWW的梯度为:∂L∂W=∑t=1T∂Lt∂W\frac{\partial L}{\partial W}=\sum^T_{t=1}\frac{\partial L_t}{\partial W}∂W∂L​=∑t=1T​∂W∂Lt​​,关于参数bbb的梯度为:∂L∂b=∑t=1T∂Lt∂b\frac{\partial L}{\partial b}=\sum^T_{t=1}\frac{\partial L_t}{\partial b}∂b∂L​=∑t=1T​∂b∂Lt​​

对于WWW矩阵的元素wijw_{ij}wij​,bbb矩阵的元素bijb_{ij}bij​,引入每个kkk时刻的净输入:zk=Uhk−1+Wxk+bz_k=Uh_{k-1}+Wx_k+bzk​=Uhk−1​+Wxk​+b,则:
∂L∂wij=∂+zk∂wij⋅∂L∂zk=∑k=1t∂+zk∂wij∂Lt∂zk∂L∂bij=∂+zk∂bij⋅∂L∂zk=∑k=1t∂+zk∂bij∂Lt∂zk\frac{\partial L}{\partial w_{ij}}=\frac{\partial^+ z_k}{\partial w_{ij}}\cdot\frac{\partial L}{\partial z_{k}}=\sum^t_{k=1}\frac{\partial^+ z_k}{\partial w_{ij}} \frac{\partial L_t}{\partial z_{k}} \\ \frac{\partial L}{\partial b_{ij}}=\frac{\partial^+ z_k}{\partial b_{ij}}\cdot\frac{\partial L}{\partial z_{k}}=\sum^t_{k=1}\frac{\partial^+ z_k}{\partial b_{ij}} \frac{\partial L_t}{\partial z_{k}} ∂wij​∂L​=∂wij​∂+zk​​⋅∂zk​∂L​=k=1∑t​∂wij​∂+zk​​∂zk​∂Lt​​∂bij​∂L​=∂bij​∂+zk​​⋅∂zk​∂L​=k=1∑t​∂bij​∂+zk​​∂zk​∂Lt​​
而∂+zk∂wij=[0,⋯,[xk]j,⋯,0]≜Ii([xk]j),∂+zk∂bij=[0,⋯,1,⋯,0]≜Ii([1]j)\frac{\partial^+z_k}{\partial w_ij}= [0,\cdots,[x_k]_j,\cdots,0] \triangleq\mathbb{I}_i([x_k]_j),\frac{\partial^+z_k}{\partial b_ij}=[0,\cdots,1,\cdots,0]\triangleq\mathbb{I}_i([1]_j)∂wi​j∂+zk​​=[0,⋯,[xk​]j​,⋯,0]≜Ii​([xk​]j​),∂bi​j∂+zk​​=[0,⋯,1,⋯,0]≜Ii​([1]j​)

根据公式6.36有:∂Lt∂zk=diag(f′(zk))U⊤δt,k+1\frac{\partial L_t}{\partial z_k}=\mathbb{diag}(f'(z_k))U^\top\delta_{t,k+1}∂zk​∂Lt​​=diag(f′(zk​))U⊤δt,k+1​,因此连立公式合并:

∂L∂wij=∑k=1t[δi,t,k][xk,j]→∂L∂W=∑k=1tδt,kxk⊤∂L∂bij=∑k=1t[δt,k,i][1j]→∂L∂W=∑k=1tδt,k\frac{\partial L}{\partial w_{ij}}=\sum_{k=1}^t[\delta_{i,t,k}][x_{k,j}] \rightarrow\frac{\partial L}{\partial W}=\sum_{k=1}^t\delta_{t,k}x^\top_k \\\\ \frac{\partial L}{\partial b_{ij}}=\sum_{k=1}^t[\delta_{t,k,i}][1_j] \rightarrow \frac{\partial L}{\partial W}=\sum_{k=1}^t\delta_{t,k} ∂wij​∂L​=k=1∑t​[δi,t,k​][xk,j​]→∂W∂L​=k=1∑t​δt,k​xk⊤​∂bij​∂L​=k=1∑t​[δt,k,i​][1j​]→∂W∂L​=k=1∑t​δt,k​

因此有:
∂L∂W=∑t=1T∑k=1tδt,kxk⊤∂L∂b=∑t=1T∑k=1tδt,k\frac{\partial L}{\partial W}=\sum^T_{t=1}\sum^t_{k=1}\delta_{t,k}x^\top_k \\ \frac{\partial L}{\partial b}=\sum^T_{t=1}\sum^t_{k=1}\delta_{t,k} ∂W∂L​=t=1∑T​k=1∑t​δt,k​xk⊤​∂b∂L​=t=1∑T​k=1∑t​δt,k​

6-3

原因

公式:ht=ht−1+g(xt,ht−1;θ)h_t=h_{t-1}+g(x_t,h_{t-1};\theta)ht​=ht−1​+g(xt​,ht−1​;θ),此时可能存在∣∣diag(f′(zt))U⊤∣∣>1||\mathbb{diag}(f'(z_t))U^\top||> 1∣∣diag(f′(zt​))U⊤∣∣>1,则在计算梯度时有:

zk=Uhk−1+Wxk+bz_k=Uh_{k-1}+Wx_k+bzk​=Uhk−1​+Wxk​+b为g(⋅)g(\cdot)g(⋅)在第kkk时刻的输入,则在δt,k=∂Lt∂zk\delta_{t,k}=\frac{\partial L_t}{\partial z_k}δt,k​=∂zk​∂Lt​​时,有:

δt,k=diag(f′(zk))U⊤δt,k+1=δt,t∏i=ktdiag(f′(zk))U⊤\delta_{t,k}=\mathbb{diag}(f'(z_k))U^\top \delta_{t,k+1}=\delta_{t,t}\prod^{t}_{i=k}\mathbb{diag}(f'(z_k))U^\top δt,k​=diag(f′(zk​))U⊤δt,k+1​=δt,t​i=k∏t​diag(f′(zk​))U⊤

因此:t−k→+∞t-k\rightarrow +\inftyt−k→+∞时,δt,k→+∞\delta_{t,k}\rightarrow +\inftyδt,k​→+∞,故梯度此刻可能爆炸了。

解决方法

  1. 使用基于门控的循环神经网络;
  2. 使用更小的UUU和f(⋅)f(\cdot)f(⋅)缓解,尽量让∣∣diag(f′(zt))U⊤∣∣≈1||\mathbb{diag(f'(z_t))}U^\top||\approx 1∣∣diag(f′(zt​))U⊤∣∣≈1

6-4

第ttt时刻的输入向量:xtx_txt​

权重参数:Wi,Wc,Wf,Wo,Ui,Uc,Uf,UoW_i,W_c,W_f,W_o,U_i,U_c,U_f,U_oWi​,Wc​,Wf​,Wo​,Ui​,Uc​,Uf​,Uo​

bias:bi,bc,bf,bob_i,b_c,b_f,b_obi​,bc​,bf​,bo​

σ\sigmaσ:sigmoid函数

VVV:∂ot∂ht\frac{\partial o_t}{\partial h_t}∂ht​∂ot​​

前向传播

  1. Forget Gate:ft=σ(Wfxt+Ufht−1+bf)f_t = \sigma(W_fx_t+U_fh_{t-1}+b_f)ft​=σ(Wf​xt​+Uf​ht−1​+bf​)
  2. Input Gate:it=σ(Wixt+Uiht−1+bi)i_t = \sigma(W_ix_t+U_ih_{t-1}+b_i)it​=σ(Wi​xt​+Ui​ht−1​+bi​),ct~=tanh(Wcxt+Ucht−1+bc)\tilde{c_t} = tanh(W_cx_t+U_ch_{t-1}+b_c)ct​~​=tanh(Wc​xt​+Uc​ht−1​+bc​)
  3. Cell state:ct=ft⊙ct−1+it⊙ct~c_t = f_t\odot c_{t-1}+i_t\odot\tilde{c_t}ct​=ft​⊙ct−1​+it​⊙ct​~​
  4. Output Gate:ot=σ(Woxt+Uoht−1+bo)o_t = \sigma(W_ox_t+U_oh_{t-1}+b_o)ot​=σ(Wo​xt​+Uo​ht−1​+bo​),ht=ot⊙tanh(ct)h_t = o_t\odot tanh(c_t)ht​=ot​⊙tanh(ct​)

反向传播

隐藏状态hth_tht​和ctc_tct​的梯度为:δht=∂L∂ht\delta h_t=\frac{\partial L}{\partial h_t}δht​=∂ht​∂L​,δct=∂L∂ct\delta c_t =\frac{\partial L}{\partial c_t}δct​=∂ct​∂L​

损失函数:L(t)=l(t)+L(t+1)=l(t)+∑i=t+1τ−tl(i)L(t)=l(t)+L(t+1) = l(t)+\sum\limits^{\tau-t}_{i=t+1}l(i)L(t)=l(t)+L(t+1)=l(t)+i=t+1∑τ−t​l(i)

最后时刻τ\tauτ时:

δhτ=(∂oτ∂hτ)⊤∂Lτ∂oτ=V⊤(yt^−yt)\delta h_\tau=(\frac{\partial o_\tau}{\partial h_\tau})^\top\frac{\partial L_\tau}{\partial o_\tau}=V^\top(\hat{y_t}-y_t)δhτ​=(∂hτ​∂oτ​​)⊤∂oτ​∂Lτ​​=V⊤(yt​^​−yt​)

δcτ=(∂hτ∂cτ)⊤∂L(τ)∂hτ=oτ⊙(1−tanh2(cτ))⊙δhτ\delta c_\tau = (\frac{\partial h_\tau}{\partial c_\tau})^\top\frac{\partial L(\tau)}{\partial h_\tau}=o_\tau \odot (1-tanh^2(c_\tau))\odot\delta h_\tauδcτ​=(∂cτ​∂hτ​​)⊤∂hτ​∂L(τ)​=oτ​⊙(1−tanh2(cτ​))⊙δhτ​

从第t+1t+1t+1时刻反向传播到第ttt时刻:

δht=∂L∂ht=∂l(t)∂ht+(∂ht+1∂ht)⊤∂L(t+1)∂ht+1=V⊤(yt^−yt)+(∂ht+1ht)⊤δht+1\delta h_t = \frac{\partial L}{\partial h_t}=\frac{\partial l(t)}{\partial h_t}+(\frac{\partial h_{t+1}}{\partial h_t})^\top\frac{\partial L(t+1)}{\partial h_{t+1}}=V^\top(\hat{y_t}-y_t)+(\frac{\partial h_{t+1}}{h_t})^\top \delta h_{t+1}δht​=∂ht​∂L​=∂ht​∂l(t)​+(∂ht​∂ht+1​​)⊤∂ht+1​∂L(t+1)​=V⊤(yt​^​−yt​)+(ht​∂ht+1​​)⊤δht+1​

又有:△ct=ot+1⊙[1−tanh2(ct+1)]\triangle c_t = o_{t+1}\odot [1-tanh^2(c_{t+1})]△ct​=ot+1​⊙[1−tanh2(ct+1​)]

∂ht+1∂ht=diag[ot+1⊙(1−ot+1)⊙tanh(ct+1)]Wo+diag[△c⊙ft+1⊙(1−ft+1)⊙ct]Wf+diag{△c⊙it+1⊙[1−(ct+1)2]}Wc+diag[△c⊙ct+1⊙it+1⊙(1−it+1)]Wi\frac{\partial h_{t+1}}{\partial h_t}=diag[o_{t+1}\odot (1-o_{t+1})\odot tanh(c_{t+1})]W_o+diag[\triangle c\odot f_{t+1}\odot (1-f_{t+1})\odot c_t]W_f \\\\ +diag\{\triangle c\odot i_{t+1}\odot[1-(c_{t+1})^2]\}W_c+diag[\triangle c\odot c_{t+1}\odot i_{t+1}\odot (1-i_{t+1})]W_i∂ht​∂ht+1​​=diag[ot+1​⊙(1−ot+1​)⊙tanh(ct+1​)]Wo​+diag[△c⊙ft+1​⊙(1−ft+1​)⊙ct​]Wf​+diag{△c⊙it+1​⊙[1−(ct+1​)2]}Wc​+diag[△c⊙ct+1​⊙it+1​⊙(1−it+1​)]Wi​

δct=(∂ct+1∂ct)⊤∂L∂ct+1+(∂ht∂ct)⊤∂L∂ht=(∂ct+1∂ct)⊤δct+1+δht⊙ot⊙(1−tanh2(ct))\delta c_t = (\frac{\partial c_{t+1}}{\partial c_t})^\top\frac{\partial L}{\partial c_{t+1}}+(\frac{\partial h_t}{\partial c_t})^\top\frac{\partial L}{\partial h_t}=(\frac{\partial c_{t+1}}{\partial c_t})^\top\delta c_{t+1}+\delta h_t \odot o_t \odot (1-tanh^2(c_t))δct​=(∂ct​∂ct+1​​)⊤∂ct+1​∂L​+(∂ct​∂ht​​)⊤∂ht​∂L​=(∂ct​∂ct+1​​)⊤δct+1​+δht​⊙ot​⊙(1−tanh2(ct​))

因此有:δct=δct+1⊙ft+1+δht⊙ot⊙(1−tanh2(ct))\delta c_t=\delta c_{t+1}\odot f_{t+1}+\delta h_t\odot o_t \odot (1-tanh^2(c_t))δct​=δct+1​⊙ft+1​+δht​⊙ot​⊙(1−tanh2(ct​))

于是:∂L∂Wf=∑t=1τ[δct⊙ct−1⊙ft⊙(1−ft)]ht−1⊤\frac{\partial L}{\partial W_f}=\sum\limits ^\tau_{t=1}[\delta c_t \odot c_{t-1}\odot f_t \odot (1-f_t)]h_{t-1}^\top∂Wf​∂L​=t=1∑τ​[δct​⊙ct−1​⊙ft​⊙(1−ft​)]ht−1⊤​

6-5

GRU将三门变两门:更新门ztz_tzt​,重置门rtr_trt​,单元状态ccc与输出ooo合并为一个状态hhh

前向传播

rt=σ(Wr⋅[ht−1,xt])r_t=\sigma(W_r\cdot [h_{t-1},x_t])rt​=σ(Wr​⋅[ht−1​,xt​])

zt=σ(Wz⋅[ht−1,xt])z_t=\sigma(W_z\cdot [h_{t-1},x_t])zt​=σ(Wz​⋅[ht−1​,xt​])

ht^=tanh(Wh^⋅[rt⊙ht−1,xt])\hat{h_t}=tanh(W_{\hat{h}}\cdot [r_t\odot h_{t-1}, x_t])ht​^​=tanh(Wh^​⋅[rt​⊙ht−1​,xt​])

ht=(1−zt)⊙ht−1+zt⊙ht^h_t = (1-z_t)\odot h_{t-1} + z_t \odot \hat{h_t}ht​=(1−zt​)⊙ht−1​+zt​⊙ht​^​

yt=σ(Wo⋅ht)y_t = \sigma(W_o\cdot h_t)yt​=σ(Wo​⋅ht​)

反向传播

知乎有个解答很详细,这里就不写了(太长了orz)

6-6

GRU、LSTM、双向LSTM、递归神经网络、图神经网络

6-7

根据书上的图进行对比:

]

当递归神经网络退化到图6.11的结构的时候,每个hih_ihi​节点都只会收到 xix_ixi​的输入,而输出则在最后,因此跟序列到类别模式下的循环神经网络是一样的。

第七章

7-1

在小批量梯度下降中:
gt(θ)=1K∑(x,y)∈St∂L(y,f(x;θ))∂θθt=θt−1−αgtg_t(\theta) = \frac{1}{K}\sum_{(x,y)\in S_t}\frac{\partial L(y,f(x;\theta))}{\partial \theta} \\ \theta_t\ = \theta_{t-1}-\alpha g_t gt​(θ)=K1​(x,y)∈St​∑​∂θ∂L(y,f(x;θ))​θt​ =θt−1​−αgt​
令gt=1Kδg_t = \frac{1}{K}\deltagt​=K1​δ ,则:θt=θt−1−αKδ\theta_t = \theta_{t-1}-\frac{\alpha}{K}\deltaθt​=θt−1​−Kα​δ

因此我们要使得参数最优,则αK\frac{\alpha}{K}Kα​为最优的时候的常数,故学习率要和批量大小成正比。

7-2

在Adam算法中:
Mt=β1Mt−1+(1−β1)gtGt=β2Gt−1+(1−β2)⊙gtM_t = \beta_1 M_{t-1}+(1-\beta_1)g_t \\ G_t = \beta_2 G_{t-1} + (1-\beta_2)\odot g_t Mt​=β1​Mt−1​+(1−β1​)gt​Gt​=β2​Gt−1​+(1−β2​)⊙gt​
因此当β1→1\beta_1\rightarrow 1β1​→1,β2→1\beta_2 \rightarrow 1β2​→1的时候:
lim⁡β1→1Mt=Mt−1lim⁡β2→1Gt=Gt−1\lim_{\beta_1\rightarrow 1} M_t = M_{t-1} \\ \lim_{\beta_2\rightarrow 1} G_t = G_{t-1} β1​→1lim​Mt​=Mt−1​β2​→1lim​Gt​=Gt−1​
因此可以发现此时梯度消失,因此需要进行偏差修正。

7-3

  1. 小批量梯度下降:Gt=1−ϵG_t = 1-\epsilonGt​=1−ϵ,Mt=gt(θ)=1K∑(x,y)∈δt∂L(y,f(x;θ))∂θM_t = g_t(\theta)=\frac{1}{K}\sum_{(x,y)\in \delta_t}\frac{\partial L(y,f(x;\theta))}{\partial \theta}Mt​=gt​(θ)=K1​∑(x,y)∈δt​​∂θ∂L(y,f(x;θ))​
  2. AdaGrad:Gt=∑τ=1tgτ⊙gτG_t=\sum_{\tau =1}\limits^{t} g_{\tau}\odot g_{\tau}Gt​=τ=1∑t​gτ​⊙gτ​,Mt=gt(θ)M_t = g_t(\theta)Mt​=gt​(θ)
  3. RMSprop:Gt=(1−β)∑τ=1tβt−τgτ⊙gtG_t = (1-\beta)\sum_{\tau=1}\limits^t\beta^{t-\tau}g_{\tau}\odot g_tGt​=(1−β)τ=1∑t​βt−τgτ​⊙gt​,Mt=gt(θ)M_t = g_t(\theta)Mt​=gt​(θ)
  4. AdaDelta:Gt=∑τ=1tgτ⊙gτG_t=\sum_{\tau =1}\limits^{t}g_{\tau}\odot g_{\tau}Gt​=τ=1∑t​gτ​⊙gτ​,Mt=gt(θ)M_t = g_t(\theta)Mt​=gt​(θ)
  5. 动量法:Gt=1−ϵG_t = 1 - \epsilonGt​=1−ϵ,Mt=∑τ=1tρt−τgτM_t = \sum\limits^t_{\tau=1}\rho^{t-\tau}g_{\tau}Mt​=τ=1∑t​ρt−τgτ​
  6. Nesterov:Gt=1−ϵG_t = 1 - \epsilonGt​=1−ϵ,Mt=∑τ=1tρt−τgτ^(θt−1+ρ△θt−1)M_t = \sum_{\tau=1}\limits^t \rho^{t-\tau}\hat{g_{\tau}}(\theta_{t-1}+\rho \triangle\theta_{t-1})Mt​=τ=1∑t​ρt−τgτ​^​(θt−1​+ρ△θt−1​),g^\hat{g}g^​为θt−1+ρ△θt−1\theta_{t-1}+\rho \triangle\theta_{t-1}θt−1​+ρ△θt−1​偏导
  7. Adam:Gt=β2Gt−1+(1−β2)gt⊙gtG_t =\beta_2G_{t-1}+(1-\beta_2)g_t\odot g_tGt​=β2​Gt−1​+(1−β2​)gt​⊙gt​,Mt=β1Mt−1+(1−β1)gtMt = \beta_1M_{t-1}+(1-\beta_1)g_tMt=β1​Mt−1​+(1−β1​)gt​

7-4

**Note: ** 做法有问题哈,等后续改过来

根据7.41可知:var(a(l))=Ml−1⋅var(wi(l))var(ai(l−1))var(a^{(l)})=M_{l-1} \cdot var(w_i^{(l)})var(a_i^{(l-1)})var(a(l))=Ml−1​⋅var(wi(l)​)var(ai(l−1)​)

而反向传播中:a(l−1)=∑i=1Mlwi(l)a(l)a^{(l-1)} = \sum\limits^{M_{l}}_{i=1}w_i^{(l)}a^{(l)}a(l−1)=i=1∑Ml​​wi(l)​a(l)

因此需要做到计算强度不变,则需要满足:var(a(l))=var(a(l−1))var(a^{(l)})=var(a^{(l-1)})var(a(l))=var(a(l−1))

又因为:a(l)a^{(l)}a(l)和w(l)w^{(l)}w(l)都相互独立,且E(a(l−1))=∑i=1MlE(wi(l))E(ai(l))=0E(a^{(l-1)})=\sum\limits^{M_l}_{i=1}E(w_i^{(l)})E(a_i^{(l)})=0E(a(l−1))=i=1∑Ml​​E(wi(l)​)E(ai(l)​)=0

因此:var(a(l−1))=var(∑i=1Mlwi(l)ai(l))var(a^{(l-1)})=var(\sum\limits^{M_{l}}_{i=1}w_i^{(l)}a_i^{(l)})var(a(l−1))=var(i=1∑Ml​​wi(l)​ai(l)​)

即:var(a(l−1))=Mlvar(wi(l))var(ai(l))var(a^{(l-1)})=M_l var(w_i^{(l)})var(a_i^{(l)})var(a(l−1))=Ml​var(wi(l)​)var(ai(l)​)

因此需要满足:var(wi(l))=1Mlvar(w_i^{(l)})=\frac{1}{M_l}var(wi(l)​)=Ml​1​

同样地,7-44推导如下:

考虑向前传播和向后传播都不会放大或缩小,则根据7.417-4有:

var(a(l−1))+var(a(l))=Ml−1var(wi(l))var(ai(l−1))+Mlvar(wi(l))var(ai(l))var(a^{(l-1)})+var(a^{(l)})=M_{l-1}var(w_i^{(l)})var(a_i^{(l-1)})+M_lvar(w_i^{(l)})var(a_i^{(l)})var(a(l−1))+var(a(l))=Ml−1​var(wi(l)​)var(ai(l−1)​)+Ml​var(wi(l)​)var(ai(l)​)

又有:var(a(l−1))=var(a(l))var(a^{(l-1)})=var(a^{(l)})var(a(l−1))=var(a(l)),因此:(Ml−1+Ml)var(wi(l))=2(M_{l-1}+M_{l})var(w_i^{(l)})=2(Ml−1​+Ml​)var(wi(l)​)=2

因此:var(wi(l))=2Ml+Ml−1var(w_i^{(l)})=\frac{2}{M_l+M_{l-1}}var(wi(l)​)=Ml​+Ml−1​2​

7-5

当使用ReLu函数的时候,前向传播有:KaTeX parse error: Expected group after '^' at position 13: a^{(l)}=\sum^̲\limits{M_{l-1}…

根据方差公式,有:var(a(l))=Mlvar(wi(l))E[(xi(l))2]var(a^{(l)})=M_lvar(w_i^{(l)})E[(x_i^{(l)})^2]var(a(l))=Ml​var(wi(l)​)E[(xi(l)​)2]

求积分,有:E[(xi(l))2]=12Var(a(l−1))E[(x_i^{(l)})^2]=\frac{1}{2}Var(a^{(l-1)})E[(xi(l)​)2]=21​Var(a(l−1))

因此有:var(a(l))=12Ml−1var(wi(l))var(a(l−1))var(a^{(l)})=\frac{1}{2}M_{l-1}var(w_i^{(l)})var(a^{(l-1)})var(a(l))=21​Ml−1​var(wi(l)​)var(a(l−1)),即:var(wi(l))=2Ml−1var(w_i^{(l)})=\frac{2}{M_{l-1}}var(wi(l)​)=Ml−1​2​

7-6

a(l)=f(z(l))=f(Wa(l−1)+b)a^{(l)}=f(z^{(l)})=f(Wa^{(l-1)}+b)a(l)=f(z(l))=f(Wa(l−1)+b) ,第lll层的神经元净输入为z(1,l),z(2,l),⋯,z(k,l)z^{(1,l)},z^{(2,l)},\cdots,z^{(k,l)}z(1,l),z(2,l),⋯,z(k,l),则批量归一化为:
{μB=1K∑k=1Kz(k,l)=1K∑k=1Kw(k,l)a(k,l−1)+b=δB+bσB2=1K∑K=1K(z(k,l)−μB)⊙(z(k,l)−μB)=1K∑K=1K(w(k,l)a(k,l−1)−δB)⊙(w(k,l)a(k,l−1)−δB)z^(l)=z(l)−μBσB2−ϵ⊙γ+β=w(l)a(l−1)−δBσB2−ϵ⊙γ+β\begin{cases} \mu_B = \frac{1}{K}\sum_{k=1}\limits^Kz^{(k,l)} = \frac{1}{K}\sum_{k=1}\limits^Kw^{(k,l)}a^{(k,l-1)}+b = \delta_B+b \\ \sigma_B^2=\frac{1}{K}\sum_{K=1}\limits^K (z^{(k,l)}-\mu_B)\odot (z^{(k,l)}-\mu_B) = \frac{1}{K}\sum_{K=1}\limits^K (w^{(k,l)}a^{(k,l-1)}-\delta_B)\odot (w^{(k,l)}a^{(k,l-1)}-\delta_B) \\ \hat{z}^{(l)}=\frac{z^{(l)}-\mu_B}{\sqrt{\sigma_B^2}-\epsilon}\odot \gamma +\beta = \frac{w^{(l)}a^{(l-1)-\delta_B}}{\sqrt{\sigma_B^2-\epsilon}}\odot \gamma +\beta \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​μB​=K1​k=1∑K​z(k,l)=K1​k=1∑K​w(k,l)a(k,l−1)+b=δB​+bσB2​=K1​K=1∑K​(z(k,l)−μB​)⊙(z(k,l)−μB​)=K1​K=1∑K​(w(k,l)a(k,l−1)−δB​)⊙(w(k,l)a(k,l−1)−δB​)z^(l)=σB2​​−ϵz(l)−μB​​⊙γ+β=σB2​−ϵ​w(l)a(l−1)−δB​​⊙γ+β​
f(BN(Wa(l−1)+b))f(BN(Wa^{(l-1)}+b))f(BN(Wa(l−1)+b))和f(WBN(a(l−1))+b)f(WBN(a^{(l-1)})+b)f(WBN(a(l−1))+b)都是将BN层放在激活函数前,而结构差异上看一个针对上一层的输出,一个针对的是该层净输入。
{μA=1K∑k=1Ka(k,l−1)σA2=1K∑K=1K(a(k,l−1)−μA)⊙(a(k,l−1)−μA)z^(l)=a(l−1)−μAσA2−ϵ⊙γ+β\begin{cases} \mu_A = \frac{1}{K}\sum_{k=1}\limits^Ka^{(k,l-1)} \\ \sigma_A^2=\frac{1}{K}\sum_{K=1}\limits^K (a^{(k,l-1)}-\mu_A)\odot (a^{(k,l-1)}-\mu_A) \\ \hat{z}^{(l)}=\frac{a^{(l-1)-\mu_A}}{\sqrt{\sigma_A^2-\epsilon}}\odot \gamma +\beta \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​μA​=K1​k=1∑K​a(k,l−1)σA2​=K1​K=1∑K​(a(k,l−1)−μA​)⊙(a(k,l−1)−μA​)z^(l)=σA2​−ϵ​a(l−1)−μA​​⊙γ+β​

BN(Wa(l−1)+b)=z^(l)WBN(a(l−1))+b=a^(l−1)=w(l)a(l−1)−w(l)μAσA2−ϵ⊙γ+β+b\\ BN(Wa^{(l-1)+b})=\hat{z}^{(l)} \\ WBN(a^{(l-1)})+b = \hat{a}^{(l-1)}=\frac{w^{(l)}a^{(l-1)}-w^{(l)}\mu_A}{\sqrt{\sigma_A^2-\epsilon}}\odot \gamma + \beta + b BN(Wa(l−1)+b)=z^(l)WBN(a(l−1))+b=a^(l−1)=σA2​−ϵ​w(l)a(l−1)−w(l)μA​​⊙γ+β+b
由此可见,我们还能发现针对输出时带入了上层的偏置值,会影响BN层的归一化结果。此外,前者比后者更加能充分利用参数的内容,实现更平滑的效果。

7-7

BN层中的缩放与平移,可以很好地保证模型的容纳能力,原始分布能够有效还原。同时,能有效适应不同的激活函数,通过γ\gammaγ和β\betaβ来自动调整输入分布,防止死亡ReLu问题。

7-8

批量归一化是针对中间层的每个神经元进行归一化操作,而且净输入的分布是静态的。而循环神经网络神经元净输入的分布是动态的,无法使用批量归一化操作。

7-9

并不等价,论文中有说明。

7-10

对循环神经网络直接应用丢弃法的时候,会导致每个时刻的隐状态丢失,损害网络在时间维度的记忆能力。

7-11

l(y~,f(x;θ))=−y~log⁡(f(x;θ))l(\tilde{y},f(x;\theta))=-\tilde{y}\log(f(x;\theta))l(y~​,f(x;θ))=−y~​log(f(x;θ))

《神经网络与深度学习》习题解答(至第七章)相关推荐

  1. 神经网络与深度学习 作业7:第五章课后题(1×1 卷积核 | CNN BP)

    目录 习题5-2 证明宽卷积具有交换性,即公式(5.13). 习题5-3 分析卷积神经网络中用1x1的卷积核的作用. 习题5-4 对于一个输入为100x100x256的特征映射组,使用3x3的卷积核, ...

  2. 火爆网络的《神经网络与深度学习》,有人把它翻译成了中文版!

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 今天给大家介绍一本非常好的深度学习入门书籍,就是<Neural Network and ...

  3. (一,1NN-QI)神经网络与深度学习——吴恩达深度学习配套笔记

    从神经网络基础到量化投资应用 疫情当前,国难当头,当灾难来临的时候才深刻的感觉到了自己的弱小,对国家,对亲人,是这么的无能为力,希望做点什么,可是却什么也做不了.不过庆幸的是我们还年轻,现在也不是自怜 ...

  4. 《神经网络与深度学习》(Michael Nielsen)Neural Networks and Deep Learning习题解答汇总

    <神经网络与深度学习>(Michael Nielsen)1.6节完整程序解析 第二章改进神经网络的学习方法 <神经网络与深度学习>Neural Networks and Dee ...

  5. 神经网络与深度学习-课后习题

    <神经网络与深度学习-邱锡鹏>习题解答 https://github.com/nndl/solutions 面试锦囊之LR 面试篇--线性回归怎么问? 面试篇--SVM怎么问 面试篇--决 ...

  6. 人工智能、神经网络、深度学习、机器学习傻傻分不清?来看看AI奠基人的解答!...

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 数智物语(公众号ID:decision_engine)出品 策划.编写:卷毛雅各布 数智物语本期推荐书 ...

  7. 人工智能、神经网络、深度学习、机器学习傻傻分不清?来看看AI奠基人的解答!

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 数智物语(公众号ID:decision_engine)出品 策划.编写:卷毛雅各布 数智物语本期推荐书 ...

  8. 神经网络与深度学习复习大纲

    第一章(问答题) 1.神经网络是什么?深度学习是什么? 神经网络:一种以(人工))神经元为基本单元的模型 深度学习:一类机器学习问题,主要解决贡献度分配问题 2.常用的深度学习框架是什么? Paddl ...

  9. 0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  10. 开放下载!复旦大学邱锡鹏教授发布教科书《神经网络与深度学习》

    点击"小詹学Python","星标"或"置顶" 关键时刻,第一时间送达 本文转载自"机器之心" 从2016到2019,根 ...

最新文章

  1. 从源码分析DEARGUI之add_slider_float-4和add_slider_int-4
  2. HDU 2001 计算两点间的距离
  3. 得到进程id_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?
  4. 如何才能成为一个高效工作的软件工程师?
  5. (转)金融从业者将被人工智能取代?
  6. linux shell 字体颜色样板,BASH shell下设置字体及背景颜色
  7. axis2弱密码漏洞复现
  8. Python中的变量作用域,LEGB规则和闭包原理
  9. p5140大吉大利 晚上吃鸡
  10. java程序假死_分析一个常见的java多线程通信问题(假死现象)
  11. 全屏css,CSS之全屏背景图
  12. Bootstrap(三) 网格系统
  13. 学习teardrop攻击并伪造一个ip包
  14. 单片机C语言学习(菜鸟入门)
  15. AUTOCAD二次开发-----删除一个图层里面的所有对象
  16. oracle中exist什么意思,oracle中not exists 是什么意思 , oracle数据库中exists的作用
  17. 云盘里资料被和谐了,怎么办?
  18. GTOP@全球CEO发展大会 燃焕全球科创力场
  19. 磊科wifi linux驱动下载,磊科随身WiFi驱动
  20. 微信小程序项目源码ssm校园跑腿+后台管理系统|前后分离VUE含论文+PPT+源码

热门文章

  1. 揭秘浏览器远程调试技术
  2. Windows平台利用完成端口模型创建高性能网络服务器
  3. java home not set_hadoop安装及出现JAVA HOME is not set和No such file or directo
  4. AD域生产代码使用说明
  5. 互联网名词辨析:“顶”与“踩”
  6. 在ubuntu下安装minigui并搭建开发平台
  7. Unity学习笔记--怎么打断当前动画并且重新播放当前动画(超简单一步实现版)
  8. android中的数据库操作
  9. 打印机部件到了服务期限的解决办法-复位法
  10. 程序人生:必须了解的程序员 8个职业发展方向