[译]TF-api(2) tf.nn.lrn

tf.nn.lrn

Args:

input: A Tensor. Must be one of the following types: float32, half. 4-D.

input是一个4D的tensor,类型必须为float。

depth_radius: An optional int. Defaults to 5.0-D. Half-width of the 1-D normalization window.

一个类型为int的标量,表示囊括的kernel的范围。详情见下面解释

bias: An optional float. Defaults to 1.An offset (usually positive to avoid dividing by 0).

偏置,没什么好解释的

alpha: An optional float. Defaults to 1.A scale factor, usually positive.

乘积系数,是在计算完囊括范围内的kernel的激活值之和之后再对其进行乘积

beta: An optional float. Defaults to 0.5. An exponent.

指数系数。

name: A name for the operation (optional).

Returns: A Tensor. Has the same type as input.


LRN是normalization的一种,normalizaiton的目的是抑制,抑制神经元的输出。而LRN的设计借鉴了神经生物学中的一个概念,叫做“侧抑制”。

侧抑制: 相近的神经元彼此之间发生的抑制作用,即在某个神经元受到刺激而产生兴奋时,再刺激相近的神经元,则后者所发生的兴奋对前者产生的抑制作用。也就是说,侧抑制是指相邻的感受器之间能够互相抑制的现象。

LRN对局部神经元的活动创建竞争机制,使得响应比较大的值相对更大,比较小的值就会更小。提高了模型的泛化能力。下面展示公式:

bix,y=aix,y/(k+αj=max(0,in/2)min(N1,i+n/2)(aix,y)2)β

上述公式中 N 表示kernel的数量,i 表示第 i 个kernel,而aix,y 表示第 i 个kernel卷积出来后在图片(x,y) 位置上的值。 bix,y 表示经过lrn后的值。 k,n,α,β 表示超参数,对应api里, bias=k,depth_radius=n,alpha=α,beta=β

从公式和历史由来可以看出,LRN是对channel做计算的。

还有一个tf.nn.local\_response\_normalization(),这个api会指向tf.nn.lrn()


举例:
这个就没什么好举例子的。


争议:
2015年 Very Deep Convolutional Networks for Large-Scale Image Recognition.这篇文章提到LRN基本没什么用,反而还增加了计算时间。

这里写图片描述

你可能感兴趣的:(Tensorflow)