SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Large-Scale
Deep Learning on Spark
이 주 열
LG CNS 정보기술연구원
목 차
1. Deep Learning Overview
2. Large-Scale Deep Learning
3. What’s Next?
1.
Deep Learning
Overview
1.1 Deep Learning 배경
Machine Learning과 Deep Learning
인공신경망
다층 퍼셉트론
(Multi-layer
Perceptron)
Deep Learning
Machine Learning(기계학습)
Decision Tree
PCA
k-means
…
1.1 Deep Learning 배경
Machine Learning
- 주어진 데이터로 컴퓨터 훈련 (Learning)
- 데이터의 숨어있는 규칙을 추론 (Inference)
- 이를 토대로 새로운 데이터 예측
1.1 Deep Learning 배경
Machine Learning
- 주어진 데이터로 컴퓨터 훈련 (Learning)
- 데이터의 숨어있는 규칙을 추론 (Inference)
- 이를 토대로 새로운 데이터 예측
Class A
Class B
1.1 Deep Learning 배경
Machine Learning
- 주어진 데이터로 컴퓨터 훈련 (Learning)
- 데이터의 숨어있는 규칙을 추론 (Inference)
- 이를 토대로 새로운 데이터 예측
●
Class A
Class B
1.1 Deep Learning 배경
인공신경망 (Artificial Neural Network, ANN)
1.1 Deep Learning 배경
인공신경망 (Artificial Neural Network, ANN)
Cats
은닉층
(Hidden layer)
입력층
(Input layer)
출력층
(Output layer)
[단층 퍼셉트론] [다층 퍼셉트론]
1.1 Deep Learning 배경
인공신경망 (Artificial Neural Network, ANN)
 1943년, McCulloch과 Pitts : 최초 신경망
 1958년, Rosenblatt : 단층 퍼셉트론
 1969년, Minsky와 Papert : 한계 지적 (XOR)
 1986년, Rumelhart 등 : 다층 퍼셉트론
 2006년, Deep Learning
1.1 Deep Learning 배경
깊은 은닉층의 신경망 학습이 어려운 이유 : Vanishing Gradient!
출처 : Michael Nielsen (2015), http://neuralnetworksanddeeplearning.com/
1.1 Deep Learning 배경
Breakthrough! : 2006년 Deep Learning 핵심 논문 발표
1.2 Deep Learning 정의
은닉층이 많은 깊은 신경망(Deep Neural Network, DNN)을
학습시키는 알고리즘
기존 인공신경망
깊은 신경망
- 깊이가 얕고 단순
- 깊이가 깊고 복잡
출처: GoogLeNet (2014)
1.2 Deep Learning 정의
어떻게 가능한가?
- 사전 학습(Pre-Training)  DBN(Deep Belief Networks)
- 각 Layer의 노드간 연결 수 제한  CNN(Convolutional Neural Networks)
1.2 Deep Learning 정의
DBN은 어떻게 작동하나?
- 순방향 : 하위 특징에서 상위 특징 추출 (인코딩)
- 역방향 : 상위 특징으로부터 하위 특징 생성(디코딩)
- 인코딩 후 디코딩으로 입력 패턴을 최대한 복원하도록 각 Layer 별 학습  사전 학습
출처: 김인중 (2014), “Deep Learning: 기계학습의 새로운 트랜드”
1.2 Deep Learning 정의
DBN은 어떻게 작동하나?
- 순방향 : 하위 특징에서 상위 특징 추출 (인코딩)
- 역방향 : 상위 특징으로부터 하위 특징 생성(디코딩)
- 인코딩 후 디코딩으로 입력 패턴을 최대한 복원하도록 각 Layer 별 학습  사전 학습
출처: 김인중 (2014), “Deep Learning: 기계학습의 새로운 트랜드”
1.2 Deep Learning 정의
CNN은 어떻게 작동하나?
- C, S 층은 제한된 수의 노드(Node)간 연결로 Vanishing gradient problem 완화
1) C 층: 일정 크기의 지역에서 특징 추출 (마스크: 에지, 코너, 텍스처 추출)
2) S 층: 패턴의 이동, 회전, 크기 변화에 대한 불변성 (다운샘플링으로 해상도 낮춤)
3) F 층: 다층 퍼셉트론 신경망으로 인식,분류
C층
C층S층
S층 F층
2.
Large-Scale
Deep Learning
2.1 Why Large-Scale Deep Learning?
1. 학습 데이터 증가
- 알고리즘 보다 많은 학습 데이터가 승리1)
- Big Data 시대 도래
•’13년 전세계 데이터2): 총 4.4 ZB (4.4조 GB)
• 매년 40% 이상 증가 예상
왜 Large-Scale이 필요한가?
1) 출처: Banko and Brill (2011), “Scaling to Very Large Corpora for Natural Language Disambiguation”
2) 출처: IDC (2014), “The Digital Universe of Opportunities”
학습 데이터 크기
정확도
2.1 Why Large-Scale Deep Learning?
2. 알고리즘 모델의 크기
- 점점 깊어지는 DNN  계산량 ↑, 파라미터 개수 ↑
•AlexNet(’12년) ~ 8 Layer
• GoogLeNet(’14년) ~ 24 Layer (3배 증가)
왜 Large-Scale이 필요한가?
2.1 Why Large-Scale Deep Learning?
Large-Scale Deep Learning을 위한 선택
Scale up
(e.g. GPU)
Scale out
(e.g. Hadoop, Spark …)
VS.
2.1 Why Large-Scale Deep Learning?
Large-Scale Deep Learning을 위한 선택
Scale up
(e.g. GPU)
VS.
2.2 Why Spark?
1. Hadoop 등의 기존 대용량 시스템 활용
- 기존 HDFS에 들어있는 데이터 분석
- 시스템 확장 용이
- GPU 시스템 추가 도입 및 데이터 이관 부담 없음
2. 통합된 데이터 처리, 분석 시스템과 환경
- e.g. Streaming  SQL  Machine Learning을 하나의 플랫폼에서!
3. GPU 메모리 한계 극복 (GPU 메모리 사이즈 : 24GB, K80)
GPU 대신 Spark 고려 이유
2.2 Why Spark?
Hadoop MapReduce vs. Iterative 알고리즘(Machine Learning)
2.2 Why Spark?
Hadoop MapReduce는 Machine Learning에 효율적이지 않다
2.2 Why Spark?
Machine Learning, Iteration, Spark  성공적!
+ Speed up + Speed up + Speed up
2.3 Deep Learning on Spark
데이터 병렬 처리로 Large-Scale Deep Learning 구현
2.3 Deep Learning on Spark
Learning  Optimization: 정답과의 오차를 최소화하는 파라미터 찾기
출처 : Fei-Fei (2015)
Gradient Descent
2.3 Deep Learning on Spark
대표적 Optimization 알고리즘: Gradient Descent
• DNN 모델:
• 파라미터:
• Cost 함수:
2.3 Deep Learning on Spark
Gradient 분산 병렬 계산 하기:
1 ~ 100
101 ~ 200
201 ~ 300
301 ~ 400
Training Data
출처 : Andrew Ng
2.3 Deep Learning on Spark
Spark 커뮤니티의 Deep Learning 구현 현황
1. 다층 퍼셉트론(Multi-Layer Perceptron) Pipeline 개발 완료 (ML 패키지, ’15년 7월)
- Spark 1.5.0 릴리즈(’15년 9월 9일)
- JIRA [SPARK-9471]: https://issues.apache.org/jira/browse/SPARK-9471
2. Deep Learning 구현 제안
- JIRA [SPARK-5575] : https://issues.apache.org/jira/browse/SPARK-5575
3. Optimization (분산 병렬)
- Stochastic Gradient Descent, L-BFGS 구현
2.3 Deep Learning on Spark
Deep Learning/Machine Learning 개발 및 실행 환경
1. BLAS (Basic Linear Algebra Subprograms)
- OpenBLAS 설치 (netlib-java)
- Spark 빌드 시 “netlib-lgpl” Maven Profile 지정
2. Spark 설정 조절
- conf/spark-default.conf
• spark.executor.memory # 기본값 1GB
• spark.driver.memory # 기본값 1GB
• spark.aka.frameSize # 기본값 128, 수천 개 map/reduce 실행 시 ↑
2.3 Deep Learning on Spark
Deep Belief Networks(DBN) on Spark 구현 GradientDescent.scala
출처 : https://github.com/witgo/spark/blob/Sent2vec/mllib/src/main/scala/org/apache/spark/mllib/neuralNetwork/DBN.scala
broad cast W
2.3 Deep Learning on Spark
Deep Belief Networks(DBN) on Spark 구현
GradientDescent 병렬 계산
- Machine : 4대
- CPU Core : 4개
2.3 Deep Learning on Spark
Deep Belief Networks(DBN) on Spark 테스트
1. 환경
- AWS: m4.xlarge(Haswell 2.4GHz, vCPU 4, 메모리 16GB, SSD, 750Mbps) 5대
- Spark 1.5.0-SNAPSHOT, JVM 1.7.0, OpenBLAS 0.2.14
2. 대상
- MNIST (학습 데이터: 60,000, 테스트 데이터: 10,000)
•Hinton 교수 DBN 논문: 1.25% test error1)
1) 출처: Hinton (2006), “A fast learning algorithm for deep belief nets”
2.3 Deep Learning on Spark
Deep Belief Networks(DBN) on Spark 테스트
3. 학습 모델 : 784 X 500 X 500 X 2000 X 10
- 784 입력 (28 x 28 픽셀 이미지, MNIST)
- 은닉 층 500 X 500 X 2000
- 10 출력 (0~9)
- α = 0.002, # of Iter = 2000
4. 결과
- Test error: 1.96%
2.3 Deep Learning on Spark
Deep Belief Networks(DBN) on Spark 확장성 테스트
Worker Node 개수 Training 소요 시간 (s) 비고
1 255
• 총 5대 Node
• Master 1, Worker 4
• 60000 학습 데이터
2 150
3 130
4 125
2.3 Deep Learning on Spark
Deep Belief Networks(DBN) on Spark 확장성 테스트
0
50
100
150
200
250
300
1 2 3 4
노드 개수
학습소요시간(s)
2.3 Deep Learning on Spark
아키텍처 Review
Driver
Worker Worker Worker
Block 1 Block 2 Block 3
• 알고리즘 모델 세팅
• 파라미터 초기화
• Gradient 취합
• 파라미터(w) 업데이트
• 학습 데이터 read
• Gradient 연산
Worker
Block 4
3.
What’s Next?
3.1 Data Parallelism 한계
Driver
Worker Worker Worker Worker
DNN 모델이 단일 머신의 메모리보다 크다면 대안 필요
- 10 million feature 이상 한계1)
적재 불가
적재 불가 적재 불가 적재 불가 적재 불가
1) 출처: https://issues.apache.org/jira/browse/SPARK-4590
3.2 Google의 DistBelief
1. 수십억 파라미터의 Deep Network를 1만 CPU 코어에서 학습 가능
2. 기존 대비 30대 더 큰 모델
3. ImageNet2) state-of-art 정확도 (’12년)
4. 음성인식 train 속도 GPU 대비 10배
5. Downpour SGD, Sandblaster L-BFGS
NIPS1) 2012 논문 : Large Scale Distributed Deep Networks
주1) NIPS : Neural Information Processing Systems 학회
주2) 1천6백만 이미지, 2만 카테고리, 10억개 파라미터
3.2 Google의 DistBelief
1. Data & Model Parallelism
2. Distributed Optimization Algorithms
- Downpour SGD
- Sandblaster L-BFGS
 Parameter server 개념 (Model replica들이 파라미터 공유)
DistBelief의 특징
3.2 Google의 DistBelief
DistBelief의 Model Parallelism
1. DNN 모델을 각 머신에서 분산 처리
2. 모델 파라미터는 각 머신별 나뉘어져 처리
3.2 Google의 DistBelief
DistBelief의 Model + Data Parallelism
1. 모델 partitioning으로 모델 병렬처리
2. 데이터 partitioning과 비동기 통신
Parameter Server으로 데이터 병렬 처리
일부 파라미터(Wj)에 대해서 계산
3.2 Google의 DistBelief
DistBelief의 Downpour SGD
Downpour
①
②
③
①
②
③
3.3 Parameter Server
1. CMU Machine Learning
http://parameterserver.org
2. Factorbird (Stanford Univ.)
3. Petuum
http://petuum.github.io
4. Vowpal Wabbit (Yahoo!, MS)
http://hunch.net/~vw
5. Paracel
http://paracel.io/
분산 Machine Learning을 위한 다양한 Parameter Server 존재
3.4 Parameter Server on Spark
Spark 2.x를 목표로 Parameter Server 제안
Parameter Server 프로토타입
- JIRA [SPARK-6932]: https://issues.apache.org/jira/browse/SPARK-6932
- Parameter Server에 파라미터를 분산 저장하기 위한 테이블 자료구조 필요
3.5 Wrap-Up
광대한 Net에 Spark의 잠재력은 무한!
Tool 선호도 비고
Pylearn2 18.6% Python
Theano 16.9% Python
Caffe 9.9% C++
Torch 9.1% Lua
CUDA-ConvNet 5.7% C++
DeepLearning4J 4.1% Java
Others 35.8% -
1) 출처: KDnuggets, http://www.kdnuggets.com/2015/06/popular-deep-learning-tools.html
Deep Learning Tool 선호도1)
출처: 공각기동대 (1995)
Q&A
Thank You
이주열 (zenithon@gmail.com)

Weitere ähnliche Inhalte

Was ist angesagt?

Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료종현 최
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기NAVER D2
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기NAVER D2
 
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) 20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) Tae Young Lee
 
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델NAVER D2
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술NAVER D2
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Taejun Kim
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초Hyungsoo Ryoo
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow InternalsKiho Hong
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 
what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_shareNAVER D2
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝Jinwon Lee
 
Learning to remember rare events
Learning to remember rare eventsLearning to remember rare events
Learning to remember rare events홍배 김
 
기계 학습의 현재와 미래
기계 학습의 현재와 미래기계 학습의 현재와 미래
기계 학습의 현재와 미래Joon Kim
 

Was ist angesagt? (20)

Cnn 발표자료
Cnn 발표자료Cnn 발표자료
Cnn 발표자료
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering) 20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
20141214 빅데이터실전기술 - 유사도 및 군집화 방법 (Similarity&Clustering)
 
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
 
Openface
OpenfaceOpenface
Openface
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
What is spark
What is sparkWhat is spark
What is spark
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
Openface
OpenfaceOpenface
Openface
 
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
 
딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초딥러닝 - 역사와 이론적 기초
딥러닝 - 역사와 이론적 기초
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow Internals
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_share
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
Learning to remember rare events
Learning to remember rare eventsLearning to remember rare events
Learning to remember rare events
 
기계 학습의 현재와 미래
기계 학습의 현재와 미래기계 학습의 현재와 미래
기계 학습의 현재와 미래
 

Ähnlich wie [264] large scale deep-learning_on_spark

[PR12] PR-026: Notes for CVPR Machine Learning Sessions
[PR12] PR-026: Notes for CVPR Machine Learning Sessions[PR12] PR-026: Notes for CVPR Machine Learning Sessions
[PR12] PR-026: Notes for CVPR Machine Learning SessionsTaegyun Jeon
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learninghoondong kim
 
Deep learning의 이해
Deep learning의 이해Deep learning의 이해
Deep learning의 이해KwangPil Hong
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection창기 문
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection창기 문
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
Chapter 12 applications - 1
Chapter 12 applications - 1Chapter 12 applications - 1
Chapter 12 applications - 1KyeongUkJang
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
Deep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniquesDeep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniquesKang Pilsung
 
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
 
FCN to DeepLab.v3+
FCN to DeepLab.v3+FCN to DeepLab.v3+
FCN to DeepLab.v3+Whi Kwon
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhleeDongheon Lee
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장Sunggon Song
 
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariochoTfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariochoMario Cho
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...Gyubin Son
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민NAVER D2
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLDKim Junghoon
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 

Ähnlich wie [264] large scale deep-learning_on_spark (20)

[PR12] PR-026: Notes for CVPR Machine Learning Sessions
[PR12] PR-026: Notes for CVPR Machine Learning Sessions[PR12] PR-026: Notes for CVPR Machine Learning Sessions
[PR12] PR-026: Notes for CVPR Machine Learning Sessions
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learning
 
Deep learning의 이해
Deep learning의 이해Deep learning의 이해
Deep learning의 이해
 
Feature Pyramid Network, FPN
Feature Pyramid Network, FPNFeature Pyramid Network, FPN
Feature Pyramid Network, FPN
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
Chapter 12 applications - 1
Chapter 12 applications - 1Chapter 12 applications - 1
Chapter 12 applications - 1
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Deep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniquesDeep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniques
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
FCN to DeepLab.v3+
FCN to DeepLab.v3+FCN to DeepLab.v3+
FCN to DeepLab.v3+
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhlee
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장
 
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariochoTfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
Tfk 6618 tensor_flow로얼굴인식구현_r10_mariocho
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 

Mehr von NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

Mehr von NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

[264] large scale deep-learning_on_spark

  • 1. Large-Scale Deep Learning on Spark 이 주 열 LG CNS 정보기술연구원
  • 2. 목 차 1. Deep Learning Overview 2. Large-Scale Deep Learning 3. What’s Next?
  • 4. 1.1 Deep Learning 배경 Machine Learning과 Deep Learning 인공신경망 다층 퍼셉트론 (Multi-layer Perceptron) Deep Learning Machine Learning(기계학습) Decision Tree PCA k-means …
  • 5. 1.1 Deep Learning 배경 Machine Learning - 주어진 데이터로 컴퓨터 훈련 (Learning) - 데이터의 숨어있는 규칙을 추론 (Inference) - 이를 토대로 새로운 데이터 예측
  • 6. 1.1 Deep Learning 배경 Machine Learning - 주어진 데이터로 컴퓨터 훈련 (Learning) - 데이터의 숨어있는 규칙을 추론 (Inference) - 이를 토대로 새로운 데이터 예측 Class A Class B
  • 7. 1.1 Deep Learning 배경 Machine Learning - 주어진 데이터로 컴퓨터 훈련 (Learning) - 데이터의 숨어있는 규칙을 추론 (Inference) - 이를 토대로 새로운 데이터 예측 ● Class A Class B
  • 8. 1.1 Deep Learning 배경 인공신경망 (Artificial Neural Network, ANN)
  • 9. 1.1 Deep Learning 배경 인공신경망 (Artificial Neural Network, ANN) Cats 은닉층 (Hidden layer) 입력층 (Input layer) 출력층 (Output layer) [단층 퍼셉트론] [다층 퍼셉트론]
  • 10. 1.1 Deep Learning 배경 인공신경망 (Artificial Neural Network, ANN)  1943년, McCulloch과 Pitts : 최초 신경망  1958년, Rosenblatt : 단층 퍼셉트론  1969년, Minsky와 Papert : 한계 지적 (XOR)  1986년, Rumelhart 등 : 다층 퍼셉트론  2006년, Deep Learning
  • 11. 1.1 Deep Learning 배경 깊은 은닉층의 신경망 학습이 어려운 이유 : Vanishing Gradient! 출처 : Michael Nielsen (2015), http://neuralnetworksanddeeplearning.com/
  • 12. 1.1 Deep Learning 배경 Breakthrough! : 2006년 Deep Learning 핵심 논문 발표
  • 13. 1.2 Deep Learning 정의 은닉층이 많은 깊은 신경망(Deep Neural Network, DNN)을 학습시키는 알고리즘 기존 인공신경망 깊은 신경망 - 깊이가 얕고 단순 - 깊이가 깊고 복잡 출처: GoogLeNet (2014)
  • 14. 1.2 Deep Learning 정의 어떻게 가능한가? - 사전 학습(Pre-Training)  DBN(Deep Belief Networks) - 각 Layer의 노드간 연결 수 제한  CNN(Convolutional Neural Networks)
  • 15. 1.2 Deep Learning 정의 DBN은 어떻게 작동하나? - 순방향 : 하위 특징에서 상위 특징 추출 (인코딩) - 역방향 : 상위 특징으로부터 하위 특징 생성(디코딩) - 인코딩 후 디코딩으로 입력 패턴을 최대한 복원하도록 각 Layer 별 학습  사전 학습 출처: 김인중 (2014), “Deep Learning: 기계학습의 새로운 트랜드”
  • 16. 1.2 Deep Learning 정의 DBN은 어떻게 작동하나? - 순방향 : 하위 특징에서 상위 특징 추출 (인코딩) - 역방향 : 상위 특징으로부터 하위 특징 생성(디코딩) - 인코딩 후 디코딩으로 입력 패턴을 최대한 복원하도록 각 Layer 별 학습  사전 학습 출처: 김인중 (2014), “Deep Learning: 기계학습의 새로운 트랜드”
  • 17. 1.2 Deep Learning 정의 CNN은 어떻게 작동하나? - C, S 층은 제한된 수의 노드(Node)간 연결로 Vanishing gradient problem 완화 1) C 층: 일정 크기의 지역에서 특징 추출 (마스크: 에지, 코너, 텍스처 추출) 2) S 층: 패턴의 이동, 회전, 크기 변화에 대한 불변성 (다운샘플링으로 해상도 낮춤) 3) F 층: 다층 퍼셉트론 신경망으로 인식,분류 C층 C층S층 S층 F층
  • 19. 2.1 Why Large-Scale Deep Learning? 1. 학습 데이터 증가 - 알고리즘 보다 많은 학습 데이터가 승리1) - Big Data 시대 도래 •’13년 전세계 데이터2): 총 4.4 ZB (4.4조 GB) • 매년 40% 이상 증가 예상 왜 Large-Scale이 필요한가? 1) 출처: Banko and Brill (2011), “Scaling to Very Large Corpora for Natural Language Disambiguation” 2) 출처: IDC (2014), “The Digital Universe of Opportunities” 학습 데이터 크기 정확도
  • 20. 2.1 Why Large-Scale Deep Learning? 2. 알고리즘 모델의 크기 - 점점 깊어지는 DNN  계산량 ↑, 파라미터 개수 ↑ •AlexNet(’12년) ~ 8 Layer • GoogLeNet(’14년) ~ 24 Layer (3배 증가) 왜 Large-Scale이 필요한가?
  • 21. 2.1 Why Large-Scale Deep Learning? Large-Scale Deep Learning을 위한 선택 Scale up (e.g. GPU) Scale out (e.g. Hadoop, Spark …) VS.
  • 22. 2.1 Why Large-Scale Deep Learning? Large-Scale Deep Learning을 위한 선택 Scale up (e.g. GPU) VS.
  • 23. 2.2 Why Spark? 1. Hadoop 등의 기존 대용량 시스템 활용 - 기존 HDFS에 들어있는 데이터 분석 - 시스템 확장 용이 - GPU 시스템 추가 도입 및 데이터 이관 부담 없음 2. 통합된 데이터 처리, 분석 시스템과 환경 - e.g. Streaming  SQL  Machine Learning을 하나의 플랫폼에서! 3. GPU 메모리 한계 극복 (GPU 메모리 사이즈 : 24GB, K80) GPU 대신 Spark 고려 이유
  • 24. 2.2 Why Spark? Hadoop MapReduce vs. Iterative 알고리즘(Machine Learning)
  • 25. 2.2 Why Spark? Hadoop MapReduce는 Machine Learning에 효율적이지 않다
  • 26. 2.2 Why Spark? Machine Learning, Iteration, Spark  성공적! + Speed up + Speed up + Speed up
  • 27. 2.3 Deep Learning on Spark 데이터 병렬 처리로 Large-Scale Deep Learning 구현
  • 28. 2.3 Deep Learning on Spark Learning  Optimization: 정답과의 오차를 최소화하는 파라미터 찾기 출처 : Fei-Fei (2015) Gradient Descent
  • 29. 2.3 Deep Learning on Spark 대표적 Optimization 알고리즘: Gradient Descent • DNN 모델: • 파라미터: • Cost 함수:
  • 30. 2.3 Deep Learning on Spark Gradient 분산 병렬 계산 하기: 1 ~ 100 101 ~ 200 201 ~ 300 301 ~ 400 Training Data 출처 : Andrew Ng
  • 31. 2.3 Deep Learning on Spark Spark 커뮤니티의 Deep Learning 구현 현황 1. 다층 퍼셉트론(Multi-Layer Perceptron) Pipeline 개발 완료 (ML 패키지, ’15년 7월) - Spark 1.5.0 릴리즈(’15년 9월 9일) - JIRA [SPARK-9471]: https://issues.apache.org/jira/browse/SPARK-9471 2. Deep Learning 구현 제안 - JIRA [SPARK-5575] : https://issues.apache.org/jira/browse/SPARK-5575 3. Optimization (분산 병렬) - Stochastic Gradient Descent, L-BFGS 구현
  • 32. 2.3 Deep Learning on Spark Deep Learning/Machine Learning 개발 및 실행 환경 1. BLAS (Basic Linear Algebra Subprograms) - OpenBLAS 설치 (netlib-java) - Spark 빌드 시 “netlib-lgpl” Maven Profile 지정 2. Spark 설정 조절 - conf/spark-default.conf • spark.executor.memory # 기본값 1GB • spark.driver.memory # 기본값 1GB • spark.aka.frameSize # 기본값 128, 수천 개 map/reduce 실행 시 ↑
  • 33. 2.3 Deep Learning on Spark Deep Belief Networks(DBN) on Spark 구현 GradientDescent.scala 출처 : https://github.com/witgo/spark/blob/Sent2vec/mllib/src/main/scala/org/apache/spark/mllib/neuralNetwork/DBN.scala broad cast W
  • 34. 2.3 Deep Learning on Spark Deep Belief Networks(DBN) on Spark 구현 GradientDescent 병렬 계산 - Machine : 4대 - CPU Core : 4개
  • 35. 2.3 Deep Learning on Spark Deep Belief Networks(DBN) on Spark 테스트 1. 환경 - AWS: m4.xlarge(Haswell 2.4GHz, vCPU 4, 메모리 16GB, SSD, 750Mbps) 5대 - Spark 1.5.0-SNAPSHOT, JVM 1.7.0, OpenBLAS 0.2.14 2. 대상 - MNIST (학습 데이터: 60,000, 테스트 데이터: 10,000) •Hinton 교수 DBN 논문: 1.25% test error1) 1) 출처: Hinton (2006), “A fast learning algorithm for deep belief nets”
  • 36. 2.3 Deep Learning on Spark Deep Belief Networks(DBN) on Spark 테스트 3. 학습 모델 : 784 X 500 X 500 X 2000 X 10 - 784 입력 (28 x 28 픽셀 이미지, MNIST) - 은닉 층 500 X 500 X 2000 - 10 출력 (0~9) - α = 0.002, # of Iter = 2000 4. 결과 - Test error: 1.96%
  • 37. 2.3 Deep Learning on Spark Deep Belief Networks(DBN) on Spark 확장성 테스트 Worker Node 개수 Training 소요 시간 (s) 비고 1 255 • 총 5대 Node • Master 1, Worker 4 • 60000 학습 데이터 2 150 3 130 4 125
  • 38. 2.3 Deep Learning on Spark Deep Belief Networks(DBN) on Spark 확장성 테스트 0 50 100 150 200 250 300 1 2 3 4 노드 개수 학습소요시간(s)
  • 39. 2.3 Deep Learning on Spark 아키텍처 Review Driver Worker Worker Worker Block 1 Block 2 Block 3 • 알고리즘 모델 세팅 • 파라미터 초기화 • Gradient 취합 • 파라미터(w) 업데이트 • 학습 데이터 read • Gradient 연산 Worker Block 4
  • 41. 3.1 Data Parallelism 한계 Driver Worker Worker Worker Worker DNN 모델이 단일 머신의 메모리보다 크다면 대안 필요 - 10 million feature 이상 한계1) 적재 불가 적재 불가 적재 불가 적재 불가 적재 불가 1) 출처: https://issues.apache.org/jira/browse/SPARK-4590
  • 42. 3.2 Google의 DistBelief 1. 수십억 파라미터의 Deep Network를 1만 CPU 코어에서 학습 가능 2. 기존 대비 30대 더 큰 모델 3. ImageNet2) state-of-art 정확도 (’12년) 4. 음성인식 train 속도 GPU 대비 10배 5. Downpour SGD, Sandblaster L-BFGS NIPS1) 2012 논문 : Large Scale Distributed Deep Networks 주1) NIPS : Neural Information Processing Systems 학회 주2) 1천6백만 이미지, 2만 카테고리, 10억개 파라미터
  • 43. 3.2 Google의 DistBelief 1. Data & Model Parallelism 2. Distributed Optimization Algorithms - Downpour SGD - Sandblaster L-BFGS  Parameter server 개념 (Model replica들이 파라미터 공유) DistBelief의 특징
  • 44. 3.2 Google의 DistBelief DistBelief의 Model Parallelism 1. DNN 모델을 각 머신에서 분산 처리 2. 모델 파라미터는 각 머신별 나뉘어져 처리
  • 45. 3.2 Google의 DistBelief DistBelief의 Model + Data Parallelism 1. 모델 partitioning으로 모델 병렬처리 2. 데이터 partitioning과 비동기 통신 Parameter Server으로 데이터 병렬 처리 일부 파라미터(Wj)에 대해서 계산
  • 46. 3.2 Google의 DistBelief DistBelief의 Downpour SGD Downpour ① ② ③ ① ② ③
  • 47. 3.3 Parameter Server 1. CMU Machine Learning http://parameterserver.org 2. Factorbird (Stanford Univ.) 3. Petuum http://petuum.github.io 4. Vowpal Wabbit (Yahoo!, MS) http://hunch.net/~vw 5. Paracel http://paracel.io/ 분산 Machine Learning을 위한 다양한 Parameter Server 존재
  • 48. 3.4 Parameter Server on Spark Spark 2.x를 목표로 Parameter Server 제안 Parameter Server 프로토타입 - JIRA [SPARK-6932]: https://issues.apache.org/jira/browse/SPARK-6932 - Parameter Server에 파라미터를 분산 저장하기 위한 테이블 자료구조 필요
  • 49. 3.5 Wrap-Up 광대한 Net에 Spark의 잠재력은 무한! Tool 선호도 비고 Pylearn2 18.6% Python Theano 16.9% Python Caffe 9.9% C++ Torch 9.1% Lua CUDA-ConvNet 5.7% C++ DeepLearning4J 4.1% Java Others 35.8% - 1) 출처: KDnuggets, http://www.kdnuggets.com/2015/06/popular-deep-learning-tools.html Deep Learning Tool 선호도1) 출처: 공각기동대 (1995)
  • 50. Q&A