default_top_notch
default_setNet1_2

“인공지능이 뭔가요?”

기사승인 2020.06.07  15:52:06

공유
default_news_ad1

- [기고]장동인 AIBB LAB 대표

   
 

“인공지능이 뭔가요?”

많은 사람이 인공지능이 뭔 지를 물어보지만 누구도 정확하게 설명을 못한다. 명확하게 이것이다 라고 하는 설명이 없다.

그런데, 우리 시대에 살면서 인공지능이 정확하게 무엇인지는 반드시 이해해야 한다.

왜냐하면 국가, 기업, 기관들이 인공지능에 대해서 투자를 하고 인력을 기르고 학교를 만든다고 하니 그렇게 투자해서 무엇을 얻을 것인지 정확히 이해하고 있어야 한다.

요새 많은 기업이 인공지능을 도입한다고 한다.

인공지능을 도입하면 어떤 결과가 있을지 도입하기 전에 알아야 한다. 막연한 인공지능에 대한 환상을 가져서 실제 도입해보면 원하는 수준이 아니라는 것을 알게 되는 경우도 많기 때문이다.

개인도 인생의 길을 결정하는데 인공지능을 하겠다고 하니 정확하게 어디를 가고 있는지 무엇을 할 수 있는지 알아야 한다.

인공지능을 명확하게 이해해야 인공지능이 갖는 특이성에 대해서 앞으로의 제도, 법, 사회 시스템 등을 제대로 만들 수 있다.

인공지능은 머신러닝과 딥러닝을 포함한 말이다. 그러면 머신러닝과 딥러닝이 무엇인가? 

머신러닝과 딥러닝은 지금까지 컴퓨터로 해왔던 프로그래밍의 방식을 완전히 바꾸었다.

   
▲ 그림1 '일반 프로그램과 인공지능의 차이'

위의 그림을 보면 지금까지의 일반 프로그램은 데이터를 입력하면 데이터를 처리해서 데이터를 내보낸다.

우리 사용하는 페이스북도 화면을 누르면 이것이 입력데이터가 돼 원하는 사진을 첨부하고 글을 쓰면 그것이 페이스북에 올라간다.

구글에 검색어를 넣고 검색을 하면 원하는 내용을 보여준다. 은행도 카드를 넣고 비번을 누르면 내가 찾는 금액이 나온다. 

그런데, 이런 컴퓨팅 방식으로는 풀 수 없는 문제가 있다. 개와 고양이의 사진을 보고 어느 사진이 개인지 어느 사진이 고양이인지 판단하는 경우이다.

사람이 개와 고양이의 사진을 보면 금방 안다. 그러나, 컴퓨터는 그렇지 못하다.

‘두 귀가 쫑긋하면 개이고 눈이 동그라면 고양이이다.’ 라는 식으로 컴퓨터에게 알려줘야 한다.

그런데, 이렇게 하다 보면 너무나 많은 경우의 수를 알려주어야 하고 그것이 딱 맞지 않는 경우도 생긴다. 전자메일이 스팸인지 아닌지 사람을 읽으면 금방 아는데, 컴퓨터에게 모든 경우의 수를 다 알려줘야 컴퓨터는 스팸인지 아닌지 구분을 한다.

물론 여기에도 난점이 있다.

스팸을 보내는 사람도 항상 진화하기 때문에 어떻게 하면 스팸으로 분류가 되는지 그 경우의 수를 알고 있기 때문에 그것을 피해서 스팸을 보낸다.

보이스 피싱 경우는 더욱 더 빠르게 진화한다. 한번 노출된 보이스 피싱 방법을 사용하면 사람들은 그것을 잘 알기 때문에 보이스 피싱을 하는 수법이 계속 진화한다.

자, 여기서 개와 고양이의 차이점을 일일이 설명하지 않고 사진에서 개와 고양이를 구분할 수 있는 방법이 있을까? 스팸메일과 일반메일을 설명하지 않고 구분하는 방법은 없을까? 날로 진화해 가는 보이스피싱을 잡을 수 있는 방법은 없을까?

그것은 어떤 알고리즘에게 개의 사진과 고양이 사진 데이터를 주고 학습을 시켜서 프로그램을 자동으로 만들고 그 프로그램이 자동으로 개와 고양이를 맞추게 하면 어떨까?

그것이 아래 그림이다.

이때 학습을 하게 하는 알고리즘이 인공지능 알고리즘이다. 이 인공지능 알고리즘에 이것은 개이고, 이것을 고양이다 라고 하는 답을 알려주는 것을 ‘학습(training)’ 시킨다고 한다.

그 결과 프로그램을 만들게 하는데 이 프로그램을 ‘모델(model)’이라고 한다. 결국 학습된 결과로 나온 모델이 개와 고양이를 구분하는 것이다.

실제 예를 들어보자. 지금은 코딩의 시대이니까 누구나 코딩을 배워야 한다.

특히 경영자, 임원들은 코딩이 무엇인지 알아야 한다. 그래야 명확한 이해를 통해 명확한 의사결정을 할 수 있다.

   
▲ 그림2 '입력값 x를 받아서 3x+1의 값을 프린트해주는 프로그램'

y = 3x + 1 이라는 프로그램이 있다면 x=1 이라는 data를 주면, output는 4가 나온다. 이를 파이썬 프로그램으로 짜면 위와 같다.

cal(x)라는 기능을 가진 함수는 3x+1을 계산해준다.

그 다음 input은 화면에서 데이터를 받는다. 그것을 숫자로 바꾸면 x에는 입력된 값이 들어가서 결과적으로 3x + 1를 계산해서 프린트해준다.

위의 예를 들면 위의 프로그램은 input으로 4를 받아서 3*4 + 1의 결과를 계산해서 13이라는 output을 내어 준다.

간단한 형태이긴 하지만, 기본적으로 세상에 돌아가는 모든 컴퓨터 프로그램의 예를 보여준다. 

그런데…

인공지능(머신러닝+딥러닝)은 완전히 다르다. 이것은 데이터를 input으로 주고 인공지능 알고리즘으로 학습을 시키면 프로그램이 만들어져 나온다.

이 프로그램은 사람이 짠 것이 아니라 데이터를 특정 알고리즘에 학습을 시켜서 나온 결과이다. 

그러면 이 프로그램에 input을 주면 답이 output으로 나온다. 신기하지 않는가?

그러면 예를 들어보자. (x, y) 값이 (1, 4), (2, 7), (3, 10), (4, 13), (5, 16), (6, 19), (7, 22) 이런 데이터가 있다. 그러니까 두개로 쌍을 이룬 데이터가 7개가 있다. 잘 보면 이 데이터는 사실 y = 3x + 1 의 (x, y) 데이터이다.

그니까 인공지능의 목표는 7개의 데이터를 학습해서 y = 3x + 1을 계산하는 프로그램을 만드는데 있다. 

자 다음을 보자. 이건 구글에서 만든 '텐서플로우(Tensorflow)로 짠 위의 코드이다.

‘텐서플로우 코드’를 보여주는 이유는 경영자, 임원들이 인공지능 개발자들과 이야기할 수 있어야 하기 때문이다.

기업이 기술에 의해서 변화를 하려면 서로 다른 부서, 다른 직급의 사람들끼리 이해를 해야 하는데, 코딩한 것을 가지고 이야기할 수 있어야 기업의 디지털 트랜스포메이션을 만들어 갈 수 있다.

   
▲ 그림3 '입력값 7개로 학습해서 y=3x+1을 결과를 맞추는 인공지능 프로그램'

#은 코드에 대한 설명이기 때문에 무시한다.

라인 2,3,4는텐서플로우를 쓰겠다는 정의다.

라인 6,7은 데이터 7개를 입력시키는 방식이다. ‘텐서플로우’는 입력방식이 반드시 float라는 숫자 타입만 받기 때문에 1이라고 하지 않고 1.0이라고 한다.

라인 9, 10는 7개의 데이터를 학습시키는 인공지능 정확히는 딥러닝 알고리즘을 정의한 것이다. 

라인 12는 실제로 위에서 정의한 딥러닝 알고리즘을 가지고 7개의 데이터를 읽어서 학습하는 것이다.

epochs = 100이라는 것은 위의 7개의 데이터를 100번 학습을 하라는 뜻이다. 

어쨌든 이 학습 과정은 매우 빠르게 진행이 된다. 결과적으로 모델이 만들어졌다.

마지막에 print(model.predict([8.0]))은 입력을 8로 하면 답이 무엇인지를 프린트해라 라는 코드이다.

답은 25인데, 25.068836을 찍었다.   

왜 그럴까? 우리가 학습시킨 데이터의 수는 불과 7개. 100번만 학습을 시켰기 때문이다.

데이터가 매우 많았다면, 학습을 500번쯤 했다면 매우 정확하게 나왔을 것이다. 이것이 바로 인공지능이다.

이 과정에서 생각해 볼만 한 것이 있다. 코드를 보고 인공지능에 대한 명확한 이해를 해보자.

◆여기서 인공지능이 인공지능 알고리즘인지, 인공지능 알고리즘이 학습시킨 결과 모델을 말하는지 명확하게 할 필요가 있다.

대체적으로 인공지능이라고 사람들이 이야기할 때는 학습이 끝난 모델을 지칭하는 경우가 많다. 그러나 때로는 이것을 혼돈해서 쓰는 경우가 많다.

◆어쨌든 여기서 인공지능 알고리즘이 핵심인데 이것은 누가 만들었을까? 사람이다.

다시 말해서 인공지능이 개와 고양이를 인식하는 것이 아니라, 사람이 인공지능 알고리즘을 만들어서 학습을 시킨 결과 모델이 개와 고양이를 인식하는 것이다.

◆학습된 모델의 정확도는 학습을 하는 데이터의 정확도, 데이터의 갯수와 인공지능 알고리즘 종류, 학습시키는 과정에 달려있다. 

이것을 누가 결정하는가? 인공지능이 아니라 사람이다.

엉터리 데이터로 학습하면 엉터리 인공지능이 나올 수밖에 없다. 인공지능은 무조건 정확하고 스스로 뭔가를 할 수 있다고 생각하는 것은 완전히 잘못된 것이다.

◆인공지능(학습된 모델) 스스로 정확한 인공지능인지 엉터리 인공지능인지 알 수 있을까? 절대로 아니다.

학습된 모델은 단순한 프로그램이다. 입력 데이터가 들어가면 학습한 대로 결과를 출력으로 내줄 뿐이다.

알파고(학습된 모델)가 이세돌을 이겼다고 해서, 알파고가 자체로서 능력이 있는 것이 아니다.

알파고를 만든 사람들이 제대로 된 데이터로 최적의 인공지능 알고리즘으로 학습한 모델일 뿐이다. 사실 알파고는 스스로 바둑을 두는 것도 알지 못한다. 

다만 학습된 대로 할 뿐이다. 

<장동인 AIBB LAB 대표>donchang0725@gmail.com

장동인 AIBB LAB 대표 donchang0725@gmail.com

<저작권자 © BIkorea 무단전재 및 재배포금지>
default_news_ad3
default_setImage2

최신기사

default_news_ad4
default_side_ad1

인기기사

default_side_ad2

포토

1 2 3
set_P1
default_side_ad3

섹션별 인기기사 및 최근기사

default_setNet2
default_bottom
#top
default_bottom_notch