私は仕事柄、製造業のお客様を相手にデータ活用を進めております。
過去ブログで、「製造業では予測を行うだけではダメ」というような内容に触れました。
今回は製造業の中でもR&D部門のお客様からよく聞く問い合わせ内容を紹介したいと思います。
R&D部門が陥りやすい共通点① データが整備されていない
まず、商談の中で私が一番最初に聞く質問がこちらです。
「データはどのくらいありますか?」
そして
「そのデータはどこにありますか?」
この質問に対して返ってくる答えは大体、
「数十~数百行くらいあるよ」
とか
「データは個人のPCに入っているよ」
です。
正直これでは機械学習の適用は極めて難しいという状況です。
エクセルで回帰分析が辛うじてできるかどうか、というところでしょうか。
しかしこれは仕方がないことなのです。
なぜならば、R&D部門の扱うデータというのは実験をこなして初めて手に入る大変貴重なものだからです。
たいていの場合、実験というものは予めあたりを付けて計画的に行われるため、目的から遠いデータをわざわざ取るというのは少ないのです。
いかに実験回数を減らして目的の結果を得るか?を攻めるベイズ最適化と呼ばれる分野もあるくらいです。
そのため、データ数としては少ないものになります。
また、データ数が少ないとデータ管理の仕方もやはり適当になります。
R&D部門が陥りやすい共通点② 課題はだいたい最適化にいきつく
R&Dのお客様の話を聞いていると、最終的に解決したいことは機械学習を用いた予測ではなく、最適化問題であることがよくあります。
それも複数の目的変数をちょうどよく満たす多目的最適化であることが多いです。
多目的最適化とは、複数の目的変数がある場合、それぞれの目的変数をバランスよく満たすような、最適なポイントを見つけることを言います。
多目的最適化の例
- 高価な材料を複数混ぜて、より強度の強い物質を作りたい。だけどできるだけコストは抑えたい
⇒強度を最大化とコストの最小化がトレードオフ
多目的最適化の解き方はいくつかあります。
簡単な方法:複数の目的変数を数式で表して1つの目的変数とする
最適化したい目的変数が複数ある場合、それらの目的変数を一つ変数で表してしまう方法です。
例えば、以下のように3つの説明変数に対して目的変数が2つある場合、この2つ目的変数を掛け合わせて新たな変数を作成します。
説明変数 A | 説明変数 B | 説明変数 C | 目的変数① | 目的変数② | ①×② |
aaa | 10 | 4.5 | 30 | 67 | 2010 |
bbb | 20 | 4.6 | 32 | 66 | 2112 |
… | … | … | … | … | … |
これくらいであればデータ量にもよりますがエクセルでちゃちゃっとできちゃうでしょう。
そして、新たに作った変数①×②に対して最適化(最小値または最大値を求める)をしてやればいいのです。
上記の例では単純に二つの目的変数を掛け合わせましたが、状況によってどのように組み合わせるかは検討が必要です。
専門的な方法:Pythonライブラリ Optunaを使って多目的最適化
一般的に、複数の目的変数に対して最適化問題を解こうとすると、応答曲面やパレート解を求めて最適なパラメータを求めていきます。
上記で説明した目的変数同士を掛け合わせた例との違いは、それぞれ目的変数同士がトレードオフの関係にある場合、多目的最適化を使う必要があります。
そして多目的最適化を解くのに適したライブラリがOptunaです。
Optunaについては別の記事で詳しく書いていきたいと思います。
R&D部門が陥りやすい共通点③ 機械学習の理論の習得に時間がかかる
この問題はR&Dに携わる方なら誰でもぶち当たる壁かもしれません。
研究者たるもの、理論が全てです。
理論がわからない手法を使って何か解を得たとしても、それが本当に正しいのか判断することはできません。
今の時代、AWS SageMakerやDataRobotといった機械学習モデルを簡単に作成するツールはたくさんありますが、本来機械学習の習得には複雑な数学の知識が必要になります。
「ツールを使えば簡単にAIは使えるけど、AIがそう言っているから…」
なんて甘いことは許されないのです。
また、少し機械学習アルゴリズムをかじった程度で使おうとすると、
「予測精度が上がらない…」とか「当たり前の答えしか得られない…」
といった状況になってしまいます。
つまり、データセットの適切な作り方と、機械学習モデルの正しい評価の仕方といった内容が理解できていないと本来AIから得られる有用なインサイトを手にできないのです。
もしR&D部門において全面的にAI導入を検討するのであれば、AI教育は必須となり、大きなコストを払うことになります。
その辺をしっかり理解したうえで、導入を使うようにしたいですね。
コメント