For Your ISHIO Blog

データ分析や機械学習やスクラムや組織とか、色々つぶやくブログです。

製造現場における特徴量選択について

https://twitter.com/Ishitonton

最近、個人的に製造業現場でのデータ活用事例を調査しており、特徴量選択(Feature Selection)の重要性を感じるので、観測範囲での状況を記したいと思います。

※製造業と言っても、様々な業態・事業があると思いますので、必ずしも働いている皆様の現場の実態と一致するものではありません。

製造プロセスでは、製品の歩留まりの向上・改善に繋げるために、良品・不良品に影響する要因を明らかにします。非常に長い製造プロセスにおける、様々な製造機器・センサーの品質データを特徴量として、良品/不良品の2値や良品率といった連続値をターゲット変数としてモデリングを行い、要因分析を行います。

そしてこれらを実現するために、データの収集から現場での活用までには、大きく2段階での特徴量選択がありそうです。

  1. 高次元データ(数百万カラム)に対する特徴量選択
  2. 小~中次元データ(数千~数万)に対する特徴量選択(現場)

高次元データ(数百万カラム)に対する特徴量選択

製造プロセスには、大量の機械やセンサーが介在しており、これらのデータは数百万レベルで存在するということです。

一般的に良品や不良品の判別に、これら全てのデータを特徴量としてモデリングに活用することは現実的ではありません。

そこで、最初のフィルタリングステップとして、相関係数カイ二乗検定などの単変量統計量を利用し、数百万レベルの特徴量からモデルリング可能なサイズまでフィルタリングをかける、のが一般的です。

(線形関係のみを考慮した)厳密な精度が求められない単変量統計が活用されているのは、精度とデータ処理時間がトレードオフにある中で、ある意味データセットに対して緩いフィルタリングをかけるという立ち位置であるからです。

数百万レベルのカラムを持つデータに対する処理にはなかなか難しさがあり、各社様々な工夫を行っていることが考えられます。

一般的にはテラバイトレベル以上のデータセットになることから、HadoopやSpark等の分散処理技術が活用されるケースがありそうです。また、今後IoTセンサーの数はますます増えていき、データサイズは今後も飛躍的に増加していきそうですので、スケールアウト可能な環境の方が重宝されると思います。

小~中次元データ(数千~数万)に対する特徴量選択

小~中規模データセットに対する特徴量選択やモデリングは、「製造業 特徴量選択」で検索するとDataRobotの事例記事が多く引っかかります。この場面では、数万レベルの特徴量から、さらに良品・不良品に影響する数百~数千規模での特徴量選択が行われ、勾配ブースティングモデルにおける特徴量の重要度などが利用されたりしているようです。

製造業:センサデータを機械学習に使う l DataRobot

製造業における機械学習の活用事例 l DataRobot

今後の方向性

今後の方向性としては、高次元データにおける特徴量選択の精緻化・高速化が挙げられます。ある種、大量すぎるデータに対して雑でもよいので活用できるサイズに絞る、ということが現場で行われているとも言えます。今後は大規模データセットの環境においてもより高速に重要な特徴量を絞りこめるよう、勾配ブースティングモデル on Sparkの活用なども進んでいくのではないかと思います。

例えば、Sparkでは、勾配ブースティングモデルをデフォルトで提供しています。また、Microsoft社が「LigtGBM on Spark」のRC版をリリースしたりもしています。こういった技術を活用し、初回フィルタリングで重要な特徴を落としてしまうリスクを減らす方向にも進むのではないかと思います。

github.com

そもそも製造業では、データサイエンティストが不足しているらしい

そもそも、『企業が求めるデータサイエンティスト人材像 -データサイエンティスト国内企業採用動向調査(2019)より』の調査によると、現在日本のデータ分析者の在籍傾向として

  • 情報・通信業にデータサイエンティストが偏っている。
  • 製造業における同ロールの人材は圧倒的に不足している

らしいです。製造業ではデータサイエンティストが不足している環境下にあり、一部のスーパーデータサイエンティストの業務を民主化させていくような方向にも進んでいくのではなかと思います。転職するなら、製造現場での高度化・効率化は引き続き重宝される気がします。