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

이지환님의 프로필 이미지
이지환

작성한 질문수

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

Batch size에 따른 처리 순서 질문

작성

·

748

0

안녕하세요 강사님,

아직 Batch size에 대해 정확하게 감이 안와서 질문드립니다.

Batch size는 한번에 처리하는 이미지의 수라고 하는데 이 '처리'라는 의미가 gradient descent를 적용하는(weight를 업데이트)하는 것이라고 들었던 것 같습니다. 그러면 아래 모식도처럼 이미지를 Batch 별로 통과하면 Batch size만큼 loss가 생성되는데 이를 '합산'해서 weight를 업데이트하는 것이라고 이해하면 될까요? 

답변 1

0

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

안녕하십니까,

거의 비슷합니다. 그런데 합산의 의미가 좀 다릅니다.

적어 주신 것이 어떠한 의미로 loss를 합산해서 weight를 update하는건지는 명확하지 않지만, 단순히 loss를 합산하는 것이 아닙니다.

weight update식이 loss를 기반으로 만들어지는데, 이 loss가 배치 사이즈 만큼의 학습 데이터를 기반으로 생성하는 것입니다.

Gradient를 update하는 식은 좀 더 복잡하지만,  강의에서 Gradient Descent를 직접 구현할 때 선형 회귀식으로 말씀 드렸듯이 weight update식을 적용할 때 mini batch gradient descent는 배치 사이즈 만큼의 학습 데이터를 기반으로 단순 선형 회귀에 해당하는 Gradient Descent를 계산하고 이를 기반으로 weight update를 구성합니다.

즉 아래 식에서 N이 곧 배치 개수만큼 입니다.

그리고 말씀하신 대로 loss자체를 가지고 성능을 평가한다든지, 즉 학습중 loss가 증가/감소하는 것을 평가하는 경우는 보통은 배치 사이즈 만큼의 loss(즉 예측값과 실제값의 차이)를 평균해서 나타냅니다.

감사합니다.

이지환님의 프로필 이미지
이지환

작성한 질문수

질문하기