2.6 其他与构建深度网络相关的函数

1.泄露ReLU层:leakyReluLayer函数

功能:该函数创建一个泄露ReLU(Leaky ReLU)层。其中,scale通常是一个非常小的值。Leaky ReLU设计的目的是解决梯度在传播过程中可能带来的ReLU失效问题,即ReLU函数因为超过阈值而几乎永久关闭,导致无法更新权重参数。理论上讲,Leaky ReLU有ReLU的所有优点,并且不会出现ReLU失效问题。

用法:

语法①

layer = leakyReluLayer。

输出:layer为Leaky ReLU层。

语法②

layer = leakyReluLayer(scale)。

输入:参数scale为一个数值标量,用以与负输入相乘。

输出:layer为Leaky ReLU层。

语法③

layer = leakyReluLayer(scale,'Name',Name)。

输入:参数scale为一个数值标量,用以与负输入相乘;Name为该层的名称。

输出:layer为Leaky ReLU层。

2.限幅ReLU层:clippedReluLayer函数

功能:该函数创建一个限幅ReLU(Clipped ReLU)层。Clipped ReLU函数对激活的最大值进行了限制。

用法:

语法①

layer = clippedReluLayer(ceiling)。

输入:ceiling为裁剪上限。

输出:layer为限幅ReLU层。

语法②

layer = clippedReluLayer(ceiling,'Name',Name)。

输入:ceiling为裁剪上限,Name为该层的名称。

输出:layer为限幅ReLU层。

3.反最大池化层:maxUnpooling2 dLayer函数

功能:该函数创建一个反最大池化层。要进行反最大池化操作,需要在池化过程中记录最大激活值的坐标位置,然后在反池化时,把池化过程中最大激活值所在位置坐标值激活,其他的值设置为0。这种操作由于丢失了其他激活值的大小和位置信息,只是一种近似计算。

用法:

语法①

layer = maxUnpooling2 dLayer。

输出:layer为最大反池化层。

语法②

layer = maxUnpooling2dLayer('Name',Name)。

输入:Name为该层的名称。

输出:layer为最大反池化层。

4.跨通道归一化层:CrossChannelNormalizationLayer函数

功能:该函数创建一个通道级的归一化层。

用法:

语法①

layer = crossChannelNormalizationLayer(windowChannelSize)。

输入:windowChannelSize指定通道窗口的大小,控制用于归一化每个元素的通道数。

输出:layer为CrossChannelNormalization层。

语法②

layer = crossChannelNormalizationLayer(windowChannelSize,Name,Value)。

可以通过指定“名称-取值”对(Name和Value)来配置特定属性(将每种属性名称括在单引号中),具体含义见表2-6。

表2-6 crossChannelNormalizationLayer函数参数含义

5.转置的卷积层:transposedConv2 dLayer函数

功能:该函数创建一个转置的二维卷积层。注意该层是卷积的转置,不执行反卷积操作。

用法:

语法①

layer = transposedConv2dLayer(filterSize,numFilters)。

输入:filterSize为滤波器大小,格式为具有两个整数的向量[h w],其中h是高,w是宽;numFilters为滤波器数。

输出:layer为转置的二维卷积层。

语法②

layer = transposedConv2dLayer(filterSize,numFilters,Name,Value)。

可以通过指定“名称-取值”对(Name和Value)来配置特定属性(将每种属性名称括在单引号中),具体含义见表2-7。

表2-7 transposedConv2dLayer函数参数含义