728x90
Deep Learning Basic
Introduction
- 인공지능 분야 공부 시 주의할 점 : 분야의 범위가 매우 방대하기 때문에, 각자 자기가 공부하는 아주 세부 분야밖에 알 수 없다는 점
- good deep learner
- 좋은 구현 실력 : 요즘은 pytorch가 대세. pytorch를 이용해 실습할 예정
- 수학 스킬 : 선형대수학, 확률론
- 최신 논문 공부
- 인공지능의 정의
- 인공지능 : 인간의 지능모방 (mimic human intelligence)
- 머신러닝 : 데이터를 통한 학습 (Data-driven approach)
- 딥러닝 : 뉴런 네트워크 기반 세부 분야→ 딥러닝 ≠ 인공지능 전체 우리가 배울 건 인공지능 전반이 아닌 딥러닝
- 딥러닝의 주요 개념
- 모델이 배울 수 있는 데이터
- 데이터를 레이블로 바꿔줄 모델
- 모델의 손실을 계산하는 손실 함수
- 손실함수를 최소화하는 알고리즘
→ 새로운 논문, 연구를 볼 때 이 4가지 항목에 비추어 바라보게 되면 기존 연구들과의 장단점 및 차별점 등을 보다
쉽게 판단 가능
Data
- 데이터는 해결 과제의 형태에 따라 달라짐
- Classification 분류
- Semantic Segmentation : 이미지의 각 pixel을 클래스별로 분류
- Detection : 특정 이미지의 bounding box(영역)을 찾으려는 것
- Pose Estimation : 사람의 2,3차원 스켈레톤 정보를 알아냄
- Visual QnA : (이미지 + 질문)을 데이터로 주면 인공지능이 답을 구하는 것
Model
- AlexNet
- GoogLeNet
- ResNet
- DenseNet
- LSTM
- Deep AutoEncoders
- GAN
Loss
- 손실 함수
- Regression : MSE (Mean Squared Error )
- 회귀 문제
- 오차 제곱 평균
- Classification : CE (Cross Entrophy loss)
- 분류 문제
- ①뉴럴 네트워크에서 나온 출력값과 ②라벨 데이터 사이에 CE라 불리는 loss를 최소화하게 됨
- Probabilistic : MLE (Maximum Likey Estimation)
- 확률적인 모델을 활용할 때, 출력값 자체가 중요하다기 보단 그에 대한 확률적인 요소들로 모델링 할 때 사용
- Regression : MSE (Mean Squared Error )
※ 손실 함수는 우리가 이루고자하는 것의 proxy(대용물)에 불과하다는 점 항상 염두에 두기
Optimizing Algorithm
Q. 다른 요소들이 모두 정해져 있는 상태에서, 네트워크를 어떻게 줄일까?
- 일반적으로 활용하는 방법은 모두 first-order-methods
- 뉴럴 네트워크의 파라미터를 손실 함수에 대해 1차 미분한 정보를 활용
- 이를 그냥 활용하는 방법 : sgd
- 이를 변형한 다양한 최적화 방법론들을 배울 예정
- 학습이 잘 되는 것을 막는 규제(regularizer)도 있음
- 종류 : Dropout / Early stopping / k-fold validation / Weight decay / Batch normalization / MixUp / Ensemble / Bayesian Optimization
Historical Review
Denny Britz의 논문 「Deep Learning's Most Important Ideas - A Brief Historinal Review」를 토대로
- 2012 - AlexNet : 딥러닝이 처음 실제로 성능을 냈던 때
- CNN
- 2013 - DQN(강화학습)
- 딥마인드가 '아탈'이라는 아케이드 게임을 해당 알고리즘으로 풀어냄
- 2014 - Encoder / Decoder
- 단어의 시쿼스가 주어질 때 이를 어떤 벡터로 인코딩해서 다른 언어의 시퀀스로 뱉어냄
- 기계어 번역에 변화를 줌
- 2014 - Adam Optimizer
- Momentum + Adagrad
- 성능이 좋다. 웬만해선 결과가 좋기 때문에 연구 실험할 때 잘 쓰임.
- 논문 살펴보면 하이퍼 파라미터 튜닝에 대한 설정 근거가 부재한 경우 다수 → 특별한 이유가 있다기 보다는, 그렇게 하지 않으면 결과가 더욱 나빠져서임. 따라서 논문에 굉장히 특이한 튜닝 방식이 쓰인 것이 종종 보임.
- 2015 - ① Generative Adversarial Network
- 매우 중요한 알고리즘
- 네트워크가 어떤 generator(생성기)와 discriminator(판별기)를 만들어서 학습 시키는 것
- acknowledgement(논문사사 문구. 감사의 말과 같음.)에 술집 이름이 들어가 있는 특이한 논문. 술집 술이 너무 맛 없어서 딴 생각하다가 논문 아이디어가 급 떠올랐다는 이야기.
- 2015 - ② Residual Networks (ResNet)
- 진정한 의미의 딥러닝하는 딥러닝
- 딥러닝 이름의 이유 : 네트워크를 deep하게 깊게 쌓아서임(확실하지는 X)
- 그러나 이전까지의 문제점 : 일정 수준 이상 네트워크를 깊게 쌓으면 성능이 낮아짐 → 딥러닝이지만 그다지 딥하지 않은 문제
- ResNet 출현 이후 : 문제가 얼추 해결됨. 예를 들어, 10층까지만 쌓을 수 있었다면 1000층까진 아니더라도, 100층까지 쌓을 수 있도록 문제 해결됨.
- 2017 - Transformer
- 웬만한 RNN보다 뛰어남은 물론이고 CV까지 넘보길 기대하고 있음
- 2018 - BERT (fine-tuned NLP models)
- Transformer + bidirectional Encoder = BERT
- BERT는 Bidirectioinal Encoder Representations from Transformers
- 딥러닝의 흐름을 바꾼 것에 있어서 중요한 개념 : fine-tuning
- 2019 - BIG Language Models
- openAI = fine-tuned-NLP의 끝판왕과 같음
- BERT와 다르게 big language 모델임
- 2020의 화두 - Self Supervised Learning
- SimCLR
- 한정된 학습 데이터를 가지고 모델, 손실 함수를 바꿔가며 여러 modification을 주어서 좋은 결과를 내려는 것이 일반적이었다면, Self Supervised Learning 는 주어진 학습 데이터 외에 라벨을 모르는 unsupervised-data도 활용
- Self Supervised Learning을 통해 데이터를 만들어내려는 트렌드로 있음 (내가 가진 지식과 데이터등을 통해)
- 기존의 labeled data에 새로운 unlabeled data를 추가해 학습
- self supervised data sampling : 내가 특정 분야의 많은 지식이 있을 때 데이터 자체제작
- SimCLR
728x90
'AI > AITech 3기' 카테고리의 다른 글
[DL Basic] 3강 Optimization (2) | 2022.02.11 |
---|---|
[DL Basic] 2강 MLP (Multi-Layer Perceptron) (2) | 2022.02.10 |
[논문 리뷰] Efficient Estimation Of Word Representations In Vector Space(Word2Vec) (2) | 2022.02.08 |
[학습 정리] 3주차 (0) | 2022.02.04 |
[Data Viz] 1-3강 Python과 Matplotlib (0) | 2022.02.03 |