More detailed documentation on Deep Learning Toolbox normalization layers?

7 ビュー (過去 30 日間)
Matt J
Matt J 2022 年 5 月 3 日
コメント済み: Matt J 2022 年 5 月 5 日
Below are excerpts from the Deep Learning Toolbox documentation describing several neural network layer types that perform different kinds of input data normalization. For me, the decriptions are a bit too terse and textual to understand clearly the differences between the normalization operations that these different layers apply (both at training time and at test time). Is there any additional documentation to be found somewhere, with a more mathematical description, and perhaps illustrative figures?
imageInputLayer An image input layer inputs 2-D images to a network and applies data normalization.
batchNormalizationLayer A batch normalization layer normalizes a mini-batch of data across all observations for each channel independently. To speed up training of the convolutional neural network and reduce the sensitivity to network initialization, use batch normalization layers between convolutional layers and nonlinearities, such as ReLU layers.
groupNormalizationLayer A group normalization layer normalizes a mini-batch of data across grouped subsets of channels for each observation independently. To speed up training of the convolutional neural network and reduce the sensitivity to network initialization, use group normalization layers between convolutional layers and nonlinearities, such as ReLU layers.
instanceNormalizationLayer An instance normalization layer normalizes a mini-batch of data across each channel for each observation independently. To improve the convergence of training the convolutional neural network and reduce the sensitivity to network hyperparameters, use instance normalization layers between convolutional layers and nonlinearities, such as ReLU layers.
layerNormalizationLayer A layer normalization layer normalizes a mini-batch of data across all channels for each observation independently. To speed up training of recurrent and multilayer perceptron neural networks and reduce the sensitivity to network initialization, use layer normalization layers after the learnable layers, such as LSTM and fully connected layers.

採用された回答

Tish Sheridan
Tish Sheridan 2022 年 5 月 4 日
Hi! Did you find the Algorithms sections at the end? (on each of those layer pages except the input layer, eg https://www.mathworks.com/help/deeplearning/ref/nnet.cnn.layer.batchnormalizationlayer.html#d123e18507)
Any help?
  3 件のコメント
Ieuan Evans
Ieuan Evans 2022 年 5 月 5 日
For simplicity, here refer the elements of the input data X where X is an N-D array. The dimensionality of the input depends on the type of data (e.g. 2-D images, 3-D images, sequences, etc.). For example, in these algorithm descriptions, can denote a single channel of a pixel (e.g. the R value of a pixel an RGB image).
Here, and in most deep learning data contexts, the term "time" refers to temporal dimension of sequence data. For example, if the data is an numChannels-by-numObservations-by-numTimeSteps array representing a batch of sequences, then the time dimension is the third dimension.
For example, if you have video data represented as a H-by-W-by-C-by-numObservations-by-numTimeSteps array, you can normalize over the spatial dimensions (1 and 2), the channel dimension (3), and the time dimension (5) independently of the observation dimension (4).
Group, instance, and layer normalization layers normalize mini-batches independently and calculate a fresh μ and for each mini-batch. They behave the same in training and inference time. Batch normalization layers behave differently. They use the calculated mini-batch statistics at training time, but use the aggregated μ and calculated for the training data for inference.
Figure 2 of this paper has some handy diagrams of different types of normalization layers:
Matt J
Matt J 2022 年 5 月 5 日
Excellent, thanks!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImage Data Workflows についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by