분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
LeakyReLU와 BatchNormalization 사용 순서 관련하여
안녕하세요 딥러닝 갓 입문한 학생입니다.
얕은 배움에 의하면
BatchNormalization은 보통 Activation Func 사용 이전에 출력값 범위 조절을 위해 쌓는 것으로 알고 있었는데
베이스라인 코드나 몇몇 코드를 보니 LeakyReLU 이후에 사용하는 걸 보았습니다.
혹시 LeakyReLU만 이렇게 하는 것인지 아니면
Activation Func 이후에 사용하면 또 다른 이점이 있는 것인지 궁금합니다!
다만 정설은 없는 것 같습니다.관련 자료를 찾아보니 대부분 Activation 이전에 사용하는 걸 권장하네요.
https://forums.fast.ai/t/why-perform-batch-norm-before-relu-and-not-after/81293
https://www.reddit.com/r/MachineLearning/comments/2x0bq8/some_questions_regarding_batch_normalization/?su=ynbwk&st=iprg6e3w&sh=88bcbe40
말씀해주신 부분을 응용해서 생각해보자면 Leaky ReLU 같은 경우는 그래도 음수 값이 어느 정도 남아 있으니
편향성이 덜 할 수 있어 Activation 이후에 사용하나 보군요.
공유해주신 URL 확인해보니 아직 논쟁이 있는 부분인가 보네요! 그러나 저는 권장사항처럼 이전에 사용하는 것으로 해야겠네요 ㅎㅎ
답변 감사드립니다 ㅎㅎ
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
Activation Func 이전에 적용하는게 논리적으로 맞다고 생각합니다.
예를 들어 ReLU(Non-linear Activation Func ) 같은 경우 1. Activation layer 이전에 Batch Normalization 을 적용 할 경우 -∞ ~ ∞ 의 값을 Normalization, 2. Activation layer 이후는 0~∞ 값을 Normalization 하게 되는데 2번의 경우 편향성이 생길 것으로 판단됩니다.