본문 바로가기
딥러닝/CS182

CS182 - [Lecture 1] Introduction

by sb99 2022. 6. 23.

Part 1

딥러닝을 활용한 언어 번역 모델

 

언어 번역 모델의 변천사

세상에는 약 6000개 이상의 언어들이 존재한다.

기존 언어 번역 모델의 경우, 다른 언어로 번역하기 위해서는 '한 쌍'의 데이터가 필요했다.

예를 들어, 영어를 한국어로 번역하기 위해서는 영어와 한국어가 필요한 것이다.

이렇다보니 6000개 이상의 언어들에 대해 각각의 언어 번역 모델을 생성하기 위해서는

36000만개가 넘는 모델들이 생성 되어야 할 것이다.

 

따라서 기존의 언어 번역 모델이 가진 방식에서 벗어나 Multilingual 이라는 방법을 활용하게 된다.

Multilingual 또한 번역을 위해서는 요구되는 언어에 해당하는 데이터가 필요하지만,

언어의 쌍 별로 모델을 생성하는 것이 아니라 하나의 모델로 학습한다.

Multilingual 방식을 활용하면 데이터가 적은 언어를 번역할 때 좋은 성능을 낼 수 있을 뿐더러,

zero-shot 기계번역이 가능하기 때문에 요구한 언어에 대한 데이터셋 쌍이 반드시 필요하지 않다.

예를 들어 영어를 한국어로 번역하기 위해서, 기존에는 (영어 -> 한국어)라는 데이터셋이 필요했다.

하지만 Multilingual 방식을 활용하면, 영어->일본어, 일본어 -> 영어, 일본어 -> 한국어 데이터셋이 있는 경우

영어 -> 한국어 번역이 가능해진다.

 

 

언어 번역 모델과 딥러닝에서의 연관성

딥러닝 Intro 수업에서 갑자기 언어 번역 모델 이야기는 왜 하는거지? 라고 생각이 들 수 있다.

기존 언어 번역 모델에서 활용된 방식에서 Multilingual 방식으로의 가장 큰 변화는 '모델 작동 원리'이다.

기존 언어 번역 모델의 경우 단순이 단어와 문장을 다른 언어로 바꾸는 방식이었다.

하지만 우리가 영어를 쓰는 과정을 생각해보면, 단순히 한국어에서 영어로 바꾸는 것이 아니라 우리의 '생각'을 영어로 표현한다.

즉, Multilingual은 단어와 문장의 의미와 맥락을 파악하여 다른 언어로 표현하는 것이라 말할 수 있으며,

여기서 문장, 즉 데이터의 의미를 파악하는 것을 'representation'이라고 한다.

Representation은 딥러닝에서 가장 중요한 키워드이며,

좋은 딥러닝 모델은 데이터가 포함하고 있는 representation을 잘 학습한 모델이라고 할 수 있다.

 

 

딥러닝의 강점

Representation을 학습하는 것이 우리가 실제로 데이터를 접근하는 방법과 유사하다는 것은 알겠는데,

실제 representation learning이 더욱 효과적인 방식일까?

전통적인 머신러닝의 목표는 x로부터 y를 예측하는 것이었다. 

마치 초기 언어 번역 모델과 같이 말이다.

 

하지만 현대에서 실제로 활용되는 데이터의 경우 언어나 이미지, 음성과 같이 비정형 데이터인 경우가 많다.

비정형  데이터는 정형 데이터보다 매우 복잡한데, 이러한 복잡한 데이터가 내포하고 있는 의미를 학습하는 것이

representation learning이다.

즉, 딥러닝은 전통적인 머신러닝과 다르게 복잡한 데이터가 가지고 있는 의미를 학습하고, 그렇기에 powerful 하다.

 

 

Part 2

딥러닝의 의미

 

머신러닝이란?

강아지를 인식하는 프로그램을 설계한다고 해보자.

가장 직관적인 방법은 강아지라고 할 수 있는 규칙을 세우는 것일 수 있다.

눈과 귀가 두 개고, 코가 하나 있고.... 

규칙을 세우려고 하다보면 매우 복잡한 코드가 필요할 것이고, 가장 심각한 문제점은 적절한 규칙을 설정할 수 없다는 것이다.

즉, 우리는 이미지 분류를 위한 정확한 규칙을 직접 설계할 수 없다.

 

Shallow Learning

그렇다면 우리가 규칙을 정하는 것이 아니라, 데이터간의 관계를 통해서 프로그램을 정의하면 어떨까?

위의 f(x,θ)=y에서 x는 input, y는 output, θ는 학습할 파라미터를 의미한다.

이 방식을 통해서 우리는 데이터 사이의 규칙을 파악할 수 있을 것이다.

하지만 이 방식이 가지는 가장 큰 문제점은 f가 x로부터 feature를 뽑아낸 고정된 함수라는 점이다.

따라서 우리는 규칙을 직접 설정하지는 않지만 feature를 뽑아내기 위한 프로그래밍을 직접 해야한다.

다양한 형태의 데이터 속에서 각각의 데이터의 중요한 의미를 포함하는 feature를 뽑아내는 것은 매우 어려울 것이다.

따라서 feature를 학습하는 과정 또한 요구되고, 딥러닝은 여러 개의 layer를 통해 이를 가능하게 한다.

 

Deep Learning

Features를 '직접' 뽑아내어 학습하는 'Shallow Learning'과 다르게, 

'Deep Learning'은 layer의 학습을 통해 features를 뽑아낸다.

이미지가 layer를 통과하는 과정에서 transformation이 발생하는데, 이 과정에서 features가 생성된다.

즉 딥러닝은 features를 생성하는 과정 자체와 features에 대한 학습을 실행하며, 

이러한 features는 이전 파트에서 언급한 representations과 같은 맥락이라 볼 수 있다.

 

결론적으로 딥러닝은 학습된 representation의 여러 layers로 구성된 머신러닝이라 말할 수 있으며,

input에서 내부의 representation을 지나 ouput을 생성하는 함수를 deep neural network 라고 한다.

 

 

Part 3

딥러닝에서의 쟁점

 

What makes deep learning work?

현재의 딥러닝을 있게 한 요소에는 크게 세 가지가 있다.

 

첫 번째로, 여러 개의 layers가 존재하는 Big model이 등장했다.

딥러닝이 효과적인 이유는 데이터의 representations를 학습 할 수 있기 때문인데,

좋은 representations이란 high level representations를 의미한다.

High level representations을 얻기 위해서는 많은 layers가 필요하기 때문에 딥러닝 기술이 발전함에 따라 layers가 급속하게 늘어났고,

1989년에 발표된 LeNet이 7개의 layers만 가지고 있는데 반해, 2015년에 발펴된 ResNet-152는 152개의 layers를 가지고 있다.

 

두 번째는 데이터셋 크기의 확장이다.

딥러닝 모델의 복잡성이 증가함에 따라 많은 데이터로 부터 representations를 효과적으로 학습할 수 있는 환경이 구축되었다.

거대한 데이터셋을 활용하여 딥러닝을 사용하기에 적합한 환경이 된 것이다.

 

마지막은 딥러닝에 필요한 연산을 충분히 해낼 수 있을 만큼의 하드웨어 발전이다.

흔히들 사용하는 GPU나, 효율적인 딥러닝 연산을 위해 설계된 TPU가 그 예이다.

딥러닝 모델이 복잡해지고 데이터가 복잡해짐에 따라, 연산을 가능케하는 하드웨어의 발전은 필수적일 것이다.

 

딥러닝에서의 쟁점

딥러닝 분야에 몇가지 쟁점들이 존재한다.

 

첫 번째로, 직접 features나 representations를 위한 엔지니어링을 할 필요 없이

high-capacity 모델과 많은 데이터를 활용하여 representations를 얻는 다는 점이다.

이전에 언급했던 바와 같이, 우리는 데이터에 맞다고 생각하는 features나 representations를 위한 함수를 작성할 필요가 없다.

딥러닝을 활용하면 모델이 자동적으로 features를 선정하고 representations를 학습하기 때문이다.

다만 이와 관련하여 다양한 관점들이 존재하는데,

딥러닝은 거대하고 복잡한 모델과 어마어마한 양의 데이터, 연산을 요구하기 때문에 딥러닝은 좋은 아이디어가 아니라는 관점과,

충분한 데이터와 모델의 복잡성, 연산을 위한 하드웨어만 있으면 모델의 성능이 더욱 좋아지기 때문에 딥러닝은 훌륭한 아이디어라는 

관점이다. 

 

두 번째는 bias에 관련된 쟁점이다.

모델이 스스로 데이터로부터 features와 representations을 학습하기는 하지만, 모델을 설계하는 것은 결국 사람이기 때문에

인위적인 bias, 즉 inductive bias가 생길 수 밖에 없다.

이러한 inductive bias는 모델 학습에 있어서 모델 설계자의 의도가 포함되어 있다는 관점으로,

결코 없앨 수 없고 무조건적으로 나쁜것 만은 아니기 때문에 모델의 목적에 맞는 inductive bias를 설정하는 것이 중요할 것이다.

 

마지막 세 번째는 모델의 수용량과 데이터의 크기에 관련된 쟁점이다.

모델이 많은 데이터를 학습할 수 있을 정도로 복잡할 수록, 입력 데이터가 다양하고 많을 수록

모델의 성능이 더욱 좋아진다는 관점이다.

 

 


References

 

 

'딥러닝 > CS182' 카테고리의 다른 글

CS182 - [Lecture 5] Backpropagation  (0) 2022.07.02
CS182 - [Lecture 4] Optimization  (0) 2022.06.29
CS182 - [Lecture 3] Error Analysis  (0) 2022.06.27
CS182 - [Lecture 2] Machine Learning Basics  (0) 2022.06.25
[시작] CS182  (0) 2022.06.18

댓글