IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セイコーエプソン株式会社の特許一覧

特開2024-143895データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム
<>
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図1
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図2
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図3
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図4
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図5
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図6
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図7
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図8
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図9
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図10
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図11
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図12
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図13
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図14
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図15
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図16
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図17
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図18
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図19
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図20
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図21
  • 特開-データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143895
(43)【公開日】2024-10-11
(54)【発明の名称】データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム
(51)【国際特許分類】
   G06N 3/086 20230101AFI20241004BHJP
   G06N 3/0985 20230101ALI20241004BHJP
【FI】
G06N3/086
G06N3/0985
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023056834
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】笠原 秀明
(57)【要約】
【課題】特定のデータ処理フィルターが有するパラメーターに変更を加えたりするなどのパラメーターに着目した個体の生成を容易に行うことできる技術を提供する。
【解決手段】データ処理シーケンスの生成方法は、(a)1世代の個体群を生成する工程と、(b)遺伝子と、ノードおよびパラメーターと、を対応付けた参照テーブルを参照して、個体を構成する遺伝子ごとに、ノードの1つである入力層と、ノードの他の1つであるフィルター層と、パラメーターとのいずれかを割り当てて、個体に応じた前記データ処理シーケンスを生成する工程と、(c)出力データと対象データに関連付けられた目標となる目標データとを比較して出力データと目標データとの類似度を示す評価値を算出する工程と、(d)複数のデータ処理シーケンスのそれぞれに対応する複数の評価値を用いて、基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える。
【選択図】図13
【特許請求の範囲】
【請求項1】
データ処理シーケンスの生成方法であって、
前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしており、
前記生成方法は、
(a)前記入力層および前記フィルター層の種類と、前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する工程と、
(b)前記遺伝子と、前記ノードおよび前記パラメーターと、を対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する工程と、
(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する工程と、
(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える、生成方法。
【請求項2】
請求項1に記載の生成方法であって、
前記工程(d)における前記予め定めた基準条件は、複数の前記評価値がそれぞれ示す複数の前記類似度のうちで最も値が高い前記類似度が、予め定めた終了閾値以上であるという条件であり、
前記工程(a)は、前記工程(d)において前記予め定めた基準条件を満たさない場合には、前回のルーチンによって生成した前記複数の個体のうちで、前記類似度が低い1つ以上の前記個体については、前記類似度が高い前記個体に対して交叉と突然変異との少なくとも一つを行うことで新たな前記個体に置き換え、前記類似度が高い前記個体を複製することで、今回のルーチンで用いる次世代の前記個体群を生成する次世代生成工程を含む、生成方法。
【請求項3】
請求項2に記載の生成方法であって、
前記工程(b)は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記遺伝子が表す前記ノードと前記パラメーターとを区別するためのデコード種別を関連付けた種別テーブルを生成する種別テーブル生成工程を含み、
前記参照テーブルは、前記種別テーブルを含む、生成方法。
【請求項4】
請求項3に記載の生成方法であって、
前記デコード種別は、前記ノードと前記パラメーターとの区別に加え、前記データ処理シーケンスの生成に用いられなかった未使用の前記遺伝子を区別するための種別を含み、
前記種別テーブル生成工程は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記遺伝子が表す前記ノードと前記パラメーターと前記未使用の前記遺伝子を区別するための前記デコード種別を関連付けた前記種別テーブルを生成する、生成方法。
【請求項5】
請求項3または請求項4に記載の生成方法であって、
前記次世代生成工程は、前記種別テーブルを参照して、交叉点と、前記突然変異を行う前記遺伝子と、の少なくともいずれか一方を決定し、前記交叉と前記突然変異との少なくとも一方を行う参照個体生成工程を含む、生成方法。
【請求項6】
請求項5に記載の生成方法であって、
前記参照個体生成工程は、前記突然変異によって前記個体を生成する場合において、前記突然変異を行う対象となる前記個体が有する前記複数の遺伝子のうちで、前記デコード種別として前記パラメーターが関連付けられた前記遺伝子に対して前記突然変異を行う種別参照変異工程を含む、生成方法。
【請求項7】
請求項6に記載の生成方法であって、
前記次世代生成工程は、さらに、前記種別テーブルを参照することなく、交叉と突然変異との少なくとも一つを行うことで前記個体を生成する通常個体生成工程を含み、
前記次世代生成工程は、予め定めた生成条件に従って、前記参照個体生成工程と、前記通常個体生成工程との少なくともいずれかを実行する、生成方法。
【請求項8】
請求項7に記載の生成方法であって、
前記生成条件は、前記前回のルーチンによって生成した前記複数の個体の中で前記類似度が高い前記個体のうちで、前記類似度が上位N番目(Nは1以上の整数)までの前記データ処理シーケンスの生成元である前記個体に対しては、前記種別参照変異工程を実行するという条件である、生成方法。
【請求項9】
データ処理シーケンスの生成装置であって、
前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしており、
前記生成装置は、
前記入力層および前記フィルター層の種類と、前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する個体群生成部と、
前記遺伝子と、前記ノードおよび前記パラメーターとを対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する遺伝子翻訳部と、
前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する算出部と、
前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する特定部と、を備える、生成装置。
【請求項10】
データ処理シーケンスの生成をコンピューターに実行させるためのコンピュータープログラムであって、
前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしており、
前記コンピュータープログラムは、
(a)前記入力層および前記フィルター層の種類と、前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する機能と、
(b)前記遺伝子と、前記ノードおよび前記パラメーターとを対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する機能と、
(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する機能と、
(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する機能と、を備える、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理シーケンスを生成する技術に関する。
【背景技術】
【0002】
従来、遺伝的プログラミングを用いることにより、個体を木構造のように構造的に表現する技術が知られている(特許文献1)。従来の技術では、遺伝的プログラミングを用いることにより、複数の画像処理フィルターを木構造に組み合わせた画像処理シーケンスを生成している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007-87055号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、遺伝的プログラミングを用いることにより、複数の画像処理シーケンスを生成し、基準条件を満たす画像処理シーケンスを特定している。画像処理フィルターには、画像処理に必要なパラメーターが、パラメーターの種類ごとに複数準備される場合がある。画像処理シーケンスが生成される場合には、このパラメーターについても設定される。特許文献1の技術では、個体を構成する画像入力層や画像フィルターを表す遺伝子に対してパラメーターが付加されている。この場合、複数の画像処理シーケンスを表す複数の個体を生成する場合に、ある画像処理フィルターが有するパラメーターに変更を加えたりするなどのパラメーターに着目した個体の生成を容易に行うことが困難な場合があった。このような課題は、画像を処理する画像処理シーケンスの生成に限らず、画像や電圧変化など種々のデータを処理するデータ処理シーケンスの生成にも共通する。
【課題を解決するための手段】
【0005】
本開示の第1形態によれば、データ処理シーケンスの生成方法が提供される。前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしている。このデータ処理シーケンスの生成方法は、(a)前記入力層および前記フィルター層の種類と、前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する工程と、(b)前記遺伝子と、前記ノードおよび前記パラメーターと、を対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する工程と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する工程と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える。
【0006】
本開示の第2形態によれば、データ処理シーケンスの生成装置が提供される。前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしている。このデータ処理シーケンスの生成装置は、前記入力層および前記フィルター層の種類と、前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する個体群生成部と、前記遺伝子と、前記ノードおよび前記パラメーターとを対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する遺伝子翻訳部と、前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する算出部と、前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する特定部と、を備える。
【0007】
本開示の第3形態によれば、データ処理シーケンスの生成をコンピューターに実行させるためのコンピュータープログラムが提供される。前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしている。このコンピュータープログラムは、(a)前記入力層および前記フィルター層の種類と、前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する機能と、(b)前記遺伝子と、前記ノードおよび前記パラメーターとを対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する機能と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する機能と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する機能と、を備える。
【図面の簡単な説明】
【0008】
図1】実施形態の生成システムを説明するための図。
図2】記憶装置を説明するための図。
図3】学習データ群の一例を示す図。
図4】遺伝子テーブルを説明するための図。
図5】一つの世代の個体群を説明するための図。
図6】生成過程の木構造のデータ処理シーケンスを示す図。
図7】表形式のデータ処理シーケンスと木構造のデータ処理シーケンスを示す図。
図8】接続条件テーブルを説明するための図。
図9】種別テーブルの一例を示す図。
図10】生成装置が実行する処理を示すフローチャート。
図11】ステップS10の接続条件テーブルの生成処理の詳細フローチャート。
図12】接続条件テーブルの生成処理を説明するための第1図。
図13】接続条件テーブルの生成処理を説明するための第2図。
図14】接続条件テーブルを示す図。
図15】特定データ処理シーケンスの生成処理の詳細フローチャート。
図16】ステップS308の詳細フローチャートを示す図。
図17】ステップS308の処理において参照される閾値テーブルを示す図。
図18】ステップS308を説明するための第1の図。
図19】ステップS308を説明するための第2の図。
図20】表形式のデータ処理シーケンスを示す図。
図21】参照個体生成工程の種別参照変異工程を説明するための図。
図22】利用処理工程のフローチャート。
【発明を実施するための形態】
【0009】
A.実施形態:
A-1.生成システムの構成:
図1は、実施形態の生成システム10を説明するための図である。生成システム10は、生成装置20とセンサー装置200とを備える。生成装置20とセンサー装置200とは、有線や無線によってデータを送受信可能である。センサー装置200は、対象の物理量を取得するセンサーであり、物理量である光の強さを検出して画像を生成する撮像装置や、物理量である電圧を取得する電圧センサーなどがある。本実施形態は、センサー装置200は撮像装置である。センサー装置200によって取得された撮像画像は、生成装置20に送信される。
【0010】
生成装置20は、データ処理後の所望とする目標データTMを得るための特定データ処理シーケンスDSqを生成するシーケンス生成機能と、シーケンス生成機能を実行する際に用いられる接続条件テーブル88を生成する接続条件生成機能と、データ処理機能とを有する。目標データTMは、データ処理シーケンスによるデータ処理の目的に応じて予め準備される。例えば、目標データTMは、データ処理シーケンスSqに入力される入力データIDの種別を判別することが目的である場合には、判別結果を示すデータである。また例えば、目標データTMは、入力データIDから所定の電圧や温度などの物理量を得たい場合には、物理量を示すデータである。本実施形態では、目標データTMは、目標画像である。
【0011】
データ処理機能は、データ処理シーケンスSqを用いて入力データIDをデータ処理する機能である。本実施形態の生成装置20は、入力データIDである撮像画像を元に、所望の目的を達成するための所望画像を得るためのデータデータ処理シーケンスDSqを自動で生成する。例えば、生成装置20は、センサー装置200によって撮像された工業製品である回路基板の画像を、特定データ処理シーケンスDSqを用いて画像処理することで、欠陥部分が黒画像、それ以外の部分が白画像で表された二値化画像を所望画像として出力する。例えば、この二値化画像を元に、欠陥部分の有無や位置がユーザーや装置によって特定されることで、工業製品の検査が行われる。
【0012】
シーケンス生成機能は、遺伝的プログラミングを用いて複数のデータ処理シーケンスSqを生成し、生成した複数のデータ処理シーケンスSqの中から所望とする画像処理後の画像を得るための特定データ処理シーケンスDSqを特定する。
【0013】
接続条件生成機能は、遺伝子座に配置された遺伝子の数値がどのシーケンス要素に対応するのかを決定するための接続条件テーブル88を生成する。本実施形態では、データ処理機能とシーケンス生成機能と接続条件生成機能とは、一つの生成装置20に搭載されているが、これに限定されるものではない。他の実施形態では、データ処理機能とシーケンス生成機能と接続条件生成機能とはそれぞれ、別々の装置に搭載されていてもよいし、クラウド上に存在していてもよい。
【0014】
生成装置20は、パーソナルコンピューターなどの電子計算機である。生成装置20は、プロセッサー25と、記憶装置70と、入力部150と、表示部160とを備える。プロセッサー25は、記憶装置70に記憶された各種プログラムを実行することで、生成装置20の動作を制御する。プロセッサー25の詳細な機能は後述する。記憶装置70は、RAMやROMなどのメモリーにより構成されている。記憶装置70には、プロセッサー25の各機能を実現するための各種プログラムと、データ処理シーケンスSqの生成のために用いる各種データとが記憶されている。記憶装置70の詳細は後述する。入力部150は、外部からの情報を受け付けるインタ-フェ-スである。入力部150は、例えば、センサー装置200からの撮像画像などのデータの入力を受け付けたり、ユーザーが他の装置を用いて生成した画像などのデータの入力を受け付けたりする。表示部160は、各種情報を表示する。表示部160は、例えば、液晶モニターである。
【0015】
プロセッサー25は、記憶装置70の各種プログラムを実行することで、シーケンス生成部30と、データ処理部40と、評価判定部46と、接続条件テーブル生成部55と、表示制御部60として機能する。なお、プロセッサー25によって実行される機能の一部は、ハードウェア回路によって実現されてもよい。ここで、本開示において、「プロセッサー」は、CPUやGPUを包含する用語である。
【0016】
シーケンス生成部30は、個体IVによって示された遺伝子の配列を木構造のように構造的に表現することで、シーケンス要素の組み合わせが異なる複数のデータ処理シーケンスSqによって構成されるシーケンスセットを生成する。データ処理シーケンスSqは、複数のシーケンス要素の組み合わせによって表されている。シーケンス要素としては、(i)データを入力するノードである入力層と、(ii)入力層と出力層との間の中間のノードである、データ処理を実行するフィルター層と、(iii)最終的なデータ処理後のデータである出力データPMを出力するノードである出力層と、(iV)フィルター層で実行されるデータ処理のパラメーターとがある。データ処理シーケンスSqは少なくとも一つのフィルター層を含む。入力層は、データ処理シーケンスSqの始端ノードである。出力層は、データ処理シーケンスSqの終端ノードである。
【0017】
シーケンス生成部30は、個体群生成部32と、遺伝子翻訳部34と、種別テーブル生成部36と、を備える。個体群生成部32は、一次元まに配列された複数の遺伝子によって構成される個体IVを生成する。個体IVを構成する各遺伝子は、シーケンス要素のうちで、入力層と、フィルター層の種類と、フィルター層のパラメーターごとのパラメーター値と、のいずれかを表す数値である。出現範囲を示す遺伝子の数値範囲ごとに、入力層とフィルター層とのいずれか、または、パラメーターのパラメーター値が割り当てられる。このように、本実施形態では、フィルター層に設定されるパラメーターも遺伝子によって表されている。以上のように、個体IVは、出力層を除くシーケンス要素のそれぞれに対応した遺伝子を配列することで生成される。
【0018】
個体群生成部32は、一つの世代Gごとに、予め定めた数の個体IVを生成する。本実施形態では、個体群生成部32は、一次元に遺伝子を配列することで、予め定めた遺伝子長の個体IVを生成する。一つの世代Gごとにおいて、複数のデータ処理シーケンスSqのシーケンス要素の組み合わせは異なる。個体群生成部32は、一回目の世代Gについては、個体IVの各遺伝子座に、0から1までの小数点第3位までの数値を遺伝子としてランダムに配置することで、複数の個体IVから構成される個体群84を生成する。個体群生成部32は、二回目以降の世代Gについては、前回の親世代Gの個体IVのうちで後述する評価値EVが高い個体IVから交叉と突然変異との少なくとも一つの手法を用いて個体IVを新たに生成することで、新たに生成した個体IVと、親世代Gで維持、すなわち親世代Gの個体IVを複製した個体IVとの集合である個体群84を生成する。
【0019】
遺伝子翻訳部34は、記憶装置70に記憶された後述する遺伝子テーブル82や接続条件テーブル88を参照することで、個体IVの各遺伝子を翻訳して木構造で表されたデータ処理シーケンスSqを生成する。遺伝子テーブル82や接続条件テーブル88は、遺伝子である数値の数値範囲ごとに対応するシーケンス要素と、各シーケンス要素の接続関係を規定したテーブルである。データ処理シーケンスSqは、個体IVと遺伝子テーブル82、または個体IVと接続条件テーブル88とによって表される。
【0020】
種別テーブル生成部36は、個体IVの各遺伝子が表すシーケンス要素の種別を遺伝子ごとに規定する種別テーブル92を生成する種別テーブル生成工程を実行する。種別テーブル92は、シーケンス生成機能によって特定データ処理シーケンスDSqを特定するために生成される個体IVの生成に用いられる。種別テーブル92は、個体IVの各遺伝子が表すシーケンス要素の種別であるデコード種別を遺伝子ごとに規定したテーブルである。種別テーブル92は、個体IVが有する全て、本実施形態では15個の遺伝子座No.に関連付けてデコード種別が規定される。このように、種別テーブル生成工程は、データ処理シーケンスSqの生成元である個体IVを構成する遺伝子ごとに、遺伝子が表すノードとパラメーターとを区別するためのデコード種別を関連付けた種別テーブル92を生成する。種別テーブル92の詳細は後述する。
【0021】
データ処理部40は、遺伝子翻訳部34が生成したデータ処理シーケンスSqや、記憶装置70に記憶された特定データ処理シーケンスDSqを用いて、入力層に入力された入力データIDをデータ処理して出力層からデータ処理後の出力データPMを出力する。
【0022】
評価判定部46は、1世代Gの複数の個体IVが示す複数のデータ処理シーケンスSqの中から、予め定めた基準条件を満たす特定データ処理シーケンスDSqを特定する。評価判定部46は、算出部47と、特定部49とを有する。
【0023】
算出部47は、入力データIDの一例である学習データLMを個体IVが示すデータ処理シーケンスSqによってデータ処理することで得られたデータ処理後の出力データPMと、学習データLMに関連付けられた目標となる目標データTMとを比較して、出力データPMと目標データTMとの類似度SDを示す評価値EVを算出する。算出部47は、1つの世代Gにおける複数の個体IVが示す複数のデータ処理シーケンスSqごとに、評価値EVを算出する。算出された評価値EVは、個体IVと関連付けて記憶装置70に記憶される。
【0024】
特定部49は、算出した評価値EVを用いてデータ処理シーケンスSqが予め定めた基準条件を満たすか否かを判定し、基準条件を満たすデータ処理シーケンスSqを特定データ処理シーケンスDSqとして特定する。
【0025】
評価値EVとしては、例えば、平均二乗誤差(MSE:Mean Squared Error)や、ピーク信号対雑音比(PSNR:Peak signal-to-noise ratio)や、構造的類似度(SSIM:Structural Similarity)の一つを用いることができる。MSEが評価値EVとして用いられる場合、MSEの値が小さい程、出力データPMと目標データTMとの類似度SDは高い。つまり、MSEの逆数が、類似度SDを示す。PSNRが評価値EVとして用いられる場合には、PSNRが大きい程、出力データPMと目標データTMとの類似度SDは高い。つまり、PSNRは類似度SDを示す。SSIMが用いられる場合には、例えば、データ、例えば画像データを小領域に分割して、小領域ごとに算出されたSSIMの平均値であるMSSIM(Mean SSIM)が評価値EVとして用いられる。MSSIMが評価値EVとして用いられる場合、MSSIMが大きい程、類似度SDは高い。つまり、MSSIMは類似度SDを示す。なお、評価値EVは、出力データPMおよび目標データTMが、入力データIDが良品または不良品であるかなどの判別結果を示す場合には、類似度SDは、例えば、複数の入力データIDに応じた出力データPMおよび目標データTMの一致率としてもよい。
【0026】
接続条件テーブル生成部55は、評価判定部46によって算出された評価値EVと、評価値EVに関連付けられた個体IVとを用いて、接続条件テーブル88を生成する。接続条件テーブル88は、目標データTMを目標とする所望データを出力するためのシーケンス要素の接続の相性を示す接続参考値RVを定めたテーブルである。具体的には、接続条件テーブル88は、接続された入力側ノード要素と出力側ノード要素の一対のノード要素である要素セットごとに接続参考値RVを定めたテーブルである。接続参考値RVは、一対の要素セットについて、データ処理シーケンスSqの構成要素として出現する確率を示す。接続参考値RVが大きい程、対応する要素セットが出現する確率は高くなる。接続条件テーブル88の生成方法については後述する。
【0027】
表示制御部60は、各種情報を表示部160に表示させる。表示制御部60は、例えば、特定データ処理シーケンスDSqや、出力データPMや、目標データTMや、評価値EVを表示部160に表示させる。
【0028】
図2は、記憶装置70を説明するための図である。記憶装置70は、学習データ群74と、ノード要素群80と、遺伝子テーブル82と、個体群84と、接続条件テーブル88と、種別テーブル92と、各種条件テーブル93と、特定データ処理シーケンスDSqと、各種プログラム94とを記憶する。
【0029】
各種条件テーブル93は、生成装置20によって実行する各種処理の条件が規定されている。例えば、各種条件テーブル93は、接続条件テーブル88の生成処理を実行する場合に用いる終了条件や、特定データ処理シーケンスDSqを特定するための基準条件や、次世代の個体群を生成するときの生成条件を規定する。特定データ処理シーケンスDSqは、特定部49によって予め定めた基準条件を満たすと判定されたデータ処理シーケンスSqである。特定データ処理シーケンスDSqは、例えば、複数のデータ処理層である複数のフィルター層を識別する層識別子と、層識別子の順番、すなわち接続関係とによって表される。各種プログラム94は、プロセッサー25によって実行されるプログラムである。
【0030】
図3は、学習データ群74の一例を示す図である。学習データ群74は、データ処理シーケンスSqによるデータ処理対象である学習データLMと、学習データLMに関連付けられた目標データTMとによって構成された学習セットSMを複数セット有する。学習データLMは、例えば、工業製品である回路基板の画像である。目標データTMは、欠陥部分DAが黒画像、それ以外の部分が白画像で表された二値化画像である。目標データTMは、良品を示す画像である良品データと、不良品を示す画像である不良品データとの2種類がある。不良品データは、例えば、予め欠陥部分の箇所が特定できている学習データLMを参考に、ユーザーが欠陥部分DAを黒画像に設定し、それ以外の部分を白画像に設定することで生成される。良品データは、欠陥部分DAが存在しないので、例えば、全体が白画像に設定される。複数の学習データLMはそれぞれ、製造番号が異なる同種の回路基板をセンサー装置200で撮像した画像である。
【0031】
図2のノード要素群80は、データ処理シーケンスSqにおいてノードを構成するノード要素の集合である。ノード要素は、フィルター層と、入力層である。フィルター層としては、平均値フィルター、最大値フィルター、最小値フィルター、二値化フィルター、移動平均フィルター、ラプラシアンフィルター、ガウシアンフィルター、ソーベルフィルター、ガンマ補正フィルター、2つのデータを一つのデータに合成するフィルターなどが挙げられる。なお、フィルター層は、同じ種類のフィルター層であっても、カーネルサイズや係数などのパラメーターの値を選択できる場合には、データ処理部40において、選択されたパラメーターの値が設定されたフィルター層によってデータ処理が実行される。
【0032】
遺伝子テーブル82は、データ処理シーケンスSqの候補となるシーケンス要素の接続関係と、遺伝子が示す数値に対応するシーケンス要素との対応関係とを示すテーブルである。
【0033】
図4は、遺伝子テーブル82を説明するための図である。以下では、理解の容易の為に、ノード要素群80は、5つのフィルター層FtG~FtLで構成されているとする。実際には、5つよりも多い数のフィルター層が、ノード要素群80に記憶されている。遺伝子テーブル82は、第1種遺伝子テーブル82Aと第2種遺伝子テーブル82Bのテーブルがある。第1種遺伝子テーブル82Aは、木構造で表されるデータ処理シーケンスSqのノードを構成するノード要素である入力層in,ConBおよびフィルター層FtG~FtLと、遺伝子が示す数値VGとの対応関係を示す。なお、入力層inは、入力データIDを受け付けて出力側に出力する層である。入力層ConBは、予め定められた固定データが入力される層であり、例えば、入力データIDと同種のデータである。固定データは、入力データIDが画像である場合には、画像である。
【0034】
第2種遺伝子テーブル82Bは、フィルター層にパラメーターが設定される場合に、パラメーターの値と、遺伝子が示す数値VGとの対応関係を示す。第2種遺伝子テーブル82Bは、パラメーターを設定可能なフィルター層ごとに設けられている。例えば、フィルター層FtGは、2種類のパラメーターFtG_P1,FtG_P2が設定可能であるため、一方のパラメ-タ-FtG_P1については第2種遺伝子テーブル82B1で規定され、他方のパラメーターFtG_P2については第2種遺伝子テーブル82B2で規定される。
【0035】
第1種遺伝子テーブル82Aは、入力層およびフィルター層の種別を示すノード要素種別ごとに、入力数とパラメーター数と出現範囲とが規定されている。ノード要素種別は、入力層とフィルター層を識別する識別子である。入力数は、フィルター層や入力層の入力側に接続されるシーケンス要素の数を示す。入力数が「2」である場合には、2つのノードから出力されたデータが、フィルター層に入力される。なお、本実施形態では、各ノードの出力側に接続されるノードの数である出力数は全て「1」であり、フィルター層や入力層は、一つの出力側ノードに接続される。
【0036】
第2種遺伝子テーブル82Bは、パラメーターが設定されたノード要素種別ごとに、パラメーター値と出現範囲との関係が規定されている。
【0037】
第1種遺伝子テーブル82Aおよび第2種遺伝子テーブルの出現範囲には、遺伝子の数値VGの範囲が規定されている。例えば、第1種遺伝子テーブル82Aにおいて、遺伝子の数値VGが0以上0.143未満の値である場合には、この遺伝子には入力層inが割り当てられる。本実施形態では、各遺伝子テーブル82A,82B1、82B2・・・において、テーブルごとにおいてノード要素種別またはパラメーター値が均等な確率でランダムにデータ処理シーケンスSq中に出現するように、0~1の数値を均等配分して出現範囲として設定している。
【0038】
図2に示す個体群84は、個体群生成部32によって生成された1つの世代Gにおける複数の個体IVが記憶されている。図5は、一つの世代Gの個体群84を説明するための図である。本実施形態では、1つの世代Gで5つの個体IV1~IV5が生成される例を説明する。各個体IV1~IV5は、遺伝子を配置する複数の遺伝子座が一次元的に配列されている。各個体IV1~IV5の遺伝子長は同じであり、各個体IV1~IV5はNo.1~No.15の遺伝子座に遺伝子を順に配列することで構成されている。個体群生成部32は、各遺伝子座に、0から1までの小数点第3位までの数値で表された遺伝子をランダムに配置する。つまり、本実施形態では、各遺伝子座で遺伝子が取りうる値は、0以上1以下の小数点第3位までの数値である。
【0039】
図2のさらなる説明を行う前に、図6を用いて、遺伝子翻訳部34によるデータ処理シーケンスSqの生成処理を説明する。図6は、遺伝子翻訳部34によって生成される生成過程の木構造のデータ処理シーケンスSqを示す図である。図6の左側には、木構造のデータ処理シーケンスSqを表す表形式のデータ処理シーケンスTSqが示され、右側には木構造のデータ処理シーケンスSqが示されている。なお、図6に示すデータ処理シーケンスSqは、図5に示す個体IV1を元に生成されるデータ処理シーケンスSq1である。
【0040】
本実施形態において、遺伝子翻訳部34によるデータ処理シーケンスSqの生成処理は、事前生成処理と、特定生成処理との2種類がある。事前生成処理は、接続条件生成機能を実行して接続条件テーブル88を生成するために実行される処理である。特定生成処理は、接続条件テーブル88を用いたシーケンス生成機能が実行される場合に実行される処理である。シーケンス生成部30の遺伝子翻訳部34は、事前生成処理では図4に示す遺伝子テーブル82を参照し、特定生成処理では接続条件テーブル88と遺伝子テーブル82の第2種遺伝子テーブル82Bと種別テーブル92を参照して、データ処理シーケンスSqを生成する。事前生成処理と特定生成処理における、個体IVからデータ処理シーケンスSqを生成するアルゴリズムは同じであるため、以下では、まず事前生成処理におけるデータ処理シーケンスSqの生成について説明する。
【0041】
事前生成処理では、遺伝子翻訳部34は、個体IVと、遺伝子テーブル82と、ノード要素群80とを用いて、出力層out側から順に木構造のデータ処理シーケンスSqを生成する。図6の右側に示すように、まず遺伝子翻訳部34は、出力層outを出力側の端部である終端ノードに設定し、個体IVの遺伝子の配列順に入力側へとのノードを接続することでデータ処理シーケンスSqを生成する。シーケンス要素の接続は、予め定めた接続ルールに従い実行される。本実施形態では、深さ優先のルールに従い遺伝子の翻訳が実行される。詳細には、遺伝子の配列順に、終端ノード側から優先してノード要素やパラメーターであるシーケンス要素を設定すると共に、出力層outを上側としたときの木構造において、左側の接続先を右側の接続先よりも優先してシーケンス要素を設定するというルールに従って、データ処理シーケンスSqが生成される。つまり、遺伝子の配列順に、出力層out側からフィルター層または入力層を配置すると共に、入力側が複数に分岐している場合には、左側のシーケンスが入力層となるまで、左側を優先させる。また、フィルター層にパラメーターを設定する必要がある場合には、パラメーターを設定した後に次のノードを設定する。
【0042】
遺伝子翻訳部34は、個体VI1のNo.1の遺伝子の数値VGである「0.899」と、ノードを設定するための図4に示す第1種遺伝子テーブル82Aとを参照して、「0.899」がフィルター層FtLの出現範囲内にあることを特定する。これにより、出力層outの入力側に、フィルター層FtLを接続する。つまり、遺伝子翻訳部34は、表形式のデータ処理シーケンスTSqにおいて、ノードNo.1に対応したノード要素にフィルター層FtLを設定する。なお、表形式のデータ処理シーケンスTSqにおいて、括弧書きに記された数字は、理解の容易のために、個体IV1の遺伝子座No,を示している。
【0043】
次に、遺伝子翻訳部34は、第1種遺伝子テーブル82Aを参照して、ノードNo.1に設定したフィルター層FtLの入力数およびパラメーター数に応じて表形式のデータ処理シーケンスTSq1に予約コードを設定する。具体的には、ノードNo.1に設定したフィルター層FtLのパラメーター数は「1」であり、入力数は「2」であるので、遺伝子翻訳部34は、表形式のデータ処理シーケンスTSqにおいて、ノードNo.1のフィルターパラメーター1と第1入力側ノードNo.と第2入力側ノードNo.に予約コードを設定する。
【0044】
次に、遺伝子翻訳部34は、設定された予約コードのうちでフィルターパラメーターに設定された予約コードについて、パラメーターを設定する。具体的には、遺伝子翻訳部34は、ノードNo.1のフィルター層FtLに対応した第2種遺伝子テーブル82Bと、遺伝子座No.2の遺伝子の数値VG2とを参照して、フィルター層FtLに用いるパラメーター値を選択する。遺伝子座No.2の遺伝子の数値VGと、第2種遺伝子テーブル82Bとが参照されることで、図6の中段に示すように、遺伝子翻訳部34は、パラメーター値TL1がフィルター層FtLに設定される。
【0045】
遺伝子翻訳部34は、ノードNo.1に設定されたフィルター層FtLについて、パラメーターの設定が終了した後に、入力側ノードの設定を行う。具体的には、第1入力側ノードと第2入力側ノードのうち、第1入力側ノードが始端ノードである入力層inまたは入力層ConBとなるまで、第1入力側ノードを優先してノードの設定を行う。図6に示す例では、ノードNo.1のフィルター層FtLの第1入力側ノードNo.に、ノードNo.2を割り当てる。そして遺伝子翻訳部34は、遺伝子座No.3の遺伝子の数値と、第1種遺伝子テーブル82Aとを参照して、ノードNo.2のノードを決定する。具体的には、個体IV1について遺伝子座No.3の遺伝子の数値は「0.155」であるので、数値「0.155」が出現範囲内である入力層ConBがノードNo.2に設定される。つまり、フィルター層FtLの2つの入力側のうち一方の入力側には入力層ConBが接続される。
【0046】
フィルター層FtLの第1入力側ノードには、始端ノードである入力層ConBが設定されたので、遺伝子翻訳部34は次に、ノードNo.1の予約コードが設定された第2入力側ノードの設定を行う。遺伝子翻訳部34は、入力側が全て入力層inまたは入力層ConBとなるまで、遺伝子座の遺伝子の数値VGと、遺伝子テーブル82とを参照して、シーケンス要素の設定を行う。
【0047】
遺伝子翻訳部34は、入力側ノードが全て入力層inと入力層ConBとのいずれかになった場合には、個体IV1の全ての遺伝子を用いていない場合であっても、事前生成処理を用いたデータ処理シーケンスSqの生成処理を終了する。なお、遺伝子翻訳部34は、個体IV1の全ての遺伝子を用いた場合において、入力側ノードが全て入力層inまたは入力層ConBになっていない場合には、残りの未接続の入力側ノードに所定の入力層、本実施形態では入力層inを設定することで、データ処理シーケンスSqの生成処理を終了する。
【0048】
図7は、図5の個体IV1で表される表形式のデータ処理シーケンスTSq1と、木構造のデータ処理シーケンスSq1を示す図である。表形式のデータ処理シーケンスTSq1において、括弧内に記載された数字は、対応する遺伝子座No.である。また木構造のデータ処理シーケンスSq1において、[x,y]のxの数字は、データ処理シーケンスSqのノードNo.であり、yは対応する遺伝子座No.である。フィルター層FtGのパラメーター数は2つであるので、遺伝子座No.5に応じたパラメーターTG1aと、遺伝子座No.6に応じたパラメーターTG2bが設定されている。
【0049】
図2を用いてさらに記憶装置70の説明を行う。図2に示す接続条件テーブル88は、遺伝子翻訳部34が特定生成処理によって個体IVからデータ処理シーケンスSqを生成する場合に参照される。図8は、接続条件テーブル88を説明するための図である。接続条件テーブル88は、入力側に配置される候補となる入力側ノード要素の種別を示す入力側ノード要素種別と、入力側ノード要素種別の識別子と、入力側ノードに接続される候補となる出力側ノード要素の種別を示す出力側ノード要素種別と、出力側ノード要素種別の識別子と、入力数と、入力側ノード要素種別ごとのパラメーター数と、接続参考値RVとが規定されている。入力側ノード要素は、入力層in,ConBとフィルター層FtG~FtLである。出力側ノード要素は、フィルター層FtG~FtLと出力層outである。つまり、接続条件テーブル88には、接続された入力側ノード要素および出力側ノード要素の一対の要素セットが規定されている。接続参考値RVとしての平均値ARVは、要素セットごとに規定された値であり、入力データIDをデータ処理して目標データTMを目標とした所望画像を出力するための接続の相性を示す。例えば、入力側にフィルター層FtG、出力側にフィルター層FtHが接続された要素セットの平均値ARVは、「0.680」である。平均値ARVは、接続条件生成機能によって決定される。この接続条件テーブル88の具体的な生成方法は後述する。
【0050】
図9は、種別テーブル92の一例を示す図である。図9に示す種別テーブル92は、データ処理機能によって特定データ処理シーケンスDSqの候補となるデータ処理シーケンスSqを生成する過程で種別テーブル生成部36によって生成される。図9に示すように、種別テーブル92は、個体IVのそれぞれについて、遺伝子座No.に配置された遺伝子ごとに、遺伝子が表すノード要素とパラメーターとを区別するためのデコード種別を関連付けたテーブルである。また、種別テーブル92のデコード種別は、ノードとパラメーターとの区別に加え、データ処理シーケンスSqの生成に用いられなかった未使用の遺伝子を区別するための種別を含む。図9において、遺伝子がノード要素を表すために用いられた場合には、デコード種別として「Node」の識別子が設定される。また、遺伝子がパラメーターを表すために用いられた場合には、デコード種別として「Param」の識別子が設定される。また、遺伝子が未使用の場合には、デコード種別として「Empty」の識別子が設定される。種別テーブル92は、参照テーブル89の一部である。
【0051】
A-2.生成装置が実行する処理:
図10は、生成装置20が実行する処理を示すフローチャートである。生成装置20の接続条件生成機能は、まず、ステップS10において接続条件テーブル88の生成処理を実行する。次いで、生成装置20のシーケンス生成機能は、ステップS30において、接続条件テーブル88を用いた特定データ処理シーケンスDSqの生成処理を実行する。次いで、生成装置20のデータ処理機能は、ステップS50において、特定データ処理シーケンスDSqを利用した利用処理を実行する。
【0052】
図11は、ステップS10の接続条件テーブル88の生成処理の詳細フローチャートである。図12は、接続条件テーブル88の生成処理を説明するための第1図である。図13は、接続条件テーブル88の生成処理を説明するための第2図である。
【0053】
図11に示すように、まず、記憶装置70は、ステップS100において、複数のフィルター層および入力層をノード要素群80として記憶する。ステップS100は、ユーザーによって特定データ処理シーケンスDSqで用いる候補となるフィルター層などのノード要素が生成装置20に入力されることで実行される。
【0054】
また、記憶装置70は、ステップS101において、複数の学習セットSMから構成される学習データ群74を記憶する。ステップS101は、ユーザーによって学習データ群74が生成装置20に入力されることで実行される。
【0055】
また、ステップS102において、接続条件テーブル生成部55は、接続条件テーブル88を初期化する。具体的には、接続条件テーブル生成部55は、図12に示すように接続条件テーブル88における各要素セットの値である平均値ARVを全て所定値に設定する。所定値は、平均値ARVが取り得る範囲である0~1の任意の値を設定でき、本実施形態では、「1」である。なお、ステップS100とステップS101とステップS102の順序はこれに限定されるものではない。
【0056】
次に図11に示すように、ステップS103において、個体群生成部32は、現世代Gについての複数の個体IVから構成される個体群84を生成する。一つの世代Gにおける個体群84は、複数の個体IV1~IV5によって構成されている。生成された個体群84は、記憶装置70に記憶される。次に、ステップS104において、遺伝子翻訳部34は、各個体IV1~IV5のうちで一つを選択して、遺伝子テーブル82を参照することで選択した一つの個体IVを翻訳してデータ処理シーケンスSqを生成する。データ処理シーケンスSqは、例えば、図7に示す表形式のデータ処理シーケンスTSqとして記憶装置70に記憶されてもよい。「翻訳」とは、個体IVの各遺伝子を、シーケンス要素に変換して個体IVからデータ処理シーケンスSqを生成することを意味する。
【0057】
次に、図11に示すように、ステップS105において、データ処理部40はステップS104で生成されたデータ処理シーケンスSqを用いて複数の学習データLMをデータ処理して複数の出力データPMを生成する。
【0058】
次に評価判定部46の算出部47は、ステップS109において、ステップS105によって生成された複数の出力データPMと、複数の出力データPMのそれぞれの生成元の学習データLMに関連付けられた目標データTMとを比較して、評価値EVを複数算出することで処理結果の評価を行う。算出部47は、複数の評価値EVの平均値を、類似度SDを示す最終的な評価値EVとして用いる。また、評価判定部46は、ステップS109において、最終的な評価値EVを用いて、接続参考値RVを算出する。本実施形態では、評価判定部46は、類似度SDを接続参考値RVに用いる。つまり、最終的な評価値EVが、平均二乗誤差である場合、接続参考値RVは評価値EVの逆数である。また最終的な評価値EVがPNSRやMSEやSSIMが用いられる場合には、接続参考値RVは評価値EVの値が用いられる。
【0059】
次に、接続条件テーブル生成部55は、ステップS110において、接続条件テーブル88の更新を実行する。例えば、図7に示すデータ処理シーケンスSq1の最終的な評価値EVから算出された接続参考値RVが「0.800」であった場合、データ処理シーケンスSq1を構成する一対の入力側ノード要素と出力側ノード要素の要素セットを全て抽出し、抽出した要素セットを表す欄に接続参考値RVである「0.800」を加算する。ここで、接続条件テーブル88の一つの要素セットを表す欄には、平均値ARVが最終的な接続参考値RVとして規定される。つまり、n回目の接続参考値RVの加算によって算出される要素セットの平均値ARVは、以下の式(A)を用いて算出される。
【0060】
ARV={RV+ARVn-1×n}/(n+1) ・・・式(A)
ここで、RVは、n回目で加算する接続参考値であり、ARVn-1は前回までの要素セットの欄に規定されていた平均値である。
【0061】
データ処理シーケンスSq1に同じ要素セットが複数ある場合には、同じ要素セットの数だけ接続参考値RVを加算してもよいし、接続参考値RVを1回だけ加算してもよい。本実施形態では、1つのデータ処理シーケンスSq1において、同じ要素セットが複数ある場合でも、接続参考値RVは1回だけ加算している。入力側ノード要素と出力側ノード要素の要素セットを[入力側ノード要素,出力側ノード要素]として表す場合、図7に示すデータ処理シーケンスSq1は、以下の要素セットを有する。接続条件テーブル生成部55は、以下の要素セットのそれぞれについて、図13に示すように、対応する接続条件テーブル88の各要素セットの欄に接続参考値である「0.800」を加算して、(n+1)で割ることで平均値ARVを算出する。この例では、n=1であるので、平均値ARVは「0.900」である。
[入力側=入力層in,出力側=フィルター層FtI]
[入力側=フィルター層FtI,出力側=フィルター層FtG]
[入力側=フィルター層FtG,出力側=フィルター層FtL]
[入力側=入力層ConB,出力側=フィルター層FtL]
[入力側=フィルター層FtL,出力側=出力層out]
【0062】
図11に示すように、ステップS111において、接続条件テーブル生成部55は、一つの世代Gの個体IV全てにおいてステップS104~ステップS110の処理を実行したか否かを判定する。ステップS111で「No」の判定が成された場合には、プロセッサー25は、一つの世代Gの個体IVのうちでステップS104~ステップS110を実行していない個体IVから一つを選択してステップS104~ステップS111の処理を再び実行する。
【0063】
一方で、ステップS111で「Yes」の判定が成された場合には、接続条件テーブル生成部55は、ステップS113において、終了条件を満たすか否かを判定する。終了条件は、予め定めた事前回数だけステップS103~ステップS111の処理ルーチンが実行されたという条件である。予め定めた事前回数は、例えば、接続条件テーブル88の要素セットの欄全てに、少なくとも1回、好ましくは2回以上、接続参考値RVが加算される程度の回数に設定される。例えば、接続条件テーブル88に規定された要素セットの数の2倍以上の個体IVについてステップS104~ステップS111の処理ルーチンが実行される程度に事前回数が設定される。
【0064】
以上のように、接続条件テーブル88は、ランダムな確率でノード要素が出現する関係を有するように、ステップS104の処理によって生成された複数のデータ処理シーケンスSqのそれぞれを用いて生成された類似度SDを、接続参考値RVに用いることで生成される。これにより、接続条件テーブル88を用いて個体IVを生成することで、接続の相性が高い要素セットがデータ処理シーケンスSqに含まれる可能性を高くできる。
【0065】
終了条件が満たされていない場合には、個体群生成部32は、次処理ルーチンにおいてステップS103を再び実行する。再び実行されるステップS103は、前回の処理ルーチンにおけるステップS103で生成された親世代Gの個体IV1~IV5のうちで、類似度SDが下位J番目までの個体IVを新たな個体IVに入れ替えることで実行される。「J」は1以上の整数である。つまり、個体群生成部32は、類似度SDが下位J番目までに該当しない個体IVについては複製し、また、下位J番目までに該当しない個体IVに対して交叉や突然変異との少なくとも一つを行うことで新たな個体IVを生成する。これにより、前回までに生成されたデータ処理シーケンスSqとはシーケンス要素の組み合わせが異なる新たなデータ処理シーケンスSqを容易に生成できる。再び実行されたステップS103によって生成された個体IVを対象に、再びステップS104以降の処理を実行する。
【0066】
一方で終了条件が満たされた場合には、接続条件テーブル生成部55は、ステップS115において、終了条件を満たした時点の接続条件テーブル88を出力することで記憶装置70に記憶させる。
【0067】
図14は、接続条件テーブル88を示す図である。接続条件テーブル88の生成処理が終了条件を満たした場合、図14に示すような接続条件テーブル88が記憶装置70に記憶される。接続条件テーブル88に規定された各要素セットには、平均値ARVが最終的な接続参考値RVとして規定される。ここで、特定生成処理において、特定データ処理シーケンスDSqの候補となるデータ処理シーケンスSqを生成するために、シーケンス生成部30は、後述するように、接続条件テーブル88と、図4に示す第2種遺伝子テーブル82Bとを参照する。接続条件テーブル88と第2種遺伝子テーブル82Bとは、図9に示す種別テーブル92と共に参照テーブル89を構成する。
【0068】
図15は、図10に示すステップS30における特定データ処理シーケンスDSqの生成処理の詳細フローチャートである。まず、ステップS300において、記憶装置70は、複数のフィルター層および入力層ConBをノード要素群80として記憶する。ステップS300は、ユーザーによって特定データ処理シーケンスDSqで用いる候補となるフィルター層などのノード要素が生成装置20に入力されることで実行される。なお、特定データ処理シーケンスDSqの生成処理が、接続条件テーブル88の生成処理が実行された生成装置20と同じ装置で実行される場合には、図11のステップS100において、既にノード要素群80が記憶装置70に記憶されている。よって、この場合には、ステップS300は省略可能である。
【0069】
また、記憶装置70は、ステップS301において、複数の学習セットSMから構成される学習データ群74を記憶する。ステップS301は、ユーザーによって学習データ群74が生成装置20に入力されることで実行される。なお、特定データ処理シーケンスDSqの生成処理が、接続条件テーブル88の生成処理が実行された生成装置20と同じ装置で実行される場合であって、同じ学習データ群74が用いられる場合には、既に学習データ群74が記憶装置70に記憶されているので、ステップS301は省略可能である。一方で、例えば、接続条件テーブル88の生成処理で用いた学習データ群74の元となる対象製品である回路基板と、同種ではあるが例えば異なる工場で製造された回路基板を元に生成された学習データ群74や、欠陥部分DAの有無を検査する目的は同じであるが学習データ群74の元となる製品が異なる場合には、ステップS301は実行される。
【0070】
またステップS304において、記憶装置70は、接続条件テーブル88の生成処理で生成した接続条件テーブル88を記憶する。なお、特定データ処理シーケンスDSqの生成処理が、接続条件テーブル88の生成処理が実行された生成装置20と同じ装置で実行される場合には、既に接続条件テーブル88は記憶装置70に記憶されている。よって、この場合には、ステップS304は省略可能である。なお、ステップS300~ステップS304の順番は上記の順番に限定されるものではない。
【0071】
次に、ステップS306において、個体群生成部32は、複数の個体IVを生成して1世代の個体群84を生成する。上述のごとく、個体IVは、図5に示すように、入力層とフィルター層の種類と、フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列する。入力層とフィルター層と出力層とをノードとするデータ処理シーケンスSqを構成する、ステップS306は、図11のステップS103と同様の処理である。つまり、ステップS306において、一つの世代Gにおける個体群84は、複数の個体IV1~IV5によって構成されている。生成された個体群84は、記憶装置70に記憶される。
【0072】
次に、ステップS308において、遺伝子翻訳部34は、各個体IV1~IV5のうちで一つを選択して、第2種遺伝子テーブル82Bおよび接続条件テーブル88を含む参照テーブル89を参照することで、選択された一つの個体IVを翻訳してデータ処理シーケンスSqを生成する。つまり、ステップS308では、遺伝子翻訳部34は、個体IVの遺伝子と、ノードおよびパラメーターとを対応付けた参照テーブル89を参照して、個体IVを構成する遺伝子ごとに、ノードの1つである入力層と、ノードの他の一つであるフィルター層と、パラメーターとのいずれかを割り当てて、個体IVに応じたデータ処理シーケンスSqを生成する。ステップS308におけるデータ処理シーケンスSqの生成は、上述の特定生成処理によって行われる。ステップS308の詳細については後述する。
【0073】
次に、ステップS350において、データ処理部40はステップS308で生成されたデータ処理シーケンスSqを用いて複数の学習データLMをデータ処理して複数の出力データPMを生成する。
【0074】
次に、ステップS352において、評価判定部46は、ステップS350によって生成された複数の出力データPMと、複数の出力データPMのそれぞれの生成元の学習データLMに関連付けられた目標データTMとを比較して、評価値EVを複数算出することで処理結果を評価する。評価判定部46は、算出した複数の評価値EVの平均値を、出力データPMと目標データTMとの類似度SDを示す最終的な評価値EVとして用いる。
【0075】
次に、ステップS354において、評価判定部46は、一つの世代Gの個体IV全てにおいてステップS308~ステップS352の処理を実行したか否かを判定する。ステップS354で「No」の判定が成された場合には、プロセッサー25は、一つの世代Gの個体IVのうちでステップS308~ステップS352を実行していない個体IVから一つを選択してステップS308~ステップS352の処理を再び実行する。つまり、データ処理部40は、一つの世代Gを構成する複数の個体IVに対応した複数のデータ処理シーケンスSqのそれぞれによって学習データLMをデータ処理して、複数のデータ処理シーケンスSqごとに出力データPMを生成する。そして、評価判定部46は、複数のデータ処理シーケンスSqごとに生成した複数の出力データPMと、対応する目標データTMとを比較して評価値EVを算出する。
【0076】
一方で、ステップS354で「Yes」の判定が成された場合には、評価判定部46の特定部49は、ステップS356において、現世代における算出した複数の評価値EVを用いて、予め定めた基準条件を満たすデータ処理シーケンスSqがあるか否かを判定する。具体的には、評価判定部46の特定部49は、現世代の複数の個体IVを元に算出した複数の評価値EVが示すそれぞれの類似度SDのうちで、最も高い類似度SDmaxが、予め定めた終了閾値以上である場合には、基準条件を満たすデータ処理シーケンスSqがあると判定する。つまり、ステップS356の工程は、複数のデータ処理シーケンスSqのそれぞれに対応する複数の評価値EVを用いて、予め定めた基準条件を満たすデータ処理シーケンスSqを特定する工程である。
【0077】
基準条件を満たすデータ処理シーケンスSqがある場合、評価判定部46の特定部49は、ステップS358において、基準条件を満たすデータ処理シーケンスSqを特定データ処理シーケンスDSqとして出力する。出力された特定データ処理シーケンスDSqは、記憶装置70に記憶される。
【0078】
一方で、基準条件を満たすデータ処理シーケンスSqが無い場合、ステップS306~ステップS356の処理が次ルーチンとして実行される。つまり、次ルーチンのステップS306では、次世代生成工程によって次世代の個体群84が生成される。次世代生成工程において、個体群生成部32は、前回のルーチンで生成した複数の個体IVのうちで評価値EVが示す類似度SDが低い1つ以上のデータ処理シーケンスSqである対象データ処理シーケンスSqを、シーケンス要素が異なる新たなデータ処理シーケンスSqに置き換えることで、シーケンスセットを生成する。本実施形態では、個体群生成部32は、前回のルーチンで用いた親世代の複数の個体IVのうちで、類似度SDが低い、すなわち下位J番目までの個体IVについては、下位J番目までに該当しない類似度SDが高い個体IVに対して、交叉と突然変異との少なくとも一つを行うことで新たな個体IVに置き換える。また、次世代生成工程において、個体群生成部32は、類似度SDが下位J番目までには該当しない類似度SDの高い個体IVを複製する。複製した個体IVと交叉や突然変異を用いて新たに生成した個体IVとによって新たなシーケンスセットが構成される。そして、新たなシーケンスセットを対象としてステップS308~ステップS356の処理が再び実行される。以上のように、類似度SDが低い1つ以上の個体IVを、類似度SDが高い個体IVを元に新たな個体IVに置き換えることで、類似度SDが低いデータ処理シーケンスSqについては、処理対象から外すことができる。これにより、より効率良く基準条件を満たすデータ処理シーケンスSqを特定できる。
【0079】
次世代生成工程は、図9に示す種別テーブル92を参照して交叉と突然変異との少なくとも一つを行って次世代の個体群を生成する参照個体生成工程と、種別テーブル92を参照することなく交叉と突然変異との少なくとも一つを行うことで次世代の個体IVを生成する通常個体生成工程とを含む。次世代生成工程において、個体IVごとに、参照個体生成工程と、通常個体生成工程とのいずれかを実行するかについては、図2に示す各種条件テーブル93の生成条件に規定されている。この生成条件は、ユーザーから入力によって規定されてもよい。参照個体生成工程の詳細については後述する。
【0080】
新たなシーケンスセットを対象としたステップS308~ステップS356の処理において、前回までのルーチンで用いたシーケンスセットを構成するデータ処理シーケンスSqと同じデータ処理シーケンスSqについては、前回までのルーチンで算出された評価値EVが用いられる。これにより、評価値EVを再度計算する必要がないので、特定データ処理シーケンス生成処理の処理効率を向上できる。
【0081】
図16は、ステップS308の詳細フローチャートを示す図である。図17は、ステップS308の処理において参照される閾値テーブル98を示す図である。図18は、ステップS308を説明するための第1の図である。図19は、ステップS308を説明するための第2の図である。図20は、個体IV2に対応する表形式のデータ処理シーケンスTSq2を示す図である。図17において太枠部分の要素セットは、個体IV2のデータ処理シーケンスSqとして出現した要素セットである。
【0082】
図16に示すように、まず、遺伝子翻訳部34は、ステップS310において記憶装置70の各種条件テーブル93に記憶されたテーブル翻訳条件を読み込む。テーブル翻訳条件は、ユーザーによって入力され、ステップS308の処理において遺伝子翻訳部34が参照するテーブルを定めている。テーブル翻訳条件は、フィルター層FtG~FtLおよび入力層in,ConBのノードが均等の出現確率である図4に示す第1種遺伝子テーブル82Aを参照するか、接続の相性を元に出現確率を設定した図8に示す接続条件テーブル88を参照するかを定める。また、記憶装置70にテーブル翻訳条件が記憶されていない場合には、遺伝子翻訳部34は、接続条件テーブル88を参照する。なお、パラメーターの出現確率を示すテーブルは、いずれのテーブル翻訳条件に設定されていたとしても図4に示す第2種遺伝子テーブル82Bである。本実施形態では、テーブル翻訳条件は、遺伝子翻訳部34が参照するテーブルを接続条件テーブル88であると定めている。
【0083】
また、シーケンス生成部30は、ステップS316以降の処理において、入力側ノード要素を選択したりパラメーター数を取得したりするなどのデータ処理シーケンスSqのシーケンス要素の生成に関する処理を実行した場合には、処理の実行と共に図6に示す表形式のデータ処理シーケンスTSqを更新する。
【0084】
遺伝子翻訳部34は、ステップS311において、記憶装置70に記憶された現世代Gを構成する個体IV1~IV5のうちで、未処理の一つを選択する。以下では、図5に示す個体IV2が選択された場合について記載する。
【0085】
次に、ステップS316において、遺伝子翻訳部34は、接続ルールに従って入力側ノード要素が接続されていない未接続の出力側ノード要素を一つ選択する。本実施形態では、図6に示すように、出力側から入力側に向かう順にデータ処理シーケンスSqが生成されるので、最初のルーチンでは、出力層outが終端ノードに設定されている。よって、最初のルーチンにおけるステップS316では、遺伝子翻訳部34は、出力側ノード要素として出力層outを選択する。なお、ノード要素の接続は、上述のごとく予め定めた接続ルールに従い実行される。例えば、遺伝子翻訳部34は、出力層outを出力側の端部である終端ノードに設定し、個体IVの遺伝子の配列順に入力側へノードを接続することでデータ処理シーケンスSqを生成する。
【0086】
ステップS316の次に、遺伝子翻訳部34は、ステップS318において、接続先である出力側ノードに接続される入力側ノードの決定を、接続条件テーブル88と選択した個体IVの遺伝子とによって行う。具体的には、遺伝子翻訳部34は、接続条件テーブル88を用いて、出力側ノードに対して、接続参考値RVとしての平均値ARVが高い入力側ノードほど、出力側ノードに接続される接続確率が高くなる確率関係を有するように、データ処理シーケンスSqを生成する。上記確率関係を有するデータ処理シーケンスSqは、以下のノード選択アルゴリズムに従って出力側ノード要素に対する入力側ノード要素が選択されることで生成される。
【0087】
<入力側ノード要素の選択アルゴリズム>
ノード選択アルゴルズムの前提条件は以下のとおりである。
・遺伝子の数値・・・VG(VGは、0から1までの小数点第3位までの数値)
・出力側ノード要素の識別子・・・j
ここで、jは、0以上の整数で表され、出力側ノード要素ごとに異なる値が割り当てられている。本実施形態では、出力側ノード要素FtG~outの順に、識別子jは、0~6が割り当てられている。
・接続される入力側ノード要素の識別子・・・i
ここで、iは、0以上の整数で表され、0~N-1までの識別子によって表される。Nは、入力側ノード要素の候補となる数である。本実施形態では、図8に示すように、入力側ノード要素の数Nは8である。また、入力側ノード要素in~FTLの順に、識別子iは、0~7が割り当てられている。
・接続条件テーブル88の要素セットの値・・・tij
ijは、図14に示す平均値ARVであり、添え字の「ij」は、要素セットを特定するための識別子であり、入力側ノード要素と出力側ノード要素の識別子に対応する。例えば、t12は、図14において入力側ノード要素が入力層ConB、出力側ノード要素がフィルター層FtIの要素セットの平均値ARVである0.738を示す。
【0088】
ノード選択アルゴリズムにおいて、出力側ノード要素jの入力側に入力側ノード要素iが接続される確率Pijは以下の式(1)によって算出される。
【数1】
【0089】
またノード選択アルゴリズムにおいて、入力側ノード要素iが出力側ノード要素jに対して接続される遺伝子の数値範囲の上限閾値Tijは以下の式(2)を用いて算出される。なお、下限閾値は、一つ前の識別子に応じた入力側ノード要素の上限閾値に設定される。一つ前の識別子が無い場合には、下限閾値は「0」に設定される。
【数2】
【0090】
上記のノード選択アルゴリズムを用いて遺伝子の出現範囲を示す数値範囲を決定することで、同じ出力側ノード要素に対する接続候補である各入力側ノード要素の各接続参考値である各平均値ARVの比が、出力側ノード要素に接続される接続確率の比となるように、データ処理シーケンスSqが生成される。
【0091】
本実施形態において、ノード選択アルゴリズムによって遺伝子翻訳部34は、遺伝子の値VGに応じて以下のように入力側ノード要素の選択を行う。なお、不等号については、遺伝子の値VGがいずれかの出現範囲に含まれている限り、等号の有無を変更してもよい。
・0≦VG<T0jのときは、入力側ノード要素No.0である入力層inを選択。
・T0j≦VG≦T1jのときは、入力側ノード要素No.1である入力層ConBを選択。
・T1j<VG≦T2jのときは、入力側ノード要素No.2であるフィルター層FtGを選択。
・T2j<VG≦T3jのときは、入力側ノード要素No.3であるフィルター層FtHを選択。
・T3j<VG≦T4jのときは、入力側ノード要素No.4であるフィルター層FtIを選択。
・T4j<VG≦T5jのときは、入力側ノード要素No.5であるフィルター層FtJを選択。
・T5j<VG≦T6jのときは、入力側ノード要素No.6であるフィルター層FtKを選択。
・T6j<VG≦T7jのときは、入力側ノード要素No.7であるフィルター層FtLを選択。
【0092】
図17に示す閾値テーブル98は、遺伝子翻訳部34が、図14に示す接続条件テーブル88に対してノード選択アルゴリズムを用いて算出した上限閾値Tijを要素セットに規定したテーブルである。遺伝子翻訳部34は、図17に示す閾値テーブル98をステップS308の処理が開始される前に生成してもよいし、ステップS318を実行する場合に図17に示す閾値テーブル98の少なくとも入力側ノード要素を選択するために必要な一部を生成してもよい。
【0093】
図16に示すステップS318において、遺伝子翻訳部34は、閾値テーブル98のうち出力側ノード要素が出力層outの列に記載の上限閾値ijと、個体IV2の遺伝子座No.1の遺伝子の値VG1である「0.921」とを比較する。これにより、遺伝子翻訳部34は、入力側ノード要素として値VG1に応じたフィルター層FtLを選択する。また、ステップS318において、遺伝子翻訳部34は、図18の上段に示す図に示すように、ノードNo.1に対応したノード要素にフィルター層FtLを設定する。なお、表形式のデータ処理シーケンスTSq2において、フィルター層FtLの括弧書きに記された数字は、理解の容易のために、個体IV2の遺伝子座No,を示している。
【0094】
図16に示すように、ステップS318の次にステップS320において、種別テーブル生成部36は、ノード要素であることを識別する識別子を対応する遺伝子が配置された遺伝子座に関連付けることで、種別テーブル92に記録する。本実施形態では、図19の最も左側に示すように、種別テーブル生成部36は、種別テーブル92において、翻訳元となった対応する遺伝子が配置された遺伝子座No.1に関連付けて、デコード種別としてノード要素を示す「Node」の識別子を記録する。
【0095】
ステップS320の次にステップS322において、遺伝子翻訳部34は、接続条件テーブル88を参照して、ステップS318で選択した入力側ノード要素のパラメーター数と入力数を取得する。ステップS322において、遺伝子翻訳部34は、取得されたパラメーター数と入力数とに応じて図18に示す表形式のデータ処理シーケンスSq2に予約コードを設定する。具体的には、ノードNo.1に設定したフィルター層FtLのパラメーター数は「1」であり、入力数は「2」であるので、遺伝子翻訳部34は、表形式のデータ処理シーケンスTSqにおいて、ノードNo.1のフィルターパラメーター1と第1入力側ノードNo.と第2入力側ノードNo.に予約コードを設定する。
【0096】
図16に示すように、遺伝子翻訳部34は、ステップS324において、未確定のパラメーターがあるかどうか判定する。ステップS324では、遺伝子翻訳部34は、ステップS322で取得したパラメーターの数と、シーケンス要素へと翻訳されたパラメーターの数とを比較して、一致しない場合には、未確定のパラメーターがあると判定する。具体的には、遺伝子翻訳部34は、表形式のデータ処理シーケンスTSq2において、フィルターパラメーター1とフィルターパラメーター2の少なくともいずれかの項目に予約コードが設定されている場合に、未確定のパラメーターがあると判定する。図18に示す例では、フィルター層FtLに対応するフィルターパラメーター1に予約コードが設定されているので、遺伝子翻訳部34は未確定のパラメーターがあると判定し、ステップS326を実行する。
【0097】
図16に示すステップS326では、遺伝子翻訳部34は、パラメーターの出現範囲を規定した第2種遺伝子テーブル82Bと、翻訳元の遺伝子の値とを用いてパラメーターの決定を行う。例えば、図18の中段に示すように、ノードNo.1のフィルター層FtLのパラメーターとして、遺伝子座No.2の遺伝子の値VG2に応じたパラメーター値TL1が決定される。
【0098】
次にステップS328において、種別テーブル生成部36は、パラメーターであることを識別する識別子を対応する遺伝子が配置された遺伝子座No.に関連付けることで、種別テーブル92に記録する。本実施形態では、図19の左から2番目に示すように、種別テーブル生成部36は、種別テーブル92において、翻訳元となった対応する遺伝子が配置された遺伝子座No.2に関連付けて、デコード種別としてパラメーターを示す「Param」の識別子を記録する。
【0099】
図16に示すように、ステップS328の次に、遺伝子翻訳部34は、再びステップS324を実行する。図18の中段に示すように、ノードNo.1のフィルター層FtLのフィルターパラメーター1,2には、予約コードが設定されていない。この場合、遺伝子翻訳部34は、未確定のパラメーターが無いと判定し、図15に示すステップS330を実行する。ステップS330では、遺伝子翻訳部34は、生成過程のデータ処理シーケンスSqに未接続ノードがあるかどうかを判定する。遺伝子翻訳部34は、入力側のノードが全て入力層in,ConBである場合には、未接続ノードが無いと判定する。
【0100】
遺伝子翻訳部34は、未接続ノードが有ると判定した場合には、再びステップS316を実行する。図18に示す例では、ノードNo.1のフィルター層FtLを出力側ノード要素とした、予約コードが規定された未接続の2つの入力側ノードが存在する。よって、接続ルールに従い、遺伝子翻訳部34は、ノードNo.1に関連付けられた入力側ノードNo.1を未接続ノードとして選択する。次のステップS318では、遺伝子翻訳部34は、遺伝子座No.3の遺伝子の値VG3と、閾値テーブル98とを参照してノードNo.2のノード要素を入力層ConBとして決定する。
【0101】
一方で、遺伝子翻訳部34は、未接続ノードが無いと判定した場合には、種別テーブル生成部36はステップS332において、翻訳に用いられなかった未使用の識別子を、対応する遺伝子が配置された遺伝子座に関連付けることで、種別テーブル92に記録する。例えば、個体IV2を用いたデータ処理シーケンスSq2の生成では、図19の右側の種別テーブル92に示すように、遺伝子座No.8~No.15の遺伝子が翻訳に用いられなかったので、遺伝子座No.8~No.15に識別子「Empty」を記録する。
【0102】
図16に示すように、ステップS332の次に、遺伝子翻訳部34はステップS334において、翻訳したデータ処理シーケンスSqを出力する。例えば、出力されるデータ処理シーケンスSqは、図20に示すうに表形式のデータ処理シーケンスTSqであってもよい。出力されたデータ処理シーケンスSqは、記憶装置70に記憶される。これにより、ステップS308の生成工程は終了する。
【0103】
なお、シーケンス生成部30は、個体IVについて全ての遺伝子を用いても未接続ノードがあったり、未確定のパラメーターがあったりする場合には、以下の終了処理を実行する。終了処理において、遺伝子翻訳部34は、未接続ノードがある場合には、未接続ノードに全ての入力層inを設定する。また、終了処理において、遺伝子翻訳部34は、未確定のパラメーターがある場合には、予め定めた特定パラメーター値を設定する。終了処理において、未接続ノードや未確定のパラメーターが設定された場合には、翻訳元の遺伝子が無いので種別テーブル92への種別コードの記録は行われない。
【0104】
次に、図15に示すフォローチャートにおいて、2回目以降のルーチンで実行されるステップS306の詳細について説明する。2回目以降のルーチンにおけるステップS306では、予め定めた生成条件に従って、参照個体生成工程と通常個体生成工程との少なくともいずれかを用いて、個体群84を新たに生成する。通常個体生成工程は、通常の遺伝的アルゴリズムによる生成工程であり、種別テーブル92を参照することなく、交叉と突然変異との少なくとも一つを行って次世代の個体群84が有する個体IVを生成する。参照個体生成工程は、種別テーブル92を参照して、交叉点と、突然変異を行う遺伝子と、の少なくともいずれか一方を決定し、交叉と突然変異との少なくともいずれか一方を行う。参照個体生成工程のうち、突然変異を実行する工程を種別参照変異工程とも呼び、交叉を実行する工程を種別参照交叉工程とも呼ぶ。このように、次世代の個体IVを生成する場合に、種別テーブル92を参照して前回のルーチンの個体IVに対して交叉と突然変異との少なくともいずれか一方を行うことで、フィルター層のパラメーターに着目した次世代の個体IVの生成を容易に行うことができる。例えば、前回のルーチンにおける個体IVのパラメーターを表す遺伝子を突然変異させることで、パラメーターのみを変更した次世代の個体IVを容易に生成できる。
【0105】
参照個体生成工程では、個体群生成部32は、突然変異によって個体IVを生成する場合において、突然変異を行う対象となる個体IVが有する複数の遺伝子のうちで、デコード種別としてパラメーターが関連付けられた特定遺伝子に対して突然変異を行う。種別参照交叉工程では、個体群生成部32は、交叉、例えば一点交叉によって個体IVを生成する場合において、生成元の一方の個体IVが有する複数の遺伝子のうちで、特定遺伝子とその次の遺伝子との間を交叉点に設定して、交叉を行う。以下では、種別参照変異工程について図を用いて説明する。
【0106】
図21は、参照個体生成工程の種別参照変異工程を説明するための図である。本実施形態において、生成条件は、類似度SDが下位2番目までの個体IVをそれ以外の類似度SDの高い個体IVから突然変異または交叉によって新たな個体IVを生成するという条件を含む。また本実施形態において、生成条件は、突然変異を行う場合において、上位N番目までのデータ処理シーケンスSqの生成元である個体IVについては、参照個体生成工程の種別参照変異工程を実行し、それ以外の個体IVについては通常個体生成工程を実行するという条件を含む。これにより、類似度SDが上位N番目までのデータ処理シーケンスSqについては、フィルター層のパラメーターのみを変更して、基準条件を満たすかどうか評価できる。なお、「N」は1以上の整数であり上限は複製される個体IVの数である。本実施形態では、「N」は「1」に設定されている。すなわち、本実施形態では、親世代Gの個体IVのうちで類似度SDが最も高い最良の個体IV1にのみ種別参照変異工程を実行する。これにより、最良の個体IV1については、パラメーターの値のみを変更して基準条件を満たすかどうかの評価をできる。また生成条件は、交叉を行う場合において通常個体生成工程を実行するという条件を含む。これらの生成条件は、例えば、ユーザーによって設定される。
【0107】
上記の生成条件に従って、個体群生成部32は、親世代Gの個体IV1~IV5のうちで下位2番目までの個体IV4、IV5については、それ以外である上位3番目までの個体IV1~IV3を元に新たな個体IV4,IV5を生成することで置き換える。また、個体群生成部32は、上位3番目までの類似度SDの高い個体IV1~IV3は複製して、現世代Gnの個体IV1~IV3とする。
【0108】
また、個体群生成部32は、類似度SDが最も高い親世代の個体IV1について、種別参照変異工程を実行することで、現世代Gnの個体IV4を生成する。具体的には個体群生成部32は、種別テーブル92を参照してデコード種別として[Param」の識別子が関連付けられた遺伝子座を特定する。本実施形態では、遺伝子座No.2に「Param」の識別子が関連付けられている。この場合、個体群生成部32は、親世代Gmの個体IV1の遺伝子座No.2の遺伝子に対して突然変異を行うことで、現世代Gnの個体IV4を生成する。
【0109】
また、個体群生成部32は、親世代Gmの個体IVm2と個体IVm3について、種別テーブル92を参照することなく任意の位置を交叉点として設定して、交叉を実行することで現世代Gnの個体IV5を生成する。
【0110】
図22は、図10に示すステップS50の利用処理工程のフローチャートである。まず記憶装置70は、ステップS500において、入力部150によって受け付けたノード要素群80を記憶する。利用処理工程において記憶されるノード要素群80は、特定データ処理シーケンスDSqで用いられるノード要素のみであってもよい。なお、利用処理工程と、図10のステップS30とが同じ生成装置20で実行される場合には、ステップS200は省略でき、ステップS100によって記憶装置70に記憶されたノード要素群80を用いることができる。
【0111】
次に、ステップS501において、記憶装置70は、図15のステップS358で特定された特定データ処理シーケンスDSqを記憶する。なお、ステップS500とステップS501の順番は上記に限定されるものではない。
【0112】
次に、ステップS503において、データ処理部40は、入力部150を介して記憶装置70に記憶されたデータであって特定データ処理シーケンスDSqのデータ処理の対象となるデータを読み出すことで取得する。ステップS503によって取得されるデータは、例えば、学習データLMと同種のデータであり、本実施形態では対象物を撮像した画像である。なお、データ処理部40は、データ処理の対象となるデータが複数ある場合には、記憶装置70に予め記憶された複数のデータのうちの一つを読み出すことでデータを取得してもよいし、後述するデータ処理を実行するタイミングで対象となるデータをセンサー装置200からその都度取得してもよい。
【0113】
次に、データ処理部40は、ステップS504において、ステップS503によって取得されたデータに対して特定データ処理シーケンスDSqを用いたデータ処理を実行する。つまり、データである画像に対して、特定データ処理シーケンスDSqが示す順番およびパラメーター値に従って、データ処理を実行する。
【0114】
次に、ステップS505において、特定データ処理シーケンスDSqを用いたデータ処理後のデータである出力データPMが出力される。ステップS505は、例えば、出力データPMが記憶装置70に記憶されることで実行されたり、表示部160に表示されたりすることで実行される。
【0115】
次に、データ処理部40は、ステップS506において、特定データ処理シーケンスDSqを用いたデータ処理を継続するかどうかを判定する。例えば、データ処理部40は、ユーザーからデータ処理の継続を示す情報が入力された場合や、データ処理の対象となる未処理のデータが記憶装置70にまだ残っている場合に、データ処理を継続すると判定する。データ処理を継続する場合には、再びステップS503以降の処理が実行される。一方で、データ処理部40は、ユーザーからデータ処理の終了を示す情報が入力された場合や、データ処理の対象となる未処理のデータが記憶装置70に残っていない場合には、利用処理工程を終了する。
【0116】
上記実施形態によれば、図5および図7に示すように、個体IVを構成する遺伝子が、入力層in,やフィルター層のノードに加え、フィルター層に設定されるパラメーターも表している。これにより、個体群を生成する工程において、パラメーターに着目した個体IVの生成を行うことができる。例えば、フィルター層の種類によって異なるパラメーターの数にあわせて遺伝子を使用することができる。また例えば、特定のフィルター層のパラメーターのみを変更したデータ処理シーケンスSqを表す個体IVを容易に生成できる。また、上記実施形態によれば、図16に示すステップS320とステップS328とステップS332とによって実行される種別テーブル生成工程によって、遺伝子ごとにデコード種別を関連付けることで、種別テーブル92を参照することで図15に示すステップS306において、パラメーターに着目した個体IVの生成を容易に行うことができる。特に図21に示すように、デコード種別としてパラメーターが関連付けられた遺伝子に対して突然変異を行うことで個体IV4が生成されることから、突然変異を行う対象となる個体IV1に対してフィルター層のパラメーターのみを変更した個体IVを容易に生成できる。これにより、パラメーターの値のみを変更したデータ処理シーケンスSqを生成して基準条件を満たすかどうかの評価を行うことができる。
【0117】
また上記実施形態によれば、次世代生成工程は、予め定めた生成条件に従って、参照個体生成工程と、通常個体生成工程との少なくともいずれかを実行する。これにより、基準条件を満たすデータ処理シーケンスDSqの候補となるデータ処理シーケンスSqの生成について、生成条件を設定することで、パラメーターに着目して生成したデータ処理シーケンスの生成と、パラメーターに着目しないで生成したデータ処理シーケンスSqの生成を行うことができる。つまり、生成条件を設定することで、パラメーターの調整を行うことによるデータ処理シーケンスSqの最適化と、様々なデータ処理シーケンスを生成することで行うデータ処理シーケンスSqの最適化とを行うことができる。
【0118】
B.他の実施形態:
B-1.他の実施形態1:
上記実施形態によれば、図4に示すように、第2種遺伝子テーブル82Bは、パラメーターごとに、複数のパラメーター値が均等に出現するように出現範囲が設定されていたがこれに限定されるものではなく、出現範囲は不均一に設定されていてもよい。また、例えば、第2種遺伝子テーブル82Bは、遺伝子の値VGと、パラメーターの値VAとを関数によって定めたテーブルであってもよい。例えば、パラメーターの値VAが、0.5以上1.5以下の範囲で設定可能であり、遺伝子の値VGが0以上1以下の範囲で設定される場合には、以下の一次関数である式(B)によって値VAが表されてもよい。なお、非線形な変換を行う関数によって第2種遺伝子テーブル82Bが規定されていてもよい。
VA=VG+0.5 ・・・式(B)
【0119】
B-2.他の実施形態2:
上記実施形態では、図16に示すように、遺伝子翻訳部34は、フィルター層のパラメーターについて、ステップS326のようにその都度、第2種遺伝子テーブル82Bと翻訳元の遺伝子の値VGとを参照して決定していたが、これに限定されるものではない。例えば、遺伝子翻訳部34は、パラメーターの生成元、すなわち翻訳元の遺伝子の値を記憶装置70に記憶しておき、ステップS330において「No」と判定された後に、第2種遺伝子テーブル82Bと遺伝子の値VGとを参照してまとめてパラメーターの値を決定してもよい。
【0120】
C.他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0121】
(1)本開示の第1形態によれば、データ処理シーケンスの生成方法が提供される。前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしている。このデータ処理シーケンスの生成方法は、(a)入力層とフィルター層と出力層とをノードとするデータ処理シーケンスを構成する、前記入力層と前記フィルター層の種類と前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する工程と、(b)前記遺伝子と、前記ノードおよび前記パラメーターと、を対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する工程と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する工程と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える。この形態によれば、個体を構成する遺伝子が、入力層やフィルター層のノードに加え、フィルター層に設定されるパラメーターも表している。これにより、工程(a)において、パラメーターに着目した個体の生成を行うことができる。例えば、フィルター層の種類によって異なるパラメーターの数にあわせて遺伝子を使用することができる。
【0122】
(2)上記形態において、前記工程(d)における前記予め定めた基準条件は、複数の前記評価値がそれぞれ示す複数の前記類似度のうちで最も値が高い前記類似度が、予め定めた終了閾値以上であるという条件であり、前記工程(a)は、前記工程(d)において前記予め定めた基準条件を満たさない場合には、前回のルーチンによって生成した前記複数の個体のうちで、前記類似度が低い1つ以上の前記個体については、前記類似度が高い前記個体に対して交叉と突然変異との少なくとも一つを行うことで新たな前記個体に置き換え、前記類似度が高い前記個体を複製することで、今回のルーチンで用いる次世代の前記個体群を生成する次世代生成工程を含んでいてもよい。この形態によれば、類似度が低い1つ以上の個体を、類似度が高い個体を元に新たな個体に置き換えることで、類似度が低いデータ処理シーケンスについては、処理対象から外すことができる。これにより、より効率良く基準条件を満たすデータ処理シーケンスを特定できる。
【0123】
(3)上記形態において、前記工程(b)は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記遺伝子が表す前記ノードと前記パラメーターとを区別するためのデコード種別を関連付けた種別テーブルを生成する種別テーブル生成工程を含み、前記参照テーブルは、前記種別テーブルを含んでいてもよい。この形態によれば、種別テーブル生成工程によって遺伝子ごとにデコード種別を関連付けることで、種別テーブルを参照することで工程(a)において、パラメーターに着目した個体の生成を容易に行うことができる。
【0124】
(4)上記形態において、前記デコード種別は、前記ノードと前記パラメーターとの区別に加え、前記データ処理シーケンスの生成に用いられなかった未使用の前記遺伝子を区別するための種別を含み、前記種別テーブル生成工程は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記遺伝子が表す前記ノードと前記パラメーターと前記未使用の前記遺伝子を区別するための前記デコード種別を関連付けた前記種別テーブルを生成してもよい。この形態によれば、種別テーブルによってデータ処理シーケンスの生成に用いられなかった未使用の遺伝子を容易に特定できる。
【0125】
(5)上記形態において、前記次世代生成工程は、前記種別テーブルを参照して、交叉点と、前記突然変異を行う前記遺伝子と、の少なくともいずれか一方を決定し、前記交叉と前記突然変異との少なくとも一方を行う参照個体生成工程を含んでいてもよい。この形態によれば、次世代の個体を生成する場合に、種別テーブルを参照して前回のルーチンの個体に対して交叉と突然変異との少なくともいずれか一方を行うことで、パラメーターに着目した次世代の個体の生成を容易に行うことができる。
【0126】
(6)上記形態において、前記参照個体生成工程は、前記突然変異によって前記個体を生成する場合において、前記突然変異を行う対象となる前記個体が有する前記複数の遺伝子のうちで、前記デコード種別として前記パラメーターが関連付けられた前記遺伝子に対して前記突然変異を行う種別参照変異工程を含んでもよい。この形態によれば、デコード種別としてパラメーターが関連付けられた遺伝子に対して突然変異を行うことで個体を生成することから、突然変異を行う対象となる個体に対してフィルター層のパラメーターのみを変更した個体を容易に生成できる。これにより、パラメーターの値のみを変更したデータ処理シーケンスを生成して基準条件を満たすかどうかの評価を行うことができる。
【0127】
(7)上記形態において、前記次世代生成工程は、さらに、前記種別テーブルを参照することなく、交叉と突然変異との少なくとも一つを行うことで前記個体を生成する通常個体生成工程を含み、前記次世代生成工程は、予め定めた生成条件に従って、前記参照個体生成工程と、前記通常個体生成工程との少なくともいずれかを実行してもよい。この形態によれば、基準条件を満たすデータ処理シーケンスの候補となるデータ処理シーケンスの生成について、生成条件を設定することで、パラメーターに着目して生成したデータ処理シーケンスの生成と、パラメーターに着目しないで生成したデータ処理シーケンスの生成を行うことができる。
【0128】
(8)上記形態において、前記生成条件は、前記前回のルーチンによって生成した前記複数の個体の中で前記類似度が高い前記個体のうちで、前記類似度が上位N番目(Nは1以上の整数)までの前記データ処理シーケンスの生成元である前記個体に対しては、前記種別参照変異工程を実行するという条件であってもよい。この形態によれば、類似度が上位N番目までのデータ処理シーケンスについては、フィルター層のパラメーターのみを変更して、基準条件を満たすかどうか評価できる。
【0129】
(9)本開示の第2形態によれば、データ処理シーケンスの生成装置が提供される。前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしている。このデータ処理シーケンスの生成装置は、入力層とデータ処理を行うフィルター層と出力層とをノードとするデータ処理シーケンスを構成する、前記入力層と前記フィルター層の種類と前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する個体群生成部と、前記遺伝子と、前記ノードおよび前記パラメーターとを対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する遺伝子翻訳部と、前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する算出部と、前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する特定部と、を備える。この形態によれば、個体を構成する遺伝子が、入力層やフィルター層のノードに加え、フィルター層に設定されるパラメーターも表している。これにより、工程(a)において、パラメーターに着目した個体の生成を行うことができる。例えば、フィルター層の種類によって異なるパラメーターの数にあわせて遺伝子を使用することができる。
【0130】
(10)本開示の第3形態によれば、データ処理シーケンスの生成をコンピューターに実行させるためのコンピュータープログラムが提供される。前記データ処理シーケンスは、入力層とフィルター層と出力層とをノードとしている。このコンピュータープログラムは、(a)入力層とデータ処理を行うフィルター層と出力層とをノードとするデータ処理シーケンスを構成する、前記入力層と前記フィルター層の種類と前記フィルター層に設定されるパラメーターと、のいずれかを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する機能と、(b)前記遺伝子と、前記ノードおよび前記パラメーターとを対応付けた参照テーブルを参照して、前記個体を構成する前記遺伝子ごとに、前記ノードの1つである前記入力層と、前記ノードの他の1つである前記フィルター層と、前記パラメーターとのいずれかを割り当てて、前記個体に応じた前記データ処理シーケンスを生成する機能と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する機能と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する機能と、を備える。この形態によれば、個体を構成する遺伝子が、入力層やフィルター層のノードに加え、フィルター層に設定されるパラメーターも表している。これにより、工程(a)において、パラメーターに着目した個体の生成を行うことができる。例えば、フィルター層の種類によって異なるパラメーターの数にあわせて遺伝子を使用することができる。
【0131】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、コンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)の形態で実現することができる。
【符号の説明】
【0132】
DA…欠陥部分、DSq…特定データ処理シーケンス、Sq…データ処理シーケンス、EV…評価値、IV,IV1~IV5,IVm1~IVm5,IVn1~IVn5…個体、LM…学習データ、RV…接続参考値、SD…類似度、SM…学習セット、TM…目標データ、10…生成システム、20…生成装置、25…プロセッサー、30…シーケンス生成部、32…個体群生成部、34…遺伝子翻訳部、36…種別テーブル生成部、40…データ処理部、46…評価判定部、47…算出部、49…特定部、55…接続条件テーブル生成部、60…表示制御部、70…記憶装置、74…学習データ群、80…ノード要素群、82…遺伝子テーブル、82A…第1種遺伝子テーブル、82B,82B1,82B2…第2種遺伝子テーブル、84…個体群、88…接続条件テーブル、89…参照テーブル、92…種別テーブル、93…各種条件テーブル、94…各種プログラム、98…閾値テーブル、150…入力部、160…表示部、200…センサー装置、ARVn…平均値、RVn…接続参考値
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22