inflearn logo
강의

Course

Instructor

[Pytorch] Building Deep Learning Models Using PyTorch

Neural Network Training Principles - Loss Functions (MSE, Binary-Crossentropy)

update 공식 관련 질문 (3분31초 경)

309

Dae Young Kang

5 asked

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요, 좋은 강의 감사드립니다.

다름이 아니라, 3분 31초 경에 나오는 강의자료에서 Update 부분 theta0 = theta0 + alpha * 미분값으로 표기 되었는데, theta0 = theta0 - alpha * 미분값 이 아닌가하여 질문 드립니다! (MSE Loss function -> 최소값을 찾아야 하는 문제라 gradient에 음수를 곱해야 할 것 같습니다.)

anaconda 딥러닝 인공신경망 pytorch cnn

Answer 1

1

YoungJea Oh

강대영님,

정확하게 경사하강법의 update rule을 이해하고 계시네요.
MSE 는 포물선 형태의 그래프 모양을 보이기 때문에 손실 함수의 기울기(미분값)이 + 면 현재의 weight를 왼쪽으로 움직이고 (빼주고), 기울기가 - 면 현재의 weight를 오른쪽으로 움직이게(더해주게) 됩니다. 따라서 강대영님이 지적하신 대로 alpha * 미분값을 빼주어야 하는데 저의 교재에서 구한 gradient는 손실함수를 theta0와 theta1에 대해서 편미분까지 한 것이므로 gradient 자체에 minus가 표시되어 있어 update rule에서는 + 로 표시한 것 입니다. Gradient에 minus가 포함되게 된 이유는 제가 손실함수를 표시할 때 (y_i - (theta0 + theta1.x_i))^2 으로 했기 때문인데 순서를 바꾸어서 손실함수를 ((theta0 + theta1.x_i) - y_i)^2 으로 표시하면 편미분할 때 minus가 없어져서 강대영님 말씀대로 theta0 = theta0 - alpha * 미분값 으로 표시해야 합니다.

자세한 내용은 https://www.humanunsupervised.com/post/regression-univariate-cost-function-hypothesis-gradient-descent 참고 하세요. 결국 표현상의 문제이므로 두 가지는 같은 것이고 원리를 이해하는 것이 중요합니다.

좋은 질문 감사드립니다. 새해 복 많이 받으시고 건강하세요.

잘 이해 안되시면 추가 질문 바랍니다.

감사합니다.

0

Dae Young Kang

아! 선생님 감사합니다.

제곱이라서 square 내부에 마이너스를 곱했느냐의 차이로 업데이트때 플러스 혹은 마이너스가 되는 것이군요.

덕분에 꼭 마이너스로만 표기하지 않을 수 있다는 점을 알게됐네요! 감사합니다.

선생님도 새해 복 많이 받으시고 항상 건강하세요! :-)

0

Dae Young Kang

KakaoTalk_20221229_143823875.jpg선생님 그런데 문득 아무리 제곱이어도, square 내부에 -1을 곱했다는 이유로 부호가 바뀐다는게 이해가 가지 않아서 직접 계산을 해보았는데요 (동그라미 1은 강의자료 gradient),

square 내부에 -1을 곱하든 곱하지 않든 ((hypothesis - ylabel)^2 or (ylabel - hypothesis)^2), 결국 gradient에 -1을 곱해야 하는 것으로 계산이 되는데 혹시 제가 잘못 생각한 것일까요?

0

YoungJea Oh

강대영님,

지적하신 내용이 맞는 것 같습니다. 혼돈을 드려 죄송합니다. 교재 내용 수정하겠습니다.
감사합니다.

import torch가 안되는 경우는 어떻게 하나요?

0

16

1

소리가 겹쳐서 들려요

0

23

2

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드 먼저? 구현하며 배우는 Transformer 먼저?

0

30

1

수업자료

0

23

2

전 강의와 전혀 이어지지가 않음

0

30

1

pytorch local 설치 옵션에 conda 가 없습니다.

0

38

3

강화학습저장 및 로드

0

57

1

paperswithcode 서비스 종료 관련 문의

0

209

2

질문있습니다.

0

59

2

수업 하실 때 활용하시는 강의 자료를 제공 받을 수 있는지 문의 드립니다

0

68

2

Embedding 모델 fine tuning 관련 질문

0

71

2

코드에 오타가 있는 것 같습니다

0

53

2

코드 오타가 있는것 같습니다.

0

68

2

수업 자료도 없고 아무 것도 없는데 어떻게 시작하나요?

0

75

2

코드(3-7. 계층적 데이터 분석) 중에 질문이 있습니다.

0

57

2

mini-batch gradient descent 시 backpropagation에 대하여

0

75

2

이미지가 출력되지 않습니다

0

209

2

IMDBDataset 파일 다운로드가 안되는데 어떻게 받을 수 있을까요?

0

292

1

the kernel appears to have died. it will restart automatically.

0

666

1

파이토치 device (gpu / cpu) 관련 질문드립니다.

0

711

1

nn.CrossEntropyLoss() method 질문

0

561

1

5분10초 경, 강의자료에 대하여 질문드립니다.

0

323

1

종속변수와 독립변수

0

578

1

linspace(100, 200, 10)

0

354

1