여행다니는 펭귄

Deep Learning Concepts and Contents Overview 본문

컴퓨터/Deep Learning

Deep Learning Concepts and Contents Overview

핑구힝구 2021. 10. 21. 16:13
1. Concept
2. Contents

1. Concept

What is Machine Learning
Machine Learning vs Deep Learning

What is Machine Learning?

AI에서 machine learning이 가지는 가장 큰 특징은 data based 라는 겁니다.

 

 

예를 들어 설명하자면, 스팸메일을 제거하는 프로그램의 경우

 

Traditional programming 은 "신용카드", "환영" 등의 단어가 들어가면 스팸메일이라고 구분하는 rule을 기반으로 제거합니다.

 

Machine Learning 은 스팸메일에는 라벨을 1로 하고 아닌 것에 0을 해서 학습을 시켜 나오는 function 을 얻어 이를 기반으로 제거합니다.

 

Machine Learning vs Deep Learning

Machine Learning의 Subset인 Deep Learning 은 무엇일까요?

 

어째서 이를 Deep Learning이라고 따로 지칭하냐면,

위 그림과 같이 딥러닝은 Feature Extraction 도중 사람의 손길이 들어가지 않기 때문입니다.

이는 다음과 같은 차이로 이어지는데요.

위의 표만 보아서는 Machine Learning이 더 좋아 Deep learning을 왜 쓰는 지 이해가 안 되겠지만,

데이터의 수가 많아 질 수록 한계가 없는 성능을 가지는 것이 바로 Deep Learning의 장점이기에 Deep Learning 역시 AI의 한 부분으로써 많이 연구되는 분야입니다.

 

이게 바로 저희가 다룰 분야죠!


2. Contents

Deep Learning Basics
Neural Network & Multilayer Perceptron
Deep Learning Computation
Convolution Neural Networks -> Computer Vision
Recurrent Neural Networks -> Natural Language Processing
Reinforcement Learning
Auto-encoders -> Generative Model
Deep Learning Limitation & Research Direction

이 글 페이지에서 볼 내용을 전체적으로 간단하게 Overview 해보도록 합시다.


Deep Learning Basics

이 챕터에서는 Deep learning이 무엇인지 배울 것입니다.

 

컴퓨터는 어떻게 지식을 해석할까요?

지식 간의 유의미한 연결성이 Logic으로서 존재한다고 믿는 사람들이 있고, Logic은 없고 Experienced 된 Brain이 존재하기 때문에 뇌 자체를 모방해야 한다고 주장하는 사람들이 있죠.

 

전자를 Symbolism, 후자를 Connectionism 이라고 합니다.

 

Deep Learning은 후자를 기반으로 짜여진 모델입니다.

Deep Learning구조는 뉴론이 다른 뉴론과 연결되어있고, Processing capacity는 뉴런간의 연결성에 따라서 결정되죠.

 

이 머신은 아주 많은 non-linear한 프로세싱 유닛으로 구성되어 있고 이 구조는 Von neumann Machines와는 반대입니다.

 

이 Machine 내에서 Program이라고 지칭되는 것은 유닛간의 connectness로 정의됩니다.

가장 큰 폰노이만 구조와의 차별점은, Connections 역시 메모리로 define 된다는 점입니다.

 

그림으로 쉽게 볼까요?

 

 

Neural Network & Multilayer Perceptron

이 챕터에서는 기본적인 NN과 Multilayer Perceptrion에 대해 배웁니다.

 

한번 Neural Network의 예시를 봅시다.

 

이를 좀 간단하게 분해해보면 아래 그림과 같습니다.

이 구조가 하나의 Layer가 되고, 이것이 하나만 있는 구조를 Perceptrion (=  single - layer neural network ) 이라 칭합니다.

만약 이 구조가 매우 많을 경우  Multi-Layer Perceptrion 이라고 하죠. 이는 feedfoward artifical neural network ( ANN ) 의 한 종류이며 단방향성 학습을 함을 의미합니다. 반대의 경우도 존재하는데 이를 Recurrent neur

al network 라고 합니다.

MLP 안에 숨겨져 있는 구조들을 hidden layer, hidden unit 이라고 합니다.

 

Deep Learning Computation

Deep Learning을 어떻게 훈련시켜야 할지에 대해 배우는 챕터입니다

 

어떻게 Train 할까요?

Deep Learning의 Training 과정은 두 단계로 나뉩니다.

 

Training Stage 에서는 다음 loss (= y - y') 값을 통해 계속해서 그 안에 있는 Weight을 Update 합니다.

 

이 과정을 도식화 하면 다음과 같습니다.

Testing Stage 에서는 Test data를 Model에 넣어보고 Evaluate 하는 과정입니다.

 

여기서 우리가 배워야 할 딥러닝의 핵심 구성요소들은 Data, Model, Loss function, Optimizer 입니다.

 

Data : Input으로 받아들이는 Data의 종류 ( two dimensional data, time series data ... )

Model : Data를 어떻게 변환시킬것인지 ( RNN, CNN ... )

Loss function : 우리의 모델의 loss 값을 어떻게 구할 것인지 ( Mean Square loss, Cross entrophy loss , no label loss .. )

Optimizer : 로스를 줄이는 방법은 어떻게 할 것인지 ( Gradient descent with ... )

 

또 배워야할 Learning의 종류는 크게 Supervised, Unsupervised, Reinforcement learning이 있습니다.

 

Supervised : labeled data set에 대해서 Classify 하기

Unsupervised : unlabaled data에서 pattern 찾기 ( Clustering )

Reinforcement : feedback/reward 방식으로 어떻게 행동할 것인지를 정하는 Learning

 

 

 

Convolution Neural Networks -> Computer Vision

CNN에 대해서 배우는 챕터입니다

 

어째서 CNN을 배워야 할까요? 일단 앞서 배운 MLP에는 큰 문제점이 있습니다.

Vectorize를 하는 과정에서 공간정보를 잃어버린다는 단점이죠.

 

이를 잃어버리면, 요런 많은 Data들 사이에서 귀여운 곰돌이를 찾는 문제를 해결할 수 있을까요?

이 공간 정보를 유지하기 위해서 고안된 것이 바로 Convolution Neural Networks 이고,

이를 디자인 하기 위해서 필요한 두가지 Intuition은 바로 Locality Trnaslation invariance 입니다.

 

Locality : 전체에 대해서 고려하는 것이 아니라 그 이미지 부분부분에 대해서 고려합니다.

Translation invariance : 부분에 대해서 전부 weight을 다르게 해주려면 힘드니 유사한 부분을 찾아 같은 weight을 사용할 부분을 찾습니다.

 

CNN은 추후 Computer Vision (시각 이미지) 에서 주로 사용하게 됩니다.

 

Recurrent Neural Networks -> Natural Language Processing

RNN에 대해서 배우는 챕터입니다

 

Sequential Data의 경우 위에서 배웠던 모델로는 다룰 수 없습니다.

자연적인 음성 신호 처리 ( Naturla Language Processing = NLP )의 경우 지금 데이터만 사용을 할 것이 아니라 그 전의 상황에 따라서 Sequential 하게 다뤄져야 하지요. 고로 ANN에 해당하는 CNN과 MLP로는 해결할 수 없는 문제입니다.

 

RNN에서는 Input Data가 계속해서 들어갈 수 있고, 그 Output이 그 다음 Input에 영향을 줍니다.

 

Reinforcement Learning

강화학습에 대해서 배우는 챕터입니다

 

이것의 대표적인 예시는 알파고와 같은 인공지능들 입니다.

 

강화학습의 intuition은 주어진 (e,r) 이 있을때 ( Environment = e, Reward function = r )

Goal은 Expected Reward 를 Maximize하는 function을 짜는 것입니다.

 

예시를 한번 볼까요?

알파고의 경우 Reward를 체크하는 과정이 게임 맨 끝에 나오기 때문에 상당히 학습시키기 어려웠을 거에요,

Reward function 을 잘 찾아내는 것이 바로 강화학습의 주된 과제랍니다.

 

Auto-encoders -> Generative Model

생성 모델을 배우기 위해 그 기본인 Auto - encoder를 배우는 챕터입니다.

 

Auto - Encoder은 뭘까요?

데이터의 Feature을 줄이는 Encoder를 만들고 , Original 데이터와 최대한 비슷하도록 복원하는 Decoder를 만드는 것입니다. 

 

Auto Encoder에서는 Encoder Part를 더 중요하게 본답니다. Dimensionaly reduction에서 매우 중요하기 때문이죠.

여기서 Decoder에 집중하는 것이 바로 Generative 모델이죠.

 

그렇다면 Generative model은 뭘까요?

Generative model은 기존에 배워왔던 Discriminative model ( RNN CNN ... ) 과 아에 다른 역할을 수행합니다.

데이터를 구분하는 것이 아니라 새로운 데이터를 생성하는 것이죠.

 

위 그림의 예와 같이, Feature을 통해 Decision Boundary를 만드는 것이 아닌 새로운 개나 새로운 고양이를 만들어 내는것이 Generative model의 역할입니다.

Visualization & Meta Algorithms

Deep Learning에 대한 분석을 다루는 챕터입니다.

 

Visualization은 딥러닝이 어떻게 동작 했는지를 해석하려는 시도입니다.

예를 들어 이런 부분들이 있겠죠?

실제 어떻게 분석하는지 예시를 한가지 보자면

 

 

와 같이 어떤 Pixel이 Weight이 크게 작용하여 이를 고양이로 구분했는지, 개로 구분했는지를 시각화하여 분석하는 논문도 있고, 추후 다뤄보도록 하겠습니다.

Deep Learning Limitation & Research Direction

머신러닝의 한계와 문제점을 다루는 파트입니다.

 

Gary Marcus의 딥러닝 Weakness를 한번 예로 볼까요?

 

1. 데이터 부족 ( Data Hungry )

2. Transfer 할 수 있는 Knowledge가 Deep과는 거리가 멀다

3. Hierarchical structure과 Deal 할 자연스러운 방법이 없다

4. Open - ended inference (개방향 문제) 에 약하다

5. transparent가 부족하다

6. 사전에 잘 정의되어있지 않은 데이터를 다룰 수 있는게 말이 되나?

7. 상관 관계랑 인과 관계 구분을 할 능력이 없다

8. 너무 불안정하다

9. 이해할 수 없으니 신뢰할 수 없다

10. 디버깅 어렵고, 적용도 어렵다

 

를 약점으로 꼽고 저희는 그중 Data Hungry, Generalization, Robustness, Transparency에 대해서만 다루도록 하겠습니다.

 

참고 서적: 

 

https://github.com/janishar/mit-deep-learning-book-pdf

 

GitHub - janishar/mit-deep-learning-book-pdf: MIT Deep Learning Book in PDF format (complete and parts) by Ian Goodfellow, Yoshu

MIT Deep Learning Book in PDF format (complete and parts) by Ian Goodfellow, Yoshua Bengio and Aaron Courville - GitHub - janishar/mit-deep-learning-book-pdf: MIT Deep Learning Book in PDF format (...

github.com