본문 바로가기

Programmer Jinyo/Machine Learning

머신러닝,딥러닝 초보를 위한 튜토리얼 강의 1 ( 머신러닝이란? )


투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)

바이낸스(₿) 수수료 평생 20% 할인받는 링크로 가입하기! 🔥 (클릭!)

2018/06/27 - [Programmer Jinyo/Machine Learning] - 머신러닝,딥러닝 초보를 위한 튜토리얼 강의 0 ( Intro )

2018/06/27 - [Programmer Jinyo/Machine Learning] - 머신러닝,딥러닝 초보를 위한 튜토리얼 강의 2 ( Cost Function , Gradient Descent )




첫 번째 글인 만큼 기본적인 부분들에 대해서 언급하고 시작하려고 한다.



기계가 뭘 어떻게 학습을 한다는 것일까?


정말 애매한 말이지 않은가?


생명체가 아닌것이 무언가를 배울 수 있도록 어떻게 만들어 내는 것일까?


그러니까 결국 머신러닝이란 어떤식으로 이루어 지는 것일까?





-


인터넷에서 많은 글들을 읽으면서 제일 짜증날 때가 바로


'쉽게 말해서 ~~~ 이다' 


라고 말했는데 안쉬울때다.




ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래서 난 최대한 그렇지 않은 글을 작성하려고 하니 만약 글이 이해가 잘 가지 않는다면 꼭 말해주면 좋겠다.


-



머신러닝이란 막연하게 기계가 사람처럼 '응애 응애, 엄마 엄마' 하는 법을 자연스레 배운다거나, 다른 곳을 가기 위해서 걸음마를 배워야 하기 때문에 아장아장 걸어본다거나 하는 그런 '사람의 애매한 행위'와는 기본적으로 차이가 있다.



그럼 대체 뭘 학습(Learning)하는 것이냐에 대한 의문을 가지는 것이 당연하다.


머신러닝은 뭐 , 한마디로 정의할 수는 없겠지만 나 나름대로 정의해보자면


' 어떤 목적을 위해 설계된 계산 식(모델)의 계수(파라미터) ' 를 학습시키는 것이라고 할 수 있겠다.


이 말을 들었을 때 만약 머신러닝에 관한 글이 처음이라면 이 문장이 대체 무슨 소린가 싶을 것이라고 생각한다.


예를 들어서 설명하도록 하겠다.


일단 '어떤 목적' 은 꽤나 광범위하게 설정될 수 있는데 예를 들어, 


' 내일의 온도는 몇도일까? '


' 이 사진은 고양이 사진일까 강아지 사진일까? '


' 이 음성 파일은 무슨 말을 하는 걸까? '


' 이 신문 기사와 유사한 또 다른 신문 기사는 무엇일까? '


' 어떤 얼굴 사진을 웃는 사진으로 바꾸면 어떻게 될까? '


등등이 우리가 해결하고 싶은 ' 목적 ' 이 될 수 있다.


그럼 그 목적을 위해 ' 설계된 계산 식 (모델) ' 은 뭘까?



실제로 다양한 목적에 따라서 다양한 계산 식을 도입한다.


간단한 예를 들어서 내일 온도를 맞추는 여러 가지 모델(계산 식)이 있을 수 있겠으나, 간단하게 어제와 오늘의 온도를 데이터로 받아서 내일의 온도를 맞추는 식을 설계했다고 해 보자.


제곱을 하거나 로그, 루트 삼각함수 등을 이용해서 여러 복잡한 식을 꾸밀 수도 있겠고, 음.. 나같은 경우에는 그냥 간단하게




이런 식으로 계산 식을 설계했다고 해 보자.


이런 식 자체를 하나의 목적(내일 온도를 맞추기)을 해결하기위한 모델 (설계된 계산 식) 이라고 볼 수 있는것이다.


하지만 나는 저런 식을 설계했지만, 적당한 a와 b값을 찾지 못했다.


오늘 온도를 얼만큼 적용시키고, 어제 온도를 얼만큼 적용시킬지 잘 모르겠다.


a와 b를 1/2로 해서 평균을 내는것이 좋은건지, 어제보다 오늘 1도만큼 올랐으면 내일도 1도 오른다고 예측하는 것이 맞는건지.. ( a = 2 , b = -1 ) ...


여기 이 정해지지 않은 값 (이 식에서의 a, b)들이 바로 모델의 파라미터가 된다.



이제, 수도없이 많은 과거의 기상 관측 데이터들을 이용해서 나름 잘 들어맞는 a값과 b 값을 찾아내는 그 과정을 '학습한다' 라고 말 하는것이다.



* 어떻게 데이터를 통해서 구체적으로 a와 b를 찾아내는지는 다음 글에서 다루도록 하자.