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
140
Value Your Types!
ericqweinstein
0
100
Being Good: An Introduction to Robo- and Machine Ethics
ericqweinstein
1
2k
What If...?: Ruby 3
ericqweinstein
1
220
Infinite State Machine
ericqweinstein
1
140
Do Androids Dream of Electronic Dance Music?
ericqweinstein
1
120
Machine Learning with Elixir and Phoenix
ericqweinstein
1
970
Machine Learning with Clojure and Apache Spark
ericqweinstein
1
430
A Nil Device, A Lonely Operator, and a Voyage to the Void Star
ericqweinstein
1
1k
Other Decks in Technology
See All in Technology
Kusakabe_面白いダッシュボードの表現方法
ykka
0
310
The Engineer with a Three-Year Cycle
e99h2121
0
150
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
290
Proxmoxで作る自宅クラウド入門
koinunopochi
0
150
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
530
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
チームで安全にClaude Codeを利用するためのプラクティス / team-claude-code-practices
tomoki10
7
3.4k
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
820
みんなでAI上手ピーポーになろう! / Let’s All Get AI-Savvy!
kaminashi
0
150
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.3k
AI アクセラレータチップ AWS Trainium/Inferentia に 今こそ入門
yoshimi0227
1
270
GitHub Copilot CLI 現状確認会議
torumakabe
8
2.4k
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
790
Making Projects Easy
brettharned
120
6.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Building an army of robots
kneath
306
46k
Evolving SEO for Evolving Search Engines
ryanjones
0
100
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
36k
Balancing Empowerment & Direction
lara
5
840
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!