그리고 그렇게 만든 손실로 어떻게 다른 클래스들과의 관계를 배우는거죠? 단지 뉴런 출력값들이 소프트맥스를 거쳤다는 이유 하나로 가능한건가요?
댓글 8
타겟 클래스를 아는 거랑 원핫 인코딩이랑 무슨 상관이에요?
인코딩 안하면 어떻게 하게요...??
타켓 클래스의 loss만 계산하는 이유는 '얘가 맞아'만 배우면 되지 '얘네는 아니야'를 배울 필요는 없어서 그렇습니다
창업게이(106.101)2024-11-18 20:56
답글
책에선 그냥 원핫인코딩 벡터를 타깃뉴런 z값만 계산에 사용하기위해라고 나와잇어서요. 그것만이 목적이면 그냥 원핫인코딩 벡터를 만들필요가 없다고 생각햇거든요. 타깃클래스를 알면 타깃뉴런의 출력값으로 바로 접근가능하지않나요?
익명(211.198)2024-11-18 20:59
답글
그리고 손실함수가 하나의 z값만으로 손실을 만듦에도 불구하고, 모든 출력 뉴런들이 학습에 기여한다고 해서요. 다른말로는 클래스들의 경계를 배운다네요. 그 원리가 단지 출력값들이 소프트맥스를 거쳐서 그게 가능한건가요? 다른 클래스가 확률분포 차지한만큼 손실이 더 크니까?
익명(211.198)2024-11-18 21:02
답글
1. 아하 그냥 해당 클래스에 해당하는 z값으로 손실함수 계산해도 되긴하는데 그냥 인코딩 해서 tensorflow 나 pytorch 함수 쓰는 게 더 편해서 그럴 거에요
2. 맞습니다
창업게이(106.101)2024-11-18 21:10
답글
그렇군요 ㄱㅅ
익명(211.198)2024-11-18 21:13
소프트 맥스로 출력된 output이 [0.4, 0.4, 0.2] 인데
target class가 2일 때
[0, 0, 1] 으로 원-핫 인코딩을 한 이후
categorical 크로스 엔트로피를 사용하기 위함이다.
이렇게하면 bce를 사용했을 때 처럼 정답과 멀어질수록 loss는 급격하게 커지고 loss가 커짐에 따라 가중치 학습을 더 큰폭으로 할 수 있을테니깐
프갤러 1(210.57)2024-11-18 21:20
답글
다중 분류에서 무조건 원-핫 인코딩을 하느냐?
그건 아냐
다중분류에서 cce 손실함수를 사용할땐 원-핫 인코딩을 하지
원핫인코딩 없이 사용할 땐 Sparse Categorical Cross Entropy 쓴다
타겟 클래스를 아는 거랑 원핫 인코딩이랑 무슨 상관이에요? 인코딩 안하면 어떻게 하게요...?? 타켓 클래스의 loss만 계산하는 이유는 '얘가 맞아'만 배우면 되지 '얘네는 아니야'를 배울 필요는 없어서 그렇습니다
책에선 그냥 원핫인코딩 벡터를 타깃뉴런 z값만 계산에 사용하기위해라고 나와잇어서요. 그것만이 목적이면 그냥 원핫인코딩 벡터를 만들필요가 없다고 생각햇거든요. 타깃클래스를 알면 타깃뉴런의 출력값으로 바로 접근가능하지않나요?
그리고 손실함수가 하나의 z값만으로 손실을 만듦에도 불구하고, 모든 출력 뉴런들이 학습에 기여한다고 해서요. 다른말로는 클래스들의 경계를 배운다네요. 그 원리가 단지 출력값들이 소프트맥스를 거쳐서 그게 가능한건가요? 다른 클래스가 확률분포 차지한만큼 손실이 더 크니까?
1. 아하 그냥 해당 클래스에 해당하는 z값으로 손실함수 계산해도 되긴하는데 그냥 인코딩 해서 tensorflow 나 pytorch 함수 쓰는 게 더 편해서 그럴 거에요 2. 맞습니다
그렇군요 ㄱㅅ
소프트 맥스로 출력된 output이 [0.4, 0.4, 0.2] 인데 target class가 2일 때 [0, 0, 1] 으로 원-핫 인코딩을 한 이후 categorical 크로스 엔트로피를 사용하기 위함이다. 이렇게하면 bce를 사용했을 때 처럼 정답과 멀어질수록 loss는 급격하게 커지고 loss가 커짐에 따라 가중치 학습을 더 큰폭으로 할 수 있을테니깐
다중 분류에서 무조건 원-핫 인코딩을 하느냐? 그건 아냐 다중분류에서 cce 손실함수를 사용할땐 원-핫 인코딩을 하지 원핫인코딩 없이 사용할 땐 Sparse Categorical Cross Entropy 쓴다
그냥 맨날 sparse 때리는게 젤 현명한거같아요