딥러닝의 정의와 과정

» deeplearning

딥러닝이 뭐지?

cs182 강의와 딥러닝의 대가 요슈아 벤지오 교수님이 정의하는 딥러닝은 아래와 같습니다.

cs182 강의 lecture.1 intro

The function that represents the transformation from input to internal representation to output is usually a deep neural network

함수가 입력값에서 내재적 표현을 지나 출력값까지의 변화를 표현하는 함수는 일반적으로 deep neural network 입니다.

요슈아 벤지오 교수님의 트윗

Deep learning is inspired by neural networks of the brain to build learning machines which discover rich and useful internal representations, computed as a composition of learned features and functions.

딥러닝은 학습된 특성과 함수와 같은 요소를 사용하여 가치있고 유용한 내재적 표현을 발견하기 위해서 만들어진 학습하는 기계로 뇌의 뉴런 네트워크로부터 영감받아 만들어졌습니다.

딥러닝에서는 내재적 표현을 잘 학습하는 것이 주된 목표라고 볼 수 있습니다.

딥러닝이 문제를 해결하는 과정은 아래와 같습니다.

image

머신러닝에서는 사람이 추출하였던 데이터의 특징, 표현들을 딥러닝에서는 학습하는 파라미터로 처리되기 때문에 과정이 많이 간략화되어진 End-to-end-learning이라고도 불립니다.

딥러닝을 ‘Representation Learning’이라고 칭하기도 합니다. 데이터의 표현을 학습한다는 것, 특히 기존의 데이터의 특성을 뽑아서 가공한 입력값이 아닌, 사람이 가공하지 않은, 이미지나 자연어 같은 ‘날 것의’ 데이터를 입력하면 알아서 그 안에 내재된 표현을 추출한다는 것, 이것이 바로 딥러닝이 추구하는 목표의 본질입니다!

그러면 저 애매모호한 말인 내재된 표현을 무엇이라고 이해해야 할까요?

내재적 표현이 뭔데?

내재적 표현을 알기 위해서 데이터를 표현하는 방법들을 알아보겠습니다. 데이터를 표현하는 방법에는 4가지가 있습니다.

  1. 분자 형태 - 실제 데이터 그자체로 아무런 가공을 거치지 않은 표현
  2. 이미지 - 분자 형태의 데이터를 시각적 가공이 포함된 표현
  3. - 사람이 정리한 데이터의 특징(Feature)을 각 열에 나타낸 형태의 표현
  4. 카테고리 - 머신러닝에서는 주로 예측하고자 하는 값으로 인간의 개입이 가장 크게 들어간 표현

예를 들어서 물이라는 데이터를 표현한다고 하겠습니다.

물을 분자형태로 표현을 하면 단순히 1개의 산소분자와 2개의 수소분자로 이루어진 화합물로 이 구조에 어떠한 의미나 생각이 포함되어있지는 않습니다.

물을 이미지 형태로 표현을 하면 분자형태에 비해서 물은 맑은 파란색이라는 시각적 정보가 포함되어 있기에 분자형태에 비해서 좀 더 가공된 표현이라고 할 수 있습니다. 시각적 정보는 디지털 세상에서 RGB 세가지의 색의 픽셀 포인트의 조합으로 모든 색들을 나타낼 수 있습니다.

물을 표의 형태로 나타내면 시각적 정보에 더해져서 물의 무게, 기포 개수, 물의 맛등의 인간들이 물에서 찾아낸 특징(Feature)들을 표의 각 열에 나타내어 물이 가지는 특징들을 정리해 놓은 표현으로 이미지 형태의 표현보다 인간의 관점이나 개입이 훨씬 크게 들어가있습니다.

물을 카테고리 형태로 표현하려면 ‘어떤 카테고리 공간이 있는지’와 ‘그 중 어떤 카테고리에 속하는지’를 정하는 과정이 필요합니다. 즉, [물, 이온음료, 탄산음료]라는 카테고리의 공간에서 ‘물’은 알맞은 액체라는 카테고리 공간에 포함되어 있다는 것을 인간은 직관적으로 이해가 가능합니다. 이미 이러한 카테고리 공간을 정의한다는 것 자체가 인간이 가진 관점에서의 표현이기 때문에 다른 표현들에 비해서 인간의 개입이 굉장히 크다는 것을 알 수가 있습니다.

분자형태의 표현에서 에서 카테고리의 표현으로 갈수록 사람의 개입은 강해지며 데이터가 가지는 정보는 더욱 추상적이고 내재적인 표현이 되어집니다.

한 마디로, 내재적 표현이란 인간의 개입이 크게 관여된 표현으로 이 표현은 추상적이고 함축적인 의미를 가진 표현입니다.

딥러닝은 모델의 파라미터 뿐만 아니라 데이터가 가진 추상적이고 함축적 의미를 가진 내재적 표현까지 인간의 개입 없이 학습시키는 것이 목표라고 할 수 있습니다.

어떻게 내재적 표현까지 학습시키지?

딥러닝은 연결주의 철학을 통하여 내재적 표현을 학습하고자 하였습니다. 연결주의는 자극(input)으로부터 반응(output)을 하기까지의 과정에서 뉴런과 같이 연결되어 있는 모형이 정보를 처리해 나간다고 말합니다.

이에 따라 연결주의의 지능체는 처음에는 백지상태이지만 다수의 사례(빅데이터)를 주고 경험시킴으로써 스스로 천천히 학습해나가게 됩니다.

연결주의를 따르는 딥러닝은 뇌의 뉴럴 네트워크 구조를 본따만든 인공 신경망 모델을 사용합니다.

딥러닝 구조는 어떨까?

image

학습하는 과정은 연결주의 모형을 본따 만들었으며 이 과정은 자극(Input)을 받아 뉴런과 같은 구조를 가진 모델인 인공 신경망을 거쳐서 반응(Output)을 하게 됩니다.

딥러닝 구조를 다르게 표현하면?

image

연결주의 모형의 구조는 자극이라는 입력을 받아 인공 신경망이라는 함수를 거쳐서 반응이라는 출력을 반환하는 구조입니다.

이 구조는 우리가 일반적으로 알고 있는 입력과 출력으로 이루어진 함수의 구조와 동일하기 떄문에 이 모형은 함수로도 설명이 가능합니다.

어찌보면 연결주의 모형의 구조를 따르는 딥러닝은 단순히 커다란 함수라고 생각하여도 괜찮을거 같습니다.

근데, 왜 딥러닝이나 머신러닝을 부를 때 함수가 아니라 모델이라고 부르는걸까요?

그 이유는 함수라는 단어와 모델이라는 단어에 조금의 차이가 있기 때문입니다.

함수는 일반적으로 f(x) = ax + b와 같이 형태가 고정되어 있지만, 모델은 고정되어져 있지 않으며 데이터를 기반으로 학습하여 실제값에 근사하는 함수를 찾아가는 형태입니다. 그래서 데이터를 기반으로 학습하는 구조인 딥러닝과 머신러닝은 함수라기 보다는 ‘실제값에 가장 근사한 함수’인 모델이라고 불립니다.

모델은 어떻게 찾지?

실제값에 근사하는 함수인 모델을 찾아가는 과정을 알아가 보겠습니다.

  1. 모델을 어떤 함수 형태로 나타낼 것인가?

    근데 세상에는 다양한 문제들이 존재하고 비슷한 문제인데도 묘하게 다른 경우도 많은데 이러한 수많은 경우의 수를 해결할 수 있는 함수가 존재할까요?

    이 질문에 대한 대답으로는, 일단 존재는 한다는것입니다. 그 이유는 Inductive Bias라는 가설 덕분이며 이 가설은 데이터를 설명할 수 있는 최적의 함수가 특정한 함수 공간에 존재할 것이라는 의미를 가지고 있습니다.

  2. 함수의 형태를 정하였다면 어떻게 최적의 함수로 찾아가는가?

    머신 러닝, 딥러닝에서 최적의 함수를 찾아가는 과정을 모델의 학습이라고 부릅니다. 모델을 학습한다는 것은 처음에는 실제값과 차이가 있는 예측값이 파라미터 조정하여 변화하는 과정으로, 점점 실제값과 예측값 사이의 차이가 줄어들어면 올바른 학습이 진행되고 있다고 볼 수 있습니다.

    파라미터를 조정하는 방법으로 딥러닝의 신경망 모델에서는 일반적으로 Gradient Descent라는 알고리즘을 자주 사용합니다.