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
浅(くて広い)層学習 (Amplifyハッカソン)
Search
Yuma Ochi (chizuchizu)
April 25, 2021
Technology
1
670
浅(くて広い)層学習 (Amplifyハッカソン)
最優秀賞でした。
Yuma Ochi (chizuchizu)
April 25, 2021
Tweet
Share
More Decks by Yuma Ochi (chizuchizu)
See All by Yuma Ochi (chizuchizu)
IOAI Solution (NLP, CV) | Team Japan
chizuchizu
0
94
BFが動くCPUを作りたい! @第3回CPUを語る会
chizuchizu
1
320
aranami_idea.pdf
chizuchizu
0
59
DiffType KIH2023
chizuchizu
0
240
週刊タイピングは役に立たない
chizuchizu
0
300
【発表資料】どこやったっけなぁ?
chizuchizu
1
250
アニーリングマシンを使った論理式学習モデルの開発(2021未踏ターゲット事業成果報告会)
chizuchizu
0
1.8k
全国医療AIコンテスト 2021 1st place solution
chizuchizu
0
4.6k
configのすゝめ
chizuchizu
1
240
Other Decks in Technology
See All in Technology
アセスメントで紐解く、10Xのデータマネジメントの軌跡
10xinc
1
440
PagerDuty×ポストモーテムで築く障害対応文化/Building a culture of incident response with PagerDuty and postmortems
aeonpeople
1
320
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
coconala_engineer
1
290
システムとの会話から生まれる先手のDevOps
kakehashi
PRO
0
290
Making a MIDI controller device with PicoRuby/R2P2 (RubyKaigi 2025 LT)
risgk
1
260
Terraform Cloudで始めるおひとりさまOrganizationsのすゝめ
handy
2
180
4/17/25 - CIJUG - Java Meets AI: Build LLM-Powered Apps with LangChain4j (part 2)
edeandrea
PRO
0
120
クォータ監視、AWS Organizations環境でも楽勝です✌️
iwamot
PRO
1
320
クラウド開発環境Cloud Workstationsの紹介
yunosukey
0
180
Classmethod AI Talks(CATs) #21 司会進行スライド(2025.04.17) / classmethod-ai-talks-aka-cats_moderator-slides_vol21_2025-04-17
shinyaa31
0
600
Amazon CloudWatch Application Signals ではじめるバーンレートアラーム / Burn rate alarm with Amazon CloudWatch Application Signals
ymotongpoo
5
530
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
200
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Building an army of robots
kneath
304
45k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
Designing for humans not robots
tammielis
252
25k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Adopting Sorbet at Scale
ufuk
76
9.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
For a Future-Friendly Web
brad_frost
176
9.7k
Being A Developer After 40
akosma
91
590k
How GitHub (no longer) Works
holman
314
140k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Transcript
浅(くて広い)層学習 少データでお手軽機械学習 越智優真
自己紹介 • 千葉大学教育学部附属中学校 3年 4月から木更津工業高等専門学校情報工学科 1年 • 機械学習 ◦ Kaggle,
SIGNATE Expert ◦ 専らデータサイエンスをしてる • 量子コンピュータ ◦ 未経験 ◦ 量子ビットって何?からはじまった ◦ 数理科学の量子コンピュータ特集を買って読んでる(難しい)
アピールポイント • 機械学習 ◦ QBoostとNNの融合 ◦ スパースモデリング • 実行速度 ◦
並列処理 ◦ スパースモデリング • 汎用性 ◦ 数値なら何でもOK ◦ ハミルトニアンを書き換える必要なし • 実用性 ◦ 重みの可視化が楽 ◦ 明示的な特徴抽出可 ◦ 様々なタスクにおいて高い精度を確認済み 世界に一つ!
作成したモデル(ハミルトニアン)の概要 • NNっぽさ ◦ 疑似特徴抽出 ◦ 拡張可能 • アンサンブル学習っぽさ ◦
QBoostの応用 ◦ n層作って平均化 アンサンブル学習 とNNの融合
QBoostとは (ざっ くり)
QBoost • アンサンブル機械学習 • 2乗誤差 • 正則化項の存在 • QUBO形式 入力と出力が離散値でつながっているため
表現力が低い (汎用性が低い)
汎用性が低いことに対する 解決策
表現力の向上 • 逆量子化 ◦ 重みを多層化 ◦ ミニバッチ学習 ◦ 離散値 → 連続値(っぽく) •
入力を正規化 ◦ [0, 1]を想定しているため ◦ 入力は小数でOK これらのアプローチから、画像でもテーブルデータで も学習が可能になった
計算の様子(画像) w 1か-1 w 1か-1 w 1か-1 IsingPoly h x
w行列 input [0, 1]の小数 h x w行列 k スカラー 重みの係数 output スカラー 総和をとる 要素積 行列 x スカラー (n次元分) n次元行列の総和 ここが浅くて広いのポイント!
データセット • 量子ビットとの積をとるので 0以外の数が必要 ◦ 0の特徴量があると 学習不可 • 負が存在しないので総和で[-1, 1]に
計算させるのは難しい ◦ ならば負を用意→→→→→→→→ 0を-1に補完 Binary Poly → Ising Poly
工夫点 1. 抽象、汎用的なコーディング 2. スパースモデリング 3. 並列処理 4. 簡単な重みの可視化
汎用、抽象的な コーディング
意識したこと • 拡張性 • 汎用性 • 楽なコーディング &デバッギング • 楽な実験管理
抽象かつ 汎用的な コーディング
例:PyTorch Dataset & DataLoader • ミニバッチ御用 ◦ iterableなので • 前処理、augmentationもできる
• 柔軟 • 書きやすい 深層学習用のライブラリでも使える
例:Config管理 • コードは抽象、configは具体 ◦ スッキリ ◦ ライブラリとしても機能 • 読み/使い やすい
◦ 汎用的
スパースモデリング
少データで高精度、 狙えます
お気持ち シンプルに。よりシンプルに、 本質を抽出せよ。 同様のデータを説明する仮説が二つ ある場合、より単純な方の仮説を選択 せよ。 オッカムの剃刀
Batch Size = 10で実験 MNISTの0ラベル 検証用データ300枚 重み係数1で3層 iterのみ変更させた データ数は bs x
iter Bestはたったの 30〜40データ
並列処理
並列処理 • プロセス番号: CPUのコア数が最大 • 前処理: solverの定義 • メイン: 計算(solve) solver定義はローカル実行 → 非同期処理可 solveはクラウド実行
→ 同期処理 MNISTだと緑1ブロックに 5〜30秒かかる(データサイズと相関有) 1 1 2 3 時間がかかる 前処理が爆速に simple multi process 短縮
簡単な重みの可視化
方法 1. 学習 2. 学習済みの重みを取得 3. 要素ごとの平均 4. 以上 w
1か-1 w 1か-1 w 1か-1 IsingPoly h x w行列 重み [0, 1]の小数 h x w行列 要素ごとの 平均
重み可視化の例 3 7 9 Tシャツ ズボン スニーカー
役に立つこと • 人に説明できる ◦ DNNの欠点は説明が難しいこと ◦ 実用的 • 何で 上手くいく
/ いかない かがわかる ◦ フィードバック可 ◦ 指標+重みをみてモデルを評価できる
どんだけすごいの?
0.946 MNISTのサンプルのAUC score
サンプル実装 • データ ◦ MNIST ◦ 20 x 20 pixels
◦ 訓練100枚 ◦ 検証300枚 • モデル(QBoost) ◦ 重み: 3層 ◦ 重みの係数: 1 ◦ 正則化係数λ: 2 • 結果 ◦ ラベルごとの平均AUC: 0.946 ◦ シンプルな数字程良い性能 申し分ない性能 0と5の 重みを可視化させたもの
タスクごとのAUC 学習は150データのみ • MNIST ◦ 手書き数字画像、400 pixels ◦ 0.946 • Fashion-MNIST
◦ 服や靴の画像、400 pixels ◦ 0.946 • EMNIST ◦ 手書き英文字画像、 400 pixels ◦ 0.865 • otto ◦ Kaggle多クラス分類コンペ 特徴量 93個のテーブルデータ ◦ 0.879 どんなデータでも OK
ハミルトニアンを いじる必要なし お手軽AI爆誕!
解決 • 幅広いデータを受け入れる ◦ 0以外の数値なら何でも • 並列処理 ◦ 環境にもよるが最高で5倍高速化 •
多層化 ◦ 層の数と精度の関係 ▪ データが多い:相関高 ▪ データが少ない:相関低 • スパースモデリング ◦ うまくいった ◦ 層は多すぎると過学習しやすい • 自動特徴抽出 ◦ n次多項式 ◦ 畳み込み • 小さなバグ ◦ 重みを正規化するときにInf, NaNになることが たまにある • パラメータのチューニング ◦ NNの勾配降下法っぽいことをしてうまくやりた い • 異常検知系タスク ◦ 特徴抽出次第だが期待大 これから
以上です ありがとうございました これより後ろに補足を 書いてあるので時間があれば 目を通してもらえればと 思います!
作成したハミルトニアン • データ数S、特徴量数Nの入力x、出力y • 重みは係数k、L層のw • 正則化係数λ
重み計算
自作データセットで 試す方法 1. データのパスを記載 2. カラムを指定して説明変数と従属 変数にわける 3. (必要ならば)
前処理等を行う 4. パラメータを設定 5. 実行!