はじめに
はじめまして、Martingale(Twitterアカウント)と申します。
10年間、半導体分野の生産技術者をしたのち、データアナリストに転職し、今はデータ分析を使って化学プラントの故障原因の解明や予知保全をやっています。
近年、注目されているディープラーニングをはじめとする機械学習ですが、私の感覚では、製造現場への導入があまり進んでいないように思います。
その背景には従来から品質管理に活用されている統計的品質管理の影響があるのではと感じています。
統計的品質管理が上手く機能しているが故に、製造現場で機械学習の必要性があまり感じられていないのではないか?ということです。
つまり、以下のような会話が繰り広げられているのではないかと。。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
(注)絵の中で、若手エンジニアとベテランエンジニアと書いたのは、あくまでイメージです。若手の方が、学生時代にPythonを触っていたり、kaggleなどのデータ分析コンペで機械学習に慣れているのではないかという想像から書きました。
このように、製造現場に機械学習を導入したいけども、周囲の理解が得られなくて悶々としているエンジニアがいるのではないでしょうか?
そこで今回、統計的品質管理と機械学習の違いを整理した上で、品質管理における機械学習の有用性について記載しました。
品質管理に携わるエンジニアで、機械学習を使ってより良いモノづくりを目指したい方や、製造業における機械学習の活用に興味がある方の参考になれば幸いです。
そもそも、統計的品質管理や機械学習て何?
統計的品質管理とは?
統計的品質管理(Statistical Quality Control:以下、SQC)は製品の検査データや工程データに統計学を適用して品質管理や工程改善を推進する手法です。
1930年代にアメリカのベル電話研究所で創始され、70年以上の歴史があります。代表的な手法としては、①QC七つ道具、②検定と推定、③相関分析、④回帰分析、⑤実験計画法、⑥多変量解析法があります。
これらについて、概要を以下の表にまとめました。なかでも、QC七つ道具は最も取り組み易い手法であり、多くの製造現場に導入されています。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
機械学習とは?
機械学習は、背後に特定の確率分布を仮定することなく、データから未来の現象を予測する最適なモデルを構築する手法です(モデル選定は人が行う)。
パラメーターは数理最適化によって求められます。機械学習はモデルの構築方法によって大きく2種類に分けられます。
1つは、正解データに対して誤差が最も小さくなるようにモデルを構築する「教師あり学習」、もう1つは、データからパターンを見つけ出し、未知のデータをクラスタリングする「教師なし学習」です。「教師あり学習」、「教師なし学習」の代表的な手法を以下に示します。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
SQCと機械学習の違い
品質管理の文脈おいてSQCと機械学習をどう使い分ければ良いでしょうか?
それにはまず、SQCと機械学習の違いを理解する必要があります。SQCと機械学習の違い、それは概ね「統計学と機械学習の違い」と考えて良いと思います。統計学と機械学習の違いについては様々な記事で議論されています。
何かこんなメディア記事が出ていたようです。 これを読んで色々な人がツッコミを入れまくっている模様ですが、この記事の不思議…
統計学と機械学習を区別する1つの視点に手法があります。しかしながら、区別があいまいな手法もあります。たとえば、主成分分析は統計学に分類されていていることもあれば、機械学習に分類されていることもあります。
上記2つのサイトでの議論を考慮すると、手法ではなくモチベーションの違いによって区別すると腑に落ちやすいと感じました。
統計学(SQCを含む):説明性を重んじ、因果関係を知りたい時に使う
具体的には、データからある事象(または、データの差分)が有意かどうか判断したい時や、ドメイン知識に基づいて作ったモデル上で目的変数に対する説明変数の影響度合 を知りたい時などに使う
機械学習:未来の事象を予測したい時に使う(説明性は求めない)
理由はどうであれ、未来を正しく予測したい時に使います。
活用例として、設備の故障予兆検知があります。再発防止には、故障原因を解明して恒久対策を打つことが最良ですが、原因が解明できていない段階では、設備が故障する前にメンテナンスすることが重要です。この場合、説明性よりも予測性能の高い手法が求められます。
ランダムフォレストの考案者であり、カリフォルニア大学の統計学教授、Leo Breiman氏の論文に統計学と機械学習の違いを端的に表した図があります。
本文中では統計学的なアプローチを” The Data Modeling Culture “、機械学習的なアプローチを” The Algorithmic Modeling Culture “と呼んでいます。
統計学は、人間が決めた統計モデルf(x)とデータを使って、確率的に尤もらしい母数を求めます。一方、機械学習はデータからf(x)自体を発見するアプローチを取ります。
(出典:「Statistical Modeling: The Two Cultures」Leo Breiman)
There are two cultures in the use of statistical modeling to…
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
同論文のP214「FINAL REMARKS」の中に
The roots of statistics, as in science,lie in working with data and checking theory against data
と記載されていることからも、統計学は予測よりも検証に重きを置いていると言えそうです。
次に、統計学の中でもSQCに視点を絞って、手法の観点からSQCと機械学習を比較してみます。
手法の観点からの線引きは難しいですが、日本科学技術研修所が開発した統計解析業務パッケージJUSE-StatWorks/V5でのSQCと機械学習の区別が参考になります。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
以前の表で機械学習に分類したk-means法がSQCに分類されています (;’∀’)
あくまでソフトに登録されている区分ということでスルーしました。。
上記の表から感じることは、機械学習はSQCに比べてモデリングの自由度が増している一方、仕組みが複雑になっているということです(つまり、コンピューターの処理を人が理解しにくくなっている。)。
たとえば、機械学習に分類されているカーネル主成分分析は、SQCに分類されている主成分分析をカーネル法を用いて非線形特徴量空間で実施するものです。
また、機械学習に分類されているリッジ回帰、ラッソ回帰、正則化ロジスティック回帰はSQCに分類されている重回帰、ロジスティック回帰に正則化項を加えた手法です。
正則化項は過学習を抑制するための仕組みであり、このことからも機械学習が未知のデータに対する予測を重視していることが分かります。
このように、機械学習の手法はSQCの手法+αで複雑化しているものがあります。
以上を踏まえますと、私はSQCと機械学習の違いについて以下の様な考えを持っています(各論ではなく、平均像です)。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
SQC、機械学習と相性の良いタスク、悪いタスク
それでは、実際の品質管理業務において、SQCと機械学習をどう使い分ければ良いか考えます。
前提知識として、品質管理には以下の3種類があります。
製造工程の品質管理
継続的、かつ効率的に、品質を担保した製造を行うために「人、工程、設備」を管理すること
品質検査の品質管理
製品が顧客の要求を満たしているか適切に判断すること、また適切に判断できる検査方法や製造方法になっているか検証すること
品質改善の品質管理
不良品を発生させないように様々な手を打つこと、既に発生した不良の原因解明と対策だけでなく、今後考えられるリスクの低減も含む
下図は、半導体製品をイメージした製造フローと品質管理の種別を紐付けた図です。全体の流れとして、最上流で原材料が投入され、製造工程と検査を繰り返して製品を完成させます。最後に完成形での検査を行い、合格すれば晴れて市場に出荷されます。
製造工程の品質管理は各工程ごとに、品質検査の品質管理は各検査ごとに、品質改善の品質管理は製造フロー全体を通して行われる取り組みです。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
これら3つの品質管理の取り組みをさらに細分化したのが以下の表です。
表の中には、SQCと機械学習それぞれに適用しやすい項目に印を付けました。表の中で、技術的にマッチングすると思った箇所に〇を、技術的にマッチングするが、考慮しないといけない事情がある場合は(〇)、技術的にマッチングしないと考えられる項目は空欄にしました。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
〇を付けた理由と、付けなかった理由について説明します。
品質管理において、もっとも避けるべき事態は不良品を市場に流出させることです。したがって、3つの品質管理の中でも品質検査の品質管理は特に重要です。
品質検査の品質管理では、良否判定のロジックを顧客に説明する責任が生じます(というか求められます)。
たとえば、自社が自動車用部品を製造しており、顧客が自動車メーカーだとします。不良品を納入してしまい、自動車のリコールが発生した場合、顧客の社会的信用が失墜します。
このような事態を避けるために、顧客から検査のロジックを厳しく問われます。(自動車用部品、鉄道用部品など、不良品の流出が人命に関わる製品は特に厳しいです。)
したがって、顧客にロジックを厳密に説明する必要がある品質検査の品質管理には、説明性が高く、信頼の厚いSQCの手法を適用したほうが無難というのが私の見解です。
しかしながら、外観検査の分野では、人が見抜けない欠陥を機械学習(主に、ディープラーニングによる特徴量抽出)を使って検出できたとい事例が数多く報告されています(例えば、【株式会社マクニカ】 AI×外観検査ソリューション)。
よって、説明性には欠けるけど、従来の手法よりも検査を高精度化でき、不良品を流出させるリスクを減らすことができるのであれば、品質検査の品質管理にも機械学習を積極的に活用すべきだと思います。
そのためには、Explainable AI(説明可能なAI)の活用がキーになってくると思います。また、機械学習を使って検査する項目について、事前に顧客と協議する必要があると思います(SQCでも必要ですが、機械学習の手法を使う場合は特にしっかり協議しておいたほうが良い)。
一方、製造工程の品質管理と品質改善の品質管理の主たる目的は、製造コスト低減です。よって、事象の解明よりも低コストでの製造を優先すべき項目もあります。
それら品質管理の中で、特に「設備管理」と「不適合品の未然防止」のタスクは機械学習と相性が良いと思います。
また、製造工程の品質管理と品質改善の品質管理の中でも「不適合品の再発防止」など、原因を究明しないと対策が打てないタスクに対してはSQCをはじめとした統計学的なアプローチの方が相性が良いと感じています。
相性が良いタスクの例
機械学習:工作機械の刃具の摩耗予測
以下のサイトで開催されているデータ分析コンペでは、刃具の摩耗による不良発生を防ぐために、刃具にかかる力や振動量から刃具の摩耗量を予測する取り組みを行っています。
不良発生時のロスコストと摩耗量を直接測定する時間的コストを機械学習を使って削減する試みです。
このように、説明性よりも予測精度に価値があるタスクではSQCよりも機械学習を用いた方がビジネス価値が高まります(私はこのコンペに参加しましたが、統計モデルによる予測よりも機械学習のモデルを用いたほうが予測精度が格段にアップしました)。
ただし、予測の一歩先、刃具が摩耗しにくい最適な運転を目指す場合、刃具の摩耗に効いている変数とその理由を突き止める必要があります。その場合には、統計学的な手法や物理シミュレーションを駆使する必要がありそうです。
SQC(≒統計学的な手法):製造データを使った設備故障原因の解明
製造現場から出力されるデータの多くは、センサーで取得される時系列データです。それらのデータを活用して、設備故障の原因を解明したい場合があります。
具体的には、不具合の対象となるデータ(異常振動なら振動データ)と他の変数との因果関係を調べ、原因解明のための仮説立てに活用したいことがあります。
そのためには、ドメイン知識に基づいたモデル(物理的に可能性のあるモデル)を構築した上で、因果関係を調べる必要があります。このような場合には、ドメイン知識は必要であるが、結果の解釈性に優れた統計学に立脚した手法が有用と思います(例えば、グレンジャー因果性推定など)。
一方で、機械学習の手法の中でも、決定木など原因解明に有用なモデルもあります。
例えば、以下のサイトに挙げられているように、決定木の分岐条件を細かく追っていくことで故障が起きる条件を特定できる可能性があります。また、変数重要度も原因解明の重要なヒントになると思います。
しかしながら、原因解明が目的の場合、ランダムフォレストなどアンサンブル学習を用いた決定木ではなく、解釈しやすい単純な決定木を用いたほうが分析者も顧客も納得しやすいと思います。
決定木で回帰分析やクラス分類を行うときの話です。 決定木では、他の手法と比べて回帰モデルやクラス分類モデルの予測精度が低…
結論
まとめますと、品質管理におけるSQCと機械学習の使い分けについて以下の考えを持っています。
![](https://guild.data-learning.com/wp-content/themes/the-thor/img/dummy.gif)
あとがき
製造業の品質管理におけるSQCと機械学習の使い分けについて整理してみました。実際のモノづくりの現場では、ここに書いたように簡単に使い分けられるケースは少なく、その現場特有の製造プロセスであったり、これまでの経緯、顧客との協議の結果を考慮しながら選択していく必要があると思います。
SQCにはSQCの、機械学習に機械学習の利点があり、どちらも使える武器として保持した上で、柔軟に使い分けることが生産性向上のポイントになると思います。本記事が、モノづくりに携わる方の何かしらの足しになれば幸いです。
記事は以上になります。最後まで読んでいただきありがとうございました!
そして、最後に一言(笑)。
私は30代で生産技術者からデータアナリストにキャリアチェンジし、日々もがいている最中です。キャリアチェンジ前にデータ分析職の内情を知れていればなぁ、という思いがあります。もし、同じように他業種からのキャリアチェンジを考えられている方がいましたら、事前に実務者から情報収集することをおススメします。
データラーニングギルドでは、データサインティストや機械学習エンジニアによるデータサイエンスに関する活発な議論が行われています。キャリアの相談も可能です。データ分析に興味のある方、キャリアチェンジを考えられている方は参加してみると新たな発見があるかもしれません。