AIを活用したセンサーデータ解析
MathWorks Japan
アプリケーションエンジニアリンググループ アプリケーションエンジニア
AIを活用したセンサーデータ解析
11:20-11:50
▪
MATLAB
®による AI 作成
–
アプリを使った簡易的な解析
–
学習モデルのパラメータ自動調整
–
学習モデルのスタンドアロン化
100機の同一モデルエンジンからのセンサーデータ
故障データがあるケースを想定
▪
整備士が部品交換を実施した
過去のデータよりメンテナンスが
必要な時期を割り出す
課題 : ターボファンエンジンの予知保全
Time
187
186
185
184
183
182
:
部品交換までの
フライト回数
4
課題 : ターボファンエンジンの予知保全 (続き)
▪
データについて
–
A列~N列までを入力 (予測子)
–
O列を出力 (応答)
▪
作業フロー
–
推定器の作成
▪ ロバストな推定器の作成 ▪ 推定器のコード化–
推定器のCコード化
y
)
,
,
,
(
x
1x
2
x
nf
?
予測子
(A~N列)
応答
(O列)
https://www.mathworks.com/help/stats/train-regression-trees-using-regression-learner-app.html https://www.mathworks.com/help/stats/train-regression-models-in-regression-learner-app.htmlデータ間の関連付け
Parametric vs. Non-Parametric
▪
入出力の関係をどう表現するか
–
関数 f を数式で表現
▪ パラメータ推定 / 最適化–
関数 f を数式で表現するのは困難
▪ 機械学習y
)
,
,
,
(
x
1x
2
x
nf
?
Machine Learning Algorithms
▪
「応答」のタイプによって分岐
機械学習 教師なし学習 (ラベル無し) 教師あり学習 (ラベル有り) クラスタリング 分類 回帰 階層的クラスタリング K-平均クラスタリング ニューラルネットワーク (自己組織化マップ) 混合ガウス分布 線形判別・2次判別 K-最近傍識別 単純ベイズ分類 アンサンブル学習 (分類木) ニューラルネットワーク サポートベクターマシン (一般化)線型回帰モデル 非線型回帰モデル ガウス過程回帰 (kriging) アンサンブル学習 (回帰木) ニューラルネットワーク サポートベクターマシン…
…
…
▪ Statistics and Machine Learning Toolbox™
▪ Neural Network Toolbox™
y
)
,
,
,
(
x
1x
2
x
nf
?
予測子
応答
寄り道
検証について
▪
どうして検証が必要なのか?
–
データを学習用と検証用に分割することにより学習器の過適合を抑制する
▪ 過適合 (overfitting) とは、学習データに対して 過剰にフィッティングしている状態のため、学習に 登場しない未知データに対しては精度が悪く汎化能力が 乏しくなってしまう現象 原因として、学習データにあるノイズに 適合してしまっていたり、学習データに対して 予測子の数が多い、ハイパーパラメータの自由度の高さ といったことが挙げられる ▪ 過適合を防ぐため、学習データの一部を検証用として 学習に使用せず評価用に残して置く方法がある • (K-分割)交差検定 • ホールドアウト検定寄り道
K-分割交差検定
▪
K-通りのパターンでデータを切り替えて性能を評価し、平均をとる
Pattern1
Pattern2
Pattern3
K = 3 の場合
: 検証用
: 学習用
寄り道
ホールドアウト検定
X
Y
学習用
検証用
学習
予測
性能評価(比較)
ランダム
サンプリング
回帰学習の実行①
▪
回帰学習器アプリ
1.
機械学習による回帰分析を
対話的に行うための環境
▪ 起動方法は「アプリ」タブから 「回帰学習器」を選択するか コマンド・ウィンドウにて 「regressionLearner 」を実行回帰学習の実行②
2.
「新規セッション」 → 「ワークスペースから」
3.
「新規セッション」ウィンドウにて
1. ワークスペース変数: Dataset 2. 応答 : Time 3. 予測子 : 全てにチェック 4. 検証 : ホールドアウト検定 1. 割合: 10% 5. 「セッションの開始」回帰学習の実行③
4.
「モデルタイプ」
の右端にある「▼」をクリック
5.
プルダウンメニューより「すべて」を選択
6.
並列計算用プロセスの起動
- parpool7.
「学習」にある「並列の使用」を有効化
回帰学習の実行④
8.
「学習」
をクリック
9.
RMSE が最小の学習器を選択
10.
「モデルのエクスポート」のプルダウンメニュー
から「コード生成」を選択
注) 左図と結果が一致するとは限りません回帰学習の実行⑤
Advanced topic
ハイパーパラメータの調整
▪
ベイズ最適化
% Set up optimization parameters
opt = struct;
opt.MaxObjectiveEvaluations = 30;
opt.CVPartition = cvpartition(height(Dataset), 'Holdout', 0.1); opt.ShowPlots = true;
opt.Verbose = 1;
% Run Bayesian optimization for Rational Quadratic gaussian processing model
gprMdl = fitrgp(predictors, response, ...
'KernelFunction', 'RationalQuadratic', 'Standardize', true, ...
'OptimizeHyperparameters', {'Sigma','BasisFunction','KernelScale'}, ... 'HyperparameterOptimizationOptions', opt);
Advanced topic
ハイパーパラメータの調整 (続き)
▪
ベイズ最適化
–
最適化された学習器の検証
% 検証用データの抽出
testPredictors = Dataset(opt.CVPartition.test, 1:end-1); testResponse = Dataset(opt.CVPartition.test, end);
% 最適化されたパラメータによる推定誤差
testMSE = loss(gprMdl, testPredictors, testResponse, 'LossFun', 'mse'); testRMSE = sqrt(testMSE)
testRMSE = 0.054491
% 最適化されたパラメータによる推定
timePred = predict(gprMdl, testPredictors); sum(round(timePred) - testResponse.Time) ans =
多様化するデータソースと増え続けるデータ量
Edge Computing
MATLAB Coder
™または MATLAB Compiler
™によるエッジ処理
▪
デバイスへの実装
MATLAB Coder MATLAB Runtime▪
制御/監視端末への実装
MATLAB Compiler SDK™ MATLAB CompilerCコード生成対応
機械学習 教師なし学習 (ラベル無し) 教師あり学習 (ラベル有り) クラスタリング 分類 回帰 K-平均クラスタリング 階層クラスタリング* ニューラルネットワーク 混合ガウス分布* 自己組織化マップ 線形判別・2次判別 K-最近傍識別 単純ベイズ分類* アンサンブル学習 (分類木) ニューラルネットワーク サポートベクターマシン (一般化)線型回帰モデル 非線形回帰モデル* ガウス過程回帰 (kriging)…
…
…
▪ MATLAB CoderC コード生成のための準備
▪
作成したワークスペース上にある推定器をコンパクトモデルとしてファイル保存
▪
C コード生成用 MATLAB 関数を用意
function
out = predictRFT(x) %#codegen
Mdl = loadCompactModel('<filename>');
out = predict(Mdl,x);
end
saveCompactModel(<model_variable>, '<filename>');
MATLAB Coder アプリの起動
▪
「アプリ」タブにあるアイコン一覧の中からを
選択します
前ページで用意した関数を指定します。
本例では「predictRFT.m」を指定
プロジェクトの作成
▪
関数名と同じプロジェクト
ファイルがカレントフォルダに
作成されます
変数の型定義
実行すると型が定義されます
入出力変数の型を定義するために用意した診断の実行
設定の確認とコード生成
「ビルド タイプ」が「C ソースコード」
であることを確認し、その他の項目
や詳細設定が適切であれば、
「生成」をクリックします
コード生成の完了
▪
コード生成が終わると
に生成物が保存されます
AIを活用したセンサーデータ解析
11:20-11:50
▪
MATLAB による AI 作成
–
アプリを使った簡易的な解析
–
学習モデルのパラメータ自動調整
–
学習モデルのスタンドアロン化
Classification Learner / Regression Learner
Bayesian Optimization
MATLAB Coder / MATLAB Compiler
MATLAB Runtime