DeepLearning 이야기

jungjun hur·2021년 12월 13일
0

이번 포스팅에서는 Transformer를 이해하기 위한 첫 개념으로 "딥러닝"에 대해 간단히 알아보겠습니다.

인공지능의 목표는?

인공지능 분야를 한 문장으로 표현하면 "컴퓨터의 연산 능력을 활용해 인간모방하자" 라고 할 수 있습니다. 이 문장을 <인간> <모방> <연산 능력> 세 가지로 나눠 살펴보겠습니다.

인간은 무엇을 잘 하는가?

사람이 뭘 잘하길래 컴퓨터를 이용해 따라하려는 걸까요? 사람은 뛰어난 패턴인식 능력을 가지고 있습니다. 바둑 기사가 잠깐 동안 바둑판을 보고도 모든 돌의 위치를 그대로 재현할 수 있다는 유명한 이야기 처럼 뛰어나고 고도로 훈련된 패턴 인식 사례도 있지만, 평범한 사람들도 사물을 알아보고 빠르거나 노이즈가 섞인 소리도 손쉽게 알아듣는 등 뛰어난 패턴인식 능력을 가지고 있습니다.

패턴인식 능력을 더 나눠보면 패턴을 지각하는 부분과 판단하는 부분으로 나눠집니다. 여기서 "판단" 하는 부분은 여러 가지 가능한 답들이 정답일 가능성들을 살피고 그 중에 하나를 고르는 행위입니다. 이런걸 수학적으로는 확률 함수로 표현할 수 있습니다.

예를 통해 설명하면, 초등학교를 졸업하고 한참이 지나 동창회에서 친구들을 만났다고 해봅시다. 친했던 친구는 오랜만에 봐도 신기할 정도로 한 번에 이름이 바로 떠오르지만 그정도로 친하지 않았던 친구는 만난 순간 바로 이름이 떠오르지 않고 여러 개의 후보군이 떠오를 수 있습니다.

이를 확률 함수로 표현하면 친구의 이름으로 가능할 것 같은 여러 개의 후보군(철수, 영수, 철욱 등)과 유력한 정도(확률)도 느껴집니다. 이때 가장 유력한 이름을 부르는 것보다는 옆에 다른 친구가 부르는 이름을 따라 부르는게 안전하겠죠?

친했던 친구는 하나의 이름만 떠올랐는데 이 경우는 하나의 후보군이 너무 유력해서 다른 선택지가 떠오르지 않았다고 볼 수 있습니다. 우리가 일상에서 경험하는 수많은 판단의 순간들(예: 신호등을 확인하고 길을 건널 때 파란불을 보면 건넌다는게 너무나 유력해서 고민하지 않고 판단합니다.)에서 유사한 과정을 겪습니다.

이 섹션에서 인간은 "패턴인식 능력"이 뛰어나고 패턴인식에서 판단 부분은 "확률 함수"로 설명할 수 있다고 말씀드렸습니다.

인간을 모방하기 위한 모델/아키텍처

인간이라는 "확률 함수"를 모방하기 위해 연구자들은 숫자들의 덩어리인 모델을 만들었습니다.

위의 그림은 CNN(Convolutional Neural Network)의 대표적인 모델 중 하나이 VGG16으로 그림 왼쪽에서 이미지를 입력 받고 계산을 거쳐 마지막에 이 그림에 나온 물체가 속할 1000개의 답의 확률을 결과로 내놓습니다. 이는 사람이 친구의 얼굴을 보고 여러 개의 이름을 떠올리는 것과 유사합니다. 이렇게 사람의 패턴인식 중 지각 부분을 모델의 입력 부분에서 만들고 판단 부분을 마지막에서 구현했습니다.

컴퓨터의 연산 능력!

포스팅 초반에 컴퓨터의 연산 능력을 통해 인간을 모방한다고 말씀드렸습니다. 딥러닝은 위의 사진에서 나타난 모델을 숫자들로 가득 채워두고 어떻게 하면 정답을 잘 맞출 수 있는지 숫자들을 바꿔가면서 계산합니다. 위의 그림으로 보자면 자동차 사진을 입력으로 넣었기 때문에 모델이 1000개의 답 중 "자동차"가 가장 유력하다고 판단할 수 있도록 하는 숫자 뭉치를 찾는다고 생각하시면 됩니다. 이 과정이 더 궁금하신 분들은 손실함수, 경사하강법, 옵티마이저 등의 키워드로 추가 학습을 진행해보시길 추천합니다.

AI는 크게 두 가지로 구성됩니다. 첫 번째는 데이터이고 두 번째는 모델 입니다. 어떤 문제를 풀기에 적합한 숫자 뭉치 형태(VGG16을 예로 들면 이미지를 받고 1000개 답의 확률을 내놓는 형태)를 세팅하고 데이터를 통해 학습하면서 최적의 숫자 뭉치를 찾습니다.

정리

이번 포스팅을 통해 인공지능의 목적을 단순화 하여 <인간>, <모방>, <연산 능력>으로 나눠 살펴보았습니다. 인간은 뛰어난 패턴지각+판단(확률함수) 능력을 가지고 있고 이를 모방하기 위해 모델을 세팅하고 데이터를 넣어 계산하면서 학습시키는 과정이 딥러닝 또는 넓게 보면 AI의 방법론이라고 할 수 있습니다. 다음 글에서는 다양한 모델에 사용되는 CNN, RNN에 대해 개념적으로 이해해보도록 하겠습니다.

profile
developer

0개의 댓글