1.1 인공지능과 머신러닝, 딥러닝

먼저 AI를 언급할 때 사용하는 용어에 대한 정의가 필요합니다. 인공 지능, 머신 러닝, 딥러닝의 관계는 아래와 같습니다.

나타낼 수 없음
그림 1-1. 인공 지능, 머신 러닝 그리고 딥러닝

1.1.1 인공 지능

1950년대 초기, 컴퓨터 과학 분야의 일부 선각자들은 “컴퓨터가 ‘생각’할 수 있는가?”에 대해 의문을 품기 시작했습니다. 이 질문에 대한 답은 여전히 찾는 과정이지만, 이 분야에 대한 간결한 정의는 다음과 같습니다.

보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구 활동

이처럼 AI는 머신 러닝과 딥러닝을 포함한 학습 과정이 전혀 없는 다른 방법도 많이 포함합니다. 에를 들어 초기 체스 프로그램을 프로그래머가 만든 하드코딩된 규칙만을 가지고 있어 머신 러닝으로 인정받지 못했습니다. 오랜 기간 동안 많은 전문가들은 프로그래머들이 명시적이 규칙을 충분하게 만들어 지식을 다루면 인간 수준의 인공 지능을 만들 수 있다고 믿었습니다. 이러한 접근 방법을 symbolic AI라 하며, 1950년대부터 1980년대까지 AI의 지배적인 패러다임이었습니다. 또한 1980년대는 expert system의 호황으로 그 인기가 절정에 다다랐습니다.

symbolic AI가 체스 게임같은 잘 정의된 논리적인(규칙적인) 문제에는 적합하다는 것이 증명되었지만, 이미지 분류, 음성 인식, 언어 번역 같은 불규칙한 어려운 문제를 해결하기는 매우 어려운 일입니다. 이런 문제를 해결하기 위해 새로운 접근법이 등장했는데, 이것이 머신 러닝 입니다.

1.1.2 머신 러닝

기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야 - 아서 사무엘, 1959

머신 러닝은 다음과 같은 질문들에서 시작됩니다.

  • 우리가 어떤 것을 작동시키기 위해 ‘어떻게 명령할 지 알고 있는 것’ 이상을 컴퓨터가 처리하는 것이 가능한가?
  • 특정 작업을 수행하는 법을 스스로 학습할 수 있는가?
  • 컴퓨터가 우리를 놀라게 할 수 있을까?
  • 프로그래머가 직접 만든 데이터 처리 규칙 대신 컴퓨터가 데이터를 보고 자동으로 이런 규칙을 학습할 수 있을까?

즉, 규칙을 학습할 수 있을지에 대한 의문입니다. 기존의 규칙과 데이터를 프로그램에 넣어서 결과를 얻는 프로그래밍의 단계에서 이제는 데이터와 결과를 넣으면 규칙을 찾는 프로그램을 목표로 합니다.

나타낼 수 없음
그림 1-2. 머신 러닝: 새로운 프로그래밍 패러다임

그렇기에 머신 러닝 시스템은 더 이상 명시적 프로그램되는 것이 아닌 훈련(training)됩니다. 많은 샘플을 준다면, 시스템은 통계적 규칙과 등등을 통해 사용자가 원하는 규칙을 학습하는 것 입니다.

1990년대부터 각광받기 시작했고, 고성능 하드웨어의 개발과 대량의 데이터셋 처리가 가능해지며 AI에서 가장 인기있고, 성공적인 분야가 되었습니다.

1.1.3 데이터에서 표현을 학습하기

딥러닝을 정의하기전에 먼저 머신 러닝 방식이 무엇인지 알아보도록 하겠습니다. 아래는 머신 러닝에 필요한 세 가지 입니다.

  • 입력 데이터 포인트: 예로 음성 인식에서는 있어서는 사람의 대화가 녹음된 사운드 파일, 이미지 태깅 작업에서는 사진을 의미 합니다.
  • 기대 출력: 음성 인식에서는 사람이 사운드 파일을 듣고 기록한 글이, 이미지 작업에서는 ‘강아지’, ‘고양이’ 등과 같은 태그입니다.
  • 알고리즘 성능 측정 방법: 알고리즘의 현재 출력과 기대 출력 간의 차이를 결정하기 위해 필요합니다. 측정값은 알고리즘의 작동을 교정하기 위해 피드백 됩니다. 이런 수정 단계를 학습이라고 합니다.

머신 러닝 모뎅을 입력 데이터를 의미 있는 출력으로 변환합니다. 머신 러닝과 딥 러닝 모두 의미 있는 데이터(표현, representation)로의 변환이 중요한 것입니다.

어떤 표현으로는 해결하기 힘든 문제가 다른 표현으로는 쉽게 해결될 수 있습니다. 예를 들어 컬러 이미지는 RGB 포맷이나, HSV 포맷으로도 인코딩될 수 있습니다. 여기서 빨간색을 찾는 문제에서는 앞의 포맷이, 채도가 높은 것을 찾는 문제에서는 뒤의 포맷이 훨씬 쉽습니다. 머신 러닝 모델은 입력 데이터에서 적절한 표현을 찾는 것입니다.

구체적인 예로 살펴보겠습니다. x축, y축이 있고 이 (x, y) 좌표 시스템으로 표현된 흰색과 빨간색의 데이터 포인트를 아래 그림과 같이 나타냈습니다.

나타낼 수 없음
그림 1-3. 간단한 예시 데이터

여기서 포인트의 좌표 (x, y)를 입력 받아 흰색인지 빨간색인지를 출력하는 알고리즘을 개발하려고 합니다. 이를 요약하면 다음과 같습니다.

  • 입력은 포인트의 좌표
  • 기대 출력은 포인트의 색
  • 알고리즘의 성능은 정확히 분류한 포인트의 비율을 사용하여 측정

아래는 사용할 수 있는 변환 방법 중 좌표 변환을 이용하였습니다.

나타낼 수 없음
그림 1-4. 좌표 변환

포인트에 대한 좌표 변환은 새로운 데이터 표현이라 할 수 있습니다. 그리고 “x>0인 것은 빨간색 포인트다.” 또는 “x<0인 것은 흰색 포인트다.” 라는 간단한 규칙을 나타낼 수 있습니다.

만약 가능한 여러 좌표 변환을 찾아 몇 퍼센트의 포인트가 정확히 분류되었는지를 피드백으로 사용한다면, 바로 머신 러닝을 하고 있는 것입니다.

머신 러닝의 학습(learning)이란??

  • 더 나은 표현을 찾는 자동화된 과정.
  • 가설 공간(hypothesis space) 이라 부르는 선형투영, 이동, 비선형 연산 등의 미리 정의된 연산의 모음에서 찾음 (창의력은 없음)

머신 러닝의 기술적 정의

가능성 있는 공간을 사전에 정의하고 피드백 신호의 도움을 받아 입력 데이터에 대한 유용한 변환을 찾는 것


1.1.4 딥러닝에서 ‘딥’이란 무엇일까?

딥러닝 ⊂ 머신러닝

딥러닝은 인공신경망(artificial neural network) 이라는 모델을 사용하여 표현 층(layer)을 학습하는 머신 러닝의 한 분야입니다. 1

이 분야에 대한 적절한 다른 이름은 층 기반 표현 학습(layered representation learning) 또는 계층적 표현 학습(hierarchical) 이라고도 할 수 있습니다. 여기에서 딥이란 신경망의 층의 수, 즉 모델의 깊이를 일컫는 용어입니다.

딥러닝 알고리즘으로 학습된 표현은 어떻게 나타날지 아래의 숫자를 인식하기 위한 이미지의 변환과정을 살펴 보겠습니다.

나타낼 수 없음
그림 1-5. 숫자 분류를 위한 심층 신경망(deep neural network)

아래에서 볼 수 있듯이 최종 출력에 대해 점점 더 많은 정보를 가지지만 원본 이미지와는 점점 더 다른 표현으로 이미지가 변환됩니다. 즉, 정보가 연속된 필터를 통과하면서 순도 높게 정제되됩니다. 이것이 바로 딥러닝입니다.

나타낼 수 없음
그림 1-6. 숫자 분류 모델에 의해 학습된 표현

정리하자면 딥러닝이란 기술적으로 데이터 표현을 학습하기 위한 다단계 처리 방식을 말합니다.

1.1.5 그림 3개로 딥러닝 작동 원리 이해하기

먼저 딥러닝에서 사용되는 용어를 정리해 봅니다.

  • 타깃(target) : 라벨의 동의어. 기대 출력
  • 매핑(mapping): 입력과 타깃의 관계로 입력을 representation로 변환, 연관시키는 것을 의미합니다.
  • 가중치(weight) : 선형 모델에서 특성의 계수 또는 심층 네트워크의 엣지입니다. 선형 모델 학습의 목표는 각 특성의 이상적인 가중치를 결정하는 것입니다. 가중치가 0인 특성은 모델에 영향을 주지 못합니다.2
  • 손실함수(loss function) : 모델의 예측과 라벨(타깃)의 차이(모델이 얼마나 부정확한지를 나타내는 척도) 3
  • 역전파(Backpropagation) : 손실함수의 결과를 개선하기 위해서 다시 결과에서부터 가중치를 수정하는 과정입니다. 이를 옵티마이저(optimizer)가 담당합니다.

머신 러닝은 많은 입력과 타킷의 샘플을 관찰하면서 입력을 타깃에 매핑하는 것입니다. 심층 신경망은 이런 입력-타깃 매핑을 간단한 층을 많이 연결하여 수행합니다. 이런 변환은 샘플에 노출됨으로써 학습이 이루어집니다.

기술적으로 말하면 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터로 가지는 함수로 표현됩니다. 이 맥락에서 학습은 주어진 입력을 타깃에 매핑하기 위해 신경망에 있는 모든 층의 가중치 값을 찾는 것을 의미합니다.

나타낼 수 없음
그림 1-7. 신경망은 가중치를 파라미터로 가진다

신경망의 출력을 제어하기 위해 출력이 기대하는 것에서 벗어나는 정도를 측정해야 합니다. 이를 신경망의 손실함수(loss function) 또는 목적함수(objective function)으로 차이를 계산합니다.

나타낼 수 없음
그림 1-8. 손실 함수가 신경망의 출력 품질을 측정

기본적인 딥럭닝 방식은 이 점수를 피드백 신호로 사용하여 손실이 감소하는 방향으로 가중치 값을 조금씩 수정하는 것입니다. 이런 과정을 역전파(Backpropagation) 알고리즘을 구현한 옵티마이저(Optimizer)가 담당합니다.

나타낼 수 없음
그림. 1-9 손실 점수를 피드백 신호로 사용하여 가중치 조정


딥러닝은 다음과 같은 순서로 진행됩니다.

  1. 데이터를 입력.
  2. 여러 층을 통해 예상 결과값을 만듭니다. (매핑)
  3. 실제 값과 비교해서 그 차이를 구합니다. (타깃과 손실함수)
  4. 차이를 줄이기 위한 방법으로 앞의 층들의 가중치를 수정해줍니다. (역전파)
  5. 이 방법의 반복으로 규칙을 계속 개선합니다.

1.1.6 지금까지 딥러닝의 성과

현재 책에 쓰여진 바에 의하면 딥러닝은 다음과 같은 획기적인 발전을 이루었습니다.

  • 사람 수준의 이미지 분류, 음성 인식, 필기 인식
  • 향상된 번역
  • 향상된 TTS 변환
  • 디지털 비서
  • 자율 주행 능력
  • 광고 타게팅
  • 웹 엔진 결과
  • 자연어 질의 대답 능력
  • 바둑

1.1.7/8 단기간의 과대 선정을 믿지 말자 / AI에 대한 전망

책에서 전하고자 하는 바는 다음과 같습니다.

  • 지나친 기대는 큰 실망을 가져온다.
  • 실망은 투자 감소로 이어진다.
  • 투자 감소는 AI 겨울로 이어진다.

기술에 대한 거품이 증가하여, 갑작스럽게 지원이 많아지고 훅 모두 투자를 안하는 상황이 올 수 있다는 것입니다. 이미 2번의 AI 겨울을 겪었고, 현재 3번째 겨울이 진행이 되고 있을지도 모른다는 점입니다.

단기간의 기대는 비현실적이지만 장기적인 전망은 매우 밝다고 합니다.

역시 AI의 미래에 대한 견해는 제가 더 공부해보고 스스로 생각해야할 것 같습니다. 이 분야에 대해 심도있는 공부를 해야 제 시야도 넓어질 것 같습니다.

  1. 종종 머신 러닝의 신경망을 인공 신경망(artificial neural network)으로, 생물학의 신경망을 생물학적 신경망(biological neural network)으로 구분하여 부르기도 합니다. 이 책에서는 신경망(neural network)과 네트워크(network)를 혼용하여 사용하고 있습니다. 저자 의 의도를 살리고 신경망이 진짜 ‘신경’과 관련 있다는 오해를 줄이기 위해 문맥상 어색하지 않다면 ‘network’는 그대로 ‘네트워크’라고 옮겼 습니다. 

  2. 기술적으로 말하면 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터로 가지는 함수로 표현됩니다. 이런 파라미터를 모델 파라미터라고도 합니다. 이 책에서는 혼동을 피하기 위해 파이썬 프로그램의 함수와 클래스에 전달할 때 사용하는 파라미터는 매개변수로 번역합니다. 

  3. 또는 비용 함수cost function라고도 부릅니다. 정확하게 말하면 비용 함수는 모든 훈련 데이터에 대한 손실 함수의 합을 나타내고 목적 함수는 더 일반적인 용어로 최적화하기 위한 대상 함수를 의미합니다. 보통 이 세 가지 용어를 크게 구분하지 않고 혼용하여 사용하는 경우가 많습니다. 

댓글남기기