머신러닝

1-16 머신 러닝 이해 증진을 위한 “지금까지 아무도 얘기해 주지 않았던” 통계 확률적인 접근

coding art 2018. 7. 24. 21:15
728x90

아래 그림의 두가지 선형회귀 예제를 비교해 보자.



첫번째 선형 회귀 그래프가 보여 주는 점 (x,y) 데이타의 패턴은 어떠한가? x 좌표의 위치를 보면 0∼10 사이의 범위에 골고루 분포해 있다는 것을 쉽게 알 수 있다. 좀 더 엄밀하게 확률통계 측면에서 보면 x 좌표는 구간 0∼10 사이에서 균일하게 분포한다고 볼 수 있을 것이며, 통계 확률에서 사용하는 확률밀도 함수를 사용하여 다음과 같이 random한 독립변수 x를 표현할 수 있다.



y좌표의 패턴도 그 범위와 양상이 x좌표와 유사성이 있는데 어쨌든 (x,y)좌표 데이터 세트를 사용하여 선형회귀 분석이 가능하며 선형회귀 분석 결과는 random 한 독립 변수 x에 대한 random 한 종속변수 y 의 통계확율적인(statistical 또는 probabilistic) 모형을 제공하게 된다.

반면에 3점 데이터 선형 회귀 예제에서 사용한 x 데이타 값은 특정의 확률 분포와 무관하게 불연속적인 상수형태로 1, 2, 3 이 사용되었다. 하지만 이 예제를 만드는 과정에서 단순한 선형회귀 결과를 끌어내기 위해서 y 좌표도 1, 2, 3 으로 단순화 하였다. 물론 y=W*x+b 형태의 선형회귀 분석의 결과로서 W=1, b=0 이 얻어진다.
하지만 y 좌표가 다음과 같이 변동된 경우를 분석해보자.

(1, 1), (2, 3), (3, 2)

좀 더 정밀한 선형회귀 값을 얻기 위해서 learning rate = 0.1, step 수 looping을 1000회, 출력은 200회마다 한번으로 하였다. 아래 테이블의 계산 결과를 보면
선형회귀 결과는 y = W*x + b = 0.5*x + 1.0 임을 알 수 있는데 이 경우에 오차의 합에 해당하는 cost  값이 0이 아니라 0.5 임에 유의하자.



(1, 1), (2, 2), (3, 3)에서 (1, 1), (2, 3), (3, 2)로 데이터가 변경됨에 따라 선형회귀 결과가 y = x에서 y = 0.5*x + 1.0로 바뀌었을 뿐만 아니라 y 데이터의 통계 확률적인 측면이 나타난다.



즉 선형 회귀 결과와 측정된 데이터 사이에 일종의 편차가 나타난다는 점이며 그 편차의 제곱의 평균을 cost 함수로 두어 최소값을 경사하강법으로 찾을 수 있었는데 결국 통계학에서의 분산(variance)과 유사한 형태이다.

 


즉 선형회귀 해석은 머신 러닝 관점에서 보면 학습(train)과정에 해당하며 x좌표 데이터는 x_train  데이터에 해당하며 y좌표 데이터는 y_train  데이터에 해당한다. 따라서 3점 데이터 선형회귀 분석 결과는 학습(train)과정을 통해서 결정론적인(deterministic) 방식으로 정의 된  x_train 독립 변수 데이타에 대한 random 한 종속변수 y_train 데이타의 통계확율적인 모형을 제공하게 된다.

앞의 선형회귀 예제들에 대한 TensorFlow  머신 러닝 루틴은 학습을 위한 통계확율적인(statistical 또는 probabilistic) 데이터로 규정되는 y_train 데이타와 선형회귀 분석을 위한 hypothesis로 이루어진 cost 함수를 구성하게 된다.

TensorFlow 라이브러리 모듈을 사용한 단순한 선형회귀 분석 과정에서 시작되는  머신 러닝 과정은 어떻게 보면 소수의 전문가 영역에 머물러 있다고 볼 수 있는데, 다시 말하자면 지금까지 “아무도 얘기해 주지 않았던” 보다 복잡한 통계 확률적인 문제로 확대해 나갈 수 있다.

특히 머신 러닝을 연구해 나감에 있어서 직면하게 되는 Multivariable 회귀분석이라든지, 1960년대 인공지능연구와 관련된 미해결 과제였던 퍼셉트론의 XOR 문제를 포함하여 MNIST  숫자 인식 머신러닝에 이르기까지 어떻게 통계확율적인 차원에서 hypothesis를 구성하고 그에 따른 Cost 함수를 구성해 나가게 되는지 “지금까지 아무도 얘기해 주지 않았던” 내용을 어느 정도 철저하게 이해하게 된다면 아두이노 코딩을 구사하는 수준의 필자를 포함한 여러분도 곧 머지않아 딥 뉴럴 네트워크라든지, CNN, RNN과 같은 첨단의 머신 러닝 분야를 보다 쉽게 접할 수 있게 되리라고 기대한다.