Adore__

[BoostCourse DL] 1. Start 본문

AI Learner/DL

[BoostCourse DL] 1. Start

3_GreenHeart 2023. 4. 3. 16:09
728x90

 

 

 

 

Intro 용어 설명


▶ good deep learner로서 갖춰야할 3가지 요소는 무엇인가?

1) 구현실력 (pytorch, tensorflow)

2) 수학실력 (Linear Algebra, Probability)

  : 임성빈 교수님 수업을 병행하면 더 많은 시너지를 낼 수 있다.

3) 연구동향 파악

 : 최근 연구 결과들을 많이 아는 것이 중요하다. 이 강의에서 다루는 것은 기본이 되는, 기초적인 논문을 다루기때문에 추가적으로 최근 논문들을 많이 읽어보는 것이 필요할 것 같다.

 

 

 

▶ Deep Learning의 Key Components 4가지

 

1) Data that the model can learn from

자연어 분류 (위키피디아 등의 말뭉치) 비디오 (유튜브의 수많은 비디오) 등, 해결하고자 하는 문제에 따라 데이터가 달라진다

  • Classification : 한 이미지를 보고 label을 판단해야 할 때는, 각 label별 이미지 데이터가 필요하다
  • Semantic Segmantation : 이 문제는 label을 도출하는 것이 아니라, 한 이미지 안에서 픽셀별로 나눠서 어느 영역에 해당하는지 구분하는 것이다. 하늘 사진이 있다면, 어떤 픽셀이 구름이고 어떤 픽셀이 푸른 하늘인지 구분하는 문제이다.
  • Detection : 이미지 안에 물체가 있을 때, 이 물체의 bounding box를 찾는다. 어느 영역 안에 고양이가 있고, 강아지가 있는지
  • Pose Estimation : 이미지에 있는 사람의 3차원 또는 2차원 skeleton 정보
  • Visual QnA : 이미지가 주어지고 이미지에 대한 질문이 들어왔을 때, 대답할 수 있는 것

2) Model how to transform the data

 - 이미지를 label이나 예측값으로 바꾸어주는 모델

 - 같은 task가 주어졌다하더라도, 어떤 모델이냐에 따라서 성능이 달라진다.

 

3) Loss function 

 - 모델과 데이터가 정해져 있을 때, 모델을 어떻게 학습할지에 대한 방법

 - 이루고자 하는 것의 근사치

 - 단순히 LF 값이 줄어든다고 해서 우리가 원하는 값을 항상 이룬다고 보장할 수 없으므로 이 관계를 이해하는 것이 중요하다. 예를 들어 회귀문제에서, 데이터의 noise가 많을 때 MSE 방법을 사용하게 되면, 에러가 클 경우에 이 제곱이 전체적인 네트워크 학습을 줄이게 된다. 이때는 MSE 대신 절댓값이나 다른 LF를 제한하는 것이 효율적이다. 이처럼 각 loss function을 왜 사용하는지 알아야 한다.

  • Regression Task : MSE (실제 결과값과 NN 출력값의 편차의 제곱 합)
  • Classification Task : CE (Cross Entropy) NN출력값과 label 데이터 사이의 CE 를 최소화
  • Probabilistic Task : MLE (출력값이 단순 값이 아니라, 값에 대한 평균과 분산으로 모델링을 할 때)

4) Optimization Algorithm
 - 손실함수를 최소화 하기 위한 알고리즘이 필요하다.

 - 데이터, 모델, loss function이 정해져 있을 때, 네트워크를 어떻게 줄일지에 대한 이야기이다.

 - 일반적인 방법은 NN의 파라미터를 LF 에 대해서 1차 미분한 정보를 활용한다 (SGD). 하지만 이외에 다양한 방법들이 있으며 앞으로 하나씩 알아보게 될 것이다.

 - 이뿐만이 아니라, regulazer와 같이 학습의 오류가 잘 안되게 도와주는 것을 추가한다. 다양한 기술들을 활용하여 모델이 학습데이터 뿐만 아니라 아예 새로운 test 데이터나 실환경에서 잘 동작할 수 있도록 한다.


이 4가지 기준으로 논문을 바라보다 보면, 이 연구가 기존 연구에 비해 어떤 장점이 있는지 이해하기 쉽다.

 

 

 

 

 

 

 

 

 

Historical Review


⊙ AlexNet (2012)

: ImageNet 대회에서 딥러닝을 이용하여 첫 우승을 한 모델이다. 이전에는 고전적인 ML방법이었지만 이 모델 이후에는 DL이 실제적으로 성능을 발휘하기 시작했고, 기계학습의 판도가 바뀌기 시작한다.

 

 DQN (2013) : 알파고에 사용됨

 

 Encoder/Decoder (2014)

: NMT(Neural Machine Translation)문제를 풀기 위한 모델. 다른 언어의 문장이 주어졌을 때, 단어의 연속을 어떻게 잘 표현하여 우리가  원하는 언어의 sequence로 만들어주는 것.

 

 Adam Optimizer (2014)

: 최적화에는 여러가지가 있는데, 사람들은 결과가 잘나오기 때문에 단순히 Adam을 사용한다. 왜 learning rate를 바꾸고 왜 Adam을 사용하다 SGD를 사용하고 바꾸는가? 그렇게 하지 않으면 더 안좋은 성능이 나오기때문이다. 

 

 Generative Adversarial Network (2015)

: 이미지와 텍스트를 어떻게 만들어낼 수 있는지에 대한 논문이다. 네트워크가 generator와 discreminator 두개를 만든다. 술집에서 술마시다 너무 재미가 없었는데 갑자기 이 아이디어가 떠올라서 개발을 하게 됐고, 논문에 술집 이름이 나오는 흔치않은 경우였다고 한다..ㅎ

 

 Residual Networks (2015)

: 딥러닝이 왜 딥러닝이냐고 설명할 수 있는 모델구조이다. 이전에는 네트워크를 너무 깊게 쌓으면, test에 사용했을 때 성능이 좋지 않았었다. 하지만 ResNet 이후에는 이 한계치(network 층 수)를 올려준 방법이다. 덕분에 네트워크를 깊게 쌓을 수 있게 되었다.

 

 Transformer (2017) ('Attention Is All You Need')

: 왠만한 Recurrent 구조를 다 대체한 아주 영향이 큰 중요한 모델이다. 다른 네트워크에 비해 어떤 장점이 있고 왜 좋은 성능을 낼 수 있는지 알아볼 것이다.

 

 BERT (2018) (fine-tuned NLP models)

: 자연어 처리는 주로 language model, 즉 이전 단어가 주어졌을 때, 다음 단어를 예측하는 모델을 사용한다.

우리가 풀고자 하는 특정 문제 (날씨 예측하기, 뉴스 추천해주기)가 있지만, 이런 특정 데이터는 한계적이다. 대신 세상에는 일반적인 문장이 많다. 이 fine tuned model은 이런 일반적인 흔한 데이터를 사용하여 소수의 데이터에 fine tuning하는 것이다.

 

 

 BIG Langauge Models (2019)

: BERT의 끝판왕이라고 할 수 있겠다. GPT-3의 가장 큰 강점은 굉장히 많은 parameters로 되어있다는 것이다. 아무나 학습시킬 수 없다.

 

 

 Self Supervised Learning (2020)

- SimCLR: 이미지 분류와 같은 분류문제를 풀때 한정된 주어진 학습데이터 외에 label을 모르는 unsupervised data를 활용할 수 있다.

어떻게 하면 이 이미지들를 컴퓨터가 잘 이해할 수 있는 벡터로 바꿀 수 있는지, 그리고 unsupervised data도 같이 활용하여 분류 문제를 잘 해결할 것인가를 다룬 논문이다.

- 데이터셋을 오히려 만들어내는 trend도 있다. (학습데이터를 내가 갖고 있는 시뮬레이터를 통해서 추가로 만들어냄)

 

 

 

 

 

Review


 학사 졸업 후 대학원 지원 전에 내가 앞으로 하고 싶은 연구 주제가 무엇인지 대해서 생각해보았다.

'Biomedical Science Engineering'이라는 전공 과정에서 딥러닝, 머신러닝을 다룰 수 있던 기회가 많이 없었기때문에, 아쉽게도 학사과정에서 이 분야에 대한 나의 흥미를 미리 알아채지 못했다.

교환학생으로 파견되었을 때 감사하게도 한 프로젝트에 참여하여 머신러닝과 딥러닝 모델을 다루는 기회를 얻었고, 그때를 시작으로 나의 연구 방향을 조금씩 잡아갔던 것 같다. 나는 AI를 활용한 보조진단시스템 개발자가 되고 싶다. 하지만 이 연구분야도 어떤 데이터를 다루냐에 따라 매우 광범위하기때문에, 우선 딥러닝 기초부터 다져가면서 의료영상분석, 자연어처리, XR 등 하나씩 배워보고 나의 적성을 찾아가고자  이 여정을 시작한다.

 

첫 시작으로 딥러닝 개발자로서 필요한 역량과, 필수적인 요소 4가지, 그리고 그동안의 전체적인 DL model 연구 방향을 파악하였다.

아무런 배경도 없이 바로 이론으로 들어가는 것보다 이렇게 역사를 돌이켜보는 것이 앞으로 새로운 연구를 받아들이는데 있어서 도움이 되는 것 같다.

 

 

 

 

Comments