본문 바로가기

AI

Neural Network - 기계학습(machine learning)

기계학습(machine learning)
  학습의 뜻이 '배워 익히는것' 이듯, 기계학습도 기계에 기억을 시킨다는 것이다. 단순한 하드디스크에 정보를 저장하는것과는 다른 개념이다. 암튼 습득한 지식은 따로 프로세스가없어도 우리가 바로바로 기억을 해 내듯 기계도 저장된 입력에 따른 결과를 출력해 내는것이다.

  기계학습에는 두가지 방법이 있는데 하나는 주어진 입력패턴과 그 패턴에 대한 출력값을 동시에 기억시키는 것이고, 다른 하나는 그냥 입력패턴만을 주어 학습시키는 것이다. 전자는 지도학습(supervised learning 후자는 비지도학습(unsupervised learning)이라고 한다. 지도학습의 예로 어린아이에게 부모가 자신들의 얼굴을 보여주며 '엄마 아빠'를 가르치는 행위와 비슷하다. 비지도학습의 예로는 집에 온갖 잡동사니가 널부러져있는데 그것들을 정리할 때의 상황('이건 무엇이고 저건 무엇이고...' 사실 이런건 분류나.. 클러스터링에 가깝지만, 아무튼 비슷하다. 실제로 분류나 클러스터링에도 신경망을 이용하기도 한다.)을 들 수 있겠다.  비지도학습이 입력밖에 없다고 해서 우리가 거기에 대한 출력을 얻지 못하는 것은 아니다. 단지 학습 시킬때 입력만 있어도 된다는 뜻이다.

기계학습의 매커니즘
  어떤 입력패턴들의 집합 X가 있다고 하자. 거기에 대한 결과값 Y들이 있고 어떤 함수 f가 있다고 할 때, 이 f는 단순히 X → Y로의 매핑을 저장하는 기능을 하는데 f가 X에서 Y로의 매핑을 수행할 수 있게 하는 과정을 학습이라고 하는것이다.(어휴 복잡하다..)

요약하면 " 입력패턴 X --- 어떤 함수 f ---> 출력값 Y ---- 저장 ---> Map(X, Y) "의 꼴이 된다.
그러면 우리는 나중에 저장된 맵만을 이용하여 빠르게 결과를 얻을 수 있는것이다.

  하지만 저 함수 f는 단순히 X에서 Y로의 매핑만을 수행하기때문에 정교한 문제풀이에는 한계가 있다. 이를 극복하기 위해선 몇가지 필요한 것이 있는데, 결과값을 얼마나 체계적으로 저장할 수 있는지, 패턴들을 어떻게 일반화 시킬 것인지, 저장된 정보가 많을 경우 결과와 비슷한 값들도 당연히 많이 저장되게 되는데 그럴때는 어떤 값을 출력하게 할 지에 대한 것이다.

  경험해본바로는 일반화시키는 과정이 가장 골치아프고 귀찮은 작업인 것 같다.(환장함..) 정해진 틀이 없어 매우 휴리스틱하다. 어떻게 일반화 시키는지에 따라 한패턴의 정보가 왕창 늘어날 수도 있고, 정말 간단해 질 수도 있는 것이다.

ref.> 인공지능개론 - 홍릉사