SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Machine Learning & Deep Learnig
With Spark
SK 주식회사 DataScience 팀
스파크 사용자 모임 운영자
이상훈
Who am I?
• 패턴인식, 머신러닝 전공
• 전) KIST 인지로봇 연구단
• SK 주식회사 Data Science 팀
• 스파크 사용자 모임 운영자
• Streaming, DW, Machine Learning,
Deep Learning, AutoML 관심 많음
• 빅데이터 실무 기술 가이드 공저, 실시간 분석의 모든것
번역
• phoenixlee1@gmail.com
• www.facebook.com/phoenixlee.sh
Apache Spark
오늘의 주제
Spark Mllib
package
spark.mllib vs spark.ml
RDD 기반
더 많은
알고리즘
Spark 3.0
삭제 예정
Spark Mllib
package
spark.mllib vs spark.ml
DataFrame
기반
Pipeline
제공
활발한
업데이트
Mllib package 대신 ml package로 넘어가야 함.
머신러닝을 처음 시작할 때 배우는 것
• 머신러닝은 크게 2가지 종류로 나눌 수 있음
• Supervised Learning
– 훈련 데이터(Training Data)로부터 하나의 함수를 유추
• Unsupervised Learning
– 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속
함
– Supervised Learning 입력값에 대한 목표치가 주어지지
않음
• 참고 : Reinforcement Learning
Labeled Data
유무!
보상과 환경
Spark Mllib
package
Supervised Learning UnSupervised Learning
Spark 제공 머신러닝 알고리즘
머신러닝에서 진짜 중요한 것
• 분석 목적
• 양질의 데이터 (Garbage in, garbage out)
• 비지니스 효과성 측정
개인의 몫이 아닌 경우가 많고, 오늘의 주제 아님.
머신러닝에서 진짜 중요한 것
• 분석 목적
• 양질의 데이터 (Garbage in, garbage out)
• 비지니스 효과성 측정
 개인의 몫이 아닌 경우가 많고, 오늘의 주제 아님.
• Pre-Processing
• Hyperparameter Tuning
• 머신러닝 Flow (Pipeline)
• Data, Model 관리
앞으로 다룰 내용
Data Ingestion Pre Processing Modeling Deployment Model Lifecycle
1. 전처리 (General)
• 특징 추출 및 일반화
• 적용: 텍스트와 같은 입력
데이터를 머신러닝
알고리즘에 활용할 수
있도록 변화
• 구성: 데이터 전처리, 특징
추출
2. 차원 축소
(Dimensionality
Reduction)
• 결정해야 할 확률변수의
개수를 줄이는 방법
• 적용: Visualization,
Increased efficiency
• 알고리즘: PCA, feature
selection, non-negative
matrix factorization.
전처리(Pre-processing)
• 파라미터와 모델의 비교
및 평가를 통한 선택
• 목적 : 파라미터 조정을
통한 정확도 향상
• 구성 : grid search, cross
validation,metrics , …
모델 선택(Model Selection)
• 해당 객체가 어느
카테고리에 속하는지
확인하여 구분 짓는 방법
• 적용 : 스팸 메일 탐지,
이미지 인식 등
• 알고리즘 : SVM, ANN,
random forest, ...
분류(Classification)
• 유사성이 존재하는
객체들끼리 묶어주는 방법
• 적용 : 고객 세분화,
실험결과 grouping
• 알고리즘: k-Means, spectral
clustering,mean-shift, ...
군집(Clustring)
• 변수 간의 이론적 의존
관계를 해석하는 방법
• 적용 : 약물 반응, 주식 가격
예측 등
• 알고리즘: SVR, ridge
regression, Lasso, ...
회귀(Regression)
• 상품이나 서비스 등을
제안하기 위한 분석 기법
• 적용: 미디어, 소셜 태그 등
추천
• 알고리즘 : Content Based
Recommendation,
Collaborative filtering
추천(Recommendation)
머신러닝 처리과정
R
• 가장 다양하고 최신의
알고리즘 패키지 제공
• 분산처리 취약하고 주로 모델
분석용으로 사용
Spark ML
• 분산처리 및 스트리밍 SQL
연동 등 쉬움 (Spark 기반)
• 최근 많이 사용하고 있지만
적용사례 찾기 어려움
Scikit-Learn
• 프로그래밍 언어(Python)
기반이기 때문에 편리함
• 분산처리 취약하고 R 대비
알고리즘 少
Mahout
• 하둡과 연동이 쉬우며 적용
사례 가장 多
• 맵리듀스 기반이라 느리며,
지원 알고리즘 少
…
오픈소스
적용 및
알고리즘
머신러닝 알고리즘 및 오픈소스
Thanks to 서진철, 이은지
Pre-Processing
• Data Cleaning
• Instance selection (Dataset reduction)
• Normalization
• Transformation
• Feature extraction and selection
Pre-Processing
• Spark Programming + Spark SQL + Spark
Streaming
• Spark mllib API
Pre-Processing 예제
• Tokenizer -> StopWordsRemover -> Word2Vec
Pre-Processing 예제
• Tokenizer -> StopWordsRemover -> Word2Vec
<Word2Vec : King – Man + Woman = Queen>
알고리즘 선택
Spark Ml package
HyperParameters
Random forest
classifier
• setFeaturescol
• setPredictioncol
• setImpurity(String) : gain 계산시 사용할 수식 (대소문
자 구분함).
• setMaxBins(Int) : 최대 bin(몇 개로 나눌지) 수
• setMaxDepth(Int) : 최대 트리의 깊이
• setMinInfoGain(Double) : 트리를 분류할 때 최소한의 inf
omation gain.
• setMinInstancesPerNode(Int) : 각 노드당 최소한의 인
스턴스 수.
• setNumTrees(Int) : 학습할 트리 수. 1보다 같거나 커야
함
• setSeed(Long) : 랜덤 시드
• setSubsampleingRate(Double) : 각 결정 트리에서 사용
할 데이터 크기. 0초과부터 1까지.
• setThresholds(Array[Double]) : Multi-class Classifi
cation 임계치로 각 클래스의 예상 확률값.
• 너무 많은 파라미터들!
Spark Ml package
Confusion Matrix
출처 : 위키피디아
모델 평가
 ROC(Receiver Operating Characteristic) Curve
기계학습 추가이론
Typical learning curve
기계학습 추가이론
기계학습 추가이론
Spark Ml package
Parameters tunning in Spark
Train Validation
Cross Validation
Hyper-parameter tuning
기계학습 추가이론
Hyper-parameter tuning
 Auto-sklearn
기계학습 추가이론
TPOT
• 분산으로 하이퍼 파라미터를 구현하는 것중에 코
드가 공개된 것.
• 파이썬 라이브러리를 활용해서 병렬로 최적화와
탐색을 진행함.
• 아쉽게도 최근에는 개발이 활발하지는 않음
• 대신 심플한 코드 인상적이며 생성된 코드를 보
여줌
TPOT
TPOT
Advanced Hyperparameter tunning
 Practical Bayesian Optimization of MachineLearning Algorithms
− http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-
machine-learning-algorithms.pdf
− 위 논문이랑 비슷하게 bayseian 기반의 탐색이 종종 보임.
 Sequential Model-Based Optimization for General Algorithm Configuration
− http://www.cs.ubc.ca/~hutter/papers/11-LION5-SMAC.pdf
− Auto weka 참고 논문으로 SMBO이긴 한데 random forest를 사용하고 있음.
 Auto Weka
− http://www.cs.ubc.ca/labs/beta/Projects/autoweka/papers/au
toweka.pdf
− 기본적으로 위의 SMBO(Sequential Model-based Bayesian Optimization)이라
는 방법으로 최적의 값을 찾아냄.
− SMAC이라는 알고리즘을 기반으로 Hyper Parameter의 loss function을 구함
기계학습 추가이론
Auto Weka
기계학습 추가이론
 사내에서 사용하기 위하여 이와 같은 기능을 Web + Spark
기반으로 구현해두었음.
Spark Ml package
Spark Pipeline
• 모델을 생성시키는 과정
• 생성된 모델을 통해 최종 prediction 도출
사내 적용 솔루션
기계학습 추가이론
• 데이터셋 관리
• 모델 생명주기 관리
• Visualization
• Web 기반 Spark 코드 생성 (코딩x)
• AutoML
참고 : ModelDB
참고 : AutoML
Automated Machine Learning — A Paradigm Shift
That Accelerates Data Scientist Productivity
@ Airbnb
딥러닝
Single Layer Perceptron.
Perceptron
sgn
딥러닝
Propagation
 Propagation
− Forward propagation: input training data로부터 output을 계산하고, 각 output neuron에서
의 error를 계산.
− Back propagation: output neuron에서 계산된 error를 각 edge들의 weight를 사용해 바로 이
전 layer의 neuron들이 얼마나 error에 영향을 미쳤는지 계산.
딥러닝
Single Layer Perceptron’s Limitation
딥러닝
Multi Layer Perceptron
 Hidden layer 계속 추가!
딥러닝
Image Convolution
 Convolution
Convolution Neural Network
*** Feature Engineering을 대신 수행
Deep Learning으로 인한 인식률 개선
참고 : AutoML
• 딥 러 닝 이 Feature Engineering 을 대 신 해 주 고 Hyper
Prameter를 대신 최적화 해주는 것 같지만 여전히 많은 이슈가
있음
• 뉴럴 네트워크를 ‘잘’ 디자인하고 튜닝하는 것은 더 어려움
• 병렬 인프라를 이용하여 좋은 구조를 자동학습하기 위한 시도들
– 강화학습, 유전자 알고리즘 등 활용
출처 : NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING
Deep Learning Frameworks
출처 : https://goo.gl/Pb3sRw
Deep Learning with Spark
Deep Learning Frame
work
Focus
BigDL BigDL big model training, ETL
CaffeOnSpark Caffe small model training, ETL
DeepLearning4J DeepLearning4J big/small model training, ETL
DeepDist DeepDist big model training
TensorFlowOnSpa
rk
TensorFlow small model training, ETL
TensorFrames TensorFlow Spark integration, small model training, ETL
TensorflowOnSpark
분산 기계학습
CaffeOnSpark
분산 기계학습
분산 기계학습
TensorFrame
• Databricks 주도로 개발중
• Native embedding of Tensorflow
DL4J
• History
– 2014년 첫 릴리즈
– Skymind를 주도로 만들어진 오픈소스로 Skymind가 상업적 지원도 병행하고
있음
– 다른 딥러닝 프레임워크와 달리 Java를 메인 언어로 지원
– 연구용 보다는 Spark를 기반으로 엔터프라이즈를 추구
• 장점
– 엔터프라이즈에 적용이 상대적으로 쉬우며 컨설팅 가능
– Skymind(아담 깁슨) 등 주요 개발자가 채팅 등을 통해 적극적으로 이슈해결에
도움을 줌
– 빅데이터 시스템과의 연동이 쉬움
• 단점
– 사용자 층이 얇음
– 개발자 수가 적어서 이슈 처리가 상대적으로 느림
분산 기계학습
분산 기계학습
BigDL
• Intel의 주도로 개발되고 있으며 Xeon과 같은 서버 CPU 활용에
초점을 맞췄음
• MKL와 멀티쓰레딩을 이용하여 큰 모델에서의 뛰어난 성능
• Production ML/DL system is complex
CPU vs GPU
Infra
출처 : https://goo.gl/S9E4dr
CPU vs GPU
출처 : https://github.com/jcjohnson/cnn-benchmarks
Infra
CPU vs GPU
Infra
Google TPU
Infra
• (’16) 이세돌과 싸웠던 알파고는 1202개 CPU와 176개 GPU를
활용
• (’17) 커제와 싸운 알파고는 수 개의 Google TPU를 활용하였음
• 2세대 Google TPU
– 최대 180 Teraflops에 달하는 부동 소수점 연산기능
– TPU Pod을 이용하면 11.5 Petaflops까지도 가능함
• 단점 : Google 클라우드에서만 사용가능하고 비쌈
결론
• 머신러닝
– 머신러닝은 알고리즘이 전부가 아니다.
– Pre-Processing, Hyperparameter Tuning, Pipeline, Data,
Model 관리 및 서빙이 필요하다.
– Spark는 위 프로세스에 최적의 OpenSource이다.
• 딥러닝
– Spark에 딥러닝을 접목하기 위한 시도가 많이 이루어지고 있다.
– GPU와 딥러닝 프레임워크의 대체보다는 시너지를 가지는 방향으로
발전 될 것이다.
• AutoML
분산 기계학습
Q & A

Mais conteúdo relacionado

Mais procurados

Hadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobileHadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobile상연 최
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지위키북스
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 Un Gi Jung
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기SangWoo Kim
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & ZookeeperJunyoung Park
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Jeong-gyu Kim
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Teddy Choi
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축Juhong Park
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 

Mais procurados (20)

Hadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobileHadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobile
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기
 
Spark sql
Spark sqlSpark sql
Spark sql
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & Zookeeper
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 

Semelhante a Spark Day 2017 Machine Learning & Deep Learning With Spark

Python & Spark
Python & SparkPython & Spark
Python & Sparkitproman35
 
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
 
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례ABRC_DATA
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Sparkhoondong kim
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)중선 곽
 
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 ABRC_DATA
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
졸업후 취업까지.ssul
졸업후 취업까지.ssul졸업후 취업까지.ssul
졸업후 취업까지.ssul승표 홍
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.Adonis Han
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해중선 곽
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
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
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례kosena
 
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기복연 이
 

Semelhante a Spark Day 2017 Machine Learning & Deep Learning With Spark (20)

Python & Spark
Python & SparkPython & Spark
Python & Spark
 
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
 
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
졸업후 취업까지.ssul
졸업후 취업까지.ssul졸업후 취업까지.ssul
졸업후 취업까지.ssul
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
Openface
OpenfaceOpenface
Openface
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
Openface
OpenfaceOpenface
Openface
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례[코세나, kosena] 금융권의 머신러닝 활용사례
[코세나, kosena] 금융권의 머신러닝 활용사례
 
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
 

Spark Day 2017 Machine Learning & Deep Learning With Spark

  • 1. Machine Learning & Deep Learnig With Spark SK 주식회사 DataScience 팀 스파크 사용자 모임 운영자 이상훈
  • 2. Who am I? • 패턴인식, 머신러닝 전공 • 전) KIST 인지로봇 연구단 • SK 주식회사 Data Science 팀 • 스파크 사용자 모임 운영자 • Streaming, DW, Machine Learning, Deep Learning, AutoML 관심 많음 • 빅데이터 실무 기술 가이드 공저, 실시간 분석의 모든것 번역 • phoenixlee1@gmail.com • www.facebook.com/phoenixlee.sh
  • 4. Spark Mllib package spark.mllib vs spark.ml RDD 기반 더 많은 알고리즘 Spark 3.0 삭제 예정
  • 5. Spark Mllib package spark.mllib vs spark.ml DataFrame 기반 Pipeline 제공 활발한 업데이트 Mllib package 대신 ml package로 넘어가야 함.
  • 6. 머신러닝을 처음 시작할 때 배우는 것 • 머신러닝은 크게 2가지 종류로 나눌 수 있음 • Supervised Learning – 훈련 데이터(Training Data)로부터 하나의 함수를 유추 • Unsupervised Learning – 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속 함 – Supervised Learning 입력값에 대한 목표치가 주어지지 않음 • 참고 : Reinforcement Learning Labeled Data 유무! 보상과 환경
  • 7. Spark Mllib package Supervised Learning UnSupervised Learning Spark 제공 머신러닝 알고리즘
  • 8. 머신러닝에서 진짜 중요한 것 • 분석 목적 • 양질의 데이터 (Garbage in, garbage out) • 비지니스 효과성 측정 개인의 몫이 아닌 경우가 많고, 오늘의 주제 아님.
  • 9. 머신러닝에서 진짜 중요한 것 • 분석 목적 • 양질의 데이터 (Garbage in, garbage out) • 비지니스 효과성 측정  개인의 몫이 아닌 경우가 많고, 오늘의 주제 아님. • Pre-Processing • Hyperparameter Tuning • 머신러닝 Flow (Pipeline) • Data, Model 관리 앞으로 다룰 내용
  • 10. Data Ingestion Pre Processing Modeling Deployment Model Lifecycle
  • 11. 1. 전처리 (General) • 특징 추출 및 일반화 • 적용: 텍스트와 같은 입력 데이터를 머신러닝 알고리즘에 활용할 수 있도록 변화 • 구성: 데이터 전처리, 특징 추출 2. 차원 축소 (Dimensionality Reduction) • 결정해야 할 확률변수의 개수를 줄이는 방법 • 적용: Visualization, Increased efficiency • 알고리즘: PCA, feature selection, non-negative matrix factorization. 전처리(Pre-processing) • 파라미터와 모델의 비교 및 평가를 통한 선택 • 목적 : 파라미터 조정을 통한 정확도 향상 • 구성 : grid search, cross validation,metrics , … 모델 선택(Model Selection) • 해당 객체가 어느 카테고리에 속하는지 확인하여 구분 짓는 방법 • 적용 : 스팸 메일 탐지, 이미지 인식 등 • 알고리즘 : SVM, ANN, random forest, ... 분류(Classification) • 유사성이 존재하는 객체들끼리 묶어주는 방법 • 적용 : 고객 세분화, 실험결과 grouping • 알고리즘: k-Means, spectral clustering,mean-shift, ... 군집(Clustring) • 변수 간의 이론적 의존 관계를 해석하는 방법 • 적용 : 약물 반응, 주식 가격 예측 등 • 알고리즘: SVR, ridge regression, Lasso, ... 회귀(Regression) • 상품이나 서비스 등을 제안하기 위한 분석 기법 • 적용: 미디어, 소셜 태그 등 추천 • 알고리즘 : Content Based Recommendation, Collaborative filtering 추천(Recommendation) 머신러닝 처리과정 R • 가장 다양하고 최신의 알고리즘 패키지 제공 • 분산처리 취약하고 주로 모델 분석용으로 사용 Spark ML • 분산처리 및 스트리밍 SQL 연동 등 쉬움 (Spark 기반) • 최근 많이 사용하고 있지만 적용사례 찾기 어려움 Scikit-Learn • 프로그래밍 언어(Python) 기반이기 때문에 편리함 • 분산처리 취약하고 R 대비 알고리즘 少 Mahout • 하둡과 연동이 쉬우며 적용 사례 가장 多 • 맵리듀스 기반이라 느리며, 지원 알고리즘 少 … 오픈소스 적용 및 알고리즘 머신러닝 알고리즘 및 오픈소스 Thanks to 서진철, 이은지
  • 12. Pre-Processing • Data Cleaning • Instance selection (Dataset reduction) • Normalization • Transformation • Feature extraction and selection
  • 13. Pre-Processing • Spark Programming + Spark SQL + Spark Streaming • Spark mllib API
  • 14. Pre-Processing 예제 • Tokenizer -> StopWordsRemover -> Word2Vec
  • 15. Pre-Processing 예제 • Tokenizer -> StopWordsRemover -> Word2Vec <Word2Vec : King – Man + Woman = Queen>
  • 17. Spark Ml package HyperParameters Random forest classifier • setFeaturescol • setPredictioncol • setImpurity(String) : gain 계산시 사용할 수식 (대소문 자 구분함). • setMaxBins(Int) : 최대 bin(몇 개로 나눌지) 수 • setMaxDepth(Int) : 최대 트리의 깊이 • setMinInfoGain(Double) : 트리를 분류할 때 최소한의 inf omation gain. • setMinInstancesPerNode(Int) : 각 노드당 최소한의 인 스턴스 수. • setNumTrees(Int) : 학습할 트리 수. 1보다 같거나 커야 함 • setSeed(Long) : 랜덤 시드 • setSubsampleingRate(Double) : 각 결정 트리에서 사용 할 데이터 크기. 0초과부터 1까지. • setThresholds(Array[Double]) : Multi-class Classifi cation 임계치로 각 클래스의 예상 확률값. • 너무 많은 파라미터들!
  • 18. Spark Ml package Confusion Matrix 출처 : 위키피디아
  • 19. 모델 평가  ROC(Receiver Operating Characteristic) Curve 기계학습 추가이론
  • 22. Spark Ml package Parameters tunning in Spark Train Validation Cross Validation
  • 25. TPOT • 분산으로 하이퍼 파라미터를 구현하는 것중에 코 드가 공개된 것. • 파이썬 라이브러리를 활용해서 병렬로 최적화와 탐색을 진행함. • 아쉽게도 최근에는 개발이 활발하지는 않음 • 대신 심플한 코드 인상적이며 생성된 코드를 보 여줌
  • 26. TPOT
  • 27. TPOT
  • 28. Advanced Hyperparameter tunning  Practical Bayesian Optimization of MachineLearning Algorithms − http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of- machine-learning-algorithms.pdf − 위 논문이랑 비슷하게 bayseian 기반의 탐색이 종종 보임.  Sequential Model-Based Optimization for General Algorithm Configuration − http://www.cs.ubc.ca/~hutter/papers/11-LION5-SMAC.pdf − Auto weka 참고 논문으로 SMBO이긴 한데 random forest를 사용하고 있음.  Auto Weka − http://www.cs.ubc.ca/labs/beta/Projects/autoweka/papers/au toweka.pdf − 기본적으로 위의 SMBO(Sequential Model-based Bayesian Optimization)이라 는 방법으로 최적의 값을 찾아냄. − SMAC이라는 알고리즘을 기반으로 Hyper Parameter의 loss function을 구함 기계학습 추가이론
  • 29. Auto Weka 기계학습 추가이론  사내에서 사용하기 위하여 이와 같은 기능을 Web + Spark 기반으로 구현해두었음.
  • 30. Spark Ml package Spark Pipeline • 모델을 생성시키는 과정 • 생성된 모델을 통해 최종 prediction 도출
  • 31. 사내 적용 솔루션 기계학습 추가이론 • 데이터셋 관리 • 모델 생명주기 관리 • Visualization • Web 기반 Spark 코드 생성 (코딩x) • AutoML
  • 33. 참고 : AutoML Automated Machine Learning — A Paradigm Shift That Accelerates Data Scientist Productivity @ Airbnb
  • 36. 딥러닝 Propagation  Propagation − Forward propagation: input training data로부터 output을 계산하고, 각 output neuron에서 의 error를 계산. − Back propagation: output neuron에서 계산된 error를 각 edge들의 weight를 사용해 바로 이 전 layer의 neuron들이 얼마나 error에 영향을 미쳤는지 계산.
  • 38. 딥러닝 Multi Layer Perceptron  Hidden layer 계속 추가!
  • 40. Convolution Neural Network *** Feature Engineering을 대신 수행
  • 41. Deep Learning으로 인한 인식률 개선
  • 42. 참고 : AutoML • 딥 러 닝 이 Feature Engineering 을 대 신 해 주 고 Hyper Prameter를 대신 최적화 해주는 것 같지만 여전히 많은 이슈가 있음 • 뉴럴 네트워크를 ‘잘’ 디자인하고 튜닝하는 것은 더 어려움 • 병렬 인프라를 이용하여 좋은 구조를 자동학습하기 위한 시도들 – 강화학습, 유전자 알고리즘 등 활용 출처 : NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING
  • 43. Deep Learning Frameworks 출처 : https://goo.gl/Pb3sRw
  • 44. Deep Learning with Spark Deep Learning Frame work Focus BigDL BigDL big model training, ETL CaffeOnSpark Caffe small model training, ETL DeepLearning4J DeepLearning4J big/small model training, ETL DeepDist DeepDist big model training TensorFlowOnSpa rk TensorFlow small model training, ETL TensorFrames TensorFlow Spark integration, small model training, ETL
  • 47. 분산 기계학습 TensorFrame • Databricks 주도로 개발중 • Native embedding of Tensorflow
  • 48. DL4J • History – 2014년 첫 릴리즈 – Skymind를 주도로 만들어진 오픈소스로 Skymind가 상업적 지원도 병행하고 있음 – 다른 딥러닝 프레임워크와 달리 Java를 메인 언어로 지원 – 연구용 보다는 Spark를 기반으로 엔터프라이즈를 추구 • 장점 – 엔터프라이즈에 적용이 상대적으로 쉬우며 컨설팅 가능 – Skymind(아담 깁슨) 등 주요 개발자가 채팅 등을 통해 적극적으로 이슈해결에 도움을 줌 – 빅데이터 시스템과의 연동이 쉬움 • 단점 – 사용자 층이 얇음 – 개발자 수가 적어서 이슈 처리가 상대적으로 느림 분산 기계학습
  • 49. 분산 기계학습 BigDL • Intel의 주도로 개발되고 있으며 Xeon과 같은 서버 CPU 활용에 초점을 맞췄음 • MKL와 멀티쓰레딩을 이용하여 큰 모델에서의 뛰어난 성능 • Production ML/DL system is complex
  • 50. CPU vs GPU Infra 출처 : https://goo.gl/S9E4dr
  • 51. CPU vs GPU 출처 : https://github.com/jcjohnson/cnn-benchmarks Infra
  • 53. Google TPU Infra • (’16) 이세돌과 싸웠던 알파고는 1202개 CPU와 176개 GPU를 활용 • (’17) 커제와 싸운 알파고는 수 개의 Google TPU를 활용하였음 • 2세대 Google TPU – 최대 180 Teraflops에 달하는 부동 소수점 연산기능 – TPU Pod을 이용하면 11.5 Petaflops까지도 가능함 • 단점 : Google 클라우드에서만 사용가능하고 비쌈
  • 54. 결론 • 머신러닝 – 머신러닝은 알고리즘이 전부가 아니다. – Pre-Processing, Hyperparameter Tuning, Pipeline, Data, Model 관리 및 서빙이 필요하다. – Spark는 위 프로세스에 최적의 OpenSource이다. • 딥러닝 – Spark에 딥러닝을 접목하기 위한 시도가 많이 이루어지고 있다. – GPU와 딥러닝 프레임워크의 대체보다는 시너지를 가지는 방향으로 발전 될 것이다. • AutoML 분산 기계학습
  • 55. Q & A