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.6k
1
Share
Domo Arigato, Mr. Roboto: Machine Learning with Ruby
Slides for my RubyConf 2016 talk on machine learning.
Eric Weinstein
November 10, 2016
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
130
Machine Learning with Elixir and Phoenix
ericqweinstein
1
990
Machine Learning with Clojure and Apache Spark
ericqweinstein
1
450
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活用/コミュニティー設計TIPS 10選~「作れる」より、「続けられる」設計へ~
yoshiki0705
0
230
[OpsJAWS 40]リリースしたら終わり、じゃなかった。セキュリティ空白期間をAWS Security Agentで埋める
sh_fk2
3
220
20年前の「OSS革命」に学ぶ AI時代の生存戦略
samakada
0
320
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
2
360
AWS認定資格は本当に意味があるのか?
nrinetcom
PRO
1
260
AI時代のガードレールとしてのAPIガバナンス
nagix
0
210
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
160
The Journey of Box Building
tagomoris
4
750
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
150
[最強DB講義]推薦システム | 基礎編
recsyslab
PRO
1
160
Standards et agents IA : un tour d’horizon de MCP, A2A, ADK et plus encore
glaforge
0
140
2026年、知っておくべき最新 サーバレスTips10選/serverless-10-tips
slsops
13
5.1k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to build a perfect <img>
jonoalderson
1
5.4k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
510
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
Are puppies a ranking factor?
jonoalderson
1
3.3k
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!