首页 技术 正文
技术 2022年11月15日
0 收藏 681 点赞 3,112 浏览 2219 个字

目录

He K, Zhang X, Ren S, et al. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification[C]. international conference on computer vision, 2015: 1026-1034.

@article{he2015delving,

title={Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification},

author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},

pages={1026–1034},

year={2015}}

本文介绍了一种PReLU的激活函数和Kaiming的参数初始化方法.

主要内容

PReLU

\[f(y_i) =
\left \{ \begin{array}{ll}
y_i, & y_i >0, \\
a_i y_i, & y_i \le 0.
\end{array} \right.
\]

其中\(a_i\)是作为网络的参数进行训练的.

等价于

\[f(y_i)=\max(0, y_i) + a_i \min (0,y_i).
\]

特别的, 可以一层的节点都用同一个\(a\).

Kaiming 初始化

Forward case

\[\mathbf{y}_l=W_l\mathbf{x}_l+\mathbf{b}_l,
\]

在卷积层中时, \(\mathbf{x}_l\)是\(k\times k \times c\)的展开, 故\(\mathrm{x}_l\in \mathbb{R}^{k^2c}\), 而\(\mathbf{y}_l \in \mathbb{R}^{d}\), \(W_l \in \mathbb{R^{d \times k^2c}}\)(每一行都可以视作一个kernel), 并记\(n=k^2c\).

\[\mathbf{x}_l=f(\mathbf{y}_{l-1}),
\]

\[c_l = d_{l-1}.
\]

假设\(w_l\)与\(x_l\)(注意没粗体, 表示\(\mathbf{w}_l, \mathbf{x}_l\)中的某个元素)相互独立, 且\(w_l\)采样自一个均值为0的对称分布之中.

\[Var[y_l] = n_l Var [w_lx_l] = n_lVar[w_l]E[x_l^2],
\]

除非\(E[x_l]=0\), \(Var[y_l] = n_lVar[w_l]Var[x_l]\), 但对于ReLu, 或者 PReLU来说这个性质是不成立的.

如果我们令\(b_{l-1}=0\), 易证

\[E[x_l^2] = \frac{1}{2} Var[y_{l-1}],
\]

其中\(f\)是ReLU, 若\(f\)是PReLU,

\[E[x_l^2] = \frac{1+a^2}{2} Var[y_{l-1}].
\]

下面用ReLU分析, PReLU是类似的.

\[Var[y_l] = \frac{1}{2} n_l ar[w_l]Var[y_{l-1}],
\]

自然我们希望

\[Var[y_i]=Var[y_j] \Rightarrow \frac{1}{2}n_l Var[w_l]=1, \forall l.
\]

Backward case

\[\tag{13}
\Delta \mathbf{x}_l = \hat{W}_l \Delta \mathbf{y}_l,
\]

\(\Delta \mathbf{x}_l\)表示损失函数观念与\(\mathbf{x}_l\)的导数, 这里的\(\mathbf{y}_l\)与之前提到的\(\mathbf{y}_l\)有出入, 这里需要用到卷积的梯度回传, 三言两语讲不清, \(\hat{W}_l\)是\(W_l\)的一个重排.

因为\(\mathbf{x}_l=f(\mathbf{y}_{l-1})\), 所以

\[\Delta y_l = f'(y_l) \Delta x_{l+1}.
\]

假设\(f'(y_l)\)与\(\Delta x_{l+1}\)相互独立, 所以

\[E[\Delta y_l]=E[f'(y_l)] E[\Delta x_{l+1}] = 0,
\]

若\(f\)为ReLU:

\[E[(\Delta y_l)^2] = Var[\Delta y_l] = \frac{1}{2}Var[\Delta x_{l+1}].
\]

若\(f\)为PReLU:

\[E[(\Delta y_l)^2] = Var[\Delta y_l] = \frac{1+a^2}{2}Var[\Delta x_{l+1}].
\]

下面以\(f\)为ReLU为例, PReLU类似

\[Var[\Delta x_l] = \hat{n}_l Var[w_l] Var[\Delta y_l] = \frac{1}{2} \hat{n}_l Var[w_l] Var[\Delta x_{l+1}],
\]

这里\(\hat{n}_l=k^2d\)为\(\mathbf{y}_l\)的长度.

和前向的一样, 我们希望\(Var[\Delta x_l]\)一样, 需要

\[\frac{1}{2}\hat{n}_l Var[w_l]=1, \forall l.
\]

是实际中,我们前向后向可以任选一个(因为误差不会累积).

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731