SlideShare a Scribd company logo
Spark MLlib

Code Reading
Kai Sasaki(@Lewuathe)
Who am I?
• 佐々木海 (Kai Sasaki)
• Hadoop屋さん
• 好きな非線形関数はReLU
What is Spark?
• Scalaで書かれた汎用分散処理エンジン
• グラフ処理, 機械学習, SQLエンジンなど

のライブラリの付属
• Scala, Java, Python, RのAPIを持つ
MLlib
• Sparkに付属されている機械学習ライブラリ
• I/FやAPIがより洗練されたMLという

フレームワークもあるが実装されている

アルゴリズムがMLlibの方が多い
Structure
Structure
今日はこの中の
Gradient Descent
Gradient Descent
• 勾配法
• ある目的関数を最小化(最大化)するような

変数の組を見つけるためのアルゴリズム
• 学習データとのずれ(目的関数)を最小化するような

モデル(変数の組)を見つけるためによく使う
Gradient Descent
f(w)
w
Gradient Descent
f(w)
w
f(w)を最小化するwが知りたい
Gradient Descent
f(w)
w
1. 適当に初期値を決める
Gradient Descent
f(w)
w
2. この点における勾配を求める(微分する) =
Gradient Descent
f(w)
w
3. 変数を次式で更新する
Gradient Descent
f(w)
w
4. これを何回か繰り返す
Gradient Descent
f(w)
w
4. これを何回か繰り返す
Gradient Descent
f(w)
w
4. これを何回か繰り返す
Gradient Descent
f(w)
w
4. これを何回か繰り返す
Gradient Descent
f(w)
w
4. これを何回か繰り返す
ここがf(w)を最小化するw
Gradient Descent
• w: 変数の組
• : step size(学習率)
• : gradient(勾配)
• : 更新式
• loss: 目的関数の値
GradientDescent
GradientDescent#optimize
GradientDescent
GradientDescent
初期値
操作
GradientDescent
d d d d d d d d
p p p
seqOp seqOp seqOp
GradientDescent
d d d d d d d d
p p p
seqOp seqOp seqOp
GradientDescent
d d d d d d d d
p p p
seqOp seqOp seqOp
GradientDescent
d d d d d d d d
p p p
seqOp seqOp seqOp
combOp
GradientDescent
d d d d d d d d
p p p
seqOp seqOp seqOp
combOp
combOp
GradientDescent
d d d d d d d d
p p p
seqOp seqOp seqOp
combOp
result
combOp
GradientDescent
まとめ
• Gradient Descentアルゴリズムの話
• Sparkでの実装
• Gradient, Updater, treeAggregate

More Related Content

PDF
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
PPTX
Java使いにとっての関数
PDF
Aws ml with api
PDF
Spark MLlibでリコメンドエンジンを作った話
PDF
elasticsearch-hadoopをつかってごにょごにょしてみる
PDF
Lambda in java_20160121
PDF
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
PDF
Reading drill
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Java使いにとっての関数
Aws ml with api
Spark MLlibでリコメンドエンジンを作った話
elasticsearch-hadoopをつかってごにょごにょしてみる
Lambda in java_20160121
Elasticsearch 2014/04/21 勉強会資料 「Couchbase と Elasticsearch が手を結んだら」
Reading drill

What's hot (10)

PDF
Objective-Cのいろいろな反復処理
PPTX
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
PPTX
Rdsを学ぶ
PDF
Scalaz-StreamによるFunctional Reactive Programming
PPTX
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
PDF
第一回Web技術勉強会 efkスタック編
PPTX
Sparkでレコメンドエンジンを作ってみた
PDF
Kafka logをオブジェクトストレージに連携する方法まとめ
PDF
ML Pipelineで実践機械学習
PDF
ScalaでBacklogの通知bot作ったで
Objective-Cのいろいろな反復処理
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Rdsを学ぶ
Scalaz-StreamによるFunctional Reactive Programming
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
第一回Web技術勉強会 efkスタック編
Sparkでレコメンドエンジンを作ってみた
Kafka logをオブジェクトストレージに連携する方法まとめ
ML Pipelineで実践機械学習
ScalaでBacklogの通知bot作ったで
Ad

Viewers also liked (20)

PDF
HyperLogLogを用いた、異なり数に基づく
 省リソースなk-meansの
k決定アルゴリズムの提案
PDF
Embuk internals
PPTX
Treasure Data Overview
PDF
図でわかるHDFS Erasure Coding
PDF
Prestogres, ODBC & JDBC connectivity for Presto
PDF
スマートニュースの世界展開を支えるログ解析基盤
PDF
Embulk makes Japan visible
PDF
Managing multi tenant resource toward Hive 2.0
PDF
Fighting Against Chaotically Separated Values with Embulk
PDF
Embulk - 進化するバルクデータローダ
PDF
Understanding Presto - Presto meetup @ Tokyo #1
PDF
Plugin-based software design with Ruby and RubyGems
PPTX
How to ensure Presto scalability 
in multi use case
PDF
Fluentd at Bay Area Kubernetes Meetup
PDF
Logging for Production Systems in The Container Era
PDF
DigdagはなぜYAMLなのか?
PDF
Maintainable cloud architecture_of_hadoop
PDF
What's Amazon Athena? - re:Growth 2016 Osaka
PDF
分散ワークフローエンジン『Digdag』の実装 at Tokyo RubyKaigi #11
PDF
Embulk, an open-source plugin-based parallel bulk data loader
HyperLogLogを用いた、異なり数に基づく
 省リソースなk-meansの
k決定アルゴリズムの提案
Embuk internals
Treasure Data Overview
図でわかるHDFS Erasure Coding
Prestogres, ODBC & JDBC connectivity for Presto
スマートニュースの世界展開を支えるログ解析基盤
Embulk makes Japan visible
Managing multi tenant resource toward Hive 2.0
Fighting Against Chaotically Separated Values with Embulk
Embulk - 進化するバルクデータローダ
Understanding Presto - Presto meetup @ Tokyo #1
Plugin-based software design with Ruby and RubyGems
How to ensure Presto scalability 
in multi use case
Fluentd at Bay Area Kubernetes Meetup
Logging for Production Systems in The Container Era
DigdagはなぜYAMLなのか?
Maintainable cloud architecture_of_hadoop
What's Amazon Athena? - re:Growth 2016 Osaka
分散ワークフローエンジン『Digdag』の実装 at Tokyo RubyKaigi #11
Embulk, an open-source plugin-based parallel bulk data loader
Ad

Similar to Spark MLlib code reading ~optimization~ (12)

PDF
SGD+α: 確率的勾配降下法の現在と未来
PDF
PRML 5.3-5.4
PDF
lispmeetup#63 Common Lispでゼロから作るDeep Learning
PDF
Deep learning2
PDF
HivemallとSpark MLlibの比較
PPTX
Deep learning basics described
PDF
SGDによるDeepLearningの学習
PDF
深層学習(講談社)のまとめ 第3章
PPTX
深層学習①
PDF
PDF
PRML Chapter 5 (5.0-5.4)
PDF
Practical recommendations for gradient-based training of deep architectures
SGD+α: 確率的勾配降下法の現在と未来
PRML 5.3-5.4
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Deep learning2
HivemallとSpark MLlibの比較
Deep learning basics described
SGDによるDeepLearningの学習
深層学習(講談社)のまとめ 第3章
深層学習①
PRML Chapter 5 (5.0-5.4)
Practical recommendations for gradient-based training of deep architectures

More from Kai Sasaki (20)

PDF
Graviton 2で実現する
コスト効率のよいCDP基盤
PDF
Infrastructure for auto scaling distributed system
PDF
Continuous Optimization for Distributed BigData Analysis
PDF
Recent Changes and Challenges for Future Presto
PDF
Real World Storage in Treasure Data
PDF
20180522 infra autoscaling_system
PDF
User Defined Partitioning on PlazmaDB
PDF
Deep dive into deeplearn.js
PDF
Optimizing Presto Connector on Cloud Storage
PDF
Presto updates to 0.178
PDF
How I tried MADE
PDF
Reading kernel org
PDF
Kernel ext4
PDF
Kernel bootstrap
PDF
Kernel resource
PDF
Kernel overview
PDF
AutoEncoderで特徴抽出
PDF
Pattern match with case class
PDF
Drawing word2vec
PDF
Deeplearning with node
Graviton 2で実現する
コスト効率のよいCDP基盤
Infrastructure for auto scaling distributed system
Continuous Optimization for Distributed BigData Analysis
Recent Changes and Challenges for Future Presto
Real World Storage in Treasure Data
20180522 infra autoscaling_system
User Defined Partitioning on PlazmaDB
Deep dive into deeplearn.js
Optimizing Presto Connector on Cloud Storage
Presto updates to 0.178
How I tried MADE
Reading kernel org
Kernel ext4
Kernel bootstrap
Kernel resource
Kernel overview
AutoEncoderで特徴抽出
Pattern match with case class
Drawing word2vec
Deeplearning with node

Spark MLlib code reading ~optimization~