대학원 일기

[DL] Deep Learning, Historical Review 본문

AI/인공지능 기초

[DL] Deep Learning, Historical Review

대학원생(노예) 2022. 1. 7. 01:58

Introduction

좋은 딥러너(Deep Learner)가 되려면?

  • Implementation Skills : 실제로 구현할 수 있는 능력 (Tensorflow, Pytorch 등)
  • Math Skills : Linear Algebra(선형대수학), Probability(확률) 등
  • Knowing a lot of recent Papers

인공지능(AI) $\supset$ 머신러닝(ML) $\supset$ 딥러닝(DL)

Artificial Inteligence(인공지능): 컴퓨터가 사람의 지능을 모방하는 것을 의미한다.

Machine Learning(기계학습): 데이터를 통해 주어진 모델이 학습하는 것을 의미한다.

Deep Learning(딥러닝): Maching Learning의 기술에서 Neural Network 구조를 통해 데이터를 학습하는 세부적인 분야를 의미한다.

 

딥러닝의 주요 키워드

  • The data that the model can learn from
  • The model how to transform the data
  • The loss function that quantifies the badness of the model
  • The algorithm to adjust the parameters to minimize the loss

딥러닝의 주요 키워드는 Data, Model, Loss, Algorithm 이다.

 

Data

데이터(정보)는 어떠한 모델이 학습하는데 필요한 자료이다. 어떠한 모델의 성능이 매우 좋아도 데이터의 양이 적어 얻을 수 있는 정보가 적다면 그것의 결과는 좋지 않을 것이다. 따라서 좋은 결과를 얻기 위해서는 다량의 데이터가 필수이다. 

 

Data depend on the type of the problem to solve.

데이터는 문제를 푸는 방법에 따라 요구되는 데이터는 다를 수 있다. 문제 유형은 다음과 같다.

 

Classification(분류): 강아지와 고양이를 분류하는 문제와 같이 개체를 분류하는 문제

Semantic Segmentation(시맨틱 분할): 각 이미지의 각 픽셀이 어느 클래스에 속하는지 (도로, 사람, 동물 - dense classification을 구별하는 문제) 를 분류하는 문제

Detection(검출): Semantic Segmentation과 비슷하지만 물체에 대한 바운딩 박스를 찾아내는 문제

Pose Estimation(추정): 한 사람의 3차원(혹은 2차원) skeleton 정보

Visual QnA(질문과 답변): 질문이 던져졌을 때 그 답을 말할 수 있는 문제


Model

The model how to transform the data

모델에 따라 데이터는 바뀐다.

 

데이터가 주어져있다면 데이터를 처리할 모델(Model)이 필요하다. 모델은 다양하게 있으며 문제 유형에 따라 다양한 모델을 적용할 수 있다. 처리 능력은 모델의 성질에 따라 서로 다른 성능을 가지게된다. 


Loss

The loss function that quantifies the badness of the model

손실함수는 모델의 나쁜 점들을 정량화한다. 즉, 이 Loss를 줄이는 것이 목표이다.

 

The loss function is a proxy of what we want to achieve

손실함수는 문제에 따라 다양한 방법이 있다. 

 

Regression Task

MSE(Mean Squared Error) = $\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}(y_{i}^{(d)}-\hat y_{i}^{(d)})^{2}$ 

 

Classification Task

CE(Cross Entropy) = $-\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}y_{i}^{(d)}\log{\hat y_{i}^{(d)}}$

 

Probabilistic Task

MLE(Maximum Likehood Estimation) = $\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}\log{\mathbb{N}(y_{i}^{(d)};\hat y_{i}^{(d)},1)}$ (=MSE)

 


optimization Algorithm

The algorithm to adjust the parameters to minimize the loss

loss function을 최소화하기 위한 알고리즘이 필요로 한다.

 

 

Overview

AlexNet(2012)

이미지넷에서 최초로 딥러닝 기술을 활용한 모델(딥러닝 붐 시작), CNN(Convolutional Neural Network) 모델

224x224 이미지를 커널로 컨볼루션하고 Max Pooling과 Nomalization하는 작업을 5번 거치고 FC층에서 평탄화한 뒤 평탄화된 값을 노드로 전달한다.

 

 

DQN(Deep Q Network, 2013)

DQN은 AI의 최강자인 Google Deepmind에서 개발한 알고리즘이다.

Deepmind에서 알파고가 만들어졌다.

 

Encorder/Decorder(2014)

input Sequence를 다른 언어에 해당하는 output Sequence로 바꿔는 것을 연구한다.

예를 들어 중국어 단어 Sequence를 영어 단어 Sequence로 변환하는 작업을 한다.

 

Adam Optimizer(2014)

아담은 아주 많이 사용하는 최적화 기법이다.

아담은 결과가 잘나오기 때문에 사용하기에 좋다. 즉, 웬만하면 잘되는 기법이다..

 

GAN(Generative Adverdarial Network, 2015)

Generative Adverdarial Network는 비지도 학습에 사용되는 인공지능 알고리즘으로, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현된다.

 

ResNet(Residual Networks, 2017)

이 전에는 네트워크 층을 너무 깊게 쌓으면 좋지 않은 성능이 나왔는데, Residual Networks이 나온 다음엔 테스트 데이터의 성능이 좋게끔 만들어주었습니다.

 

Transfomer(2017)

 

 

BERT(Bidirectional Encoder Representations from Transformers, 2018)

BERT는 Language Model이다. fine-tuned NLP models.

이전의 단어로 다음 단어를 예측하는 것이다. 예를 들어 만약 정말 멋진 뉴스를 쓰고 싶은데 세상엔 뉴스에 대한 데이터가 그렇게 많지 않죠. 이 때, 위키피디아와 같은 대용량 말뭉치 데이터를 사용해서 pretrained를 진행하고 fine tuning을 하는 것입니다.

 

BIG Language Models(2019)

BERT의 끝판왕이라고 할 수 있습니다. 마찬가지로 Language Model입니다. 아주 큰 파라미터를 가지기 때문에 Big - 이 붙었다고 합니다.

 

Self Supervised Learning(2020)

2020년도의 트렌드를 하나만 꼽으라면 단연코 "Self Supevised Learning"를 말할 수 있다고 합니다. 이 방법론은 이미지와 분류와 같은 분류 문제를 풀고 싶은데 학습데이터는 한정되어 있는 것에서 시작되었습니다.

학습데이터 외에 라벨을 모르는 데이터를 가지고 학습시키겠다는 것입니다. 예를 들어 구글 이미지 중 라벨을 모르는 이미지들을(그냥 정말 랜덤한 이미지) 가지고 와서 강아지와 고양이를 구별하는 학습하는 것에 추가하겠다는 것입니다.

SimCLR이 굉장히 성공하고 그 이후 많은 연구들이 진행되고 있다고 합니다.

또, 한가지 다른 트렌드로는 이미지가 주어졌을 때 도메인 지식이나 시뮬레이터를 사용해서 데이터셋을 오히려 만들어내는 연구가 진행중이라고 합니다.

 

 

Reference

Boost Camp AI Tech Pre-Course

 

 

 

'AI > 인공지능 기초' 카테고리의 다른 글

행렬(Matrix)  (0) 2022.01.26
벡터(Vector)  (0) 2022.01.26
Numerical Python - Numpy  (0) 2022.01.25
기계 학습(Machine Learning)  (0) 2022.01.02
인공지능(Artificial Intelligence)의 분류  (0) 2021.12.30
Comments