인프런 커뮤니티 질문&답변

밑바닥개발자님의 프로필 이미지

작성한 질문수

딥러닝 CNN 완벽 가이드 - Fundamental 편

AlexNet의 개요와 구현 코드 이해

Alexnet 구현 코드에서 BN 질문입니다

해결된 질문

21.10.02 12:16 작성

·

193

0

안녕하세요! 질 좋은 강의에 감사 인사부터 드립니다! 다름이 아니라 해당 강의 7:49초 부터 AlexNet  구현 코드를 설명해주시는데요! 이론적인 부분에서 원래 Alex Net이 LRN(Local Response Normalization)이 적용되지만 구현코드 상 BN을 적용하는 걸로 설명해주셨습니다!

그런데 BN layer 코드를 자세히 보니 AlexNet 구현 과정에서는 '컨볼루션 -> 활성함수 -> BN 적용' 순서로 되어 있더라구요? 물론 이 과정이 잘못되었다는 건 아닌데 보통 '컨볼루션 -> BN 적용 -> 활성함수' 과정으로 진행하는게 대부분 더  모델 최적화에 긍정적인 영향을 미친다고 알고 있어서요! 제가 AlexNet 논문까지는 확인을 안해보았지만 논문 상에서도 LRN(실습 코드에서는 BN)이 활성함수 이후에 적용되는 순서로 되어 있는지 문의드려도 될까요!?

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

2021. 10. 03. 17:36

안녕하십니까, 

잘 아시다시피 Batch Normalization은 AlexNet이후에 나온 것입니다. AlexNet은 LRN(Local Response Normalization)을 적용하였는데, LRN은 Tensorflow에서 지원되지 않아서 이와 유사한 Batch Normalization을 적용합니다. 

말씀하신대로 보통 BN은 Conv->BN->Activation 형태로 적용됩니다. 다만 AlexNet은 Conv->Activation 이후에 별도의 LRN이 적용되었기에 이를 표현하기 위해 Conv->Activation 다음에 BN을 적용하였습니다. 

감사합니다. 

밑바닥개발자님의 프로필 이미지

2021. 10. 03. 20:52

답변 감사합니다! :)