* 본 포스팅은 한국품질재단에서 주최하는 인공지능개발자 양성사업 교육과정 복습 용도로 포스팅되었습니다.
* 이미지 인식 대회(ILSVRC)
- 개요
- 한장의 사진에서 하나의 물체를 검출
- 해당 대회는 종료 후 Kaggle로 이관되어 다양한 분야로 경쟁
- history
- AlexNet (2012)
- 8 layer
- CNN을 처음 적용하여 참가 -> 영상 인식은 CNN으로 해야 한다는 명제를 만들어냈다
- GoogleNet (2014~16)
- Inception v2~v4 우승
- Firebase의 MLKit 적용
- MobileNet 적용
- VGG (2014)
- VGG-16, VGG-19...
- 전이 학습(이미 완성된 모델을 가져다가, 가중치를 초기화하고, 새로운 데이터를 넣어서 학습 -> 모델 생성하는 방법, 파인 튜닝이라는 방법으로 미세 조정도 할 수 있다)
- 많이 재사용
- ResNet (2015)
- 강화학습의 DQN이나, 이미지 인식 등 여러 곳에서 사용
- 네트워크 깊이에 따라 ResNet-128등등..
- SeNet (2017)
- 인식 오차율 2.3% 낮춤
- 더 이상 의미가 없다 -> 대회 종료 선언
* 딥러닝 개요
- 성과가 존재하는 분야
- 이미지 인식(자율주행(진행 중))
- 음성 인식(AI 스피커 -> 데이터 수집(음성) -> 자율주행, 음성인식 기반)
- 자연어 처리
- 관심이 커지고 있는 분야
- 생성 모델 : 영상, 음성, 텍스트 등등( 많이 발전 )
- 강화 학습 : 퀀트, 자율주행, 동체 역학 시뮬레이션(ML-Agents), 알파폴드/알파 스타
* 엔진(프레임웍)
* Tensorflow
- 점유율 1위
- Goggle에서 제작
- 개발자가 가장 많다.(거대 커뮤니티)
- 얼마 전까지 1.x, 최근 2.x 들이 사용되고 있다.(과도기)
- Core 부분은 C++로 구현되어 있다.
- 파이썬은 구성(플로우)만 구현
- 실제적인 학습, 연산 등은 C++이 처리
- 디버깅이 어렵다.
- CUDA, Rocm (초기단계 1.0) 지원
TensorFlow
모두를 위한 엔드 투 엔드 오픈소스 머신러닝 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로 구성된 TensorFlow의 유연한 생태계를 만나 보세요.
www.tensorflow.org
- 파이썬, 웹, 모바일, 임베디드 등 지원
* pyTorch
- 점유율 2위(최근 몇 년 간, 급성장)
- Facebook + 뉴욕대
- 디버깅이 용이, 중간중간 결과물을 바로 확인 가능-> 파이썬과 같은 느낌
- 직관적, 쉽다(상대적)
- core는 C++, 루아로 구성
- 연구기관에서 많이 사용(ETRI에서는 거의 전부 사용)
- CUDA, Rocm(베타) 지원
- Chainer 엔진의 영향을 받음.
PyTorch
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
pytorch.org
- 설치 환경을 자동으로 체크해서 지원
* Keras
- 점유율 3위
- 거대 커뮤니티에 의해서 생성, 정확하게는 인터페이스이다(하위에 엔진이 위치)
- 표준 API 제공할 테니, 어떤 엔진을 쓰는가는 크게 신경 X (하위에 텐서 플로우, CNTK, MXNET..)
- 현재 2017년에 텐서 플로우에서 하위 패키지로 통합
- 문과생을 들 위한 딥러닝 엔진
- 하위에 내부에서 돌아가는 부분은 신경 X( 상위 레벨에서 딥러닝 코드를 작성 )
* 기타
- Theano
- CNTK
- MXNET
- Chainer
- coffee
* 엔진 방식
* Define-And-Run
- Tensorflow, Keras(백엔드로 텐서를 주로 사용)
- 절차
- 관계(흐름, flow)를 모두 정의하고 나서(신경망을 모두 구성하고 나서)
- 여기에 데이터를 주입하여 학습을 진행시키는 방식(c++ 담당)
- 거대한 커뮤니티로 인한 다양한 케이스가 존재
- 2.0에서는 방향성을 Define-By-Run 으로 잡고 있다.
* Define-By-Run
- pyTorch
- 파이썬과 가장 유사한 스타일, 구현 즉시 구동
- 제작 속도가 빠르고 쉽고 디버깅 용이
- 구현 난이도가 단순, 직관적, 유연하다
'Machine Learning' 카테고리의 다른 글
[딥러닝] 딥러닝이란? 3 (0) | 2021.09.01 |
---|---|
[딥러닝] 딥러닝이란? 1 (0) | 2021.09.01 |
[백견불여일타 딥러닝 입문 : 학습 5일차] (0) | 2021.01.30 |
[백견불여일타 딥러닝 입문 : 학습 4일차] (0) | 2021.01.30 |
[백견불여일타 딥러닝 입문 : 학습 3일차] (0) | 2021.01.30 |