(제목은 거창하지만 실제로는 이를 어떻게 구현할 것인가에 대하여 적어본 지극히 주관적인 로그 정도입니다) 최근 이세돌과 알파고와의 바둑 대결에서 알파고, 즉 컴퓨터가 완승에 가까운 대국 내용을 보여주면서 사람들의 관심이 인공지능 분야에 쏠리고 있습니다.

"왜 이토록 사람들의 관심을 모으는 걸까요?"

사실 그 관심의 정도가 지나칠 정도인데요... 전기차, 줄기세포 등 차세대 신기술 분야에 있어 아마 가장 관심있는 분야가 바로 인공지능 그리고 Machine Learning이 아닐까 싶습니다. 이번 대국을 관심있게 지켜보면서 앞으로는 인공지능 부분에 대하여 부족하지만 자신의 소신을 말할 수 있을 정도는 되야한다는 목표아래 얼마전부터 논문 및 영상에 대한 자료를 참고하고 있습니다.



# 스스로 학습하는 기계(컴퓨터)를 만들기 위해서 무엇을 고민해야하는가가장 먼저 세부적으로 어떤 부분을 알아야하는지 나누어 보고 생각해보는 것이 선행되야 할 것입니다. 먼저 지극히 단순하게 구분지어 본다면 다음과 같을 것입니다.


-- 컴퓨터 : 인간 --

1. 데이터 수집 - 인지능력 (오감)
2. 데이터 저장 - 두뇌
3. 데이터 처리 - 두뇌
4. 처리된 정보를 출력 - 행동




1. 데이터 수집데이터 수집의 과정은 목표는 인간보다 뛰어난 인지능력을 갖는 것입니다. 예를들어 사물을 본다면 그 사물을 더 정확한 카메라(눈)를 통해 인식하거나 ... 아니면 촉감이 거친 사물을 파악하여 거친 굴곡의 정보를 더 정확히 인식하는 과정이 될 것입니다.



2. 데이터 저장1번의 과정을 통해 얻은 데이터들은 정보의 형태로 데이터베이스(DB)에 저장되어야 할 것입니다. 데이터 저장의 과정은 데이터를 처리하기 위해 인덱싱 과정을 거처야하는데 여기서 관건은 처리 속도인 퍼포먼스 부분이 될 것입니다. 쉽게 생각한다면 관계형 또는 NoSQL 역시 생각할 부분이 될 것입니다.


3. 데이터 처리데이터 처리과정이 인공지능 부분의 가장 어렵고 복잡한 부분이 아닐까 생각됩니다. 정보의 저장은 저장소와 인덱스 부분이 관건이지만 저장된 정보를 지식(Knowledge) 수준으로 변환하고 의미있는 정보들끼리 묶거나 연관짓는 부분들이 모두 이 부분에 해당될 것입니다. 얼마나가 아닌 어떻게의 과정이므로 가장 심도있게 학습되야 한다고 생각됩니다.


4. 처리된 정보를 출력자동차라면 셀프 드라이빙이 정보를 출력하는 과정이라고 말할 수 있습니다. 번역기라면 스스로 대화할 수 있는 것이 출력과정이 되겠죠. 출력의 결과는 데이터 처리에 의한 결과이므로 데이터 처리가 잘 되어야 출력의 결과도 좋을 것이라 생각할 수 있습니다.

앞으로는 좀 더 심도 있는 내용들을 다루어 포스팅할 계획을 가지고 있습니다. 현재는 잠시 흔적(?) 발자국을 남기는 정도로 블로그에 올렸다고 보시면 됩니다.