(57)【要約】【課題】不正確なラベルを有する学習データの影響を低減する技術を提供する。【解決手段】検査装置は、ラベル付きデータの集合である学習データをトレーニングデータとバリデーションデータとに区分し、トレーニングデータを用いてニューラルネットワークの第１の学習を実行するとともに、第１の学習後のニューラルネットワークを用いてバリデーションデータの検証を実行することによってバリデーションデータのうちでラベルが不正確であるラベル不正確データを抽出する第１学習実行部と、学習データを用いてニューラルネットワークの第２の学習を実行する第２学習実行部と、第２の学習後のニューラルネットワークを用いて検査対象物の検査を行う検査実行部と、を備える。第２学習実行部は、学習データのうち、ラベル不正確データについては予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与した状態で第２の学習に使用する。【選択図】図１
2020085583.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いて検査対象物の検査を行う検査装置であって、
ラベル付きデータの集合である学習データをトレーニングデータとバリデーションデータとに区分し、前記トレーニングデータを用いて前記ニューラルネットワークの第１の学習を実行するとともに、前記第１の学習後の前記ニューラルネットワークを用いて前記バリデーションデータの検証を実行することによって前記バリデーションデータのうちでラベルが不正確であるラベル不正確データを抽出する第１学習実行部と、
前記学習データを用いて前記ニューラルネットワークの第２の学習を実行する第２学習実行部と、
前記第２の学習後の前記ニューラルネットワークを用いて前記検査対象物の検査を行う検査実行部と、
を備え、
前記第２学習実行部は、前記学習データのうち、前記ラベル不正確データについては予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与した状態で前記第２の学習に使用する、検査装置。
【請求項２】
請求項１に記載の検査装置であって、
前記第１学習実行部は、前記学習データの前記トレーニングデータと前記バリデーションデータの区分を変更して前記第１の学習と前記検証とを実行するクロスバリデーション処理によって、前記学習データを構成する各データについて前記ラベル不正確データに該当するか否かを決定する、検査装置。
【請求項３】
請求項１又は２に記載の検査装置であって、
前記第１学習実行部は、前記第１の学習後の前記ニューラルネットワークを用いた前記バリデーションデータの検証の結果から前記バリデーションデータのラベルの不正確度を推定し、前記不正確度が高い順に前記バリデーションデータを優先して前記ラベル不正確データとして抽出する、検査装置。
【請求項４】
ニューラルネットワークを用いて検査対象物の検査を行う検査方法であって、
ラベル付きデータの集合である学習データからトレーニングデータとバリデーションデータとを抽出し、前記トレーニングデータを用いて前記ニューラルネットワークの第１の学習を実行するとともに、前記第１の学習後の前記ニューラルネットワークを用いて前記バリデーションデータの検証を実行することによって前記バリデーションデータのうちでラベルが不正確であるラベル不正確データを抽出する第１学習実行工程と、
前記学習データを用いて前記ニューラルネットワークの第２の学習を実行する第２学習実行工程と、
前記第２の学習後の前記ニューラルネットワークを用いて前記検査対象物の検査を行う検査実行工程と、
を備え、
前記第２学習実行工程では、前記学習データのうち、前記ラベル不正確データについては予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与した状態で前記第２の学習に使用する、検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像を用いた検査対象物の検査技術に関するものである。
【背景技術】
【０００２】
特許文献１には、ニューラルネットワークを用いて画像を用いた検査対象物の検査を実行する技術が開示されている。このような検査を実行する前には、検査員の目視による検査結果を正解ラベルとして付与した学習データを用いて、ニューラルネットワークの学習が予め実行される。正解ラベルは、例えば、検査対象物が良品であるか不良品であるか示すラベルである。十分な精度で画像による検査を実行させるようにするには、正しいラベル付きの学習データを大量にニューラルネットワークに与えることが重要となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１９１１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、検査員がラベル付けした学習データには、しばしばラベルが不正確なデータが存在する。不正確なラベルが発生する原因は、単にヒューマンエラーによるものもあれば、検査員による良否判定基準のバラつきによるものもある。そこで、従来から、ニューラルネットワークの学習の際に、不正確なラベルを有する学習データの影響を低減したいという要望があった。
【課題を解決するための手段】
【０００５】
本開示の一形態によれば、ニューラルネットワークを用いて検査対象物の検査を行う検査装置が提供される。この検査装置は、ラベル付きデータの集合である学習データをトレーニングデータとバリデーションデータとに区分し、前記トレーニングデータを用いて前記ニューラルネットワークの第１の学習を実行するとともに、前記第１の学習後の前記ニューラルネットワークを用いて前記バリデーションデータの検証を実行することによって前記バリデーションデータのうちでラベルが不正確であるラベル不正確データを抽出する第１学習実行部と、前記学習データを用いて前記ニューラルネットワークの第２の学習を実行する第２学習実行部と、前記第２の学習後の前記ニューラルネットワークを用いて前記検査対象物の検査を行う検査実行部と、を備え、前記第２学習実行部は、前記学習データのうち、前記ラベル不正確データについては予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与した状態で前記第２の学習に使用する。
【図面の簡単な説明】
【０００６】
【図１】検査システムのブロック図。
【図２】ニューラルネットワークの構成例を示す説明図。
【図３】判定スコアの例を示す説明図。
【図４】実施形態の全体処理手順を示すフローチャート。
【図５】学習データの構成例を示す説明図。
【図６】図４のステップＳ１００の詳細手順を示すフローチャート。
【図７】クロスバリデーション処理の内容を示す説明図。
【図８】クロスバリデーション処理による検証結果とラベル修正の例を示す説明図。
【図９】図４のステップＳ２００の詳細手順を示すフローチャート。
【図１０】実施例と比較例のＲＯＣ曲線を示すグラフ。
【発明を実施するための形態】
【０００７】
A. 第１実施形態
図１は、実施形態における検査システムのブロック図である。この検査システムは、撮像装置１００と、目視検査装置２００と、データベース３００と、検査装置４００とを含んでいる。
【０００８】
撮像装置１００は、検査対象物の画像ＭＤを撮影する。目視検査装置２００は、画像ＭＤを検査員が目視で観察して検査対象物の良否を判定し、画像ＭＤに良否ラベルを付与するために使用される。良否ラベルが付与された画像は、学習データＬＤとしてデータベース３００に登録される。
【０００９】
検査装置４００は、情報取得部４１０と、学習実行部４２０と、ニューラルネットワーク４３０と、検査実行部４４０と、検査結果出力部４５０とを有する。これらの各部は、プロセッサーがコンピュータープログラムを実行することによって実現しても良く、ハードウェア回路で実現してもよい。
【００１０】
情報取得部４１０は、撮像装置１００で撮影された画像ＭＤ、又は、データベース３００に保存されている学習データＬＤを取得する。
【００１１】
学習実行部４２０は、ニューラルネットワーク４３０の学習を実行する。この際、学習実行部４２０は、情報取得部４１０を介してデータベース３００から学習データＬＤを取得する。学習実行部４２０は、第１学習実行部４２２と第２学習実行部４２４とを含む。第１学習実行部４２２と第２学習実行部４２４の処理内容については後述する。
【００１２】
検査実行部４４０は、学習済のニューラルネットワーク４３０を用いて、画像ＭＤに対する判定を実行する。この際、検査実行部４４０は、撮像装置１００で撮影された画像ＭＤを情報取得部４１０を介して取得する。
【００１３】
検査結果出力部４５０は、検査実行部４４０で得られた検査結果を出力する機能を有する。検査結果出力部４５０は、例えば表示装置によって実現できる。
【００１４】
図２は、ニューラルネットワーク４３０の構成例を示す説明図である。ニューラルネットワーク４３０は、入力層４３２と中間層４３４と全結合層４３６と出力層４３８とを有する。このニューラルネットワーク４３０は、中間層４３４が畳み込みフィルターとプーリング層とを含む畳み込みニューラルネットワークである。但し、畳み込みニューラルネットワーク以外のニューラルネットワークを用いても良い。
【００１５】
入力層４３２には、撮像装置１００で撮影された画像ＭＤが入力される。中間層４３４は、畳み込みフィルター層とプーリング層とを含む。中間層４３４は、これらのフィルター層とプーリング層を複数含んでいても良い。中間層４３４では、画像ＭＤに応じた複数の特徴量が出力されて、全結合層４３６に入力される。全結合層４３６は、複数の全結合層を含んでいても良い。出力層４３８は、３つの出力ノードを含み、これらの出力ノードから３つの判定スコアＳ１，Ｓ２，Ｓ３が出力される。３つの判定スコアＳ１〜Ｓ３は、それらの和が１．０になるように正規化されている。
【００１６】
図３は、判定スコアＳ１〜Ｓ３の例を示す説明図である。判定スコアＳ１，Ｓ２，Ｓ３は、例えば、それぞれ以下を示す値である。
（１）判定スコアＳ１：検査対象物が良品である確率。
（２）判定スコアＳ２：検査対象物が第１種の不良Ａである確率。
（３）判定スコアＳ３：検査対象物が第２種の不良Ｂである確率。
【００１７】
良品の判定スコアＳ１を基準に、判定閾値Ｔｈに従って良否の判定を行う。具体的には、良品の判定スコアＳ１が判定閾値Ｔｈを超える場合には、判定結果として良品ラベルを採用する。一方、良品の判定スコアＳ１が判定閾値Ｔｈ以下の場合には、不良の判定スコアＳ２，Ｓ３のうち、最も高いスコアをもつ不良ラベルを採用する。例えば、図３の例では、良品の判定スコアＳ１の値が０．８であり、判定閾値Ｔｈを超えているので、「良品」という結果が判定ラベルとして使用される。これらの判定スコアＳ１〜Ｓ３は例示であり、他の判定スコアを出力するようにニューラルネットワーク４３０を構成してもよい。但し、ニューラルネットワーク４３０は、「良品」である確率を示す１つの判定スコアと、１種以上の「不良」である確率をそれぞれ示す１つ以上の判定スコアとを出力するように構成されていることが好ましい。
【００１８】
図４は、実施形態の全体処理手順を示すフローチャートである。ステップＳ１００では、ニューラルネットワーク４３０に対して第１の学習を実行して、ラベルが不正確であるラベル不正確データを抽出する。ステップＳ２００では、ラベル不正確データに対してランダムにラベルを付与した状態で、ニューラルネットワーク４３０に対して第２の学習を実行する。ステップＳ３００では、第２の学習を実行した後のニューラルネットワーク４３０を用いて検査対象物の検査を実行する。ステップＳ１００とステップＳ２００の詳細手順については後述する。
【００１９】
図５は、学習データＬＤの構成例を示す説明図である。学習データＬＤの各データは、画像ＭＤに良否ラベルＬＢが付与されたものである。学習データＬＤは複数のデータの集合なので、「学習データセット」とも呼ぶ。通常のニューラルネットワークの機械学習では、イテレーションとエポックによる学習が実行されることが多い。イテレーションとは、学習データＬＤの中から１バッチ分の複数のデータを抽出し、その１バッチ分のデータで学習を実行することを意味する。エポックとは、イテレーションの繰り返しによる学習データＬＤの全体を使用した学習を意味する。本実施形態では、ステップＳ２００における第２の学習においてこのような学習を実行する。
【００２０】
図６は、図４のステップＳ１００の詳細手順を示すフローチャートである。ステップＳ１００の処理は、第１学習実行部４２２によって実行される。ステップＳ１１０では、学習データＬＤを取得する。ステップＳ１２０〜Ｓ１７０では、以下で説明するクロスバリデーション処理を実行する。クロスバリデーション処理では、学習データＬＤをトレーニングデータとバリデーションデータに区分し、その区分を変更して学習と検証とを複数回実行する。
【００２１】
図７は、クロスバリデーション処理の内容を示す説明図である。この例では、学習データＬＤの全体が３つのサブデータセットＤＳ１〜ＤＳ３に区分される。１回目の処理では、１番目と２番目のサブデータセットＤＳ１，ＤＳ２をトレーニングデータとして使用してニューラルネットワーク４３０の学習を実行する。トレーニングデータを用いた学習を「第１の学習」と呼ぶ。第１の学習が終了すると、３番目のサブデータセットＤＳ３をバリデーションデータとして使用して学習済のニューラルネットワーク４３０の検証を実行する。この検証により、バリデーションデータＤＳ３が、ニューラルネットワーク４３０を用いた判定結果と元の判定ラベルとが一致するデータＤＳ３ａと、一致しないデータＤＳ３ｂとに分類される。判定結果が一致しないデータＤＳ３ｂは、ラベルが不正確であるラベル不正確データとして抽出される。
【００２２】
クロスバリデーションの２回目の処理では、１番目と３番目のサブデータセットＤＳ１，ＤＳ３をトレーニングデータとして使用してニューラルネットワーク４３０の第１の学習を実行する。この第１の学習は、１回目の処理で学習されたものに対してでは無く、初期化されたニューラルネットワーク４３０に対して実行される。その後、２番目のサブデータセットＤＳ２をバリデーションデータとして使用して学習済のニューラルネットワーク４３０の検証を実行する。この検証の結果、バリデーションデータＤＳ２が、ニューラルネットワーク４３０を用いた判定結果と元の判定ラベルとが一致するデータＤＳ２ａと、一致しないデータＤＳ２ｂとに分類される。判定結果が一致しないデータＤＳ２ｂは、ラベルが不正確であるラベル不正確データとして抽出される。
【００２３】
３回目の処理では、２番目と３番目のサブデータセットＤＳ２，ＤＳ３をトレーニングデータとして使用してニューラルネットワーク４３０の学習を実行し、１番目のサブデータセットＤＳ１をバリデーションデータとして使用して学習済のニューラルネットワーク４３０の検証を実行する。この検証の結果、バリデーションデータＤＳ１が、ニューラルネットワーク４３０を用いた判定結果と元の判定ラベルとが一致するデータＤＳ１ａと、一致しないデータＤＳ１ｂとに分類される。判定結果が一致しないデータＤＳ１ｂは、ラベルが不正確であるラベル不正確データとして抽出される。
【００２４】
このクロスバリデーション処理が終了すると、図７の下部に示すように、元の学習データＬＤが、ラベルが正確であるラベル正確データＬＤａと、ラベルが不正確であるラベル不正確データＬＤｂに分類される。なお、クロスバリデーション処理における学習データＬＤの区分数は３に限らず、２以上の任意の整数に設定可能である。
【００２５】
上述のようなクロスバリデーション処理を行わずに、学習データＬＤの一部をトレーニングデータとして使用し、他の一部をバリデーションデータとして使用してラベル不正確データを抽出するようにしてもよい。但し、クロスバリデーション処理を行うようにすれば、学習データＬＤを構成する各データについてラベル不正確データに該当するか否かを決定することが可能である。
【００２６】
図６のステップＳ１２０〜Ｓ１７０は、クロスバリデーション処理の詳細手順である。まず、ステップＳ１２０では、学習データＬＤをトレーニングデータとバリデーションデータに区分する。ステップＳ１３０では、ニューラルネットワーク４３０を初期化する。ステップＳ１４０では、トレーニングデータを用いて第１の学習を実行する。ステップＳ１５０では、バリデーションデータを用いて検証を実行することによって、ラベル不正確データを抽出する。ステップＳ１６０では、クロスバリデーション処理が終了したか否かを判定し、終了していなければステップＳ１７０に進み、トレーニングデータとバリデーションデータの区分を変更してステップＳ１３０〜Ｓ１５０を再度実行する。クロスバリデーション処理が終了した場合には，ステップＳ１６０からステップＳ１８０に進む。
【００２７】
ステップＳ１８０では、クロスバリデーション処理で抽出されたラベル不正確データＬＤｂのうちの一部を選択してラベル不正確データを絞り込み、ステップＳ１９０では、絞り込まれたラベル不正確データのラベルを修正する。
【００２８】
図８は、クロスバリデーション処理による検証結果とラベル修正の例を示す説明図である。図８の上段には、元の学習データＬＤについて、４つの画像Ｄ１〜Ｄ４とその良否ラベルの例が描かれている。第１の画像Ｄ１の良否ラベルは「良品」であり、第２の画像Ｄ２の良否ラベルは「不良Ａ」、第３の画像Ｄ３の良否ラベルは「不良Ｂ」、第４の画像Ｄ４の良否ラベルは「良品」である。図８には、元の学習データの一部として、良否ラベルに対応する良否ラベルスコア値Ｓrefも描かれている。良否ラベルスコア値Ｓrefは、良否ラベルが「良品」である場合には１．０に設定され、良否ラベルが「良品」でない場合には０に設定される値である。後述するように、この良否ラベルスコア値Ｓrefは、第１学習実行部４２２によって設定され、ステップＳ１８０でのラベル不正確データの絞り込み処理において利用される。
【００２９】
図８の中段には、４つの画像Ｄ１〜Ｄ４をバリデーションデータとして用いた検証によって得られた判定ラベル及び判定スコアＳ１〜Ｓ３と、後述するラベル不正確度Ｆと、一致／不一致の判定結果とが描かれている。第１の画像Ｄ１では、検査対象物が良品である確率を示す第１の判定スコアＳ１が０．９であり、図３で説明した判定閾値Ｔｈ以上なので判定ラベルは「良品」となる。第２の画像Ｄ２の判定ラベルも「良品」となり、第３の画像Ｄ３の判定ラベルは「不良Ｂ」、第４の画像Ｄ４の判定ラベルは「不良Ａ」となる。検証結果の最下段には、更に、検証で得られた判定ラベルと元の良否ラベルとの一致／不一致が示されている。検証で得られた判定ラベルと元のラベルとが不一致である画像Ｄ２，Ｄ４のデータは、図６のステップＳ１５０において、ラベルが不正確であるラベル不正確データとして抽出される。
【００３０】
図８に示したラベル不正確度Ｆは、図６のステップＳ１８０における絞り込み処理において利用することができる。絞り込み処理としては、例えば、ラベル不正確度Ｆを用いた絞り込み処理と、目視による絞り込み処理のうちの一方を利用することが可能である。
【００３１】
＜ラベル不正確度Ｆを用いた絞り込み処理＞
ラベル不正確度Ｆは、元の良否ラベルが不正確である程度を示す値であり、例えば次式で算出される。
Ｆ＝｜Ｓref −Ｓ１｜    …（１）
ここで、Ｓrefは元の学習データの良否ラベルを表す良否ラベルスコアであり、Ｓ１は検査対象物が良品である確率を示す判定スコアである。図８に示したように、一致判定が「不一致」である２つの画像Ｄ２，Ｄ４のうち、画像Ｄ２のラベル不正確度Ｆは０．８であり、画像Ｄ４のラベル不正確度Ｆは０．６である。この例では、画像Ｄ２の方が画像Ｄ４よりも元の良否ラベルの不正確度が高い。
【００３２】
ラベル不正確度Ｆを用いたラベル不正確データの絞り込み処理では、ラベル不正確度Ｆが高い順に優先してラベル不正確データを選択してその絞り込みを行う。具体的には、例えば、ラベル不正確度Ｆが予め定められた閾値よりも高いラベル不正確データを選択することによってラベル不正確データを絞り込むことができる。或いは、ラベル不正確度Ｆが高い順に予め設定された個数のラベル不正確データを選択することによってラベル不正確データを絞り込むようにしてもよい。こうすれば、ラベルの不正確度の高いデータをラベル不正確データとして抽出できるので、不正確なラベルを有する学習データの影響をより効率的に低減できる。
【００３３】
図８の最下段に示したラベルの修正例では、ラベル不正確度Ｆがより高い画像Ｄ２の良否ラベルが、「不良Ａ」から「不正確」に修正されている。また、ラベル不正確度Ｆがより低い画像Ｄ４の良否ラベルが、「良品」から「不良Ａ」に修正されている。後者の修正後のラベル「不良Ａ」は、検証において第２学習実行部４２４によって得られた判定ラベルである。良否ラベルが「不正確」とされたデータは、図６のステップＳ１８０においてラベル不正確データとして選択されたデータであることを示している。なお、「不正確」という良否ラベルを使用する代わりに、フラグなどの他のデータを使用してラベル不正確データとラベル正確データとを区別するようにしてもよい。
【００３４】
＜目視による絞り込み処理＞
目視による絞り込み処理では、検証で得られた判定ラベルと元の良否ラベルとが不一致である画像を目視で再確認することによって、ラベル不正確データを絞り込む。この際、明らかに元の良否ラベルに誤りのあるデータについては検証結果で得られた判定ラベルに修正し、良否ラベルに誤りがあるか否かの判定が難しいデータについてはラベルを「不正確」に修正するようにしてもよい。この処理では、目視で確認しながらラベルの不正確度の高いデータをラベル不正確データとして抽出できる。
【００３５】
なお、図６のステップＳ１８０を省略して、ステップＳ１５０で抽出されたラベル不正確データをそのままステップＳ１９０におけるラベル修正の対象としてもよい。この場合には、ステップＳ１５０で抽出された全てのラベル不正確データについて、元の良否ラベルが「不正確」に修正される。こうしてステップＳ１００の処理が終了すると、図４のステップＳ２００の処理が実行される。
【００３６】
図９は、図４のステップＳ２００の詳細手順を示すフローチャートである。ステップＳ２００の処理は、第２学習実行部４２４によって実行される。ステップＳ２１０では、ニューラルネットワーク４３０を初期化する。但し、この初期化を省略して、第１の学習で学習済のニューラルネットワーク４３０を用いて第２の学習を行っても良い。
【００３７】
ステップＳ２２０では、第１の学習においてラベルが修正された学習データＬＤから、１バッチ分に相当する複数のデータを取得する。１バッチ分のデータを取得する際には、良否ラベルが「不正確」であるラベル不正確データを、予め設定した選択割合で選択することが好ましい。ステップＳ２３０では、１バッチ分のデータのうちのラベル不正確データに対して、予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与する。本実施形態では、ランダムに付与するラベルとして、本来使用すべき複数の良否ラベルである「良品」、「不良Ａ」、「不良Ｂ」のうちの一つがランダムに選択される。ステップＳ２４０では、１バッチ分の学習データを使用して第２の学習を実行する。ステップＳ２５０では、学習が終了したか否かを判定し、終了していなければステップＳ２１０以降の処理を繰り返す。例えば、学習データＬＤの全体を使用した１エポックの学習が、予め定められたエポック数だけ実行された場合に、学習が終了したものと判定される。
【００３８】
このように、第２の学習において、ラベル不正確データに対してランダムにラベルを付与することによって、学習時に意図的に学習データにノイズを加えることができ、ニューラルネットワーク４３０を正則化してその判定精度を向上させることが可能である。第２の学習では、学習データＬＤの全体を使用した１エポックの学習を、数十から数百エポック以上実行することによってニューラルネットワーク４３０の判定精度を高めることが好ましい。
【００３９】
こうしてステップＳ２００の処理が終了すると、図４のステップＳ３００において、学習済のニューラルネットワーク４３０を使用して、検査実行部４４０が検査対象物の検査を実行する。
【００４０】
図１０は、実施例と比較例のＲＯＣ曲線を示すグラフである。図１０の横軸は見逃し率であり、縦軸は誤検出率である。見逃し率は、元の良否ラベルが「良品」でないデータを「良品」と誤判定した割合である。誤検出率は、元の良否ラベルが「良品」であるデータを「不良Ａ」または「不良Ｂ」と誤判定した割合である。図１０の複数の点は、図３の判定閾値Ｔｈが異なる場合の値を示している。判定閾値Ｔｈが小さくなると、良品と判定される割合が増加し、不良と判定される割合が減少する。従って、判定閾値Ｔｈが小さいほど誤検出率は低下するが、見逃し率が増大する。
【００４１】
実施例のＲＯＣ曲線は、上述した実施形態に従って学習を行ったニューラルネットワーク４３０を用いて、実際の検査データを使用して精度評価を行った結果である。比較例のＲＯＣ曲線は、元の学習データＬＤをそのまま用いて学習を行ったニューラルネットワーク４３０を用いて、実施例と同じ検査データを使用して精度評価を行った場合の結果である。この結果により、ラベル不正確データにランダムにラベルを適用することによって、ニューラルネットワーク４３０の判定精度が向上することが確認できた。
【００４２】
このように、上記実施形態では、学習データＬＤのうちのラベル不正確データについては、ランダムにラベルを付与した状態でニューラルネットワーク４３０の学習を実行するので、学習データＬＤの中に不正確なラベルを有するデータが存在していても、その影響を低減してより正しい検査を実行することが可能となる。
【００４３】
B. 他の実施形態
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態（aspect）によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【００４４】
（１）本開示の第１の形態によれば、ニューラルネットワークを用いて検査対象物の検査を行う検査装置が提供される。この検査装置は、ラベル付きデータの集合である学習データをトレーニングデータとバリデーションデータとに区分し、前記トレーニングデータを用いて前記ニューラルネットワークの第１の学習を実行するとともに、前記第１の学習後の前記ニューラルネットワークを用いて前記バリデーションデータの検証を実行することによって前記バリデーションデータのうちでラベルが不正確であるラベル不正確データを抽出する第１学習実行部と、前記学習データを用いて前記ニューラルネットワークの第２の学習を実行する第２学習実行部と、前記第２の学習後の前記ニューラルネットワークを用いて前記検査対象物の検査を行う検査実行部と、を備え、前記第２学習実行部は、前記学習データのうち、前記ラベル不正確データについては予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与した状態で前記第２の学習に使用する。
この検査装置によれば、学習データのうちのラベル不正確データについてはランダムにラベルを付与した状態でニューラルネットワークの学習を実行するので、不正確なラベルを有する学習データが存在していても、その影響を低減してより正しい検査を実行することが可能となる。
【００４５】
（２）上記検査装置において、前記第１学習実行部は、前記学習データの前記トレーニングデータと前記バリデーションデータの区分を変更して前記第１の学習と前記検証とを実行するクロスバリデーション処理によって、前記学習データを構成する各データについて前記ラベル不正確データに該当するか否かを決定するものとしてもよい。
この検査装置によれば、学習データを構成する各データについてラベル不正確データか否かを決定するので、不正確なラベルを有する学習データの影響を低減してより正しい検査を実行することが可能となる。
【００４６】
（３）上記検査装置において、前記第１学習実行部は、前記第１の学習後の前記ニューラルネットワークを用いた前記バリデーションデータの検証の結果から前記バリデーションデータのラベルの不正確度を推定し、前記不正確度が高い順に前記バリデーションデータを優先して前記ラベル不正確データとして抽出するものとしてもよい。
この検査装置によれば、ラベルの不正確度の高いデータをラベル不正確データとして抽出できるので、不正確なラベルを有する学習データの影響をより効率的に低減できる。
【００４７】
（４）本開示の第２の形態によれば、ニューラルネットワークを用いて検査対象物の検査を行う検査方法が提供される。この検査方法は、ラベル付きデータの集合である学習データからトレーニングデータとバリデーションデータとを抽出し、前記トレーニングデータを用いて前記ニューラルネットワークの第１の学習を実行するとともに、前記第１の学習後の前記ニューラルネットワークを用いて前記バリデーションデータの検証を実行することによって前記バリデーションデータのうちでラベルが不正確であるラベル不正確データを抽出する第１学習実行工程と、前記学習データを用いて前記ニューラルネットワークの第２の学習を実行する第２学習実行工程と、前記第２の学習後の前記ニューラルネットワークを用いて前記検査対象物の検査を行う検査実行工程と、を備え、前記第２学習実行工程では、前記学習データのうち、前記ラベル不正確データについては予め定められた複数のラベルの中から１つのラベルをランダムに選択して付与した状態で前記第２の学習に使用する。
この検査方法によれば、学習データのうちのラベル不正確データについてはランダムにラベルを付与した状態でニューラルネットワークの学習を実行するので、学習データの中に不正確なラベルを有する学習データが存在していても、その影響を低減してより正しい検査を実行することが可能となる。
【符号の説明】
【００４８】
１００…撮像装置、２００…目視検査装置、３００…データベース、４００…検査装置、４１０…情報取得部、４２０…学習実行部、４２２…第１学習実行部、４２４…第２学習実行部、４３０…ニューラルネットワーク、４３２…入力層、４３４…中間層、４３６…全結合層、４３８…出力層、４４０…検査実行部、４５０…検査結果出力部
【図１】
2020085583.tif 000003
【図２】
2020085583.tif 000004
【図３】
2020085583.tif 000005
【図４】
2020085583.tif 000006
【図５】
2020085583.tif 000007
【図６】
2020085583.tif 000008
【図７】
2020085583.tif 000009
【図８】
2020085583.tif 000010
【図９】
2020085583.tif 000011
【図１０】
2020085583.tif 000012