Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
nahoohara
Product and Topic Expert
Product and Topic Expert
753

はじめに


本ブログでは、リアルタイム製造品質予測・分析結果を得るために必要なデータの統合から機械学習モデルの作成、実装、可視化までの実現方法を詳しくご紹介します。こちらのブログはPart1の続きになっておりますので、前編をまだお読みになっていない方は先にこちらのブログをご確認ください。


 

① データ準備~機械学習モデルの開発、運用


過去の品質・サプライヤーデータ(SAP S/4HANA)×製造条件データ (センサー) を用いて、データの準備からモデルの開発、学習、検証、実装、API公開までをSAP Data Intelligence CloudとSAP Data Warehouse Cloudで行います。

こちらのステップの中では以下の手順でモデル実装を行います。


 


 

【Ⅰ.Ⅱ.データ準備:センサーデータとSAP S/4HANAデータの統合】を行います。

▼SAP Data Warehouse Cloud上で過去のセンサーデータが入ったテーブルと製造品質、サプライヤーデータの入ったテーブルを紐づけます。


 

次に【Ⅲ.JupyterLabを利用し機械学習モデルの開発・学習・検証】を行います。
import hana_ml
print(hana_ml.__version__)

 

▼以下が今回使用するアルゴリズムです:SAP Data Warehouse Cloudに含まれる機械学習ライブラリであるAutomated Predictive Library(APL)の中のGradientBoostingBinaryClassifierという関数を使用します。APLは、後ほど定義する説明変数(モデルの入力値)とターゲット変数(モデルの出力値)の関係性を自動的に学習・計算してくれます。今回はPythonからSAP Data Warehouse CloudのAPLを呼び出して、Gradient Boostingによる二値分類モデルを作ります。
from hana_ml.algorithms.apl.gradient_boosting_classification import GradientBoostingBinaryClassifier
gbapl_model = GradientBoostingBinaryClassifier()

 

▼“品質“ラベルをターゲット変数に、”不良品”を予測したいターゲット値として設定します。
col_target = 'QUALITY'
target_value = 'Out of spec'

 

▼col_predictorsで説明変数を定義します。



col_predictors = df_remote.columns
col_predictors.remove(col_target)
col_predictors.remove(col_id)
col_predictors

['SUPPL_RAW1',
'SUPPL_RAW2',
'DATETIMESTAMP',
'ROTATION',
'PARTICLESIZEDEVIATION',
'TEMPERATURE',
'FLOWRATE',
'PRESSURE',
'SHEARRATE',
'CONFIDENTIALSENSOR1',
'CONFIDENTIALSENSOR2']

 

▼設定条件を基にモデルの学習を .fit で行います



gbapl_model.fit(data = df_remote, 
key = col_id,
features = col_predictors,
label = col_target)

 

▼学習させたモデルをテストデータに適用して精度検証を行います。精度検証は、品質の予測結果と実際の結果を比較して行います。
gbapl_model.set_params(extra_applyout_settings =
{'APL/ApplyExtraMode': 'Advanced Apply Settings',
'APL/ApplyDecision': 'true',
'APL/ApplyProbability': 'true',
'APL/ApplyPredictedValue': 'false'
})
df_remote_predict = gbapl_model.predict(df_remote_new)
df_remote_predict = df_remote_predict.rename_columns([xx.upper() for xx in df_remote_predict.columns]) # Column names to upper case
df_predict = df_remote_predict.head(5).collect()
#df_predict = df_remote_predict.collect()
df_predict.columns = [hdr.replace('GB_', '') for hdr in df_predict.columns] # shorten column names
df_predict.style.format({'PROBA_QUALITY':'{0:,.3f}'}).hide_index()


(右図がモデルの精度を示すROC曲線です。赤い曲線の下の面積(AUC:Area Under the ROC Curve)が大きい(1に近い)ほど精度が高いことを意味します。ランダムに実施した場合のAUCは0.5になります。今回の予測モデルの結果はAUCが約0.92であったため十分な予測精度が出ていることが確認できます。)

 

▼モデルから各々の製造条件が品質に与える影響度がわかります。

- 粒子サイズの偏差(PARTICLESIZEDEVIATION)が1番影響度が高いことがわかる

⇒せん断速度の調整を行い、適切なサイズにすることに重点をおくべきではないか

- 材料2(SUPPL_RAW2)のほうが材料1(SUPPL_RAW1)よりも品質への影響が大きい

⇒2の仕入れ先選択をより慎重に行うべきである、逆に1へのコストをカットしても影響は少ない、などの考察が得られます。


 

ここまでが【Ⅲ.JupyterLabを利用した機械学習モデルの開発・学習・検証】になります。

 

次に【Ⅳ.モデル実装のためのパイプライン作成】をします。

▼SAP Data Intelligence Cloudでは多数の事前定義済みテンプレートを使用しながら、視覚的にパイプライン構築を行っていきます。今回作成するパイプラインでは、5秒毎に最新のセンサーデータを取得し、SAP S/4HANAのサプライヤーデータと統合し、上記で作成した品質予測モデルを実装します。

 

モデルの開発とパイプライン化の後にデプロイを行うことでデータ準備~機械学習モデルの開発、運用が完了します。上記のプロセスで用いたSAP Data Intelligence Cloudでは、機械学習開発から、パイプライン化、デプロイ、運用まで一箇所で管理が可能です。


 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

2ステップ目に移っていきます。

②データモデリング


SAP Data Warehouse Cloudでモデルを用いて出した予測結果、センサー、製造品質、サプライヤーデータを組み合わせながら製造責任者が見たい分析の切り口を作成します。

 

▼予測結果+バッチ・サプライヤーデータ+センサーデータ


 

上記のプロセスで用いたSAP Data Warehouse Cloudでは、テーブルの結合、ビューの作成を視覚的に行うことができます。SAP Data Warehouse Cloudはフリートライアルでお試しいただくことができます。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

3ステップ目に移っていきます。

③品質予測の可視化



 

▼ステップ2で作成したテーブルとビューを用いて、不良品の全体に占める割合、年月別不良品発生数などの全体像を可視化できます。

 

▼製造責任者は、ポリマー製造機からの最新アラートを確認します。すると、製造中のバッチ(B192068)にせん断刃の鋭さに関してアラートがでていることがわかります。

 

▼過去の製造条件(センサーデータ)とポリエチレンの品質結果(業務データ)を組み合わせて作成した品質予測のモデルにより、アラートの出ているバッチ(B192068)が不良品(Out of spec)になると予測されています。予測結果は5秒ごとに更新されます。


 

▼上記のバッチにおける、各製造条件の品質結果への貢献度(Contribution)が数値で示されています。貢献度の高い製造条件ほど(今回の例では粒子サイズの偏差)、今回のバッチが不良品になるとの予測に強く影響しています。対して、貢献度の低い製造条件ほど(今回の例では圧力)、今回のバッチが仕様内になるとの予測に強く影響します。つまり、製造中のバッチ(B1902068)では粒子サイズの偏差(PARTICLESIZEDEVIATION)が不良品予測に1番大きく影響をもたらしていることがわかります。

 

▼さらに、偏差は小さく抑えたほうが不良品になりにくいことがわかります。そこで、過去の経験上、せん断速度を下げるほど粒子の大きさがそろう傾向にあるため、製造中のバッチにはせん断速度を下げて対応することにします。そして、今回のバッチが製造終了した時点でアラートが出ていたせん断刃の点検をするよう担当者に促すことができます。


さいごに


いかかでしたでしょうか。本ブログでは、リアルタイム製造品質予測・分析結果を得るために必要なデータの統合から機械学習モデルの作成、実装、可視化までの実現方法を3ステップに分けてご紹介しました。


上記を実現するSAPソリューションの詳細が以下になります。

SAP Data Warehouse Cloud / データモデリング

SAP Data Intelligence Cloud / 機械学習

SAP Analytics Cloud / データの可視化

 

質問などございましたらこちらもご活用ください。最後まで読んでいただきありがとうございました。

 

大原菜穂