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
手書き数字認識とイデアハック
Search
kaityo256
PRO
March 26, 2018
Programming
0
320
手書き数字認識とイデアハック
ChainerでMNISTを学習させたモデルの気持ちを調べる
kaityo256
PRO
March 26, 2018
Tweet
Share
More Decks by kaityo256
See All by kaityo256
論文の読み方 / How to survey
kaityo256
PRO
175
120k
リンゴゲームと貧富の差 / Origin of the disparity of wealth
kaityo256
PRO
12
13k
渡辺研Slackの使い方 / Slack Local Rule
kaityo256
PRO
8
7.4k
時間の矢について / Time's arrow
kaityo256
PRO
12
16k
t-SNEをざっくりと理解 / Overview of t-SNE
kaityo256
PRO
2
500
未定義動作でFizz Buzz / Undefined Fizz Buzz
kaityo256
PRO
1
710
卒論の書き方 / Happy Writing
kaityo256
PRO
29
19k
再帰呼び出し / Python Recursion
kaityo256
PRO
0
1.4k
分子動力学法(3) 実装と高速化の詳細 / Simulation 07
kaityo256
PRO
0
640
Other Decks in Programming
See All in Programming
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
340
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1k
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
160
Creating Retro-Style Photos Using Swift
ski
1
890
Site Reliability Engineering for GMO
pyama86
5
620
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
200
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
350
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
5
3.9k
Elm Form Validation
bkuhlmann
0
500
プールにゆこう
irof
2
120
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
240
Java 22 Overview
kishida
1
160
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
29
12k
Why Our Code Smells
bkeepers
PRO
330
56k
Documentation Writing (for coders)
carmenintech
59
3.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.3k
Designing with Data
zakiwarfel
95
4.8k
Docker and Python
trallard
33
2.7k
Music & Morning Musume
bryan
40
5.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
14
2.6k
Navigating Team Friction
lara
177
13k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Facilitating Awesome Meetings
lara
40
5.6k
Transcript
手書き数字認識とイデアハック @kaityo256
はじめに 機械学習をやってみて、なんか収束はしているっぽい のに、いざ実際に使うとうまくいかないことが多い そもそも学習がどう行われて、モデルがどう入力を解釈 しているのかがいまいちわからない MNIST(手書き数字データ)を使って「学習済みモデルの 気持ち」を探ってみよう
MNIST: 手書き数字学習用データセット イメージ: 28×28ピクセル 0から1までのfloat(単精度実数) ラベル: 0から9 (整数)
学習 784 0 1 8 9 10 学習用データ: 6万 テスト用データ:1万
バッチサイズ:1000 エポック: 20 三層全結合 (768, 768, 10) 学習方法: Adam 活性化関数:LeRU
学習済みモデルに手書き数字を食わせる https://kaityo256.github.io/mnist_check/ この例では認識されたが・・・
学習済みモデルに手書き数字を食わせる ・・・かなり認識率が低い この入力は認識失敗
仮説: モデルは学習により「数字のイデア」を構築し、実質 的に入力とイデアとの重なりを調べているのでは? モデル 4 なんで認識率が低いんだろう? 数字のイデア 入力 一番「重なり」が 大きいイデアを探す
少し修正 0 1 8 9 モデルの「イデア」を調べる たとえば「1」の出力が大きくなるように入力を調整していく ランダム入力 もし「目的の重みが大きくなったら修正を採用 そうでなければ不採用
フィードバックループ ※ 最初は真面目にアニーリングしようと思ったが、適当に最急勾配でやっても大丈夫っぽかったのでそうした
「5」のイデア 5のイデア:この学習済みモデルが「もっとも『5』っぽい」と思う入力イメージ
0 1 2 3 4 5 6 7 8 9
得られた イデア達
イデアハック 我々は「モデルのイデア」を知っているので、逆にどういう イメージを与えればモデルが「4」と認識するかわかる
イデアハック 4のイデア 「イデア」をカンニングして入力 4と認識された
イデアハック 9のイデア 「イデア」をカンニングして入力 0っぽい入力を9と認識させることもできる
まとめ 手書き数字を学習させたモデルの「理想の数字 (イデア)」を調べた 敵対的サンプル(Adversarial examples)の一種といえなくもない・・・? イデアを見ることで、「人間には別の数字に見え る形を別の数字に誤認識させた 参考URL https://kaityo256.github.io/mnist_check/ オンラインテスト
https://github.com/kaityo256/mnist_check リポジトリ ChainerでMNISTを学習させた結果を使ってブラウザで手描き数字認識 https://qiita.com/kaityo256/items/8c7c9a32bd4ae5c0b500 Qiitaの記事 MNISTを学習させたモデルの気持ちを調べる https://qiita.com/kaityo256/items/438ee87a0ef1346071b9