• 検索結果がありません。

AI技術の紹介とセンサーデータ解析への応用

N/A
N/A
Protected

Academic year: 2021

シェア "AI技術の紹介とセンサーデータ解析への応用"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

AIを活用したセンサーデータ解析

MathWorks Japan

アプリケーションエンジニアリンググループ アプリケーションエンジニア

(2)

AIを活用したセンサーデータ解析

11:20-11:50

MATLAB

®

による AI 作成

アプリを使った簡易的な解析

学習モデルのパラメータ自動調整

学習モデルのスタンドアロン化

(3)

100機の同一モデルエンジンからのセンサーデータ

故障データがあるケースを想定

整備士が部品交換を実施した

過去のデータよりメンテナンスが

必要な時期を割り出す

課題 : ターボファンエンジンの予知保全

Time

187

186

185

184

183

182

:

部品交換までの

フライト回数

(4)

4

課題 : ターボファンエンジンの予知保全 (続き)

データについて

A列~N列までを入力 (予測子)

O列を出力 (応答)

作業フロー

推定器の作成

ロバストな推定器の作成推定器のコード化

推定器のCコード化

y

)

,

,

,

(

x

1

x

2



x

n

f

?

予測子

(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

(5)

データ間の関連付け

Parametric vs. Non-Parametric

入出力の関係をどう表現するか

関数 f を数式で表現

パラメータ推定 / 最適化

関数 f を数式で表現するのは困難

機械学習

y

)

,

,

,

(

x

1

x

2

x

n

f

?

(6)

Machine Learning Algorithms

「応答」のタイプによって分岐

機械学習 教師なし学習 (ラベル無し) 教師あり学習 (ラベル有り) クラスタリング 分類 回帰 階層的クラスタリング K-平均クラスタリング ニューラルネットワーク (自己組織化マップ) 混合ガウス分布 線形判別・2次判別 K-最近傍識別 単純ベイズ分類 アンサンブル学習 (分類木) ニューラルネットワーク サポートベクターマシン (一般化)線型回帰モデル 非線型回帰モデル ガウス過程回帰 (kriging) アンサンブル学習 (回帰木) ニューラルネットワーク サポートベクターマシン

▪ Statistics and Machine Learning Toolbox™

▪ Neural Network Toolbox™

y

)

,

,

,

(

x

1

x

2



x

n

f

?

予測子

応答

(7)

寄り道

検証について

どうして検証が必要なのか?

データを学習用と検証用に分割することにより学習器の過適合を抑制する

▪ 過適合 (overfitting) とは、学習データに対して 過剰にフィッティングしている状態のため、学習に 登場しない未知データに対しては精度が悪く汎化能力が 乏しくなってしまう現象 原因として、学習データにあるノイズに 適合してしまっていたり、学習データに対して 予測子の数が多い、ハイパーパラメータの自由度の高さ といったことが挙げられる ▪ 過適合を防ぐため、学習データの一部を検証用として 学習に使用せず評価用に残して置く方法がある • (K-分割)交差検定 • ホールドアウト検定

(8)

寄り道

K-分割交差検定

K-通りのパターンでデータを切り替えて性能を評価し、平均をとる

Pattern1

Pattern2

Pattern3

K = 3 の場合

: 検証用

: 学習用

(9)

寄り道

ホールドアウト検定

X

Y

学習用

検証用

学習

予測

性能評価(比較)

ランダム

サンプリング

(10)

回帰学習の実行①

回帰学習器アプリ

1.

機械学習による回帰分析を

対話的に行うための環境

起動方法は「アプリ」タブから 「回帰学習器」を選択するか コマンド・ウィンドウにて 「regressionLearner 」を実行

(11)

回帰学習の実行②

2.

「新規セッション」 → 「ワークスペースから」

3.

「新規セッション」ウィンドウにて

1. ワークスペース変数: Dataset 2. 応答 : Time 3. 予測子 : 全てにチェック 4. 検証 : ホールドアウト検定 1. 割合: 10% 5. 「セッションの開始」

(12)

回帰学習の実行③

4.

「モデルタイプ」

の右端にある「▼」をクリック

5.

プルダウンメニューより「すべて」を選択

6.

並列計算用プロセスの起動

- parpool

7.

「学習」にある「並列の使用」を有効化

(13)

回帰学習の実行④

8.

「学習」

をクリック

9.

RMSE が最小の学習器を選択

10.

「モデルのエクスポート」のプルダウンメニュー

から「コード生成」を選択

注) 左図と結果が一致するとは限りません

(14)

回帰学習の実行⑤

(15)

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);

(16)

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 =

(17)

多様化するデータソースと増え続けるデータ量

(18)

Edge Computing

MATLAB Coder

または MATLAB Compiler

によるエッジ処理

デバイスへの実装

MATLAB Coder MATLAB Runtime

制御/監視端末への実装

MATLAB Compiler SDK™ MATLAB Compiler

(19)

Cコード生成対応

機械学習 教師なし学習 (ラベル無し) 教師あり学習 (ラベル有り) クラスタリング 分類 回帰 K-平均クラスタリング 階層クラスタリング* ニューラルネットワーク 混合ガウス分布* 自己組織化マップ 線形判別・2次判別 K-最近傍識別 単純ベイズ分類* アンサンブル学習 (分類木) ニューラルネットワーク サポートベクターマシン (一般化)線型回帰モデル 非線形回帰モデル* ガウス過程回帰 (kriging)

▪ MATLAB Coder

(20)

C コード生成のための準備

作成したワークスペース上にある推定器をコンパクトモデルとしてファイル保存

C コード生成用 MATLAB 関数を用意

function

out = predictRFT(x) %#codegen

Mdl = loadCompactModel('<filename>');

out = predict(Mdl,x);

end

saveCompactModel(<model_variable>, '<filename>');

(21)

MATLAB Coder アプリの起動

「アプリ」タブにあるアイコン一覧の中からを

選択します

前ページで用意した関数を指定します。

本例では「predictRFT.m」を指定

(22)

プロジェクトの作成

関数名と同じプロジェクト

ファイルがカレントフォルダに

作成されます

(23)

変数の型定義

実行すると型が定義されます

入出力変数の型を定義するために用意した

(24)

診断の実行

(25)

設定の確認とコード生成

「ビルド タイプ」が「C ソースコード」

であることを確認し、その他の項目

や詳細設定が適切であれば、

「生成」をクリックします

(26)

コード生成の完了

コード生成が終わると

に生成物が保存されます

(27)

AIを活用したセンサーデータ解析

11:20-11:50

MATLAB による AI 作成

アプリを使った簡易的な解析

学習モデルのパラメータ自動調整

学習モデルのスタンドアロン化

Classification Learner / Regression Learner

Bayesian Optimization

MATLAB Coder / MATLAB Compiler

MATLAB Runtime

参照

関連したドキュメント

また、2020 年度第 3 次補正予算に係るものの一部が 2022 年度に出来高として実現すると想定したほ

HORS

注:一般品についての機種型名は、その部品が最初に使用された機種型名を示します。

編﹁新しき命﹂の最後の一節である︒この作品は弥生子が次男︵茂吉

ㅡ故障の内容によりまして、弊社の都合により「一部代替部品を使わ

当協会は、我が国で唯一の船舶電気装備技術者の養成機関であるという責務を自覚し、引き

1.実態調査を通して、市民協働課からある一定の啓発があったため、 (事業報告書を提出するこ と)

友人同士による会話での CN と JP との「ダロウ」の使用状況を比較した結果、20 名の JP 全員が全部で 202 例の「ダロウ」文を使用しており、20 名の CN