4.12인공지능
인공지능의 역사와 최근 흐름
TL;DR
추억의 쪽지 시험
89. 인간의 영역에 들어온 컴퓨터
컴퓨팅 성능, 메모리 기술이 꾸준히 향상되고, 막대한 양의 데이터가 마련되었으며, 여기에 복잡한 수학 공식들을 섞을 수 있게 되면서 인공지능 분야에 많은 발전이 있었다. 인간이 생각하는 방식으로 컴퓨터가 동작하게 된 것이다.
인공지능의 역사는 1950년대까지 거슬러 올라가지만, 실제로는 비교적 최근에서야 효과를 발휘하기 시작했다. 인공지능, 머신러닝, 자연어 처리는 게임(바둑, 체스 등), 음성 인식과 합성, 기계 번역, 영상 인식, 자율주행 자동차 같은 시스템에서 매우 성공적이었다. 또, 상품 추천 시스템 및 스팸 탐지 시스템도 상당히 괜찮은 성능을 보여준다.
이 분야에 자주 쓰이는 전문 용어 몇 가지가 있다.
- 인공지능(Artificial Intelligence, AI)은 인간만 할 수 있다고 생각하는 일을 컴퓨터를 사용해서 하는 일의 포괄적인 개념이다.
- 머신러닝(Machine Learning, ML)은 인공지능의 한 부분으로, 알고리즘을 훈련하는데 사용되는 광범위한 기술군이다. 이 훈련 방식을 통해 알고리즘이 자체적으로 결정을 내려 AI라고 불리는 과제를 수행한다.
- 머신러닝은 통계와 겹치는 부분이 있지만, 서로 다르다. 통계 분석에서는 어떤 데이터를 만든 메커니즘을 설명하는 모델을 가정하고, 데이터에 가장 적합한 매개변수를 찾는다. 머신러닝에선 모델을 가정하지 않고 데이터에서 나타나는 관계를 찾는다.
- 딥 러닝(Deep Learning, DL)은 머신러닝의 특정 형태로, 우리 뇌에 있는 신경망과 유사한 계산 모델을 사용한다.
- 어떤 뉴런 집합이 저수준 특징을 검출하면, 이 출력이 다른 뉴런 집합에 입력되어 저수준 특징을 기반으로 더 높은 수준의 특징을 인식하는 과정이 이루어지며 이게 다음 뉴런 집합으로 계속 이어진다.
- 시스템이 학습함에 따라 어떤 뉴런 집합 간의 연결은 강화되고 다른 연결은 약화된다.
90. 인공지능의 겨울
1950년대와 1960년대의 인공지능 연구는 '순진할 정도로 낙관적'이었다고 하는데, 과학자들은 인공지능의 획기적인 혁신이 5년-10년 만에 가능할 것으로 생각했다. 하지만 물론 그렇지 않았고, 연구 성과는 거의 없었고 자금도 바닥나면서 10-20년간 침체기를 겪었고 이 기간을 '인공지능의 겨울'이라고 불렀다.
이후 1980년대와 1990년대에는 다른 접근 방식인 전문가 시스템(expert system) 또는 규칙 기반 시스템(rule-based system)에 대한 연구가 시작되었다. 이 시스템에선 해당 분야의 전문가가 다량의 규칙을 작성하고 프로그래머가 규칙을 코드로 변환한다. 그러면 컴퓨터는 그 코드를 적용해 과제를 수행한다.
이 방식의 성공적인 응용 분야는 의료 진단 분야였는데, 의사가 환자에게 어떤 문제가 있는지 결정하는 규칙을 만들면 프로그램이 진단했다. 이런 식으로 실제 의사를 지원할 수 있었고, 어떤 경우에는 대체하는 것도 가능했다. 예를 들면, MYCIN은 혈액 감염 여부를 진단하고자 약 600개의 규칙을 사용했는데 일반적인 개업의와 비슷한 수준의 결과를 보여주었다. MYCIN을 개발한 Edward Feigenbaum은 1994년 튜링상을 공동 수상한다.
하지만 전문가 시스템은 모든 고려사항을 종합한다거나 예외 사항을 모두 배제하기가 사실상 불가능하다는 점 때문에 한계가 있었다. 예를 들면, 체온이 오르고 심한 기침이 있는 환자라면 감기라고 진단하는게 정석이었겠지만 2020년 이후로 COVID-19라는 경우의 수가 생겼기 때문에 정확하지 않아 업데이트 되어야 한다. 이러한 일들은 계속해서 일어날 수 있다.
91. 머신러닝의 학습 알고리즘
머신러닝은 문제 해결을 위해 알고리즘에 많은 예시를 주고 스스로 학습하도록 한다. 가장 단순한 형태는 훈련 집합(training set)을 프로그램에 제공하는 것인데, 이 트레이닝 셋은 적절한 값을 레이블로 붙인 데이터로 구성된다. 예를 들면 손 글씨 데이터를 구분하는 규칙이나 프로그램을 작성하지 않고, 대량의 손 글씨 데이터에 답을 달아 학습 알고리즘을 훈련하는 식이다.
머신러닝 알고리즘은 좋은 결과를 얻을 확률을 높이는 시도일 뿐, 완벽을 보장하진 않는다. 훈련이 끝나면 머신러닝 알고리즘은 훈련 집합에서 학습한 내용을 기반으로 새로운 대상을 분류하거나 대상의 값을 예측한다.
레이블이 붙은 데이터를 기반으로 학습하는 것을 지도 학습(supervised learning)이라고 한다. 지도학습 알고리즘은 훈련 집합을 바탕으로 최선의 분류 혹은 예측할 수 있게 하는 매개변수 값을 찾는다. 개별적인 사례를 일반화하는 방법을 학습한다고 볼 수 있다.
훈련 데이터에서 찾은 것 중 어떤 특징이 올바른 결정을 내리는데 중요한 특징인지도 알고리즘에 알려줘야 한다. 하지만 그런 특징 간 어떻게 가중치를 줄지나 여러 특징을 어떻게 조합할지는 알려주지 않는다. 예를 들어, 스팸 메일 필터링을 학습하려고 하면 스팸 메일에 주로 쓰이는 특징('무료'라는 키워드, 이상한 문자, 철자 오류, 부정확한 문법 등)을 알려준다. 이 중 어느 것도 단독으로 스팸을 확정 짓지 않지만, 데이터가 충분하다면 알고리즘은 꽤 정확히 스팸 메일을 구분해낼 수 있게 된다.
머신러닝 알고리즘은 여러 가지 방식으로 실패하기도 한다. 오버 피팅(over-fitting, 과적합)은 알고리즘이 훈련 데이터에는 좋은 성능을 보이지만, 새로운 데이터에는 훨씬 떨어지는 성능을 보이는 현상이다. 이 경우는 훈련 데이터가 충분하지 않았거나, 집합을 잘못 골랐을 수도 있다.
알고리즘이 훈련 데이터에 있는 편향을 강화하는 결과를 낳기도 한다. 예를 들면 형을 선고하거나 재범 가능성을 예측하거나 대출을 심사하는 케이스에 쓰였는데 편향이 강화되는 것은 민감한 문제가 될 수 있다.
스팸 탐지와 손 글씨 숫자 인식은 분류(classification)의 사례다. 예측(prediction) 알고리즘은 주택 가격, 스포츠 경기 결과, 주식 시장 동향 등의 숫자 값을 예측하는데 사용된다.
지도 학습과 대조적으로 비지도 학습(unsupervised learning)에선 레이블 없는 훈련 데이터로 학습한다. 비지도 학습 알고리즘은 데이터에서 패턴이나 구조를 찾고, 도출한 특징을 바탕으로 데이터를 그룹화한다.
예를 들어, k-평균 군집화 알고리즘(k-means clustering algorithm)에선 같은 그룹 내의 항목 간 유사도는 극대화하는 동시에 다른 그룹과의 유사도는 최소화하는 방식으로 데이터를 k개의 그룹에 나눠서 할당한다.
비지도 학습은 데이터 항목의 특정 그룹에 있는 데이터 중 이상치를 식별하는 데 유용하다. 예를 들어 신용카드 사용 양상을 보여주는 데이터들이 있을 때, 대부분의 데이터 포인트가 두 개의 큰 군집 중 하나에 속하지만 몇 개가 그렇지 않다고 하면 이 데이터들은 카드 사기나 처리 오류일 가능성이 있다.
비지도 학습은 레이블이 지정된 훈련 데이터가 필요하지 않아 비용이 많이 들지 않는다는 장점이 있지만, 적용 가능한 상황이 제한적이다.
92. 인간 뇌를 모방한 신경망과 딥 러닝
머신러닝에서 가장 최근에 일어난 진보는 인간 뇌의 작동 방식을 컴퓨터가 모방하는 인공 신경망을 기반으로 한다. 뇌는 뉴런 간의 연결로 기능한다. 뉴런은 촉감, 소리, 빛, 또는 다른 뉴런에서 오는 입력 같은 자극에 반응하는 세포다. 입력 자극이 일정 수준 이상이 되면 뉴런은 발화(fire, 실제론 불이 아닌 전기적 신호를 보낸다)하여 신호를 보내며, 이 신호는 다른 뉴런의 반응을 일으킨다.
인공 신경망의 핵심 아이디어는 다음과 같다.
- 초기 계층이 저수준 특징을 식별한다: 예를 들면 영상에서 물체의 가장자리에 있는 픽셀의 패턴을 인식한다.
- 이후 계층은 물체나 색상 영역 같은 고수준 특징을 식별한다.
- 마지막으로 최종 계층이 얼굴 같은 개체를 식별한다.
딥 러닝(Deep Learning)에서 딥이라는 단어는 뉴런의 계층이 여러 개라는 뜻이다. 신경망의 정보는 순방향 뿐 아니라 역방향으로도 흘러가서, 신경망은 처리를 반복하고 각 노드에서 가중치를 업데이트하면서 각 계층의 인식 성능을 개선한다.
신경망은 계속해서 입력을 처리하고 출력을 생성하면서 학습하는데, 이를 매우 많은 횟수로 반복한다. 반복할 때마다 알고리즘은 신경망이 생성한 결과와 우리가 원하는 결과 사이의 오차를 측정하고, 다음 반복에서 오차를 줄이고자 가중치를 조정한다.
여기서 중요한 점은, 찾아야 할 특징 집합이 따로 주어지지 않는다는 것이다. 신경망은 뭘 찾아야하는지 주어지지 않아도 특징을 알아서 찾으며, 이 과정 또한 학습의 일부다. 이것은 신경망의 단점으로 이어지는데, 신경망은 자신이 식별한 특징이 뭔지 구체적으로 설명하거나 근거를 제공할 수는 없다.
딥 러닝은 컴퓨터 비전과 관련된 과제에서 성공적이었다. 컴퓨터 비전은 컴퓨터가 영상에 있는 물체를 식별하거나 사람 얼굴 등의 특정 개체를 인식하는 기술이다. 컴퓨터 비전은 많은 로봇 공학 응용 분야의 핵심 기술로, 자율 주행 자동차 등에서 쓰인다.
또, 딥 러닝은 체스, 바둑처럼 매우 높은 난이도의 게임을 프로 선수보다 더 잘하는 알고리즘에서 큰 성과를 보였다. 알파고와 이후 나온 알파제로가 유명하다. 알파제로는 강화 학습(reinforcement learning, RL)이라는 딥 러닝의 한 형태에 기반해 학습했는데, 강화 학습은 외부 환경에서 오는 피드백(이겼는지 졌는지, 좋은 답인지 나쁜 답인지 등의 피드백)을 통해 자신의 성능을 개선한다. 강화 학습은 훈련 데이터가 필요하지 않고, 대신 외부 환경에서 옳은 방향으로 가고 있는지를 알려준다.
93. 인공지능과 사람이 쓴 시를 구별할 수 있을까?
머신러닝의 하위 분야인 자연어 처리(natural language processing)는 컴퓨터가 인간의 언어를 처리하게 하는 방법을 다룬다. 즉, 어떤 텍스트를 이해하고, 요약하고, 다른 언어로 번역하고, 음성으로 변환하며, 마치 사람이 작성한 것처럼 보이는 의미있는 텍스트를 생성하기도 한다.
감성 분석(sentiment analysis)은 어떤 텍스트가 긍정적인지 부정적인지 판별한다. 이 기술은 고객 의견, 리뷰, 설문조사 응답 등을 평가하는데 쓰인다. 얼핏 쉬워보일 수 있지만, 반어법이나 비꼬기를 생각해보면 꽤 어려운 과제다.
사람과의 유의미한 대화, 기계 번역 또한 인공지능의 주요 도전 과제다. 아직 완벽하다고 보긴 어렵지만, 상당히 유의미하게 관련 기술이 발전했다.
94. 요약
머신러닝은 아직 얼마나 잘 작동하는지 알기 위해서 풀어야 할 문제가 많이 있다. 특히, 머신러닝이 내놓는 결과를 어떻게 설명할지에 대한 의문은 해결되지 않았다.
또, 인공지능과 머신러닝이 많은 영역에서 획기적인 발전을 가져온 것은 맞지만 공정성, 편향성, 책임 소재, 적절한 윤리적 사용 문제에 대한 우려가 크다. 머신러닝에서 내놓는 답은 '맞아 보일' 수 있지만 학습 데이터에 내재된 편향성을 반영하고 있을 수 있다. ( 허구의 사례지만) 훈련용 사진에 있는 탱크는 아주 잘 감지했지만 실제 탱크는 잘 못 감지한 알고리즘이 있다. 이 알고리즘은 훈련이 대개 날씨가 좋은 날에 있었기에 좋은 날씨를 감지하는 알고리즘이 되어 버린 것이다.
컴퓨터 비전 시스템은 얼굴을 식별하는데, 백인을 위주로 학습했다면 유색인종을 차별화하는데 정당화될 수도 있다. 가끔은 형사 사법 제도에서 범죄 혐의로 기소된 사람이 재범 가능성이 있는지 예측하고자 머신러닝을 이용하는데, 훈련 데이터에 인종, 성별, 다른 특성에 기초한 제도적 불평등이 데이터에 반영되었을 가능성이 있다. 이런 데이터에서 편향성을 제거하는건 어렵다.