tensorflow 설치하면서 인공지능을 정의해보자

2017. 7. 20. 21:55 Posted by 아는 개발자

인공지능이 정확히 무엇인지 생각해보기에 앞서서 Ubuntu 터미널에 tensorflow 설치 명령어 하나만 실행해둡시다.

(혹시 GPU를 사용하는 버전으로 설치하고 싶으신 분은 tensorflow 사이트에서 확인해보시고 설치하셔야 합니다!)


sudo pip install --upgrade tensorflow


인터넷 사양에 따라서 20-30분 정도 걸립니다. 딱 인공지능에 대해서 정의 해보기 좋은 시간이네요. 그럼 시작해볼까요?


지금 우리에게 가장 익숙한 인공지능은 알파고입니다. 알파고는 엄청난 양의 기보를 학습한 후에 어떤 위치에 수를 놓으면 유리한지를 알게 됐습니다. 자 그렇다면 인공지능은 결국 대량의 데이터를 학습한 결과물 이라고 손쉽게 정의해볼 수 있을 것 같습니다.


그런데 대량의 데이터라면 어떤 단어가 떠오르지 않으세요? 2-3년전만해도 이 단어가 뉴스를 휩쓸고 다녔습니다. 바로 "빅데이터"입니다. 대량의 데이터를 축적한 기업 또는 연구소가 이 데이터를 분석해 사용자에게 유용한 정보를 제공하기 위해 여러가지 연구를 진행하곤 했었죠. 이런 데이터 분석 덕분에 쇼핑몰에서는 특정 나이대의 소비자들이 어떤 상품을 선호하는지, 정부 연구소에서는 사회 취약층의 소득 구조를 좀더 잘 파악하게 됐습니다. 이것 역시 대량의 데이터 덕분입니다.


인공지능은 대량의 데이터를 학습했고 빅데이터는 분석했습니다. 학습과 분석. 사실 이렇게 개념으로 표현해서 달라 보이는 것이지 데이터를 이용했다는 사실 만큼은 둘다 동일합니다. 데이터를 사용한 사실 하나만 놓고 보면 둘 간의 경계가 매우 모호한것 같습니다.


 

(인공지능과 빅데이터 모두 대량의 데이터를 사용한다는 점은 다를 것이 없어 보입니다)


하지만 둘 사이에 예측이란 단어를 놓으면 차이는 확연히 구분됩니다. 빅 데이터는 (물론 분야마다 다르긴 합니다만)예측을 하지 않습니다. 빅데이터는 어질러진(unstructured) 데이터들을 분석하기 좋게 정리정돈을 잘 한 후 여기서 유용한 정보(useful information)를 추출하는 것이 목표입니다. 이와 달리 인공지능은 잘 정돈된 데이터(structured)를 여러 알고리즘을 통해 학습 한 후 가장 그럴듯한 미래를 예측합니다. 알파고로 예를 들면 기보는 학습에 사용된 잘 정돈된 데이터 였고 알파고가 이세돌을 상대로 놓았던 수들은 승리하기 가장 유리한 예측 들이었습니다. 


자 그러면 이제 인공지능을 정의 해볼 수 있겠습니다. 인공지능은 '대량의 데이터를 학습해 가장 그럴듯한 미래를 예측한다'. 엄청 거창한 것이 나올 줄 알았는데 의외로 간단하지요? 정의를 아래의 그림처럼 표현해 볼 수 있습니다


(잘 정돈된 데이터를 학습한 모델은 미래를 예측 할 수 있습니다)


여기서 모델은 잘 정돈된 데이터를 학습한 결과물입니다. Test Data를 모델에 입력하면 가장 그럴 듯한 예측을 하는 것을 말하지요. 머신러닝의 성능은 얼마나 예측을 잘하는 모델을 잘 만드느냐에 달렸고 이 모델은 얼마나 풍부한 데이터를 갖고 있느냐 그리고 얼마나 우수한 학습 알고리즘을 사용하고 있느냐에 달려있습니다. 많은 인공지능 연구자들이 좋은 학습 알고리즘을 만드는데 시간을 많이 투자했고 가장 간단한 선형 회귀(Linear Regression) 부터 알파고에 적용된 딥러닝(Deep Learning)까지 만들어진 상태입니다.


이제 우리가 공부할 부분도 명확해졌습니다. 우리는 인공지능에서 학습 알고리즘을 공부해볼 것입니다. 가장 기초적인 선형회귀에서부터 뉴럴네트워크까지 차근차근 밟아볼까요?

728x90