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
実務で使える異常検知 SOTA 手法 PatchCore
Search
Henry Cui
August 27, 2022
Programming
0
2k
実務で使える異常検知 SOTA 手法 PatchCore
Henry Cui
August 27, 2022
Tweet
Share
More Decks by Henry Cui
See All by Henry Cui
プロダクション言語モデルの情報を盗む攻撃 / Stealing Part of a Production Language Model
zchenry
1
190
Direct Preference Optimization
zchenry
0
370
Diffusion Model with Perceptual Loss
zchenry
0
390
レンズの下のLLM / LLM under the Lens
zchenry
0
180
Go with the Prompt Flow
zchenry
0
160
Mojo Dojo
zchenry
0
210
ことのはの力で画像の異常検知 / Anomaly Detection by Language
zchenry
0
560
驚愕の事実!LangChainが抱える問題 / Problems of LangChain
zchenry
0
240
MLOps初心者がMLflowを触る / MLflow Brief Introduction
zchenry
0
120
Other Decks in Programming
See All in Programming
技術同人誌をMCP Serverにしてみた
74th
1
660
AIともっと楽するE2Eテスト
myohei
7
2.8k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
1
130
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
660
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
640
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
0
140
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
19k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
170
ニーリーにおけるプロダクトエンジニア
nealle
0
870
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
180
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
290
Featured
See All Featured
Fireside Chat
paigeccino
37
3.5k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
A better future with KSS
kneath
238
17k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
KATA
mclloyd
30
14k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Designing for humans not robots
tammielis
253
25k
Rails Girls Zürich Keynote
gr2m
95
14k
Raft: Consensus for Rubyists
vanstee
140
7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
BBQ
matthewcrist
89
9.7k
Transcript
実務で使える異常検知 SOTA 手法 PatchCore 機械学習の社会実装勉強会第14回 Henry 2022/8/27
自己紹介 ▪ 東京大学理学部情報科学科 ▪ 同大学大学院情報理工学系研究科コンピュター科学専攻 ▪ 博士(情報理工学)取得 • ICMLなどの国際・国内学会・ジャーナルに論文発表 •
学振DC2 • AIPチャレンジなどの競争的研究費取得 • 中国の東北大学などを訪問 ▪ 在学中に大学発ベンチャーを共同創業し、CTOを務める 2
内容 ▪ 画像異常検知 ▪ PatchCore ▪ デモ 3
画像異常検知 ▪ 想定シーン • 自動車部品工場・サラダ工場など ▪ 問題設定 • 正常データはたくさんある ▪
正常部品が手元にある ▪ ある程度集められる • 異常データはほぼない ▪ すべての異常パターンを網羅的に用意することが難しい ▪ そもそも異常パターンがまれ ▪ AIにやってほしいこと • 正常データだけでモデル構築して、運用時に異常検知できる • 「Unsupervised Anomaly Detection」とも呼ぶ 4
最近のアプローチ ImageNetで学習されたモデルを活用 ▪ ImageNetは巨大なデータセットで、それを学習したモデルは だいたいのドメインの特徴量を取り出せる、と仮定 ▪ 上記モデルと使って、画像の特徴量が簡単に出せる ▪ 特徴量間の距離を上手く使えば、学習なしで異常検知でき ちゃう?
▪ はい、実際高精度でできてしまう 5
内容 ▪ 画像異常検知 ▪ PatchCore ▪ デモ 6
PatchCoreとは ▪ Towards Total Recall in Industrial Anomaly Detection, CVPR
2022 ▪ 工業異常検知用データセット MVTec AD において現状SOTA • https://paperswithcode.com/sota/anomaly-detection-on-mvtec-ad 7
PatchCoreの中身 8
PatchCoreの中身 以下の3つの部分からなっている ▪ 特徴量作成 • 手元にある正常画像に関する特徴量を作成 ▪ 特徴量サンプリング • 上記ステップで作成される特徴量が膨大
• 保存・距離測定時の探索のコストがかかるので、少なめにする ▪ 距離測定 • 運用時に新しい画像が来るときに、正常の特徴量との距離を持って異 常の度合いを決める 9
(1/3) 特徴量作成 ▪ 先行研究PaDiMの図示と大まかに同じことをやっている ▪ ある座標 (i, j) に対して •
周り window size p の特徴量を adaptive average pooling • 中間の2つの層だけを取り出す ▪ 上記PaDiMの図では3つを示してる ▪ 後ろよりすぎだと、特徴量がImageNet分類に特化しすぎ問題 • 短い方を bilinearly rescale して長さ揃って concat する 10
(2/3) 特徴量サンプリング ▪ ここで使う Coreset はもともと独立に研究された分野で、色ん な手法が確立された ▪ 最近は、機械学習に影響しつつあり、回帰や能動学習などに 使われ始めている
▪ ある目的の達成が維持されるような部分集合を探す • k-NN、回帰を行うときに見つかる関数が変わらない ▪ 今回は最大カバレージを求める 11
(2/3) 特徴量サンプリング ▪ Toy データでの Coreset VS Random Sampling 効果
12
(3/3) 距離測定 ▪ 新しい画像に対する異常スコア s を coreset 内要素との最短 距離で計算 ▪
s は s* を coreset 内要素の分布を考慮してスケールした値に なる 13
実験結果(すごく良かったよ、何ならSOTA) 14 他にも ablation study 色々...
内容 ▪ 画像異常検知 ▪ PatchCore ▪ デモ • 公式実装 https://github.com/amazon-research/patchcore-inspection
15