(57)【要約】  情報処理装置は、複数のクラス分類プログラムの集合から選択した少なくとも２つのクラス分類プログラムについて遺伝的処理を施し、遺伝的処理が施されたクラス分類プログラムに従って第１クラスに属する１以上の第１クラス学習データおよび第２クラスに属する１以上の第２クラス学習データを用いて作成した複数の評価識別器について、各学習データと識別境界との距離を取得し、第１クラス学習データおよび第２クラス学習データのそれぞれについて識別境界との距離の分布の統計量を算出し、第１クラス学習データの統計量と第２クラス学習データの統計量とに基づいて、第１クラスと第２クラスとの分離度が大きいほど適応度を高くするような適応度計算式を定義し、遺伝的処理が施されたクラス分類プログラムの適応度を算出し、適応度に応じて、遺伝的処理が施されたクラス分類プログラムを集合のいずれかのクラス分類プログラムと入れ替えるか否かを決定する。
2019171524.tif 000002
【特許請求の範囲】
【請求項１】
複数のクラス分類プログラムの集合から選択された少なくとも２つのクラス分類プログラムについて遺伝的処理を施す遺伝的処理部と、
前記遺伝的処理が施されたクラス分類プログラムに従って、第１クラスに属する１以上の第１クラス学習データおよび第２クラスに属する１以上の第２クラス学習データを用いて作成した複数の評価識別器について、各学習データと識別境界との距離を取得する距離取得部と、
前記第１クラス学習データおよび前記第２クラス学習データのそれぞれについて、識別境界との距離の分布の統計量を算出する統計量算出部と、
前記第１クラス学習データの前記統計量と、前記第２クラス学習データの前記統計量とに基づいて、前記第１クラスと前記第２クラスとの分離度が大きいほど適応度を高くするような適応度計算式を定義して、前記遺伝的処理が施されたクラス分類プログラムの適応度を算出する適応度算出部と、
前記適応度に応じて、前記遺伝的処理が施されたクラス分類プログラムを前記集合のいずれかのクラス分類プログラムと入れ替えるか否かを決定する決定部と、を備えることを特徴とする情報処理装置。
【請求項２】
前記距離取得部は、前記複数の評価識別器として、前記各学習データの交差検定を行うことで作成された複数の部分評価識別器を用いることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記各学習データについて重み係数を算出する係数算出部を備え、
前記適応度算出部は、前記重み係数を用いて、前記適応度を算出することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記係数算出部は、前記識別境界に近い学習データほど、大きい重みを付すことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記学習データは、画像データであり、
クラス分類プログラムに従って、前記画像データに対して画像変換処理を行う画像変換部と、
前記画像変換部によって画像変換処理がなされた前記画像データから特徴量を抽出する特徴量抽出部と、
前記特徴量を基に、前記評価識別器を生成する全体識別器生成部と、を備えることを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
学習データと識別境界との距離として、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅによって得られる正規化された識別マージンを用いることを特徴とする請求項１〜５のいずれか一項に記載の情報処理装置。
【請求項７】
前記適応度には、前記学習データに対する正解率と、前記第１クラスと前記第２クラスとの分離度の評価値とを反映させてあることを特徴とする請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記分離度の評価値は、交差検定識別マージン分離度であることを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記交差検定識別マージン分離度として、前記第１クラスの平均マージン値と前記第２クラスの平均マージン値との差、または前記第１クラスの最小マージン値と前記第２クラスの最小マージン値との差を用いることを特徴とする請求項８記載の情報処理装置。
【請求項１０】
遺伝的処理部が、複数のクラス分類プログラムの集合から選択された少なくとも２つのクラス分類プログラムについて遺伝的処理を施し、
距離取得部が、前記遺伝的処理が施されたクラス分類プログラムに従って、第１クラスに属する１以上の第１クラス学習データおよび第２クラスに属する１以上の第２クラス学習データを用いて作成した複数の評価識別器について、各学習データと識別境界との距離を取得し、
統計量算出部が、前記第１クラス学習データおよび第２クラス学習データのそれぞれについて、識別境界との距離の分布の統計量を算出し、
適応度算出部が、前記第１クラス学習データの前記統計量と、前記第２クラス学習データの前記統計量とに基づいて、前記第１クラスと前記第２クラスとの分離度が大きいほど適応度を高くするような適応度計算式を定義して、前記遺伝的処理が施されたクラス分類プログラムの適応度を算出し、
決定部が、前記適応度に応じて、前記遺伝的処理が施されたクラス分類プログラムを前記集合のいずれかのクラス分類プログラムと入れ替えるか否かを決定する、ことを特徴とする情報処理方法。
【請求項１１】
コンピュータに、
複数のクラス分類プログラムの集合から選択された少なくとも２つのクラス分類プログラムについて遺伝的処理を施す処理と、
前記遺伝的処理が施されたクラス分類プログラムに従って、第１クラスに属する１以上の第１クラス学習データおよび第２クラスに属する１以上の第２クラス学習データを用いて作成した複数の評価識別器について、各学習データと識別境界との距離を取得する処理と、
前記第１クラス学習データおよび第２クラス学習データのそれぞれについて、識別境界との距離の分布の統計量を算出する処理と、
前記第１クラス学習データの前記統計量と、前記第２クラス学習データの前記統計量とに基づいて、前記第１クラスと前記第２クラスとの分離度が大きいほど適応度を高くするような適応度計算式を定義して、前記遺伝的処理が施されたクラス分類プログラムの適応度を算出する処理と、
前記適応度に応じて、前記遺伝的処理が施されたクラス分類プログラムを前記集合のいずれかのクラス分類プログラムと入れ替えるか否かを決定する処理と、を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
遺伝的プログラミングによって、最適な解を求める技術が開示されている（例えば、特許文献１参照）。このような遺伝的プログラミングによって、良否判定対象に対して、良否の分類を行うクラス分類プログラムを自動生成する技術が望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／０６８７５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、遺伝的プログラミングによって、正解率に基づいてクラス分類プログラムを自動生成しようとすると、必ずしも汎化性の高いクラス分類プログラムが生成されるわけではない。【０００５】
１つの側面では、本発明は、汎化性の高いクラス分類プログラムを生成することができる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、情報処理装置は、複数のクラス分類プログラムの集合から選択された少なくとも２つのクラス分類プログラムについて遺伝的処理を施す遺伝的処理部と、前記遺伝的処理が施されたクラス分類プログラムに従って、第１クラスに属する１以上の第１クラス学習データおよび第２クラスに属する１以上の第２クラス学習データを用いて作成した複数の識別器について、各学習データと識別境界との距離を取得する距離取得部と、前記第１クラス学習データおよび第２クラス学習データのそれぞれについて、識別境界との距離の分布の統計量を算出する統計量算出部と、前記第１クラス学習データの前記統計量と、前記第２クラス学習データの前記統計量とに基づいて、前記第１クラスと前記第２クラスとの分離度が大きいほど適応度を高くするような適応度計算式を定義して、前記遺伝的処理が施されたクラス分類プログラムの適応度を算出する適応度算出部と、前記適応度に応じて、前記遺伝的処理が施されたクラス分類プログラムを前記集合のいずれかのクラス分類プログラムと入れ替えるか否かを決定する決定部と、を備える。
【発明の効果】
【０００７】
汎化性の高いクラス分類プログラムを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】実施例１に係る情報処理装置の全体構成を例示するブロック図である。
【図２】情報処理装置がクラス分類プログラムを自動生成する際に実行するフローチャートを例示する図である。
【図３】遺伝的プログラミングの概要を説明するための図である。
【図４】最良個体に係るクラス分類プログラムを用いた検査処理を行う際に実行するフローチャートを例示する図である。
【図５】ステップＳ４の進化過程処理の詳細を例示するフローチャートである。
【図６】進化過程処理の概要を例示する図である。
【図７】各学習世代での最良個体１つに注目し、そのＫ−分割交差検定時の各学習データの識別マージン値を１次元軸上にプロットした模式図を例示する図である。
【図８】Ｋ−分割交差検定時の学習の概要を例示する図である。
【図９】（ａ）および（ｂ）は各データの識別マージン値を求める過程を例示する図である。
【図１０】適応度の算出処理を表すフローチャートを例示する図である。
【図１１】（ａ）〜（ｄ）は実施例１に従って検証した結果を示す図である。
【図１２】実施例２に係る情報処理装置の全体構成を例示するブロック図である。
【図１３】重み付けを例示する図である。
【図１４】適応度の算出処理を表すフローチャートを例示する図である。
【図１５】遺伝的処理部、入替部および画像処理部のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、実施例について説明する。
【実施例１】
【００１０】
図１は、実施例１に係る情報処理装置５００の全体構成を例示するブロック図である。図１で例示するように、情報処理装置５００は、画像撮影装置１００、遺伝的処理部１５０、自動生成制御部２００、画像処理部３００、出力装置４００などを備える。画像処理部３００は、画像入力部１０、学習部２０、学習結果記憶部４０、画像検査処理部５０などとして機能する。学習部２０は、画像変換部２１、特徴量抽出部２２、入力データ作成部２３、パラメータ設定部２４、全体識別器生成部２５、識別マージン算出部２６、統計量算出部２７、ペナルティ算出部２９、適応度算出部３０などとして機能する。【００１１】
画像撮影装置１００は、カメラなどの撮影装置である。画像撮影装置１００は、対象物を撮影する。対象物とは、クラス分類（良品／不良品の２クラス分類の場合は良否判定）の対象である。画像撮影装置１００は、対象物を撮影することで、学習用画像、良否判定用画像などを取得する。学習用画像とは、良否判定用の識別器を生成するために用いる画像である。良否判定用画像とは、良否判定を行うための画像である。【００１２】
出力装置４００は、判定結果を出力するための表示装置などである。出力装置４００は、画像検査処理部の検査結果として画面などに判定結果を表示する。【００１３】
遺伝的処理部１５０および自動生成制御部２００は、遺伝的プログラミング（ＧＰ：Ｇｅｎｅｔｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ）を用いてクラス分類プログラムを自動生成する。クラス分類プログラムは、それぞれ個別の画像処理を行うための複数の要素フィルタを備えている。これら複数の要素フィルタを木構造の形で組み合わせて一連のフィルタ処理を実行することにより、目的とするクラス分類を実現することができる。木構造フィルタ列の集団に対して、交叉または突然変異という遺伝的処理を施すことで、適応度の高いクラス分類プログラムの生成を行う。適応度とは、目的とするクラス分類結果に対して、自動生成した木構造フィルタ列の出力結果がどの程度良いものであるかの指標である。所定の閾値以上の適応度を持つ木構造フィルタが得られた場合に学習完了とみなす。その場合に得られた木構造フィルタ列が、目的のクラス分類を実行するクラス分類プログラムとなる。【００１４】
図２は、情報処理装置５００がクラス分類プログラムを自動生成する際に実行するフローチャートを例示する図である。図３は、遺伝的プログラミングの概要を説明するための図である。以下、図２および図３を参照しつつ、情報処理装置５００がクラス分類プログラムを自動生成する処理について説明する。【００１５】
まず、遺伝的処理部１５０は、初期個体を作成する（ステップＳ１）。図３において、円形状の「個体」として示したもののそれぞれが、木構造フィルタ列を有するクラス分類プログラムを表している。すなわち、１つの個体が１つのクラス分類プログラムであり、木構造のフィルタ列を有する。複数の初期個体を生成することで、親の母集団（集合）を生成することができる。【００１６】
次に、遺伝的処理部１５０は、親の母集団から２個体をランダムに選択して取り出す（ステップＳ２）。次に、遺伝的処理部１５０は、ステップＳ２で取り出した２個体について、遺伝的処理を行うことで、子個体を生成する（ステップＳ３）。遺伝的処理とは、木構造のフィルタ列に対して交叉または突然変異の遺伝的処理を行う処理のことである。本実施例においては、遺伝的処理によって、画像変換部２１による画像変換処理、特徴量抽出部２２による特徴量抽出処理、およびパラメータ設定部２４によるパラメータ設定処理が生成される。次に、遺伝的処理部１５０は、ステップＳ３で生成された子個体について、学習部２０に進化過程処理を実行させる（ステップＳ４）。次に、遺伝的処理部１５０は、子個体について、学習部２０に適応度を算出させる（ステップＳ５）。【００１７】
次に、遺伝的処理部１５０は、全ての子個体が終了したか否かを判定する（ステップＳ６）。すなわち、自動生成制御部２００は、ステップＳ２で取り出された２個体から全ての子個体の生成が終了したか否かを判定する。ステップＳ６で「Ｎｏ」と判定された場合、ステップＳ３から再度実行される。ステップＳ６で「Ｙｅｓ」と判定された場合、自動生成制御部２００は、適応度に応じて個体を１つ決定する。例えば、自動生成制御部２００は、適応度の最も高い個体を最良個体として１つ決定し、ルーレットによるランダム選択により個体を１つ決定する。自動生成制御部２００は、決定した２つの個体を親の母集団の２個体と入れ替える（ステップＳ７）。【００１８】
次に、自動生成制御部２００は、親の母集団において、各個体の適応度のうち最大値が閾値を上回ったか否かを判定する（ステップＳ８）。ステップＳ８で「Ｎｏ」と判定された場合、ステップＳ２から再度実行される。ステップＳ８で「Ｙｅｓ」と判定された場合、自動生成制御部２００は、適応度が閾値を上回る個体を最良個体として保存する（ステップＳ９）。具体的には、自動生成制御部２００は、学習結果記憶部４０に最良個体（クラス分類プログラム）を記憶させる。本実施例においては、自動生成制御部２００は、最良個体を生成した場合の識別器についても、学習結果記憶部４０に記憶させる。これにより、所望のクラス分類プログラムを自動生成することができる。【００１９】
図４は、最良個体に係るクラス分類プログラムを用いた検査処理を行う際に実行するフローチャートを例示する図である。検査処理とは、学習の結果として得られた最良のクラス分類プログラムを用いて、実際に良否判定を必要とする対象物に対して良否判定を行う処理のことである。図４で例示するように、画像検査処理部５０は、学習結果記憶部４０に記憶されている最良個体の木構造フィルタを設定する（ステップＳ１１）。すなわち、画像検査処理部５０は、最良のクラス分類プログラムの画像変換処理および特徴量抽出部処理を設定する。次に、画像検査処理部５０は、学習結果記憶部４０に記憶されている最良個体の識別器を設定する（ステップＳ１２）。【００２０】
次に、画像検査処理部５０は、画像入力部１０から良否判定用画像を受け取る（ステップＳ１３）。次に、画像検査処理部５０は、ステップＳ１３で受け取った良否判定用画像に対して画像変換処理を行う（ステップＳ１４）。次に、画像検査処理部５０は、変換後の良否判定用画像に対して、特徴量抽出処理を行う（ステップＳ１５）。次に、画像検査処理部５０は、ステップＳ１５で抽出した特徴量を入力データとして識別器に入力する（ステップＳ１６）。次に、画像検査処理部５０は、識別器を用いて、入力データの良否を分類する（ステップＳ１７）。次に、出力装置４００は、画像検査処理部５０の分類結果を出力する（ステップＳ１８）。以上の処理により、最良個体に係るクラス分類プログラムを用いて、良否判定用画像の良否を分類することができる。【００２１】
以下では、ステップＳ４の進化過程処理の詳細およびステップＳ５の適応度の算出処理の詳細について説明する。【００２２】
図５は、ステップＳ４の進化過程処理の詳細を例示するフローチャートである。図６は、進化過程処理の概要を例示する図である。図５および図６を参照しつつ、ステップＳ４の進化過程処理の詳細について説明する。なお、進化過程処理は、個体ごとに定まっている。したがって、個体が異なると、進化過程処理において、画像変換部２１、特徴量抽出部２２、入力データ作成部２３、パラメータ設定部２４および全体識別器生成部２５の処理内容が異なることになる。【００２３】
図５および図６で例示するように、画像入力部１０は、画像撮影装置１００から受け取った複数枚の学習用画像のうち、未処理の学習用画像を学習部２０に入力する（ステップＳ２１）。図６で例示されている複数枚の学習用画像ｓｒｃは、同じ学習用画像である。【００２４】
次に、画像変換部２１は、学習用画像ｓｒｃに対して画像変換処理を行う（ステップＳ２２）。図６で例示されている複数の画像変換フィルタＣは、それぞれ異なる画像変換を行うフィルタを表している。図６の例では、１枚の学習用画像ｓｒｃに対して異なる複数の画像変換フィルタＣによって画像変換処理を行う場合、２枚の学習用画像ｓｒｃを用いて１つの画像変換フィルタＣによって画像変換処理を行う場合、などが含まれている。【００２５】
次に、特徴量抽出部２２は、変換後の学習用画像から特徴量を抽出する（ステップＳ２３）。図６で例示されている複数の画像特徴抽出処理Ｆは、異なる画像抽出フィルタであってもよく、同じ画像抽出フィルタであってもよい。図６の例では、複数の画像変換フィルタＣおよび複数の画像特徴抽出処理Ｆが形成する木構造が、木構造のフィルタ列に相当する。【００２６】
次に、入力データ作成部２３は、抽出した特徴量を入力データＤとして全体識別器生成部２５に入力する（ステップＳ２４）。例えば、入力データＤは、複数の特徴量をベクトル化した特徴ベクトルである。画像入力部１０は、学習用画像が終了したか否かを判定する（ステップＳ２５）。すなわち、画像入力部１０は、未処理の学習用画像が残っていないかが判定される。ステップＳ２５で「Ｎｏ」と判定された場合、ステップＳ２１から再度実行される。この場合、ステップＳ２１では、未処理の次の学習用画像が学習部２０に入力されることになる。【００２７】
ステップＳ２５で「Ｙｅｓ」と判定された場合、パラメータ設定部２４は、識別器のパラメータを設定することで、識別器プロパティを設定する（ステップＳ２６）。本実施例においては、識別器としてＳＶＭ識別器を用いる。ＳＶＭは、機械学習型識別器のことであり、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅのことである。パラメータ設定部２４は、例えば、絶対値の設定を行う絶対値フィルタＰａを設定し、相対的な調節を行う相対値フィルタＰｒを設定する。【００２８】
次に、全体識別器生成部２５は、入力データ作成部２３から入力された全ての入力データを用いて、パラメータ設定部２４が設定した識別器プロパティに従って、識別器を生成する（ステップＳ２７）。例えば、全体識別器生成部２５は、４種類のＳＶＭカーネル（ＬＩＮＥＡＲ，ＰＯＬＹＮＯＭＩＡＬ，ＲＢＦ，ＳＩＧＭＯＩＤ）を設定することで、識別器を生成する。以上のステップＳ２１〜ステップＳ２７の処理の実行によって、進化過程処理が終了する。【００２９】
続いて、ステップＳ５の適応度算出処理の詳細について説明する。まず、適応度の定義について説明する。例えば、適応度の定義において、学習用画像に基づく正解率を利用することが考えられる。正解率として、全ての学習用画像を用いて生成した識別器による学習用画像の正解率、学習用画像に対するＫ−分割交差検定の正解率、などが挙げられる。Ｋ−分割交差検定とは、学習用画像をＫ個のグループに分割して交差検定をＫ回繰り返し、その合計（正解率の平均）を正解率とみなすものである。分割数Ｋをｆｏｌｄ数と呼ぶ。本実施例においては、一例としてＫ−分割交差検定の正解率について検討する。なお以降では簡略化のため、単に交差検定と記述する。【００３０】
一般的には、交差検定の正解率が高いほど適応度が高くなるような適応度定義式を利用することにより、汎化性のある学習結果（クラス分類プログラム）を生成することができる。しかしながら、数量が限られた学習用画像では、汎化性が高い解が必ずしも得られないおそれがある。特に、学習用画像数が少ない場合は、正解率に差異が生じ難いため、汎化性能の不十分な学習結果が得られる場合がある。例えば、学習用画像が１０枚の場合、正解率は１０％間隔でしか得ることができず、適応度の差異が生じ難い。したがって、正解率が同じ学習結果の中で汎化性能の低い個体が選ばれる可能性もあり、必ずしも十分な分類精度を得ることができるわけではない。【００３１】
そこで、本実施例では汎化性の高いクラス分類プログラムを生成するために、正解率だけでなく、交差検定時に得られる各学習用画像の識別境界からの距離を利用する。本実施例においては、一例として、当該距離として、各学習用画像の識別境界からのマージン値（ＳＶＭ識別マージン値）を利用する。通常、ＳＶＭによるクラス分類では、内部で得られる評価スコア（識別マージン値）を利用し、そのマージン値が分類基準値より大きいか小さいかによって、２クラスの内のいずれのクラスに分類されるかを決めることになっている。【００３２】
以下では、良否の判定を対象とし、分類基準値をゼロ、マージン値が正の場合に良（ＯＫ）と判定し、負の場合に不良（ＮＧ）と判定する場合について説明する。本実施例では、識別マージン値の統計量を利用し、ＯＫデータ側の分布とＮＧデータ側の分布との差異（分離度）が大きいほど、適応度が高くなるように適応度を定義する。【００３３】
図７は、各学習世代での最良個体１つに注目し、そのＫ−分割交差検定時の各学習用画像の識別マージン値を１次元軸上にプロットした模式図を例示する図である。図７の例では、学習用画像は１０個で、そのうち学習用良データ（ＯＫデータ）が５個で、学習用不良データ（ＮＧデータ）が５個と仮定してある。【００３４】
学習用良データの識別マージン値が正であれば良品として判定されていることになり、判定結果は正解となる。学習用良データの識別マージン値が負であれば不良品として判定されていることになり、判定結果は不正解となる。このようにして各世代の正解率を算出すると、例えば、第１００世代では正解率＝０．８となり、第２００世代以降は正解率＝１．０で一定となる。したがって、正解率だけを学習の基準にしている場合、それ以上は学習が進行しないことになる。【００３５】
一方、汎化性能の高い学習結果を得るためには、図７で例示するように、世代が進むにつれて、識別マージン値のＯＫ側およびＮＧ側の分布が次第に拡大する（離れる）ことが望ましい。学習用画像において両方の分布が離れていれば、未知のデータが判定される場合に、余裕を持って正しく判定することが可能になる。本来、ＳＶＭは識別マージン値が最大となる学習結果を得るための手法であるが、学習途中の交差検定においては識別マージン値が最大となることが保証されていない。本実施例では、交差検定時の各学習用画像の識別マージン値の分布を拡大する方向に学習を進めることにより、汎化性の高い学習結果を得るものである。適応度の基本定義は下記式（１）のように表される。
適応度＝正解率＋交差検定識別マージン分離度      （１）【００３６】
ここで、交差検定時の学習の概要および識別マージン値の算出方法について説明する。図８は、Ｋ−分割交差検定時の学習の概要を例示する図である。図８で例示するように、学習用良データが５個で、学習用不良データが５個の合計１０個の学習用画像を用いるものとする。１０個の学習用画像に対して交差検定をｆｏｌｄ数＝５で行う場合、図８のように判定評価用のデータを２個ずつ確保し、残りの８個を用いて部分評価識別器を生成する。生成された部分評価識別器を用いて確保していた２個のデータの良否判定を実施する。この手順を複数回（５回）繰り返すことで、複数個（５個）の部分評価識別器が生成され、学習用画像１０個全ての良否判定を実行したことになり、正解率を求めることができる。この交差検定の正解率が高いということは、遺伝的プログラミングで生成した木構造要素フィルタが未知のデータに対しても効果的に働く可能性が高いことを示している。一方、全ての学習用画像を用いて生成した識別器について、学習用画像全体を処理することにより、その正解率および各データの識別マージン値を同様に求めることもできる。この場合の識別器は全体評価識別器と見なすことができる。識別マージン値の統計量を求める際に、この全体評価識別器についてのマージン値も含めて算出しても構わない。全体評価識別器および上記複数の部分評価識別器を合わせたものを評価識別器と呼ぶ。【００３７】
図９（ａ）および図９（ｂ）は、各データの識別マージン値（Ｍｉ）を求める過程を例示する図である。図９（ａ）は交差検定の３回目を例示し、図９（ｂ）は４回目を例として挙げている。８個の学習用画像で生成した特徴空間内の識別境界に対して、残りの学習用画像２個がどれだけ離れているかを表す距離が、各学習用画像の識別マージン値として求められる。特徴空間を正規化することにより、この距離の基準を±１に設定することができる。【００３８】
さらに具体的な例について説明する。遺伝的プログラミングの学習では、適応度を０．０〜１．０の範囲に正規化し、適応度が１．０に向かって増加して行くように学習を進めることが多い。そのためには、交差検定の識別マージン分離度をペナルティ項として適応度定義式に加える方式が適している。そこで、下記式（２）で表すように、分離度が大きいほどペナルティ量が小さくなるように定義し、最終的な適応度が増加するように設定することが好ましい。
適応度＝正解率−ＳＶＭ識別マージンペナルティ      （２）【００３９】
学習用良データの識別マージン値分布と学習用不良データの識別マージン値分布の距離（間隔）の指標としては、平均値、最大値、最小値などの基本統計量を用いることができる。この指標に基づいて、識別マージン値についてのペナルティ量の定義に関して、複数の定義式が考えられる。その代表例を下記式（３）〜（５）のように表す。
ＳＶＭマージンペナルティ＝１．０／（ＯＫ側平均マージン値−ＮＧ側平均マージン値）      （３）
ＳＶＭマージンペナルティ＝１．０−（ＯＫ側最小マージン値−ＮＧ側最大マージン値）      （４）
ＳＶＭマージンペナルティ＝（ＯＫ側最小マージン値−１．０）＋（−１．０−ＮＧ側最大マージン値）      （５）【００４０】
学習中に一つの定義を使い続けるだけでなく、複数の定義を切り替えて使用することなども可能である。例えば、学習の序盤は上記式（３）の定義に従い、学習の後半では上記式（４）の定義を用いることなども有効である。【００４１】
上記のＳＶＭマージンペナルティを用いる場合、適応度の定義も下記式（６）または下記式（７）のような異なった形式が考えられる。なお、各項に適当な係数を掛けることにより適応度の範囲を調節することも可能である。
適応度＝正解率−ＳＶＭ識別マージンペナルティ      （６）
適応度＝正解率−ＳＶＭ識別マージンペナルティ−識別器ペナルティ      （７）
ここで、識別器ペナルティとは、識別器について過学習を抑制するためのペナルティ項（特徴次元数・サポートベクトル数・木構造サイズなどにより構成）である。【００４２】
図１０は、以上のように説明した適応度の算出処理を表すフローチャートを例示する図である。図１０で例示するように、適応度算出部３０は、学習用画像に対して交差検定を行うことで、正解率を算出する（ステップＳ３１）。次に、識別マージン算出部２６は、各学習用画像の識別マージン値を算出することで識別マージン値を取得する（ステップＳ３２）。次に、統計量算出部２７は、識別マージン値の統計量を算出する（ステップＳ３３）。次に、ペナルティ算出部２９は、識別マージン値の統計量に基づいて、ペナルティ量を算出する（ステップＳ３４）。次に、適応度算出部３０は、識別器のペナルティ量を算出する（ステップＳ３５）。次に、適応度算出部３０は、適応度を算出する（ステップＳ３６）。【００４３】
本実施例によれば、複数のクラス分類プログラムの集合から選択された少なくとも２つのクラス分類プログラムについて遺伝的処理が施される。遺伝的処理が施されたクラス分類プログラムに従って、第１クラス（良）に属する１以上の第１クラス学習データ（学習用良データ）および第２クラス（不良）に属する１以上の第２クラス学習データ（学習用不良データ）を用いて作成した複数の識別器について、各学習データと識別境界との距離が取得される。学習用良データおよび学習用不良データのそれぞれについて、識別境界との距離の分布の統計量が算出され、学習用良データの統計量と、学習用不良データの統計量とに基づいて、学習用良データと学習用不良データとの分離度が大きいほど高くなるような適応度が用いられる。この適応度に応じて、遺伝的処理が施されたクラス分類プログラムを親の集団のいずれかのクラス分類プログラムと入れ替えるか否かを決定することで、汎化性の高いクラス分類プログラムを自動生成することができるようになる。【００４４】
図１１（ａ）〜図１１（ｄ）は、本実施例に従って検証した結果を示す図である。図１１（ａ）のように、円形部品の表面にキズが無い良画像と、円形部品の表面にキズ不良が生じた不良画像とを用いた。良品にも小さなキズ（短い線分で描画）は多数存在し、所定の長さ／太さ以上の線分だけをキズ不良と仮定している。図１１（ｂ）で例示するように、個体数５０個、学習用画像４０枚で４００世代まで学習し、良否判定用画像１６０枚で良否判定の正解率を調べた。【００４５】
学習時の適応度の定義式には、下記式（８）、（９）を用いた。ＳＶＭ識別マージンペナルティが適応度に与える影響の度合いは、ペナルティ量に対して掛ける重みで調節することができる。重みを大きくすればペナルティ量の影響が相対的に大きくなる。図１１の検証では、ペナルティ量として重み係数０．２を掛けて適応度を計算している。
適応度＝正解率−ＳＶＭ識別マージンペナルティ      （８）
ＳＶＭ識別マージンペナルティ＝０．２×（（１．０−ＯＫｍｉｎ））＋（−１．０−ＮＧｍａｘ））      （９）
ＯＫｍｉｎ：ＯＫデータ側の最小マージン値
ＮＧｍａｘ：ＮＧデータ側の最大マージン値【００４６】
図１１（ｃ）および図１１（ｄ）は、学習世代の進行に応じた適応度の変化を例示する。左側が、ＳＶＭ識別マージンを考慮せずに正解率に応じて適応度を用いて学習した結果である。右側が、ＳＶＭ識別マージンのクラス間分離度を利用した適応度定義式を用いて学習した結果である。実線が最大適応度を示し、点線が平均適応度を示している。いずれの学習条件でも順調に適応度が上昇しているのが確認できる。なお、識別マージンペナルティの分だけ、右側のグラフは全体的に数値が低下して見えている。【００４７】
幾つかの世代について、良否判定用画像１６０枚に対する良否判定結果を比較して示す。ＳＶＭ識別マージン値に基づく適応度を用いた右側の方が、数％程度の正解率の向上が確認できた。
【実施例２】
【００４８】
実施例２では、学習用画像毎の識別マージン値の統計量を計算し、統計的にマージンの小さな学習用画像が識別に重要であるとみなして、その学習用画像の重み付けを大きくするように適応度を定義する。【００４９】
図１２は、実施例２に係る情報処理装置５００ａの全体構成を例示するブロック図である。図１２で例示するように、情報処理装置５００ａが実施例に係る情報処理装置５００と異なる点は、学習部２０が重み算出部２８をさらに備える点である。【００５０】
図１３は、重み付けを例示する図である。図１３の例では、学習用画像は全部で８個とし、各世代で子個体を３個ずつ生成しながら遺伝的プログラミング学習を続ける様子を例示している。実施例１と同様に、交差検定によって得られた学習用画像のそれぞれの識別マージン値が８個ずつ描画されている。図１３では、学習用画像ごとに模様分けして描かれている。【００５１】
図１３で例示するように、例えば、各世代で３個の子個体＃１、＃２、＃３が生成される。これらは、それぞれ異なった木構造要素フィルタを備えており、別々の画像変換、画像特徴抽出、識別器生成パラメータに従って識別器を生成して交差検定を実行する。したがって、同じ学習用画像に対してそれぞれ異なる識別マージン値を持つことになる。しかしながら、例えば学習用不良データ＃１のように、条件が異なっていても概ねいつも識別境界の近く（マージン値＝０）に位置する学習用画像が存在する。一方で、学習用不良データ＃４のように、識別境界から大きく離れたマージン値を持つ学習用画像も存在する。これは、画像検査のデータとして見た場合、学習用不良データ＃１は良否判定が難しい不良品であり、学習用不良データ＃４は不良品であることが明らかである場合が多い。【００５２】
実施例１で目指したように、学習用良データと学習用不良データとの識別マージン値の分離度を高めるためには、識別の難しい学習用不良データ＃１のマージン値が識別境界から離れる（負値の方向に大きくなる）ように学習を進めることが効果的と考えられる。したがって、学習用画像ごとに複数の画像分類プログラムあるいは複数の世代にわたって識別マージン値の統計量を計算し、平均マージン値（絶対値として算出）の小さなデータの重みを大きくし、学習用良データの分布と学習用不良データの分布との間の距離を求めるようにする。【００５３】
図１４は、以上のように説明した適応度の算出処理を表すフローチャートを例示する図である。図１４のフローチャートが図１０のフローチャートと異なる点は、ステップＳ３３とステップＳ３４との間に、ステップＳ３３ａが実行される点である。重み算出部２８は、統計量の小さなデータの重みを大きくする（ステップＳ３３ａ）。その後、ステップＳ３４以降の処理が実行される。【００５４】
本実施例によれば、識別境界に近い学習用画像ほど、重みが大きくなるように重み係数が算出される。この構成によれば、識別の難しい学習用画像が識別境界から離れるように学習が進むことになる。それにより、より汎化性の高いクラス分類プログラムを生成することができる。【００５５】
なお、本実施例において、各学習用画像の重みの算出例として下記の方法を用いてもよい。
識別マージンペナルティ＝各学習用画像の識別マージン値の重み付き平均
重み＝１．０／各学習用画像の平均マージン
平均マージンは、直前の１世代、あるいは、所定の世代数における、全ての子個体についての識別マージン値の平均値（絶対値で算出）として求める。【００５６】
（他の例）
交差検定の識別マージンの分離度が大きい場合は、同時に、交差検定の正解率も高くなっていることが予想される。従って、正解率を用いることなく、下式のように適応度を定義することも可能である。
適応度＝交差検定識別マージン分離度
あるいは、ペナルティ項として捉えると
適応度＝１．０−ＳＶＭ識別マージンペナルティ【００５７】
また、上記の適応度定義にも、識別器についてのペナルティ項（特徴次元数・サポートベクトル数・木構造サイズなど）を加えることもできる。なお、交差検定の使用に当たっては、Ｋ−分割交差検定のデータ分割の仕方を変えてデータをシャッフルしながら交差検定自体を複数回繰り返すことにより、学習用画像数以上にデータの使用回数を増大させて実施する方法も可能である。それにより、正解率や識別マージンの分布の統計量の算出精度を高めることもできる。【００５８】
なお、上記各例では、良否判定という２クラス分類について説明したが、３分類以上の多クラス分類を行ってもよい。この場合、それぞれの２クラスに対して、識別境界との距離の分布の統計量を算出し、それぞれの２クラス分類についての適応度を統合することにより、多クラス分類の適応度を算出してもよい。【００５９】
上記各例においては、良否判定（クラス分類）対象として画像を用いたが、それに限られない。音声データなどの他のデータをクラス分類対象としてもよい。【００６０】
図１５は、遺伝的処理部１５０、自動生成制御部２００および画像処理部３００のハードウェア構成を説明するためのブロック図である。図１５で例示するように、遺伝的処理部１５０、自動生成制御部２００および画像処理部３００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３等を備える。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。【００６１】
ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置１０３は、情報処理プログラムを記憶している。なお、本実施例においては遺伝的処理部１５０、自動生成制御部２００および画像処理部３００の各部は、プログラムの実行によって実現されているが、専用の回路などのハードウェアを用いてもよい。【００６２】
上記各例において、遺伝的処理部１５０が、複数のクラス分類プログラムの集合から選択された少なくとも２つのクラス分類プログラムについて遺伝的処理を施す遺伝的処理部の一例である。識別マージン算出部２６が、前記遺伝的処理が施されたクラス分類プログラムに従って、第１クラスに属する１以上の第１クラス学習データおよび第２クラスに属する１以上の第２クラス学習データを用いて作成した複数の識別器について、各学習データと識別境界との距離を取得する距離取得部の一例である。統計量算出部２７が、前記第１クラス学習データおよび第２クラス学習データのそれぞれについて、識別境界との距離の分布の統計量を算出する統計量算出部の一例である。適応度算出部３０が、前記第１クラス学習データの前記統計量と、前記第２クラス学習データの前記統計量とに基づいて、前記第１クラスと前記第２クラスとの分離度が大きいほど適応度を高くするような適応度計算式を定義して、前記遺伝的処理が施されたクラス分類プログラムの適応度を算出する適応度算出部の一例である。自動生成制御部２００が、前記適応度に応じて、前記遺伝的処理が施されたクラス分類プログラムを前記集合のいずれかのクラス分類プログラムと入れ替えるか否かを決定する決定部の一例である。重み算出部２８が、前記各学習データについて重み係数を算出する係数算出部の一例である。画像変換部２１が、クラス分類プログラムに従って、前記画像データに対して画像変換処理を行う画像変換部の一例である。特徴量抽出部２２が、前記画像変換部によって画像変換処理がなされた前記画像データから特徴量を抽出する特徴量抽出部の一例である。全体識別器生成部２５が、前記特徴量を基に、前記評価識別器を生成する全体識別器生成部の一例である。【００６３】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６４】
１０  画像入力部
２０  学習部
２１  画像変換部
２２  特徴量抽出部
２３  入力データ作成部
２４  パラメータ設定部
２５  全体識別器生成部
２６  識別マージン算出部
２７  統計量算出部
２８  重み算出部
２９  ペナルティ算出部
３０  適応度算出部
４０  学習結果記憶部
５０  画像検査処理部
１００  画像撮影装置
１５０  遺伝的処理部
２００  自動生成制御部
３００  画像処理部
４００  出力装置
５００  情報処理装置
【図１】
2019171524.tif 000003
【図２】
2019171524.tif 000004
【図３】
2019171524.tif 000005
【図４】
2019171524.tif 000006
【図５】
2019171524.tif 000007
【図６】
2019171524.tif 000008
【図７】
2019171524.tif 000009
【図８】
2019171524.tif 000010
【図９】
2019171524.tif 000011
【図１０】
2019171524.tif 000012
【図１１】
2019171524.tif 000013
【図１２】
2019171524.tif 000014
【図１３】
2019171524.tif 000015
【図１４】
2019171524.tif 000016
【図１５】
2019171524.tif 000017
【国際調査報告】
2019171524.tif 000018
2019171524.tif 000019
2019171524.tif 000020
2019171524.tif 000021