本実施形態では、異常判定の対象となるデータの異常度が算出される。具体的には、異常判定の対象となるデータが、複数のクラスのいずれかに分類される。当該データが分類されたクラスに対応する異常判定モデルによって、当該データの異常度が算出される。
正常な状態を表す正常データに対してクラスタリング処理を実行することでクラスタが得られ、複数のクラスのそれぞれは、そのクラスタに対応して定められる。
異常判定モデルは、同じクラスに属する複数の正常データを用いて、クラスタ毎に異なる学習によって生成されたモデルである。
異常判定の対象となるデータは、例えば、異常判定の対象となる装置の稼働状態を表す稼働状態データである。別の例として、異常判定の対象となるデータは、カメラ等の撮影装置による撮影によって生成された画像データ(例えば、静止画像データや動画像データ)であってもよい。これら以外のデータとして、時間に応じて特徴量が変化する時系列データが、異常判定の対象となってもよい。
以下では、異常判定の対象となるデータの一例として、装置の稼働状態を表す稼働状態データを例に挙げて、実施形態について説明する。稼働状態データの異常度が算出され、当該異常度に基づいて、装置の状態が異常であるか否かが判定される。
本実施形態では、装置の正常な稼働状態を表す正常稼働状態データを用いた学習によって、異常判定モデルが生成される。その生成された異常判定モデルによって、稼働状態データの異常度が算出される。
図1には、学習によって異常判定モデルを生成する学習装置が示されている。図2には、その異常判定モデルによって稼働状態データの異常度を算出して異常の有無を判定する異常判定装置が示されている。まず、図1を参照して学習装置について説明し、次に、図2を参照して異常判定装置について説明する。
実施形態に係る学習装置10は、装置12の稼働状態を表す稼働状態データを受け付け、学習によって異常判定モデルを生成する。
装置12は、異常判定の対象となる装置であり、例えば、複数の異なる種類の作業を実行する機能や、複数の異なる種類の材料を加工する機能を有する装置である。装置12は、作業や加工に伴って振動する装置である。装置12は、作業や加工の種類や、加工される材料の種類によって、異なる振動を発し得る装置である。具体的には、装置12は、ウェハ等の被加工物を研磨する研磨装置、旋盤、NC工作機械、又は、その他の工作機械である。装置12が研磨装置である場合、装置12は、研磨前の段階、研磨中、研磨終了の段階、及び、その後の動作(例えばステージ移動)の段階のそれぞれにて、異なる振動を発し得る。もちろん、装置12は、研磨装置に限られず、作業や加工に伴って振動する装置であれば、どのような装置であってもよい。
センサ14は、装置12の稼働状態を計測し、装置12の稼働状態を表す稼働状態データを学習装置10に出力する。例えば、センサ14は、装置12の振動を計測する振動センサであり、装置12の振動を表す振動データを装置12の稼働状態データとして出力する。
学習装置10は、データ収集部16と、データ記憶部18と、特徴量抽出部20と、クラスタリング処理部22と、ラベリングモデル学習部24と、異常判定モデル学習部26と、パラメータ算出部28と、を含む。
データ収集部16は、センサ14から出力された稼働状態データを収集する。学習によって異常判定モデルを生成する段階では、装置12の正常な稼働状態を表す正常稼働状態データがセンサ14によって検出され、データ収集部16は、正常稼働状態データを収集する。具体的には、異常な状態が発生しないことが確認された装置12に一連の動作を実行させ、データ収集部16は、その一連の動作が実行されているときの装置12の状態を表す稼働状態データを、正常稼働状態データとして収集する。これにより、時系列データとしての正常稼働状態データが収集される。正常稼働状態データは、予め定められた時間毎に収集されたデータであってもよい。
装置12が研磨装置である場合、装置12の一連の動作として、研磨前の動作、研磨中の動作、研磨終了の動作、及び、その後の動作(例えばステージ移動)等が想定される。各動作における正常稼働状態データがセンサ14によって検出され、データ収集部16は、各動作における正常稼働状態データを収集する。
また、データ収集部16は、正常稼働状態データに対して高速フーリエ変換(FFT)等の信号処理を適用してもよい。データ収集部16は、標準化処理や正規化処理等のスケーリング処理を、正常稼働状態データや信号処理後のデータに対して適用してもよい。
以下に説明する正常稼働状態データの概念の範疇には、センサ14から出力された時系列データ、その時系列データに対してFFTを適用することで生成されたFFTデータ、及び、そのFFTデータに対して標準化処理や正規化処理を適用することで生成されたデータが含まれる。
データ記憶部18は、メモリやハードディスクドライブ等の記憶装置によって構成され、データ収集部16によって収集された正常稼働状態データを記憶する。データ記憶部18が学習装置10に含まれずに、正常稼働状態データが、データ収集部16から特徴量抽出部20に出力されてもよい。
特徴量抽出部20は、正常稼働状態データから当該正常稼働状態データの特徴量を抽出する。例えば、特徴量抽出部20は、畳み込み層とプーリング層とを含むニューラルネットワーク(例えばCNN(Convolution Neural Network))を用いて特徴量を抽出する。別の例として、特徴量抽出部20は、特徴量として、ピーク値、平均値、標準偏差、中央値、分散、歪度又は尖度等の値を抽出してもよい。
クラスタリング処理部22は、正常稼働状態データに対して、正常稼働状態データの特徴量に基づくクラスタリング処理を実行する。このクラスタリング処理によって複数のクラスタが得られる。クラスタリング処理部22は、クラスタに対応するクラスであって正常稼働状態データが属するクラスを特定し、各クラスのラベルを定める。クラスタリング処理部22は、ラベル数を特定しない方法(例えばMeanShift法)に従ってクラスタリング処理を実行してもよいし、ラベル数を特定する方法(例えばKMeans法)に従ってクラスタリング処理を実行してもよい。クラスタリング処理部22は、これら以外の方法によって正常稼働状態データが属するクラスを特定してもよい。
クラスタリング処理に用いられた正常稼働状態データが属するクラスのラベルが、正解ラベルとして定められる。その正解ラベルが紐付けられた正常稼働状態データが、教師データとして用いられて、後述するラベリングモデルが生成される。
ラベリングモデル学習部24は、正解ラベルが紐付けられた正常稼働状態データを教師データとして使用して学習することで、稼働状態データを複数のクラスのいずれかに分類するためのラベリングモデルを生成する。ラベリングモデルは、正常稼働状態データの特徴量とラベルとを紐付けるためのモデルであるといえる。ラベリングモデルを作成するための学習の種類は特に限定されず、どのような学習であってもよい。
異常判定モデル学習部26は、同じクラスに属する複数の正常稼働状態データを用いて、クラス毎に異なる学習によって異常判定モデルを生成する。つまり、異常判定モデル学習部26は、同じラベルが紐付けられた複数の正常稼働状態データを用いて学習判定モデルを生成する。これにより、クラス毎の異常判定モデルが生成される。異常判定モデルは、例えば、ニューラルネットワークによって構成され、入力されたデータを圧縮して特徴量を抽出し、その後、元の次元のデータに復元する処理を行う機能を有する。例えば、異常判定モデルは、入力層と、出力層と、入力層と出力層との間に配置され入力層と出力層と比べてニューロンの数が少ない中間層と、を含むオートエンコーダである。
パラメータ算出部28は、クラス毎(つまりラベル毎)に、正常稼働状態データと異常判定モデルから出力された予測データとの差分を算出する。具体的には、正常稼働状態データが入力データとして異常判定モデルに入力され、当該正常稼働状態データの入力に対応して異常判定モデルから出力されたデータが、当該正常稼働状態データに対応する予測データである。また、パラメータ算出部28は、その差分を表す差分データの最大値、平均値、標準偏差及び分散(例えば差分データの3σ範囲外のデータ個数)を、差分データのパラメータとして算出する。
パラメータ記憶部30は、メモリやハードディスクドライブ等の記憶装置によって構成され、パラメータ算出部28によって算出された各パラメータを記憶する。クラス毎の異常判定モデルが、パラメータ記憶部30に記憶されてもよい。
以下、図2を参照して、実施形態に係る異常判定装置32について説明する。実施形態に係る異常判定装置32は、装置12の稼働状態を表す稼働状態データを受け付け、稼働状態データを、当該稼働状態データの特徴量に基づいて、複数のクラスのいずれかに分類する。また、異常判定装置32は、当該稼働状態データが分類されたクラスに対応する異常判定モデルによって、当該稼働状態データの異常度を算出する。異常判定モデルは、学習装置10によって生成されたモデルである。異常判定装置32は、異常度に基づいて、装置12が異常であるか否かを判定する。
異常判定装置32は、データ収集部34と、データ記憶部36と、特徴量抽出部38と、ラベリング処理部40と、異常判定処理部42と、異常度算出部44と、を含む。
データ収集部34は、センサ14から出力された稼働状態データを収集する。例えば、稼働状態データは、時系列データである。稼働状態データは、予め定められた時間毎に収集されたデータであってもよい。データ収集部34は、FFT等の信号処理やスケーリング処理を稼働状態データに適用してもよい。
以下に説明する稼働状態データの概念の範疇には、センサ14から出力された時系列データ、その時系列データに対してFFTを適用することで生成されたFFTデータ、及び、そのFFTデータに対して標準化処理や正規化処理を適用することで生成されたデータが含まれる。
データ記憶部36は、メモリやハードディスクドライブ等の記憶装置によって構成され、データ収集部34によって収集された稼働状態データを記憶する。データ記憶部36が異常判定装置32に含まれずに、稼働状態データが、データ収集部34から特徴量抽出部38に出力されてもよい。
特徴量抽出部38は、稼働状態データから当該稼働状態データの特徴量を抽出する。例えば、特徴量抽出部38は、畳み込み層とプーリング層とを含むニューラルネットワーク(例えばCNN)を用いて特徴量を抽出する。別の例として、特徴量抽出部38は、特徴量として、ピーク値、平均値、標準偏差、中央値、分散、歪度又は尖度等の値を抽出してもよい。
ラベリング処理部40は、稼働状態データに対してラベリング処理を実行することで、当該稼働状態データを、当該稼働状態データの特徴量に基づいて、複数のクラスのいずれかに分類する。ラベリング処理部40は、ラベリングモデル学習部24によって生成されたラベリングモデルを用いて、稼働状態データを複数のクラスのいずれかに分類する。別の例として、ラベリング処理部40は、各クラスタの重心を求め、その重心からの距離に基づいて稼働状態データを分類してもよい。ラベリング処理部40は、分類手段の一例に相当する。
異常判定処理部42は、ラベリング処理部40によって稼働状態データが分類されたクラスに対応する異常判定モデルを用いて、当該稼働状態データから予測データを算出する。この異常判定モデルは、異常判定モデル学習部26によって生成されたモデルである。具体的には、稼働状態データが、当該稼働状態データが分類されたクラスに対応する異常判定モデルに入力データとして入力され、当該稼働状態データの入力に対応して異常判定モデルから出力されたデータが、当該稼働状態データに対応する予測データである。
異常度算出部44は、稼働状態データの異常度を算出する。具体的には、異常度算出部44は、異常判定モデルに入力された稼働状態データと、当該稼働状態データの入力に対応して異常判定モデルから出力された予測データと、の差分を算出し、その差分に基づいて、当該稼働状態データの異常度を算出する。異常度算出部44は、その異常度に基づいて、装置12の状態が異常であるか否かを判定する。例えば、異常度算出部44は、異常度が閾値を超える場合、装置12の状態が異常であると判定し、異常度が閾値以下である場合、装置12の状態は正常であると判定する。
異常度算出部44は、稼働状態データと予測データとの差分の最大値と分散を算出し、その最大値と分散とに基づいて異常度を算出してもよい。別の例として、異常度算出部44は、稼働状態データと予測データとの差分にMT法(マハラノビス・タグチ法)を適用することで異常度を算出してもよい。なお、異常判定処理部42と異常度算出部44は、異常判定手段の一例に相当する。
学習装置10及び異常判定装置32は、異なる装置であってもよいし、同じ装置であってもよい。また、異常判定装置32は、異常判定の対象となる装置12に搭載されたり取り付けられたりしてもよいし、装置12に搭載されなくてもよい。学習装置10及び異常判定装置32は、例えば、コンピュータによって実現される。学習装置10及び異常判定装置32は、ネットワーク等の通信経路を介して稼働状態データや正常稼働状態データを受信するサーバ等の装置であってもよい。その通信にエッジコンピューティングが用いられてもよい。
以下、図3を参照して、異常判定装置32のハードウェアの構成について説明する。図3は、異常判定装置32のハードウェアの構成を示すブロック図である。
異常判定装置32は、ハードウェアの構成として、UI46aと、通信装置46bと、記憶装置46cと、プロセッサ46dと、を含む。
UI46aは、ユーザインターフェースであり、ディスプレイと入力装置とを含む。ディスプレイは、液晶ディスプレイ又はELディスプレイ等である。入力装置は、キーボード、マウス、入力キー又は操作パネル等である。UI46aは、ディスプレイと入力装置とを兼ね備えたタッチパネル等のUIであってもよい。
通信装置46bは、通信チップや通信回路等を有する1又は複数の通信インターフェースを含み、他の装置に情報を送信する機能、及び、他の装置から情報を受信する機能を有する。通信装置46bは、近距離無線通信やWi-Fi等の無線通信機能を有してもよいし、有線通信機能を有してもよい。
記憶装置46cは、データを記憶する1又は複数の記憶領域を構成する装置である。記憶装置46cは、例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、各種のメモリ(例えばRAM、DRAM、NVRAM、ROM、等)、その他の記憶装置(例えば光ディスク等)、又は、それらの組み合わせである。
プロセッサ46dは、異常判定装置32の各部の動作を制御する。プロセッサ48は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、その他のプログラマブル論理デバイス、又は、電子回路等を含む。
図2に示される異常判定装置32の各機能は、プロセッサ46dによって実現される。各機能の実行に際して、記憶装置46cが用いられてもよい。
例えば、異常判定装置32の各機能は、ハードウェア資源とソフトウェア資源との協働により実現される。例えば、プロセッサ46dを構成するCPUが、記憶装置46cに記憶されているプログラムを読み出して実行することで、各機能が実現される。プログラムは、CD又はDVD等の記録媒体を経由して、又は、ネットワーク等の通信経路を経由して、記憶装置46cに記憶される。別の例として、電子回路等のハードウェア資源によって、異常判定装置32の各機能が実現されてもよい。
また、学習装置10も、図3に示されている構成と同様に、UIと、通信装置と、記憶装置と、プロセッサとを含む。学習装置10の各機能は、学習装置10に含まれるプロセッサによって実現される。例えば、プロセッサに含まるCPUがプログラムを実行することで、学習装置10の各機能が実現される。電子回路等のハードウェア資源によって、学習装置10の各機能が実現されてもよい。
以下、図4を参照して、学習装置10の動作について説明する。図4には、学習装置10の動作の流れを示すフローチャートが示されている。
まず、異常な状態が発生しないことが確認された装置12に一連の動作を実行させ、データ収集部16は、その状態でセンサ14によって検出された正常稼働状態データを収集する(S01)。データ収集部16は、正常稼働状態データに対してFFT及びスケーリング処理を適用する。
次に、特徴量抽出部20は、正常稼働状態データからCNNを用いて特徴量を抽出する(S02)。
次に、クラスタリング処理部22は、正常稼働状態データに対してクラスタリング処理を実行し、抽出された特徴量に基づいて、正常稼働状態データが属するクラスを特定する(S03)。
次に、ラベリングモデル学習部24は、正常稼働状態データが属するクラスを当該正常稼働状態データに対する正解ラベルとして定め、その正解ラベルが紐付けられた正常稼働状態データを教師データとして使用して学習することで、ラベリングモデルを生成する(S04)。
次に、学習によって異常判定モデルを生成するために、正常稼働状態データに対してスケーリング処理が適用される(S05)。例えば、正常稼働状態データに対してFFTが適用され、FFTによって生成されたデータに対してスケーリング処理が適用される。これらの処理は、例えば、データ収集部16によって行われる。
次に、異常判定モデル学習部26は、同じクラスに属する複数の正常稼働状態データを用いて、クラス毎に異なる学習によって異常判定モデルを生成する(S06)。
パラメータ算出部28は、クラス毎に、正常稼働状態データと異常判定モデルから出力された予測データとの差分を算出し、その差分データの最大値や分散等のパラメータを算出する(S07)。各パラメータは、パラメータ記憶部30に記憶される。
以下、図5から図9を参照して、学習装置10の動作の具体例について説明する。一例として、装置12は、ウェハを研磨する研磨装置であり、装置12によって研磨される被加工物はSiウェハである。センサ14は、加速度センサ等の振動センサであり、装置12の振動を計測し、振動を表す振動データを稼働状態データとして出力する。研磨装置である装置12の稼働状態として、「砥石回転」、「研磨中」、「研磨終了」及び「ステージ移動」があり、砥石回転、研磨中、研磨終了及びステージ移動の順番に、各動作が行われる。
図5には、正常稼働状態データの一例が模式的に示されている。装置12が正常に動作する状態で、「砥石回転」、「研磨中」、「研磨終了」及び「ステージ移動」を含む一連の動作を、装置12に実行させる。各動作の実行中に装置12の振動がセンサ14によって測定されることで、時系列データである振動データが得られる。データ収集部16は、センサ14から出力された振動データを正常稼働状態データとして収集する。
図5に示されている波形50は、その振動データが表す振動の時間変化を示している。波形50を表すグラフの横軸は時間を示しており、縦軸は振幅を示している。例えば、予め定められた時間T毎に振動データが正常稼働状態データとして収集される。
データ収集部16は、時間T毎に収集された各振動データに対してFFTを適用する。これにより、図5に示されているスペクトル群52が生成される。各スペクトルの横軸は周波数を示しており、縦軸は振幅を示している。なお、図5には、各スペクトルは模式的に示されている。
例えば、振動データが時間T毎に収集されることで、1024点の振動データが得られる。1024点の振動データに対してFFTが適用されることで、512点のスペクトルを表すデータが得られる。図6には、そのようにして得られたスペクトルを表す正常稼働状態データの一例が示されている。各スペクトルにおいて、横軸は周波数を示しており、縦軸は振幅を示している。
なお、データ収集部16は、512点のスペクトルを表す正常稼働状態データに対して、以下の式(1)で定義される標準化処理を適用してもよい。
xi=(x-mean(x))/std(x)・・・(1)
別の例として、データ収集部は、512点のスペクトルを表す正常稼働状態データに対して、以下の式(2)で定義される正規化処理を適用してもよい。
xi=(x-min(x))/(max(x)-min(x))・・・(2)
特徴量抽出部20は、512点のスペクトルを表す正常稼働状態データから特徴量を抽出する。例えば、特徴量抽出部20は、CNNを用いて特徴量を抽出する。図7には、CNNの構成の一例が示されている。ここでは一例として、畳み込み層(Conv2D)、最大値プーリング層(MaxPooling2D)、畳み込み層(Conv2D)及び最大値プーリング層(MaxPooling2D)の順番で各層が配置される。一例として、512点のスペクトルを表す正常稼働状態データが、CNNに入力され、各層にて処理が実行されることで、特徴量が抽出される。例えば、1536点の特徴量を表す特徴データが抽出される。なお、図7に示されている構成は一例に過ぎず、最大値プーリング層の代わりに平均値プーリング層等が用いられてもよい。
特徴量抽出部20は、CNNを用いずに、正常稼働状態データのピーク値、平均値、標準偏差、中央値、分散、歪度又は尖度等を特徴量として抽出してもよい。
クラスタリング処理部22は、図6に示されている各正常稼働状態データに対して、各正常稼働状態データの特徴量に基づくクラスタリング処理を実行する。例えば、クラスタリング処理部22は、MeanShift法やKMeans法に従ってクラスタリング処理を実行する。
図8には、クラスタリング処理の結果の一例が示されている。図8に示されている正常稼働状態データ54~70は、時系列データである振動データに対してFFT処理を適用することで生成された、スペクトルを表すデータの一例である。
クラスタリング処理によって、例えばクラスタA,B,C,Dのそれぞれに対応するクラスA,B,C,Dが定められる。正常稼働状態データ54は、クラスBに属するデータであるため、クラスBを示すラベルBが、正常稼働状態データ54に紐付けられる。正常稼働状態データ56~66のそれぞれは、クラスAに属するデータであるため、クラスAを示すラベルAが、正常稼働状態データ56~66のそれぞれに紐付けられる。正常稼働状態データ68は、クラスDに属するデータであるため、クラスDを示すラベルDが、正常稼働状態データ68に紐付けられる。正常稼働状態データ70は、クラスCに属するデータであるため、クラスCを示すラベルCが、正常稼働状態データ70に紐付けられる。正常稼働状態データ54~70以外の各正常稼働状態データに対しても、特徴量に基づくクラスタリング処理が実行されることで、各正常稼働状態データにラベルが紐付けられる。正常稼働状態データに紐付けられたラベルが、当該正常稼働状態データに対する正解ラベルとして定められる。
例えば、正常稼働状態データ54は、「砥石回転」の状態を表すデータである。正常稼働状態データ56~66は、「研磨中」の状態を表すデータである。正常稼働状態データ68は、「研磨終了」の状態を表すデータである。正常稼働状態データ70は、「ステージ移動」の状態を表すデータである。
ラベリングモデル学習部24は、ラベルA,B,C,D等の各ラベルが正解ラベルとして紐付けられた各正常稼働状態データを教師データとして使用して学習することで、稼働状態データを複数のクラスのいずれかに分類するためのラベリングモデルを生成する。
図9に示すように、異常判定モデル学習部26は、ラベルAが紐付けられた正常稼働状態データをラベルA用の教師データとして使用して学習することで、ラベルA用の異常判定モデルを生成する。同様に、異常判定モデル学習部26は、ラベルBが紐付けられた正常稼働状態データをラベルB用の教師データとして使用して学習することで、ラベルB用の異常判定モデルを生成する。同様に、異常判定モデル学習部26は、ラベルCが紐付けられた正常稼働状態データをラベルC用の教師データとして使用して学習することで、ラベルC用の異常判定モデルを生成する。他のラベルについても同様に、当該他のラベル用の異常判定モデルが生成される。これらの異常判定モデルは、例えば、オートエンコーダである。
パラメータ算出部28は、ラベルAが紐付けられた正常稼働状態データをラベルA用の異常判定モデルに入力し、その入力に応じてラベルA用の異常判定モデルから出力された予測データとその入力された正常稼働状態データとの差分を算出して差分データを生成する。パラメータ算出部28は、ラベルAが紐付けられた各正常稼働状態データについて差分を算出する。これにより、ラベルAについて複数の差分データが生成される。パラメータ算出部28は、当該複数の差分データのうちの最大値、平均値、標準偏差及び分散(例えば差分データの3σ範囲外のデータ個数)を、ラベルAについての差分データのパラメータとして算出する。パラメータ算出部28は、ラベルB,C,・・・のそれぞれについても同様に各パラメータを算出する。各ラベルの各パラメータは、パラメータ記憶部30に記憶される。
以下、図10を参照して、装置12の状態を監視するときの異常判定装置32の動作(つまり装置12の異常判定方法)について説明する。図10には、異常判定装置32の動作の流れを示すフローチャートが示されている。
まず、データ収集部34は、センサ14によって検出された稼働状態データを収集し、稼働状態データに対してFFT及びスケーリング処理を適用する(S11)。
次に、特徴量抽出部38は、稼働状態データからCNNを用いて特徴量を抽出する(S12)。
次に、ラベリング処理部40は、ラベリングモデル学習部24によって生成されたラベリングモデルを用いて、稼働状態データを、当該稼働状態データの特徴量に基づいて、複数のクラスのいずれかに分類する(S13)。つまり、ラベリング処理部40は、稼働状態データについてのラベルを特定する。なお、ラベリング処理によって特定されたラベルの一致度が閾値未満である場合、ラベリング処理部40は、当該稼働状態データは不良データであると判定してもよい。
次に、異常判定を行うために、稼働状態データに対してスケーリング処理が適用される(S14)。例えば、稼働状態データに対してFFTが適用され、FFTによって生成されたデータに対してスケーリング処理が適用される。これらの処理は、例えば、データ収集部34によって行われる。
次に、異常判定処理部42は、ステップS13にて分類されたクラスに対応する異常判定モデルに稼働状態データを入力し、当該稼働状態データに対応する予測データを算出する(S15)。
次に、異常度算出部44は、稼働状態データと、当該稼働状態データに対応する予測データと、の差分を算出し、その差分に基づいて当該稼働状態データの異常度を算出する(S16)。
異常度算出部44は、その異常度に基づいて、装置12の状態が異常であるか否かを判定する(S17)。異常度算出部44は、その異常度が閾値を超える場合、装置12は異常であると判定し、その異常度が閾値以下である場合、装置12は正常であると判定する。
判定結果は、例えば、UI46aのディスプレイに表示されてもよいし、予め設定された端末装置(例えば、パーソナルコンピュータ、スマートフォン又は携帯電話等)に送信されてもよい。例えば、装置12が異常であると判定された場合、その旨を示す情報が、ディスプレイに表示されたり、端末装置に送信されて表示されたりする。同様に、装置12が異常ではないと判定された場合、その旨を示す情報が、ディスプレイに表示されたり、端末装置に送信されて表示されたりする。
なお、装置12が異常であると判定された場合に、異常である旨を示す情報が表示されたり送信されたりし、装置12が異常ではないと判定された場合には、異常ではない旨を示す情報は表示されたり送信されたりしなくてもよい。
また、装置12が異常であると判定された場合、異常であると判定された稼働状態を示す情報が、ディスプレイに表示されたり、端末装置に送信されたりしてもよい。
以下、図11から図15を参照して、異常判定装置32の動作の具体例について説明する。一例として、装置12は、ウェハを研磨する研磨装置であり、装置12によって研磨される加工物はSiウェハである。センサ14は、加速度センサ等の振動センサであり、装置12の振動を計測し、振動を表す振動データを稼働状態データとして出力する。
データ収集部34は、時間T毎に収集された各振動データに対してFFTを適用する。例えば、時系列データである振動データが時間T毎に収集されることで、1024点の振動データが得られる。1024点の振動データに対してFFTが適用されることで、512点のスペクトルを表すデータが得られる。図11には、ある時間に得られたスペクトルを表す稼働状態データ72が示されている。図11において、横軸は周波数を示しており、縦軸は振幅を示している。なお、データ収集部34は、スペクトルを表す稼働状態データに対して、上述した式(1)で定義される標準化処理、又は、上述した式(2)で定義される正規化処理を適用してもよい。
特徴量抽出部38は、512点のスペクトルを表す稼働状態データから特徴量を抽出する。例えば、特徴量抽出部38は、CNN(例えば図7に示されているCNN)を用いて特徴量を抽出する。特徴量抽出部38は、CNNを用いずに、稼働状態データのピーク値、平均値、標準偏差、中央値、分散、歪度又は尖度等を特徴量として抽出してもよい。
次に、図12に示すように、ラベリング処理部40は、ラベリングモデル学習部24によって生成されたラベリングモデルを用いて、稼働状態データ72を、稼働状態データ72の特徴量に基づいて、複数のクラスのいずれかに分類する。図12に示す例では、ラベリング処理部40は、稼働状態データ72をクラスAに分類し、稼働状態データ72にラベルAを紐付ける。
次に、図13に示すように、異常判定処理部42は、クラスAに対応する異常判定モデルに稼働状態データ72を入力し、稼働状態データ72に対応する予測データ74を出力する。異常度算出部44は、入力された稼働状態データ72と出力された予測データ74との差分を算出する。
稼働状態データ72以外の稼働状態データについても、いずれかのクラスに分類されてラベルが紐付けられ、当該稼働状態データが分類されたクラスに対応する異常判定モデルを用いて予測データが算出され、予測データに対する差分が算出される。
例えば、異常度算出部44は、以下の式(3)で定義される最大・分散法に従って異常度を算出する。
式(3)中の各パラメータは以下に示すように定義される。また、図14には、各パラメータが示されている。
Anomaly level:異常度
Deftrain:正常稼働状態データから学習時に算出された、正常稼働状態データと予測データとの差分(ラベル毎の差分)
Deftest:装置12の状態監視時に算出された稼働状態データと予測データとの差分
Max():最大値
Count():正常稼働状態データから学習時に算出された、正常稼働状態データと予測データとの差分のうち3σの範囲外のデータ個数
異常度算出部44は、式(3)を用いて算出された異常度が閾値を超える場合、装置12の状態が異常であると判定し、その異常度が閾値以下である場合、装置12の状態は正常であると判定する。
図15を参照して、異常度の算出結果について説明する。図15には、異常度の算出結果の具体例が示されている。ここでは、最大・分散法に従って異常度が算出されている。
センサ14として、センサα又はセンサβが用いられた。センサαは、6軸の振動センサ(例えば、3軸の加速度と3軸の角速度を検出するセンサ)である。センサβは、1軸の振動センサである。学習用の正常稼働状態データとして、Siウェハの研磨中の振動を表す振動データが用いられた。
算出結果76~82は、最大・分散法に従って算出された異常度である。算出結果76,78は、センサ14としてセンサαが用いられた場合の算出結果である。算出結果80,82は、センサ14としてセンサβが用いられた場合の算出結果である。
算出結果76,80は、実施形態に係るクラスタリング処理が適用された場合の算出結果である。算出結果76,80が示す異常度は、クラスタリング処理によって状態「研磨中」にラベリングされた稼働状態データを用いて算出された値である。状態「研磨中」にラベリングされた稼働状態データは複数あり、算出された異常度の最大値、平均値及び最小値が、それぞれプロットされている。
算出結果78,82は、クラスタリング処理が適用されていない場合の算出結果(比較例に係る算出結果)である。
各算出結果において、「正常状態」に対応する異常度は、正常稼働状態データに基づいて算出された値である。「過負荷」に対応する異常度は、ウェハの回転量を増加させた状態で得られた稼働状態データに基づいて算出された値である。「異常」に対応する異常度は、ウェハ割れが発生した状態で得られた稼働状態データに基づいて算出された値である。「異種材料」に対応する異常度は、Siウェハとは異なる材料(例えばグリーンカーボン)について得られた稼働状態データに基づいて算出された値である。
算出結果76,80と算出結果78,82とを比較すると、クラスタリング処理が適用された場合、異常度によって、「正常状態」、「過負荷」及び「異常」のそれぞれを識別することができる。つまり、「正常状態」、「過負荷」及び「異常」を区別して、装置12の状態がいずれの状態であるのかを判別することができる。また、「異種材料」についても、クラスタリング処理が適用された算出結果によれば、Siウェハとは別のラベルとして分類することができる。つまり、種類の異なる複数の材料を区別して、装置12が異常であるか否かを判定することができる。
異常度算出部44は、MT法を適用することで異常度を算出してもよい。MT法では、マハラノビス距離が異常度として算出され、その算出されたマハラノビス距離が閾値を超える場合、装置12の状態が異常であると判断される。図16には、MT法に従って算出された異常度が示されている。
算出結果84~90は、MT法に従って算出された異常度である。算出結果84,86は、センサαが用いられた場合の算出結果である。算出結果88,90は、センサβが用いられた場合の算出結果である。算出結果84,88は、実施形態に係るクラスタリング処理が適用された場合の算出結果である。算出結果86,90は、クラスタリング処理が適用されていない場合の算出結果である。
MT法によって算出された異常度によっても、「正常状態」、「過負荷」及び「異常」のそれぞれを識別することができるが、センサの種類によっては、「過負荷」と「異常」の識別が困難な場合がある。これに対して、図15に示されている最大・分散法によれば、MT法と比べて、より高い精度で「過負荷」と「異常」を識別することができる。
以上のように、本実施形態に係る異常判定装置32及び異常判定方法によれば、クラス毎に学習によって生成された異常判定モデルを用いて異常度が算出され、装置12の異常の有無が判定される。あるクラスの異常判定モデルは、当該クラスに属する正常稼働状態データの特徴が反映されたモデルであるため、当該クラスに対応する稼働状態における装置12の異常の有無を精度良く判定することができる。例えば、「研磨中」の異常判定モデルは、「研磨中」の正常稼働状態データの特徴が反映されたモデルであるため、「研磨中」の装置12の異常の有無を精度良く判定することができる。これにより、クラス毎に異常判定モデルを分けずに1つの異常判定モデルによって異常度を算出する場合と比べて、異常の有無の判定の精度を向上させることができる。
また、装置12の各動作状態を特定するための特別の構成を追加せずに、クラス毎の異常判定モデルを生成することができる。例えば、各動作状態を特定するために、装置12や制御装置から、動作状態を示す信号を取り出すことが考えられるが、この場合、信号を取り出すための特別の構成を追加する必要がある。本実施形態によれば、学習によってラベリングモデルを生成し、そのラベリングモデルによって稼働状態データを分類しているので、そのような特別の構成を追加する必要がない。
また、本実施形態においては、正常稼働状態データを用いた学習によって異常判定モデルが生成される。つまり、装置12に異常が発生したときの稼働状態データを用いずに異常判定モデルが生成される。実際の現場で異常時の稼働状態データを収集することは極めて困難であり現実的でないため、異常時の稼働状態データを用いて学習することは現実的ではない。これに対して、本実施形態によれば、異常時の稼働状態データを用いずに異常判定モデルを生成するため、様々な装置12や現場について異常判定モデルを生成して、異常の有無を精度良く判定することができる。
また、本実施形態によれば、被加工物(例えば、ウェハやワーク)が破損する前に、装置12の異常を検知することができる。つまり、時間軸上に並んだ複数の工程を含む一連のシーケンスを対象として、工程毎の異常判定モデルが生成され、工程毎に異常の有無が判定される。これにより、被加工物が破損する前の工程の段階で異常を検知して、被加工物の破損を防止することができる。
また、ラベル数を特定しない方法(例えばMeanShift法)に従ったクラスタリング処理によって、人が認識していないクラスを設定して、稼働状態データをクラス分けすることができる。例えば、装置12が、材料を加工する装置である場合、「加工開始直後」、「加工中」及び「加工終了間際」の各作業工程で、稼働状態データの傾向が大きく異なることがある。この場合、実施形態に係るクラスタリング処理を適用することで、「加工開始直後」、「加工中」及び「加工終了間際」のそれぞれに対応するクラスが設定され、各クラスに対応する異常判定モデルが生成される。その結果、各クラスに対応する異常判定モデルを用いずに異常度を算出して装置12の異常の有無を判定する場合と比べて、より正確に異常度を算出して装置12の異常の有無を判定することができる。
実施形態と比較して、人が装置12の作業工程毎にクラスを設定することが考えられる。この場合、人が認識していないデータの傾向に基づいてクラスが設定されないため、人が認識していないクラスに稼働状態データをクラス分けすることができない。仮に、人が「加工中」と「加工終了間際」とでデータの傾向に差があることを認識しておらず、「加工中」と「加工終了間際」とを同じクラスに設定した場合、「加工中」と「加工終了間際」とを正確に区別して、それぞれの作業工程で発生し得る異常を正確に判定することが困難となる。これに対して、本実施形態によれば、「加工中」と「加工終了間際」とが区別されるので、それぞれの作業工程で発生し得る異常を正確に判定することができる。
以下、実施形態の各変形例について説明する。
(変形例1)
変形例1では、予め定められた順番に従って装置12にて実行される複数の作業が定められている。例えば、作業A,B,Cの順番で各作業が実行される一連のシーケンスが装置12に設定されており、そのシーケンスを示す情報が、異常判定装置32の記憶装置に予め記憶されている。クラスは、複数の作業のいずれかに対応している。例えば、クラスAは作業Aに対応し、クラスBは作業Bに対応し、クラスCは作業Cに対応している。
ラベリング処理部40は、上述した実施形態と同様に、ラベリングモデル学習部24によって生成されたラベリングモデルを用いて、稼働状態データを、当該稼働状態データの特徴量に基づいて、複数のクラスのいずれかに分類する。
ラベリング処理部40は、予め定められた順番から外れた分類が行われた場合、異常が発生したと判定し、その判定結果(異常を示す判定結果)を出力する。例えば、作業Cに分類される稼働状態データ群が発生した後に、作業A又は作業Bに分類される稼働状態データが発生した場合、ラベリング処理部40は、異常が発生したと判定し、その判定結果を出力する。例えば、その判定結果が、ディスプレイに表示されたり、端末装置に送信されたりする。
変形例1によれば、稼働状態データを分類する段階で、装置12の異常を検知することができる。これにより、異常度を算出して装置12の異常の有無を判定する場合と比べて、より早い段階で、装置12の異常を検知することができる。
(変形例2)
上述した実施形態では、センサ14として振動センサが用いられているが、振動センサ以外のセンサが出力したデータに実施形態が適用されてもよい。例えば、カメラによる撮影によって生成された画像データに対して、稼働状態データと同様に実施形態が適用される。
ここでは一例として、定点監視カメラによって撮影が行われる場合について説明する。定点監視カメラによって撮影が行われる場合、撮影の時間帯によって周囲の明るさが異なるため、撮影の時間帯に応じて、定点監視カメラによる撮影によって生成された画像データの明度に差が生じる。例えば、朝に撮影された画像データ、昼に撮影された画像データ、及び、夜に撮影された画像データでは、それぞれ明度が異なる。クラスタリング処理によって、明度毎に画像データを分類することで、周囲の環境に影響されることなく、異物や不審者等の異常を精度良く検知することができる。具体的には、以下の処理によって、異常判定モデルが生成されて、異常の有無が判定される。
まず、異常が発生していない状態の撮影場所(例えば、異物や不審者が存在しない状態の撮影場所)が、定点監視カメラによって撮影されることで、正常な状態を表す正常画像データが生成される。例えば、朝、昼及び夜の時間帯にわたって撮影が行われる。定点監視カメラによって、撮影場所が1日以上連続して撮影されてもよい。
学習装置10の特徴量抽出部20は、定点監視カメラから出力された正常画像データから特徴量を抽出する。クラスタリング処理部22は、定点監視カメラから出力された正常画像データに対してクラスタリング処理を適用することで、明度毎にクラスを定めて、各正常画像データが属するクラスを特定する。
ラベリングモデル学習部24は、そのクラスを正解ラベルと定義し、その正解ラベルが紐付けられた正常画像データを教師データとして用いて学習することで、ラベリングモデルを生成する。これにより、画像データを明度に対応するクラスに分類するためのラベリングモデルが生成される。
異常判定モデル学習部26は、同じクラスに属する複数の正常画像データを用いて、クラス毎に異なる学習によって異常判定モデルを生成する。これにより、時間帯毎の異常判定モデルが生成される。例えば、朝用の異常判定モデル、昼用の異常判定モデル、及び、夜用の異常判定モデルが生成される。
撮影場所の異常の有無を判定する場合、異常判定装置32の特徴量抽出部38は、定点管理カメラから出力された画像データから特徴量を抽出する。ラベリング処理部40は、ラベリングモデル学習部24によって生成されたラベリングモデルを用いて、画像データを複数のクラスのいずれかに分類する。異常判定処理部42は、ラベリング処理部40によって画像データが分類されたクラスに対応する異常判定モデルを用いて、当該画像データから予測データを算出する。異常度算出部44は、異常判定モデルに入力された画像データと、当該画像データの入力に対応して異常判定モデルから出力された予測データと、の差分を算出し、その差分に基づいて、画像データに異常が発生しているか否かを判定する。異常度算出部44は、上述した最大・分散法やMT法によって異常度を算出する。例えば、画像データが昼のクラスに分類された場合、昼用の異常判定モデルを用いて予測データが算出されて、異常度が算出される。一方、画像データが夜のクラスに分類された場合、夜用の異常判定モデルを用いて予測データが算出されて、異常度が算出される。異常度算出部44は、異常度が閾値を超えている場合、撮影場所にて異常が発生していると判定し、異常度が閾値以下である場合、撮影場所にて異常が発生していないと判定する。
(変形例3)
装置12にて複数の異なるワークが加工される場合、加工される各ワークがカメラによって撮影され、画像データによって異常の有無が判定されてもよい。
例えば、複数の異なるワークが、順次、装置12に供給され、各ワークがカメラによって撮影されることで画像データが生成される。正常画像データに対してクラスタリング処理が実行されることで、ワーク毎のクラスが定められ、画像データをワークに対応するクラスに分類するためのラベリングモデルが生成される。また、ワーク毎の異常判定モデルが生成される。
異常を判定するときに撮影された画像データが、ラベリングモデルによって、複数のクラスのいずれかに分類され、当該画像データが分類されたクラスに対応する異常判定モデルを用いて予測データが算出されて、異常度が算出される。その異常度に基づいて、装置12やワークに異常が発生しているか否かが判定される。
変形例3によれば、ワークの切替処理を行わずに、装置12やワークの異常の有無を判定することができる。また、複数種類のワークが混在している場合であっても、異常の有無を判定することができる。