Mais conteúdo relacionado
Semelhante a 学習モデルの検証 (20)
学習モデルの検証
- 2. Whoami
1
Name 栗原 健
Takeru Kurihara
Ruketa
From Okayama
TwitterSNS
Work Software
Developper
Field
Language C++, C#
CAD, CAM
Hobby Running
Trail Running Ruketa
@kuripoon
- 8. モデルの検証
7
• モデルの検証方法
– 学習用データを分割して検証用データとする
– 分割後の学習用データで学習を行い、検証用データで推論を行う
– 評価指標を計算して、モデルの推論性能を検証する
– 検証結果を比較してモデルを選択する
• データの種類
– 学習用:予め用意したデータ(データと結果のセット)
– 検証用:学習用データを分割して取り出したデータ
– 評価用:推論対象のデータ(未知のデータ)
• 注意点
– 初めに学習用データを全て使って学習モデルを作ってはいけない
– 性能を開発時に検証できない、モデルの選択ができない
任意の割合で分割
- 9. 検証方法
• ホールドアウト
– 学習用データを学習・検証用に分割して学習モデルを作る
• 全体を任意の割合で分割
• 欠点
– 学習・検証のデータセットが1セットだけ
– 分割後のデータセットが元のデータと同じ分布でないと正しく検証
できない
– 検証用データが偶然良い結果が出せる分割状態かも。を拭い去れない
• 利点
– 学習・検証のデータセットが1セットで検証できる
– データ数が多い場合でも1回の検証でよい
8
学習用
7
検証用
3学習用データ
例 7 : 3 で分割
- 10. 検証方法
• クロスバリデーション(交差検証)
– 学習用データをK個に分割して1つのを検証用、K-1個を
学習用データとする
• K個のデータグループでデータを入れ替えてK回の検証を行う
• 欠点
– K回の学習、検証を行うため計算コストが高い
– データ量が多く、計算量 >> 計算資源となると実質的に利用不可
• 利点
– 学習・検証のデータセットがK個できるので、K回の検証ができる
– K回の検証の平均を結果とするので最もらしい結果が得られる
9
データ1 データ4学習用データ データ2 データ3
データ1 データ4データ2 データ3
データ1 データ4データ2 データ3
データ1 データ4データ2 データ3
分割
K=4
検証結果
検証結果
検証結果
検証結果
結果
平均
- 14. 正常品と予測 不良品と予測
正常品 90(真陽性:TP) 5(偽陰性:FN)
不良品 1(偽陽性:FP) 4(真陰性:TN)
混同行列(Confusion Matrix)
• 例題:工場ラインの不良部品検知
– 混合行列(結果)
13
OK
NG
適合率
𝑇𝑃
𝑇𝑃+𝐹𝑃
= 99%
正常と判断した部品数
正常品と判断して
正しく正常品だった割合
正常品と判断しても、
1%間違えてる
- 15. 正常品と予測 不良品と予測
正常品 90(真陽性:TP) 5(偽陰性:FN)
不良品 1(偽陽性:FP) 4(真陰性:TN)
混同行列(Confusion Matrix)
• 例題:工場ラインの不良部品検知
– 混合行列(結果)
14
OK
NG
再現率
𝑇𝑃
𝑇𝑃+𝐹𝑃
= 94.7%
全正常品数
正常品の中で正しく正常と
判断された割合
正常品の5.3%を不良品と
判断する
- 17. 実装
• 開発環境
– ライブラリ:pytorch、sklearn
– ツール:mlflow >> https://mlflow.org/
– IDE : VS Code、Jupyter Lab
• 処理の順番
• ソースコード
– https://github.com/Ruketa/ML_Study/tree/master/Validation
16
データ
取得
データ
分割
モデル
定義
誤差関数
最適化
定義
学習 評価
- 19. 参考文献
• 書籍
– 仕事で始める機械学習
– kaggleで勝つデータ分析の技術
– 東京大学のデータサイエンティスト育成講座
– 作りながら学ぶ! PyTorchによる発展ディープラーニング
• データ分析コンペの参加
– Kaggle, Signate, atmaCup …
18