[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/Data & AI

단층 퍼셉트론 - 이진판단 이론

inu 2020. 7. 24. 17:19
반응형

이진판단 문제의 신경망 처리

  • '예/아니요', '0/1', '사과인가 아닌가?','성공인가 실패인가?'와 같이 두개의 대답으로 분류가 가능한 문제를 말한다.
  • 퍼셉트론의 선형연산은 이진판단 문제를 풀기엔 적합하지 않았다. 특정 임계치에 따라 출력치를 나눈다고해도 그런 식의 연산은 미분이 불가능하여 해당 값에 대한 학습을 어떻게 진행해야 할지, 손실함수를 어떻게 정의해야할지 어려웠다.
  • 이에 따라 선형 연산에서는 일단 범위 제한이 없는 실숫값을 생산하고 이를 확률값의 성질에 맞게 변환해주는 비선형 함수를 찾아 이용했다. 값이 1에 가까우면 참으로 0에 가까우면 거짓을 선택하도록 한 것이다.
  • 학습에 필요한 손실함수는 값이 0이상이고 추정이 정확해질수록 작아져야한다. 이는 교차 엔트로피를 사용한다. 이는 두 집단의 확률 분포가 비슷할수록 값이 작아진다. (추후 자세히 설명)

시그모이드 함수

  • 범위에 제한이 없는 임의의 실수값을 입력받아 확률값의 범위에 해당하는 0과 1사이의 값을 출력하는 함수이다.
  • 시그모이드 함수는 입력 x가 어떤 확률값의 '로짓 표현'이라고 간주한다. (로짓 : 실제 표현하려는 값을 로그값으로 대신 나타낸 것) 시그모이드 함수는 이러한 로짓값 x를 확률값으로 변환해준다.
  • 로짓값은 상대적이기 때문에 로짓값 하나만 봐서는 그 정확한 의미를 알 수 없다. 비교 로짓값이 있어야 두 로짓값에 대한 확률값의 차이가 어느정도 나는지 파악할 수 있다.
  • 정확히 시그모이드 함수는 입력값을 '답이 참일 가능성을 로짓으로 표현한 값'으로 간주한다. 따라서 비교 로짓값인 '답이 거짓일 가능성을 로짓으로 표현한 값'이 필요하다. 이는 0으로 간주한다. (어차피 상대적 값이므로 크게 중요하지 않다. 단지 계산과 공식 수립에 가장 용이한 값을 선택한 것으로 판단된다.)
  • 시그모이드 함수는 위 그림과 같이 정의되고 그려진다. 시그모이드의 입력이 로짓값이고 비교 로짓값을 0으로 간주했을 때 얻어지는 함수이다.
  • 시그모이드 함수의 미분은 시그모이드 함수를 y라고 뒀을 때 y' = y(1 - y)로 처리된다. (이는 몫의 미분법에 따른 결과인데, 궁금하면 직접해보자.)

확률 분포와 정보 엔트로피

  • m개의 사건이 동일한 확률을 가져 각각 $1/m$의 확률을 가지는 확률분포를 가질 때, 한 사건을 표현하는데 필요한 비트 수는 $\log_{2} m$이며 이를 정보량이라고 한다. 예를 들어 1/2, 1/4, 1/4의 확률로 일어나는 사건의 정보량은 $1/2*log_{2} 2+1/4log_{2}4+1/4*log_{2}4=1.5$ 로 총 1.5이다.
  • 이러한 정보량은 표현하려는 대상의 분포 비율이 높으면 짧은 이진 코드를, 낮으면 긴 이진 코드를 할당하는 하프만 코드와 연관이 깊다. 위에서 든 예시 코드를 하프만 코드로 표현하면 각각 0, 10, 11로 표현할 수 있는데 이러한 코드의 평균길이는 $1*0.5 + 2*0.25 + 2*0.25 = 1.5$이기 때문이다.
  • 정보량을 정의하는 $\sum_{i=1}^{m}(1/a_i)log_2a_i$의 식을 주어진 확률 분포에 대한 정보 엔트로피라고 하고 보통 H로 표기한다.
  • $p_i = 1/a_i$의 역수 관계를 이용해 $-\sum_{i=1}^{m}(p_i)log_2p_i$ 로 표현할 수도 있다.
  • 위 식들에서 p는 각 확률은 뜻하고, a는 그 역수가 되는 수를 뜻한다.
  • 즉 로짓값을 기반으로 확률을 구하고, 해당 확률을 기반으로 정보 엔트로피를 구하는 것이다.

확률 분포의 추정과 교차 엔트로피

  • 정보 엔트로피는 하나의 확률 분포가 갖는 '불확실성' 혹은 '정보량'을 정량적으로 계산할 수 있게하는 개념이었다.
  • 교차 엔트로피는 두가지 확률 분포가 얼마나 비슷한지를 숫자로 나타내는 개념이다.
  • $H = -\sum_{i=1}^{m}(p_i)log_2p_i$ 로 정의된 정보 엔트로피는 현재 주어진 데이터에 대한 정보량의 기댓값이라고도 할 수 있다.
  • 교차 엔트로피는 이러한 정보 엔트로피의 해석을 수정해 '정보량을 제공하는 확률 분포'와 '가중평균 계산에 사용되는 확률 분포'를 서로 다르게 설정한 채 정보량의 기대값을 구하는 것으로 정의된다.
  • 즉, $q_1, ... , q_i$ 의 확률 분포 Q에 따른 정보량을 갖는 사건이 $p_1, ... , p_i$ 의 확률 분포 P에 따라 일어날 때 정보량의 가중 평균
  • $ H(P,Q) = -\sum p_ilogq_i$ 가 교차 엔트로피의 값이 된다. (로그 내부값이 q로 변경)
  • 교차 엔트로피의 P와 Q를 둘다 P로 준다면 결국 수식은 $ H(P,P) = -\sum p_ilogp_i$ 로 해당 확률 분포의 정보 엔트로피 값과 같아진다.
  • 또한 언제나 $ H(P,Q) >= H(P,P) $ 가 성립하여 등호는 P와 Q가 일치할 때만 성립한다. 이렇듯 교차 엔트로피는 두 확률 분포가 닮아갈수록 값이 작아지기 때문에 두 확률 분포가 서로 얼마나 다른지를 나타내주는 정량적 지표 역할을 한다.
  • 즉 추정 확률 분포와 실제 확률 분포가 있다고 할 때 이 두 가지 분포에 대한 교차 엔트로피 값은 추정이 명확해질수록 정보 엔트로피 값에 가까워진다.

시그모이드 교차 엔트로피와 편미분

  • 학습 데이터의 정답이 z로 주어졌고, 신경망 회로는 로짓값 x를 출력했다고 하자. 이 때 정답이 나타내는 확률 분포와 신경망이 추정하는 확률 분포 사이의 교차 엔트로피를 구하면 다음과 같다.
  • $H = x - xz + log(1+e^{-x})$
  • 많은 데이터 셋은 이진 판단 문제에 대한 정답으로 0 혹은 1값만 제공한다. 따라서 z를 두 경우로 나눠 교차 엔트로피 식을 더 간단하게 정의할 수 있다.
  • $z = 0$,  $H = x + log(1+e^{-x}) $
  • $z = 1$,  $H = log(1+e^{-x}) $
  • 교차 엔트로피의 편미분은 아래의 식으로 구할 수 있다. (직접 해보자 / $\sigma(x)$는 시그모이드 함수)
  • $\delta H \over \delta x$ $= -z + \sigma (x)$
반응형