Group Normalization (Paper Explained)

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024
  • The dirty little secret of Batch Normalization is its intrinsic dependence on the training batch size. Group Normalization attempts to achieve the benefits of normalization without batch statistics and, most importantly, without sacrificing performance compared to Batch Normalization.
    arxiv.org/abs/...
    Abstract:
    Batch Normalization (BN) is a milestone technique in the development of deep learning, enabling various networks to train. However, normalizing along the batch dimension introduces problems --- BN's error increases rapidly when the batch size becomes smaller, caused by inaccurate batch statistics estimation. This limits BN's usage for training larger models and transferring features to computer vision tasks including detection, segmentation, and video, which require small batches constrained by memory consumption. In this paper, we present Group Normalization (GN) as a simple alternative to BN. GN divides the channels into groups and computes within each group the mean and variance for normalization. GN's computation is independent of batch sizes, and its accuracy is stable in a wide range of batch sizes. On ResNet-50 trained in ImageNet, GN has 10.6% lower error than its BN counterpart when using a batch size of 2; when using typical batch sizes, GN is comparably good with BN and outperforms other normalization variants. Moreover, GN can be naturally transferred from pre-training to fine-tuning. GN can outperform its BN-based counterparts for object detection and segmentation in COCO, and for video classification in Kinetics, showing that GN can effectively replace the powerful BN in a variety of tasks. GN can be easily implemented by a few lines of code in modern libraries.
    Authors: Yuxin Wu, Kaiming He
    Links:
    RUclips: / yannickilcher
    Twitter: / ykilcher
    BitChute: www.bitchute.c...
    Minds: www.minds.com/...

Комментарии • 65

  • @hillosand
    @hillosand 3 года назад +27

    Thanks for the video!
    Note: normalizing *isn't* making the data more Gaussian, it's just transforming it to have mean of 0 and SD of 1. Gaussian data is often normalized and represented in this way too, but the normalization doesn't make your data any more Gaussian. Normalization does not change the inherent distributional shape of the data, just the mean and SD. For example, if your data was right-tailed in one dimension, it would remain right-tailed (and non-gaussian looking), it would just have a mean and SD of 0 and 1, respectively.

    • @yes-vy6bn
      @yes-vy6bn Год назад +3

      yeah it's really called standardization which comes from the equation to convert a normal distribution to a standard normal distribution

  • @bluel1ng
    @bluel1ng 4 года назад +54

    Nice explanation of BN at the beginning! Glad you kept it simple and did not use mythical "internal covariate shift" terminology. ;-)

    • @Тима-щ2ю
      @Тима-щ2ю 5 месяцев назад +1

      it is so true about mythical "internal covariate shift" terminology))

  • @mkamp
    @mkamp 4 года назад +9

    Thanks for taking the time to walk us through this so slowly. Much appreciated.

  • @rbain16
    @rbain16 4 года назад +5

    Thank gosh you mentioned the other way of thinking about batch norm @ 13:00. I thought I'd misunderstood batch norm the whole time. Like always, top notch content :)

  • @bimds1661
    @bimds1661 3 года назад +2

    The visualization/explanation of batch norm was really helpful to understand how it works in a CNN! Thanks :)

  • @IBMua
    @IBMua 4 года назад

    Definitely one of the best NN explanation videos I've seen.

  • @vandanaschannel4000
    @vandanaschannel4000 3 года назад +1

    Thanks man. Perfect illustration to understand the difference between batch norm and layer norm.

  • @johnkilbride3436
    @johnkilbride3436 4 года назад +7

    Well, I know what I’m adding to my model later. Thank you for the clear explanation.

  • @MiroslawHorbal
    @MiroslawHorbal 4 года назад +1

    Thanks for the videos. You do a great job of going over the details of papers and summarizing the key points.

  • @fahdciwan8709
    @fahdciwan8709 4 года назад +1

    Thanks a lot Yannic!! keep the videos coming

  • @grayleafmorgo
    @grayleafmorgo 2 года назад

    good review Yannic it helps me a lot to faster understanding the papers

  • @carlosnacher3593
    @carlosnacher3593 Год назад

    Thank you so much! This explanation is literally what I needed 🙏🏽🤝🏽

  • @reginaphalange2563
    @reginaphalange2563 4 года назад +4

    "I usually don't believe the experiments that you see in single paper." LOL

  • @erictian8075
    @erictian8075 4 года назад +2

    Great video! Thanks! "But did you really do the experiment?"

  • @Konstantin-qk6hv
    @Konstantin-qk6hv 2 года назад

    Great explanation. Love your videos!

  • @makgaiduk
    @makgaiduk 10 месяцев назад

    How does GroupNorm compare with the modern version of BatchNorm with running momentums? Sounds like momentums should fix the problem of small batch sizes on their own

  • @naru909
    @naru909 3 года назад

    This is gold. Thank you!

  • @dermitdembrot3091
    @dermitdembrot3091 4 года назад +4

    I usually even go with batch size of 1 when processing videos 😉
    (with my brain)

  • @bright1402
    @bright1402 4 года назад +1

    Great explanation! Thank you~

  • @DerUltraGamerr
    @DerUltraGamerr 4 года назад +2

    Speaking about normalization, I was wondering about the intuition of LayerNorm in Transformer models. Usually it is applied after the concatenation and projection of the multiheaded self-attention output but wouldn't it make sense to apply it to each head separately to get more fine-grained normalization statistics?

    • @YannicKilcher
      @YannicKilcher  4 года назад

      There's always a tradeoff. what you're suggesting would also introduce more variance

  • @dimitrisspiridonidis3284
    @dimitrisspiridonidis3284 2 года назад

    i love your paper reviews

  • @eelcohoogendoorn8044
    @eelcohoogendoorn8044 4 года назад +2

    What I dont quite get here, looking at the paper and the pytorch implementation, is that the batch axis remains unused. As far as making the point that you can get enough samples to compute meaningfull statistics without aggregating over the batch at all, its an interesting experiment. But it does show a tradeoff. If you have a batch thats bigger than 1, wouldn't you at least want to have the option to compute your statistics over the batch as well? Seem intuitively like that would bring you closer to the optimal big-batch-statistics behavior. Am I missing something here?

    • @YannicKilcher
      @YannicKilcher  4 года назад

      You could consider that. but there are other factors, like with batch norm, you have to track moving averages for test time, and also if you use distributed training, you run into synchronization problems.

  • @indraneilpaul1309
    @indraneilpaul1309 3 года назад

    It seems that the method is motivated by the fact that their might be a few correlated or similar channels but there is no effort to figure out which channels should be grouped together before normalizing them together. I'm surprised that this effect has been replicated across multiple efforts as you mention.

  • @AlterMachKeinAuge
    @AlterMachKeinAuge 10 месяцев назад

    Awesome content. Thanks!

  • @JackofSome
    @JackofSome 4 года назад +1

    7 minutes in and I'm thinking "is this paper about aggregating statistics around normalization and then using those for each batch". Let's see if I was correct.
    Edit 1: doesn't seem like it
    Edit 2: neh, I'm wrong
    Edit 3: I like my idea better

    • @YannicKilcher
      @YannicKilcher  4 года назад

      Wouldn't that be batch norm that's always in eval mode?

  • @anynamecanbeuse
    @anynamecanbeuse 4 года назад +1

    I don't understand clearly. It seems Group norm just group some sequenced channels together, then how can you say they are just the same type of features?

    • @YannicKilcher
      @YannicKilcher  4 года назад +3

      The network will make them related by you imposing it.

  • @saeidshamsaliei2536
    @saeidshamsaliei2536 3 года назад

    Thanks a lot Yannic

  • @proreduction
    @proreduction 3 года назад

    To be sure I am understanding everything correctly: If you are training a fully connected NN (MLP) with only 1 channel, then Layer Norm = Instance Norm = Group Norm, correct?

  • @rahuldeora5815
    @rahuldeora5815 4 года назад +2

    Nice one! Enjoyed it. Can you do Stand-Alone Self-Attention in Vision Models, it has huge potential impact ?

    • @seankernitsman6055
      @seankernitsman6055 4 года назад

      +1 for the self-attention paper by J. Cheng, L. Dong and M. Lapata. Thanks for the video(:

  • @nachiketa9245
    @nachiketa9245 2 года назад

    Amazing explanation.

  • @CppExpedition
    @CppExpedition 3 года назад

    As always, great place to start reading! 🙃

  • @Chr0nalis
    @Chr0nalis 4 года назад

    Hmm yeah but what about non-conv networks?. Doesn't really make sense to group features from a specific layer for non-structured data imo.

  • @moonryu2806
    @moonryu2806 4 года назад +1

    15:13 you said you calculate the mean of 3 channel but the picture looks like have 6 different channel. is picture does not represent the 3 channel?

    • @YannicKilcher
      @YannicKilcher  4 года назад

      In Layer norm, all 6 channels are averaged, in group norm just the 3

  • @Erosis
    @Erosis 4 года назад

    I'm not convinced. I think they're going to have to include more of those groupnorm "experiments" :) 24:06

  • @ekstrapolatoraproksymujacy412
    @ekstrapolatoraproksymujacy412 4 года назад +1

    isn't this simplified version of normalization used in AlexNet from 2012?

    • @YannicKilcher
      @YannicKilcher  4 года назад

      maybe. all these things look kinda similar, but if an element is repeated often, the precise implementation matters

  • @julian390
    @julian390 4 года назад +1

    Shouldn't Batchnorm allow us to drop the bias term? It seems reasonable in my head but I couldn't find anything on it. Am I missing something?

    • @YannicKilcher
      @YannicKilcher  4 года назад +3

      It allows you to drop the bias term of the convolutional/dense layers, yes

    • @tropopyte6473
      @tropopyte6473 4 года назад +5

      ​@@YannicKilcher Depends if you apply BN pre or post activation, doesn't it? Yes, it seems to be common practice to use BN pre activation, where you can drop the bias, but in my head it just makes much more sense to apply BN post activation. Especially if the argument is "i want unit gaussian like inputs to my layer". Using ReLU after BN will cut off half of my zero centered gaussian distribution, causing it to be neither zero centered, nor have a standard deviation of one, nor look much like a gaussian distribution. ...if my understanding of it is correct...

    • @julian390
      @julian390 4 года назад +1

      Ah that makes a lot of sense, thank you :) This Channel is amazing!

    • @guyindisguise
      @guyindisguise 4 года назад

      @@tropopyte6473 I was wondering the same thing, did you find an answer to that question?

  • @evgeniinikitin8843
    @evgeniinikitin8843 4 года назад +2

    great video!
    I disagree about the uselessness of the group norm experiment though. batchnorm is not the only possible reason of performance degradation in the small batch size mode, so it's a perfectly viable experiment

  • @ManishChoudhary-hy5ey
    @ManishChoudhary-hy5ey 4 года назад

    Nice explained

  • @-mwolf
    @-mwolf Год назад

    Thank you

  • @Ronschk
    @Ronschk 4 года назад

    Thanks for the nice explanation! As it goes into a similar direction, do you know about network deconvolution? Was presented at ICLR this year and looks very interesting: arxiv.org/pdf/1905.11926.pdf

  • @oneman7094
    @oneman7094 4 года назад +5

    Question.
    Do you read papers with sunglasses on?
    Almost in every video that we see your face you have sunglasses and I am always wandering while watching...

    • @YannicKilcher
      @YannicKilcher  4 года назад +3

      Sure 😁

    • @bingbingsun6304
      @bingbingsun6304 4 года назад +1

      @@YannicKilcher Wearing sunglasses helps understanding the paper!!!

    • @YannicKilcher
      @YannicKilcher  4 года назад

      @@bingbingsun6304 Yea the white paper is just too bright :D

  • @herp_derpingson
    @herp_derpingson 4 года назад +1

    How is group norm reducing internal covariance shift? It is agnostic to the batch moments.

    • @YannicKilcher
      @YannicKilcher  4 года назад

      It's probably not. It doesn't appear to matter. What appears to matter is that you normalize somehow.

    • @herp_derpingson
      @herp_derpingson 4 года назад +3

      @@YannicKilcher Dark magic :O

  • @hieuza
    @hieuza 4 года назад

    24:07 they reduce the learning rate by 10x at 30, 60, 90 epochs -- that's why the error reduce. Why is it funny?

    • @JackofSome
      @JackofSome 4 года назад

      That's not what he's laughing about. The full battery of experiments done on group norm at that point are kind of unnecessary as they really just needed to show the 2ims/batch case.

    • @eco24t
      @eco24t 4 года назад +1

      The point isn't that they decreased the learning rate. The point is that the group norm performance shouldn't be affected by the batch size, but they tested multiple batch sizes anyway, possibly at the request of a reviewer.