SlideShare a Scribd company logo
1 of 85
Download to read offline
딥 러닝 세계에
입문하기 위한 분투
2018. 11. 10
Ubuntu Fest in Daejeon
Introduce
발표자 소개
- 임베디드 소프트웨어 개발 전공
- 현재: Face Detection 관련 업무 in
- EDM Heavy Listener
- Music Information Retrieval 분야 연구자가 목표!
이수민
Soomin Lee
My story
오늘의 이야기 요약
딥 러닝의 세계에 끼어들기 위해 했던 일들!
- 만들어보고 싶은 딥 러닝 모델 생각하기
- 데이터 모으고 정제하기
- 머신 러닝의 기초 공부하기
- 비슷한 문제를 풀었던 논문 읽기
- 적당한 프레임워크를 선택해서 구현하기
- 논문을 넓게 읽어 나가며 시야 넓히기
Deep Learning?
딥 러닝?
이 사진 안의 물체가 고양이인가?
얼굴이 동그랗고 전체를 덮는 무늬가 있으며
코에는 검은 점이 박혀 있고
뾰족한 귀가 두 쪽 있으며
털뭉치 냥냥펀치가 두 개 있으면 고양이다!!!
고양이 맞음 :)
Deep Learning?
기존의 방법 : 규칙 기반 의사 결정
이 사진 안의 물체가 고양이인가?
얼굴이 동그랗고 전체를 덮는 무늬가 있으며
뾰족한 귀가 두 쪽 있으며
털뭉치 냥냥펀치가 두 개 있으면 고양이다!!!
코에는 검은 점이 박혀 있고
고양이 아님 :(
Deep Learning?
기존의 방법 : 규칙 기반 의사 결정
Deep Learning?
딥 러닝 : 데이터 기반 의사 결정
X 10…
X 100…
X 1000…
잔뜩 봤던 고양이같이 생겼음 :)
Deep Learning?
딥 러닝으로 무언가를 해내려면?
1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
Deep Learning?
딥 러닝으로 무언가를 해내려면?
1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
How to get Data?
데이터를 어떻게 얻을 것인가?
1. 직접 데이터를 수집한다
2. 공개된 데이터셋을 이용한다.
How to get Data?
데이터를 어떻게 얻을 것인가?
1. 직접 데이터를 수집한다
2. 공개된 데이터셋을 이용한다.
How to get Data?
1. 직접 데이터를 수집한다
1. 만들고자 하는 모델 결정
2. 모델의 Input과 Output 정의
3. Input, Output 데이터 구조 정의
4. 데이터 구조에 맞추어 데이터 수집
5. 데이터 정제와 Preprocessing
How to get Data?
1. 직접 데이터를 수집한다
1. 만들고자 하는 모델 결정
2. 모델의 Input과 Output 정의
3. Input, Output 데이터 구조 정의
4. 데이터 구조에 맞추어 데이터 수집
5. 데이터 정제와 Preprocessing
How to get Data?
1. 직접 데이터를 수집한다
1. 만들고자 하는 모델 결정
2. 모델의 Input과 Output 정의
3. Input, Output 데이터 구조 정의
4. 데이터 구조에 맞추어 데이터 수집
5. 데이터 정제와 Preprocessing
How to get Data?
1. 직접 데이터를 수집한다
1. 만들고자 하는 모델 결정
2. 모델의 Input과 Output 정의
3. Input, Output 데이터 구조 정의
4. 데이터 구조에 맞추어 데이터 수집
5. 데이터 정제와 Preprocessing
Input
Output
How to get Data?
1. 직접 데이터를 수집한다
1. 만들고자 하는 모델 결정
2. 모델의 Input과 Output 정의
3. Input, Output 데이터 구조 정의
4. 데이터 구조에 맞추어 데이터 수집
5. 데이터 정제와 Preprocessing
How to get Data?
1. 직접 데이터를 수집한다
1. 만들고자 하는 모델 결정
2. 모델의 Input과 Output 정의
3. Input, Output 데이터 구조 정의
4. 데이터 구조에 맞추어 데이터 수집
5. 데이터 정제와 Preprocessing
How to get Data?
데이터를 어떻게 얻을 것인가?
1. 직접 데이터를 수집한다
2. 공개된 데이터셋을 이용한다.
How to get Data?
2. 공개된 데이터셋을 사용한다
STAR Dataset
Image : CIFAR-10, ImageNet, etc…
Face : MS-Celeb, VGGFace, FDDB, WIDER FACE, etc…
NLP : WikiData, Dbpedia, SQuAD, etc…
MIR : Million Song Dataset, FMA, MagnaTagATune, etc…
How to get Data?
Kaggle!
www.kaggle.com
How to get Data?
Kaggle!
Dataset 확보 (License에 주의!) Kernel을 이용한 Study
How to get Data?
Kaggle로 할 수 있는 것
How to get Data?
Kaggle에서 손쉽게 데이터 얻기
Dataset Description
Dataset 구조 Summary
<포켓몬의 스탯 정보를 이용해 전설의 포켓몬 예측>
<영화 Metadata를 이용해 영화의 수익 예측>
How to get Data?
Kaggle에서 데이터 분석 연습
예측에 중요한 Feature는 무엇인가?
(Domain에 따른 Feature 선정)
어떤 데이터를 취하고
어떤 데이터를 버려야 하는가?
고차원의 데이터를 어떻게 효율적으로
분석할 수 있는가?
How to get Data?
Kaggle에서 모델 구현을 위한 DB 획득
Fashion MNIST <-> 실제 옷 Image 간의 Domain Translation Network 구현
Synthetic Eye image  Real Eye image 변환하는 SimGAN 구현
How to get Data?
DB 획득 Example
2012년 1월부터 2018년 7월까지의 1분 간격 비트코인 가격 데이터
https://www.kaggle.com/mczielinski/bitcoin-historical-data
How to get Data?
DB 획득 Example
데이터셋이 포함하고 있는 내용
- 1분 간격으로 시가, 최고가, 최저가, 종가, 거래량 등이 나열되어 있음.
실제 CSV 데이터의 모양과 구조, 수치 분포 대략적 확인
- 필터와 정렬 기능을 사용할 수 있음.
How to get Data?
DB 획득 Example
사람들이 만들어놓은 Kernel에서 데이터의 활용 방안에 대한
Inspiration 얻기!
How to get Data?
DB 획득 Example
Deep Learning?
딥 러닝으로 무언가를 해내려면?
1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
Which model should I use?
무슨 모델을 사용해야 할까?
데이터와 문제 정의에 따라 달라지는 모델 구조
Image Classification : Convolutional Models
Time-series predicton : Recurrent Models (LSTM, etc…)
Image Generation : Generative Models (VAE, GAN, etc…)
Natural Language : Recurrent Models, Attention Mechanism
Which model should I use?
무슨 모델을 사용해야 할까?
우리가 해보려는 것
거의 100% 누군가가 이미 해 보았던 것이고
그 누군가는 자신의 삽질기를 예쁘게 정리해서
논문이라는 형태로 세상에 자랑했을 것이다!
How to study Deep Learning?
논문은 좋은데, 읽으려면 배경 지식은 필수!
Binary Cross Entropy?
Softmax?
Adam Optimizer?
Intersection Over Union?
Precision / Recall?
How to study Deep Learning?
딥 러닝의 기초 다지기
딥 러닝 튜토리얼 분야 본좌 : Stanford CS231n
다루는 내용 : Neural Networks, Loss function, Optimization,
CNN, RNN, Detection, Visualizing, Generative Models, RL, etc…
How to study Deep Learning?
딥 러닝의 기초 다지기
Ian Goodfellow가 직강을 해주는 그런 강의!
How to study Deep Learning?
딥 러닝의 기초 다지기
Google 머신러닝 단기집중과정
머신 러닝의 기초에 충실한 커리큘럼
이해를 돕기 위한 상호 작용하는 보조 자료
TensorFlow + Google Colab을 이용한 즉각 실습
How to study Deep Learning?
딥 러닝의 기초 다지기
How to study Deep Learning?
학습 환경 만들기
NVIDIA GPU가 장착된 개인 컴퓨터 / 서버 : 최고!
기초적인 머신 러닝 실습은 CPU만으로도 충분히 가능.
Google Colab 등 온라인 시스템 이용!
https://colab.research.google.com/
How to study Deep Learning?
학습 환경 만들기 : Google Colab
Jupyter Notebook
- 라이브로 실행할 수 있는 코드와 그 결과,
설명할 수 있는 텍스트 등을 포함한 문서를
만들고 공유할 수 있도록 해주는 툴
How to study Deep Learning?
학습 환경 만들기 : Google Colab
Jupyter Notebook
- 라이브로 실행할 수 있는 코드와 그 결과,
설명할 수 있는 텍스트 등을 포함한 문서를
만들고 공유할 수 있도록 해주는 툴
Google Colab
- 구글 사내에서 머신 러닝 교육을 위해
사용하던 Jupyter Notebook을 대중에 공개
- TensorFlow 프레임워크만 지원
How to study Deep Learning?
학습 환경 만들기 : Google Colab
Google Colab의 장점
1. 온라인으로 공유하여 여러 명이 동시에 작업 가능
2. Google Drive 연동으로 Custom Dataset 업로드와 사용이 용이
3. 높은 확률로 Tesla K80 GPU를 이용한 실습 가능
4. 심지어 얼마 전부터 TPU도 체험 가능!
How to study Deep Learning?
학습 환경 만들기 : Google Colab
코드 작성 후 바로 실행 가능!
How to study Deep Learning?
학습 환경 만들기 : Google Colab
Which model should I use?
이제 모델을 만들어 보자!
기초를 다졌으니, 이제 모델을 만들어 보자!
Image Classification : Convolutional Models
Time-series predicton : Recurrent Models (LSTM, etc…)
Image Generation : Generative Models (VAE, GAN, etc…)
Natural Language : Recurrent Models, Attention Mechanism
Which model should I use?
무슨 모델을 사용해야 할까?
Which model should I use?
무슨 모델을 사용해야 할까?
CycleGAN을 시도해 보시겠어요?
사진을 애니메이션 같은 느낌으로 바꾸는 인공신경망을 만들고 싶어요!
Which model should I use?
무슨 모델을 사용해야 할까?
Which model should I use?
무슨 모델을 사용해야 할까?
Which model should I use?
논문 리딩 : Top-Down Approach
CycleGAN
GAN
DCGAN ResNet
pix2pix CGAN
PatchGAN
GAN 구조의 기본이 되는 모델
GAN을 발전시켜 실용화한 모델
GAN의 실용성을 발전시킨 모델
CycleGAN의 기반이 된
기존 모델
복잡하고 무거운 CNN을
가능케 하는 모델
CGAN을 특정 Approach에
응용한 모델
트레이닝 방식에 변화를 준 방법
Which model should I use?
논문 리딩 : Top-Down Approach
Object Detection Paper List
Which model should I use?
논문 리딩 : Top-Down Approach
Faster R-CNN
Fast R-CNN
R-CNN
YOLO v1
YOLO v2
SSD
R-FCN
OHEM
RetinaNet
Mask R-CNN
Which model should I use?
논문이 이해되지 않으면 코드를 참고하자!
논문의 내용(수식, 테크닉)이
이해되지 않는 경우,
코드를 보는 것이 이해에
효과적일 경우가 많음!
Deep Learning?
딥 러닝으로 무언가를 해내려면?
1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
How to make my own model?
어떤 프레임워크를 사용할 것인가?
How to make my own model?
왜 프레임워크를 사용하는가?
딥 러닝 프레임워크를 사용하는 이유
1. 계산 그래프(Computational Graph)를 쉽게 설계할 수 있다.
2. 계산 그래프에서 Loss와 Gradient를 쉽게 구할 수 있다.
3. Gradient를 이용한 모델의 업데이트 또한 자동으로 수행해준다.
4. GPU를 활용하기 쉬운 환경이 제공된다.
How to make my own model?
어떤 프레임워크를 사용할 것인가?
딥 러닝 모델을 학습시키는 방법
1. 입력과 은닉층들의 가중치(Weight)들로
구성된 계산 그래프(모델)를 정의한다.
2. 데이터를 입력해서 모델의 출력을 구한다.
3. 정의한 방법으로 손실(Loss)를 구한다.
4. Loss를 이용해 모델의 전체 Weight를 업데이트한다.
5. 위의 과정을 반복한다.
How to make my own model?
어떤 프레임워크를 사용할 것인가?
딥 러닝 모델을 학습시키는 방법
1. 입력과 은닉층들의 가중치(Weight)들로
구성된 계산 그래프(모델)를 정의한다.
2. 데이터를 입력해서 모델의 출력을 구한다.
3. 정의한 방법으로 손실(Loss)를 구한다.
4. Loss를 이용해 모델의 전체 Weight를 업데이트한다.
5. 위의 과정을 반복한다.
Input
Conv1
ReLU
FC
Output
Conv2
ReLU
Conv3
ReLU
FC
How to make my own model?
어떤 프레임워크를 사용할 것인가?
딥 러닝 모델을 학습시키는 방법
1. 입력과 은닉층들의 가중치(Weight)들로
구성된 계산 그래프(모델)를 정의한다.
2. 데이터를 입력해서 모델의 출력을 구한다.
3. 정의한 방법으로 손실(Loss)를 구한다.
4. Loss를 이용해 모델의 전체 Weight를 업데이트한다.
5. 위의 과정을 반복한다.
Input
Conv1
ReLU
FC
Output
Conv2
ReLU
Conv3
ReLU
FC
Output : X
How to make my own model?
어떤 프레임워크를 사용할 것인가?
딥 러닝 모델을 학습시키는 방법
1. 입력과 은닉층들의 가중치(Weight)들로
구성된 계산 그래프(모델)를 정의한다.
2. 데이터를 입력해서 모델의 출력을 구한다.
3. 정의한 방법으로 손실(Loss)를 구한다.
4. Loss를 이용해 모델의 전체 Weight를 업데이트한다.
5. 위의 과정을 반복한다.
Input
Conv1
ReLU
FC
Output
Conv2
ReLU
Conv3
ReLU
FC
Output X
Loss function L(x)
L(X) = 2.9297
How to make my own model?
어떤 프레임워크를 사용할 것인가?
딥 러닝 모델을 학습시키는 방법
1. 입력과 은닉층들의 가중치(Weight)들로
구성된 계산 그래프(모델)를 정의한다.
2. 데이터를 입력해서 모델의 출력을 구한다.
3. 정의한 방법으로 손실(Loss)를 구한다.
4. Loss를 이용해 모델의 전체 Weight를 업데이트한다.
5. 위의 과정을 반복한다.
Input
Conv1
ReLU
FC
Output
Conv2
ReLU
Conv3
ReLU
FC
L(X) = 2.9297
How to make my own model?
Static vs Dynamic Graph Input
Conv1
ReLU
FC
Output
Conv2
ReLU
Conv3
ReLU
FC
딥 러닝 프레임워크간의 주된 차이는 바로
계산 그래프의 운용 방식!
Static Graph Dynamic Graph
How to make my own model?
Static Graph : TensorFlow
(Source : CS231n)
How to make my own model?
Static Graph : TensorFlow
(Source : CS231n)
계산 그래프 정의
How to make my own model?
Static Graph : TensorFlow
(Source : CS231n)
계산 그래프 정의
계산 그래프 실행
How to make my own model?
Static Graph : TensorFlow
(Source : CS231n)
처음 실행이 시작될 때 계산 그래프가 고정!
How to make my own model?
Dynamic Graph : PyTorch
(Source : CS231n)
How to make my own model?
Dynamic Graph : PyTorch
(Source : CS231n)
Data, Weight 정의
How to make my own model?
Dynamic Graph : PyTorch
(Source : CS231n)
Data, Weight 정의
계산 그래프 생성
How to make my own model?
Dynamic Graph : PyTorch
(Source : CS231n)
매 Iteration마다 계산 그래프를 다시 생성!
How to make my own model?
Dynamic Graph : PyTorch
(Source : CS231n)
How to make my own model?
그래서 무슨 프레임워크를 써야 좋은가?
How to make my own model?
그래서 무슨 프레임워크를 써야 좋은가?
각 프레임워크만의 장단점이 존재!
How to make my own model?
Framework : TensorFlow
TensorFlow
- 구글에서 개발하여 밀고 있는 프레임워크
- Python, C++, JAVA, JavaScript API 지원
- TensorFlow Serving 등 제품화를 위한 지원
- 거대한 사용자 커뮤니티, 활발한 Open Source 활동
- Session 등 개념 이해 필요
- Define-and-Run 모델 : 런타임에 계산 그래프를 변경할 수 없음
- Torch 등에 비해 속도가 느림
학습 시각화 툴 TensorBoard 제공
How to make my own model?
Framework : TensorFlow
How to make my own model?
Framework : Keras
Keras
- 여러 딥 러닝 프레임워크들에 대한 고수준 추상화가 목표
- Caffe, Torch, TensorFlow 등 다양한 프레임워크의 모델 사용 가능
- 직관적이고 접근하기 쉬운 코드 구조
- 기반 라이브러리 단에서 문제가 발생할 경우 Debugging이 어려움
- 비교적 작은 사용자 커뮤니티
How to make my own model?
Framework : PyTorch
PyTorch
- 깔끔한 코드 구조
- Dynamic Computational Graph
- 설계와 동시에 실행/검증이 가능한 대화형 개발 구조
- 사용자 커뮤니티가 큰 편에 속함
- 큰 프로젝트와 상용화를 위한 복잡한 모델 개발에는 비효율적
How to make my own model?
Framework : Caffe
Caffe
- 코드 작성 없이 모델의 작성 / 트레이닝 가능
- Python / OpenCV 인터페이스가 편리함
- 학습했던 네트워크의 Fine Tuning 등의 작업이 편리함
- 유연하지 못한 프레임워크 :
Caffe에 없는 새로운 Layer를 만들어 학습시키려면
Caffe의 소스 코드를 수정하여 다시 빌드해야 함.
How to make my own model?
Framework : Chainer
Chainer
- Dynamic Computational Graph
- 속도가 다른 프레임워크들에 비해 빠름
- 사용자 커뮤니티가 많이 작은 편
- 참고 자료가 부족함
Deep Learning?
딥 러닝으로 무언가를 해내려면?
1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
Follow the TREND!
트렌드를 따라가는 방법
전 세계에서 머신러닝 관련 논문이 한 달 2,500편 이상 쏟아지는 시대!
따끈따끈한 최신 모델이 한달만 지나면 구식 모델이 되는 시대!
How to Follow the TREND?
Follow the TREND!
Reddit
Reddit : 가장 빠르게 트렌드를 따라갈 수 있는 커뮤니티
Follow the TREND!
Reddit
Discussion
Project
Research
News
Follow the TREND!
Reddit
추천 Subreddit
MachineLearning : https://www.reddit.com/r/MachineLearning/
LearnMachineLearning : https://www.reddit.com/r/learnmachinelearning/
DataScience : https://www.reddit.com/r/datascience/
ComputerVision : https://www.reddit.com/r/computervision/
Follow the TREND!
Facebook Community
Facebook Group : 우리나라 사람들끼리의 커뮤니티
- FIN -
딥 러닝 세계에
입문하기 위한 분투

More Related Content

What's hot

Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Taekyung Han
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024NAVER D2
 
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)Susang Kim
 
기계 학습의 현재와 미래
기계 학습의 현재와 미래기계 학습의 현재와 미래
기계 학습의 현재와 미래Joon Kim
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호NAVER D2
 
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점Wonha Ryu
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와selfChangwon National University
 
딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유혁준 전
 
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강Minji Kang
 
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크지운 배
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차Taekyung Han
 
인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기Byoung-Hee Kim
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작Tae Young Lee
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습Byoung-Hee Kim
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Taekyung Han
 
180624 mobile visionnet_baeksucon_jwkang_pub
180624 mobile visionnet_baeksucon_jwkang_pub180624 mobile visionnet_baeksucon_jwkang_pub
180624 mobile visionnet_baeksucon_jwkang_pubJaewook. Kang
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)Jaimie Kwon (권재명)
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 

What's hot (20)

Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
 
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
 
기계 학습의 현재와 미래
기계 학습의 현재와 미래기계 학습의 현재와 미래
기계 학습의 현재와 미래
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
 
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유
 
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
 
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
Deepcheck, 딥러닝 기반의 얼굴인식 출석체크
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
 
인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기인공지능 방법론 - 딥러닝 이해하기
인공지능 방법론 - 딥러닝 이해하기
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
 
180624 mobile visionnet_baeksucon_jwkang_pub
180624 mobile visionnet_baeksucon_jwkang_pub180624 mobile visionnet_baeksucon_jwkang_pub
180624 mobile visionnet_baeksucon_jwkang_pub
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 

Similar to 딥러닝 세계에 입문하기 위반 분투

권기훈_포트폴리오
권기훈_포트폴리오권기훈_포트폴리오
권기훈_포트폴리오Kihoon4
 
T ka kr_4th
T ka kr_4thT ka kr_4th
T ka kr_4thSubin An
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScienceNAVER D2
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다Evion Kim
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표JongkukLim
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)Haezoom Inc.
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)Jinwook On
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
Tiny ml study 20201031
Tiny ml study 20201031Tiny ml study 20201031
Tiny ml study 20201031ByoungHern Kim
 
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...Lablup Inc.
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용Youngjae Kim
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요Nohyun Kee
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)Seongyun Byeon
 
언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptxMUUMUMUMU
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규ChangKyu Song
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 

Similar to 딥러닝 세계에 입문하기 위반 분투 (20)

권기훈_포트폴리오
권기훈_포트폴리오권기훈_포트폴리오
권기훈_포트폴리오
 
T ka kr_4th
T ka kr_4thT ka kr_4th
T ka kr_4th
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
Tiny ml study 20201031
Tiny ml study 20201031Tiny ml study 20201031
Tiny ml study 20201031
 
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...
JMI Techtalk: 강재욱 - Toward tf.keras from tf.estimator - From TensorFlow 2.0 p...
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx언리얼 리플렉션 & CDO.pptx
언리얼 리플렉션 & CDO.pptx
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 

More from Ubuntu Korea Community

권총 사격하러 우분투 써밋 참가한 썰.txt
 권총 사격하러 우분투 써밋 참가한 썰.txt  권총 사격하러 우분투 써밋 참가한 썰.txt
권총 사격하러 우분투 써밋 참가한 썰.txt Ubuntu Korea Community
 
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경Ubuntu Korea Community
 
우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리Ubuntu Korea Community
 
우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회Ubuntu Korea Community
 
Memory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesMemory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesUbuntu Korea Community
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationUbuntu Korea Community
 
9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티Ubuntu Korea Community
 
우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고Ubuntu Korea Community
 
새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조Ubuntu Korea Community
 
스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기Ubuntu Korea Community
 
지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기Ubuntu Korea Community
 
VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기Ubuntu Korea Community
 
HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표Ubuntu Korea Community
 

More from Ubuntu Korea Community (20)

권총 사격하러 우분투 써밋 참가한 썰.txt
 권총 사격하러 우분투 써밋 참가한 썰.txt  권총 사격하러 우분투 써밋 참가한 썰.txt
권총 사격하러 우분투 써밋 참가한 썰.txt
 
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
머신러닝/딥러닝 개발자/연구자에게 필요한 개발/연구 환경
 
우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리우분투한국커뮤니티 2022년 활동 정리
우분투한국커뮤니티 2022년 활동 정리
 
우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회우분투한국커뮤니티 2022년 신년회
우분투한국커뮤니티 2022년 신년회
 
Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea at FOSSASIA Summit 2022Ubuntu Korea at FOSSASIA Summit 2022
Ubuntu Korea at FOSSASIA Summit 2022
 
Overview of the Flatpak
Overview of the FlatpakOverview of the Flatpak
Overview of the Flatpak
 
Usage of the MQTT
Usage of the MQTTUsage of the MQTT
Usage of the MQTT
 
Open Source and the License
Open Source and the LicenseOpen Source and the License
Open Source and the License
 
Memory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack TechniquesMemory Attack - The Memory Attack Techniques
Memory Attack - The Memory Attack Techniques
 
Python을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop ApplicationPython을 이용한 Linux Desktop Application
Python을 이용한 Linux Desktop Application
 
나의 우분투 이야기
나의 우분투 이야기나의 우분투 이야기
나의 우분투 이야기
 
9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티9월 서울지역 세미나 GPG 키사이닝 파티
9월 서울지역 세미나 GPG 키사이닝 파티
 
우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고우분투한국커뮤니티 2018년도 상반기 활동 보고
우분투한국커뮤니티 2018년도 상반기 활동 보고
 
새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조새로운 Libhanjp 라이브러리 구조
새로운 Libhanjp 라이브러리 구조
 
스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기스타트업에서 하드웨어 개발 프로세스 도입하기
스타트업에서 하드웨어 개발 프로세스 도입하기
 
기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT기계들의 소셜 미디어, MQTT
기계들의 소셜 미디어, MQTT
 
모바일에 딥러닝 심기
모바일에 딥러닝 심기모바일에 딥러닝 심기
모바일에 딥러닝 심기
 
지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기지방에서 개발자 커뮤니티 운영하기
지방에서 개발자 커뮤니티 운영하기
 
VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기VM이랑은 무관한 컨테이너 이야기
VM이랑은 무관한 컨테이너 이야기
 
HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표HanJP-IM 프로젝트 진행 현황 발표
HanJP-IM 프로젝트 진행 현황 발표
 

딥러닝 세계에 입문하기 위반 분투

  • 1. 딥 러닝 세계에 입문하기 위한 분투 2018. 11. 10 Ubuntu Fest in Daejeon
  • 2. Introduce 발표자 소개 - 임베디드 소프트웨어 개발 전공 - 현재: Face Detection 관련 업무 in - EDM Heavy Listener - Music Information Retrieval 분야 연구자가 목표! 이수민 Soomin Lee
  • 3. My story 오늘의 이야기 요약 딥 러닝의 세계에 끼어들기 위해 했던 일들! - 만들어보고 싶은 딥 러닝 모델 생각하기 - 데이터 모으고 정제하기 - 머신 러닝의 기초 공부하기 - 비슷한 문제를 풀었던 논문 읽기 - 적당한 프레임워크를 선택해서 구현하기 - 논문을 넓게 읽어 나가며 시야 넓히기
  • 5. 이 사진 안의 물체가 고양이인가? 얼굴이 동그랗고 전체를 덮는 무늬가 있으며 코에는 검은 점이 박혀 있고 뾰족한 귀가 두 쪽 있으며 털뭉치 냥냥펀치가 두 개 있으면 고양이다!!! 고양이 맞음 :) Deep Learning? 기존의 방법 : 규칙 기반 의사 결정
  • 6. 이 사진 안의 물체가 고양이인가? 얼굴이 동그랗고 전체를 덮는 무늬가 있으며 뾰족한 귀가 두 쪽 있으며 털뭉치 냥냥펀치가 두 개 있으면 고양이다!!! 코에는 검은 점이 박혀 있고 고양이 아님 :( Deep Learning? 기존의 방법 : 규칙 기반 의사 결정
  • 7. Deep Learning? 딥 러닝 : 데이터 기반 의사 결정 X 10… X 100… X 1000… 잔뜩 봤던 고양이같이 생겼음 :)
  • 8. Deep Learning? 딥 러닝으로 무언가를 해내려면? 1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
  • 9. Deep Learning? 딥 러닝으로 무언가를 해내려면? 1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
  • 10. How to get Data? 데이터를 어떻게 얻을 것인가? 1. 직접 데이터를 수집한다 2. 공개된 데이터셋을 이용한다.
  • 11. How to get Data? 데이터를 어떻게 얻을 것인가? 1. 직접 데이터를 수집한다 2. 공개된 데이터셋을 이용한다.
  • 12. How to get Data? 1. 직접 데이터를 수집한다 1. 만들고자 하는 모델 결정 2. 모델의 Input과 Output 정의 3. Input, Output 데이터 구조 정의 4. 데이터 구조에 맞추어 데이터 수집 5. 데이터 정제와 Preprocessing
  • 13. How to get Data? 1. 직접 데이터를 수집한다 1. 만들고자 하는 모델 결정 2. 모델의 Input과 Output 정의 3. Input, Output 데이터 구조 정의 4. 데이터 구조에 맞추어 데이터 수집 5. 데이터 정제와 Preprocessing
  • 14. How to get Data? 1. 직접 데이터를 수집한다 1. 만들고자 하는 모델 결정 2. 모델의 Input과 Output 정의 3. Input, Output 데이터 구조 정의 4. 데이터 구조에 맞추어 데이터 수집 5. 데이터 정제와 Preprocessing
  • 15. How to get Data? 1. 직접 데이터를 수집한다 1. 만들고자 하는 모델 결정 2. 모델의 Input과 Output 정의 3. Input, Output 데이터 구조 정의 4. 데이터 구조에 맞추어 데이터 수집 5. 데이터 정제와 Preprocessing Input Output
  • 16. How to get Data? 1. 직접 데이터를 수집한다 1. 만들고자 하는 모델 결정 2. 모델의 Input과 Output 정의 3. Input, Output 데이터 구조 정의 4. 데이터 구조에 맞추어 데이터 수집 5. 데이터 정제와 Preprocessing
  • 17. How to get Data? 1. 직접 데이터를 수집한다 1. 만들고자 하는 모델 결정 2. 모델의 Input과 Output 정의 3. Input, Output 데이터 구조 정의 4. 데이터 구조에 맞추어 데이터 수집 5. 데이터 정제와 Preprocessing
  • 18. How to get Data? 데이터를 어떻게 얻을 것인가? 1. 직접 데이터를 수집한다 2. 공개된 데이터셋을 이용한다.
  • 19. How to get Data? 2. 공개된 데이터셋을 사용한다 STAR Dataset Image : CIFAR-10, ImageNet, etc… Face : MS-Celeb, VGGFace, FDDB, WIDER FACE, etc… NLP : WikiData, Dbpedia, SQuAD, etc… MIR : Million Song Dataset, FMA, MagnaTagATune, etc…
  • 20. How to get Data? Kaggle! www.kaggle.com
  • 21. How to get Data? Kaggle!
  • 22. Dataset 확보 (License에 주의!) Kernel을 이용한 Study How to get Data? Kaggle로 할 수 있는 것
  • 23. How to get Data? Kaggle에서 손쉽게 데이터 얻기 Dataset Description Dataset 구조 Summary
  • 24. <포켓몬의 스탯 정보를 이용해 전설의 포켓몬 예측> <영화 Metadata를 이용해 영화의 수익 예측> How to get Data? Kaggle에서 데이터 분석 연습 예측에 중요한 Feature는 무엇인가? (Domain에 따른 Feature 선정) 어떤 데이터를 취하고 어떤 데이터를 버려야 하는가? 고차원의 데이터를 어떻게 효율적으로 분석할 수 있는가?
  • 25. How to get Data? Kaggle에서 모델 구현을 위한 DB 획득 Fashion MNIST <-> 실제 옷 Image 간의 Domain Translation Network 구현 Synthetic Eye image  Real Eye image 변환하는 SimGAN 구현
  • 26. How to get Data? DB 획득 Example 2012년 1월부터 2018년 7월까지의 1분 간격 비트코인 가격 데이터 https://www.kaggle.com/mczielinski/bitcoin-historical-data
  • 27. How to get Data? DB 획득 Example 데이터셋이 포함하고 있는 내용 - 1분 간격으로 시가, 최고가, 최저가, 종가, 거래량 등이 나열되어 있음.
  • 28. 실제 CSV 데이터의 모양과 구조, 수치 분포 대략적 확인 - 필터와 정렬 기능을 사용할 수 있음. How to get Data? DB 획득 Example
  • 29. 사람들이 만들어놓은 Kernel에서 데이터의 활용 방안에 대한 Inspiration 얻기! How to get Data? DB 획득 Example
  • 30. Deep Learning? 딥 러닝으로 무언가를 해내려면? 1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
  • 31. Which model should I use? 무슨 모델을 사용해야 할까? 데이터와 문제 정의에 따라 달라지는 모델 구조 Image Classification : Convolutional Models Time-series predicton : Recurrent Models (LSTM, etc…) Image Generation : Generative Models (VAE, GAN, etc…) Natural Language : Recurrent Models, Attention Mechanism
  • 32. Which model should I use? 무슨 모델을 사용해야 할까? 우리가 해보려는 것 거의 100% 누군가가 이미 해 보았던 것이고 그 누군가는 자신의 삽질기를 예쁘게 정리해서 논문이라는 형태로 세상에 자랑했을 것이다!
  • 33. How to study Deep Learning? 논문은 좋은데, 읽으려면 배경 지식은 필수! Binary Cross Entropy? Softmax? Adam Optimizer? Intersection Over Union? Precision / Recall?
  • 34. How to study Deep Learning? 딥 러닝의 기초 다지기 딥 러닝 튜토리얼 분야 본좌 : Stanford CS231n 다루는 내용 : Neural Networks, Loss function, Optimization, CNN, RNN, Detection, Visualizing, Generative Models, RL, etc…
  • 35. How to study Deep Learning? 딥 러닝의 기초 다지기 Ian Goodfellow가 직강을 해주는 그런 강의!
  • 36. How to study Deep Learning? 딥 러닝의 기초 다지기 Google 머신러닝 단기집중과정
  • 37. 머신 러닝의 기초에 충실한 커리큘럼 이해를 돕기 위한 상호 작용하는 보조 자료 TensorFlow + Google Colab을 이용한 즉각 실습 How to study Deep Learning? 딥 러닝의 기초 다지기
  • 38. How to study Deep Learning? 학습 환경 만들기 NVIDIA GPU가 장착된 개인 컴퓨터 / 서버 : 최고! 기초적인 머신 러닝 실습은 CPU만으로도 충분히 가능. Google Colab 등 온라인 시스템 이용! https://colab.research.google.com/
  • 39. How to study Deep Learning? 학습 환경 만들기 : Google Colab Jupyter Notebook - 라이브로 실행할 수 있는 코드와 그 결과, 설명할 수 있는 텍스트 등을 포함한 문서를 만들고 공유할 수 있도록 해주는 툴
  • 40. How to study Deep Learning? 학습 환경 만들기 : Google Colab Jupyter Notebook - 라이브로 실행할 수 있는 코드와 그 결과, 설명할 수 있는 텍스트 등을 포함한 문서를 만들고 공유할 수 있도록 해주는 툴 Google Colab - 구글 사내에서 머신 러닝 교육을 위해 사용하던 Jupyter Notebook을 대중에 공개 - TensorFlow 프레임워크만 지원
  • 41. How to study Deep Learning? 학습 환경 만들기 : Google Colab Google Colab의 장점 1. 온라인으로 공유하여 여러 명이 동시에 작업 가능 2. Google Drive 연동으로 Custom Dataset 업로드와 사용이 용이 3. 높은 확률로 Tesla K80 GPU를 이용한 실습 가능 4. 심지어 얼마 전부터 TPU도 체험 가능!
  • 42. How to study Deep Learning? 학습 환경 만들기 : Google Colab
  • 43. 코드 작성 후 바로 실행 가능! How to study Deep Learning? 학습 환경 만들기 : Google Colab
  • 44. Which model should I use? 이제 모델을 만들어 보자! 기초를 다졌으니, 이제 모델을 만들어 보자! Image Classification : Convolutional Models Time-series predicton : Recurrent Models (LSTM, etc…) Image Generation : Generative Models (VAE, GAN, etc…) Natural Language : Recurrent Models, Attention Mechanism
  • 45. Which model should I use? 무슨 모델을 사용해야 할까?
  • 46. Which model should I use? 무슨 모델을 사용해야 할까? CycleGAN을 시도해 보시겠어요? 사진을 애니메이션 같은 느낌으로 바꾸는 인공신경망을 만들고 싶어요!
  • 47. Which model should I use? 무슨 모델을 사용해야 할까?
  • 48. Which model should I use? 무슨 모델을 사용해야 할까?
  • 49. Which model should I use? 논문 리딩 : Top-Down Approach CycleGAN GAN DCGAN ResNet pix2pix CGAN PatchGAN GAN 구조의 기본이 되는 모델 GAN을 발전시켜 실용화한 모델 GAN의 실용성을 발전시킨 모델 CycleGAN의 기반이 된 기존 모델 복잡하고 무거운 CNN을 가능케 하는 모델 CGAN을 특정 Approach에 응용한 모델 트레이닝 방식에 변화를 준 방법
  • 50. Which model should I use? 논문 리딩 : Top-Down Approach Object Detection Paper List
  • 51. Which model should I use? 논문 리딩 : Top-Down Approach Faster R-CNN Fast R-CNN R-CNN YOLO v1 YOLO v2 SSD R-FCN OHEM RetinaNet Mask R-CNN
  • 52. Which model should I use? 논문이 이해되지 않으면 코드를 참고하자! 논문의 내용(수식, 테크닉)이 이해되지 않는 경우, 코드를 보는 것이 이해에 효과적일 경우가 많음!
  • 53. Deep Learning? 딥 러닝으로 무언가를 해내려면? 1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
  • 54. How to make my own model? 어떤 프레임워크를 사용할 것인가?
  • 55. How to make my own model? 왜 프레임워크를 사용하는가? 딥 러닝 프레임워크를 사용하는 이유 1. 계산 그래프(Computational Graph)를 쉽게 설계할 수 있다. 2. 계산 그래프에서 Loss와 Gradient를 쉽게 구할 수 있다. 3. Gradient를 이용한 모델의 업데이트 또한 자동으로 수행해준다. 4. GPU를 활용하기 쉬운 환경이 제공된다.
  • 56. How to make my own model? 어떤 프레임워크를 사용할 것인가? 딥 러닝 모델을 학습시키는 방법 1. 입력과 은닉층들의 가중치(Weight)들로 구성된 계산 그래프(모델)를 정의한다. 2. 데이터를 입력해서 모델의 출력을 구한다. 3. 정의한 방법으로 손실(Loss)를 구한다. 4. Loss를 이용해 모델의 전체 Weight를 업데이트한다. 5. 위의 과정을 반복한다.
  • 57. How to make my own model? 어떤 프레임워크를 사용할 것인가? 딥 러닝 모델을 학습시키는 방법 1. 입력과 은닉층들의 가중치(Weight)들로 구성된 계산 그래프(모델)를 정의한다. 2. 데이터를 입력해서 모델의 출력을 구한다. 3. 정의한 방법으로 손실(Loss)를 구한다. 4. Loss를 이용해 모델의 전체 Weight를 업데이트한다. 5. 위의 과정을 반복한다. Input Conv1 ReLU FC Output Conv2 ReLU Conv3 ReLU FC
  • 58. How to make my own model? 어떤 프레임워크를 사용할 것인가? 딥 러닝 모델을 학습시키는 방법 1. 입력과 은닉층들의 가중치(Weight)들로 구성된 계산 그래프(모델)를 정의한다. 2. 데이터를 입력해서 모델의 출력을 구한다. 3. 정의한 방법으로 손실(Loss)를 구한다. 4. Loss를 이용해 모델의 전체 Weight를 업데이트한다. 5. 위의 과정을 반복한다. Input Conv1 ReLU FC Output Conv2 ReLU Conv3 ReLU FC Output : X
  • 59. How to make my own model? 어떤 프레임워크를 사용할 것인가? 딥 러닝 모델을 학습시키는 방법 1. 입력과 은닉층들의 가중치(Weight)들로 구성된 계산 그래프(모델)를 정의한다. 2. 데이터를 입력해서 모델의 출력을 구한다. 3. 정의한 방법으로 손실(Loss)를 구한다. 4. Loss를 이용해 모델의 전체 Weight를 업데이트한다. 5. 위의 과정을 반복한다. Input Conv1 ReLU FC Output Conv2 ReLU Conv3 ReLU FC Output X Loss function L(x) L(X) = 2.9297
  • 60. How to make my own model? 어떤 프레임워크를 사용할 것인가? 딥 러닝 모델을 학습시키는 방법 1. 입력과 은닉층들의 가중치(Weight)들로 구성된 계산 그래프(모델)를 정의한다. 2. 데이터를 입력해서 모델의 출력을 구한다. 3. 정의한 방법으로 손실(Loss)를 구한다. 4. Loss를 이용해 모델의 전체 Weight를 업데이트한다. 5. 위의 과정을 반복한다. Input Conv1 ReLU FC Output Conv2 ReLU Conv3 ReLU FC L(X) = 2.9297
  • 61. How to make my own model? Static vs Dynamic Graph Input Conv1 ReLU FC Output Conv2 ReLU Conv3 ReLU FC 딥 러닝 프레임워크간의 주된 차이는 바로 계산 그래프의 운용 방식! Static Graph Dynamic Graph
  • 62. How to make my own model? Static Graph : TensorFlow (Source : CS231n)
  • 63. How to make my own model? Static Graph : TensorFlow (Source : CS231n) 계산 그래프 정의
  • 64. How to make my own model? Static Graph : TensorFlow (Source : CS231n) 계산 그래프 정의 계산 그래프 실행
  • 65. How to make my own model? Static Graph : TensorFlow (Source : CS231n) 처음 실행이 시작될 때 계산 그래프가 고정!
  • 66. How to make my own model? Dynamic Graph : PyTorch (Source : CS231n)
  • 67. How to make my own model? Dynamic Graph : PyTorch (Source : CS231n) Data, Weight 정의
  • 68. How to make my own model? Dynamic Graph : PyTorch (Source : CS231n) Data, Weight 정의 계산 그래프 생성
  • 69. How to make my own model? Dynamic Graph : PyTorch (Source : CS231n) 매 Iteration마다 계산 그래프를 다시 생성!
  • 70. How to make my own model? Dynamic Graph : PyTorch (Source : CS231n)
  • 71. How to make my own model? 그래서 무슨 프레임워크를 써야 좋은가?
  • 72. How to make my own model? 그래서 무슨 프레임워크를 써야 좋은가? 각 프레임워크만의 장단점이 존재!
  • 73. How to make my own model? Framework : TensorFlow TensorFlow - 구글에서 개발하여 밀고 있는 프레임워크 - Python, C++, JAVA, JavaScript API 지원 - TensorFlow Serving 등 제품화를 위한 지원 - 거대한 사용자 커뮤니티, 활발한 Open Source 활동 - Session 등 개념 이해 필요 - Define-and-Run 모델 : 런타임에 계산 그래프를 변경할 수 없음 - Torch 등에 비해 속도가 느림
  • 74. 학습 시각화 툴 TensorBoard 제공 How to make my own model? Framework : TensorFlow
  • 75. How to make my own model? Framework : Keras Keras - 여러 딥 러닝 프레임워크들에 대한 고수준 추상화가 목표 - Caffe, Torch, TensorFlow 등 다양한 프레임워크의 모델 사용 가능 - 직관적이고 접근하기 쉬운 코드 구조 - 기반 라이브러리 단에서 문제가 발생할 경우 Debugging이 어려움 - 비교적 작은 사용자 커뮤니티
  • 76. How to make my own model? Framework : PyTorch PyTorch - 깔끔한 코드 구조 - Dynamic Computational Graph - 설계와 동시에 실행/검증이 가능한 대화형 개발 구조 - 사용자 커뮤니티가 큰 편에 속함 - 큰 프로젝트와 상용화를 위한 복잡한 모델 개발에는 비효율적
  • 77. How to make my own model? Framework : Caffe Caffe - 코드 작성 없이 모델의 작성 / 트레이닝 가능 - Python / OpenCV 인터페이스가 편리함 - 학습했던 네트워크의 Fine Tuning 등의 작업이 편리함 - 유연하지 못한 프레임워크 : Caffe에 없는 새로운 Layer를 만들어 학습시키려면 Caffe의 소스 코드를 수정하여 다시 빌드해야 함.
  • 78. How to make my own model? Framework : Chainer Chainer - Dynamic Computational Graph - 속도가 다른 프레임워크들에 비해 빠름 - 사용자 커뮤니티가 많이 작은 편 - 참고 자료가 부족함
  • 79. Deep Learning? 딥 러닝으로 무언가를 해내려면? 1. 데이터 2. 모델 구조 3. 모델을 학습/실행할 엔진
  • 80. Follow the TREND! 트렌드를 따라가는 방법 전 세계에서 머신러닝 관련 논문이 한 달 2,500편 이상 쏟아지는 시대! 따끈따끈한 최신 모델이 한달만 지나면 구식 모델이 되는 시대! How to Follow the TREND?
  • 81. Follow the TREND! Reddit Reddit : 가장 빠르게 트렌드를 따라갈 수 있는 커뮤니티
  • 83. Follow the TREND! Reddit 추천 Subreddit MachineLearning : https://www.reddit.com/r/MachineLearning/ LearnMachineLearning : https://www.reddit.com/r/learnmachinelearning/ DataScience : https://www.reddit.com/r/datascience/ ComputerVision : https://www.reddit.com/r/computervision/
  • 84. Follow the TREND! Facebook Community Facebook Group : 우리나라 사람들끼리의 커뮤니티
  • 85. - FIN - 딥 러닝 세계에 입문하기 위한 분투