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

작성자 없음

작성자 정보가 삭제된 글입니다.

TensorFlow 2.0으로 배우는 딥러닝 입문

Batch Gradient Descent, Stochastic Gradient Descent, Mini-Batch Gradient Descent

ppt 5p 질문

작성

·

227

0

ppt 5p, Batch Gradient Descent에서
첫 번째 동그라미,
'트레이닝 데이터 n개의 손실함수 미분값을 모두 더한 뒤 평균을 취해서 파라미터를 한 스텝 업데이트...' 문장을
'트레이닝 데이터 n개의 손실함수 미분값을 계산해서 파라미터를 한 스텝 업데이트...'로 바꿔야 맞는 거 아닌가요?

추가로 ppt 7p, Mini-Batch Gradient Descent에서
두 번째 동그라미,
'...이를 100개씩 묶은 Mini-Batch 개수만큼의 손실 함수 미분값 평균을 이용해서...' 문장도
'...이를 100개씩 묶은 Mini-Batch 개수만큼의 손실 함수 미분값을 이용해서...'와 같이 바꿔야 할 것 같습니다.

 

답변 1

0

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 반갑습니다.

미분값들의 평균을 이용해서 계산하는게 gradient descent의 동작방식인데요.

혹시 어떤 의미에서 평균을 이용해서 -> 이용해서로 변경해야 된다고 말씀해주신 건지 여쭤봐도 될까요?

감사합니다.

batch(트레이닝 데이터 n개)의 (1)loss를 계산한 뒤 (2)해당 loss의 미분값을 계산하여 (3)파라미터를 업데이트

하는 방식이지

batch(트레이닝 데이터 n개)의 (1)loss를 계산한 뒤 (2)해당 loss의 미분값을 계산하여 (3)평균을 낸 뒤 (3)파라미터를 업데이트

하는 방식이 아니지 않나요?

즉, 미분값들의 평균을 계산하는 것이 아니라 mini batch/batch/training sample 단위의 loss(ex.mse, 해당 산식에서 이미 평균이 계산됨)를 계산한 뒤 미분값을 계산해 한 step씩 파라미터를 업데이터 하는 것이 아닌지 해서요

n/m개 트레이닝 샘플의 mse를 계산한 뒤 미분값을 계산하는 게 맞는 건가요?

아님 n/m개 트레이닝 샘플 각각의 error를 계산한 뒤 미분값을 계산해서 전체 평균을 내는 게 맞는 건가요?

질문에 대한 답변 좀 빨리 부탁 드립니다.

벌써 2개월이 넘게 지났네요.

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 답신이 늦어서 죄송합니다ㅠ.

batch 단위의 MSE를 기준으로 전체 batch에 대해 한번에 차이의 미분값을 취해서 연산을 수행하나 batch 하나하나를 기준으로 차이값들을 계산해서 이들 차이의 미분값의 평균을 내나 순서의 차이일 뿐 최종 결과값은 같습니다. 따라서 동일한 결과값을 얻을 수 있으므로 무엇이 맞다 틀리다라고 명확히 표현하기 애매한점 양해부탁드립니다. (굳이 따지자면 둘다 맞다고 할수 있겠네요.)

감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기