이끼의 생각

5. 머신러닝이란? 본문

과거에는 인공지능을 개발할 때 해당 분야의 전문가들이 만든 많은 양의 샘플들을 데이터베이스화하여 자료들을 일일이 수작업으로 컴퓨터에 직접 등록하는 방법을 사용했습니다.


하지만 이러한 방법은 대부분의 작업이 사람의 손을 거쳐야 하므로 필연적으로 많은 노력과 비용이 발생하게 됩니다.


또한, 시대가 발전함에 따라 사람조차 명확하게 구분할 수 없는 지식(no explicit knowledge)을 구현해야 하거나, 사람이 일일이 구현하기에는 너무 많은 양의 규칙들이 필요한 경우가 생겨나기 시작합니다.

이러한 경우에 사용할 수 있도록 고안된 방법이 바로 머신러닝(Machine Learning)입니다.



머신러닝(Machine Learning)이란?


 기계학습이라고도 불리는 머신러닝은 컴퓨터를 인간처럼 학습시킴으로써 인간의 도움 없이 컴퓨터가 스스로 새로운 규칙을 생성할 수 있지 않을까 하는 발상으로부터 시작되었습니다.


 기계 학습(機械學習) 또는 머신 러닝(영어: machine learning)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.


 기계 학습의 핵심은 표현(representation)과 일반화(generalization)에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다. 이는 전산 학습 이론 분야이기도 하다. 다양한 기계 학습의 응용이 존재한다. 문자 인식은 이를 이용한 가장 잘 알려진 사례이다.


 기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야이며, 어떠한 작업(Task)에 대해 꾸준한 경험(Experience)을 통하여 작업에 대한 성능(Performance)를 높이는 것이 주요 이슈 입니다.






머신러닝의 동작 방식


머신러닝이란 컴퓨터가 스스로 학습할 수 있도록 도와주는 알고리즘이나 기술을 개발하는 분야를 가리킵니다.


이러한 머신러닝은 일반적으로 다음과 같은 순서대로 동작합니다.


1. 일정량 이상의 샘플 데이터를 입력한다.


2. 입력받은 데이터를 분석하여 일정한 패턴과 규칙을 찾아낸다.


3. 찾아낸 패턴과 규칙을 가지고 의사결정 및 예측 등을 수행한다.


따라서 머신러닝을 한마디로 정의하자면 수많은 데이터를 학습하여 일정한 패턴을 찾아내고 그것을 활용하는 행위라고 할 수 있습니다.




벡터(vector)와 특징량

 

vector


위와 같은 그림을 보여주며 네모 칸에 들어갈 알맞은 모양을 말해보라고 하면 대부분의 사람들이 별모양이라고 답할 것입니다.


이는 사람이 가지고 있는 지각능력을 사용하여 각 모양이 뭉쳐 있는 위치관계를 무의식적으로 파악했기 때문입니다.


하지만 컴퓨터는 지각능력을 가지고 있지 않으므로, 이러한 위치관계를 그냥은 인식하지 못합니다.


 

이때 활용되는 것이 바로 벡터(vector)입니다.


벡터란 공간에서 크기와 방향을 가지는 것을 의미하며, 위의 그림에서는 별모양과 원모양의 점들이 바로 하나하나의 벡터가 되는 것입니다.


또한, 특정 벡터들이 모여 있는 것을 특징량이라고 부르며, 머신러닝에서는 바로 이 특징량을 바탕으로 벡터들을 서로 구분하게 됩니다.


vector


앞선 그림에 특징량을 바탕으로 이처럼 구분선을 하나 그으면, 비로소 컴퓨터도 두 특징량을 쉽게 구분할 수 있게 됩니다.


머신러닝은 계산을 통해 이러한 구분선을 찾아내는 행위라고도 볼 수 있습니다.




특징추출(feature extraction)


머신러닝에서 컴퓨터가 스스로 학습하려면, 즉 컴퓨터가 입력받은 데이터를 분석하여 일정한 패턴이나 규칙을 찾아내려면 사람이 인지하는 데이터를 컴퓨터가 인지할 수 있는 데이터로 변환해 주어야 합니다. 이때 데이터별로 어떤 특징을 가지고 있는지를 찾아내고, 그것을 토대로 데이터를 벡터로 변환하는 작업을 특징추출(feature extraction)이라고 합니다.


feature


일반적으로 사용되는 머신러닝을 위한 학습 기계는 범용적인 목적을 위해 제작된 것이므로, 여러분이 원하는 특징을 자동으로 추출해주는 기능은 가지고 있지 않습니다. 따라서 여러 특징 중에서 어떤 특징을 추출할지를 바로 개발자가 결정해야하며, 이것이 바로 머신러닝 개발의 핵심이라고 볼 수 있습니다.


왜냐하면 적절한 특징을 선택해야만 더욱 효과적인 머신러닝을 수행할 수 있기 때문입니다.


예를 들어, 학습 기계에 장미꽃을 학습시킨다고 하면, 우선 어떤 특징을 사용할 것인지를 결정해야 하며 그것을 벡터로 변환해야 합니다.


이때 특징으로 장미꽃의 색상, 꽃잎 수, 모양 등을 사용할 수 있을 것입니다.




** 출처 및 참고 **

[1] 위키백과 

[2] TCP SCHOOL



Comments