Class

MPSCNNLocalContrastNormalization

A local-contrast normalization kernel.

Declaration

@interface MPSCNNLocalContrastNormalization : MPSCNNKernel

Overview

The local contrast normalization kernel is quite similar to the spatial normalization kernel, described in the MPSCNNSpatialNormalization class, in that it applies the kernel over local regions which extend spatially, but are in separate feature channels (i.e., they have the shape 1 x kernel width x kernel height). However, instead of dividing by the local "energy" of the feature, the denominator uses the local variance of the feature - effectively the mean value of the feature is subtracted from the signal. For each feature channel, the function computes the variance VAR(i,j) and mean M(i,j) of X(i,j) inside each rectangle around the spatial point (i,j). Then the result is computed for each element of X as follows:

Y(i,j) = pm + ps * ( X(i,j) - p0 * M(i,j)) / (delta + alpha * VAR(i,j))^beta

Where kw and kh are the values of the kernelWidth and the kernelHeight properties, respectively, and the values of the pm, ps, and p0 properties can be used to offset and scale the result in various ways. For example setting pm=0, ps=1, p0=1, delta=0, alpha=1.0 and beta=0.5 scales input data so that the result has unit variance and zero mean, provided that input variance is positive.

It is your responsibility to ensure that the combination of the values of the delta and alpha properties does not result in a situation where the denominator becomes zero - in such situations the resulting pixel-value is undefined. A good way to guard against tiny variances is to regulate the expression with a small delta value, for example delta=1/1024.

Topics

Instance Properties

alpha

The "alpha" variable of the kernel function.

beta

The "beta" variable of the kernel function.

delta

The "delta" variable of the kernel function.

p0

The "p0" variable of the kernel function.

pm

The "pm" variable of the kernel function.

ps

The "ps" variable of the kernel function.

Instance Methods

- initWithDevice:kernelWidth:kernelHeight:

Initializes a local contrast normalization kernel.

Relationships

Inherits From

See Also

Normalization Layers

MPSCNNCrossChannelNormalization

A normalization kernel applied across feature channels.

MPSCNNCrossChannelNormalizationGradient

A gradient normalization kernel applied across feature channels.

MPSCNNLocalContrastNormalizationGradient

A gradient local-contrast normalization kernel.

MPSCNNSpatialNormalization

A spatial normalization kernel.

MPSCNNSpatialNormalizationGradient

A gradient spatial normalization kernel.

MPSCNNBatchNormalization

A batch normalization kernel.

MPSCNNBatchNormalizationGradient

A gradient batch normalization kernel.

MPSCNNBatchNormalizationState

An object that stores data required to execute batch normalization.

MPSCNNNormalizationMeanAndVarianceState

An object that stores mean and variance terms used to execute batch normalization.

MPSCNNBatchNormalizationStatistics

An object that stores statistics required to execute batch normalization.

MPSCNNBatchNormalizationStatisticsGradient

An object that stores the gradient of the loss function with respect to the batch statistics and batch normalization weights.

MPSCNNInstanceNormalization

An instance normalization kernel.

MPSCNNInstanceNormalizationGradient

A gradient instance normalization kernel.

MPSCNNInstanceNormalizationGradientState

An object that stores information required to execute a gradient pass for instance normalization.

MPSCNNNormalizationGammaAndBetaState

An object that stores gamma and beta terms used to apply a scale and bias in instance- or batch-normalization operations.