以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、本発明の基本的な構成の一例について説明する。再学習又は追加学習により識別器を更新した場合、次のような問題が生じ得る。すなわち、収集した追加のデータにより識別器の再学習又は追加学習を実施することで、更新された識別器は、追加のデータにより学習した未知のケースに対する識別を実施することができるようになる。しかしながら、学習するデータの件数が増えると、過学習等が生じてしまうことにより、対象のデータに表れる特徴を識別器により識別する性能が悪化してしまう可能性がある。
そこで、本発明の一例では、評価用データ及び正解データの組み合わせによりそれぞれ構成される複数件の評価用データセットを取得する。次に、各件の評価用データセットについて、再学習又は追加学習前の第1識別器に評価用データを入力し、当該第1識別器から得られる出力に基づいて評価用データに含まれる特徴を判定した結果と正解データの示す正解とを照合することで、当該第1識別器の判定性能を評価する。また、各件の評価用データセットについて、再学習又は追加学習後の第2識別器に評価用データを入力し、当該第2識別器から得られる出力に基づいて評価用データに含まれる特徴を判定した結果と正解データの示す正解とを照合することで、当該第2識別器の判定性能を評価する。そして、第1識別器及び第2識別器に対する評価の結果に基づいて、第2識別器の判定性能が第1識別器と比べて悪化しているか否かを判定する。
これにより、本発明の一例では、識別器の再学習又は追加学習を実施した場合に、過学習が生じてしまう等の何らかの理由で、構築された識別器(第2識別器)の性能が、再学習又は追加学習前と比べて悪化したか否かを監視することができる。したがって、本発明の一例では、再学習又は追加学習により識別器の性能が悪化してしまった場合でも、そのことを可視化することができるため、性能の悪化した識別器を利用しないようにすることで、判定の信頼性が損なわれてしまうのを防止することができる。
次に、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明を製品Rの外観検査に適用した場面の一例を模式的に例示する。ただし、本発明の適用範囲は、以下で例示する外観検査の例に限られる訳ではない。本発明は、再学習又は追加学習により識別器を更新するあらゆる場面に適用可能である。
図1で例示される検査システム100は、ネットワークを介して接続される識別器評価装置1、学習装置2、及び検査装置3を備えており、製品の良否を検査するように構成される。識別器評価装置1、学習装置2、及び検査装置3の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
なお、図1の例では、識別器評価装置1、学習装置2、及び検査装置3は、別個のコンピュータである。しかしながら、検査システム100の構成は、このような例に限定されなくてもよい。識別器評価装置1、学習装置2、及び検査装置3のうちの少なくともいずれかのペアは一体のコンピュータであってもよい。また、識別器評価装置1、学習装置2、及び検査装置3はそれぞれ複数台のコンピュータにより構成されてもよい。
本実施形態に係る学習装置2は、検査装置3で利用する第1識別器5及び第2識別器6を構築するように構成されたコンピュータである。具体的には、学習装置2は、製品の良否を学習するための画像データ222で構成された第1学習データ221を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。また、学習装置2は、第1学習データ221及び製品の良否を学習するための追加の画像データ227で構成された第2学習データ226を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。
これにより、学習装置2は、検査装置3で利用する第1識別器5及び第2識別器6を構築することができる。検査装置3は、例えば、ネットワークを介して、学習装置2により構築された学習済みの第1識別器5及び第2識別器6を取得することができる。なお、第1識別器5及び第2識別器6の間の関係では、第1識別器5は、再学習又は追加学習前の識別器であり、第2識別器6は、再学習又は追加学習後の識別器である。ただし、再学習又は追加学習「前」及び「後」は、第1識別器5及び第2識別器6の間の相対的な関係を示しているに過ぎない。第1識別器5は、第2識別器6以外の他の識別器との関係では、再学習又は追加学習後の識別器であってもよい。また、第2識別器6は、第1識別器5以外の他の識別器との関係では、再学習又は追加学習前の識別器であってもよい。
一方、本実施形態に係る識別器評価装置1は、学習装置2により構築される第2識別器6の性能を監視するように構成されたコンピュータである。具体的には、識別器評価装置1は、製品の写る評価用画像データ122、及び評価用画像データ122に写る製品の良否の判定に対する正解を示す正解データ123の組み合わせによりそれぞれ構成される複数件の評価用データセット121を取得する。
続いて、識別器評価装置1は、各件の評価用データセット121について、評価用画像データ122を第1識別器5に入力し、第1識別器5から得られる出力に基づいて評価用画像データ122に写る製品の良否を判定した結果と正解データ123の示す正解とを照合することで、第1識別器5の判定性能を評価する。また、識別器評価装置1は、各件の評価用データセット121について、評価用画像データ122を第2識別器6に入力し、第2識別器6から得られる出力に基づいて評価用画像データ122に写る製品の良否を判定した結果と正解データ123の示す正解とを照合することで、第2識別器6の判定性能を評価する。
そして、識別器評価装置1は、第1識別器5及び第2識別器6に対する評価の結果に基づいて、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定する。これにより、識別器評価装置1は、学習装置2により構築される第2識別器6の性能を監視することができる。識別器評価装置1は、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定した結果を適宜出力する。
また、本実施形態に係る検査装置3は、製品Rの良否を検査するように構成されたコンピュータである。具体的には、検査装置3は、検査の対象となる製品Rの写る対象画像データ321を取得する。本実施形態では、検査装置3は、カメラ41に接続されており、このカメラ41により製品Rを撮影することで、対象画像データ321を取得する。
そして、検査装置3は、第1識別器5又は第2識別器6を用いて、対象画像データ321に写る製品Rの良否を判定する。すなわち、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定された場合には、検査装置3は、第1識別器5を利用して対象画像データ321に写る製品Rの良否を判定する。一方、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定された場合には、検査装置3は、第2識別器6を利用して対象画像データ321に写る製品Rの良否を判定する。
以上のとおり、本実施形態では、学習装置2は、第1識別器5の機械学習に利用した第1学習データ221に新たな画像データ227を追加することで得られた第2学習データ226を利用した機械学習(再学習又は追加学習)を実施する。これによって、学習装置2は、第1識別器5では製品Rの良否を判定不能なケースに対応可能な第2識別器6を構築することができる。
また、本実施形態では、識別器評価装置1は、複数件の評価用データセット121を利用して、第1識別器5及び第2識別器6の判定性能を評価し、その評価結果を比較することで、第2識別器6の判定性能が第1識別器5と比べて悪化したか否かを監視することができる。これにより、再学習又は追加学習により構築された第2識別器6の性能が第1識別器5と比べて悪化してしまった場合に、性能の悪化した第2識別器6を検査装置3において利用しないようにすることができる。したがって、本実施形態によれば、製品Rの良否の判定の信頼性が損なわれてしまうのを防止することができる。
なお、外観検査の対象となる製品Rは、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品Rは、例えば、電子部品、自動車部品等の製造ラインで搬送される物であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等である。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等である。また、良否の判定は、製品Rに欠陥があるか否かを単に判定することであってもよいし、製品Rに欠陥がある否かを判定することに加えて、その欠陥の種類を識別することを含んでもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、埃、バリ、色ムラ等である。
§2 構成例
[ハードウェア構成]
<識別器評価装置>
次に、図2を用いて、本実施形態に係る識別器評価装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る識別器評価装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る識別器評価装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図2では、通信インタフェースを「通信I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、評価プログラム81、複数件の評価用データセット121、第1学習結果データ224、第2学習結果データ229等の各種情報を記憶する。
評価プログラム81は、第1識別器5及び第2識別器6の判定性能を評価する後述の情報処理(図9)を識別器評価装置1に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。複数件の評価用データセット121は、第1識別器5及び第2識別器6の判定性能を評価するのに利用される。複数件の評価用データセット121はそれぞれ、製品の写る評価用画像データ122、及び評価用画像データ122に写る製品の良否の判定に対する正解を示す正解データ123の組み合わせにより構成される。第1学習結果データ224は、学習済みの第1識別器5の設定を行うためのデータである。第2学習結果データ229は、学習済みの第2識別器6の設定を行うためのデータである。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。識別器評価装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置2、検査装置3)と行うことができる。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を利用することで、識別器評価装置1を操作することができる。
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記評価プログラム81、複数件の評価用データセット121、第1学習結果データ224、及び第2学習結果データ229の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。識別器評価装置1は、この記憶媒体91から、上記評価プログラム81、複数件の評価用データセット121、第1学習結果データ224、及び第2学習結果データ229の少なくともいずれかを取得してもよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、識別器評価装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。識別器評価装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、識別器評価装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
<学習装置>
次に、図3を用いて、本実施形態に係る学習装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係る学習装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る学習装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、及びドライブ26が電気的に接続されたコンピュータである。なお、図3では、図2と同様に、通信インタフェースを「通信I/F」と記載している。
学習装置2の制御部21~ドライブ26はそれぞれ、上記識別器評価装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、学習プログラム82、製品の良否を学習するための画像データ222、製品の良否を学習するための追加の画像データ227、第1学習結果データ224、第2学習結果データ229等の各種情報を記憶する。
学習プログラム82は、第1識別器5及び第2識別器6それぞれを構築する後述の機械学習の情報処理(図8)を学習装置2に実行させ、その結果として第1学習結果データ224及び第2学習結果データ229を生成させるためのプログラムである。学習プログラム82は、その情報処理の一連の命令を含む。画像データ222は、第1識別器5の機械学習に利用される第1学習データ221を構成する。第1学習データ221及び追加の画像データ227は、第2識別器6の機械学習に利用される第2学習データ226を構成する。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、識別器評価装置1、検査装置3)と行うことができる。
入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置25は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置24及び出力装置25を利用することで、学習装置2を操作することができる。
ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記学習プログラム82、画像データ222、及び追加の画像データ227のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、学習装置2は、記憶媒体92から、上記学習プログラム82、画像データ222、及び追加の画像データ227のうちの少なくともいずれかを取得してもよい。
なお、学習装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、入力装置24、出力装置25及びドライブ26の少なくともいずれかは省略されてもよい。学習装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
<検査装置>
次に、図4を用いて、本実施形態に係る検査装置3のハードウェア構成の一例について説明する。図4は、本実施形態に係る検査装置3のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係る検査装置3は、制御部31、記憶部32、通信インタフェース33、外部インタフェース34、入力装置35、出力装置36、及びドライブ37が電気的に接続されたコンピュータである。なお、図4では、通信インタフェース及び外部インタフェースをそれぞれ「通信I/F」及び「外部I/F」と記載している。
検査装置3の制御部31~通信インタフェース33及び入力装置35~ドライブ37はそれぞれ、上記識別器評価装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。すなわち、制御部31は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部32は、検査プログラム83、第1学習結果データ224、第2学習結果データ229等の各種情報を記憶する。
検査プログラム83は、第1識別器5又は第2識別器6を利用して、対象画像データ321に写る製品Rの良否を判定する後述の情報処理(図10)を検査装置3に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。詳細は後述する。
通信インタフェース33は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。検査装置3は、この通信インタフェース33を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、識別器評価装置1、学習装置2)と行うことができる。
外部インタフェース34は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース34の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、検査装置3は、外部インタフェース34を介して、カメラ41に接続される。
カメラ41は、製品Rを撮影することで、対象画像データ321を取得するのに利用される。カメラ41の種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラ41には、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。また、カメラ41は、製品Rが搬送される生産ラインの近傍に配置されてよい。なお、カメラ41が通信インタフェースを備える場合、検査装置3は、外部インタフェース34ではなく、通信インタフェース33を介して、カメラ41に接続されてもよい。
入力装置35は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置36は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置35及び出力装置36を利用することで、検査装置3を操作することができる。
ドライブ37は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体93に記憶されたプログラムを読み込むためのドライブ装置である。上記検査プログラム83、第1学習結果データ224、及び第2学習結果データ229のうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、検査装置3は、記憶媒体93から、上記検査プログラム83、第1学習結果データ224、及び第2学習結果データ229のうちの少なくともいずれかを取得してもよい。
なお、検査装置3の具体的なハードウェア構成に関して、上記識別器評価装置1及び学習装置2と同様に、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、外部インタフェース34、入力装置35、出力装置36及びドライブ37の少なくともいずれかは省略されてもよい。検査装置3は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検査装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のデスクトップPC、ノートPC、タブレットPC、スマートフォンを含む携帯電話等が用いられてよい。
[ソフトウェア構成]
<識別器評価装置>
次に、図5を用いて、本実施形態に係る識別器評価装置1のソフトウェア構成の一例を説明する。図5は、本実施形態に係る識別器評価装置1のソフトウェア構成の一例を模式的に例示する。
識別器評価装置1の制御部11は、記憶部12に記憶された評価プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された評価プログラム81をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図5に示されるとおり、本実施形態に係る識別器評価装置1は、評価データ取得部111、第1評価部112、第2評価部113、性能判定部114、及び出力部115をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部11(CPU)により実現される。
評価データ取得部111は、製品の写る評価用画像データ122、及び評価用画像データ122に写る前記製品の良否の判定に対する正解を示す正解データ123の組み合わせによりそれぞれ構成される複数件の評価用データセット121を取得する。
第1評価部112は、第1学習データ221を利用した機械学習により構築された第1識別器5を含んでいる。第1評価部112は、各件の評価用データセット121について、評価用画像データ122を第1識別器5に入力し、第1識別器5の演算処理を実行することで、第1識別器5から出力値を取得する。第1識別器5から得られる出力値は、入力した評価用画像データ122に写る製品の良否を判定した結果に対応する。そこで、第1評価部112は、第1識別器5から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果と入力した評価用画像データ122に関連付けられた正解データ123により示される正解とを照合する。これにより、第1評価部112は、第1識別器5の判定性能を評価する。
第2評価部113は、第2学習データ226を利用した機械学習により構築された第2識別器6を含んでいる。第2評価部113は、各件の評価用データセット121について、評価用画像データ122を第2識別器6に入力し、第2識別器6の演算処理を実行することで、第2識別器6から出力値を取得する。第2識別器6から得られる出力値は、入力した評価用画像データ122に写る製品の良否を判定した結果に対応する。そこで、第2評価部113は、第2識別器6から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果と入力した評価用画像データ122に関連付けられた正解データ123により示される正解とを照合する。これにより、第2評価部113は、第2識別器6の判定性能を評価する。
性能判定部114は、第1識別器5及び第2識別器6に対する判定性能の評価の結果に基づいて、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否か、換言すると、第2識別器6の判定性能が第1識別器5の判定性能よりも低いか否かを判定する。そして、出力部115は、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定した結果を出力する。
(識別器)
次に、各識別器(5、6)の構成について説明する。図5に示されるとおり、第1識別器5は、ニューラルネットワークにより構成される。具体的には、第1識別器5は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されており、入力層51、中間層(隠れ層)52、及び出力層53を備えている。
なお、図5の例では、第1識別器5を構成するニューラルネットワークは、1層の中間層52を備えており、入力層51の出力が中間層52に入力され、中間層52の出力が出力層53に入力されている。しかしながら、中間層52の数は、1層に限られなくてもよい。第1識別器5は、2層以上の中間層52を備えてもよい。
各層51~53は、1又は複数のニューロンを備えている。例えば、入力層51のニューロンの数は、入力される画像データ(評価用画像データ122、対象画像データ321)に応じて設定されてよい。中間層52のニューロンの数は、実施の形態に応じて適宜設定されてよい。また、出力層53のニューロンの数は、良否の判定結果の出力形式に応じて設定されてよい。
隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。図5の例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。第1評価部112は、第1識別器5の入力層51に評価用画像データ122を入力し、ニューラルネットワークの演算処理として、各層に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、第1評価部112は、入力した評価用画像データ122に写る製品の良否を判定した結果に対応する出力値を出力層53から取得することができる。
また、図5に示されるとおり、第2識別器6も、第1識別器5と同様に、ニューラルネットワークにより構成されている。第2識別器6は、第1識別器5と同様に構成されてよい。すなわち、入力層61、中間層(隠れ層)62、及び出力層63は、第1識別器5の各層51~53と同様に構成されてよい。ただし、第2識別器6のニューラルネットワークの構造は、第1識別器5と一致していなくてもよい。例えば、第2識別器6を構成するニューラルネットワークの層の数、各層におけるニューロンの個数、及びニューロン同士の結合関係は、第1識別器5を構成するニューラルネットワークと異なっていてもよい。
第2評価部113は、第2識別器6の入力層61に評価用画像データ122を入力し、ニューラルネットワークの演算処理として、各層に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、第2評価部113は、入力した評価用画像データ122に写る製品Rの良否を判定した結果に対応する出力値を出力層63から取得することができる。
なお、第1識別器5(ニューラルネットワーク)の構成(例えば、各ネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、第1学習結果データ224に含まれている。第1評価部112は、第1学習結果データ224を参照して第1識別器5の設定を行う。
同様に、第2識別器6(ニューラルネットワーク)の構成(例えば、各ネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、第2学習結果データ229に含まれている。第2評価部113は、第2学習結果データ229を参照して第2識別器6の設定を行う。
<学習装置>
次に、図6を用いて、本実施形態に係る学習装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係る学習装置2のソフトウェア構成の一例を模式的に例示する。
学習装置2の制御部21は、記憶部22に記憶された学習プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された学習プログラム82をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係る学習装置2は、学習データ取得部211、及び学習処理部212をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部21(CPU)により実現される。
学習データ取得部211は、製品の良否を学習するための画像データ222で構成された第1学習データ221を取得する。学習処理部212は、取得した第1学習データ221を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。
また、学習データ取得部211は、第1学習データ221及び製品の良否を学習するための追加の画像データ227で構成された第2学習データ226を取得する。学習処理部212は、取得した第2学習データ226を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。すなわち、第2識別器6は、第1識別器5との関係で、再学習又は追加学習後の識別器である。
本実施形態では、各識別器(5、6)の学習モデルは、ニューラルネットワークにより構成されている。そのため、画像データ222には、画像データ222に写る製品の良否の判定に対する正解を示す正解データ223が付与されている。追加の画像データ227には、追加の画像データ227に写る製品の良否の判定に対する正解を示す正解データ228が付与されている。すなわち、第1学習データ221は、それぞれ画像データ222及び正解データ223の組み合わせを含む複数件のデータセットにより構成される。また、第2学習データ226は、それぞれ追加の画像データ227及び正解データ228の組み合わせを含む複数件のデータセット並びに第1学習データ221により構成される。
学習処理部212は、第1学習データ221に含まれる各件のデータセットについて、画像データ222を入力層51に入力すると、入力した画像データ222に関連付けられた正解データ223に対応する出力値を出力層53から出力するように第1識別器5の機械学習を行う。これにより、学習処理部212は、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。そして、学習処理部212は、学習済みの第1識別器5の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第1学習結果データ224として記憶部22に格納する。
また、学習処理部212は、第2学習データ226に含まれる各件のデータセットについて、画像データ(222、227)を入力層61に入力すると、入力した画像データ(222、227)に関連付けられた正解データ(223、228)に対応する出力値を出力層63から出力するように第2識別器6の機械学習を行う。これにより、学習処理部212は、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。そして、学習処理部212は、学習済みの第2識別器6の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第2学習結果データ229として記憶部22に格納する。
<検査装置>
次に、図7を用いて、本実施形態に係る検査装置3のソフトウェア構成の一例について説明する。図7は、本実施形態に係る検査装置3のソフトウェア構成の一例を模式的に例示する。
検査装置3の制御部31は、記憶部32に記憶された検査プログラム83をRAMに展開する。そして、制御部31は、RAMに展開された検査プログラム83をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図7に示されるとおり、本実施形態に係る検査装置3は、対象データ取得部311、良否判定部312、及び出力部313をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部31(CPU)により実現される。
対象データ取得部311は、検査の対象となる製品Rの写る対象画像データ321を取得する。本実施形態では、対象データ取得部311は、カメラ41により製品Rを撮影することで、対象画像データ321を取得する。良否判定部312は、第1識別器5又は第2識別器6を利用して、対象画像データ321に写る製品Rの良否を判定する。出力部313は、製品Rの良否を判定した結果、すなわち、外観検査の結果を出力する。
なお、良否判定部312は、学習済みの第1識別器5及び学習済みの第2識別器6の少なくとも一方を含んでいる。第2識別器6の判定性能が第1識別器5と比べて悪化していると判定した場合には、良否判定部312は、第1識別器5を利用して、対象画像データ321に写る製品Rの良否を判定する。具体的には、良否判定部312は、第1学習結果データ224を参照して、学習済みの第1識別器5の設定を行う。次に、良否判定部312は、取得した対象画像データ321を第1識別器5に入力して、第1識別器5の演算処理を実行することで、第1識別器5から出力値を取得する。そして、良否判定部312は、第1識別器5から取得した出力値に基づいて、対象画像データ321に写る製品Rの良否を判定する。
一方、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定した場合には、良否判定部312は、第2識別器6を利用して、対象画像データ321に写る製品Rの良否を判定する。具体的には、良否判定部312は、第2学習結果データ229を参照して、学習済みの第2識別器6の設定を行う。次に、良否判定部312は、取得した対象画像データ321を第2識別器6に入力して、第2識別器6の演算処理を実行することで、第2識別器6から出力値を取得する。そして、良否判定部312は、第2識別器6から取得した出力値に基づいて、対象画像データ321に写る製品Rの良否を判定する。
<その他>
識別器評価装置1、学習装置2、及び検査装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、識別器評価装置1、学習装置2、及び検査装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、識別器評価装置1、学習装置2、及び検査装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[学習装置]
次に、図8を用いて、本実施形態に係る学習装置2の動作例について説明する。図8は、本実施形態に係る学習装置2の処理手順の一例を例示するフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。なお、学習装置2は、利用する学習データが異なる点を除き、同様の処理手順により、第1識別器5及び第2識別器6を構築することができる。以下では、まず、第1識別器5を構築する際の処理手順について説明する。
(I)第1識別器の構築
(ステップS101)
ステップS101では、制御部21は、学習データ取得部211として動作し、製品の良否を学習するための画像データ222で構成された第1学習データ221を取得する。本実施形態では、第1識別器5の学習モデルがニューラルネットワークにより構成されているため、制御部21は、それぞれ画像データ222及び正解データ223の組み合わせを含む複数件のデータセットにより構成された第1学習データ221を取得する。
第1学習データ221を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、カメラを用意し、検査対象となる製品Rと同種の製品であって、欠陥のある製品(不良品)及び欠陥のない製品(良品)それぞれを、用意したカメラにより様々な条件で撮影することで、良否の表れた製品の写る画像データ222を取得することができる。そして、得られた画像データ222に対して、その画像データ222に写る製品に表れた良否(正解)を示す正解データ223を組み合わせることで、学習用のデータセットを作成することができる。
正解データ223の具体的な内容は、各識別器(5、6)の出力形式に応じて適宜決定されてよい。各識別器(5、6)から得られる出力値が製品の良否そのもの又はその確率を示すように各識別器(5、6)を構成する場合、正解データ223の内容は、画像データ222に写る製品に表れている良否そのもの又はその確率を示すように適宜決定されてよい。また、各識別器(5、6)から得られる出力値が製品の良否のインデックスを示すように各識別器(5、6)を構成する場合、正解データ223の内容は、画像データ222に写る製品に表れている良否のインデックスを示すように適宜決定されてよい。このインデックスは、製品に欠陥がない(製品が良品である)こと、及び製品に存在する欠陥の種別にそれぞれ対応付けられてよい。この学習用のデータセットの作成を繰り返すことで、複数件のデータセットで構成された第1学習データ221を作成することができる。
この第1学習データ221の作成は、学習装置2により行われてもよい。この場合、制御部21は、オペレータによる入力装置24の操作に応じて、第1学習データ221を作成してもよい。また、制御部21は、学習プログラム82の処理により、第1学習データ221を自動的に作成してもよい。この作成処理を実行することで、本ステップS101では、制御部21は、第1学習データ221を取得することができる。
あるいは、第1学習データ221の作成は、学習装置2以外の他の情報処理装置により行われてもよい。他の情報処理装置では、第1学習データ221は、オペレータにより手動で作成されてもよいし、プログラムの処理により自動的に作成されてもよい。この場合、本ステップS101では、制御部21は、ネットワーク、記憶媒体92等を介して、他の情報処理装置により作成された第1学習データ221を取得してもよい。
第1学習データ221を構成するデータセットの件数は、特に限定されなくてもよく、例えば、第1識別器5の機械学習を実施可能な程度に適宜決定されてよい。これにより、第1学習データ221を取得すると、制御部21は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部21は、学習処理部212として動作し、ステップS101で取得した第1学習データ221を利用した機械学習を実行することで、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。本実施形態では、制御部21は、第1学習データ221を構成する各件のデータセットを用いて、画像データ222を入力層51に入力すると、正解データ223により示される正解に対応する出力値を出力層53から出力するようにニューラルネットワークの機械学習を実施する。
具体的には、まず、制御部21は、学習処理を行う対象となるニューラルネットワーク(学習前の第1識別器5)を用意する。用意するニューラルネットワークの構成、各ニューロン間の結合の重みの初期値、各ニューロンの閾値の初期値等の各パラメータは、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。他の識別器の再学習又は追加学習を行うことで第1識別器5を構成する場合、制御部21は、他の識別器の学習結果データに基づいて、学習前のニューラルネットワークを用意してもよい。
次に、制御部21は、ステップS101で取得した第1学習データ221の各件のデータセットに含まれる画像データ222を入力データとして用い、正解データ223を教師データとして用いて、ニューラルネットワークの学習処理を実行する。このニューラルネットワークの学習処理には、確率的勾配降下法等が用いられてよい。
例えば、制御部21は、画像データ222を入力層51に入力し、入力側から順に各層51~53に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、出力層53から出力値を得る。次に、制御部21は、出力層53から得た出力値と正解データ223により示される正解に対応する値との誤差を算出する。続いて、制御部21は、誤差逆伝搬(Back propagation)法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。そして、制御部21は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
第1学習データ221を構成する各件のデータセットについて、画像データ222を入力層51に入力することにより出力層53から得られる出力値が、入力した画像データ222に関連付けられた正解データ223により示される正解に対応する値と一致するまで、制御部21は、この一連の処理を繰り返す。これにより、制御部21は、画像データ222を入力すると、正解データ223により示される正解に対応する出力値を出力する学習済みのニューラルネットワーク(すなわち、第1識別器5)を構築することができる。第1識別器5の学習処理が完了すると、制御部21は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部21は、学習処理部212として動作し、機械学習により構築された第1識別器5の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第1学習結果データ224として記憶部22に格納する。これにより、制御部21は、本動作例に係る処理を終了する。
(II)第2識別器の構築
次に、第2識別器6を構築する際の処理手順について説明する。学習装置2は、利用する学習データが第1識別器5と異なる点を除き、第1識別器5と同様に第2識別器6を構築することができる。
(ステップS101)
すなわち、ステップS101では、制御部21は、学習データ取得部211として動作し、第1学習データ221及び製品の良否を学習するための追加の画像データ227で構成された第2学習データ226を取得する。本実施形態では、第2識別器6の学習モデルがニューラルネットワークにより構成されているため、制御部21は、それぞれ追加の画像データ227及び正解データ228の組み合わせを含む複数件のデータセット並びに第1学習データ221により構成された第2学習データ226を取得する。
第2学習データ226の追加の画像データ227及び正解データ228は、上記第1学習データ221と同様の方法により取得されてよい。制御部21は、上記データセットの作成処理を実行することで、第2学習データ226を取得することができる。あるいは、第2学習データ226が他の情報処理装置により作成される場合、制御部21は、ネットワーク、記憶媒体92等を介して、他の情報処理装置により作成された第2学習データ226を取得することができる。第2学習データ226を取得すると、制御部21は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部21は、学習処理部212として動作し、ステップS102で取得した第2学習データ226を利用した機械学習を実行することで、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。制御部21は、第2学習データ226を構成する各件のデータセットを用いて、画像データ(222、227)を入力層61に入力すると、正解データ(223、228)に対応する出力値を出力層63から出力するようにニューラルネットワークの機械学習を実施する。
このとき、用意するニューラルネットワーク(学習前の第2識別器6)の構成、各ニューロン間の結合の重みの初期値、各ニューロンの閾値の初期値等の各パラメータは、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、第1識別器5の再学習又は追加学習を行う場合、制御部21は、第1学習結果データ224に基づいて、学習前のニューラルネットワークを用意してもよい。
次に、制御部21は、ステップS101で取得した第2学習データ226の各件のデータセットに含まれる画像データ(222、227)を入力データとして用い、正解データ(223、228)を教師データとして用いて、ニューラルネットワークの上記学習処理を実行する。なお、第1学習結果データ224に基づいて用意した学習前のニューラルネットワークに対して追加学習のみを行う場合、制御部21は、第1学習データ221(画像データ222及び正解データ223)の機械学習を省略してもよい。これにより、制御部21は、画像データ(222、227)を入力すると、入力した画像データ(222、227)に関連付けられた正解データ(223、228)により示される正解に対応する出力値を出力する学習済みのニューラルネットワーク(すなわち、第2識別器6)を構築することができる。第2識別器6の学習処理が完了すると、制御部21は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部21は、学習処理部212として動作し、機械学習により構築された第2識別器6の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第2学習結果データ229として記憶部22に格納する。これにより、制御部21は、本動作例に係る処理を終了する。
(III)その他
なお、制御部21は、上記ステップS103の処理が完了した後、作成した第1学習結果データ224及び第2学習結果データ229を識別器評価装置1及び検査装置3に転送してもよい。また、例えば、制御部21は、作成した第1学習結果データ224及び第2学習結果データ229をNAS(Network Attached Storage)等のデータサーバに保管してもよい。この場合、識別器評価装置1及び検査装置3はそれぞれ、第1学習結果データ224及び第2学習結果データ229をこのデータサーバから取得してもよい。
[識別器評価装置]
次に、図9を用いて、本実施形態に係る識別器評価装置1の動作例について説明する。図9は、本実施形態に係る識別器評価装置1の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の識別器評価方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS201)
ステップS201では、制御部11は、評価データ取得部111として動作し、製品の写る評価用画像データ122、及び評価用画像データ122に写る前記製品の良否の判定に対する正解を示す正解データ123の組み合わせによりそれぞれ構成される複数件の評価用データセット121を取得する。
各件の評価用データセット121は、上記学習用のデータセットと同様に作成可能である。すなわち、カメラを用意し、検査対象となる製品Rと同種の製品であって、欠陥のある製品(不良品)及び欠陥のない製品(良品)それぞれを、用意したカメラにより様々な条件で撮影することで、良否の表れた製品の写る評価用画像データ122を取得することができる。そして、得られた評価用画像データ122に対して、その評価用画像データ122に写る製品に表れた良否(正解)を示す正解データ123を組み合わせることで、各件の評価用データセット121を作成することができる。
なお、正解データ123の具体的な内容は、実施の形態に応じて適宜決定されてよい。例えば、正解データ123は、各識別器(5、6)の出力値に対応するように設定されてよい。具体的に、各識別器(5、6)から得られる出力値が製品の良否そのもの又はその確率を示す場合、正解データ123は、評価用画像データ122に写る製品に表れている良否そのもの又はその確率を示すように設定されてよい。各識別器(5、6)から得られる出力値が製品の良否のインデックスを示す場合、正解データ123は、評価用画像データ122に写る製品に表れている良否のインデックスを示すように設定されてよい。
また、例えば、正解データ123の内容は、各識別器(5、6)の出力値に基づいて製品の良否を判断した結果に対応するように設定されてもよい。具体的に、各識別器(5、6)から得られる出力値が製品の良否そのもの又はその確率を示す場合、正解データ123は、評価用画像データ122に写る製品に表れている良否を示すように設定されてよい。各識別器(5、6)から得られる出力値が製品の良否のインデックスを示す場合、正解データ123は、評価用画像データ122に写る製品に欠陥がないこと、又は当該製品に存在する欠陥の種別を示すように設定されてよい。
制御部11は、上記データセットの作成処理と同様の処理を繰り返し実行することで、複数件の評価用データセット121を取得してもよい。あるいは、複数件の評価用データセット121が他の情報処理装置により作成される場合、制御部11は、ネットワーク、記憶媒体91等を介して、他の情報処理装置により作成された複数件の評価用データセット121を取得することができる。複数件の評価用データセット121を取得すると、制御部11は、次のステップS202に処理を進める。
なお、製品の良否を検査する環境における各識別器(5、6)の性能を正確に評価する観点から、各件の評価用データセット121は、製品の良否を検査する環境において取得されるのが好ましい。本実施形態では、検査装置3により製品Rの良否の検査が行われる。そのため、各件の評価用データセット121は、検査装置3を利用する環境において取得されるのが好ましい。この場合、各件の評価用データセット121のうち少なくとも評価用画像データ122は、検査装置3により取得されてもよい。例えば、検査装置3を介して評価用画像データ122を取得し、取得した評価用画像データ122に正解データ123を付与することにより、各件の評価用データセット121を作成することができる。
(ステップS202)
ステップS202では、制御部11は、第1評価部112として動作し、各件の評価用データセット121について、評価用画像データ122を第1識別器5に入力し、第1識別器5の演算処理を実行することで、第1識別器5から出力値を取得する。
具体的には、制御部11は、第1学習結果データ224を参照して、学習済みの第1識別器5の設定を行う。続いて、制御部11は、各件の評価用データセット121の評価用画像データ122を第1識別器5の入力層51に入力し、入力側から順に各層51~53に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、入力した評価用画像データ122に写る製品の良否を判定した結果に対応する出力値を第1識別器5の出力層53から取得する。
次に、制御部11は、第1識別器5から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果と入力した評価用画像データ122に関連付けられた正解データ123により示される正解とを照合する。これにより、制御部11は、第1識別器5の判定性能を評価する。
(A)判定結果と正解との照合方法
まず、第1識別器5による判定結果と正解データ123により示される正解との照合方法について説明する。判定結果と正解との照合する方法は、正解データ123の形式に応じて適宜決定されてよい。例えば、正解データ123の内容が、各識別器(5、6)の出力値に対応するように設定されている場合、制御部11は、第1識別器5から得られた出力値と正解データ123により示される正解に対応する値とが一致又は近似しているか否かを判定してもよい。第1識別器5から得られた出力値と正解に対応する値とが一致又は近似している場合、制御部11は、第1識別器5から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果が正解データ123により示される正解に一致していると判定してもよい。つまり、制御部11は、対象の評価用データセット121に対する第1識別器5による製品の良否の判定は正しいと判定してもよい。一方、第1識別器5から得られた出力値と正解に対応する値とが一致及び近似していない場合、制御部11は、第1識別器5から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果が正解データ123により示される正解に一致していないと判定してもよい。すなわち、制御部11は、対象の評価用データセット121に対する第1識別器5による製品の良否の判定は誤っていると判定してもよい。
また、例えば、正解データ123の内容が、各識別器(5、6)の出力値に基づいて製品の良否を判断した結果に対応するように設定されている場合、制御部11は、まず、第1識別器5から得られた出力値に基づいて、評価用画像データ122に写る製品の良否を判定してもよい。各識別器(5、6)から得られる出力値が製品の良否そのもの又はその確率を示す場合、制御部11は、第1識別器5から得られた出力値を閾値と比較することで、評価用画像データ122に写る製品の良否を判定することができる。また、各識別器(5、6)から得られる出力値が製品の良否のインデックスを示す場合、識別器評価装置1は、各識別器(5、6)から得られる出力値と製品の良否又は欠陥の種別とを対応付けたテーブル形式等の参照情報(不図示)を記憶部12に保持していてもよい。この場合、制御部11は、この参照情報を参照することにより、第1識別器5から得られた出力値に応じて、評価用画像データ122に写る製品の良否を判定することができる。
そして、制御部11は、第1識別器5から得られた出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果と正解データ123により示される正解とが一致しているか否かを判定してもよい。第1識別器5による判定結果と正解データ123により示される正解とが一致している場合、制御部11は、対象の評価用データセット121に対する第1識別器5による製品の良否の判定は正しいと判定してもよい。一方、第1識別器5による判定結果と正解データ123により示される正解とが一致していない場合、制御部11は、対象の評価用データセット121に対する第1識別器5による製品の良否の判定は誤っていると判定してもよい。
(B)判定性能の評価方法
次に、判定性能の評価方法について説明する。第1識別器5の判定性能は、上記判定結果と正解との照合結果に基づいて適宜評価されてよい。例えば、制御部11は、複数件の評価用データセット121に対して、第1識別器5から得られた出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果が正解データ123により示される正解と一致している比率(以下、単に「正答率」とも表記する)を算出することで、第1識別器5の判定性能を評価してもよい。つまり、制御部11は、複数件の評価用データセット121に対する第1識別器5による良否の判定の正答率を、第1識別器5の判定性能の評価結果として算出してもよい。なお、この「正答率」は、第1識別器5による良否の判定が正しいと判定された評価用データセット121の数(すなわち、正答数)を評価用データセット121の総数で割った商の他、正答数そのものを含んでもよい。
また、例えば、各件の評価用データセット121には、判定性能に寄与する度合いを示す重みが設定されていてもよい。この場合、この重みに応じて、第1識別器5の判定性能を評価してもよい。一例として、制御部11は、第1識別器5による良否の判定が正しいと判定された評価用データセット121に設定された重みの合計を、各件の評価用データセット121に設定された重みの合計で割った商(以下、「重みを含む正答率」とも表記する)を、第1識別器5の判定性能の評価結果として算出してもよい。なお、この「重みを含む正答率」は、第1識別器5による良否の判定が正しいと判定された評価用データセット121に設定された重みの合計そのものを含んでもよい。
また、例えば、複数件の評価用データセット121は、評価用画像データ122に写る製品の良否の判定を誤ってはいけないものとして設定される禁忌データセットを含んでもよい。この場合、制御部11は、禁忌データセットに対する第1識別器5による良否の判定が誤っているか否か、又は禁忌データセットに対する第1識別器5による良否の判定が誤っている数に基づいて、第1識別器5の判定性能を評価してもよい。具体的には、禁忌データセットに対する良否の判定を誤っているほど、制御部11は、第1識別器5の判定性能は低いと評価し、禁忌データセットに対する良否の判定を誤っていないほど、制御部11は、第1識別器5の判定性能は高いと評価してもよい。
以上により、制御部11は、第1識別器5から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果と入力した評価用画像データ122に関連付けられた正解データ123により示される正解とを照合することで、第1識別器5の判定性能を評価することができる。第1識別器5の判定性能の評価が完了すると、制御部11は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部11は、第2評価部113として動作し、各件の評価用データセット121について、評価用画像データ122を第2識別器6に入力し、第2識別器6の演算処理を実行することで、第2識別器6から出力値を取得する。
具体的には、上記ステップS202と同様に、制御部11は、第2学習結果データ229を参照して、学習済みの第2識別器6の設定を行う。続いて、制御部11は、各件の評価用データセット121の評価用画像データ122を第2識別器6の入力層61に入力し、入力側から順に各層61~63に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、入力した評価用画像データ122に写る製品の良否を判定した結果に対応する出力値を第2識別器6の出力層63から取得する。
次に、制御部11は、第2識別器6から得られる出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果と入力した評価用画像データ122に関連付けられた正解データ123により示される正解とを照合する。これにより、制御部11は、第2識別器6の判定性能を評価する。
判定結果及び正解の照合方法は、上記ステップS202と同様の方法でよい。制御部11は、第2識別器6から得られた出力値と正解データ123により示される正解に対応する値とが一致又は近似しているか否かに基づいて、対象の評価用データセット121に対する第2識別器6による製品の良否の判定が正しいか否かを判定してもよい。あるいは、制御部11は、第2識別器6から得られた出力値に基づいて製品の良否を判定した結果と正解データ123により示される正解とが一致しているか否かに基づいて、対象の評価用データセット121に対する第2識別器6による製品の良否の判定が正しいか否かを判定してもよい。
また、判定性能の評価方法も、上記ステップS202と同様の方法でよい。例えば、制御部11は、複数件の評価用データセット121に対して、第2識別器6から得られた出力値に基づいて評価用画像データ122に写る製品の良否を判定した結果が正解データ123により示される正解と一致している比率(正答率)を算出することで、第2識別器6の判定性能を評価してもよい。つまり、制御部11は、複数件の評価用データセット121に対する第2識別器6による良否の判定の正答率を、第2識別器6の判定性能の評価結果として算出してもよい。
また、例えば、制御部11は、各件の評価用データセット121に設定された重みに応じて、第2識別器6の判定性能を評価してもよい。一例として、制御部11は、第2識別器6による良否の判定が正しいと判定された評価用データセット121に設定された重みの合計を、各件の評価用データセット121に設定された重みの合計で割った商(重みを含む正答率)を、第2識別器6の判定性能の評価結果として算出してもよい。
また、例えば、複数件の評価用データセット121は、評価用画像データ122に写る製品の良否の判定を誤ってはいけないものとして設定される禁忌データセットを含んでもよい。この場合、制御部11は、禁忌データセットに対する第2識別器6による良否の判定が誤っているか否か、又は禁忌データセットに対する第2識別器6による良否の判定が誤っている数に基づいて、第2識別器6の判定性能を評価してもよい。
以上により、制御部11は、第1識別器5と同様に、第2識別器6の判定性能を評価することができる。第2識別器6の判定性能の評価が完了すると、制御部11は、次のステップS204に処理を進める。なお、本ステップS204は、必ずしもステップS203の後に実行されなくてもよい。ステップS203及びステップS204の処理を実行するタイミングは実施の形態に応じて適宜決定されてよい。
(ステップS204)
ステップS204では、制御部11は、ステップS202及びS203における第1識別器5及び第2識別器6に対する判定性能の評価の結果に基づいて、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否か、換言すると、第2識別器6の判定性能が第1識別器5の判定性能よりも低いか否かを判定する。
第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定する方法は、第1識別器5及び第2識別器6の判定性能の評価方法に応じて適宜決定されてよい。判定性能の評価結果として正答率が算出されている場合、制御部11は、第1識別器5の正答率と第2識別器6の正答率とを比較する。そして、第2識別器6の正答率が第1識別器5の正答率よりも低い場合に、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定してもよい。一方、第2識別器6の正答率が第1識別器5の正答率よりも低くはない場合、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定してもよい。
重みを含む正答率についても同様である。すなわち、制御部11は、第1識別器5の重みを含む正答率と第2識別器6の重みを含む正答率とを比較する。そして、第2識別器6の重みを含む正答率が第1識別器5の重みを含む正答率よりも低い場合に、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定してもよい。一方、第2識別器6の重みを含む正答率が第1識別器5の重みを含む正答率よりも低くはない場合、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定してもよい。
複数件の評価用データセット121が禁忌データセットを含む場合、制御部11は、禁忌データセットに対する判定の正誤に応じて、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定してもよい。例えば、第1識別器5から得られる出力値に基づいて禁忌データセットの評価用画像データ122に写る製品の良否を判定した結果が正解データ123により示される正解と一致しているのに対して、第2識別器6から得られる出力値に基づいて禁忌データセットの評価用画像データ122に写る製品の良否を判定した結果が正解データ123により示される正解と一致していない場合、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定してもよい。すなわち、対象の禁忌データセットについて、第1識別器5では良否の判定を正しく行えるのに対して、第2識別器6では良否の判定を誤ってしまう場合に、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定してもよい。一方、そうではない場合、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定してもよいし、上記その他の指標に基づいて、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定してもよい。なお、このように禁忌データセットに対する良否の判定を重視して、各識別器(5、6)の判定性能を評価する場合、上記ステップS202及びS203では、禁忌データセット以外の評価用データセット121に対する各識別器(5、6)による良否の判定は省略されてもよい。これにより、ステップS202~S204の処理の演算コストを低減することができ、制御部11(CPU)の処理負荷を低減することができる。
以上により、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定することができる。当該判定が完了すると、制御部11は、次のステップS205に処理を進める。
(ステップS205)
ステップS205では、制御部11は、ステップS204により第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定した結果を出力する。
判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定した結果をそのまま出力装置15に出力してもよい。この場合、第2識別器6の判定性能が第1識別器5と比べて悪化しているときには、制御部11は、検査装置3の利用者に対して第2識別器6を利用しないことを促す警告を出力装置15から出力してもよい。
また、例えば、制御部11は、判定した結果に応じて所定の情報処理を実行してもよい。本実施形態に係る検査システム100が、第2識別器6(第2学習結果データ229)が学習装置2から検査装置3に配信されるように構成されている第1のケースを想定する。この第1のケースにおいて、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定した場合、制御部11は、検査装置3への第2識別器6の配信を禁止する指令を本ステップS205の出力処理として学習装置2に送信してもよい。一方で、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定した場合、制御部11は、検査装置3への第2識別器6の配信を許可する指令を本ステップS205の出力処理として学習装置2に送信してもよい。あるいは、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定した結果を学習装置2に配信して、第2識別器6を検査装置3に配信するか否かを学習装置2に判定させてもよい。これにより、判定性能の悪化した第2識別器6が検査装置3に配信されないようにし、その判定性能の悪化した第2識別器6が検査装置3において利用されるのを防止することができる。
また、本実施形態に係る検査システム100が、第2識別器6(第2学習結果データ229)を検査装置3が既に保持している第2のケースを想定する。この第2のケースにおいて、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定した場合、制御部11は、第2識別器6の利用を禁止する指令を本ステップS205の出力処理として検査装置3に送信してもよい。一方で、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定した場合、制御部11は、第2識別器6の利用を許可する指令を本ステップS205の出力処理として検査装置3に送信してもよい。あるいは、制御部11は、第2識別器6の判定性能が第1識別器5と比べて悪化しているか否かを判定した結果を検査装置3に配信して、第2識別器6を利用するか否かを検査装置3に判定されてもよい。これにより、判定性能の悪化した第2識別器6が検査装置3において利用されるのを防止することができる。
また、本実施形態に係る検査システム100が、第2識別器6(第2学習結果データ229)が、学習装置2から識別器評価装置1を介して検査装置3に配信される第3のケースを想定する。この第3のケースにおいて、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定した場合、制御部11は、本ステップS205の出力処理として、学習装置2から受信した第2識別器6の検査装置3への転送を禁止し、第1識別器5を利用する指令を検査装置3に送信してもよい。一方で、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定した場合、制御部11は、本ステップS205の出力処理として、学習装置2から受信した第2識別器6を検査装置3に転送してもよい。
以上により、判定した結果の出力が完了すると、制御部11は、本動作例に係る処理を終了する。なお、制御部11は、学習装置2において第2識別器6が構築される度に、上記ステップS201~S205の一連の処理を実行してもよい。これにより、学習装置2において構築された第2識別器6の判定性能を継続的に監視することができる。
[検査装置]
次に、図10を用いて、検査装置3の動作例について説明する。図10は、検査装置3の処理手順の一例を例示するフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS301)
ステップS301では、制御部31は、対象データ取得部311として動作し、検査の対象となる製品Rの写る対象画像データ321を取得する。本実施形態では、検査装置3は、外部インタフェース34を介してカメラ41に接続されている。そのため、制御部31は、カメラ41から対象画像データ321を取得する。この対象画像データ321は、動画像データであってもよいし、静止画像データであってもよい。対象画像データ321を取得すると、制御部31は、次のステップS302に処理を進める。
ただし、対象画像データ321を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、検査装置3とは異なる他の情報処理装置が、カメラ41に接続されていてもよい。この場合、制御部31は、他の情報処理装置から対象画像データ321の送信を受け付けることで、対象画像データ321を取得してもよい。
(ステップS302)
ステップS302では、制御部31は、良否判定部312として動作し、第1識別器5又は第2識別器6を利用して、対象画像データ321に写る製品Rの良否を判定する。良否の判定に利用する識別器は、上記ステップS204における性能の評価結果に基づいて決定される。
すなわち、制御部31は、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定されている場合には、第1識別器5を利用して、対象画像データ321に写る製品Rの良否を判定する。具体的には、上記ステップS205の出力処理の結果、検査装置3には、第2識別器6は配信されておらず、第1識別器5のみが保持されている。あるいは、上記ステップS205の出力処理、又は識別器評価装置1にアクセスすることにより、制御部31は、製品Rの良否を判定するのに利用する識別器を第1識別器5であると特定する。次に、制御部31は、第1学習結果データ224を参照して、学習済みの第1識別器5の設定を行う。続いて、制御部31は、取得した対象画像データ321を第1識別器5に入力して、第1識別器5の演算処理を実行することで、第1識別器5から出力値を取得する。第1識別器5の演算処理は、上記ステップS202及びS203と同様に実行されてよい。
そして、制御部31は、第1識別器5から取得した出力値に基づいて、対象画像データ321に写る製品Rの良否を判定する。良否の判定は、上記ステップS202及びS203と同様に実行されてよい。すなわち、第1識別器5から得られる出力値が製品の良否そのもの又はその確率を示す場合、制御部31は、第1識別器5から得られた出力値を閾値と比較することで、対象画像データ321に写る製品Rの良否を判定することができる。また、第1識別器5から得られる出力値が製品の良否のインデックスを示す場合、検査装置3は、第1識別器5から得られる出力値と製品の良否又は欠陥の種別とを対応付けたテーブル形式等の参照情報(不図示)を記憶部32に保持していてもよい。この場合、制御部31は、この参照情報を参照することにより、第1識別器5から得られた出力値に応じて、対象画像データ321に写る製品Rの良否を判定することができる。
一方で、制御部31は、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定されている場合には、第2識別器6を利用して、対象画像データ321に写る製品Rの良否を判定する。具体的には、上記ステップS205の出力処理の結果、検査装置3には、第2識別器6が配信されている。あるいは、上記ステップS205の出力処理、又は識別器評価装置1にアクセスすることにより、制御部31は、製品Rの良否を判定するのに利用する識別器を第2識別器6であると特定する。次に、制御部31は、第2学習結果データ229を参照して、学習済みの第2識別器6の演算処理を実行することで、第2識別器6から出力値を取得する。そして、制御部31は、第2識別器6から取得した出力値に基づいて、対象画像データ321に写る製品Rの良否を判定する。第2識別器6の演算処理及び良否の判定は、上記ステップS202及びS203と同様に実行されてよい。
以上により、制御部31は、ステップS204の評価の結果に基づいて、第1識別器5又は第2識別器6を利用して、対象画像データ321に写る製品Rの良否を判定することができる。製品Rの良否の判定が完了すると、制御部31は、次のステップS303に処理を進める。
なお、利用する識別器を特定する方法は、上記の例に限定されなくてもよい。例えば、上記ステップS204の評価の結果に基づいて、検査装置3に組み込まれる学習結果データが選択されてもよい。具体的には、第2識別器6の判定性能が第1識別器5と比べて悪化していると判定されている場合には、第1学習結果データ224が検査装置3に予め組み込まれてもよい。他方、第2識別器6の判定性能が第1識別器5と比べて悪化していないと判定されている場合には、第2学習結果データ229が検査装置3に予め組み込まれてもよい。これにより、本ステップS302では、制御部31は、予め組み込まれている学習結果データを参照することで、ステップS204の評価の結果に応じた識別器を利用することができる。
(ステップS303)
ステップS303では、制御部31は、出力部313として動作し、ステップS302により製品Rの良否を判定した結果を出力する。
製品Rの良否を判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、製品Rの良否を判定した結果をそのまま出力装置36に出力してもよい。また、ステップS302において、製品Rに欠陥があると判定した場合、制御部31は、欠陥を発見したことを知らせるための警告を本ステップS303の出力処理として行ってもよい。また、製品の搬送を行う製造ラインに検査装置3が接続されている場合、製品Rに欠陥があると判定したときに、制御部31は、欠陥のある製品Rを欠陥のない製品とは異なる経路で搬送する指令を製造ラインに送信する処理を本ステップS303の出力処理として行ってもよい。
製品Rの良否を判定した結果の出力処理が完了すると、制御部31は、本動作例に係る処理を終了する。なお、制御部31は、製造ライン上を搬送される製品Rがカメラ41の撮影範囲に入る度に、ステップS301~S303の一連の処理を実行してもよい。これにより、検査装置3は、製造ライン上を搬送される製品Rの外観検査を行うことができる。
[特徴]
以上のとおり、本実施形態に係る学習装置2は、ステップS101~S103の一連の処理により、第1学習データ221を利用した機械学習を実行することで、第1識別器5を構築する。これに対して、学習装置2は、第1学習データ221及び追加の画像データ227により構成される第2学習データ226を利用した機械学習を実行することで、第2識別器6を構築する。この第2識別器6の構築の過程で、第1学習データ221には含まれていない未知のケースを追加の画像データ227として用意することで、学習装置2は、第1識別器5では製品Rの良否の判定が不能なケースに対して対応可能な第2識別器6を構築することができる。これにより、検査装置3では、第1識別器5では良否の判定が不能なケースについて、第2識別器6を利用することで、製品Rの良否を判定することができるようになる。
加えて、本実施形態に係る識別器評価装置1は、ステップS202~S204の処理によって、複数件の評価用データセット121を利用して、第2識別器6の判定性能が第1識別器5と比べて悪化したか否かを監視する。これにより、再学習又は追加学習により構築された第2識別器6の性能が第1識別器5と比べて悪化してしまった場合に、性能の悪化した第2識別器6が検査装置3において利用されないようにすることができる。したがって、本実施形態によれば、製品Rの良否の判定の信頼性が損なわれてしまうのを防止することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、各識別器(5、6)は、多層構造の全結合ニューラルネットワークにより構成されている。しかしながら、各識別器(5、6)の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各識別器(5、6)は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてよい。
<4.2>
上記実施形態では、各識別器(5、6)の学習モデルとして、ニューラルネットワークを採用している。しかしながら、各識別器(5、6)の学習モデルは、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各識別器(5、6)の学習モデルとして、例えば、サポートベクタマシン、自己組織化マップ、強化学習により機械学習を行う学習モデル等が採用されてよい。なお、機械学習として教師あり学習を採用しない場合には、各学習データ(221、226)において、各正解データ(223、228)は省略されてもよい。
<4.3>
上記実施形態では、各学習結果データ(224、229)は、ニューラルネットワークの構成を示す情報を含んでいる。しかしながら、各学習結果データ(224、229)の構成は、このような例に限定されなくてもよく、学習済みの各識別器(5、6)の設定に利用可能であれば、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合には、各学習結果データ(224、229)は、ニューラルネットワークの構成を示す情報を含んでいなくてもよい。
<4.4>
上記実施形態では、製品Rの外観検査を行う場面に本発明を適用した例を示している。しかしながら、本発明の適用範囲は、このような外観検査の場面に限られなくてもよい。本発明は、画像データから何らかの特徴、すなわち、被写体の状態を判定する場面に広く適用可能である。
[構成例]
図11~図13を用いて、被写体の状態を判定する場面に本発明を適用した変形例について説明する。図11は、本変形例に係る識別器評価装置1Aのソフトウェア構成の一例を模式的に例示する。図12及び図13は、本変形例に係る識別装置3Aのハードウェア構成及びソフトウェア構成の一例を模式的に例示する。本変形例に係る識別システムは、識別器評価装置1A、上記学習装置2、及び識別装置3Aにより構成される。処理対象となるデータが、製品の写る画像データから何らかの被写体の写る画像データに置き換わる点を除き、本変形例に係る識別システムは、上記検査システム100と同様に構成されてよい。
<識別器評価装置>
具体的に、本変形例に係る識別器評価装置1Aは、上記識別器評価装置1と同様のハードウェア構成を有する。識別器評価装置1Aの記憶部12は、第1学習結果データ224A、第2学習結果データ229A等の各種情報を記憶する。第1学習結果データ224Aは、学習済みの第1識別器5Aの設定を行うためのデータである。第2学習結果データ229Aは、学習済みの第2識別器6Aの設定を行うためのデータである。
第1識別器5Aは、被写体の状態を識別する学習を行うための画像データで構成された第1学習データを利用した機械学習により構築される。第2識別器6Aは、被写体の状態を識別する学習を行うための追加の画像データ及び第1学習データで構成された第2学習データを利用した機械学習により構築される。各識別器(5A、6A)の学習モデルは、上記実施形態と同様に、ニューラルネットワークにより構成されている。各識別器(5A、6A)の機械学習は、上記実施形態と同様に実行されてよい。
本変形例において、被写体、及び識別の対象となる被写体の状態はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。被写体は、例えば、対象者の顔、対象者の身体、作業対象のワーク等であってもよい。また、被写体が対象者の顔である場合、識別の対象となる状態は、例えば、表情の種別、顔のパーツの状態、その顔を所有する個人等であってもよい。顔を所有する個人の識別は、顔認証を実施するために行われてよい。被写体が対象者の身体である場合には、識別の対象となる状態は、例えば、身体のポーズ等であってもよい。被写体が作業対象のワークである場合、識別の対象となる状態は、例えば、ワークの位置、姿勢等であってもよい。
図11に示されるとおり、識別器評価装置1Aは、上記識別器評価装置1と同様に、評価データ取得部111、第1評価部112、第2評価部113、性能判定部114、及び出力部115をソフトウェアモジュールとして備えるコンピュータとして動作する。
評価データ取得部111は、評価用画像データ122A、及び評価用画像データ122Aに写る被写体の状態の識別に対する正解を示す正解データ123Aの組み合わせによりそれぞれ構成される複数件の評価用データセット121Aを取得する。正解データ123Aの内容は、上記正解データ123と同様に設定されてよい。
第1評価部112は、各件の評価用データセット121Aについて、第1識別器5Aに評価用画像データ122Aを入力し、第1識別器5Aから得られる出力値に基づいて評価用画像データ122Aに写る被写体の状態を判定した結果と正解データ123Aの示す正解とを照合する。これにより、第1評価部112は、第1識別器5Aの判定性能を評価する。
第2評価部113は、各件の評価用データセット121Aについて、第2識別器6Aに評価用画像データ122Aを入力し、第2識別器6Aから得られる出力値に基づいて評価用画像データ122Aに写る被写体の状態を判定した結果と正解データ123Aの示す正解とを照合する。これにより、第2評価部113は、第2識別器6Aの判定性能を評価する。
性能判定部114は、第1識別器5A及び第2識別器6Aに対する評価の結果に基づいて、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定する。出力部115は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果を出力する。
<識別装置>
図12に示されるとおり、識別装置3Aは、上記検査装置3と同様のハードウェア構成を有する。識別装置3Aの記憶部32は、識別プログラム83A、第1学習結果データ224A、第2学習結果データ229A等の各種情報を記憶する。識別プログラム83Aは、上記検査装置3と同様の処理手順により、被写体の状態を判定する情報処理を識別装置3Aに実行させるためのプログラムであり、当該情報処理の一連の命令を含む。
識別装置3Aは、上記検査装置3と同様に、外部インタフェース34を介してカメラ41に接続されている。カメラ41は、状態を判定する対象となる被写体を撮影可能な場所に適宜配置される。例えば、被写体が対象者の顔又は身体である場合、カメラ41は、被写体となる対象者の存在し得る場所に配置されてよい。また、例えば、被写体が作業対象のワークである場合、カメラ41は、ワークの存在し得る場所に向けて配置されてよい。
また、図13に示されるとおり、識別装置3Aは、制御部31により識別プログラム83Aを実行することで、対象データ取得部311、状態判定部312A、及び出力部313をソフトウェアモジュールとして備えるコンピュータとして動作する。
対象データ取得部311は、状態を識別する対象となる被写体の写る対象画像データ321Aを取得する。状態判定部312Aは、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定された場合には、第1識別器5Aを利用して対象画像データ321Aに写る被写体の状態を判定する。また、状態判定部312Aは、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していないと判定された場合には、第2識別器6Aを利用して対象画像データ321Aに写る被写体の状態を判定する。出力部313は、被写体の状態を判定した結果を出力する。
[動作例]
次に、本変形例に係る識別システムの動作例について説明する。本変形例に係る識別システムは、上記検査システム100とほぼ同様の処理手順で動作する。
<学習装置>
学習装置2の制御部21は、上記ステップS101~S103の処理により、被写体の状態を識別する学習を行うための画像データで構成された第1学習データを利用した機械学習を実行することで第1識別器5Aを構築し、構築した第1識別器5Aの構成等を示す情報を第1学習結果データ224Aとして記憶部22に格納する。同様に、学習装置2の制御部21は、上記ステップS101~S103の処理により、第1学習データ及び被写体の状態を識別する学習を行うための追加の画像データで構成された第2学習データを利用した機械学習を実行することで第2識別器6Aを構築し、構築した第2識別器6Aの構成等を示す情報を第2学習結果データ229Aとして記憶部22に格納する。
<識別器評価装置>
識別器評価装置1Aの制御部11は、ステップS201では、評価データ取得部111として動作し、評価用画像データ122A、及び評価用画像データ122Aに写る被写体の状態の識別に対する正解を示す正解データ123Aの組み合わせによりそれぞれ構成される複数件の評価用データセット121Aを取得する。各件の評価用データセット121Aは、上記評価用データセット121と同様の方法により作成されてよい。
ステップS202では、制御部11は、第1評価部112として動作し、第1学習結果データ224Aを参照して、学習済みの第1識別器5Aの設定を行う。続いて、制御部11は、各件の評価用データセット121Aについて、第1識別器5Aに評価用画像データ122Aを入力し、第1識別器5Aの演算処理を実行することで、第1識別器5Aから出力値を取得する。次に、制御部11は、第1識別器5Aから得られる出力値に基づいて評価用画像データ122Aに写る被写体の状態を判定した結果と正解データ123Aの示す正解とを照合する。判定結果と正解との照合は上記実施形態と同様の方法により行われてよい。これにより、制御部11は、第1識別器5Aの判定性能を評価する。
判定性能の評価方法には、上記実施形態と同様の方法を採用することができる。すなわち、制御部11は、複数件の評価用データセット121Aに対して、第1識別器5Aから得られた出力値に基づいて評価用画像データ122Aに写る被写体の状態を判定した結果が正解データ123Aにより示される正解と一致している比率(正答率)を算出することで、第1識別器5Aの判定性能を評価してもよい。つまり、制御部11は、複数件の評価用データセット121Aに対する第1識別器5Aによる被写体の状態判定の正答率を、第1識別器5Aの判定性能の評価結果として算出してもよい。
また、各件の評価用データセット121Aには、判定性能に寄与する度合いを示す重みが設定されていてもよい。この場合、制御部11は、各件の評価用データセット121Aに設定された重みに応じて、第1識別器5Aの判定性能を評価してもよい。一例として、制御部11は、第1識別器5Aによる状態の判定が正しいと判定された評価用データセット121Aに設定された重みの合計を、各件の評価用データセット121Aに設定された重みの合計で割った商(重みを含む正答率)を、第1識別器5Aの判定性能の評価結果として算出してもよい。
また、複数件の評価用データセット121Aは、評価用画像データ122Aに写る被写体の状態の判定を誤ってはいけないものとして設定される禁忌データセットを含んでもよい。この場合、制御部11は、禁忌データセットに対する第1識別器5Aによる被写体の状態の判定が誤っているか否か、又は禁忌データセットに対する第1識別器5Aによる被写体の状態の判定が誤っている数に基づいて、第1識別器5Aの判定性能を評価してもよい。
ステップS203では、制御部11は、第2評価部113として動作し、第2学習結果データ229Aを参照して、学習済みの第2識別器6Aの設定を行う。続いて、制御部11は、各件の評価用データセット121Aについて、第2識別器6Aに評価用画像データ122Aを入力し、第2識別器6Aの演算処理を実行することで、第2識別器6Aから出力値を取得する。次に、制御部11は、第2識別器6Aから得られる出力値に基づいて評価用画像データ122Aに写る被写体の状態を判定した結果と正解データ123Aの示す正解とを照合する。判定結果と正解との照合は上記実施形態と同様の方法により行われてよい。これにより、制御部11は、第2識別器6Aの判定性能を評価する。
なお、第2識別器6Aの判定性能の評価は、第1識別器5Aと同様に行われてよい。制御部11は、複数件の評価用データセット121Aに対して、第2識別器6Aから得られた出力値に基づいて評価用画像データ122Aに写る被写体の状態を判定した結果が正解データ123Aにより示される正解と一致している比率(正答率)を算出することで、第2識別器6Aの判定性能を評価してもよい。また、制御部11は、第2識別器6Aによる状態の判定が正しいと判定された評価用データセット121Aに設定された重みの合計を、各件の評価用データセット121Aに設定された重みの合計で割った商(重みを含む正答率)を、第2識別器6Aの判定性能の評価結果として算出してもよい。また、制御部11は、禁忌データセットに対する第2識別器6Aによる被写体の状態の判定が誤っているか否か、又は禁忌データセットに対する第2識別器6Aによる被写体の状態の判定が誤っている数に基づいて、第2識別器6Aの判定性能を評価してもよい。
ステップS204では、制御部11は、性能判定部114として動作し、第1識別器5A及び第2識別器6Aに対する評価の結果に基づいて、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定する。第1識別器5Aの判定性能と第2識別器6の判定性能との比較は、上記実施形態と同様の方法により行われてよい。
すなわち、第2識別器6Aの正答率が第1識別器5Aの正答率よりも低い場合に、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定してもよい。一方、第2識別器6Aの正答率が第1識別器5Aの正答率よりも低くはない場合、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していないと判定してもよい。
また、第2識別器6Aの重みを含む正答率が第1識別器5Aの重みを含む正答率よりも低い場合に、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定してもよい。一方、第2識別器6Aの重みを含む正答率が第1識別器5Aの重みを含む正答率よりも低くはない場合、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していないと判定してもよい。
また、第1識別器5Aから得られる出力値に基づいて禁忌データセットの評価用画像データ122Aに写る被写体の状態を判定した結果が正解データ123Aにより示される正解と一致しているのに対して、第2識別器6Aから得られる出力値に基づいて禁忌データセットの評価用画像データ122Aに写る被写体の状態を判定した結果が正解データ123Aにより示される正解と一致していない場合、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定してもよい。つまり、対象の禁忌データセットについて、第1識別器5Aでは被写体の状態を正しく判定できるのに対して、第2識別器6Aでは被写体の状態の判定を誤ってしまう場合に、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定してもよい。一方、そうではない場合、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していないと判定してもよいし、上記その他の指標に基づいて、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定してもよい。
ステップS205では、制御部11は、出力部115として動作し、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果を出力する。判定した結果の出力は、上記実施形態と同様に行われてよい。例えば、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果をそのまま出力装置15に出力してもよい。
また、例えば、上記第1のケースでは、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果に応じて、識別装置3Aへの第2識別器6Aの配信を禁止又は許可する指令を学習装置2に送信してもよい。あるいは、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果を学習装置2に配信して、第2識別器6Aを識別装置3Aに配信するか否かを学習装置2に判定させてもよい。
また、例えば、上記第2のケースでは、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果に応じて、第2識別器6Aの利用を禁止又は許可する指令を識別装置3Aに送信してもよい。あるいは、制御部11は、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化しているか否かを判定した結果を識別装置3Aに配信して、第2識別器6Aを利用するか否かを識別装置3Aに判定させてもよい。
また、例えば、上記第3のケースでは、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定した場合、制御部11は、学習装置2から受信した第2識別器6Aの識別装置3Aへの転送を禁止し、第1識別器5Aを利用する指令を識別装置3Aに送信してもよい。一方で、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していないと判定した場合、制御部11は、学習装置2から受信した第2識別器6Aを識別装置3Aに転送してもよい。
<識別装置>
識別装置3Aの制御部31は、ステップS301では、制御部31は、対象データ取得部311として動作し、状態を識別する対象となる被写体の写る対象画像データ321Aを取得する。
ステップS302では、制御部31は、状態判定部312Aとして動作し、第1識別器5A又は第2識別器6Aを利用して、対象画像データ321Aに写る被写体の状態を判定する。利用する識別器は、上記ステップS204における性能の評価結果に基づいて決定される。すなわち、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していると判定された場合には、制御部31は、第1識別器5Aを利用して対象画像データ321Aに写る被写体の状態を判定する。一方、第2識別器6Aの判定性能が第1識別器5Aと比べて悪化していないと判定された場合には、制御部31は、第2識別器6Aを利用して対象画像データ321Aに写る被写体の状態を判定する。
第1識別器5Aを利用する場合、制御部31は、第1学習結果データ224Aを参照して、学習済みの第1識別器5Aの設定を行う。続いて、制御部31は、取得した対象画像データ321Aを第1識別器5Aに入力して、第1識別器5Aの演算処理を実行することで、第1識別器5Aから出力値を取得する。そして、制御部31は、第1識別器5Aから取得した出力値に基づいて、対象画像データ321Aに写る被写体の状態を判定する。被写体の状態の判定は、上記実施形態と同様に行われてよい。
同様に、第2識別器6Aを利用する場合、制御部31は、第2学習結果データ229Aを参照して、学習済みの第2識別器6Aの設定を行う。続いて、制御部31は、取得した対象画像データ321Aを第2識別器6Aに入力して、第2識別器6Aの演算処理を実行することで、第2識別器6Aから出力値を取得する。そして、制御部31は、第2識別器6Aから取得した出力値に基づいて、対象画像データ321Aに写る被写体の状態を判定する。
ステップS303では、制御部31は、出力部313として動作し、被写体の状態を判定した結果を出力する。被写体の状態を判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、被写体の状態を判定した結果をそのまま出力装置36に出力してもよい。また、例えば、制御部31は、被写体の状態に応じて所定の出力処理を実行してもよい。具体例として、被写体の状態として対象者の表情を判定するケースでは、対象者の顔が笑顔ではない(第2状態である)ときに、制御部11は、対象者の関連者の携帯端末にそのことを通知する電子メールの送信をステップS303の出力処理として行ってもよい。
以上により、本変形例では、再学習又は追加学習により第2識別器6Aの識別性能が第1識別器5Aよりも悪化してしまった場合でも、被写体の状態を判定する処理の信頼性が損なわれてしまうのを防止することができる。
<4.5>
上記実施形態及び変形例では、画像データから何らかの特徴(被写体の状態)を判定する場面に本発明を提供した例を示している。しかしながら、本発明の適用可能な範囲は、このような画像データから特徴を判定する場面に限られなくてもよい。本発明は、画像データ以外のデータ又は複数種類のデータから何らかの特徴を識別する場面に広く適用可能である。
図14~図17を用いて、データに含まれる特徴を判定する場面に本発明を適用した変形例について説明する。図14は、本変形例に係る識別器評価装置1Bのソフトウェア構成の一例を模式的に例示する。図15は、本変形例に係る学習装置2Bのソフトウェア構成の一例を模式的に例示する。図16及び図17は、本変形例に係る識別装置3Bのハードウェア構成及びソフトウェア構成の一例を模式的に例示する。本変形例に係る識別システムは、識別器評価装置1B、学習装置2B、及び識別装置3Bにより構成される。処理対象となるデータが、製品の写る画像データから何らかの特徴を含む他種のデータに置き換わる点を除き、本変形例に係る識別システムは、上記検査システム100と同様に構成されてよい。
<識別器評価装置>
具体的に、本変形例に係る識別器評価装置1Bは、上記識別器評価装置1と同様のハードウェア構成を有する。識別器評価装置1Bの記憶部12は、第1学習結果データ224B、第2学習結果データ229B等の各種情報を記憶する。第1学習結果データ224Bは、学習済みの第1識別器5Bの設定を行うためのデータである。第2学習結果データ229Bは、学習済みの第2識別器6Bの設定を行うためのデータである。
本変形例において、処理対象となるデータは、識別器による解析の対象となり得るあらゆる種類のデータを含んでもよく、例えば、画像データの他、音データ(音声データ)、数値データ、テキストデータ等であってよい。また、対象のデータから識別される特徴は、データから識別可能なあらゆる特徴を含んでもよい。対象のデータが音データである場合、識別される特徴は、例えば、特定の音(例えば、機械の異音)が含まれているか否か等であってもよい。対象のデータが、活動量等の生体データに関する数値データ又はテキストデータである場合、識別される特徴は、例えば、対象者の状態(例えば、健康であるか否か)等であってもよい。対象のデータが、機械の駆動量等の数値データ又はテキストデータである場合、識別される特徴は、例えば、機械の状態(例えば、機械が所定の状態にあるか否か)等であってもよい。
図14に示されるとおり、識別器評価装置1Bは、上記識別器評価装置1と同様に、評価データ取得部111、第1評価部112、第2評価部113、性能判定部114、及び出力部115をソフトウェアモジュールとして備えるコンピュータとして動作する。
評価データ取得部111は、評価用データ122B、及び評価用データ122Bに含まれる特徴の識別に対する正解を示す正解データ123Bの組み合わせによりそれぞれ構成される複数件の評価用データセット121Bを取得する。正解データ123Bの内容は、評価用データ122B及び識別する対象となる特徴に応じて適宜設定されてよい。
第1評価部112は、各件の評価用データセット121Bについて、第1識別器5Bに評価用データ122Bを入力し、第1識別器5Bから得られる出力値に基づいて評価用データ122Bに含まれる特徴を判定した結果と正解データ123Bの示す正解とを照合する。これにより、第1評価部112は、第1識別器5Bの判定性能を評価する。
第2評価部113は、各件の評価用データセット121Bについて、第2識別器6Bに評価用データ122Bを入力し、第2識別器6Bから得られる出力値に基づいて評価用データ122Bに含まれる特徴を判定した結果と正解データ123Bの示す正解とを照合する。これにより、第2評価部113は、第2識別器6Bの判定性能を評価する。
性能判定部114は、第1識別器5B及び第2識別器6Bに対する評価の結果に基づいて、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定する。出力部115は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果を出力する。
<学習装置>
学習装置2Bは、上記学習装置2と同様のハードウェア構成を有する。また、図15に示されるとおり、学習装置2Bは、上記学習装置2と同様に、学習データ取得部211及び学習処理部212をソフトウェアモジュールとして備えるコンピュータとして動作する。
学習データ取得部211は、特徴を識別する学習を行うためのデータ222Bで構成された第1学習データ221Bを取得する。学習処理部212は、取得した第1学習データ221Bを利用した機械学習を実施することで、対象のデータに含まれる特徴を判定する能力を習得した学習済みの第1識別器5Bを構築する。
また、学習データ取得部211は、第1学習データ221B及び特徴を識別する学習を行うための追加のデータ227Bで構成された第2学習データ226Bを取得する。学習処理部212は、取得した第2学習データ226Bを利用した機械学習を実施することで、対象のデータに含まれる特徴を判定する能力を習得した学習済みの第2識別器6Bを構築する。
なお、本変形例では、上記実施形態と同様に、各識別器(5B、6B)の学習モデルは、ニューラルネットワークにより構成されている。そのため、データ222Bには、当該データ222Bに含まれる特徴の識別に対する正解を示す正解データ223Bが付与される。同様に、追加のデータ227Bには、追加のデータ227Bに含まれる特徴の識別に対する正解を示す正解データ228Bが付与されている。
学習処理部212は、第1学習データ221Bに含まれる各件のデータセットについて、データ222Bを入力層51に入力すると、入力したデータ222Bに関連付けられた正解データ223Bにより示される正解に対応する出力値を出力層53から出力するように第1識別器5Bの機械学習を行う。これにより、学習処理部212は、対象のデータに含まれる特徴を判定する能力を習得した学習済みの第2識別器6を構築する。そして、学習処理部212は、学習済みの第1識別器5Bの構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第1学習結果データ224Bとして記憶部22に格納する。
また、学習処理部212は、第2学習データ226Bに含まれる各件のデータセットについて、データ(222B、227B)を入力層61に入力すると、入力したデータ(222B、227B)に関連付けられた正解データ(223B、228B)により示される正解対応する出力値を出力層63から出力するように第2識別器6Bの機械学習を行う。これにより、学習処理部212は、対象のデータに含まれる特徴を判定する能力を習得した学習済みの第2識別器6Bを構築する。そして、学習処理部212は、学習済みの第2識別器6Bの構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第2学習結果データ229Bとして記憶部22に格納する。
<識別装置>
図16に示されるとおり、識別装置3Bは、上記検査装置3と同様のハードウェア構成を有する。識別装置3Bの記憶部32は、識別プログラム83B、第1学習結果データ224B、第2学習結果データ229B等の各種情報を記憶する。識別プログラム83Bは、上記検査装置3と同様の処理手順により、対象のデータに含まれる特徴を判定する情報処理を識別装置3Bに実行させるためのプログラムであり、当該情報処理の一連の命令を含む。
なお、本変形例では、識別装置3Bは、外部インタフェース34を介して、計測装置41Bに接続されている。計測装置41Bは、対象のデータを取得可能に適宜構成される。計測装置41Bの種類は、処理対象のデータに応じて適宜決定されてよい。処理対象のデータが音データである場合、計測装置41Bは、例えば、マイクロフォン等である。処理対象のデータが生体データである場合、計測装置41Bは、例えば、活動量計、血圧計等の、生体情報を計測可能に構成された装置である。また、処理対象のデータが、機械の駆動量等の数値データ又はテキストデータである場合、計測装置41Bは、例えば、エンコーダ等の対象の物理量を測定可能に構成された装置である。計測装置41Bの配置は、実施の形態に応じて適宜決定されてよい。
また、図17に示されるとおり、識別装置3Bは、制御部31により識別プログラム83Bを実行することで、対象データ取得部311、特徴判定部312B、及び出力部313をソフトウェアモジュールとして備えるコンピュータとして動作する。
対象データ取得部311は、識別する対象となる特徴を含む対象データ321Bを取得する。特徴判定部312Bは、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定された場合には、第1識別器5Bを利用して対象データ321Bに含まれる特徴を判定する。また、特徴判定部312Bは、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していないと判定した場合には、第2識別器6Bを利用して対象データ321Bに含まれる特徴を判定する。出力部313は、対象データ321Bに含まれる特徴を判定した結果を出力する。
[動作例]
次に、本変形例に係る識別システムの動作例について説明する。本変形例に係る識別システムは、上記検査システム100とほぼ同様の処理手順で動作する。
<学習装置>
すなわち、学習装置2Bの制御部21は、上記ステップS101及びS102の処理により、特徴を識別する学習を行うためのデータ222Bで構成された第1学習データ221Bを利用した機械学習を実行することで第1識別器5Bを構築する。そして、制御部21は、ステップS103の処理により、構築した第1識別器5Bの構成等を示す情報を第1学習結果データ224Bとして記憶部22に格納する。
同様に、制御部21は、上記ステップS101及びS102の処理により、第1学習データ221B及び特徴を識別する学習を行うための追加のデータ227Bで構成された第2学習データ226Bを利用した機械学習を実行することで第2識別器6Bを構築する。そして、制御部21は、ステップS103の処理により、構築した第2識別器6Bの構成等を示す情報を第2学習結果データ229Bとして記憶部22に格納する。
<識別器評価装置>
識別器評価装置1Bの制御部11は、ステップS201では、評価データ取得部111として動作し、評価用データ122B、及び評価用データ122Bに含まれる特徴の識別に対する正解を示す正解データ123Bの組み合わせによりそれぞれ構成される複数件の評価用データセット121Bを取得する。各件の評価用データセット121Bは、評価用画像データ122を取得するのに利用したカメラを、評価用データ122Bを取得するように構成された装置に置き換えて、上記評価用データセット121と同様の方法により作成されてよい。
ステップS202では、制御部11は、第1評価部112として動作し、第1学習結果データ224Bを参照して、学習済みの第1識別器5Bの設定を行う。続いて、制御部11は、各件の評価用データセット121Bについて、第1識別器5Bに評価用データ122Bを入力し、第1識別器5Bの演算処理を実行することで、第1識別器5Bから出力値を取得する。次に、制御部11は、第1識別器5Bから得られる出力値に基づいて評価用データ122Bに含まれる特徴を判定した結果と正解データ123Bの示す正解とを照合する。判定結果と正解との照合は上記実施形態と同様の方法により行われてよい。これにより、制御部11は、第1識別器5Bの判定性能を評価する。
判定性能の評価方法には、上記実施形態と同様の方法を採用することができる。すなわち、制御部11は、複数件の評価用データセット121Bに対して、第1識別器5Bから得られた出力値に基づいて評価用データ122Bに含まれる特徴を判定した結果が正解データ123Bにより示される正解と一致している比率(正答率)を算出することで、第1識別器5Bの判定性能を評価してもよい。つまり、制御部11は、複数件の評価用データセット121Bに対する第1識別器5Bによる特徴の判定の正答率を、第1識別器5Bの判定性能の評価結果として算出してもよい。
また、各件の評価用データセット121Bには、判定性能に寄与する度合いを示す重みが設定されていてもよい。この場合、制御部11は、各件の評価用データセット121Bに設定された重みに応じて、第1識別器5Bの判定性能を評価してもよい。一例として、制御部11は、第1識別器5Bによる特徴の判定が正しいと判定された評価用データセット121Bに設定された重みの合計を、各件の評価用データセット121Bに設定された重みの合計で割った商(重みを含む正答率)を、第1識別器5Bの判定性能の評価結果として算出してもよい。
また、複数件の評価用データセット121Bは、評価用データ122Bに含まれる特徴の判定を誤ってはいけないものとして設定される禁忌データセットを含んでもよい。この場合、制御部11は、禁忌データセットに対する第1識別器5Bによる特徴の判定が誤っているか否か、又は禁忌データセットに対する第1識別器5Bによる特徴の判定が誤っている数に基づいて、第1識別器5Bの判定性能を評価してもよい。
ステップS203では、制御部11は、第2評価部113として動作し、第2学習結果データ229Bを参照して、学習済みの第2識別器6Bの設定を行う。続いて、制御部11は、各件の評価用データセット121Bについて、第2識別器6Bに評価用データ122Bを入力し、第2識別器6Bの演算処理を実行することで、第2識別器6Bから出力値を取得する。次に、制御部11は、第2識別器6Bから得られる出力値に基づいて評価用データ122Bに含まれる特徴を判定した結果と正解データ123Bの示す正解とを照合する。判定結果と正解との照合は上記実施形態と同様の方法により行われてよい。これにより、制御部11は、第2識別器6Bの判定性能を評価する。
なお、第2識別器6Bの判定性能の評価は、第1識別器5Bと同様に行われてよい。制御部11は、複数件の評価用データセット121Bに対して、第2識別器6Bから得られた出力値に基づいて評価用データ122Bに含まれる特徴を判定した結果が正解データ123Bにより示される正解と一致している比率(正答率)を算出することで、第2識別器6Bの判定性能を評価してもよい。また、制御部11は、第2識別器6Bによる特徴の判定が正しいと判定された評価用データセット121Bに設定された重みの合計を、各件の評価用データセット121Bに設定された重みの合計で割った商(重みを含む正答率)を、第2識別器6Bの判定性能の評価結果として算出してもよい。また、制御部11は、禁忌データセットに対する第2識別器6Bによる特徴の判定が誤っているか否か、又は禁忌データセットに対する第2識別器6Bによる特徴の判定が誤っている数に基づいて、第2識別器6Bの判定性能を評価してもよい。
ステップS204では、制御部11は、性能判定部114として動作し、第1識別器5B及び第2識別器6Bに対する評価の結果に基づいて、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定する。第1識別器5Bの判定性能と第2識別器Bの判定性能との比較は、上記実施形態と同様の方法により行われてよい。
すなわち、第2識別器6Bの正答率が第1識別器5Bの正答率よりも低い場合に、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定してもよい。一方、第2識別器6Bの正答率が第1識別器5Bの正答率よりも低くはない場合、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していないと判定してもよい。
また、第2識別器6Bの重みを含む正答率が第1識別器5Bの重みを含む正答率よりも低い場合に、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定してもよい。一方、第2識別器6Bの重みを含む正答率が第1識別器5Bの重みを含む正答率よりも低くはない場合、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していないと判定してもよい。
また、第1識別器5Bから得られる出力値に基づいて禁忌データセットの評価用データ122Bに含まれる特徴を判定した結果が正解データ123Bにより示される正解と一致しているのに対して、第2識別器6Bから得られる出力値に基づいて禁忌データセットの評価用データ122Bに含まれる特徴を判定した結果が正解データ123Bにより示される正解と一致していない場合、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定してもよい。つまり、対象の禁忌データセットについて、第1識別器5Bでは特徴を正しく判定できるのに対して、第2識別器6Bでは特徴の判定を誤ってしまう場合に、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定してもよい。一方、そうではない場合、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していないと判定してもよいし、上記その他の指標に基づいて、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定してもよい。
ステップS205では、制御部11は、出力部115として動作し、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果を出力する。判定した結果の出力は、上記実施形態と同様に行われてよい。例えば、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果をそのまま出力装置15に出力してもよい。
また、例えば、上記第1のケースでは、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果に応じて、識別装置3Bへの第2識別器6Bの配信を禁止又は許可する指令を学習装置2Bに送信してもよい。あるいは、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果を学習装置2Bに配信して、第2識別器6Bを識別装置3Bに配信するか否かを学習装置2Bに判定させてもよい。
また、例えば、上記第2のケースでは、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果に応じて、第2識別器6Bの利用を禁止又は許可する指令を識別装置3Bに送信してもよい。あるいは、制御部11は、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化しているか否かを判定した結果を識別装置3Bに配信して、第2識別器6Bを利用するか否かを識別装置3Bに判定させてもよい。
また、例えば、上記第3のケースでは、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定した場合、制御部11は、学習装置2Bから受信した第2識別器6Bの識別装置3Bへの転送を禁止し、第1識別器5Bを利用する指令を識別装置3Bに送信してもよい。一方で、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していないと判定した場合、制御部11は、学習装置2Bから受信した第2識別器6Bを識別装置3Bに転送してもよい。
<識別装置>
識別装置3Bの制御部31は、ステップS301では、制御部31は、対象データ取得部311として動作し、識別する対象となる特徴を含む対象データ321Bを取得する。本変形例では、制御部31は、外部インタフェース34を介して計測装置41Bから対象データ321Bを取得する。ただし、対象データ321Bを取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
ステップS302では、制御部31は、特徴判定部312Bとして動作し、第1識別器5B又は第2識別器6Bを利用して、対象データ321Bに含まれる特徴を判定する。利用する識別器は、上記ステップS204における性能の評価結果に基づいて決定される。すなわち、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していると判定された場合には、制御部31は、第1識別器5Bを利用して対象データ321Bに含まれる特徴を判定する。一方、第2識別器6Bの判定性能が第1識別器5Bと比べて悪化していないと判定された場合には、制御部31は、第2識別器6Bを利用して対象データ321Bに含まれる特徴を判定する。
第1識別器5Bを利用する場合、制御部31は、第1学習結果データ224Bを参照して、学習済みの第1識別器5Bの設定を行う。続いて、制御部31は、取得した対象データ321Bを第1識別器5Bに入力して、第1識別器5Bの演算処理を実行することで、第1識別器5Bから出力値を取得する。そして、制御部31は、第1識別器5Bから取得した出力値に基づいて、対象データ321Bに含まれる特徴を判定する。当該判定は、上記実施形態と同様に行われてよい。
同様に、第2識別器6Bを利用する場合、制御部31は、第2学習結果データ229Bを参照して、学習済みの第2識別器6Bの設定を行う。続いて、制御部31は、取得した対象データ321Bを第2識別器6Bに入力して、第2識別器6Bの演算処理を実行することで、第2識別器6Bから出力値を取得する。そして、制御部31は、第2識別器6Bから取得した出力値に基づいて、対象データ321Bに含まれる特徴を判定する。
ステップS303では、制御部31は、出力部313として動作し、対象データ321Bに含まれる特徴を判定した結果を出力する。判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、対象データ321Bに含まれる特徴を判定した結果をそのまま出力装置36から出力してもよい。また、例えば、制御部31は、判定結果に応じて所定の出力処理を実行してもよい。具体例として、対象データ321Bが音データであり、音データの特徴として機械の異音が含まれるか否かを判定するケースでは、制御部31は、対象データ321Bに機械の異音が含まれると判定したときに、その機械の管理者の携帯端末にそのことを警告する電子メールの送信を当該出力処理として行ってもよい。
以上により、本変形例では、再学習又は追加学習により第2識別器6Bの識別性能が第1識別器5Bよりも悪化してしまった場合でも、対象のデータに表れる特徴を判定する処理の信頼性が損なわれてしまうのを防止することができる。