티스토리 뷰

인공지능 소개 및 역사

Summary

인공지능과 지능에서 모든 것을 아우르는 정의는 어렵다. 하지만 지능을 갖추려면 이러한 능력들이 있어야 된다 라는 식으로 정의를 하는 것은 상대적으로 간단하다.

 

인공지능을 어떤 방식으로 달성할지에 대한 4가지 관점

  • Humanly : 사람처럼 행동하고 사람처럼 생각할 수 있는 인공지능을 구현하겠다

  • Rationally : 이성적인 agent를 구현하겠다

    • 이성적 : 각각의 경체 주체들은 자기가 도달하고자 하는 Utility와 Performance Measure가 존재하고 Performance Measure를 최대화할 수 있는 식으로 행동을 한다.

  • Thinking : 사람이 어떻게 생각하는지를 이해하고 그것대로 구현하자

  • Acting : 사람이 하는 지능적인 행동 자체만을 모사하자

  • Thinking Humanly 관점에서 구현하는 건 매우 어렵지만, Acting Humanly 관점에서 인공지능을 정의하는 것은 상대적으로 쉽다.

  • Turing Test는 Acting Humanly관점에서 인공지능을 정의한것이다.

    사람처럼 생각을 하던, 하지 않던 지능적인 행동만 보이면 인공지능을 갖추었다고 정의한다.

기계 번역기들은 놀라운 성능들을 보여주고 있지만 언어를 전혀 이해하지 못한다, 한국어 문장 쌍을 최대한 많이 모은 다음 그것들 사이의 확률적, 통계적인 상관관계만을 배우는 것이다.

 

인공지능의 주요 토픽

  • Sensing(Computer Vision, 음성 인식), Thinking(문제 해결, 학습), Acting(Rototics, 음성 발화, 표현)

인공지능 학문은 매우 큰 범위이고 정의하기도 쉽지 않다.

'인공지능'이라는 단어보다는 좀 더 정확한 단어를 사용하는 것이 좋다

  • Ex) '인공지능' -> '음성인식을 하는 기계'

Search and Constraints(includes game playing)

  • 인공지능의 큰 분야 중 하나가 탐색에 대한 것이고 탐색은 특히 게임 인공지능에 많이 사용된다.

  • 모든 경우에 대해서 다 검색, 탐색을 하여 '내가 어디에 뒀을 때 이길 확률이 제일 높다.' 라는 것을 판단해서 다음에 두어야 될 수를 결정한다

  • ex) 알파고

Planning and Uncertainty in AI

  • 어떤 계획을 할 때 많은 경우에 고려하지 못한 불확실성을 통해 계획이 많이 틀어지는 걸 알 수가 있다.

  • 인공지능에서도 마찬가지이다, 이런 불확실성을 어떻게 인공지능에서 처리해야 될지도 매우 중요한 인공 지능의 분야이다.

Multi-agent systems

  • 예를 들어 주식시장에서 주식 투자를 하는 수많은 회사들과 개인들이 서로 어떻게 보면 하나의 큰 게임을 하고 있다고 볼 수 있다.

  • 이런 식으로 주식 시장을 어떻게 잘 예측할까를 game Theory 관점에서도 볼 수 있다.

강 인공지능

  • 사람의 지능에 도달하거나 뛰어넘는 인공지능

  • 현실에는 존재하지 않는다, 영화에서 볼 수 있다.

약 인공지능

  • 사람이 어떤 task를 명확히 정의해놓고 어떤 행동을 해야 될지 미리 프로그래밍, 약 인공지능 기계는 주어진 상황에서 어떤 행동을 해야 될지 스스로 결정

  • Ex) 알파고, 공장의 조립 로봇, 현존하는 모든 인공지능

특이점

  • 사람의 지능은 점점 높아지지만 진화되는 속도는 매우 낮다. 하지만 인공지능의 진화 속도는 매우 빠르기 때문에 사람을 추월하는 지점이 있을 것이다.

  • 지능이 서로 다른 두 개의 존재가 있다고 하면, 지능이 낮은 존재는 지능이 높은 존재가 하는 행동이나 말을 전혀 이해하지 못한다. 그래서 특이점이 넘어가면 인공지능이 하는 행동을 사람이 고양이가 된 듯이 전혀 이해를 못하는 현상이 일어나지 않을까? 라는 것이 많은 분들이 가지고 있는 특이점에 대한 두려움이다.

  • 특이점 경험

    • 알파고 때 처음에는 많은 전문가들이 이세돌 9단이 쉽게 알파고를 이길 것이라고 예측

    • 처음에 알파고가 사람이 생각하는 것과 이상한 수를 두면, '쟤가 실수를 했구나.' 이런 식으로 판단했는데, '알고 봤더니 그게 더 나은 수였다.' 이런 게 후에 밝혀졌다.

    • 어떻게 보면 바둑이라는 특별한 게임에 대해서 저희가 Singularity, 특이점을 겪었다고 이해할 수 있다.

  • 특이점이 올 것이냐, 안 올 것이냐? 그런 것들에 대해서 많은 논쟁

    • narrow AI관점, 우리가 어떤 task를 매우 잘 정의하고 그 task만 하는 인공지능을 만들었다. 그렇게 한다면 우리는 Singularity, 특이점을 겪을 것이다.

    • 그러나 일반적인 지능 혹은 각 인공지능 관점에서의 Singularity는 아마 쉽게 오지 않을 거라고 예측한다.

Singularity

  • 블랙홀의 Event Horizon에서 유래

 

 

 

인공지능의 정의

과연 인공지능이라는 게 뭘까요?

인공지능을 정의하는 건 쉽지 않은 일입니다.

왜냐하면 인공지능과 관련된 용어들 하나하나를 보면 쉽게 정의하기가 어려운 용어들이 참으로 많습니다.

 

단적인 예로 인공지능에서 intelligence, 지능이란 부분을 어떻게 정의할까?

그것조차도 학계에서 하나의 완성된 정의가 존재하지 않을 정도입니다.

 

기존 인공지능의 여러 유명한 분들께서 만드신 정의들을 하나둘씩 소개해드리고, 

같이 생각해보시면 좋을 것 같습니다.

 

위에 보이는 정의를 보시면, 핵심 단어라고 할 수 있는 게 'computers think 컴퓨터가 생각을 한다.', 'machines with minds. 마음을 가진 기계다.'  이런 식으로 정의가 되어 있습니다.

 

mind, 마음이라는 용어 자체도 그렇게 쉽게 정의할 수 있는 내용이 아니죠.

그런데 여기서 중요한 것은 컴퓨터 그리고 우리의 intelligence와 상관이 깊은 mind, 이런 단어들이 공통적으로 나타남을 볼 수가 있습니다.

또 다른 정의를 보면, 마찬가지로 우리 정신을 구성하는 여러 기제들이 있는데 그것에 대한 연구를 하는 학문입니다.

그런데 중요한 건 computational model을 만든다.

그러니까 계산 가능한, 컴퓨터에서 실행 가능한 정신적인 기제를 구현하는 학문이라고 보실 수 있습니다.

 

우리는 여러 가지 정신적인 기제들이 있는데, 회상을 한다든지 기억을 한다든지 혹은 추론을 한다든지.

이런 저희가 머리를 활용해서 할 수 있는 수많은 능력을 computational model로 구현하는 학문이라고 보실 수가 있겠습니다.

 

공통적으로 보시면 intelligence라는 단어와 함께 computational processes 혹은 computer, 이런 식으로 공통적으로 나오고 있음을 보실 수가 있습니다.

 

이 정의를 보시면, 결국에 사람이 잘하는 일들을 컴퓨터가 할 수 있도록 하는 학문이라고 정의가 되어 있습니다.

 

중요한 단어 중에 하나가 at the moment입니다.

현재로서는 사람이 잘하는 일을 하는 게 목적일 수는 있지만, 인공지능이 계속 발전되면 그건 너무 당연한 일이 되고,

사람이 할 수 있는 능력을 훨씬 뛰어넘는 일들을 해야지만 인공지능이라고 불릴 수 있는 시대가 올 수도 있겠습니다.

 

아래에 있는 정의가 어떻게 보면 컴퓨터 공학에서 가장 근래에 많이 쓰이는 정의라고 보시면 되겠습니다.

computer science, 컴퓨터 공학의 한 분야이고 특히 지능적인 행동을 자동화하는 것과 관련된 여러 연구 분야라고 이해하시면 되겠습니다.

 

지능의 정의

인공지능이 뭔지 정의하기 위해서는 일단 지능이 무엇인지를 알아야겠죠.

아래는 지능이 무엇일까? 에 대한 질문들입니다.

 

지능에 대해서 전체를 아우를 수 있는 정의라는 게 과연 존재하느냐?라는 질문입니다.

학계에서도 '지능이 뭐다' 이렇게 명확하게 정의를 내린다는 것이 쉽지 않은 일이라는 걸 말씀드리고

따라서 지능이란 단어를 정의하기 힘들다면 당연히 인공지능을 정의하기는 더 힘들다고 할 수 있겠죠.

 

그런데 두 번째 bullet에 표현돼 있는 문장을 보면, 이건 일반적인 영어사전에서 지능이란 단어를 찾았을 때 얻을 수 있는 지능에 대한 설명입니다.

"지식이나 여러 기술들을 습득하고 그걸 적용하는 능력이다."라고 지능이 정의가 되어 있습니다.

이 정의 자체는 매우 훌륭한 정의죠. 하지만 이 하나의 문장으로 지능이라는 것을 완벽히 정의할 수 있냐? 그런 것은 쉽지 않다는 얘기입니다.

 

이렇게 지능이 무엇인지를 하나의 완결된 문장으로 정의하기는 매우 어렵지만,

지능을 갖추기 위해서 어떤 요소들이 있어야 되는지를 나열하는 것은 상대적으로 쉽습니다.

이러한 holistic definition, 즉 전체를 아우르는 정의보다는 '지능을 갖추려면 이러한 능력이 있어야 된다.'라는 식으로 정의를 하는 건 상대적으로 쉽겠죠.

그래서 무엇을 이해하는 능력이나 추론을 하는 능력, 문제를 해결하는 능력, 혹은 학습을 하고, 상식을 가지고 있고, 일반화를 하고 이런 수많은 것을 갖추어야지만 지능적이라고 얘기하기는 상대적으로 쉽다는 얘기입니다.

 

그런데 그렇다고 해서 어떤 요소들을 꼭 갖추어야지만 지능이라고 할 수 있는지 혹은 지능이 있다고 하면 어떤 요소를 꼭 갖추어야 되는지는 여전히 불분명하다고 할 수 있습니다.

 

일반적으로 지능이라는 얘기를 들어보면 사람들은 사람의 지능을 먼저 생각하게 됩니다.

하지만 우리가 쉽게 볼 수 있는 개미, 벌 이런 곤충들 조차도 지능을 가지고 있고요, 또 그런 곤충들은 개개인의 지능이 있지만 그게 군집으로 모임으로써 군집지능을 보일 수가 있습니다.

 

그래서 지능이란 단어를 다양한 레벨로 정의할 수가 있고, 그런 측면에서 지능의 정의가 참으로 어렵다고 말씀드릴 수가 있겠습니다.

 

이제 학문적인 얘기를 말씀드리도록 하겠습니다.

 

인공지능의 달성 방식에 따른 4가지 관점

인공지능이라는, '지능을 인공적으로 만들겠다. 컴퓨터가 가질 수 있는 지능을 만들겠다.' 과학자들이 이런 목표를 가지고 있었는데요

그런 목표를 어떻게 달성하지, 그러니까 인공지능을 어떤 방식으로 달성할지에 대해서 크게 보면 4가지 관점이 이제 존재합니다.

 

위에 보시다시피 4가지 관점이 존재하는데, 왼쪽과 오른쪽은 차이가 humanly라는 단어가 왼쪽에 있고, 오른쪽에는 rationally라는 단어가 있습니다.

그리고 위, 아래를 보시면 Thinking이라는 단어, Acting이라는 단어가 있습니다.

그러니까 인공지능을 사람이 어떻게 생각하는지를 기준으로 구현할 수도 있는 것이고,

혹은 대각선, 반대쪽으로 보시면 지능이 이성적으로 행동할 수 있는 걸 구현하는 방식으로 가겠다. 그렇게 보실 수도 있겠습니다.

 

Humanly and Rationally

각각에 대해서 깊이 말씀을 드리도록 하겠습니다.

첫 번째로 humaly와 rationally를 비교해볼 수가 있겠는데요,

humanly는 말 그대로 '사람 같은'입니다. 그리고 rationally는 '이성적'이라는 건데요.

 

"인공지능을 사람처럼 구현하겠다."라고 보실 수도 있고, 혹은 "이성적인 agent를 하나 만들겠다."라고 볼 수 있다는 겁니다.

그래서 사람 같은 경우에는 사람이 가지고 있는 인지 모델을 이해하는 게 필요할 수가 있겠죠.

 

rationally라는 건 말 그대로 '이성적인' 그러니까 여러분이 배우는 경제학에선 기본적으로 모든 경제참여주체가 이성적인 행동, 판단을 한다고 가정하고 모든 모델을 설계하는데요.

그런 관점에서 보면 이성적이라는 건 각각의 경제 주체들이 자기가 도달하고자 하는 utility, performance measure가 존재하게 되고,

그런 performance measure을 최대화할 수 있는 식으로 행동을 한다. 그렇게 모델링할 수 있겠죠

그렇지만 사람은 항상 이성적인 행동만 하는 게 아니라, 매우 많은 경우에 비이성적인 행동도 함께 합니다.

 

그래서 만약에 여러분이 인공지능을 rationally관점에서 구현한다고 하면, 이제 말 그대로 '이성적인 agent를 만들겠다.'라고 바라보시는 것이고, humaly라고 본다면 '그런 걸 떠나서 사람처럼 행동하고 사람처럼 생각할 수 있는 인공지능을 만들겠다.'라고 보시면 되겠습니다.

humanly를 좀 더 살펴보면, 사람은 놀라운 능력들이 있는데 이게 항상 이성적인 것과 연결되지는 않습니다.

하지만 사람들은 상식을 가지고 있습니다. 상식을 누가 명시적으로 가르쳐주지 않은 내용임에도 불구하고 그냥 아는 것들이 있습니다.

그리고 사회적인 행동을 보이고요. 사회적인 행동이라는 게 꼭 이성에 따라서 하는 건 아닐 수도 있고요.

 

그다음에 사람 같은 경우에 전문가 지식들이 있고, 여러 가지 문제 해결 능력이 있습니다.

퍼즐을 푼다든지 게임을 하다든지 하는 능력이 있겠죠. 그런 것들은 humanly관점으로 보실 수 있겠습니다.

 

Thinking and Acting

Thinking과 Acting의 차이에 대해서 말씀드리겠습니다.

Thinking은 인공지능을 구현하는 데 있어서 "사람이 어떻게 생각하는지를 이해하고 그것대로 구현"하자 라는 관점이고

Acting은 사람이 어떻게 지능적인 행동을 하는지 혹은 어떤 생각을 통해서 그런 지능적인 행동을 하는지는 관심이 없고, "사람이 하는 지능적인 행동 자체만을 모사하자."라는 관점입니다.

 

지능이라는 건 아까 말씀드린 대로 정의하는 게 매우 어려운데, 지능적인 행동이라는 건 상대적으로 정의하기가 쉽습니다.

 

하나의 예로 요즘 여러분이 많이 사용하고 있는 기계번역을 예로 들면, 여러분이 기계번역을 어떻게 하는지, 여러분이 머릿속에서 영어 문장을 봤을 때 그걸 한국어 문장으로 어떻게 번역하는지 그 과정을 알아내는 건 매우 힘들지만, 

여러분이 어떤 함수, 프로그램을 정의해서 '이 프로그램은 영어 문장이 들어오면 무조건 한국어 문장이 나오는 프로그램이다.' 이런 식으로만 정의하면 상대적으로 쉽겠죠.

 

그러니까 현재 기계 번역기들을 보면, 여러분도 깜짝 놀랄 정도로 성능이 매우 좋습니다. 그런데 놀라운 점은 기계 번역기들은 언어를 전혀 이해하지 못합니다.

그럼에도 불구하고 기계 번역기가 아주 놀라운 성능을 보이는 이유는 영어 문장과 그에 상응하는 한국어 문장 쌍을 최대한 많이 모은 다음에 걔네들 사이의 확률적, 통계적인 상관관계만을 배우는 것입니다.  

 

그러니까 '영어 단어가 이런 식으로 나오면 통계적으로 한국어 단어가 이런 식으로 나오더라.' 그런 정보들을 예제로부터 학습을 해서 그대로 보일 뿐이지, 영어가 주어졌을 때 그 영어 문장을 완벽히 이해하고, 그 이해한 것을 바탕으로 한국어로 번역하는 식으로 진행되지 않는다는 것입니다.

 

그래서 중요한 점은 Thinking Humanly 관점에서 구현하는 건 매우 어렵지만, Acting Humanly 관점에서 인공지능을 정의하는 건 상대적으로 쉽습니다.

왜냐하면 그 안에 어떤 일들이 벌어지는지 우리는 관심을 가질 필요가 없고, 인터페이스에서 우리가 영어 문장을 주면 한국어 문장을 내놓는 아주 지능적인 행동만 제대로 할 수 있다면 그 관점에서 이제 인공지능을 구현할 수 있기 때문에 훨씬 상대적으로 쉽다고 할 수 있습니다.

대표적인 예가 Turing Test입니다.

 

어떤 컴퓨터가 인공지능이 있는지 없는지를 판단하는 가장 유명한 테스트 중에 하나가 Turing Test라는 걸 많이들 아실 텐데요.

그것도 Thinking Humanly관점이 아니라 Acting Humanly관점에서 인공지능을 정의하고 구현했다고 보시면 되겠습니다.

 

Turing Test에 대해서 깊게 말씀을 드리면, 아시다시피 Alan Turing은 영국의 암호학 자겸 컴퓨터 공학의 아버지 같은 아주 위대한 분이라고 할 수 있습니다.

그분이 처음에 인공지능이라는 걸 정의하려고 노력을 많이 했는데, 인공지능이라는 것의 정의가 매우 어렵다는 걸 이분도 느끼신 거죠.

그래서 지능이라는 게 너무 정의하기 어려우니까 지능적인 행동 관점에서 인공지능을 한번 정의해보자. 그렇게 시작됐다고 보시면 되겠습니다.

 

아시다시피 Turing Test에는 조사관이 한 명 있습니다. 그리고 닫힌 두 개의 방이 있고요. 이 두 개의 방에 컴퓨터가 있는지 사람이 있는지 조사관은 모릅니다.

그래서 제가 만약 조사관이 돼서 양쪽 방에 질문을 했을 때 그쪽으로부터 답을 얻을 수가 있겠죠.

그런데 제가 만약에 두 답을 듣고도 누가 컴퓨터고 누가 사람인지 구별할 수 없다면, 그럼 그 컴퓨터는 Turing Test를 통과한 거고, 그렇다면 그 Turing Test는 인공지능을 갖추었다고 얘기할 수 있다고 정의가 된 것입니다.

 

좀 전에 말씀드린 바와 같이 여기서는 문 뒤에 어떤 Entity가 있고, 그 Entity로부터 대답을 얻어서 판단을 하는 것이기 때문에 이 컴퓨터가 사람처럼 행동만 하면 그 안에 어떻게 구현이 되어 있든지 간에 사람처럼 생각을 하든 사람처럼 생각을 하지 않든 지능적인 행동만 보이면 인공지능을 갖추었다고 정의할 수 있다. 이렇게 보실 수가 있겠습니다.

 

그래서 여기 보시면 몇 가지 Turing Test의 예들이 있는데요

첫 번째 예는 'Forth Bridge를 주제로 시를 하나 써 달라.'

 

만약 제가 이런 질문을 했다고 하면 컴퓨터가 '나는 빼 달라. 나는 시를 잘 못 쓴다.'이런 식으로 대답을 한다면, 사람이라고 생각할 수도 있겠죠.

 

혹은 밑에 있는 예제처럼 '두 개의 큰 수를 더하라'라고 명령을 주었는데 30초 동안 쉬었다가 답을 내놓는다고 하면, 마찬가지로 사람과 구별할 수 없는 행동을 했다고 할 수 있겠죠.

 

이 예를 보시면 알 수 있다시피 Turing Test는 Acting Humanly관점에서 인공지능을 구현했다고 보시면 되겠습니다.

 

컴퓨터에게 있어 두 개의 큰 수를 더하라는 건 매우 쉬운 일임에도 불구하고 여기서 보시다시피 일부터 30초 쉬고 답을 얘기하는데요.

그것은 어디까지나 사람을 모방하기 위해서, 사람과 똑같은 행동을 하기 위해서 그런 기제들이 들어가 있다고 보실 수 있겠습니다.

 

그래서 Turing Test에 대해서 좀 정리를 해보자면, Acting Humanly관점에서 정의가 됐다고 보실 수 있고,

Acting rationally 관점에서 정의됐다고 할 수는 없습니다. 왜냐하면 '큰 숫자 두 개를 더해라.'그 목적을 최대한 잘 달성하는 건 정확하고 빠르게 푸는 게 가장 성능이 높다고 할 수 있겠죠.

그러면 당연히 그 커뮤터가 Rationally, 이성적으로 행동한다면 그 두 개의 performance measure를 최대화할 수 있도록 정확하고 빠르게 풀어야 되는데, 그렇지 않다는 걸 보실 수가 있겠죠.

그래서 Turing Test라는 건 Acting Humanly관점에서 인공지능을 정의했다고 보시면 되겠습니다.

 

Turing Test는 인공지능을 갖춘 컴퓨터의 행동을 보는 것입니다.

그래서 어떻게 보면 상대적으로 인공지능의 정의와 판단이 간단해졌고 그리고 또 객관적이라고 보실 수 있겠습니다.

 

Turing Test라는 게 인공지능을 정의하기 위한 매우 훌륭한 테스트임은 분명하지만, Turing Test를 통과했다고 해서 무조건 얘가 지능을 갖춘 컴퓨터라고 말하기는 매우 어려운 그런 정의라고 할 수 있습니다.

 

그래서 Turing Test를 통과하기 위해서는 여러 능력을 갖추어야 됩니다. 우선 여러 지식을 컴퓨터가 내부적으로 표현할 수 있어야 되고

내가 가지고 있는 지식들을 바탕으로 내 지식 안에 없는 질문이 들어왔을 때 추론을 통해서 그에 알맞은 대답을 만들어야 됩니다.

 

또 학습을 통해서 새로운 지식을 계속 습득해야 되고 조사관이 얘기하는 질문을 이해하거나 그 질문을 이해해서 말로 표현할 수 있는 능력이 필요합니다.

원래의 Turing Test정의에서는 image(사진, 시작) 정보에 대한 질의응답은 포함되어 있지 않지만, 그것까지 확장해볼 수 있겠죠

 

그렇다고 하면 시각적인 이해능력이라든지 혹은 Robotics와 같이 제가 환경을 움직일 수 있는 능력까지도 필요하다고 할 수 있겠습니다.

그래서 지금 말씀드린 이런 component들이 다른 한편으로 보면 인공지능에서 매우 중요하게 다루는 주제들이라고 보실 수 있겠습니다.

 

The Main Topics of AI

 

몇 가지 중요한 토픽에 대해서 말씀드리도록 하겠습니다.

여기서 말씀드릴 주제가 인공지능의 주제를 모두 아우른다고 할 수는 없고, 대표적인 것만 보여드린다고 생각하시면 되겠습니다.

 

크게 보시면 Sensing, Thinking, Acting 과정이 있습니다.

Sensing이라는 건 말 그대로 감각을 이용해서 환경을 이해하고 환경을 측정해내는 것이고

Thinking은 여러 가지 사고 과정을 말하는 것입니다.

Acting은 제가 생각하고 사고한 내용을 표현하는 방법이라고 할 수 있겠죠

 

Sensing과 관련해서는 Computer Vision이 있습니다.

Computer Vision은 시각 지능에 대한 것입니다. 사람이 눈으로 할 수 있는 엄청나게 다양한 일들을 기계도 할 수 있게 만들겠다.

그게 Computer Vision의 목적이라고 할 수 있는데, 그게 Sensing의 중요한 영역 중 하나입니다.

 

그리고 음성을 인식한다던지 자연어, 사람이 사용하는 언어를 이해하는 것들이 Sensing영역에 있다고 할 수 있겠습니다.

 

또 Thinking 영역에는 좀 전에 말씀드린 지식을 표현하는 것, 문제의 해결 능력, 계획 그리고 예전에 경험으로부터 새로운 지식을 얻어내는 학습과정 이런 것들이 포함된다고 할 수 있겠습니다.

 

Acting은 말 그대로 환경을 향해 표현하는 것입니다. 그래서 Robotics도 이제 Acting 영역이라고 할 수 있겠죠.

혹은 음성 발화를 하는 것도 Acting의 영역이라고 할 수 있겠습니다.

 

보시면 아시겠지만 인공지능이라는 분야는 매우 큰 분야입니다.

인공지능의 요소라고 지금 나열돼 있는 분야들이 각각 하나하나가 아주 큰 연구 분야이고, 각각은 대학교 같은데서는 한 학기에 걸쳐 가르쳐야 될 정도로 매우 방대한 분량입니다.

 

그래서 인공지능이라는 학문은 쉽게 사람들이 사용을 하지만, 너무 큰 범위이고 정의도 하기 쉽지만은 않은 학문분야라고 생각하시면 되겠습니다.

그래서 되도록이면 여러분도 '인공지능'이라는 단어보다는 좀 더 정확한 단어를 사용하는 게 좋다. 그렇게 추천을 드리고 싶습니다.

 

한 가지 예를 들어서 이 방에 만약 요크셔테리어가 있다고 해봅시다.

그럴 경우 어떤 사람은 저 요크셔테리어를 보고 "여기 네 발 달린 짐승이 있네." 이렇게 얘기하는 사람이 있고,

또 한 사람은 "저기 요크셔테리어가 있다." 이렇게 얘기하는 사람이 있다고 하면, 두 번째 사람이 더 전문적이라고 할 수 있겠죠.

 

인공지능이라는 단어가 요즘 많이 오용되고 있는 혹은 너무 필요 이상으로 자주 사용되는 경향이 좀 있는데,

많은 경우에 우리가 인공지능이라고 얘기하는 대다수의 것들이 음성인식을 말하는 경우가 꽤 많습니다.

그럴 경우에는 '인공지능이다.' 이런 용어보다는 '음성인식을 하는 기계' 이런 식으로 얘기하시는 게 더 전문적이고 더 정확하다고 말씀드릴 수가 있겠습니다.

 

몇 가지 중요한 토픽에 대해서 아주 간략하게만 말씀을 드리겠습니다.

인공지능의 큰 분야 중에 하나가 탐색에 대한 것입니다,

탐색은 특히 게임을 분석하는, 게임 인공지능에 아주 많이 사용되는 것입니다.

 

얼마 전에 여러분이 경험해보셨다시피 바둑도 이런 탐색 과정을 통해서 지능적인 게임 플레잉 능력을 보였다고 보시면 되겠습니다.

사실 바둑은 매우 복잡한 문제입니다. 그래서 그것보다 훨씬 쉬운 Tic-Tac-Toe라는 게임에 대해서 말씀을 드리겠습니다.

 

Tic-Tac-Toe라는 건 3x3 그리드가 있고 거기서 O를 칠하는 사람과 X를 칠하는 사람, 두 개의 플레이어로 나눕니다.

그래서 X라고 하는 사람이든 O라고 하는 사람이든 누군가가 먼저 가로로 혹은 세로로 혹은 대각선으로 모두 X혹은 O를 칠할 수 있다고 하면 그 사람이 이게는 게임입니다.

 

이런 게임을 할 수 있는 인공지능을 탐색 과정을 통해서 구현한다고 하면, 처음에 3x3 그리드가 주어졌을 때 X라는 사람이 먼저 게임을 플레이한다고 했을 때 X가 할 수 있는 경우의 수가 9가지가 있겠죠.

그럼 각각의 경우에 대해서 또 그다음에 O라는 사람이 칠할 수 있는 영역, 가능성이 8개가 있겠죠.

 

이런 식으로 모든 경우에 대해서 다 검색을, 탐색을 해서 '내가 어디에 뒀을 때 이길 확률이 제일 높다, ' 그걸 판단해서 그다음에 제가 두어야 될 수를 결정할 수 있겠죠.

 

그래서 기본적으로 알파고도 이와 같은 아이디어로 구현이 됐다고 보실 수가 있습니다.

물론 그 경우에는 탐색 공간이 너무나도 크기 때문에 다른 여러 가지 딥러닝 기술이 활용되긴 했지만, 기본적으로는 탐색을 통해서 게임의 인공지능을 구현했다고 보실 수가 있겠습니다.

 

그다음에 좀 전에 말씀드린 지식 표현이라던지 추론 과정 혹은 계획 과정, 그다음에 여러분도 마찬가지겠지만

여러분이 어떤 계획을 할 때 많은 경우에는 여러분이 미처 고려하지 못한 불확실성을 통해서 여러분의 계획이 많이 틀어지는 걸 아실 수가 있을 텐데요.

인공지능에서도 마찬가지입니다. 그래서 이런 불확실성을 어떻게 인공지능에서 처리해야 될지도 매우 중요한 인공 지능의 분야라고 할 수 있겠습니다. 또 학습도 마찬가지고요.

 

그다음에 또 하나 재미있는 것은 multi-agent systems라고 해서 예를 들면 주식시장이라고 하면 '주식시장은 여러 이벤트를 통해서 다음의 주가를 예측한다.' 이렇게 바라볼 수도 있지만,

주식 투자를 하는 수많은 회사들과 개인들이 서로 어떻게 보면 하나의 매우 큰 게임을 하고 있다고 보실 수가 있습니다.

 

그런 식으로 주식시장을 어떻게 잘 예측할까를 game Theory 관점에서도 보실 수가 있습니다.

이런 것도 매우 중요한 인공지능의 분야라고 할 수 있겠습니다.

 

Strong AI vs Weak AI

여러분이 인공지능 관련해서 많이 듣게 되는 것들에 대해서 깊게 말씀을 드리도록 하겠습니다.

여러분이 많이 듣고 있는 얘기 중 하나가 '강 인공지능' 혹은 '약 인공지능'이라는 단어일 것입니다. 그래서 그 둘의 차이가 무엇인지 간단히 살펴보도록 하겠습니다.

 

우선 약 인공지능은 applied AI 혹은 Narrow AI라고 합니다. '약 인공지능을 갖춘 기계다.' 이것은 사람이 어떤 task를 명확히 정의해놓고  어떤 행동을 해야 될지 미리 다 프로그래밍합니다.

단지 약 인공지능 기계들은 주어진 상황에서 어떤 행동을 해야 될지 스스로 결정해야 되는 거겠죠.

 

물론 어떤 환경이고, 어떤 task고, 어떤 action이 가능한지는 사람이 다 프로그래밍을 하지만, 

그 주어진 상황에서 어떤 판단을 하고 행동을 해야 될지는 인공지능 스스로 판단할 수 있도록 하는 게 약 인공지능이라고 할 수 있습니다.

그래서 지금 여러분이 보는 인공지능은 다 약 인공지능이라고 보실 수 있겠습니다.

 

여러분이 알파고가 매우 지능적인 프로그램이라는 건 아시겠지만, 그렇다고 해도 이건 여전히 약 인공지능 영역에 있습니다.

왜냐하면 수많은 프로그래머들이 '바둑판은 19x19의 그리드 안에서 검은 돌과 흰 돌이 번갈아가면서 두고, 어떤 경우에는 이기고 어떤 경우에는 진다' 

그런 것들을 다 프로그래밍해놓은 상태에서 각 주어진 상황에서 어떤 수를 둬야 될지를 학습한 기계라고 할 수 있기 때문에

바둑을 위해서 개발된 알파고가 갑자기 장기를 둔다거나 하는 건 도저히 상상할 수 없는 일이겠죠.

그래서 알파고는 약 인공지능이라고 할 수 있겠습니다.

그리고 공장에서 조립하는 로봇들도 약 인공지능의 영역이라고 보실 수 있습니다.

 

그에 반해서 강 인공지능은 사람의 지능에 도달하거나 혹은 그걸 뛰어넘는 인공지능이라고 볼 수 있겠습니다.

강 인공지능에서는 더 이상 사람을 모방하지 않고 그 자신의 지능을 갖추게 됩니다. 다른 말로는 General AI, 일반적인 인공지능이라고 얘기를 합니다.

 

그래서 많은 경우 사람이 가지고 있는 특성들, 의식이라던지 예를 들면 자유의지, 자각 이런 것들을 갖추어야지만 강 인공지능이라고 할 수 있겠죠.

그래서 현실 세계에서는 강 인공지능이 거의 없고, 여러분이 볼 수 있는 건 수많은 영화에서나 가능하다고 할 수 있습니다.

 

그 수많은 SF 영화를 보시면, 항상 기계 혹은 안드로이드가 고민하는 게 '나는 누구인가?' 이런 것들로 고민하는 것들을 많이 볼 수가 있는데요.

예를 들면 공각기동대라는 영화를 보시면, 공각기동대의 주인공 로봇이 결국 하는 일은 경찰이 하는 일입니다.

그래서 경찰 로봇을 만든 건데, 경찰 로봇을 만들겠다고 하면 경찰이 해야 되는 일들을 잘 정의해서 그것만 잘할 수 있도록 구현해서 경찰 로봇을 만들면 되겠죠.

그런데 그 경찰 로봇에게 자의식을 주고 혹은 그 경찰 로봇이 '내가 누구인가?' 이런 걸 생각할 기능을 줄 필요는 전혀 없다고 생각하실 수가 있겠습니다.

 

사실 현실 세계에서는 강 인공지능을 꼭 구현해야 된다는 필요성은 상대적으로 적고, 대신에 약 인공지능이라고 한다면, 영화에서 약 인공지능만 나온다고 하면 되게 재미가 없겠죠.

그래서 좀 보수적으로 보는 게 좋을 수도 있을 것 같습니다.

 

많은 경우에 현실 세계에서 인공지능을 갖춘 기계라고 선전하는 것들을 많이 보면, 강 인공지능을 갖춘 것처럼 사람을 호도하는 경우도 매우 많은데요.

많은 경우에 그건 다 정해진 시나리오에 대해서 일일이 사람들이 프로그래밍을 해놓은 것이고, 실제로 강 인공지능은 우리가 쉽게 볼 수 없다고 이해하시면 되겠습니다.

 

Singularity

 

여러분이 많은 듣는 단어 중 하나가 Singularity입니다. 특이점이라는 단어고요.

이 특이점이라는 건 그래프에서 보시면 아시겠지만, 사람의 지능은 점점 진화를 통해서 높아지고 있습니다.

그렇지만 진화되는 속도는 매우 낮다고 할 수 있겠죠.

 

그에 반해서 인공지능의 진화 속도는 매우 빠르기 때문에 어떤 지점이 있을 것이다.

Singularity, 특이점이라는 지점이 있는 것이다.

그 지점에서는 인공지능이 사람의 지능을 뛰어넘을 것이다.라는 것입니다.

 

지능이 서로 다른 두 개의 존재가 있다고 하면, 재미있는 것은 지능이 낮은 존재는 지능이 높은 존재가 하는 행동이나 말을 전혀 이해하지 못한다는 것입니다.

 

예를 들면 이 강의실에 고양이가 한 마리 있다고 하면, 고양이는 저희가 하는 말, 행동을 전혀 이해하지 못합니다.

왜냐하면 고양이는 저희보다 지능이 매우 낮기 때문입니다.

그래서 특이점이 넘어가면 인공지능이 하는 행동을 사람이 고양이가 된 듯이 전혀 이해를 못하는 현상이 일어나지 않을까?

그게 많은 분이 가지고 있는 특이점에 대한 두려움이라고 할 수 있습니다.

 

약간이나마 저희가 특이점을 경험한 거라고 할 수 있다면, 알파고 때를 생각해보시면 되겠죠.

알파고 때 처음에는 많은 전문가들이 이세돌 9단이 쉽게 알파고를 이길 것이라고 예측했었죠.

그래서 처음에 알파고가 사람이 생각하는 것과 이상한 수를 두면, '쟤가 실수를 했구나.' 이런 식으로 판단했는데, '알고 봤더니 그게 더 나은 수였다.' 이런 게 후에 밝혀졌죠.

그게 어떻게 보면 바둑이라는 특별한 게임에 대해서 저희가 Singularity, 특이점을 겪었다고 이해하실 수도 있겠습니다.

 

그래서 많은 전문가들이 과연 특이점이 올 것이냐, 안 올 것이냐? 그런 것들에 대해서 많은 논쟁을 하고 있는데요.

제 개인적인 생각으로 narrow AI관점, 우리가 어떤 task를 매우 잘 정의하고 그 task만 하는 인공지능을 만들었다. 그렇게 했다면 우리는 Singularity, 특이점을 겪을 것입니다.

그러나 일반적인 지능 혹은 각 인공지능 관점에서의 Singularity는 아마 쉽게 오지 않을 거라고 예측해볼 수가 있겠죠.

 

Singularity의 유래

많은 분들이 Singularity라는 단어가 어디에서 왔는지 궁금해하실 수도 있어서 재미있는 그림을 하나 소개해드리고자 합니다.

Singularity라는 이름이 어디서 왔느냐 하면, 물리학의 블랙홀에서 왔습니다.

블랙홀은 아시다시피 빛조차도 빠져나올 수 없는 영역이죠.

 

블랙홀을 중심으로 해서 그 주변에 event horizon이라고 있습니다.

event horizon 안에 있으면 빛조차도 블랙홀 안으로 빨려 들어가는 것이고, event horizon 밖에 있으면 탈출을 할 수 있는 거죠.

그러니까 event horizon 안쪽은 빛조차도 나올 수가 없고, 따라서 관측도 불가능하기 때문에 이 안은 미지의 영역이라는 것입니다.

 

그래서 여기서부터 Singularity라는 단어가 유래했다고 말씀드릴 수 있겠습니다.

 

마치며

지금까지 인공지능의 소개에 대해서 간단히 말씀을 드렸습니다.

말씀드린 바와 같이 인공지능이 워낙 넓은 분야고 정의하기 어려운 측면이 있기 때문에 그렇게 짧은 시간 안에 소개해드리는 게 쉬운 일은 아니지만, 여러분이 오늘 강의를 통해서 좀 더 관심을 가지고 이것저것 많이 살펴보시면 그 인공지능에 대한 이해를 좀 더 넓힐 수 있다고 생각을 합니다.

그러면 다음 강좌에서는 인공지능의 간단한 역사에 대해서 소개해드리도록 하겠습니다.

 

Ref

인공지능의 기초 http://www.kmooc.kr/courses/course-v1:SNUk+SNU048_011k+2019_T2/about

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함