6개월정도 부트캠프 형식으로 AI 과정을 수료했지만 사실, 5분의 1은 웹 관련 내용, 5분의 1은 파이썬, 5분의 1은 머신러닝/딥러닝 5분의 2 정도 프로젝트로 진행되다 보니 딥러닝에 대한 깊이는 한없이 부족했습니다.
이 갈증을 해소하기 위해 네이버 커넥츠 재단의 부스트캠프 과정을 알게됐고, Pre Course 과정도 나름 알차게 돼 있어서 수강하고 있습니다. 공부 내용을 정리해 놓으면 좋을 것 같아 몇자 끄적여봅니다.
딥러닝이란?
딥러닝 관련 직군이 매우 다양하고 넓다고 생각합니다. 데이터 사이언티스트, 데이터 분석가, 머신러닝 엔지니어, 모델러 등 다양하게 구성돼 있습니다. 개인적으로 우수한 머신러닝/딥러닝 관련 전문가의 특징을 꼽자면
1. 우수한 프로그래밍 구현 실력
2. 딥러닝을 위한 기본이 되는 수학적 지식(ex. 선형대수, 확률)
3. 논문 리딩을 통한 학습 가능한 실력
이렇게 3가지 정도 특징을 언급할 수 있을 것 같습니다. 이 3가지를 다 잘 할 수 있다면, 저도 억대 연봉을 받을 수 있겠죠? ^^
정의, 개념에 대해 간단히 언급하고 넘어가겠습니다.
인공지능이란 사람의 지능을 모방하는 것이라고 설명할 수 있습니다. 그렇다면 머신러닝이란 기계로 사람의 지능을 모방하는 개념입니다. 여기서 기계는 컴퓨터를 의미하겠죠. 딥러닝이란 이 머신러닝의 여러 종류 중 하나로서 사람의 뇌 신경망을 모방해서 구현한 개념입니다.
그래서 사실 딥러닝을 학습하고, 딥러닝 전문가가 된다는 것은 머신러닝의 일부분을 깊게 다룬다는 개념이라고 보시면 됩니다. 딥러닝이 핫한 이유는 지금까지 해결하지 못했던 문제들을 높은 성능으로 해결하는 솔루션을 제공해주고 있기 때문입니다. 할 수 있는 게 너무 많아요
그럼 딥러닝의 핵심 요소를 정말 간략하게 확인해 보면
▶ 데이터
▶ 모델
▶ 손실함수(loss function)
▶ 알고리즘(optimizer)
이렇게 4가지를 확인할 수 있습니다. 딥러닝은 데이터에 아주 민감하고, 사실상 최근 빅데이터라는 방대한 데이터 시대가 도래했기 때문에 딥러닝이란 기술이 빛을 발할 수 있습니다. 모델은 데이터를 수학적 지식을 잘 활용해서 우리가 원하는 결과를 만들어주는 중추 역할이라고 볼 수 있습니다. 손실함수는 우리의 모델이 높은 성능을 낼 수 있는 의미 있는 기준, 조건이라고 보시면 됩니다. 알고리즘은 최적화 기법과 연결 돼 있습니다.
딥러닝의 목적
1. Loss (우리가 이루고자 하는 근사치)
- 뉴럴네트워크에 들어 있는 layer 안에서 weight와 bias를 어떻게 update할건지 결정하는 기법이 Loss입니다.
- Loss값이 줄어든다고 해서, 우리가 원하는 결과를 항상 얻을 수는 없습니다.
문제 접근 방식마다 사용하는 loss 기법이 다른데,
Regression(회귀) 문제는 MSE(최소제곱법)
Classification(분류) 문제는 CrossEntrophy
Probabilistic(확률) 문제는 MLE 같은 loss를 활용합니다.
딥러닝에서 Optimizer(최적화)란 신경망 네트워크를 어떻게 줄일지에 대한 기술이라고 보시면 되는데 뉴럴 네트워크의 파라미터를 loss fuction에 대해서 1차 미분한 정보를 활용해서 최적화하는 작업을 의미합니다. 쉽게 말하면, 우리가 만들 모델의 목표 지점에 도달 할 수 있게끔 세팅하는 방식이라고 생각할 수 있습니다.
딥러닝의 목적은 단순히 loss fuction을 줄이는 게 아니라 학습하지 않은 데이터에도 정확하게 작동할 수 있도록 모델을 구현하는 것입니다. loss fuction이 감소하는 게 위와 같은 성능을 보장하기도 하지만 반드시 그런 것은 아니라서 이 목적을 잊지 않는 것도 중요합니다. 우리가 딥러닝이란 기술을 이용해서 뭘 하려고 하는지 끊임없이 되묻는 게 필요합니다.
딥러닝 역사적 흐름
1. AlexNet(2012)
- 이미지 분류 경진대회에서 처음으로 딥러닝 기술이 1등한 첫 모델
2. DQN (2013)
- 딥마인드가 블록깨기 게임을 강화학습으로 성공시킨 논문
3. Encoder/ Decoder(2014)
- AI 번역의 트렌드 변화 주도, 시퀀스 데이터(문자)를 encoder를 통해 숫자로 바꾸고 이를 다른 언어와 매칭하여 decoder로 출력해주는 과정
4. Adam Optimizer(2014)
- 다양한 optimaizer가 있는데, 보편적으로 무난하게 높은 성능을 내는 optimizer가 Adam.
5. GAN(Generative Adversarial Network)(2015)
- 이미지, 자연어를 어떻게 생성할 지 관련된 적대적 신경망의 시초
6. ResNet(2015)
- 네트워크를 깊게 쌓을 수 있도록 트렌드를 바꾼 논문
7. Transformaer (Attention is all you need) (2017)
- NLP 딥러닝 모델의 혁신, RNN 계열의 모델에서 가장 선두적인 성능을 보임
8. BERT(2018)
- fine-tuned NLP model / fine tuning의 중요성을 보여주는 모델 / 다양한 말뭉치로 pre train하고 내가 풀고 싶은 소량의 데이터로 fine tuning 기법 극대화
9. BIG Language Models GPT-3 (OpenAI, 2019)
- 1750억개의 파라미터로 이뤄진 모델, 모델이 무겁지만 그만큼 NLP 분야에서 어마무시한 성능을 보여줌.
10. Self Supervised Learning(2020, SimCLR)
- 한정된 학습데이터 외 라벨을 모르는 데이터에 대해 unsupervised learning 방식을 접목하여 성능을 향상
'AI > MachineLearning' 카테고리의 다른 글
Pytorch #3 - pytorch 연산 (0) | 2023.01.09 |
---|---|
Pytorch #2 - pytorch 차원 (0) | 2023.01.05 |
Pytorch #1 - pytorch 기본 지식 및 기초 확인 (0) | 2022.12.27 |
AI 머신러닝 딥러닝 전문가 성장 루트 (0) | 2021.11.10 |