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
150
Value Your Types!
ericqweinstein
0
110
Being Good: An Introduction to Robo- and Machine Ethics
ericqweinstein
1
2k
What If...?: Ruby 3
ericqweinstein
1
240
Infinite State Machine
ericqweinstein
1
150
Do Androids Dream of Electronic Dance Music?
ericqweinstein
1
120
Machine Learning with Elixir and Phoenix
ericqweinstein
1
980
Machine Learning with Clojure and Apache Spark
ericqweinstein
1
440
A Nil Device, A Lonely Operator, and a Voyage to the Void Star
ericqweinstein
1
1k
Other Decks in Technology
See All in Technology
AWS DevOps Agent vs SRE俺 / AWS DevOps Agent vs me, the SRE
sms_tech
3
840
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
430
Kubernetesにおける推論基盤
ry
1
390
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
3k
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
720
Cortex Code CLI と一緒に進めるAgentic Data Engineering
__allllllllez__
0
340
Postman v12 で変わる API開発ワークフロー (Postman v12 アップデート) / New API development workflow with Postman v12
yokawasa
0
130
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
640
AI実装による「レビューボトルネック」を解消する仕様駆動開発(SDD)/ ai-sdd-review-bottleneck
rakus_dev
0
140
Everything Claude Code を眺める
oikon48
8
4.8k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
AI時代の「本当の」ハイブリッドクラウド — エージェントが実現した、あの頃の夢
ebibibi
0
130
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Crafting Experiences
bethany
1
87
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Designing for humans not robots
tammielis
254
26k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
480
So, you think you're a good person
axbom
PRO
2
2k
GitHub's CSS Performance
jonrohan
1032
470k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
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!