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 ) = { y i , y i > 0 , a i y i , y i ≤ 0. f ( y i ) = { y i , y i > 0 , a i y i , y i ≤ 0.
其中a i a i 是作为网络的参数进行训练的.
等价于
f ( y i ) = max ( 0 , y i ) + a i min ( 0 , y i ) . f ( y i ) = max ( 0 , y i ) + a i min ( 0 , y i ) .
特别的, 可以一层的节点都用同一个a a .
Kaiming 初始化
Forward case
y l = W l x l + b l , y l = W l x l + b l ,
在卷积层中时, x l x l 是k × k × c k × k × c 的展开, 故x l ∈ R k 2 c x l ∈ R k 2 c , 而y l ∈ R d y l ∈ R d , W l ∈ R d × k 2 c W l ∈ R d × k 2 c (每一行都可以视作一个kernel), 并记n = k 2 c n = k 2 c .
x l = f ( y l − 1 ) , x l = f ( y l − 1 ) ,
则
c l = d l − 1 . c l = d l − 1 .
假设w l w l 与x l x l (注意没粗体, 表示w l , x l w l , x l 中的某个元素)相互独立, 且w l w l 采样自一个均值为0的对称分布之中.
则
V a r [ y l ] = n l V a r [ w l x l ] = n l V a r [ w l ] E [ x 2 l ] , V a r [ y l ] = n l V a r [ w l x l ] = n l V a r [ w l ] E [ x l 2 ] ,
除非E [ x l ] = 0 E [ x l ] = 0 , V a r [ y l ] = n l V a r [ w l ] V a r [ x l ] V a r [ y l ] = n l V a r [ w l ] V a r [ x l ] , 但对于ReLu, 或者 PReLU来说这个性质是不成立的.
如果我们令b l − 1 = 0 b l − 1 = 0 , 易证
E [ x 2 l ] = 1 2 V a r [ y l − 1 ] , E [ x l 2 ] = 1 2 V a r [ y l − 1 ] ,
其中f f 是ReLU, 若f f 是PReLU,
E [ x 2 l ] = 1 + a 2 2 V a r [ y l − 1 ] . E [ x l 2 ] = 1 + a 2 2 V a r [ y l − 1 ] .
下面用ReLU分析, PReLU是类似的.
故
V a r [ y l ] = 1 2 n l a r [ w l ] V a r [ y l − 1 ] , V a r [ y l ] = 1 2 n l a r [ w l ] V a r [ y l − 1 ] ,
自然我们希望
V a r [ y i ] = V a r [ y j ] ⇒ 1 2 n l V a r [ w l ] = 1 , ∀ l . V a r [ y i ] = V a r [ y j ] ⇒ 1 2 n l V a r [ w l ] = 1 , ∀ l .
Backward case
Δ x l = ^ W l Δ y l , (13) (13) Δ x l = W ^ l Δ y l ,
Δ x l Δ x l 表示损失函数观念与x l x l 的导数, 这里的y l y l 与之前提到的y l y l 有出入, 这里需要用到卷积的梯度回传, 三言两语讲不清, ^ W l W ^ l 是W l W l 的一个重排.
因为x l = f ( y l − 1 ) x l = f ( y l − 1 ) , 所以
Δ y l = f ′ ( y l ) Δ x l + 1 . Δ y l = f ′ ( y l ) Δ x l + 1 .
假设f ′ ( y l ) f ′ ( y l ) 与Δ x l + 1 Δ x l + 1 相互独立, 所以
E [ Δ y l ] = E [ f ′ ( y l ) ] E [ Δ x l + 1 ] = 0 , E [ Δ y l ] = E [ f ′ ( y l ) ] E [ Δ x l + 1 ] = 0 ,
若f f 为ReLU:
E [ ( Δ y l ) 2 ] = V a r [ Δ y l ] = 1 2 V a r [ Δ x l + 1 ] . E [ ( Δ y l ) 2 ] = V a r [ Δ y l ] = 1 2 V a r [ Δ x l + 1 ] .
若f f 为PReLU:
E [ ( Δ y l ) 2 ] = V a r [ Δ y l ] = 1 + a 2 2 V a r [ Δ x l + 1 ] . E [ ( Δ y l ) 2 ] = V a r [ Δ y l ] = 1 + a 2 2 V a r [ Δ x l + 1 ] .
下面以f f 为ReLU为例, PReLU类似
V a r [ Δ x l ] = ^ n l V a r [ w l ] V a r [ Δ y l ] = 1 2 ^ n l V a r [ w l ] V a r [ Δ x l + 1 ] , V a r [ Δ x l ] = n ^ l V a r [ w l ] V a r [ Δ y l ] = 1 2 n ^ l V a r [ w l ] V a r [ Δ x l + 1 ] ,
这里^ n l = k 2 d n ^ l = k 2 d 为y l y l 的长度.
和前向的一样, 我们希望V a r [ Δ x l ] V a r [ Δ x l ] 一样, 需要
1 2 ^ n l V a r [ w l ] = 1 , ∀ l . 1 2 n ^ l V a r [ w l ] = 1 , ∀ l .
是实际中,我们前向后向可以任选一个(因为误差不会累积).
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2019-04-23 Robust PCA via Outlier Pursuit