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

Alex님의 프로필 이미지
Alex

작성한 질문수

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

미니 배치(Mini-batch) 경사하강법 구현하기

미니배치 관련 질문

작성

·

244

0

안녕하세요 선생님!

 

BGD도 1:507 까지 모든 데이터를 순회하고 mini BGD도 사이즈를 나눠서 하지만 모든 데이터로 업데이트를 한다고 생각하는데 , 둘의 차이점이 무엇인가요?

답변 1

0

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

안녕하십니까, 

실습 코드를 잘 보시면 BGD는 전체 학습데이터중에 random 데이터를 batch size만큼 골라내어서 GD를 학습합니다. 

전체 데이터가 600개고 Batch size가 30이고 iteration은 1000번으로 설정하면 

600개중에 30개만 골라서 30개의 데이터만 GD학습을 1000번 시키는 것입니다. 

미니배치는 Batch size가 30만큼 전체 학습데이터를 순차적으로 가져옵니다. 

가령 전체 데이터가 600개고 Batch size가 30이고 iteration은 1000번으로 설정하면  미니배치는

600개를 순차적으로 30개씩 가져와서 GD를 학습합니다. 그러니까 600개의 학습 데이터의 경우 20회 GD학습합니다. 이러한 20회 GD학습을 1000번 반복합니다. 

감사합니다. 

Alex님의 프로필 이미지
Alex
질문자

감사합니다! 높은 양질의 강의에 이렇게나마 감사의 인사를 올립니다. 오늘도 좋은 하루 되시기바랍니다! 

추가로 질문 드리고 싶습니다

1.SGD시 1건의 데이터는 모든 피쳐를 포함한 1건의 데이터(RM, LSTAT의 경우 2개의 W를 가지는 2개의 열방향 데이터)인것인가요? 맞다면 1000번의 iteration시 동일한 데이터로 1000번 학습을 하는건가요? 아니면 열방향으로 순차대로 학습을 하는건가요?(예를 들면 600개의 데이터가 있다고 하면 1번부터 600번까지...)

2.미니배치에서 Batch size만큼 학습데이터를 순차적으로 학습시킬때, Batch size는 순서대로(600개의 데이터가 있다면 1~30번, 31~60번...이렇게 정직하게 가져 오는건가요?? 아니면 1, 5, 8, 11, 50, 100 과 같이 랜덤하게 선택하되, Batch size만 지키는 것인가요??

진짜 감사드립니다...강의 계속 보고 있습니다!!

Alex님의 프로필 이미지
Alex

작성한 질문수

질문하기