2-6 Softmax에 의해 학습된 확률분포와 테스트된 확률분포 값의 통계적 특성

codingart(66)
Published in
#kr
Words
505
Reading
3 min
Listen
Play
8y

머신 러닝에서는 특정 클라스에 속하는 identical 하면서 distinguishable 한 많은 샘플 수의 입력 벡터들 X에 대해서 학습 계산을 실행하여 Hypothesis 레벨 별로 값을 계산한다. 물론 이 계산은 0부터 9까지 class 전체를 대상으로 돌아가면서 모든 class들에 대해 cost(loss) 함수인 Crooss Entropy가 최소화 되도록 웨이트 매트릭스가 업데이트 되어 나가면서 학습이 완료 되어야 한다. 이러한 머신 러닝의 Hypothesis 레벨 연산은 볼츠만 분포에서처럼 입자들의 속도분포와 같은 물리적 특성이 아닌 통계적 확률 분포 데이터 성격이 강하다. 따라서 통계적인 인덱스 즉 평균, 분산, 공분산 또는 상관계수가 학습 결과를 사용한 테스트 인식과정에서도 영향을 미칠 수 있는 통계적으로 중요한 요소가 될 것이다.

우선 학습단계에서 특정 클래스에 해당하는 학습용 입력 벡터 X에 대해서 웨이트 매트릭스를 계산하는 방법은 클라스에 지정된 one hot code 에 맞춰 지정된 한 자리만 Hypothesis 레벨 값이 1.0이 되고 나머지 Hypothesis 레벨 값들은 모두 0.0이 되도록 학습에 의해 웨이트 계산이 이루어진다. 그림의 빨간색 히스토그램 사례를 참조하자. 0∼9 중에 하나가 1.0이기 때문에 나머지 9개는 이론적으로 0.0 이 되어야 하나 실제 연산에서는 대단히 작은 숫자 값이 계산된다.

noname01.png

학습과정에서 계산된 Hypothesis 레벨 Hi는 자리수별로 1.0 과 나머지 9개는 0.0 으로 계산되므로 평균값은 0.1이 된다. 한편 분산 값을 계산해 보자.

noname02.png

분산 값은 0.09 로 상당히 낮은 값임을 알 수 있다.

noname03.png

이와 같이 학습 완료와 함께 웨이트 매트릭스가 얻어진 후 전체 class 중에서 임의의 class 에 속하는 테스트 샘플(unseen data, 학습과정에서 사용되지 않았으면서 class가 알려진 샘플)을 대상으로 레벨 별로 Hypothesis를 계산하여 class 값을 예측하는지 알아보자. 이미 학습된 샘플들과 미시적인 픽셀 위치 및 값을 비교해 보면 distinguishable 하지만 class 상으로는 같아야 하므로 즉 거시적으로는 identical 하면서 동일한 class가 되어야 한다. 하지만 Hypothesis 레벨의 확률 값들을 계산해 보면 이미 학습된 샘플처럼 어느 한 class에 집중된 1.0 의 확률을 보여주는 것이 아니라 위 그림에서처럼 그 class를 중심으로 분포를 보여 주게 되므로 학습단계에 비해서 분산 값이 증가한다. 그 중에서 가장 큰 Hypothesis 값을 가지게 되는 class로 인식하게 된다.

다음의 텐서플로우 계산 사례를 살펴보자. 주변에서 흔히 다운 받을 수 있는 Softmax를 사용하는 MNIST 예제를 learning rtae = 0.08에 학습횟수 20,000회 실행시켜 얻은 결과이다. 인식률은 다소 높은 92.21%이다. 92% 가량의 인식률이라 함은 100개의 테스트 샘플에 대해서 8개 수준의 인식 실패가 일어난다는 뜻이다. 다음 그림은 특정 테스트 샘플 결과에 Hypothesis 레벨 최대값이 0.76으로 상당히 작은 편인 사례를 찾아서 확률 분포를 작도하였다.

noname04.png

이 사례에서 주목할 점은 학습단계에서나 테스트 단계에서나 평균값은 다같이 0.1. 이지만 테스트 데이터의 일부는 분산 값이 0.053 로 학습용의 0.09에 비해서 상당히 달라진다. 즉 특정 class 에 해당하는 one hot code 에 맞춰 웨이트 매트릭스가 연산되어 학습이 완료되며 이어서 테스트도 이루어지지만 통계학적 관점에서 평균값은 일치하지만 분산 값이 변동됨을 알 수 있다. 좀 더 많은 테스트 샘플을 대상으로 분산 값이 달라지는지 확인을 위한 조사가 필요하다. 다음의 2 사례에서 분산 값은 각각 0.043 과 0.041 로 주어진다.

noname05.png

즉 인식이 성공하는 경우의 Hypothesis의 분산 값은 0.09 수준이며 간신히 인식되는 수준이라면 0.04 수준의 분산 값을 가진다.

그 원인이 무엇일까? 비록 상당히 많은 분량의 학습용 데이터의 Softmax 처리과정에서 one hot code를 만족하도록 학습이 이루어지지만 테스트 과정에서 8% 수준의 실패율을 보여준다. 따라서 학습과정에서 one hot code를 만족하도록 학습을 시킴과 동시에 Softmax 가 통계적 인덱스들의 영향을 반영할 수 있도록 개선이 필요하다. 즉 Softmax 정식화 단계에서 평균 값 말고도 필요한 통계학적 인덱스들의 영향을 반영할 수 있도록 고려가 되어야 한다는 점을 시사한다.

마나마인로고.png

2-6 Softmax에 의해 학습된 확률분포와 테스트된 확률분포 값의 통계적 특성 | Ecency