Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Domo Arigato, Mr. Roboto: Machine Learning with...
Search
Eric Weinstein
November 10, 2016
Technology
1
1.5k
Domo Arigato, Mr. Roboto: Machine Learning with Ruby
Slides for my RubyConf 2016 talk on machine learning.
Eric Weinstein
November 10, 2016
Tweet
Share
More Decks by Eric Weinstein
See All by Eric Weinstein
Interview Them Where They Are
ericqweinstein
0
130
Value Your Types!
ericqweinstein
0
94
Being Good: An Introduction to Robo- and Machine Ethics
ericqweinstein
1
1.9k
What If...?: Ruby 3
ericqweinstein
1
210
Infinite State Machine
ericqweinstein
1
130
Do Androids Dream of Electronic Dance Music?
ericqweinstein
1
110
Machine Learning with Elixir and Phoenix
ericqweinstein
1
960
Machine Learning with Clojure and Apache Spark
ericqweinstein
1
410
A Nil Device, A Lonely Operator, and a Voyage to the Void Star
ericqweinstein
1
1k
Other Decks in Technology
See All in Technology
AI時代の開発を加速する組織づくり - ブログでは書けなかったリアル
hiro8ma
1
320
AWS re:Invent 2025事前勉強会資料 / AWS re:Invent 2025 pre study meetup
kinunori
0
370
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
1
730
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
2
560
AIプロダクトのプロンプト実践テクニック / Practical Techniques for AI Product Prompts
saka2jp
0
110
re:Inventに行くまでにやっておきたいこと
nagisa53
0
320
クラウドとリアルの融合により、製造業はどう変わるのか?〜クラスメソッドの製造業への取組と共に〜
hamadakoji
0
430
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
210
ハノーファーメッセ2025で見た生成AI活用ユースケース.pdf
hamadakoji
1
480
.NET 10のBlazorの期待の新機能
htkym
0
110
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
160
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Faster Mobile Websites
deanohume
310
31k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
How STYLIGHT went responsive
nonsquared
100
5.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Being A Developer After 40
akosma
91
590k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
Transcript
Dōmo arigatō, Mr. Roboto: Machine Learning with Ruby # Eric
Weinstein # RubyConf 2016 # Cincinnati, Ohio # 10 November 2016
for Joshua
Part 0: Hello!
About Me eric_weinstein = { employer: 'Hulu', github: 'ericqweinstein', twitter:
'ericqweinstein', website: 'ericweinste.in' } 30% off with RUBYCONF30!
Agenda • What is machine learning? • What is supervised
learning? • What’s a neural network? • Machine learning with Ruby and the MNIST dataset
Part 1: Machine Learning
None
What’s machine learning?
In a word:
Generalization
What’s Supervised Learning? Classification or regression, generalizing from labeled data
to unlabeled data
Features && Labels • Raw pixel features (vectors of intensities)
• Digit (0..9)
Features && Labels • Raw pixel features (vectors of intensities)
• Digit (0..9)
Image credit: https://www.tensorflow.org/versions/r0.9/tutorials/mnist/ beginners/index.html
What’s a neural network?
Image credit: https://github.com/cdipaolo/goml/tree/master/perceptron
Image credit: https://en.wikipedia.org/wiki/Artificial_neural_network
Part 2: The MNIST Dataset
Our Data • Images of handwritten digits, size-normalized and centered
• Training: 60,000 examples, test: 10,000 • http://yann.lecun.com/exdb/mnist/
Image credit: https://www.researchgate.net/
How’d We Do? • Correct: 9328 / 10_000 • Incorrect:
672 / 10_000 • Overall: 93.28% accuracy
Developing the App
Front End submit() { fetch('/submit', { method: 'POST', body: this.state.canvas.toDataURL('image/png')
}).then(response => { return response.json(); }).then(j => { this.setState({ prediction: j.prediction }); }); }
Front End render() { return( <div> <EditableCanvas canvas={this.state.canvas} ctx={this.state.ctx} ref='editableCanvas'
/> <Prediction number={this.state.prediction} /> <div> <Button onClick={this.submit} value='Submit' /> <Button onClick={this.clear} value='Clear' /> </div> </div> ); }
Back End train = RubyFann::TrainData.new(inputs: features, desired_outputs: labels) fann =
RubyFann::Standard.new(num_inputs: 576, hidden_neurons: [300], num_outputs: 10) fann.train_on_data(train, 1000, 10, 0.01)
STOP #demotime
Summary • Machine learning is generalization • Supervised learning is
labeled data -> unlabeled data • Neural networks are awesome • You can do all this with Ruby!
Takeaways (TL;DPA) • We can do machine learning with Ruby
• Contribute to tools like Ruby FANN (github.com/tangledpath/ruby-fann) and sciruby (http://sciruby.com/) • Check it out: http://ruby-mnist.herokuapp.com/ • PRs welcome! github.com/ericqweinstein/ruby- mnist
Thank You!
Questions? eric_weinstein = { employer: 'Hulu', github: 'ericqweinstein', twitter: 'ericqweinstein',
website: 'ericweinste.in' } 30% off with RUBYCONF30!