인공지능(AI, Artificial Intelligence)

advanced concept터미네이터 아닙니다

인공지능이란 무엇일까요? 그리고 기계학습, 빅데이터 같은 개념들과는 어떤 관련이 있는 걸까요?

개념

  • 인공지능(Artificial Intelligence)은 인간의 지능을 기계 등에 인공적으로 구현한 것입니다.
    • 영어로 Aritificial Intelligence는 인공지능이기도 하고, 인공지능학이기도 합니다.
  • 인공지능학은 지능을 만들 뿐 물리적인 실체를 만들지는 않는다는 측면에서 로봇학(Robotics)과 구별됩니다.

인공지능도 강한 게 있고, 약한 게 있다?

  • 인공지능은 크게 보면 General AI와 Narrow AI로 나눌 수 있습니다.
    • 우리나라에서는 General AI를 ‘강한 인공지능’, Narrow AI를 ‘약한 인공지능’이라고 부릅니다.
  • General AI는 흔히 영화에 등장하는 인공지능을 생각하면 됩니다.
    • 무엇을 해야할 지 스스로 결정하고, 사람이 머리로 할 수 있는 일은 무엇이든지 할 수 있는 인공지능입니다.
    • General AI를 위해서는 인공지능이 스스로 자아를 가져야 하는데, 아직까지 우리는 ‘자아’가 어떻게 만들어지는지 설명하지 못하기 때문에 아직 General AI는 구현할 수 없습니다.
      • 즉, 사람과 같은 ‘강한 인공지능’은 만들 수 없습니다. 단지, 주어진 어떤 일을 할 수 있는 ‘약한 인공지능’을 만들 뿐입니다.
    • General AI를 상상할 때에는 로봇과 결합된 인조인간을 상상하는 경우도 많지만, General AI는 두뇌부분만 구현한 것이라 생각하시면 됩니다.
      • 참고로, 몸 부분을 만드는 것은 로봇학(Robotics)의 휴머노이드 로봇(Humanoid Robot) 분야입니다.
  • Narrow AI는 최근에 인공지능 업계에서 활발하게 만들어내고 있는 인공지능입니다.
    • Narrow AI는 한 가지 기능만 가능하고, 그것만 잘 합니다. 다른 문제는 다루지 못합니다.
    • 예를 들어 사진에서 얼굴을 인식하는 인공지능은 사진에서 얼굴만 인식할 수 있습니다. 사진이 아닌 영상이나 그림에서는 인식하지 못하고, 얼굴이 아닌 손이나 발을 인식할 수는 없습니다.
    • 그렇기 때문에 Narrow AI를 활용해서 어떤 서비스를 제공하려면 그에 맞는 인공지능을 만들어야만 합니다.
      • 사람의 말을 알아듣는 인공지능 스피커, 스스로 운전하는 자율주행 프로그램, 웹사이트의 정보를 수집하는 웹크롤러, 상품을 추천하는 추천시스템은 모두 상당히 다른 개발과정을 필요로 합니다.
    • 사람들은 흔히 Narrow AI가 수행할 수 있는 일의 기준을 사람에 비교해서 생각하기 때문에 Narrow AI를 보고 만능일 것이라는 생각을 합니다.
      • 사람은 사진에서 얼굴을 구분할 수 있으면 영상에서도 구분할 수 있기 때문에 인공지능도 그럴 것이라고 생각하는 거죠. 하지만 그렇지 않습니다.
    • Narrow AI가 하는 일의 범위가 좁으면 좁을수록 그 일을 더 잘하게 되고, 그 범위가 넓어질수록 일을 잘 하지 못하게 됩니다.
      • 그렇기 때문에 산업적으로는 하는 일의 범위가 넓은 AI보다 한 가지 일을 잘하는 AI를 만들게 됩니다.
    • Narrow AI가 수행하는 지적 작업에 따라 인공지능의 분야를 나눠볼 수 있습니다.
      • 이 글에서는 ‘인공지능’을 ‘약한 인공지능’으로 이해하시면 됩니다.

인공지능의 분야

  • 지능, 즉 인간의 지적능력은 매우 다양하기 때문에 인공지능 또한 매우 다양한 분야가 있습니다.

  • 인공지능 연구가 거의 마무리되었다고 볼 수 있는 지적능력이 있는데, 그것은 ‘기억’입니다.
    • 인간이 뇌에 담을 수 있는 것보다 훨씬 더 많은 정보를 기계에 저장하고 있습니다.
    • ‘기억’에 대한 인공지능 기술은 매우 발달되어 있고, 실생활에서도 많이 사용되고 있습니다. 그래서 ‘기억’이 ‘인공지능’분야의 하나라고 느끼지 못하는 사람도 많지만, ‘기억’과 관련해서는 기계가 이미 사람을 뛰어넘은지 오래되었기 때문에 그것을 잊었을 뿐, ‘기억’도 분명히 인공지능의 한 분야입니다.
  • ‘기억’말고도 ‘이해’, ‘학습’, ‘예측’, ‘연상’, ‘추론’, ‘계획’, ‘창조’, ‘망각’ 등의 다양한 지적능력이 있는데, 이 분야에 대한 연구가 빠르게 진행되고 있습니다.
    • 최근에는 ‘이해’, ‘학습’, ‘예측’에 대한 놀랄만한 연구성과가 나오고 있으며, 이미 평균적인 사람의 능력을 뛰어넘었다고 볼 수 있습니다.
    • ‘추론’, ‘계획’, ‘창조’, ‘망각’ 등은 ‘이해’나 ‘학습’에 비해서는 좀 더 연구가 어려운 분야로 볼 수 있습니다.

인공지능 개발 과정: 알고리즘을 어떻게 만들 것인가?

  • 인공지능이 제대로 작동하려면 문제를 해결할 수 있는 알고리즘이 있고, 인공지능이 그 알고리즘 대로 행동할 수 있어야 합니다.
  • 그런데, 이 알고리즘을 만들기가 쉽지 않습니다.
    • 예를 들어, 여러분이 0부터 9까지의 사진 중 하나를 보고 그것이 어떤 숫자인지 맞춰본다고 가정해보십시오.

Seven

  • 이것은 1입니까? 7입니까? 그렇다면 왜 그런지 설명해보십시오.
  • 우리가 인공지능에게 이것을 설명하려면 정말 많은 내용들을 알려주어야 합니다.
    • 긴 막대기 모양에서 짧게 구부러진 초의 모양이 왜 1이 아니라 7인지 판단할 수 있는 기준이 있을까요? 구부러진 부분이 없거나 45도 이하의 각도로 기울어진 경우에만 1로 보면 될까요?
    • 사진의 방향이 어느 쪽이 위쪽인지, 숫자를 판단할 때는 뒤쪽의 배경 부분과 케이크 부분은 왜 무시해야 하는지, 숫자모양 아래에 연결되어 있는 부분은 제외해야 하는지, 초가 약간 기울어져 있다는 것은 어떻게 알 수 있는지 등등에 대해 모두 설명해 준 다음에야 이 사진을 보고 이것이 숫자 7인것을 알 수 있을 것입니다.
    • 아라비아 숫자를 설명하는 것도 어려운데, 사람들도 어렵게 생각하는 문제를 어떻게 기계가 알게 할 수 있을까요?
    • 이 문제를 고민하는 분야가 기계학습(Machine Learning) 분야입니다.

과거의 방법론: 판단기준을 만들자

  • 인공지능을 개발하기 위해 노력했던 최초의 연구자들이 사용한 방법은 기준이 되는 질문을 여러개 던지고 그 답변에 따라 최종값을 정하는 방법입니다.
    • 예를 들어, 숫자를 판단하는 방법을 다음과 같이 설계하는 방식입니다.

Numbers1

어떤 숫자가 직선으로만 이루어져 있는가? 아니면 곡선으로만 이루어져 있는가? 아니면 직선과 곡선의 조합으로 이루어져 있는가?

  1. (직선으로만 이루어진 숫자인 경우) 두 직선이 만나는 교차점이 존재하는가?
    1-1. 존재하면 4, 아니면 1 또는 7
    1-2. (직선으로만 이루어져 있고 교차점이 존재하지 않는 경우) 꺾인 부분이 어떤 모양인가?
    1-2-1. 45도 이내로 꺾인 부분이 있으면: 1, 45도 이상으로 꺾인 부분이 있으면 7
  2. (곡선으로만 이루어진 숫자의 경우) 내부에 타원이 몇 개나 있는가?
    2-1. 없으면 3, 1개 있으면 0 또는 6 또는 9, 2개 있으면 8
    2-1-1. (곡선으로만 이루어져 있고 내부에 타원이 1개 있는 경우) 타원에 밖으로 연결된 선이 있는가?
    2-1-2. 있으면 6 또는 9, 없으면 0
    2-1-2-1. (곡선으로만 이루어져 있고 내부에 타원이 1개 있고, 밖으로 연결된 선이 있는 경우) 연결된 선이 타원 위에 있는가? 아래에 있는가?
    2-1-2-1-1. 위에 있으면 6, 아래에 있으면 9
  3. (직선과 곡선의 조합으로 이루어진 숫자의 경우) 직선이 숫자 위에 있는가 아래에 있는가?
    3-1. 위에 있으면 5, 아래에 있으면 2
  • 이 규칙을 읽으면서 느끼셨겠지만, 굉장히 허술한 규칙입니다. 수없이 많은 예외가 있을 수 있습니다. 예를 들면, 이런 숫자는 어떨까요?

Numbers2

  • 이 질문들을 만들어 낸, 즉 알고리즘을 개발한 사람은 다음 사진을 보고 절망에 빠집니다.

Numbers3

현재의 방법론: 기계가 스스로 배우게 하자

  • 이 방법은 아닌 것 같습니다. 그래서 사람들이 새로 생각해낸 방법이 기계가 스스로 익히도록 하는 것입니다.
  • 다시 생각해보면, 우리가 숫자를 배울 때도 그것이 곡선인지, 직선인지 꺾인 부분이 있는지, 안에 타원이 있는지를 기준으로 판단하라고 배우지 않았습니다.
    • 단순하게, 숫자를 가리키면서 이건 1이야, 이건 2야, 이건 3이야 하는 식으로 반복을 했을 뿐입니다. 그렇지 않나요?
  • 그래서, 기계학습은 상당히 많은 자료들을 기계에게 보여주고 그것이 무엇인지를 반복적으로 알려줍니다.
    • 즉, 입력값에 따른 결과가 맞았는지 틀렸는지만 알려주고, 틀린 경우에 알고리즘을 약간 수정하는 과정을 수없이 반복해서 원하는 결과가 나오도록 하는 것입니다.
  • 이 과정을 아주 쉽게 설명해준 영상이 있어 추천드립니다.(강추!)

머신러닝에 대한 아주 쉬운 설명

인공지능, 기계학습(머신러닝), 빅데이터의 관계

  • 기계학습은 인공지능 알고리즘을 개발하는 방법 중의 하나라는 것을 알아보았습니다.
    • 기계학습에 있어서 중요한 것 중 하나는 학습을 위한 데이터입니다. 아주아주 많은 데이터가 필요합니다.
    • 그 엄청나게 많은 데이터를 빅데이터라고 부릅니다. 쉽게 말해서 사람은 도저히 다 볼 수 없을 정도로 많은 데이터가 빅데이터입니다.
    • 그렇기 때문에 빅데이터는 기계학습이 없으면 무용지물이 됩니다. 너무 많기 때문에 인공지능이 아니면 다 이해할 수가 없는 것이죠.
  • 즉, 빅데이터는 인공지능을 개발하기 위해 필요한 중요한 학습자료라고 할 수 있습니다.
    • 물론, 모든 빅데이터가 학습에 적합한 형태는 아니기 때문에 빅데이터를 학습에 적합한 형태로 바꾸는 작업 역시 필요합니다.
    • 실제로는 빅데이터를 학습하는 시간보다 빅데이터를 학습할 수 있는 형태로 바꾸는데 더 오랜 시간이 걸립니다.