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

What's hot (10)

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

Viewers also liked (20)

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

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

PDF
SGD+α: 確率的勾配降下法の現在と未来
Hidekazu Oiwa
 
PDF
PRML 5.3-5.4
正志 坪坂
 
PDF
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
 
PDF
Deep learning2
ssuserf94232
 
PDF
HivemallとSpark MLlibの比較
Makoto Yui
 
PPTX
Deep learning basics described
Naoki Watanabe
 
PDF
SGDによるDeepLearningの学習
Masashi (Jangsa) Kawaguchi
 
PDF
深層学習(講談社)のまとめ 第3章
okku apot
 
PPTX
深層学習①
ssuser60e2a31
 
PDF
Report2
YoshikazuHayashi3
 
PDF
PRML Chapter 5 (5.0-5.4)
Shogo Nakamura
 
PDF
Practical recommendations for gradient-based training of deep architectures
Koji Matsuda
 
SGD+α: 確率的勾配降下法の現在と未来
Hidekazu Oiwa
 
PRML 5.3-5.4
正志 坪坂
 
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
 
Deep learning2
ssuserf94232
 
HivemallとSpark MLlibの比較
Makoto Yui
 
Deep learning basics described
Naoki Watanabe
 
SGDによるDeepLearningの学習
Masashi (Jangsa) Kawaguchi
 
深層学習(講談社)のまとめ 第3章
okku apot
 
深層学習①
ssuser60e2a31
 
PRML Chapter 5 (5.0-5.4)
Shogo Nakamura
 
Practical recommendations for gradient-based training of deep architectures
Koji Matsuda
 
Ad

More from Kai Sasaki (20)

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

Spark MLlib code reading ~optimization~