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

Dae Young Kang님의 프로필 이미지
Dae Young Kang

작성한 질문수

[Pytorch] 파이토치를 활용한 딥러닝 모델 구축

Neural Network 훈련 원리 - 경사하강법-3

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

작성

·

265

0

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

안녕하세요, 선생님. (요즘 좀 질문이 많아서 죄송합니다... ㅠ)

CrossEntropy 함수에서

원핫 인코딩 때문에 y==1 일 때, -log(yhat) 이 return 되는 것은 이해가 되는데, else 문 이후로는 이해가 잘 되지 않습니다... 혹시 추가 설명을 부탁 드려도 될까요?

답변 1

1

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

강대영님,

질문하신 함수는 binary cross entropy Loss 를 직접 파이썬 함수로 구현할 경우를 예로 든 것 입니다. f(s)가 sigmoid 함수인 경우 Logistic Regression은 y가 0과 1 밖에 없으므로 동영상에서 간략히 소개한 것 처럼 구현 가능합니다. (https://vitalflux.com/cross-entropy-loss-explained-with-python-examples/ 참조 하세요.)

f(s)가 softmax 함수인 경우 아래와 같이 구현해야 합니다. (https://androidkt.com/implement-softmax-and-cross-entropy-in-python-and-pytorch/ 참조 하세요.)
def cross_entropy(y,y_pre):

  loss=-np.sum(y*np.log(y_pre))

  return loss/float(y_pre.shape[0])

 

두가지를 모두 예시로 보여드렸어야 했는데 간략히 넘어가서 혼란을 드렸네요 ^^

좋은 질문 감사드립니다.

Dae Young Kang님의 프로필 이미지
Dae Young Kang

작성한 질문수

질문하기