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
Minoru Natsutani
June 10, 2024
Research
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スモールデータ勉強会発表資料
Minoru Natsutani
June 10, 2024
More Decks by Minoru Natsutani
See All by Minoru Natsutani
放熱勉強会資料
natsutan
0
26
グラフの書き方勉強会
natsutan
0
100
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
82
動き検出勉強会資料
natsutan
0
56
WindowsでGenesisに挑戦した話
natsutan
0
540
辛い仕事をプリキュアで乗り切りHack
natsutan
0
95
論文読み勉強会 RoboGen
natsutan
0
380
プログラミング写経のすすめ
natsutan
0
1.5k
ロボット模倣学習勉強会
natsutan
0
500
Other Decks in Research
See All in Research
Cross-Media Information Spaces and Architectures
signer
PRO
0
320
Apache Gravitinoで実現する Icebergカタログ統合とアクセスの一元化
matsumooon
0
350
Dual Quadric表現を用いた動的物体追跡とRGB-D・IMU制約の密結合によるオドメトリ推定
nanoshimarobot
0
450
LLM Compute Infrastructure Overview
karakurist
2
1.5k
[IR Reading 2026春 論文紹介] LLM-based Listwise Reranking under the Effect of Positional Bias (ECIR 2026) /IR-Reading-2026-Spring
koheishinden
PRO
0
240
衛星×エッジAI勉強会 衛星上におけるAI処理制約とそ取組について
satai
4
610
明日から使える!研究効率化ツール入門
matsui_528
13
7.5k
AIを叩き台として、 「検証」から「共創」へと進化するリサーチ
mela_dayo
0
310
SOTAのさらに先へ:厳しい推論制約下での高性能モデルのPost-Training
analokmaus
0
1.4k
AGI4OPT:自然言語から数理最適化を導くエ ージェントスキル Translating Human Intent into Mathematical Optimization
mickey_kubo
0
160
コーディングエージェントとABNを再考
hf149
2
770
データサイエンティストの就労意識~2015 → 2026 一般(個人)会員アンケートより
datascientistsociety
PRO
0
340
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
240
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Building AI with AI
inesmontani
PRO
1
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Why Our Code Smells
bkeepers
PRO
340
58k
Designing Experiences People Love
moore
143
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
The Spectacular Lies of Maps
axbom
PRO
1
870
Docker and Python
trallard
47
4k
Typedesign – Prime Four
hannesfritz
42
3.1k
Transcript
スモールデータ勉強会 2024.6.10 1
アジェンダ ・スモールデータとは ・標準化 ・PCA ・最小二乗法 ・不均衡データ問題 ・データ収集の心構え 2
スモールデータとは 3
4 スモールデータとは ビッグデータに比べて少ないデータ。 スモールデータはとはデータの発生自体がまれであったり、デ ータの収集やアノーテションのコストが高かったりして、大量 のデータをAIの学習に使うのが困難なデータ。 ・異常検知の業務における異常側のデータ ・データを取るコストが高いデータ。 装置が壊れる前後のデータ等。 ・アノーテションに非常にコストがかかるデータ
医者など専門家で無いと判断できないデータ ・契約が進むまででこれしか出せませんと言われた極一部のデ ータ https://www.ohmsha.co.jp/book/9784274227783/
5 スモールデータ解析の特徴 何も考えずDeep Learningを使うと容易に過学習してしまう。 古典的な手法を使わざるを得ない。 解析対象に対する知識(ドメイン知識)が重要。 データが不足しがちな為、あらかじめ妥当な仮説を立て、仮説に基づいてデータを収集、 解析する。表面的な機械学習やプログラミングの知識では駄目。
6 スモールデータで機械学習をするメリット スモールデータであっても、それを持っている競合がほとんどいない。 現場のデータやコストをかけたアノーテションデータは非常に貴重。 ビッグデータになるとGPU等の資本力勝負になるが、スモールデータだと対象や手法の 深い理解が必要で差別化要因となる。
標準化 7
8 データの標準化 まずやることはデータの標準化(Standardization)。 ・データの平均値を0 ・データの分散を1 標準化前 標準化後
9 データの標準化 実際のコード std_x = (x - np.mean(x, axis=0)) /
np.std(x, axis=0)) グラフのコードはgithubに上げています https://github.com/natsutan/WorkshopHub
10 標準偏差メモ その1 1σに含まれる割合(正規分布の場合)は感覚として掴んでおこう 範囲 確率(1次元) ±1σ 68.3% ±2σ 95.4%
±3σ 99.7% ±1σで68%、3σで99%くらいは感覚として持っていても良い。 標準化されたデータに対して半径1(1σ)の円を描い たとき、その中に含まれるデータは上の表より少ない 気がするけど、理由わかるかな?
11 標準偏差メモ その2 サンプリングしたデータの分散の計算はN-1で割る。 標本分散 (sample variance) for n in
[10, 20, 100]: x = gaussian_sampling(0, 2.0, n) print(f'n={n}, variance={np.var(x, ddof=0)}, sample variance={np.var(x, ddof=1)}') n variance sample variance 10 3.00 3.33 20 3.45 3.64 100 4.18 4.23 σ=2.0なので、4.0になって欲しい 実際にパラメータがわかっている確率分布からサンプリングして試してみる。 サンプリングすると実際の分散よりも小さい値になりがち。それをN-1で補正している。 ライブラリを使うときは、どちらの値が出てくるのかを確認する。キーワードddofをつけて検索する。 例えばscikit-learnの標準化では標本分散は使われない(ddof=0)
12 標準偏差メモ その3 Deep Learningだと、標本分散かどうかは割とどうでもよい。 実務で使っている物体検出やセグメンテーションでも、データ全体の平均と分散を計算して いる。 LabelMeでアノーテションしたデータからCOCOデータセットを作るとき、データ全部の平 均と分散を計算して、学習時、推論時に前処理として設定している。 厳密に言うとこれもサンプリングだからN-1が正しいけど、Nが1000を余裕で超えているの
で無視できる。 ただし、スモールデータの時はこの違いが効いてくる。
13 データの標準化(再び) まずやることはデータの標準化(Standardization)。 ・データの平均値を0 ・データの分散を1 採用するアルゴリズムの前提条件を確認すること 例1:ランダムフォレストの場合は、標準化の意味は無い。 例2:距離が出てくるアルゴリズムは、標準化(もしくは正規化)がほぼ必須。 k-meansとか、SVM(RFBカーネル)とか。
14 スモールデータは疑似相関に注意 スモールデータはデータの極一部しか使わないため、データに偏りがあるという前提 で取り組む。 相関係数を取る前にプロットして目で見るのが大事。 相関関係があると思っていても疑似相関を疑うこと。 疑似相関の例「アイスクリームの売上と水難事故の数」 あるイベントXがあるイベントYの原因である3つの条件 ・XはYに先行して発生しないと行けない ・Xが発生していないときは、Yは発生してはならない
・Xが発生したら、Yは必ず発生しないと行けない
PCA(Principal component analysis) 15
16 スモールデータと変数の数 データの数より変数(パラメータ)の数が多いときは、上手くフィッテイングできない。 実務では時々ある。 例:工場から提供したもらったデータが40個なのに変数が50個ある。 センサーが10個あって、処理前、処理A、処理B、処理C、処理後とそれぞれ データを取っていると、それだけで50個になる。 EDAを行い手で特徴量を整理するのも良いが、受注前ということもあってそれぞれの値 の意味をヒアリングできないときがある。 そういうときにはPCAを使って次元圧縮を行う。
17 PCAの例 テストの結果(国語、英語、数学、物理、化学) https://estat.sci.kagoshima-u.ac.jp/data/cgi-bin/data/whats_data/data/img/932722923_9821.xls からダウンロードしました。 # データをutf-8で読み込む data = np.loadtxt('grade.csv',
delimiter=',', skiprows=1, usecols=[1, 2, 3, 4, 5], encoding="utf-8") # データを標準化する。 std_data = (data - np.mean(data, axis=0)) / np.std(data, axis=0) # 主成分分析を行う pca = PCA() pca.fit(std_data)
18 PCAの例 PCAの結果をプロット。 5教科(五次元)のデータを2次元に圧縮 各軸に対しての寄与度もプロットできる。 5教科の点数に対して、第一主成分と第二主成分は何だと思いますか?
19 PCAの例 第一主成分に関しては、全ての特徴量が+の値 を取る。5教科の合計点のような数値が一つ目 の軸
20 PCAの例 国語と英語が+ 数学、物理、化学が- 国語と英語が 得意な人達 数学、物理、 化学が得意な 人達
21 PCAの元ネタ https://www.youtube.com/watch?v=Etjrjx6iSsQ ヨビノリの「主成分分析(PCA)の気持ち」が元ネタです。 詳しく知りたい人は動画を見てください
最小二乗法 22
23 最小二乗法 こういう回帰モデルを考える 正規方程式 正規方程式の解
24 最小二乗法 最小二乗法の注意点:多重共線性 データ(特徴量)に強い相関がある場合、上手く係数が求められない。 ・回帰の係数のばらつきが大きくなる。 ・時には符号が反転する ・わずかな測定のノイズにも過剰に反応する。 →推論精度が下がる、分析が出来なくなる。 https://www.slideshare.net/slideshow/interpretable-ml/177211332 機械学習の解釈勉強会を思いだして。
残念なことに、普通は特徴量はそれぞれ 相関を持っている。
25 最小二乗法 多重共線性を避ける方法 ・PCAを使って特徴量を減らす。 PCR(主成分回帰)と呼ぶ ・L2 normを使う(リッジ回帰) ・PLS(部分的最小二乗法) 狙いはPCAと同じ。 PCAとの違いは、出力も含めて潜在変数Tを作る。そのTを使って推論する。
(PCAは入力だけ見る)
不均衡データ問題 26
27 分類問題と不均衡データ問題 不均衡データの例 ・医療データは健康なデータはいくらでも集まるが、患者のデータは集めにくい。 ・災害時のデータ ・地下資源のデータ 不均衡データの問題 10000人に一人しか発症しない病気の場合、全て病気無しと回答すれば精度が99.99% になる。 実際に病気
実際に健康 病気と推論 TP(True Positiv) FP(False Positive) 健康と推論 FN(False Negatve) FN(False Negative) ROC曲線とか実際のアルゴリムは省略。 興味ある人は本を読んでください。 データにフォーカスします。
28 データの不均衡度 2つのクラス分類の時の、少数派データの割合を不均衡度という。 2つのクラスが同じ数であれば0.5になる。 r = 0.2程度まで低下すると通常の方法では学習が困難 r < 0.1となると十分に不均衡なデータといえる。
データのサンプリングを工夫して、不均衡度を制御する。 𝑟 = 𝑁𝑚𝑖𝑛 𝑁𝑚𝑎𝑗 + 𝑁𝑚𝑖𝑛
29 アンダーサンプリング 多数派データを間引く ・ランダムに間引く。単純だがまあまあ上手く行く ・クラスタ基準アンダーサンプリング。クラスタリングしてから間引く。 ・トメクリンク Human-in-the-loop機械学習勉強会おさらい。 Human-in-the-loop機械学習では、クラスタリングし て外れ値を見つけて学習データとした。 不均衡データでは、多数派データをクラスタリングし
て、それぞれのクラスタからサンプリングする。 クラスターのセンターをサンプルした値にする手法も ある。
30 オーバーサンプリング 少数派データを増やす。アンダーサンプリングを組み合わせても良い SMOTE 少数派のデータから内挿してデータを作る。 4点から内挿するケース
31 サンプリングとBoostingの組み合わせ RUSboost ランダムアンダーサンプリングと、Boostingの組み合わせ。 Boosting時にランダムサンプリングを行うことで、不均衡なデータでも上手く学習できる。 https://www.biorxiv.org/content/10.1101/2021.10.06.463434v1.full.pdf
データ収集の心構え 32
33 データ収集の心構え 正しく問題を設定する。 何のためにスモールデータ解析をするのかを明確にする。それにより求める精度が変ってくる。 ベースラインを定義してベースラインと比較する 三現主義 ・現場に足を運び、現場の状況を把握する ・現物を触れて、物の状態を確認する ・現実をこの目で見て、事実を知る データを一つ一つ確認する
スモールデータの意義 解析対象に対する知識(ドメイン知識)が重要。 データが不足しがちな為、あらかじめ妥当な仮説を立て、仮説に基づいてデータを収集、解析す る。表面的な機械学習やプログラミングの知識では駄目。 スモールデータだと対象や手法の深い理解が必要で、それが差別化要因となる。