작성
·
265
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요, 선생님. (요즘 좀 질문이 많아서 죄송합니다... ㅠ)
CrossEntropy 함수에서
원핫 인코딩 때문에 y==1
일 때, -log(yhat)
이 return 되는 것은 이해가 되는데, else
문 이후로는 이해가 잘 되지 않습니다... 혹시 추가 설명을 부탁 드려도 될까요?
답변 1
1
강대영님,
질문하신 함수는 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])
두가지를 모두 예시로 보여드렸어야 했는데 간략히 넘어가서 혼란을 드렸네요 ^^
좋은 질문 감사드립니다.