Cross entropy loss in machine learning

0 Comments |

Cross entropy loss in machine learning

맨날 그냥 사용하기만 하는 cross entropy loss에 대해 공부해보려 한다.

  • 손실함수는 신경망 학습의 목적
  • Cross-entropy는 squared loss와 더불어 양대 손실함수
  • Cross-entropy는 신경망 출력을 확률로 간주할 수 있는 경우에 사용되는 매우 중요한 손실함수

Cost/Loss function

Squared loss

  • E(w)=12dD(ydy^d)2where|D|=

Mean squared loss

  • E(w)=121|D|dD(ydy^d)2where|D|=

Information

  • 어떤 사건을 수치로 나타낸 것
  • 확률을 이용한다
  • x: 동전의 앞면이 나올 때(event)
  • X: 확률변수, random process
  • P(X=x)=PX(x)=p(x) (모두 같은 표현)

사건을 수치화 하기

  • 사건이 드물게 발생할수록 정보가 커야 함.
  • 1p(x)×1p(y)의 확률을 수치화 해 보면?
    • log는 곱셈을 덧셈 연산으로 바꿔줌
  • 1p(x)×1p(y)의 양 변에 log를 취한게 최종 정보량으로 정의 됨
  • information=log(1p(x)×1p(y))=log1p(x)+log1p(y)
  • informationlog(p(x))1=log(p(x))

Entropy

  • 정보량의 기댓값
  • 확률변수 X의 기댓값에 대한 공식
    • E[X]=xxp(x)
    • p(x): 확률변수 X의 분포함수(확률질량함수, 확률밀도함수)
  • E[aX+b]=x(ax+b)p(x) 이므로
  • E[f(x)]=xf(x)p(x) 가 성립함
  • 따라서, log(p(x))에 대해서 다음이 성립
  • E[log(p(x))]=xlog(p(x))p(x)
  • entropyxp(x)log(p(x))

Cross entropy

  • 다른 사건의 확률을 곱해서 entropy를 계산한 것
  • 예를 들어 0 또는 1만 가지는 확률변수 X가 있을 때(Bernoulli),
  • entropy=p(x=0)log(p(X=0))p(X=1)log(p(X=1))
  • crossentropy=p(X=1)log(p(X=0))p(X=0)log(p(X=1))

신경망의 손실함수로 활용

  • E(w)121|D|dD(ydy^d)2 일 때,
  • crossentropylossE(w)1|D|dD(ydlog(y^d)(1yd)log(1y^d))
    • 우 항 sum 안쪽의 식은 베르누이 확률변수를 n회 시행해서 얻은 샘플로부터 베르누이 확률변수의 평균과 분산을 추정하는 어떤 방법으로부터 유도 가능
    • Maximum likelihood estimation

Cross-entropy 그래프

  • 아래로 볼록 모양으로 최소값을 구할 수 있음
views
  • 부호를 바꾸면 최댓값을 구할 수 있음.
  • +ylog(y^)+(1y)log(1y^)
  • 성공(1) 또는 실패(0)만 나오는 경우, 이렇게 나오게 되는 확률이 가장 크게 되는 x의 값을 얼마로 추정?
views
  • 성공과 실패가 반반 나온 경우
views
  • 성공 70%과 실패 30% 나온 경우
views

결론

  • crossentropylossE(w)1|D|dD(ydlog(y^d)(1yd)log(1y^d))
  • 신경망 출력이 0~1 사이의 확률로 나오는 경우 loss 함수로 사용 할 수 있음

  • [참고글]

https://www.slideshare.net/jaepilko10/ss-91071277