(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-12
(45)【発行日】2024-03-21
(54)【発明の名称】学習データ生成装置、異常検出装置、異常検出システム、及び異常検出プログラム
(51)【国際特許分類】
G01N 21/956 20060101AFI20240313BHJP
【FI】
G01N21/956 A
(21)【出願番号】P 2021040320
(22)【出願日】2021-03-12
【審査請求日】2023-04-24
(73)【特許権者】
【識別番号】000003609
【氏名又は名称】株式会社豊田中央研究所
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】青柳 勲
(72)【発明者】
【氏名】岡地 涼輔
(72)【発明者】
【氏名】朽木 克博
(72)【発明者】
【氏名】村松 潤哉
(72)【発明者】
【氏名】富永 孝
(72)【発明者】
【氏名】中垣 真治
【審査官】三宅 克馬
(56)【参考文献】
【文献】特開2004-158820(JP,A)
【文献】特開2020-042755(JP,A)
【文献】特開2004-191305(JP,A)
【文献】特開2020-174088(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01N 21/956
(57)【特許請求の範囲】
【請求項1】
ウェハ上の複数の素子を含む素子群において、前記素子を測定した測定値を前記素子群毎に取得する取得部と、
前記素子群に異常な素子が含まれる異常素子群であるか否かを識別するための機械学習を行った学習器に、前記素子群に係る前記測定値を入力して、前記素子群が前記異常素子群であるか否かを判定する判定部と、
前記異常素子群に含まれる素子から前記異常な素子を検出する検出部と、
を備える異常検出装置。
【請求項2】
前記検出部は、前記素子において異常素子群に含まれる回数を用いて、前記異常素子群から前記異常な素子を検出する、又は前記異常素子群に係る素子の測定値を用いて、前記異常素子群から前記異常な素子を検出する請求項1に記載の異常検出装置。
【請求項3】
前記素子群は、前記ウェハ上に縦横に隣接する素子、前記ウェハ上に凸型に隣接する素子、前記ウェハ上に鉤型に隣接する素子、又は前記ウェハの中心から同一の距離に位置する素子の何れか1つである請求項1又は請求項2に記載の異常検出装置。
【請求項4】
前記異常検出装置は、学習データとして素子群に係る素子の測定値を取得し、取得した学習データを用いて、異常素子群であるか否かを判定するための機械学習を前記学習器に行う学習部をさらに備える
請求項1から請求項3の何れか1項に記載の異常検出装置。
【請求項5】
ウェハ上の複数の素子を含む素子群において、前記素子群毎に素子群の情報である素子群情報を取得する素子群情報取得部と、
取得した前記素子群情報に係る前記素子の配置を変更することによって増量して学習データを生成する学習データ生成部と、
を備える学習データ生成装置。
【請求項6】
前記学習データ生成部は、前記学習データに係る前記素子の位置を回転、又は反転して、前記学習データに係る前記素子の配置を変更して前記学習データを増量する請求項5に記載の学習データ生成装置。
【請求項7】
請求項1から請求項4の何れか1項に記載の異常検出装置と、
請求項5又は請求項6に記載の学習データ生成装置と、
を備える異常検出システム。
【請求項8】
ウェハ上の複数の素子を含む素子群において、前記素子を測定した測定値を前記素子群毎に取得する取得ステップと、
前記素子群に異常な素子が含まれる異常素子群であるか否かを識別するための機械学習を行った学習器に、前記素子群に係る前記測定値を入力して、前記素子群が前記異常素子群であるか否かを判定する判定ステップと、
前記異常素子群に含まれる素子から前記異常な素子を検出する検出ステップと、
をコンピュータに実行させるための異常検出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習データ生成装置、異常検出装置、異常検出システム、及び異常検出プログラムに関する。
【背景技術】
【0002】
近年、設備機器、及び製品等の検査において、機械学習を行ったAI(Artificial Intelligence)を用いて、設備機器、及び製品等の異常を検出する技術が提案されている。
【0003】
例えば、設備機器の異常を検知するための機械学習を行った学習器を備えた異常検知システムにおいて、当該学習器が学習する学習データが少ないと判定された場合、学習データを生成する技術が提案されている(特許文献1参照)。特許文献1に記載の技術では、学習器が学習する学習データが少ないと判定された場合、シミュレーションによってデータを生成、又は実稼働データに対してノイズ等を入れて学習データを生成して、学習器に学習させている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、シミュレーションによって生成された学習データ、及び実稼働データに対してノイズ等を入れて生成された学習データを用いて学習を行っている。そのため、生成された学習データが実稼働データに則していない場合があり、生成された学習データを用いて精度よく異常を検出できるとは限らなかった。
【0006】
本開示は、以上の事情を鑑みて成されたものであり、生成された学習データを用いた場合であっても精度よく異常を検出できる学習データ生成装置、異常検出装置、異常検出システム、及び異常検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、第1の態様に係る異常検出装置は、ウェハ上の複数の素子を含む素子群において、素子を測定した測定値を素子群毎に取得する取得部と、素子群に異常な素子が含まれる異常素子群であるか否かを識別するための機械学習を行った学習器に、素子群に係る測定値を入力して、素子群が異常素子群であるか否かを判定する判定部と、異常素子群に含まれる素子から異常な素子を検出する検出部と、を備えている。
【0008】
また、第2の態様に係る異常検出装置において、検出部は、素子において異常素子群に含まれる回数を用いて、異常素子群から異常な素子を検出する、又は異常素子群に係る素子の測定値を用いて、異常素子群から異常な素子を検出する。
【0009】
また、第3の態様に係る異常検出生成装置において、素子群は、ウェハ上に縦横に隣接する素子、ウェハ上に凸型に隣接する素子、ウェハ上に鉤型に隣接する素子、又はウェハの中心から同一距離に位置する素子の何れか1つである。
【0010】
また、第4の態様に係る異常検出装置において、異常検出装置は、学習データとして素子群に係る素子の測定値を取得し、取得した学習データを用いて、異常素子群であるか否かを判定するための機械学習を学習器に行う学習部をさらに備える。
【0011】
一方、上記目的を達成するために、第5の態様に係る学習データ生成装置において、ウェハ上の複数の素子を含む素子群において、素子群毎に素子群の情報である素子群情報を取得する素子群情報取得部と、取得した素子群情報に係る素子の配置を変更することによって増量して学習データを生成する学習データ生成部と、を備える。
【0012】
また、第6の態様に係る学習データ生成装置において、学習データ生成部は、学習データに係る素子の位置を回転、又は反転して、学習データに係る素子の配置を変更して学習データを増量する。
【0013】
一方、上記目的を達成するために、第7の態様に係る異常検出システムにおいて、第1の態様から第4の態様に係る異常検出装置と、第5の態様又は第6の態様に係る学習データ生成装置と、を備える。
【0014】
一方、上記目的を達成するために、第8の態様に係る異常検出プログラムにおいて、ウェハ上の複数の素子を含む素子群において、素子を測定した測定値を素子群毎に取得する取得ステップと、素子群に異常な素子が含まれる異常素子群であるか否かを識別するための機械学習を行った学習器に、素子群に係る測定値を入力して、素子群が異常素子群であるか否かを判定する判定ステップと、異常素子群に含まれる素子から異常な素子を検出する検出ステップと、をコンピュータに実行させる。
【発明の効果】
【0015】
第1の態様の異常検出装置、第7の態様の異常検出システム、及び第8の態様の異常検出プログラムによれば、生成された学習データを用いた場合であっても精度よく異常を検出できる。
【0016】
また、第2の態様の異常検出装置によれば、複数の素子の情報を比較するため、精度よく異常な素子を検出できる。
【0017】
また、第3の態様の異常検出装置によれば、ウェハ上の素子の配置に依らず素子群に係る素子の測定値をより均一に取得できる。
【0018】
また、第4の態様の異常検出装置によれば、取得した測定値を学習器に学習させることができる。
【0019】
また、第5の態様の学習データ生成装置によれば、測定値に則した多様な学習データを生成することができる。
【0020】
また、第6の態様の学習データ生成装置によれば、素子の測定値に基づいた学習データを容易に増量できる。
【図面の簡単な説明】
【0021】
【
図1】各実施形態に係る異常検出システムの構成の一例を示すブロック図である。
【
図2】各実施形態に係る異常検出装置及び学習データ生成装置の構成の一例を示すブロック図である。
【
図3】各実施形態に係る異常検出装置及び学習データ生成装置の機能的な構成の一例を示すブロック図である。
【
図4】各実施形態に係る素子群の一例を示すブロック図である。
【
図5】各実施形態に係る素子群の一例を示すブロック図である。
【
図6】各実施形態に係る位置の依存性の説明に供する素子群の一例を示すブロック図である。
【
図7】各実施形態に係る異常な素子の検出の説明に供する素子の測定値の一例を示す図である。
【
図8】各実施形態に係るニューラルネットワークの一例を示す模式図である。
【
図9】各実施形態に係る学習データの生成の説明に供する素子群の一例を示すブロック図である。
【
図10】第1実施形態に係る異常検出処理の一例を示すフローチャートである。
【
図11】各実施形態に係る学習処理の一例を示すシーケンス図である。
【
図12】第2実施形態に係る異常な素子の検出の説明に供する異常素子群の一覧の一例を示す図である。
【
図13】第2実施形態に係る異常検出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0022】
[第1実施形態]
以下、図面を参照して、本開示の技術を実施するための形態例を詳細に説明する。なお、本開示は、半導体チップ等である素子の異常を検出する異常検出システム1について説明する。しかし、これに限定されない。素子は、センサ、及びデバイス等であってもよいし、異常検出システム1を用いて如何なるデバイス、及び機器の異常を検出してもよい。
【0023】
図1は、本実施形態に係る異常検出システム1の構成の一例を示すブロック図である。
図1に示すように、異常検出システム1は、異常検出装置2、及び学習データ生成装置3を含んで構成されている。なお、本実施形態に係る異常検出装置2、及び学習データ生成装置3は、パーソナルコンピュータ等のサーバ、又は端末である形態について説明する。異常検出装置2、及び学習データ生成装置3は、端末であってもよい。また、本実施形態に係る異常検出装置2、及び学習データ生成装置3は、各々別個の装置である形態について説明する。しかし、これに限定されない。学習データ生成装置3は、異常検出装置2に搭載されていてもよいし、異常検出装置2、及び学習データ生成装置3が他の装置に搭載されていてもよい。
【0024】
異常検出装置2は、ウェハ上の素子について、正常な素子であるか否かを判定する学習モデルを備え、素子の測定値を当該学習モデルに入力して異常な素子を検出する。学習データ生成装置3は、学習モデルが機械学習を行うための学習データを生成する。ここで、学習モデルは、「学習器」の一例である。
【0025】
異常検出装置2、及び学習データ生成装置3は、ネットワークNを介して、互いに接続されている。学習データ生成装置3は、異常検出装置2から素子の測定値を取得して、測定値を用いて学習データを生成し、異常検出装置2は、学習データ生成装置3から学習データを取得して、学習データを用いて学習モデルの機械学習を行う。
【0026】
次に、
図2を参照して、異常検出装置2及び学習データ生成装置3の構成について説明する。
図2は、異常検出装置2、及び学習データ生成装置3の構成の一例を示すブロック図である。
図2に示すように、本実施形態に係る異常検出装置2は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、及び通信インターフェース(通信I/F)17を含んで構成されている。CPU11、ROM12、RAM13、ストレージ14、入力部15、モニタ16、及び通信I/F17の各々はバス18により相互に接続されている。
【0027】
CPU11は、異常検出装置2の全体を統括し、制御する。ROM12は、本実施形態で用いる異常検出プログラム、及び学習プログラムを含む各種プログラム及びデータ等を記憶している。RAM13は、各種プログラムの実行時のワークエリアとして用いられるメモリである。CPU11は、ROM12に記憶されたプログラムをRAM13に展開して実行することにより、異常な素子を検出する処理を行う。ストレージ14は、一例としてHDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリ等である。なお、ストレージ14には、異常検出プログラム、及び学習プログラム等を記憶してもよい。入力部15は、文字等の入力を行うマウス及びキーボードである。モニタ16は、画像データ及び文字等を表示するモニタである。通信I/F17は、ネットワークNを介して学習データ生成装置3と、データの送受信を行う。
【0028】
また、同様に本実施形態に係る学習データ生成装置3は、CPU21、ROM22、RAM23、ストレージ24、入力部25、モニタ26、及び通信インターフェース(通信I/F)27を含んで構成されている。CPU21、ROM22、RAM23、ストレージ24、入力部25、モニタ26、及び通信I/F27の各々はバス28により相互に接続されている。
【0029】
CPU21は、学習データ生成装置3の全体を統括し、制御する。ROM22は、本実施形態で用いる学習データ生成プログラムを含む各種プログラム及びデータ等を記憶している。RAM23は、各種プログラムの実行時のワークエリアとして用いられるメモリである。CPU21は、ROM22に記憶されたプログラムをRAM23に展開して実行することにより、学習データを生成する処理を行う。ストレージ24は、一例としてHDD、SSD、又はフラッシュメモリ等である。なお、ストレージ24には、学習データ生成プログラム等を記憶してもよい。入力部25は、文字等の入力を行うマウス及びキーボードである。モニタ26は、画像データ及び文字等を表示するモニタである。通信I/F27は、ネットワークNを介して異常検出装置2と、データの送受信を行う。
【0030】
次に、
図3を参照して、異常検出装置2及び学習データ生成装置3の機能構成について説明する。
図3は、本実施形態に係る異常検出装置2、及び学習データ生成装置3の機能的な構成の一例を示すブロック図である。
【0031】
図3に示すように、異常検出装置2は、取得部31、判定部32、検出部33、記憶部34、及び学習部35を備えている。CPU11が異常検出プログラム、及び学習プログラムを実行することで、取得部31、判定部32、検出部33、記憶部34、及び学習部35として機能する。また、学習データ生成装置3は、素子群情報取得部36、及び学習データ生成部37を備えている。CPU21が学習データ生成プログラムを実行することで、素子群情報取得部36、及び学習データ生成部37として機能する。
【0032】
取得部31は、1枚のウェハにおける複数の素子(以下、「素子群」という。)を一組とし、素子群毎に各々の素子の測定値を取得する。なお、本実施形態では、取得部31は、測定値として、素子のリーク電流を測定した値を取得する形態について説明する。しかし、これに限定されない。測定値は、ゲート酸化膜耐圧であってもよいし、閾値電圧等であってもよい。また、本実施形態では、素子のリーク電流等の単一の測定値を用いて、異常な素子を検出する形態について説明する。しかし、これに限定されない。素子のリーク電流、及び閾値電圧等の複数の測定値を用いて異常な素子を検出してもよい。例えば、素子のリーク電流、及び閾値電圧の複数の測定値を用いて、各々の測定値における異常な素子を検出してもよい。
【0033】
また、本実施形態では、一例として
図4に示すように、素子群40は、ウェハ41上に縦横に均一に整列した隣接する複数の素子で構成される形態について説明する。しかし、これに限定されない。例えば、
図5に示すように、凸型に隣接する複数の素子を素子群42、鉤型(L字型)に隣接する複数の素子を素子群43、又はS字型に隣接する複数の素子を素子群44としてもよい。また、一例として
図6に示すように、ウェハの中心から同一の距離に位置する複数の素子を素子群としてもよい。ここで、
図6は、同一の距離に位置する素子に対して、中心から距離が近い順に同一の記号を付している。例えば、
図6において、記号「A」が付されている複数の素子は、ウェハの中心から最も近い素子を示している。
【0034】
素子群に係る素子について、ウェハ上において隣接する素子は、素子の構造(素子内の膜構成等)が類似しているため、正常な素子であれば、測定値が近しい値となる。そのため、素子群に係る素子において、ウェハ上の素子の位置に係る測定値の変動等の影響が排除されることによって、異常による測定値の僅かな差異が抽出され、異常な素子が検出される。また、ウェハ上の素子の測定値は、例えば、閾値電圧のようにウェハ上の素子の位置に依存性を有することがある。閾値電圧は、素子の酸化膜容量に依存しており、酸化膜容量は、酸化膜厚に依存する。酸化膜は、熱酸化やCVD(Chemical Vapor Deposition)等によって形成される。このような方法で形成された酸化膜の膜厚は、ウェハ中央から端にいくにしたがって変化する。このため、酸化膜容量は、ウェハの中心から端にいくにしたがって変化する。そのため、ウェハ面内のプロセスのばらつき(酸化膜厚、ドーズ濃度、及び加工形状等)によって、素子の閾値電圧等の特性は、一例として
図7に示すように、素子の位置によって変化する。そのため、異常による測定値の変動が、プロセスによる測定値のばらつきの範囲内にある場合、単一の素子の測定値だけでは、異常を見落とす可能性がある。一方、隣接する素子は、ウェハの酸化膜厚等のばらつきが少なく、閾値電圧等の特性が類似するため、隣接する素子をまとめて素子群とすることによって、
図7に示す異常素子の測定値のように、異常を際立させることが可能である。したがって、素子群は、隣接する素子を用いて構成することが望ましい。
【0035】
また、酸化膜厚等のウェハ上の素子の構造は、上述したように、ウェハの中心からの位置に応じて変化するため、閾値電圧等の素子の特性は、素子の位置に影響される。換言すると、ウェハの中心からの距離が等しい素子の特性は、概ね同等となる。そのため、ウェハの中心から距離が等しい素子を用いて素子群を構成することによって、上述した隣接した素子に係る素子群と同様に、異常による測定値の僅かな差異が抽出され、異常な素子が検出される。したがって、素子群は、ウェハの中心から同一の距離に位置する素子を用いて構成してもよい。
【0036】
判定部32は、取得部31によって取得された素子群毎の測定値を用いて、素子群に異常な素子を含むか否かの判定を行う。なお、以下では、異常な素子を含む素子群を「異常素子群」という。
【0037】
具体的には、判定部32は、素子群に係る測定値から異常素子群であるか否かを判定するための機械学習を行ったニューラルネットワークを用いた学習モデルである。一例として
図8に示すように、ニューラルネットワークは、入力層、中間層(隠れ層)、及び出力層等の処理を行う複数の層のノード50で構成されている。ニューラルネットワークは、各層のノード50がエッジ51によって結合され、入力層、中間層、及び出力層の順に各々のノード50によって処理されたデータを伝搬して処理を行う。
【0038】
本実施形態に係るニューラルネットワークの入力層におけるノード50の数は、
図8に示すように素子群に係る素子の数と同数のノード50を有している。また、入力層の各々のノード50は、入力された測定値に係る各々の素子の配置を区別して測定値の入力を受け付ける。例えば、入力層の各々のノード50が素子群40に係る測定値の入力を受け付ける場合、ノード50Aは素子「1」の測定値、ノード50Bは素子「2」の測定値、ノード50Cは素子「5」の測定値、及びノード50Dは素子「6」の測定値として受け付ける。換言すると、入力層におけるノード50に入力する測定値を入れ替えることによって、各々の素子の配置を変更した異なる素子群の測定値の入力として処理を行うことが可能である。
【0039】
図3に示す検出部33は、判定部32によって異常素子群と判定された素子群から異常な素子を検出する。具体的には、検出部33は、異常素子群と判定された素子群毎に素子の測定値の標準偏差を導出し、標準偏差を用いて異常な素子を検出する。例えば、検出部33は、素子群に係る素子の測定値の平均値に当該標準偏差を加算した値を上限、及び当該平均値に当該標準偏差を減算した値を下限として、測定値のばらつき幅を設定する。検出部33は、ばらつき幅内に納まっていない(上限を超えた、又は下限を下回った)測定値に係る素子を異常な素子として検出する。
【0040】
図3に示す記憶部34は、素子群に係る情報(以下、「素子群情報」という。)として素子群に係る素子の測定値と、判定部32によって判定された結果(以下、「判定結果」という。)と、を関連付けて記憶する。具体的には、記憶部34は、判定部32によって異常な素子群として判定された場合、素子群情報として当該素子群に係る素子の測定値と、判定結果である「異常な素子群」と、を関連付けて記憶する。また、記憶部34は、判定部32によって正常な素子群として判定された場合、素子群情報として当該素子群に係る素子の測定値と、判定結果である「正常な素子群」と、を関連付けて記憶する。
【0041】
学習部35は、学習データとして、記憶部34に記憶されている素子群情報と、後述する学習データ生成部37によって生成された学習データと、を判定部32における学習モデルに学習させる。具体的には、学習部35は、学習モデルに対して、素子群に係る素子の測定値を入力データとし、判定結果を正解データとして、教師あり学習を行い、素子群に係る素子の測定値から異常素子群を判定するための機械学習を行う。
【0042】
素子群情報取得部36は、上述した記憶部34から増量する対象となる素子群情報を取得する。具体的には、素子群情報取得部36は、増量する対象となる学習データをとして、判定結果が「異常素子群」である素子群情報を記憶部34から取得する。
【0043】
学習データ生成部37は、素子群情報取得部36によって取得された素子群情報を学習データとして増量する。具体的には、学習データ生成部37は、取得した素子群情報に対して、回転、及び反転を行い、素子群に係る素子の配置を変更する。上述したように、本実施形態に係る素子群に係る素子の測定値は、素子群に係る素子の配置によって区別される。例えば、一例として
図9に示すように、学習データ生成部37は、素子群40を左周りに90度、180度、及び270度回転することによって、素子群に係る素子の配置を変更する。また、学習データ生成部37は、素子群40に対して、水平方向を軸に反転、鉛直方向を軸に反転、右下がりの対角線を軸に反転、及び右上がりの対角線を軸に反転することによって、素子群に係る素子の配置を変える。学習データ生成部37は、素子群に係る素子に対して、回転、及び反転を行うことによって、「異常素子群」である素子群から得られる1つの学習データを8つの学習データに増量する。
【0044】
次に、
図10、及び
図11を参照して、本実施形態に係る異常検出装置2及び学習データ生成装置3の作用について説明する。
図10は、第1実施形態に係る異常検出処理の一例を示すフローチャートである。CPU11がROM12又はストレージ14から異常検出プログラムを読み出し、実行することによって、
図10に示す異常検出処理が実行される。
図10に示す異常検出処理は、例えば、ユーザにより実行指示が入力された場合、異常検出装置2に異常検出処理の実行指示が入力され、実行される。
【0045】
ステップS101において、CPU11は、素子群に係る素子の測定値を取得する。
【0046】
ステップS102において、CPU11は、素子群に係る素子の測定値を用いて、素子群の判定を実行する。
【0047】
ステップS103において、CPU11は、判定を行った素子群が異常素子群であるか否かの判定を行う。判定を行った素子群が異常素子群である場合(ステップS103:YES)、CPU11は、ステップS104に移行する。一方、判定を行った素子群が異常素子群でない場合(ステップS103:NO)、CPU11は、ステップS106に移行する。
【0048】
ステップS104において、CPU11は、素子群データを用いて、素子群に係る素子の測定値の平均値、及び標準偏差を導出する。
【0049】
ステップS105において、CPU11は、異常素子群と判定された素子群から異常な素子を検出する。
【0050】
ステップS106において、CPU11は、全ての素子群に対して判定を行ったか否かの判定を行う。全ての素子群に対して判定を行った場合(ステップS106:YES)、CPU11は、ステップS107に移行する。一方、全ての素子群に対して判定を行っていない場合(ステップS106:NO)、CPU11は、ステップS109に移行する。
【0051】
ステップS107において、CPU11は、素子群情報として、素子群に係る素子の測定値と、判定結果と、を関連付けて記憶する。
【0052】
ステップS108において、CPU11は、検出結果を出力する。ここで、異常な素子を検出した場合、異常な素子を検出した旨、及び異常な素子を示す情報を出力する。
【0053】
ステップS109において、CPU11は、次の素子群に係る素子の測定値を取得し、ステップS102に移行する。
【0054】
次に、
図11を参照して、異常検出装置2と学習データ生成装置3とが協働する異常検出システムの学習処理の作用について説明する。
図11は、本実施形態に係る異常検出システムの学習処理の流れの一例を示すシーケンス図である。
【0055】
ステップS201において、異常検出装置2は、学習データを生成する指示、及び素子群情報を送信する。
【0056】
ステップS202において、学習データ生成装置3は、異常検出装置2から素子群情報を取得する。
【0057】
ステップS203において、学習データ生成装置3は、取得した素子群情報を学習データとして増量する。
【0058】
ステップS204において、学習データ生成装置3は、増量した学習データを異常検出装置2に送信する。
【0059】
ステップS205において、異常検出装置2は、学習データ生成装置3から増量した学習データを取得する。
【0060】
ステップS206において、異常検出装置2は、学習データとして、記憶されている素子群情報、及び学習データ生成装置3から取得した増量された学習データを用いて、学習モデルに対して機械学習を実行する。
【0061】
以上説明したように、本実施形態によれば、生成された学習データを用いた場合であっても精度よく異常を検出できる。
【0062】
[第2実施形態]
第1実施形態では、素子群に係る素子の測定値の標準偏差を用いて、異常な素子を検出する形態について説明した。本実施形態では、異常素子群であると判定された回数を用いて、異常な素子を検出する形態について説明する。
【0063】
なお、本実施形態に係る異常検出システム1の構成(
図1参照)、異常検出装置2及び学習データ生成装置3のハードウェア構成(
図2参照)、及び異常検出システム1の機能的な構成(
図3参照)は、第1実施形態と同様であるため、説明を省略する。また、本実施形態に係る素子群を示すブロック図(
図4、
図5、
図6、及び
図9参照)、測定値のグラフ(
図7参照)、ニューラルネットワーク(
図8参照)、及び学習処理を示すシーケンス図(
図11参照)は、第1実施形態と同様であるため、説明を省略する。
【0064】
本実施形態では、
図3に示す検出部33が、素子毎に異常素子群に含まれる回数を計数して、異常な素子を検出する形態について説明する。
【0065】
例えば、一例として
図12に示すように、検出部33は、一覧に、異常素子群であると判定された素子群に係る異常素子番号、及び素子番号を記憶する。ここで、異常素子群番号は、素子群を識別するための番号であり、素子番号は、素子を識別するための番号である。
【0066】
検出部33は、異常素子群を記憶し、異常素子群に含まれる素子について、一覧に含まれる回数を素子毎に計数し、素子毎に、回数に応じて異常な素子である度合(以下、「異常度」という。)を設定する。例えば、
図12に示すように、素子番号6の素子は、異常素子群に4回含まれているため、異常度「4」を設定する。また、素子番号5の素子は、異常素子群に2回含まれているため、異常度「2」を設定する。このように、素子毎に計数した回数に応じた異常度を設定し、閾値を超えた異常度に係る素子を異常な素子として検出する。例えば、異常度の閾値が「2」である場合、異常度が「3」以上の素子番号6が異常な素子として検出される。
【0067】
次に、
図13を参照して、本実施形態に係る異常検出装置2の作用について説明する。
図13は、第2実施形態に係る異常検出処理の一例を示すフローチャートである。CPU11がROM12又はストレージ14から異常検出プログラムを読み出し、実行することによって、
図13に示す異常検出処理が実行される。
図13に示す異常検出処理は、例えば、ユーザにより実行指示が入力された場合、異常検出装置2に異常検出処理の実行指示が入力され、実行される。なお、
図13における
図10に示す異常検出処理と同一のステップについては、
図10と同一の符号を付して、その説明を省略する。
【0068】
ステップS110において、CPU11は、判定を行った素子群が異常素子群であるか否かの判定を行う。判定を行った素子群が異常素子群である場合(ステップS110:YES)、CPU11は、ステップS111に移行する。一方、判定を行った素子群が異常素子群でない場合(ステップS110:NO)、CPU11は、ステップS106に移行する。
【0069】
ステップS111において、CPU11は、異常素子群として、素子群の素子群番号、及び素子群に係る素子の素子番号を一覧に記憶する。
【0070】
ステップS112において、CPU11は、一覧に異常素子群が記憶されているか否かの判定を行う。異常素子群が記憶されている場合(ステップS112:YES)、CPU11は、ステップS113に移行する。一方、異常素子群が記憶されていない場合(ステップS112:NO)、CPU11は、ステップS107に移行する。
【0071】
ステップS113において、CPU11は、一覧に記憶されている素子群に係る素子の異常度を導出する。
【0072】
ステップS114において、CPU11は、異常度の閾値を超えている異常度に係る素子を異常な素子として検出する。
【0073】
以上説明したように、本実施形態によれば、異常素子群に係る素子として計数された回数から異常な素子が検出される。以上説明したように本実施形態によれば、第1実施形態と同様の効果を奏することができる。
【0074】
なお、本実施形態に係る素子群は、縦横に隣接する複数の素子、凸型に隣接する複数の素子、鉤型(L字型)に隣接する複数の素子、S字型に隣接する複数の素子、及びウェハ上において同一の距離に位置する複数の素子の何れか1つである形態について説明した。しかし、これに限定されない。縦横に隣接する複数の素子、凸型に隣接する複数の素子、鉤型(L字型)に隣接する複数の素子、S字型に隣接する複数の素子、及びウェハ上において同一の距離に位置する複数の素子のうち、2つ以上を素子群として設定してもよい。例えば、ウェハの中心付近に位置する素子に対しては、縦横に隣接する素子を素子群として設定し、ウェハの端部付近に位置する素子に対しては、凸型に隣接する複数の素子を素子群として設定してもよい。
【0075】
また、本実施形態では、学習処理を行う際に、学習データの生成を実行する形態について説明した。しかし、これに限定されない。記憶部34に記憶されている異常素子群に係る素子群情報が予め定められた数より少ない場合、学習データの生成を実行してもよい。
【0076】
(データ増量の効果の説明)
例えば、半導体素子の製造不具合による素子の異常に係るデータを増量する場合において、1ウェハ中に素子が400素子(縦20×横20素子)存在し、学習データとして、ウェハ25枚分のデータである10000素子のデータを保有しているものとする。
【0077】
素子群を構成する素子は、縦横に均一に整列する4素子である場合、1ウェハから取得可能な素子群のデータ数は、縦19×横19=361個であり、ウェハ25枚から取得できる素子群のデータ数は、361個×25枚=9025個である。
【0078】
また、10000素子のうち異常な素子が300素子含まれているとし、1つの異常素子群に1つの異常な素子が含まれているとすると、1つの異常な素子に対して異常素子群は4通りあるため、データ数は、300個×4通り=1200個となる。さらに、異常素子群に係る素子について、反転、又は回転を行うことにより、異常素子群のデータ数は、1200個×8=9600個となる。
【0079】
一方、異常素子群が素子群9025個のうち1200個であるため、正常な素子群は、9025個-1200個=7825個である。
【0080】
したがって、本発明に係るデータ増量方法によれば、正常な素子群のデータ数7825個に対して、異常な素子群のデータ数を9600個まで増量可能であり、ほぼ同数の正常な素子群のデータ、及び異常素子群のデータを学習させることが可能である。
【0081】
(その他)
その他、上記実施形態で説明した異常検出装置2、及び学習データ生成装置3の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0082】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0083】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した異常検出処理、学習データ生成処理、及び学習処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ユーザ情報から抽出、分析、及び生成する処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0084】
また、上記各実施形態では、異常検出プログラムがROM12又はストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0085】
11、21 CPU
12、22 ROM
13、23 RAM
14、24 ストレージ
15、25 入力部
16、26 モニタ
17、27 通信I/F
18、28 バス
31 取得部
32 判定部
33 検出部
34 記憶部
35 学習部
36 素子群情報取得部
37 学習データ生成部
40、42,43,44 素子群
41 ウェハ
50、50A、50B、50C、50D ノード
51 エッジ