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

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

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

特開2024-143896データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143896
(43)【公開日】2024-10-11
(54)【発明の名称】データ処理シーケンスの生成方法、生成装置、および、コンピュータープログラム
(51)【国際特許分類】
   G06N 3/086 20230101AFI20241004BHJP
   G06N 3/0985 20230101ALI20241004BHJP
【FI】
G06N3/086
G06N3/0985
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023056835
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】笠原 秀明
(57)【要約】
【課題】基準条件を満たすデータ処理シーケンスを生成する効率が低下する可能性を低減できる技術を提供する。
【解決手段】データ処理シーケンスの生成方法は、(a)1世代の個体群を生成する工程と、(b)データ処理シーケンスを生成する工程であって、(b1)データ処理シーケンスの一部を構成する部分シーケンス構造を、構造参照テーブルと、遺伝子とを用いて決定する工程と、(b2)部分シーケンス構造を構成するノードにノード要素を割り当てる工程と、を有するデータ処理シーケンスを生成する工程と、を備える。
【選択図】図13
【特許請求の範囲】
【請求項1】
データ処理シーケンスの生成方法であって、
(a)上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する工程と、
(b)前記複数の個体ごとに対応した前記データ処理シーケンスを生成する工程であって、
(b1)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定する工程と、
(b2)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる工程と、を有する前記データ処理シーケンスを生成する工程と、
(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する工程と、
(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える、生成方法。
【請求項2】
請求項1に記載の生成方法であって、
前記工程(d)における前記予め定めた基準条件は、前記複数の評価値がそれぞれ示す複数の前記類似度のうちで最も値が高い前記類似度が、予め定めた終了閾値以上であるという条件であり、
前記工程(a)は、前記工程(d)において前記予め定めた基準条件を満たさない場合には、前回のルーチンによって生成した前記複数の個体のうちで、前記類似度が低い1つ以上の前記データ処理シーケンスの生成元である前記個体については、前記類似度が高い前記個体に対して交叉と突然変異との少なくとも一つを行うことで新たな前記個体に置き換え、前記類似度が高い前記個体は複製することで、今回のルーチンで用いる次世代の前記個体群を生成する次世代生成工程を含む、生成方法。
【請求項3】
請求項2に記載の生成方法であって、
前記工程(b)は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記遺伝子に割り当てられた前記部分シーケンス構造と前記ノード要素とを区別するためのデコード種別を関連付けた翻訳種別テーブルを生成する翻訳種別テーブル生成工程を含む、生成方法。
【請求項4】
請求項3に記載の生成方法であって、
前記次世代生成工程は、前記翻訳種別テーブルを参照して、交叉点と前記突然変異を行う前記遺伝子との少なくともいずれか一つを決定し、前記交叉または前記突然変異を行う参照個体生成工程を含む、生成方法。
【請求項5】
請求項4に記載の生成方法であって、
前記参照個体生成工程は、前記交叉によって前記個体を生成する場合において、前記部分シーケンス構造を単位として前記交叉を行う、生成方法。
【請求項6】
請求項5に記載の生成方法であって、
前記デコード種別は、前記部分シーケンス構造と前記ノード要素との区別に加え、前記データ処理シーケンスの生成に用いられなかった未使用の前記遺伝子を区別するための種別を含み、
前記参照個体生成工程は、前記交叉によって前記個体を生成する場合において、交叉前後において前記個体が有する前記遺伝子の数が同じとなるように、前記未使用の種別が関連付けられた前記遺伝子を用いて調整する、生成方法。
【請求項7】
請求項4に記載の生成方法であって、
前記遺伝子は、前記部分シーケンス構造と、前記ノード要素と、前記ノード要素に設定されるパラメーターとを表すために用いられ、
前記工程(b)は、さらに、
(b3)前記工程(b2)の後に、前記ノードに割り当てた前記ノード要素に対して、前記遺伝子と前記パラメーターとを対応付けたパラメーター参照テーブルと、前記遺伝子とを用いて、前記パラメーターを設定する工程を含む、
生成方法。
【請求項8】
請求項7に記載の生成方法であって、
前記デコード種別は、前記部分シーケンス構造と前記ノード要素との区別に加え、前記パラメーターを区別するための種別を含み、
前記翻訳種別テーブル生成工程は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記デコード種別を関連付けた翻訳種別テーブルを生成する、生成方法。
【請求項9】
請求項8に記載の生成方法であって、
前記参照個体生成工程は、前記突然変異によって前記個体を生成する場合において、前記突然変異を行う対象となる前記個体が有する前記複数の遺伝子のうちで、前記デコード種別として前記パラメーターが関連付けられた前記遺伝子に対して前記突然変異を行う種別参照変異工程を含む、生成方法。
【請求項10】
請求項1から請求項9までのいずれか一項に記載の生成方法であって、さらに、
前記データ処理シーケンスにおける入力側ノード要素と、前記入力側ノード要素に接続される出力側ノード要素との接続条件を規定した第1接続条件テーブルを用いて、前記ノード参照テーブルを生成する工程を含み、
前記第1接続条件テーブルは、互いに接続された前記入力側ノード要素と前記出力側ノード要素との組である要素セットごとに、前記入力側ノード要素と前記出力側ノード要素との接続確率を表すテーブルであり、
前記第1接続条件テーブルにおいて、前記データ処理シーケンスを構成する前記要素セットとして生成されることを予め禁止する所定要素セットに対して、前記データ処理シーケンスの構成要素として生成されることを禁止することを示す禁止情報が関連付けられている、生成方法。
【請求項11】
請求項10に記載の生成方法であって、
前記工程(b1)は、前記構造参照テーブルと前記遺伝子とを用いることなく、予め定めた下流端部分シーケンス構造であって、前記出力層と、少なくとも一つの前記フィルター層が割り当てられる前記ノードとを含む下流端部分シーケンス構造を、前記データ処理シーケンスの前記部分シーケンス構造として用いる工程を含む、生成方法。
【請求項12】
請求項10に記載の生成方法であって、
前記工程(b)は、前記個体の前記遺伝子の配列順に、前記データ処理シーケンスの出力側から入力側へと順に、前記部分シーケンス構造と、前記ノード要素とのいずれかを割り当てることで、前記データ処理シーケンスを生成し、
前記ノード参照テーブルは、前記出力側ノード要素の種別ごとに、接続される前記入力側ノード要素の種別と前記遺伝子とを対応付けており、
前記ノード参照テーブルの前記出力側ノード要素は、前記ノード要素と前記部分シーケンス構造とを含み、
前記工程(b2)は、
前記データ処理シーケンスの前記ノードごとの出力側の種別を規定する出力側種別テーブルを用いて、前記ノード要素を割り当てる前記ノードの前記出力側の種別を特定し、特定した前記出力側の種別に応じた前記ノード参照テーブルと、前記遺伝子とを用いて、前記ノードに、前記ノード要素を割り当てる工程と、を含む、生成方法。
【請求項13】
請求項1から請求項9までのいずれか一項に記載の生成方法であって、さらに、
接続された前記入力側と前記出力側の一対の前記部分シーケンス構造である構造セットごとに、前記一対の部分シーケンス構造の接続確率を表す第2接続条件テーブルを用いて、前記構造参照テーブルを生成する工程を含み、
前記第2接続条件テーブルにおいて、前記データ処理シーケンスを構成する前記構造セットとして生成されることを予め禁止する所定構造セットに対して、前記データ処理シーケンスの構成要素として生成されることを禁止することを示す禁止情報が関連付けられている、生成方法。
【請求項14】
データ処理シーケンスの生成装置であって、
上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する個体群生成部と、
前記複数の個体ごとに対応した前記データ処理シーケンスを生成するシーケンス生成部であって、
(i)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定し、
(ii)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる、シーケンス生成部と、
前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する算出部と、
前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する特定部と、を備える、生成装置。
【請求項15】
データ処理シーケンスの生成をコンピューターに実行させるためのコンピュータープログラムであって、
(a)上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する機能と、
(b)前記複数の個体ごとに対応した前記データ処理シーケンスを生成する機能であって、
(b1)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定する機能と、
(b2)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる機能と、を有する前記データ処理シーケンスを生成する機能と、
(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する機能と、
(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する機能と、を備える、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理シーケンスを生成する技術に関する。
【背景技術】
【0002】
従来、遺伝的プログラミングを用いることにより、個体を木構造のように構造的に表現する技術が知られている(特許文献1)。従来の技術では、遺伝的プログラミングを用いることにより、複数の画像処理フィルターを木構造に組み合わせた画像処理シーケンスを生成している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007-87055号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、遺伝的プログラミングを用いることにより、複数の画像処理シーケンスを生成し、基準条件を満たす画像処理シーケンスを特定している。特許文献1の技術では、1世代の個体群から交叉や突然変異を行って次世代の個体群を生成することで、基準条件を満たす画像処理シーケンスが特定されるまで、世代交代を実行している。この場合において、現世代の個体において任意の位置を交叉点として新たな個体を生成した場合、現世代の個体が表す画像処理シーケンスの部分構造が、次世代の個体では引き継がれない場合が生じ得る。例えば、深さ優先で個体を木構造の画像処理シーケンスに翻訳する場合、出力側に2つの入力端子を有する画像処理フィルターがあり、入力側に2つの画像処理フィルターがある部分構造を有する個体に対して交叉によって新たな個体を生成した場合、この部分構造が保てない。これにより、基準条件を満たす画像処理シーケンスを生成する効率が低下する場合が生じ得る。このような課題は、画像を処理する画像処理シーケンスの生成に限らず、画像や電圧変化など種々のデータを処理するデータ処理シーケンスの生成にも共通する。
【課題を解決するための手段】
【0005】
本開示の第1形態によれば、データ処理シーケンスの生成方法が提供される。この生成方法は、(a)上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する工程と、(b)前記複数の個体ごとに対応した前記データ処理シーケンスを生成する工程であって、(b1)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定する工程と、
(b2)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる工程と、を有する前記データ処理シーケンスを生成する工程と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する工程と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える。
【0006】
本開示の第2形態によれば、データ処理シーケンスの生成装置が提供される。この生成装置は、 上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する個体群生成部と、前記複数の個体ごとに対応した前記データ処理シーケンスを生成するシーケンス生成部であって、(i)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定し、(ii)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる、シーケンス生成部と、前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する算出部と、前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する特定部と、を備える。
【0007】
本開示の第3形態によれば、データ処理シーケンスの生成をコンピューターに実行させるためのコンピュータープログラムが提供される。このコンピュータープログラムは、(a)上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する機能と、(b)前記複数の個体ごとに対応した前記データ処理シーケンスを生成する機能であって、(b1)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定する機能と、(b2)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる機能と、を有する前記データ処理シーケンスを生成する機能と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する機能と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する機能と、を備える。
【図面の簡単な説明】
【0008】
図1】実施形態の生成システムを説明するための図。
図2】記憶装置を説明するための図。
図3】学習データ群の一例を示す図。
図4】一つの世代の個体群を説明するための図。
図5】構造参照テーブルを示す図。
図6】構造参照テーブルが規定する部分シーケンス構造を示す図。
図7】ノード参照テーブルを示す図。
図8】生成過程の木構造のデータ処理シーケンを示す図。
図9】表形式のデータ処理シーケンスと木構造のデータ処理シーケンスを示す図。
図10】翻訳種別テーブルを示す図。
図11】生成装置が実行する処理を示すフローチャート。
図12】特定データ処理シーケンスの生成処理の詳細フローチャート。
図13】ステップS308の詳細フローチャートを示す図。
図14】種別テーブル生成部が実行する翻訳種別テーブルの生成過程を示す図。
図15】親世代の個体と、翻訳種別テーブルと、データ処理シーケンスを示す図。
図16】親世代の個体と、翻訳種別テーブルと、データ処理シーケンスを示す図。
図17】次世代の個体を説明するための図。
図18】遺伝子長調整処理を説明するための図。
図19図11に示すステップS50の利用処理工程のフローチャート。
図20】第2実施形態の生成装置が有するノード参照テーブルを示す図。
図21】参照テーブルが有するパラメーター参照テーブルを示す図。
図22】データ処理シーケンスを生成する工程の詳細フローチャート。
図23】データ処理シーケンスの生成元である個体IVの一例を示す図。
図24】個体が表す木構造のデータ処理シーケンスを示す図。
図25】個体が表す表形式のデータ処理シーケンスを示す図。
図26】個体に対応する翻訳種別テーブルを示す図。
図27】個体群生成部が実行する種別参照変異工程を説明する図。
図28】第3実施形態の生成装置を示す図。
図29】第3実施形態の記憶装置を示す図。
図30】部分シーケンス構造の一部を示す図。
図31】テーブル生成処理のフローチャート。
図32】入力数が「0」の入力側ノード要素に対する第1接続条件テーブルを示す図。
図33】入力数が「1」の入力側ノード要素に対する第1接続条件テーブルを示す図。
図34】入力数が「2」の入力側ノード要素に対する第1接続条件テーブルを示す図。
図35図32のステップS110を説明するための第1図。
図36図32のステップS110を説明するための第2図。
図37図32のステップS110を説明するための第3図。
図38】ノード参照テーブルの生成処理を説明するための図。
図39】ステップS308bのフローチャート。
図40】出力側種別テーブルを示す図。
図41】翻訳される個体を示す図。
図42】個体を翻訳することで生成されたデータ処理シーケンスを示す図。
図43】翻訳情報を示す図。
図44】表形式のデータ処理シーケンスを示す図。
図45】第2接続条件テーブルを示す図。
図46】第2接続条件テーブルから生成された構造参照テーブルを示す図。
【発明を実施するための形態】
【0009】
A.第1実施形態:
A-1.生成システムの構成:
図1は、実施形態の生成システム10を説明するための図である。生成システム10は、生成装置20とセンサー装置200とを備える。生成装置20とセンサー装置200とは、有線や無線によってデータを送受信可能である。センサー装置200は、対象の物理量を取得するセンサーであり、物理量である光の強さを検出して画像を生成する撮像装置や、物理量である電圧を取得する電圧センサーなどがある。本実施形態は、センサー装置200は撮像装置である。センサー装置200によって取得された撮像画像は、生成装置20に送信される。
【0010】
生成装置20は、データ処理後の所望とする目標データTMを得るための特定データ処理シーケンスDSqを生成するシーケンス生成機能と、データ処理機能とを有する。目標データTMは、データ処理シーケンスSqによるデータ処理の目的に応じて予め準備される。例えば、目標データTMは、データ処理シーケンスSqに入力される入力データIDの種別を判別することが目的である場合には、判別結果を示すデータである。また例えば、目標データTMは、入力データIDから所定の電圧や温度などの物理量を得たい場合には、物理量を示すデータである。本実施形態では、目標データTMは、目標画像である。
【0011】
データ処理機能は、データ処理シーケンスSqを用いて入力データIDをデータ処理する機能である。本実施形態の生成装置20は、入力データIDである撮像画像を元に、所望の目的を達成するための所望画像を得るための特定データ処理シーケンスDSqを自動で生成する。例えば、生成装置20は、センサー装置200によって撮像された工業製品である回路基板の画像を、特定データ処理シーケンスDSqを用いて画像処理することで、欠陥部分が黒画像、それ以外の部分が白画像で表された二値化画像を所望画像として出力する。例えば、この二値化画像を元に、欠陥部分の有無や位置がユーザーや装置によって特定されることで、工業製品の検査が行われる。
【0012】
シーケンス生成機能は、遺伝的プログラミングを用いて複数のデータ処理シーケンスSqを生成し、生成した複数のデータ処理シーケンスSqの中から所望とする画像処理後の画像を得るための特定データ処理シーケンスDSqを特定する。
【0013】
生成装置20は、パーソナルコンピューターなどの電子計算機である。生成装置20は、プロセッサー25と、記憶装置70と、入力部150と、表示部160とを備える。プロセッサー25は、記憶装置70に記憶された各種プログラムを実行することで、生成装置20の動作を制御する。プロセッサー25の詳細な機能は後述する。記憶装置70は、RAMやROMなどのメモリーにより構成されている。記憶装置70には、プロセッサー25の各機能を実現するための各種プログラムと、データ処理シーケンスSqの生成のために用いる各種データとが記憶されている。記憶装置70の詳細は後述する。入力部150は、外部からの情報を受け付けるインタ-フェ-スである。入力部150は、例えば、センサー装置200からの撮像画像などのデータの入力を受け付けたり、ユーザーが他の装置を用いて生成した画像などのデータの入力を受け付けたりする。表示部160は、各種情報を表示する。表示部160は、例えば、液晶モニターである。
【0014】
プロセッサー25は、記憶装置70の各種プログラムを実行することで、シーケンス生成部30と、データ処理部40と、評価判定部46と、表示制御部60として機能する。なお、プロセッサー25によって実行される機能の一部は、ハードウェア回路によって実現されてもよい。ここで、本開示において、「プロセッサー」は、CPUやGPUを包含する用語である。
【0015】
シーケンス生成部30は、個体IVによって示された遺伝子の配列を木構造のように構造的に表現することで、シーケンス要素の組み合わせが異なる複数のデータ処理シーケンスSqによって構成されるシーケンスセットを生成する。データ処理シーケンスSqは、複数のシーケンス要素の組み合わせによって表されている。シーケンス要素は、データ処理シーケンスSqを構成する要素であり、(i)データを入力するノード要素であり、上流端ノードに割り当てられる入力層と、(ii)入力層と出力層との間の中間のノード要素である、データを処理するためのフィルター層と、(iii)最終的なデータ処理後のデータである出力データPMを出力する下流端ノードに割り当てられる出力層と、を有する。データ処理シーケンスSqは少なくとも一つのフィルター層を含む。なお、シーケンス要素のうち、木構造のノードには、入力層、フィルター層、出力層のいずれかが割り当てられることから、入力層、フィルター層、出力層を、ノード要素とも呼ぶ。また、ノード要素に加えフィルター層に設定されるパラメーターもシーケンス要素を構成する。
【0016】
シーケンス生成部30は、個体群生成部32と、遺伝子翻訳部34と、種別テーブル生成部36と、を備える。個体群生成部32は、一次元に配列された複数の遺伝子によって構成される個体IVを生成する。個体IVを構成する各遺伝子は、シーケンス要素のうちで、入力層の種類と、フィルター層の種類と、後述する部分シーケンス構造Stの種類とのいずれかを表す数値である。出現範囲を示す遺伝子の数値範囲ごとに、入力層とフィルター層と部分シーケンス構造Stのいずれかが割り当てられる。以上のように、個体IVは、出力層を除くノード要素や部分シーケンス構造Stのそれぞれに対応した遺伝子を配列することで生成される。
【0017】
個体群生成部32は、一つの世代Gごとに、予め定めた数の個体IVを生成する。本実施形態では、個体群生成部32は、一次元に遺伝子を配列することで、予め定めた遺伝子長の個体IVを生成する。一つの世代Gごとにおいて、複数のデータ処理シーケンスSqのシーケンス要素の組み合わせは異なる。個体群生成部32は、一回目の世代Gについては、個体IVの各遺伝子座に、0から1までの小数点第3位までの数値を遺伝子としてランダムに配置することで、複数の個体IVから構成される個体群81を生成する。個体群生成部32は、二回目以降の世代Gについては、親世代Gの個体IVのうちで後述する評価値EVが示す類似度SDが高い個体IVから交叉と突然変異との少なくとも一つの手法を用いて個体IVを新たに生成することで、新たに生成した個体IVと、親世代Gで維持、すなわち親世代Gの個体IVを複製した個体IVとの集合である個体群81を生成する。
【0018】
遺伝子翻訳部34は、記憶装置70に記憶された後述する参照テーブルを参照することで、個体IVの各遺伝子を翻訳して木構造で表されたデータ処理シーケンスSqを生成する。参照テーブルは、データ処理シーケンスSqの構成要素と遺伝子の値VGとを対応付けたテーブルであり、詳細は後述する。
【0019】
種別テーブル生成部36は、個体IVの各遺伝子が表すデータ処理シーケンスSqの構成要素の種別を遺伝子の値VGごとに規定する翻訳種別テーブルを生成する。構成要素の種別はデコード種別として表される。デコード種別は、データ処理シーケンスSqのノードに割り当てられるノード要素を表す種別と、部分シーケンス構造Stを表す種別との2つの種別を有する。部分シーケンス構造Stは、ノードの未接続端子に接続される少なくとも1つのノードによって構成され、データ処理シーケンスSqの一部を構成する。種別テーブル生成部36によって生成された翻訳種別テーブル92は、シーケンス生成機能によって特定データ処理シーケンスDSqを特定するために生成される個体IVの生成に用いられる。翻訳種別テーブルは、個体IVが有する全て、本実施形態では15個の遺伝子座No.に関連付けてデコード種別が規定される。翻訳種別テーブル92の詳細は後述する。
【0020】
データ処理部40は、遺伝子翻訳部34が生成したデータ処理シーケンスSqや、記憶装置70に記憶された特定データ処理シーケンスDSqを用いて、入力層に入力された入力データIDをデータ処理して出力層からデータ処理後の出力データPMを出力する。
【0021】
評価判定部46は、1世代Gの複数の個体IVが示す複数のデータ処理シーケンスSqの中から、予め定めた基準条件を満たす特定データ処理シーケンスDSqを特定する。評価判定部46は、算出部47と、特定部49とを有する。
【0022】
算出部47は、入力データIDの一例である学習データLMを個体IVが示すデータ処理シーケンスSqによってデータ処理することで得られたデータ処理後の出力データPMと、学習データLMに関連付けられた目標となる目標データTMとを比較して、出力データPMと目標データTMとの類似度SDを示す評価値EVを算出する。算出部47は、1つの世代Gにおける複数の個体IVが示す複数のデータ処理シーケンスSqごとに、評価値EVを算出する。算出された評価値EVは、個体IVと関連付けて記憶装置70に記憶される。
【0023】
特定部49は、算出した評価値EVを用いてデータ処理シーケンスSqが予め定めた基準条件を満たすか否かを判定し、基準条件を満たすデータ処理シーケンスSqを特定データ処理シーケンスDSqとして特定する。
【0024】
評価値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の一致率としてもよい。
【0025】
表示制御部60は、各種情報を表示部160に表示させる。表示制御部60は、例えば、特定データ処理シーケンスDSqや、出力データPMや、目標データTMや、評価値EVを表示部160に表示させる。
【0026】
図2は、記憶装置70を説明するための図である。記憶装置70は、学習データ群74と、ノード要素群80と、個体群81と、参照テーブル82と、各種条件テーブル90と、特定データ処理シーケンスDSqと、各種プログラム94と、部分シーケンス構造Stとを記憶する。
【0027】
各種条件テーブル90は、生成装置20によって実行する各種処理の条件が規定されている。例えば、各種条件テーブル90は、後述する接続条件テーブルの生成処理を実行する場合に用いる終了条件や、特定データ処理シーケンスDSqを特定するための基準条件や、次世代の個体群81を生成するときの生成条件を規定する。特定データ処理シーケンスDSqは、特定部49によって予め定めた基準条件を満たすと判定されたデータ処理シーケンスSqである。特定データ処理シーケンスDSqは、例えば、複数のデータ処理層である複数のフィルター層を識別する層識別子と、層識別子の順番、すなわち接続関係とによって表される。各種プログラム94は、プロセッサー25によって実行されるプログラムである。
【0028】
図3は、学習データ群74の一例を示す図である。学習データ群74は、データ処理シーケンスSqによるデータ処理対象である学習データLMと、学習データLMに関連付けられた目標データTMとによって構成された学習セットSMを複数セット有する。学習データLMは、例えば、工業製品である回路基板の画像である。目標データTMは、欠陥部分DAが黒画像、それ以外の部分が白画像で表された二値化画像である。目標データTMは、良品を示す画像である良品データと、不良品を示す画像である不良品データとの2種類がある。不良品データは、例えば、予め欠陥部分の箇所が特定できている学習データLMを参考に、ユーザーが欠陥部分DAを黒画像に設定し、それ以外の部分を白画像に設定することで生成される。良品データは、欠陥部分DAが存在しないので、例えば、全体が白画像に設定される。複数の学習データLMはそれぞれ、製造番号が異なる同種の回路基板をセンサー装置200で撮像した画像である。
【0029】
図2のノード要素群80は、データ処理シーケンスSqにおいてノードNDに割り当てられるノード要素の集合である。ノード要素は、フィルター層と、入力層である。フィルター層としては、平均値フィルター、最大値フィルター、最小値フィルター、二値化フィルター、移動平均フィルター、ラプラシアンフィルター、ガウシアンフィルター、ソーベルフィルター、ガンマ補正フィルター、2つのデータを一つのデータに合成するフィルターなどが挙げられる。なお、フィルター層は、同じ種類のフィルター層であっても、カーネルサイズや係数などのパラメーターの値を設定可能な場合には、予め定めた一定の値にパラメーター値が設定されていてもよいし、パラメーター値ごとに異なるノード要素として設定されていてもよい。本実施形態では、パラメーター値を有するフィルター層において、パラメーター値は予め定めた一定の値である。
【0030】
図2に示す個体群81は、個体群生成部32によって生成された1つの世代Gにおける複数の個体IVが記憶されている。図4は、一つの世代Gの個体群81を説明するための図である。本実施形態では、1つの世代Gで5つの個体IV1~IV5が生成される例を説明する。各個体IV1~IV5は、遺伝子を配置する複数の遺伝子座が一次元的に配列されている。各個体IV1~IV5の遺伝子長は同じであり、各個体IV1~IV5はNo.1~No.15の遺伝子座に遺伝子を順に配列することで構成されている。個体群生成部32は、各遺伝子座に、0から1までの小数点第3位までの数値VGで表された遺伝子をランダムに配置する。つまり、本実施形態では、各遺伝子座で遺伝子が取りうる数値VGは、0以上1以下の小数点第3位までの数値である。
【0031】
図2に示す参照テーブル82は、遺伝子の値VGと、データ処理シーケンスSqの構成要素との対応関係を示すテーブルである構造参照テーブル83およびノード参照テーブル84と、遺伝子が翻訳された種別を示す翻訳種別テーブル92とを有する。翻訳種別テーブル92の詳細は後述する。
【0032】
図5は、構造参照テーブル83を示す図である。図6は、構造参照テーブル83が規定する部分シーケンス構造Stを示す図である。図5に示すように、構造参照テーブル83は、木構造で表されるデータ処理シーケンスSqの少なくとも一つのノードで構成される部分シーケンス構造StA~StJの種別と、遺伝子の数値VGとの対応関係を示す。例えば、遺伝子の数値VGが「0.150」である場合には、この遺伝子には部分シーケンス構造StBが割り当てられる。本実施形態では、10種類の種別の部分シーケンス構造StA~StJがデータ処理シーケンスSqの一部として均等な確率で出現するように、出現範囲が10等分されている。各出現範囲に、各部分シーケンス構造StA~StJが対応している。なお、不等号について、遺伝子の数値VGがいずれの種別の出現範囲に含まれている限り、等号の有無を変更してもよい。10種類の部分シーケンス構造StA~StJを区別することなく用いる場合には、部分シーケンス構造Stとも呼ぶ。
【0033】
図6に示すように、部分シーケンス構造Stは、ノードNDの入力側の未接続端子Ntに接続され、入力層とフィルター層との少なくともいずれか一方のノード要素が割り当てられるノードNDを含む。部分シーケンス構造Stは、データ処理シーケンスSqの一部を構成し、木構造において深さ方向において1段または2段のシーケンス構造を有する。ノードND内に記載した入力数は、ノードNDを出力側とした場合に入力側に設定されるノードNDの数である。入力数が「0」のノードNDでは、入力層を構成するノード要素が割り当てられることになる。
【0034】
予め準備される部分シーケンス構造Stの種類は、データ処理シーケンスSqの候補となるノード要素の種類やノード要素の入力数を元に決定される。本実施形態では、図5に示すように、部分シーケンス構造Stの種類は、第1部分シーケンス構造StA~第10部分シーケンス構造StJの10種類である。このように、部分シーケンス構造Stは、ノードNDに入力層やフィルター層が割り当てられる前の状態であり、ノードの配置の関係を示している。
【0035】
図7は、ノード参照テーブル84を示す図である。ノード参照テーブル84は、遺伝子とノード要素の種別とを対応付けたテーブルである。ノード参照テーブル84は、入力側に接続されるノードの数である入力数ごとに定められている。なお、いずれのノード要素も出力数は「1」である。
【0036】
ノード参照テーブル84のうち、入力数が「0」のノード要素に対応するテーブルを第1ノード参照テーブル84aとも呼ぶ。第1ノード参照テーブル84aに規定されているノード要素は、入力層inと入力層ConAである。入力層inは、入力データIDを受け付けて出力側に出力する層である。入力層ConAは、予め定められた固定データが入力される層であり、例えば、入力データIDと同種のデータである。固定データは、入力データIDが画像である場合には、画像である。
【0037】
ノード参照テーブル84のうち、入力数が「1」のノード要素に対応するテーブルを第2ノード参照テーブル84bとも呼ぶ。第2ノード参照テーブル84bに規定されているノード要素は、フィルター層FtA~FtDである。第2ノード参照テーブル84bに規定された「1入力1出力」のフィルター層FtA~FtDとしては、平均値フィルター、最大値フィルター、最小値フィルター、反転フィルターなどがある。
【0038】
ノード参照テーブル84のうち、入力数が「2」のノード要素に対応するテーブルを第3ノード参照テーブル84cとも呼ぶ。第3ノード参照テーブル84cに規定されているノード要素は、フィルター層FtE,FtFである。第3ノード参照テーブル84cに規定された「2入力1出力」のフィルター層FtE,FtFは、例えば、論理和フィルターや論理積フィルターなどである。
【0039】
第1ノード参照テーブル84a~第3ノード参照テーブル84cのそれぞれにおいて規定されたノード要素は、均等な確率で出現するように出現範囲が等分されている。例えば、第1ノード参照テーブル84aでは出現範囲が2等分されており、第2ノード参照テーブル84bでは出現範囲が4等分されており、第3ノード参照テーブル84cでは出現範囲が2等分されている。なお、不等号について、遺伝子の数値VGがノード参照テーブル84a~84cごとにおいて、いずれのノード要素種別の出現範囲に含まれている限り、等号の有無を変更してもよい。
【0040】
図2の更なる説明を行う前に、図8を用いて、遺伝子翻訳部34によるデータ処理シーケンスSqの生成処理を説明する。図8は、遺伝子翻訳部34によって生成される生成過程の木構造のデータ処理シーケンスSqを示す図である。図8の左側には、木構造のデータ処理シーケンスSqに対応する表形式のデータ処理シーケンスTSqが示され、右側には木構造のデータ処理シーケンスSqが示されている。なお、図8に示すデータ処理シーケンスSqは、図4に示す個体IV1を元に生成されるデータ処理シーケンスSq1である。理解の容易のために、図8において括弧書き内に記載された数字は、個体IV1の遺伝子座No.を示している。
【0041】
図8の右側に示すように、まず遺伝子翻訳部34は、出力層outを下流端ノードである終端ノードに設定し、個体IVの遺伝子の配列順にデータ処理シーケンスSqの出力側から入力側へと順に、部分シーケンス構造Stとノード要素とのいずれかを割り当てることでデータ処理シーケンスSqを生成する。ノード要素の接続は、予め定めた翻訳ルールに従い実行される。本実施形態では、深さ優先のルールに従い遺伝子の翻訳が実行される。また、本実施形態では、まず部分シーケンス構造Stを1つ決定する処理と、決定した部分シーケンス構造Stが有するノードNDにノード要素を割り当てる処理とを、上流端ノードである始端ノードに入力層in,ConAが割り当てられるまで繰り返し実行する。また、本実施形態の翻訳ルールでは、出力層outを上側としたときの木構造において、左側の接続先を右側の接続先よりも優先して部分シーケンス構造Stを設定する。
【0042】
遺伝子翻訳部34は、まず出力層outの入力側の未接続端子Nt1に接続される部分シーケンス構造Stを、個体VI1の遺伝子座No.1の遺伝子と、構造参照テーブル83とを参照することで決定する。図4に示すように、個体VI1の遺伝子座No.1に配置された遺伝子の数値VGは、「0.251」であり、図5の構造参照テーブル83では部分シーケンス構造StCが対応する。よって、遺伝子翻訳部34は、出力層outの入力側の未接続端子Nt1に、第3部分シーケンス構造StCを接続する。図6に示すように、部分シーケンス構造StCでは、入力数が「2」である1つのノードNDを有する。また、このノードNDは、2つの入力側端子Nt2,Nt3を有する。よって、遺伝子翻訳部34は、表形式のデータ処理シーケンスTSq1のノードNo.1に対応した、ノード要素と第1入力側ノードNo.と第2入力側ノードNo.に「予約コード」を設定する。
【0043】
次に、遺伝子翻訳部34は、ノードNo.1、すなわち、第3部分シーケンス構造StCが有するノードNDに割り当てられるノード要素を、遺伝子座No.2の遺伝子の数値VGと、図7に示す入力数が「2」である第3ノード参照テーブル84cとを参照することで決定する。図4に示す個体VI1の遺伝子座No.2に配置された遺伝子の数値VGは「0.993」であるので、図7の第3ノード参照テーブル84cを参照するとフィルター層FtFが対応する。よって、遺伝子翻訳部34は、ノードNo.1のノード要素にフィルター層FtFを割り当てる。
【0044】
図8の中段に示すように、遺伝子翻訳部34は、ノードNo.1のノードに割り当てたフィルター層FtFの2つの未接続端子Nt2,Nt3のうち、左側の未接続端子Nt2に接続される部分シーケンス構造Stを、遺伝子と構造参照テーブル83とを参照して決定する。具体的には、遺伝子翻訳部34は、個体IV1の遺伝子座No.3に配置された遺伝子の数値VGである「0.067」と、図5に示す構造参照テーブル83とを参照することで、左側の未接続端子Nt2に接続される部分シーケンス構造Stを、第1部分シーケンス構造StAと決定する。次に、遺伝子翻訳部34は、先ほど決定した第1部分シーケンス構造StAが入力数を「0」とする1つのノードNDを有するので、ノードNo.2に「予約コード」を設定する。次に、遺伝子翻訳部34は、ノードNo.2に割り当てるノード要素を、遺伝子座No.4に配置された遺伝子の数値VGと、入力数が「0」のテーブルである図7の第1ノード参照テーブル84aとを参照して決定する。左側のノードは、入力数が「0」の下流端ノードであるため、ノードNo.2のノード要素を決定した後は、木構造における右側の未接続端子Nt3に接続される部分シーケンス構造の決定が行われる。このように、木構造のデータ処理シーケンスSqにおいて、全ての始端ノードである上流端ノードが、入力数が「0」である入力層inまたは入力層ConAとなるまで、遺伝子翻訳部34は、遺伝子と参照テーブル82とを参照することでデータ処理シーケンスSqを生成する。
【0045】
図9は、図4の個体IV1で表される表形式のデータ処理シーケンスTSq1と、木構造のデータ処理シーケンスSqを示す図である。理解の容易のために、表形式のデータ処理シーケンスTSq1において、括弧内に数字は、翻訳元である対応する遺伝子座No.を表している。また理解の容易のために、木構造のデータ処理シーケンスSq1において、[x,y]を記載している。xの数字は、データ処理シーケンスSqのノードNo.を表し、yは対応する遺伝子座No.を表す。図9の木構造のデータ処理シーケンスSq1に示すように、上流端ノードは、全ての入力数が「0」の入力層in、ConAである。
【0046】
図2に戻り、記憶装置70の更なる説明を以下に行う。翻訳種別テーブル92は、特定データ処理シーケンスDSqの候補となるデータ処理シーケンスSqの生成過程において、種別テーブル生成部36によって生成される。
【0047】
図10は、個体IV1を翻訳した場合に生成される翻訳種別テーブル92を示す図である。翻訳種別テーブル92は、データ処理シーケンスSqの生成元である個体IVを構成する遺伝子ごとに、詳細には遺伝子が配置された遺伝子座ごとに、遺伝子に割り当てられた部分シーケンス構造Stとノード要素とを区別するためのデコード種別を関連付けたテーブルである。デコード種別は、さらに、部分シーケンス構造Stとノード要素の区別に加え、データ処理シーケンスSqの生成に用いられなかった未使用の遺伝子を区別するための種別を含む。図10において、遺伝子が部分シーケンス構造Stを表すために用いられた場合には、デコード種別として「Struct」の識別子が設定される。また、遺伝子がノード要素を表すために用いられた場合には、デコード種別として「Node」の識別子が設定される。また、遺伝子が未使用の場合には、デコード種別として「Empty」の識別子が設定される。
【0048】
A-2.生成装置が実行する処理:
図11は、生成装置20が実行する処理を示すフローチャートである。まず、生成装置20のシーケンス生成機能は、ステップS30において、特定データ処理シーケンスDSqの生成処理を実行する。次いで、生成装置20のデータ処理機能は、ステップS50において、特定データ処理シーケンスDSqを利用した利用処理を実行する。
【0049】
図12は、図11に示すステップS30における特定データ処理シーケンスDSqの生成処理の詳細フローチャートである。まず、ステップS300において、記憶装置70は、複数のフィルター層FtA~FtFおよび入力層ConAをノード要素群80として記憶する。ステップS300は、ユーザーによって特定データ処理シーケンスDSqで用いる候補となるフィルター層FtA~FtFなどのノード要素が生成装置20に入力されることで実行される。
【0050】
また、記憶装置70は、ステップS301において、複数の学習セットSMから構成される学習データ群74を記憶する。ステップS301は、ユーザーによって学習データ群74が生成装置20に入力されることで実行される。
【0051】
また、記憶装置70は、ステップS303において、次世代の個体群81が生成される場合の生成条件を記憶する。生成条件は、次世代生成工程において、親世代のどの個体IVに対して、通常個体生成工程と参照個体生成工程のいずれかを実行するのかを定めた条件であり、ユーザーによって生成装置20に入力される。なお、ステップS300,ステップS301,ステップS303の順番は上記の順番に限定されるものではない。通常個体生成工程と参照個体生成工程については後述する。
【0052】
次に、ステップS306において、個体群生成部32は、複数の個体IVを生成して1世代の個体群81を生成する。上述のごとく、個体IVは、図4に示すように、ノード要素と、部分シーケンス構造Stと、のいずれかを表すための複数の遺伝子を配列する。ステップS306において、一つの世代Gにおける個体群81は、複数の個体IV1~IV5によって構成されている。生成された個体群81は、記憶装置70に記憶される。このようにステップS306では、個体群生成部32は、上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスSqを表すための複数の遺伝子を配列した個体IVを複数生成して1世代の個体群81を生成する。
【0053】
次に、ステップS308において、遺伝子翻訳部34は、各個体IV1~IV5のうちから一つを選択して、個体IVの遺伝子と、参照テーブル82とを参照して、遺伝子を翻訳してデータ処理シーケンスSqを生成する。ステップS308は、1つの世代Gの全ての個体IVについて実行されるまで繰り返し実行される。つまり、繰り返し実行されるステップS308は、1つの世代Gを構成する複数の個体IVごとに対応したデータ処理シーケンスSqを生成する工程である。ステップS308の詳細については後述する。
【0054】
次に、ステップS350において、データ処理部40はステップS308で生成されたデータ処理シーケンスSqを用いて複数の学習データLMをデータ処理して複数の出力データPMを生成する。
【0055】
次に、ステップS352において、評価判定部46は、ステップS350によって生成された複数の出力データPMと、複数の出力データPMのそれぞれの生成元の学習データLMに関連付けられた目標データTMとを比較して、評価値EVを複数算出することで処理結果を評価する。評価判定部46は、算出した複数の評価値EVの平均値を、出力データPMと目標データTMとの類似度SDを示す最終的な評価値EVとして用いる。
【0056】
次に、ステップ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を算出する。
【0057】
一方で、ステップS354で「Yes」の判定が成された場合には、評価判定部46の特定部49は、ステップS356において、現世代における算出した複数の評価値EVを用いて、予め定めた基準条件を満たすデータ処理シーケンスSqがあるか否かを判定する。具体的には、評価判定部46の特定部49は、現世代の複数の個体IVを元に算出した複数の評価値EVが示すそれぞれの類似度SDのうちで、最も高い類似度SDmaxが、予め定めた終了閾値以上である場合には、基準条件を満たすデータ処理シーケンスSqがあると判定する。つまり、ステップS356の工程は、複数のデータ処理シーケンスSqのそれぞれに対応する複数の評価値EVを用いて、予め定めた基準条件を満たすデータ処理シーケンスSqを特定する工程である。
【0058】
基準条件を満たすデータ処理シーケンスSqがある場合、評価判定部46の特定部49は、ステップS358において、基準条件を満たすデータ処理シーケンスSqを特定データ処理シーケンスDSqとして出力する。出力された特定データ処理シーケンスDSqは、記憶装置70に記憶される。
【0059】
一方で、基準条件を満たすデータ処理シーケンスSqが無い場合、ステップS306~ステップS356の処理が次ルーチンとして実行される。次ルーチンのステップS306では、個体群生成部32は、次世代生成工程を実行することで次世代の個体群81を生成する。次世代生成工程において、個体群生成部32は、前回のルーチンで生成した複数の個体IVのうちで評価値EVが示す類似度SDが低い1つ以上のデータ処理シーケンスSqの生成元である個体IVについては、類似度SDが高い個体IVに対して交叉と突然変異との少なくとも一つを行うことで新たな個体IVに置き換える。また、次世代生成工程において、個体群生成部32は、前回のルーチンにおいて類似度SDが高い個体IVは複製する。これにより、個体群生成部32は、次世代生成工程によって、今回のルーチンで用いる次世代の個体群81を生成する。
【0060】
本実施形態では、個体群生成部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を特定できる。
【0061】
次世代生成工程は、図10に示す翻訳種別テーブル92を参照して交叉と突然変異との少なくとも一つを行って次世代の個体群81を生成する参照個体生成工程と、翻訳種別テーブル92を参照することなく交叉と突然変異との少なくとも一つを行うことで次世代の個体IVを生成する通常個体生成工程とを含む。次世代生成工程において、個体IVごとに、参照個体生成工程と、通常個体生成工程とのいずれかを実行するかについては、図2に示す各種条件テーブル90の生成条件に規定されている。この生成条件は、ユーザーから入力によって規定されてもよい。参照個体生成工程の詳細については後述する。
【0062】
新たなシーケンスセットを対象としたステップS308~ステップS356の処理において、前回までのルーチンで用いたシーケンスセットを構成するデータ処理シーケンスSqと同じデータ処理シーケンスSqについては、前回までのルーチンで算出された評価値EVが用いられる。これにより、評価値EVを再度計算する必要がないので、特定データ処理シーケンスの生成処理の処理効率を向上できる。
【0063】
図13は、ステップS308の詳細フローチャートを示す図である。図14は、ステップS308を実行している際に、種別テーブル生成部36が実行する翻訳種別テーブル92の生成過程を示す図である。
【0064】
図13に示すように、遺伝子翻訳部34は、ステップS311において、記憶装置70に記憶された現世代Gを構成する個体IV1~IV5のうちで、未処理の一つを選択する。以下では、図4に示す個体IV1が選択された場合について記載する。
【0065】
また遺伝子翻訳部34は、ステップS313において、データ処理シーケンスSqと翻訳種別テーブル92を初期化する。データ処理シーケンスSqの初期化によって、データ処理シーケンスSqは出力層outのみが配置される。また、翻訳種別テーブル92は、初期化によって、デコード種別が記録されていない状態となる。なお、ステップS311とステップS313の順番はこれに限定されるものではなく逆であってもよい。
【0066】
次に遺伝子翻訳部34は、ステップS326において、未確定のノードNDが有るか否かを判定する。未確定のノードNDは、データ処理シーケンスSqのノードNDにノード要素が割り当てられていないノードである。初回のルーチンでは、ステップS313によってデータ処理シーケンスSqが初期化されており、出力層outのみが設定されている状態であるため、未確定のノードNDは無いと判定され、ステップS330が実行される。
【0067】
遺伝子翻訳部34は、ステップS330において、生成過程のデータ処理シーケンスSqに未接続端子があるかどうかを判定する。遺伝子翻訳部34は、入力側のノードNDが全て入力層in,ConBである場合には、未接続端子が無いと判定する。初回のルーチンでは、データ処理シーケンスSqは出力層outのみが設定されているので、遺伝子翻訳部34は、ステップS330において、未接続端子は有ると判定してステップS316を実行する。
【0068】
遺伝子翻訳部34は、ステップS316において、予め定めた翻訳ルールに従って未接続端子Ntを1つ選択する。本実施形態では、図8の右上に記載するステップS316のように、出力層outの未接続端子Nt1が選択される。
【0069】
次いで遺伝子翻訳部34は、ステップS317において、未接続端子Nt1に接続される部分シーケンス構造Stを表す遺伝子の翻訳を行う。つまり、ステップS317は、データ処理シーケンスSqの一部を構成する部分シーケンス構造Stを、遺伝子と構造参照テーブル83とを用いて決定する工程である。詳細には、ステップS317では、遺伝子翻訳部34は、個体IV1の遺伝子のうちで、まだデータ処理シーケンスSqを生成するために用いられていない未翻訳、かつ、最も遺伝子座No.が小さい翻訳対象遺伝子と、図5に示す構造参照テーブル83とを参照して、部分シーケンス構造Stを決定する。図4に示すように、個体VI1の遺伝子座No.1に配置された遺伝子の数値VGは、「0.251」であり、図5の構造参照テーブル83では部分シーケンス構造StCが対応する。よって、遺伝子翻訳部34は、遺伝子座No.1に配置された遺伝子に対応する部分シーケンス構造Stが第3部分シーケンス構造StCであると決定して、未接続端子Nt1に第3部分シーケンス構造StCを接続することで遺伝子の翻訳を実行する。また、遺伝子翻訳部34は、図8の最も上に示された表形式のデータ処理シーケンスTSq1に示すように、表形式のデータ処理シーケンスTSq1においてノードNo.1に対応する箇所に「予約コード」を設定する。
【0070】
図13に示すように、ステップS317の次にステップS318において、種別テーブル生成部36は、部分シーケンス構造Stであることを識別する識別子を、翻訳対象遺伝子が配置された遺伝子座に関連付けることで、部分シーケンス構造Stの識別子を翻訳種別テーブル92に記録する。本実施形態では、図19の最も左側に示した翻訳種別テーブル92のように、種別テーブル生成部36は、翻訳種別テーブル92において、翻訳対象遺伝子が配置された遺伝子座No.1に関連付けて、デコード種別として部分シーケンス構造Stを示す「Struct」の識別子を記録する。
【0071】
次に、遺伝子翻訳部34は、図13のステップS320に示すように、予め定めた翻訳ルールに従って、ノード要素が割り当てられていない未確定ノードNDを選択する。本実施形態では、遺伝子翻訳部34は、未接続端子Nt1に接続された第3部分シーケンス構造StCが有する予約コードが設定されたノードNDを未確定ノードNDとして選択する。
【0072】
次に、遺伝子翻訳部34は、ステップS322において、選択した未確定ノードNDに対応した遺伝子の翻訳を行う。つまり、ステップS322は、図7に示すノード参照テーブル84と、遺伝子とを用いて部分シーケンス構造Stを構成するノードNDに、入力層とフィルター層とのいずれかのノード要素を割り当てる工程である。詳細には、ステップS322において、遺伝子翻訳部34は、個体IV1の翻訳対象遺伝子と、図7に示すノード参照テーブル84とを参照して、部分シーケンス構造Stを構成する未確定ノードNDに割り当てるノード要素を決定する。遺伝子翻訳部34は、翻訳対象遺伝子である図4の個体IV1の遺伝子座No.2の遺伝子が表す数値VGと、入力数が「2」のノードに対応した図7に示す第3ノード参照テーブル84cとを参照して、ノード要素としてフィルター層FtFを決定する。
【0073】
次に図13に示すように、ステップS324において、種別テーブル生成部36は、ノード要素であることを識別する識別子を、翻訳元である対応する遺伝子が配置された遺伝子座に関連付けることで、ノード要素の識別子を翻訳種別テーブル92に記録する。本実施形態では、図19の左から2番目に示した翻訳種別テーブル92のように、種別テーブル生成部36は、翻訳種別テーブル92において、翻訳対象遺伝子が配置された遺伝子座No.2に関連付けて、デコード種別としてノード要素を示す「Node」の識別子を記録する。
【0074】
以上のように、図13に示すステップS317とステップS322は、複数の個体IVごとに対応したデータ処理シーケンスSqを生成する工程の一部を構成する。また、ステップS318とステップS324は、データ処理シーケンスSqの生成元である個体IVを構成する遺伝子ごとに、遺伝子に割り当てられた部分シーケンス構造Stとノード要素とを区別するためのデコード種別を関連付けた翻訳種別テーブル92を生成する翻訳種別テーブル生成工程である。この翻訳種別テーブル生成工程も、データ処理シーケンスSqを生成する工程の一部を構成する。翻訳種別テーブル92によって、遺伝子が部分シーケンス構造Stとノード要素とのいずれに割り当てられたのかを容易に判定できる。これにより、次世代の個体群81を生成する場合に部分シーケンス構造Stに着目して新たな個体を容易に生成できる。
【0075】
次に図13のステップS326以降の処理を再び実行し、未確定のノードNDおよび未接続端子Ntが無くなるまで、ステップS320以降の処理またはステップS316以降の処理を繰り返し実行する。
【0076】
なお、個体IVについて全ての遺伝子を用いても未確定のノードNDおよび未接続端子Ntが有る場合、すなわちデータ処理シーケンスSqの生成処理が完了しない場合には、遺伝子翻訳部34は以下の終了処理を実行する。終了処理において、遺伝子翻訳部34は、未接続端子Ntが有る場合には、データ処理シーケンスSqの生成処理が完了するように、入力側に入力数が「0」のノードのみが配置された予め定めた部分シーケンス構造Stを選択して、未接続端子Ntに接続する。本実施形態では、予め定めた部分シーケンス構造Stは、図6に示す第1部分シーケンス構造StAである。また終了処理において、遺伝子翻訳部34は、未確定ノードNDがある場合には、未確定ノードNDに定められた入力数に応じて、予め定めたノード要素を選択して、未確定ノードNDに割り当てる。例えば、遺伝子翻訳部34は、終了処理において、入力数が「0」のノードNDには、入力層inを割り当て、入力数が「1」のノードNDにはフィルター層FtAを割り当て、入力数が「2」のノードNDにはフィルター層FtEを割り当てる。種別テーブル生成部36は、終了処理によって設定された部分シーケンス構造Stやノード要素については、翻訳種別テーブル92にデコード種別の記録は行わない。
【0077】
一方で、未確定のノードNDおよび未接続端子Ntが無くなった場合には、種別テーブル生成部36は、ステップS332において、翻訳に用いられなかった未使用の識別子を、対応する遺伝子が配置された遺伝子座に関連付けることで、翻訳種別テーブル92に記録する。例えば、個体IV2を用いたデータ処理シーケンスSq2の生成では、図19の右側の翻訳種別テーブル92に示すように、遺伝子座No.10~No.15の遺伝子が翻訳に用いられなかったので、遺伝子座No.10~No.15に識別子「Empty」を記録する。個体IVが有する遺伝子全てに、デコード種別である識別子が関連付けられた図14の右側に示す翻訳種別テーブル92が、次世代生成工程における参照個体生成工程の際に個体群生成部32によって参照される。
【0078】
図13に示すように、ステップS332の次に、遺伝子翻訳部34はステップS334において、翻訳したデータ処理シーケンスSqを出力する。例えば、出力されるデータ処理シーケンスSqは、データ処理の順序が規定されていれば出力形式は限定されるものではなく、例えば、図9に示すように表形式のデータ処理シーケンスTSqであってもよい。出力されたデータ処理シーケンスSqは、記憶装置70に記憶される。これにより、ステップS308の遺伝子の翻訳処理は終了する。
【0079】
次に図15図17を用いて、次世代Gの個体群81が生成される場合に実行され得る個体参照生成工程について説明する。図15は、親世代Gの個体IV1と、個体IV1の翻訳種別テーブル92aと、個体IV1のデータ処理シーケンスSq1を示す図である。図16は、親世代Gの個体IV2と、個体IV2の翻訳種別テーブル92bと、個体IV2のデータ処理シーケンスSq2を示す図である。図17は、個体IV1と個体IV2とを個体参照生成工程を用いて交叉させることで生成した次世代Gの個体IV6を説明するための図である。
【0080】
本実施形態において、生成条件は、親世代Gにおいて最も高い類似度SDであった個体IV1と、次に類似度SDの高い個体IV2とを参照個体生成工程で交叉させることで、次世代Gの個体IV6を新たに生成するという条件を含む。また本実施形態において、生成条件は、上記以外の個体IVを交叉させたり、突然変異させて次世代Gの個体IVを生成させたりする場合には、通常個体生成工程を実行するという条件を含む。
【0081】
個体群生成部32は、参照個体生成工程において、交叉によって次世代の個体Gを生成する場合において、部分シーケンス構造Stを単位として交叉を行う。本実施形態では、個体群生成部32は、遺伝子において連続する2つの部分シーケンス構造Stを一つの単位として、二点交叉を行う。参照個体生成工程のうちで、部分シーケンス構造Stを単位として交叉を行う工程を種別参照交叉工程とも呼ぶ。
【0082】
個体群生成部32は、図15に示す個体IV1と図16に示す個体IV2とを参照個体生成工程で交叉させる場合、2つ目と3つ目の部分シーケンス構造Stと、これらの部分シーケンス構造StのノードNDに割り当てられたノード要素が入れ替わるように交叉点を設定する。図15に示すように、個体IV1では、個体群生成部32は、遺伝子座No.2と遺伝子座No.3との間に第1交叉点CP1aを設定し、遺伝子座No.7と遺伝子座No.8との間に第2交叉点CP2aを設定する。また図16に示すように、個体IV2では、個体群生成部32は、遺伝子座No.2と遺伝子座N0.3との間に第1交叉点CP1bを設定し、遺伝子座No.8と遺伝子座No.9との間に第2交叉点CP2bを設定する。そして個体群生成部32は、個体IV1において2つの交叉点CP1a,CP2aに挟まれた遺伝子座No.3~No.7の遺伝子群GG1と、個体IV2において2つの交叉点CP1b,CP2bに挟まれた遺伝子座No.3~No.8の遺伝子群GG2とを入れ替える。
【0083】
次世代Gの個体群81を構成する個体IV6において、図12のステップS308によってデータ処理シーケンスSqの生成処理によって、データ処理シーケンスSqの生成および翻訳種別テーブル92fの生成が実行される。この場合、図17に示すように、個体IV6について、遺伝子座No.11~No.13に配置された遺伝子は、生成元となる親世代Gの個体IV1では未翻訳であった遺伝子である。
【0084】
図17に示す次世代Gの個体IV6は、個体IV1において、遺伝子群GG1を個体IV2の遺伝子群GG2に入れ替えて生成された個体である。参照個体生成工程において、交叉により次世代Gの個体IV6が生成される場合において、交叉により入れ替える遺伝子群の遺伝子の数は等しいとは限らない。よって、個体群生成部32は、交叉によって個体IVを生成する場合において、交叉前後において個体IVが有する遺伝子の数、すなわち遺伝子長が同じになるように、未使用の種別が関連付けられた遺伝子を用いて調整する遺伝子長調整処理を実行する。
【0085】
図18は、遺伝子長調整処理を説明するための図である。図15に示す個体IV1と図16に示す個体IV2について上述のごとく交叉を行って、個体IV1を元に図17に示す個体IV6が生成される場合、遺伝子群GG2の遺伝子数が「6」であるのに対し、入れ替えられる元となる遺伝子群GG1の遺伝子数は「5」である。よって、個体IV6は、本来であれば遺伝子長が「16」となり、元の個体IV1の遺伝子長の「15」よりも長くなる。このように遺伝子長が長くなる第1の場合には、遺伝子長調整処理によって、遺伝子長が所定数を超える、すなわち15を超えるデコード種別が「Empty」が関連付けられた遺伝子座No.に配置される遺伝子については個体IV6中に組み込まない。図18に示すように、本来ならば遺伝子座No.16には、個体IV1の遺伝子座No.15の遺伝子が配置されるが、遺伝子長調整処理によって個体IV1の遺伝子座No.15の遺伝子は個体IV6の遺伝子には組み込まない。
【0086】
なお、参照個体生成工程によって交叉が実行されることで生成された個体IVの遺伝子長が、元の個体IVの遺伝子長よりも短くなる場合には、以下の遺伝子長調整処理を実行する。まず、個体群生成部32は、末尾側から不足分の遺伝子座を設ける。そして、個体群生成部32は、交叉前の親世代における個体IVの末尾側の遺伝子座であってデコード種別として「Empty」が関連付けられた遺伝子座に配置された遺伝子を新たに設けた不足分の遺伝子座に配置する。例えば、交叉によって生成される個体IVの遺伝子長が、元の個体IVの遺伝子長よりも1つ短くなる場合には、個体群生成部32は、個体IV1の遺伝子座No.15の遺伝子を不足分の遺伝子座に配置する。また、個体群生成部32は、末尾側から不足分の遺伝子座を設けてランダムに遺伝子を配置することで遺伝子長調整処理を実行してもよい。
【0087】
上記のように、個体群生成部32は、参照個体生成工程によって交叉を実行する場合に、遺伝子長調整処理を実行することで、データ処理シーケンスSqに影響のない未使用の遺伝子を用いて遺伝子の数である遺伝子長を一定の値に維持できる。これにより、特定データ処理シーケンスDSqを特定するために、繰り返し図12に示すステップS306の個体群81の生成が繰り返された場合でも、遺伝子長が増大することを抑制できる。よって、個体IVの翻訳処理などの処理時間の増大を抑制できるので、特定データ処理シーケンスDSqを特定するまでの時間が長くなることを抑制できる。
【0088】
ここで、個体群生成部32は、例えば、デコード種別が「Empty」が関連付けられた遺伝子座の遺伝子が無い、または、不足することで、遺伝子長生成処理を実行できないと判定した場合には、交叉の前後で遺伝子長が等しくなるように交叉点を再度設定する処理を実行してもよいし、参照個体生成工程に代えて通常個体生成工程による交叉を実行してもよい。また、個体群生成部32は、デコード種別が「Empty」が関連付けられた遺伝子座の遺伝子が足りる場合であっても、交叉する遺伝子群GG1,GG2が予め定めた組み合わせである場合には、参照個体生成工程に代えて通常個体生成工程による交叉を実行してもよい。
【0089】
図19は、図11に示すステップS50の利用処理工程のフローチャートである。まず記憶装置70は、ステップS500において、入力部150によって受け付けたノード要素群80を記憶する。利用処理工程において記憶されるノード要素群80は、特定データ処理シーケンスDSqで用いられるノード要素のみであってもよい。なお、利用処理工程と、図11のステップS30とが同じ生成装置20で実行される場合には、ステップS200は省略でき、ステップS100によって記憶装置70に記憶されたノード要素群80を用いることができる。
【0090】
次に、ステップS501において、記憶装置70は、図12のステップS358で特定された特定データ処理シーケンスDSqを記憶する。なお、ステップS500とステップS501の順番は上記に限定されるものではない。
【0091】
次に、ステップS503において、データ処理部40は、入力部150を介して記憶装置70に記憶されたデータであって特定データ処理シーケンスDSqのデータ処理の対象となるデータを読み出すことで取得する。ステップS503によって取得されるデータは、例えば、学習データLMと同種のデータであり、本実施形態では対象物を撮像した画像である。なお、データ処理部40は、データ処理の対象となるデータが複数ある場合には、記憶装置70に予め記憶された複数のデータのうちの一つを読み出すことでデータを取得してもよいし、後述するデータ処理を実行するタイミングで対象となるデータをセンサー装置200からその都度取得してもよい。
【0092】
次に、データ処理部40は、ステップS504において、ステップS503によって取得されたデータに対して特定データ処理シーケンスDSqを用いたデータ処理を実行する。つまり、データである画像に対して、特定データ処理シーケンスDSqが示す順番に従って、データ処理を実行する。
【0093】
次に、ステップS505において、特定データ処理シーケンスDSqを用いたデータ処理後のデータである出力データPMが出力される。ステップS505は、例えば、出力データPMが記憶装置70に記憶されることで実行されたり、表示部160に表示されたりすることで実行される。
【0094】
次に、データ処理部40は、ステップS506において、特定データ処理シーケンスDSqを用いたデータ処理を継続するかどうかを判定する。例えば、データ処理部40は、ユーザーからデータ処理の継続を示す情報が入力された場合や、データ処理の対象となる未処理のデータが記憶装置70にまだ残っている場合に、データ処理を継続すると判定する。データ処理を継続する場合には、再びステップS503以降の処理が実行される。一方で、データ処理部40は、ユーザーからデータ処理の終了を示す情報が入力された場合や、データ処理の対象となる未処理のデータが記憶装置70に残っていない場合には、利用処理工程を終了する。
【0095】
上記第1実施形態によれば、データ処理シーケンスSqを生成する工程は、図13のステップS317において部分シーケンス構造Stを構造参照テーブル83と遺伝子とを用いて決定し、ステップS322において決定した部分シーケンス構造Stを構成するノードNDにノード要素を割り当てている。すなわち、個体IVを構成する遺伝子は、ノード要素に加えて部分シーケンス構造Stも表している。これにより、データ処理シーケンスSqを生成する工程において、部分シーケンス構造Stを表す遺伝子および部分シーケンス構造St内のノード要素を表す遺伝子を、次世代の個体IVについても維持することで、部分シーケンス構造Stを保った状態で新たな個体IVを生成することができるので、基準条件を満たすデータ処理シーケンスSqを生成する効率が低下する可能性を低減できる。
【0096】
また上記第1実施形態によれば、個体群生成部32は、翻訳種別テーブルを参照して、交叉点と突然変異を行う遺伝子との少なくとも一つを決定し、交叉または突然変異を行う参照個体生成工程を実行できる。例えば、上記第1実施形態によれば、図15図17に示すように、種別参照交叉工程によって、部分シーケンス構造Stを単位として交叉を行うことで、部分シーケンス構造Stを保った状態で新たな個体IVを容易に生成できる。
【0097】
B.第2実施形態:
上記第1実施形態では、フィルター層などのノード要素に設定されるパラメーターは一定の値を用いていたり、同種のノード要素であってもパラメーターが異なっていれば異なるノード要素として取り扱っていたりしたが、これに限定されるものではない。例えば、ノード要素のパラメーターについても、個体IVの遺伝子によって表してもよい。つまり、第2実施形態では、遺伝子は、部分シーケンス構造Stと、ノード要素と、ノード要素に設定されるパラメーターとを表すために用いられる。
【0098】
以下にノード要素のパラメーターについても遺伝子によって表す場合を第2実施形態として説明する。パラメーターは、フィルター層や入力層に設定される値であり、例えば、カーネルサイズや、二値化フィルターの閾値などの係数が挙げられる。なお、第2実施形態は、主に個体IVの遺伝子がノード要素と部分シーケンス構造Stに加えパラメーターも表す点において第1実施形態と異なり、基本的な生成装置20の構成および生成装置20が実行する処理内容は第1実施形態と同じであるので、同じ構成および処理内容については適宜説明を省略する。第2実施形態の生成装置20aと、第1実施形態の生成装置20との異なる点は、後述するノード参照テーブル84Aと参照テーブル82aが新たにパラメーター参照テーブル85を有する点である。
【0099】
図20は、第2実施形態の生成装置20aが有するノード参照テーブル84Aを示す図である。ノード参照テーブル84Aは、遺伝子とノード要素の種別とノード要素の種別ごとのパラメーターの種類数を示すパラメーター数とを関連付けたテーブルである。パラメーター数は、ノード要素に設定されるパラメーターの数を表している。例えば、ノード要素に設定可能なパラメーターが、カーネルサイズと係数の2種類がある場合には、パラメーター数は「2」となる。なお、ノード要素に設定可能なパラメーターが2種類の場合でも、そのうちの1種類が予め定めた固定値を用いる場合には、パラメーター数は「1」としてもよい。
【0100】
ノード参照テーブル84Aは、入力側に接続されるノードの数である入力数ごとに定められている。なお、いずれのノード要素も出力数は「1」である。本実施形態では、ノード要素としては、入力層in,入力層ConA、フィルター層FtA~FtFがデータ処理シーケンスSqのノード要素の候補となる。ノード参照テーブル84Aのうち、入力数が「0」のノード要素に対応するテーブルを第1ノード参照テーブル84Aaとも呼び、入力数が「1」のノード要素に対応するテーブルを第2ノード参照テーブル84Abとも呼び、入力数が「2」のノード要素に対応するテーブルを第3ノード参照テーブル84Acとも呼ぶ。入力数が「1」のフィルター層FtA~FtDとしては、平均値フィルター、最大値フィルター、最小値フィルター、反転フィルターなどがある。入力数が「2」のフィルター層FtE,FtFとしては、例えば、論理和フィルターや論理積フィルターなどである。なお、いずれのノード要素も出力数は「1」である。
【0101】
図21は、参照テーブル82aが有するパラメーター参照テーブル85を示す図である。パラメーター参照テーブル85は、フィルター層にパラメーターが設定される場合に、パラメーター、詳細にはパラメーターの値と、遺伝子が示す数値VGとの対応関係を示す。パラメーター参照テーブル85は、パラメーターを設定可能なノード要素ごとに設けられている。例えば、フィルター層FtAについての第1パラメーター参照テーブル85aは、1種類のパラメーターFtA_Pが設定可能であるため、1種類のパラメーターFtA_Pのパラメーター値TA1,TA2と、遺伝子との対応関係を規定する。また例えば、フィルター層FtBは、2種類のパラメーターFtB_P1,FtB_P2が設定可能である。よって、フィルター層FtBについての第2パラメーター参照テーブル85bは、パラメーターFtB_P1と遺伝子との対応関係を示すパラメーター参照テーブル85b1と、パラメーターFtB_P2と遺伝子との対応関係を示すパラメーター参照テーブル85b2とを有する。
【0102】
第2実施形態における生成装置20aは、第1実施形態の生成装置と同様に、データ処理後の所望とする目標データTMを得るための特定データ処理シーケンスDSqを生成するシーケンス生成機能と、データ処理機能とを有する。シーケンス生成機能において、遺伝子翻訳部34が個体IVを翻訳する場合の翻訳ルールは、第1実施形態と同様に深さ優先のルールである。一方で、第2実施形態では、部分シーケンス構造Stを1つ決定する処理と、決定した部分シーケンス構造Stが有するノードNDにノード要素を割り当てる処理と、割り当てたノード要素が設定可能なパラメーターを有する場合に、ノード要素にパラメーターを設定する処理と、を上流端ノードである始端ノードに入力層in,ConAが割り当てられるまで繰り返し実行する。また、第1実施形態と同様に、本実施形態の翻訳ルールでは、出力層outを上側としたときの木構造において、左側の接続先を右側の接続先よりも優先して部分シーケンス構造Stを設定する。
【0103】
図22は、第2実施形態において実行される個体IVを翻訳してデータ処理シーケンスを生成する工程の詳細フローチャートである。第2実施形態においても、第1実施形態の図11および図12のフローチャートは実行されるが、ステップS308に代えてステップS308aが実行される点で異なる。詳細には、ステップS308aと第1実施形態のステップS308の違いは、パラメーターについてのステップS325,S361,S363,S365が加わった点である。その他のステップは、第1実施形態と同じであるので、同じ符号を付すと共に説明を適宜省略する。
【0104】
遺伝子翻訳部34は、ステップS324の次に実行されるステップS361において、図20に示すノード参照テーブル84Aを参照して、ステップS322によって未確定ノードNDに割り当てられたノード要素のパラメーター数を取得する。例えば、ステップS322によって割り当てられたノード要素がフィルター層FtFである場合、遺伝子翻訳部34は、図20に示す第3ノード参照テーブル84Acを参照することで、パラメーター数が「1」であることを取得する。図22に示すステップS361において、パラメーター数が取得された場合には、対応するノード要素に関連付けて、パラメーターの数だけ「予約コード」が表形式のデータ処理シーケンスTSqに記録される。
【0105】
次に、遺伝子翻訳部34は、ステップS325において未確定のパラメーターが有るか否かを判定する。具体的には、遺伝子翻訳部34は、表形式のデータ処理シーケンスTSqにおいてパラメーターに該当する欄に、予約コードが記録されている場合には未確定のパラメーターが有ると判定する。
【0106】
遺伝子翻訳部34は、未確定のパラメーターが有ると判定した場合には、ステップS363において、パラメーターを表す遺伝子の翻訳を行う。ステップS363は、ノードNDにノード要素を割り当てる工程であるステップS322の後に、ノードNDに割り当てたノード要素に設定すべきパラメーターが有る場合に、ノード要素に対して、パラメーター参照テーブル85と遺伝子とを用いて、パラメーターを設定する工程である。ステップS363のパラメーターを設定する工程は、データ処理シーケンスSqを生成する工程の一部を構成する。
【0107】
ステップS363において、遺伝子翻訳部34は、個体IVの遺伝子のうちで、まだデータ処理シーケンスSqを生成するために用いられていない最も遺伝子座No.が小さい翻訳対象遺伝子と、パラメーターを決定する対象となるノード要素に応じたパラメーター参照テーブル85とを参照することで、パラメーターを決定する。遺伝子翻訳部34は、表形式のデータ処理シーケンスTSqにおいて、決定したパラメーターについては、予約コードに代えて決定したパラメーターを表すデータを記録する。
【0108】
次に、種別テーブル生成部36は、ステップS365において、パラメーターであることを識別する識別子を、翻訳対象遺伝子が配置された遺伝子座に関連付けることで、パラメーターの識別子を翻訳種別テーブル92に記録する。つまり、本実施形態では、デコード種別は、部分シーケンス構造Stとノード要素の区別に加え、パラメーターを区別するための種別を含む。
【0109】
以上のように、ステップS318,ステップS324,ステップS365は、データ処理シーケンスSqの生成元である個体IVを構成する遺伝子ごとに、遺伝子が表す部分シーケンス構造Stとノード要素とパラメーターとを区別するためのデコード種別を関連付けた翻訳種別テーブル92を生成する翻訳種別テーブル生成工程である。
【0110】
なお、個体IVについて全ての遺伝子を用いても未確定のノードND、未確定のパラメーター、および未接続端子Ntが有る場合、すなわちデータ処理シーケンスSqの生成処理が完了しない場合には、遺伝子翻訳部34は終了処理を実行する。終了処理において、遺伝子翻訳部34は、未接続端子Ntが有る場合には、データ処理シーケンスSqの生成処理が完了するように、入力側に入力数が「0」のノードのみが配置された予め定めた部分シーケンス構造Stを選択して、未接続端子Ntに接続する。本実施形態では、予め定めた部分シーケンス構造Stは、図6に示す第1部分シーケンス構造StAである。また終了処理において、遺伝子翻訳部34は、未確定ノードNDがある場合には、未確定ノードNDに定められた入力数に応じて、予め定めたノード要素を選択して、未確定ノードNDに割り当てる。例えば、遺伝子翻訳部34は、終了処理において、入力数が「0」のノードNDには、入力層inを割り当て、入力数が「1」のノードNDにはフィルター層FtAを割り当て、入力数が「2」のノードNDにはフィルター層FtEを割り当てる。また終了処理において、遺伝子翻訳部34は、未確定のパラメーターがある場合には、ノード要素ごとに予め定められたパラメーター値を設定する。種別テーブル生成部36は、終了処理によって設定された部分シーケンス構造Stやノード要素やパラメーターについて、翻訳種別テーブル92にデコード種別の記録は行わない。
【0111】
図23は、データ処理シーケンスSqの生成元である個体IV15の一例を示す図である。図24は、個体IV15が表す木構造のデータ処理シーケンスSq15を示す図である。図25は、個体IV15が表す表形式のデータ処理シーケンスSq15を示す図である。図26は、個体IV15に対応する翻訳種別テーブル92_IV15を示す図である。
【0112】
シーケンス生成部30は、個体IV15について図22に示すステップS308aを実行することで、図24に示すデータ処理シーケンスSq15および図26に示す翻訳種別テーブル92_IV15を生成する。図24に示すデータ処理シーケンスSq15は、例えば、図25に示す表形式のデータ処理シーケンスTSq15として記憶装置70に記憶される。なお、理解の容易のために、図25に示す表形式のデータ処理シーケンスTSq15において、括弧内に数字を記載している。括弧内の数字は、対応する遺伝子座No.を表している。また、図24に示すデータ処理シーケンスSq15において、理解の容易のために[x,y]を記載している。xの数字は、データ処理シーケンスSq15のノードNo.を表し、yは対応する遺伝子座No.を表す。
【0113】
種別テーブル生成部36は、個体IV15の翻訳対象遺伝子の遺伝子座No.に関連付けて、翻訳対象遺伝子が表すデータ処理シーケンスSq15のシーケンス要素の種別であるデコード種別を翻訳種別テーブル92_IV15に記録する。
【0114】
次に、第2実施形態において、次世代Gの個体群81が生成される場合に実行され得る個体参照生成工程について説明する。第2実施形態の参照個体生成工程は、第1実施形態と同様に、部分シーケンス構造Stを単位として交叉を行う種別参照交叉工程を有する。さらに、第2実施形態の参照個体生成工程は、翻訳種別テーブル92においてデコード種別が「Param」が関連付けられた遺伝子、すなわちパラメーターの翻訳元である遺伝子に対して突然変異を行う種別参照変異工程を含む。このように、種別参照変異工程では、突然変異を行う対象となる個体IVが有する複数の遺伝子のうちで、デコード種別としてパラメーターが関連付けられた特定遺伝子に対して突然変異を行う。
【0115】
図27は、個体群生成部32が実行する種別参照変異工程を説明する図である。本実施形態において、生成条件は、類似度SDが下位2番目までの親世代Gの個体IVをそれ以外の類似度SDの高い個体IVから突然変異または交叉によって次世代Gの新たな個体IVを生成するという条件を含む。また本実施形態において、生成条件は、突然変異を行う場合において、上位N番目までのデータ処理シーケンスSqの生成元である個体IVについては、参照個体生成工程の種別参照変異工程を実行し、それ以外の個体IVについては通常個体生成工程を実行するという条件を含む。これにより、類似度SDが上位N番目までのデータ処理シーケンスSqについては、ノード要素、例えばフィルター層のパラメーターのみを変更して、基準条件を満たすかどうか評価できる。なお、「N」は1以上の整数であり、本実施形態では「1」に設定されている。すなわち、本実施形態では、親世代Gの個体IVのうちで類似度SDが最も高い最良の個体IV1にのみ種別参照変異工程を実行する。これにより、最良の個体IV1については、パラメーターの値のみを変更して基準条件を満たすかどうかの評価をできる。なお、生成条件は、例えば、ユーザーによって設定される。
【0116】
本実施形態において、親世代Gの個体IV15に対して種別参照変異工程が実行される場合、個体群生成部32は、個体IV15に対応する翻訳種別テーブル92を参照して、一つ目にデコード種別としてパラメーターを示す識別子「Param」が関連付けられた遺伝子を突然変異の対象として特定する。図27に示す例では、個体群生成部32は、遺伝子座No.3の遺伝子を突然変異の対象として特定し、突然変異を実行する。これにより、個体群生成部32は、個体IV15から次世代Gの個体IV23を生成する。
【0117】
上記第2実施形態によれば、上記第1実施形態と同様の構成を有する点において同様の効果を奏する。例えば、上記第1実施形態と同様に、データ処理シーケンスSqを生成する工程は、図22のステップS317において部分シーケンス構造Stを構造参照テーブル83と遺伝子とを用いて決定し、ステップS322において決定した部分シーケンス構造Stを構成するノードNDにノード要素を割り当てている。すなわち、個体IVを構成する遺伝子は、ノード要素に加えて部分シーケンス構造Stも表している。これにより、データ処理シーケンスSqを生成する工程において、部分シーケンス構造Stを表す遺伝子および部分シーケンス構造St内のノード要素を表す遺伝子を、次世代の個体についても維持することで、部分シーケンス構造Stを保った状態で新たな個体IVを生成することができる。
【0118】
また上記第2実施形態によれば、例えば、図26に示すように、個体IVを構成する遺伝子が、部分シーケンス構造Stとノード要素に加え、パラメーターも表しているので、個体群81を生成する工程において、パラメーターに着目した個体の生成を行うことができる。例えば、フィルター層の種類によって異なるパラメーターの数にあわせて遺伝子を使用することができる。
【0119】
また上記第2実施形態によれば、図26に示すように翻訳種別テーブル92によって、遺伝子が部分シーケンス構造Stとノード要素とパラメーターとのいずれに割り当てられたのかを容易に判定できる。これにより、生成装置20aが次世代の個体群81を生成する場合に,部分シーケンス構造Stやパラメーターに着目して新たな個体IVを容易に生成できる。
【0120】
また上記第2実施形態によれば、図27に示すように、個体群生成部32は、種別参照変異工程によって、デコード種別としてパラメーターが関連付けられた遺伝子に対して突然変異を行うことで個体IVを生成することから、突然変異を行う対象となる個体IVに対してノード要素のパラメーターのみを変更した個体IVを容易に生成できる。これにより、生成装置20aは、パラメーターの値のみを変更したデータ処理シーケンスSqを生成して基準条件を満たすかどうかの評価を行うことができる。例えば、生成装置20aは親世代の個体IVのうちで評価の最も高い個体IVに対してパラメーターの値のみを変更した次世代の個体IVを生成することで、効率良く基準条件を満たすデータ処理シーケンスSqの生成を行うことができる。
【0121】
C.第3実施形態:
上記第1実施形態および第2実施形態では、図7のノード参照テーブル84に示すように、入力数に応じたノード要素ごとにおいて、データ処理シーケンスSqを構成するノード要素として出現する出現確率は均等であったが、これに限定されるものではない。ノード参照テーブルにおいて、出現確率は均等でなくてもよいし、出力側ノード要素に対して接続されることを禁止する入力側ノード要素を規定してもよい。本実施形態のノード参照テーブル840は、出現確率を評価値EVに相関を有する接続の相性を元に規定している。本実施形態において、ノード参照テーブル840は、後述する第1接続条件テーブルを用いて生成される。この詳細は後述する。また本実施形態の第1接続条件テーブルは、要素セットごとに評価値EVに相関を有する接続の相性を定めていると共に、データ処理シーケンスSqを構成する要素セットとして生成されることを予め禁止する所定要素セットを定めている。要素セットは、互いに接続された入力側ノード要素と出力側ノード要素の組である。
【0122】
図28は、第3実施形態の生成装置20bを示す図である。図29は、第3実施形態の記憶装置70bを示す図である。生成装置20bと図1に示す生成装置20との主な違いは、生成装置20bのプロセッサー25がテーブル生成部55を有する点と、記憶装置70bが第1接続条件テーブル88と出力側種別テーブル93とを有する点と、部分シーケンス構造StXの構成である。生成装置20bにおいて、第1実施形態と同様の構成について同一の符号を付すと共に適宜説明を省略する。
【0123】
図29に示す出力側種別テーブル93は、データ処理シーケンスSqにおいて、各ノード要素の出力側が、出力層outであるか、部分シーケンス構造Stであるか、同じ部分シーケンス構造St内におけるノード要素であるかを識別する出力側識別子を、遺伝子、すなわちノード要素ごとに関連付けたテーブルである。この詳細は後述する。
【0124】
テーブル生成部55は、データ処理シーケンスSqにおける入力側ノード要素と、入力側ノード要素に接続される出力側ノード要素との接続の確率を示す接続条件を規定した第1接続条件テーブル88を生成する。生成装置20bは、図11に示す特定データ処理シーケンスDSqの生成処理が実行される前に、第1接続条件テーブル88を生成するテーブル生成処理を実行する。生成装置20bは、特定データ処理シーケンスDSqの生成処理において、第1接続条件テーブル88を用いて生成したノード参照テーブル840を参照することで、特定データ処理シーケンスDSqの候補となるデータ処理シーケンスSqを生成する。
【0125】
図30は、部分シーケンス構造StXの一部を示す図である。第3実施形態において、部分シーケンス構造StXは、図6に示す第1部分シーケンス構造StA~第10部分シーケンス構造StJに加え、下流端部分シーケンス構造StVを有する。下流端部分シーケンス構造StVは、出力層outを有する部分シーケンスであり、出力層outから入力側へと順に入力数が「1」のノードND1~ND3が直列に3つ接続された構造である。なお、下流端部分シーケンス構造StVは、出力層outと、少なくとも一つのフィルター層が割り当てられるノードNDとを含む構造であれば上記に限定されない。
【0126】
図31は、第1接続条件テーブル88を生成するためのテーブル生成処理のフローチャートである。まず、ステップS100において、記憶装置70は、データ処理シーケンスSqのノード要素の候補となるノード要素群80を記憶する。本実施形態では、ノード要素群80は、入力層ConAと、複数のフィルター層FtA,FtB,FtC,FtD,FtE,FtF,FtM,FtN,FtO,FtP,FtQ,FtR,FtS,FtTとを有する。
【0127】
フィルター層FtA,FtB,FtC,FtD,FtE,FtFは、入力側のノード要素から出力されたデータに対して第1処理を実行する第1処理工程に用いられる。フィルター層FtM,FtN,FtOは、入力側のノード要素から出力されたデータに対して第2処理を実行する第2処理工程に用いられる。フィルター層FtP,FtQは、入力側のノード要素から出力されたデータに対して第3処理を実行する第3処理工程に用いられる。フィルター層FtR,FtS,FtTは、入力側のノード要素から出力されたデータに対して第4処理を実行する第4処理工程に用いられる。第1処理工程~第4処理工程は、データを処理する処理目的が異なる。
【0128】
本実施形態では、データ処理シーケンスSqの候補となるノード要素は、上記の入力層ConAと、複数のフィルター層FtA,FtB,FtC,FtD,FtE,FtF,FtM,FtN,FtO,FtP,FtQ,FtR,FtS,FtTとに加え、入力層inおよび出力層outを有する。始端ノードである入力層in、ConAの入力数は「0」である。フィルター層FtA,FtB,FtC,FtD,FtM,FtN,FtO,FtP,FtQ,FtR,FtS,FtTの入力数は「1」である。フィルター層FtE,FtFの入力数は「2」である。
【0129】
また、記憶装置70は、ステップS101において、複数の学習セットSMから構成される学習データ群74を記憶する。ステップS101は、ユーザーによって学習データ群74が生成装置20に入力されることで実行される。本実施形態では、学習データ群74は第1実施形態の図3に示す学習データ群74と同じである。なお、ステップS100とステップS101との順番はこれに限定されるものではない。
【0130】
ステップS102において、テーブル生成部55は、第1接続条件テーブル88を初期化する。図32図34を用いて、第1接続条件テーブル88の初期化について説明する。図32は、入力数が「0」の入力側ノード要素に対する第1接続条件テーブル88Aを示す図である。図33は、入力数が「1」の入力側ノード要素に対する第1接続条件テーブル88Bを示す図である。図34は、入力数が「2」の入力側ノード要素に対する第1接続条件テーブルを示す図である。
【0131】
第1接続条件テーブル88は、入力側に配置される候補となる入力側ノード要素の種別を示す入力側ノード要素種別と、入力側ノードに接続される候補となる出力側ノード要素の種別を示す出力側ノード要素種別と、接続参考値RVとしての平均値ARVとが規定されている。図31図33において、入力側ノード要素および出力側ノード要素の識別子は、ノード要素と同枠に括弧内に記した数字で表されている。入力側ノード要素の識別子は、入力数ごとに設定されている。
【0132】
出力側ノード要素は、複数のフィルター層FtA,FtB,FtC,FtD,FtE,FtF,FtM,FtN,FtO,FtP,FtQ,FtR,FtS,FtT、出力層outに加え、部分シーケンス構造である出力層Stoutも含む。出力層Stoutは、入力側のノードNDの出力側に図6および図30に示す部分シーケンス構造StXが設定されていることを示す。つまり、出力側のノードNDが、入力側のノードNDを構成要素とする部分シーケンス構造Stとは異なる部分シーケンス構造Stを構成している場合には、遺伝子翻訳部34は、出力層StOutを出力側ノード要素として、入力側ノード要素を決定する。詳細には、入力側の未確定のノードNDに入力層とフィルター層とのいずれかを割り当てる工程において、遺伝子翻訳部34は、後述する出力側種別テーブル93を用いて、ノード要素を割り当てるノードNDの出力側の種別を特定し、特定した出力側の種別に応じたノード参照テーブル840と、遺伝子とを用いて、ノードNDにノード要素を割り当てる。これにより、ノードNDの出力側の種別に応じたノード参照テーブル840を用いて、ノードNDにノード要素を割り当てることができる。
【0133】
ノード参照テーブル840は、第1接続条件テーブル88を用いて生成される。ノード参照テーブル840に規定される入力側ノード要素と出力側ノード要素は、図32図34に示す第1接続条件テーブル88に対応している。よって、本実施形態のノード参照テーブル840において、出力側ノード要素は、ノード要素と部分シーケンス構造StOutとを含む。
【0134】
第1接続条件テーブル88には、互いに接続された入力側ノード要素および出力側ノード要素の一対の要素セットが規定されている。接続参考値RVとしての平均値ARVは、要素セットごとに規定された値であり、入力データIDをデータ処理して目標データTMを目標とした所望データを出力するための接続の相性を示す。平均値ARVは所定範囲、本実施形態では0以上1以下の数値をとる。接続参考値RVの値が大きい程、要素セットのデータ処理シーケンスSqの構成要素として出現する出現確率は大きくなるように、ノード参照テーブル840は生成される。以上のように、第1接続条件テーブル88は、互いに接続された入力側ノード要素と出力側ノード要素との組である要素セットごとに、入力側ノード要素と出力側ノード要素との接続確率を示すテーブルである。
【0135】
図31に示すステップS102において、テーブル生成部55は、第1接続条件テーブル88における各要素セットの値である平均値ARVを全て初期値に設定する。初期値は、平均値ARVが取り得る範囲であり、かつ、0より大きく1以下の任意の値を設定でき、本実施形態では、「1」である。
【0136】
また、ステップS102において、テーブル生成部55は、データ処理シーケンスSqを構成する要素セットとして生成されることを予め禁止する所定要素セットに対して、禁止情報を関連付ける。禁止情報は、データ処理シーケンスSqの構成要素として生成されることを禁止する情報であり、本実施形態では、平均値ARVが取り得る数値範囲外の数値である「-1」を示す情報である。特定要素セットを特定するための禁止特定情報は、ユーザーによって入力部150を介して予め記憶装置70bに記憶されていてもよい。この場合、テーブル生成部55は、記憶装置70bの禁止特定情報を読み出すことで、接続条件テーブル88において、禁止情報を所定要素セットに関連付ける。
【0137】
また、接続条件テーブル88は、予め定めた禁止情報設定ルールに従って、接続条件テーブル88において、禁止情報を所定要素セットに関連付けてもよい。禁止情報設定ルールは、例えば、ユーザーによって生成装置20に入力されて記憶装置70bに記憶される。禁止情報設定ルールは、例えば、データ処理シーケンスSqにおいて、第2処理工程を実行する場合には、第2処理工程から出力されたデータは第3処理工程において第3処理を実行するという第1ルールである。この第1ルールに従って禁止情報である「-1」が設定される要素セットは、図33に示すように、出力側ノード要素種別が第3処理工程を実行するノード要素FtP,FtQの要素セットのうちで、入力側ノード要素種別が第2処理工程を実行するフィルター層FtM,FtN,FtO以外のノード要素である要素セットである。
【0138】
また、本実施形態では、禁止情報設定ルールに従って、テーブル生成部55は、図30に示す下流端部分シーケンス構造StVにおいて、第2ノードND2には、第3処理工程を実行するフィルター層FtP,FtQのいずれかがノード要素として設定されるように、第1接続条件テーブル88を設定する。つまり、図33に示すように、第1接続条件テーブル88において、出力側ノード要素が第4処理工程を実行するフィルター層FtR,FtS,FtTである要素セットのうち、入力側ノード要素が第3処理工程を実行するフィルター層FtP,FtQ以外の入力側ノード要素である要素セットには、禁止情報である「-1」が設定される。また、上述の第1ルールに従って、テーブル生成部55は、図30に示す下流端部分シーケンス構造StVにおいて、第3ノードND3には、第2処理工程を実行するフィルター層FtM,FtN,FtOのいずれかがノード要素として設定されるように、第1接続条件テーブル88を設定する。
【0139】
禁止情報設定ルールは、また例えば、データ処理シーケンスSqにおいて、終端ノードのノード要素である出力層outには、第4処理工程を実行するフィルター層FtR、FtS,FrTしか入力側ノード要素として接続されないという第2ルールである。この第2ルールに従って禁止情報である「-1」が設定される要素セットは、図33に示すように、出力側ノード要素種別が出力層outの要素セットのうちで、入力側要素種別が第4処理工程を実行するフィルター層FtR、FtS,FrT以外のノード用である要素セットである。
【0140】
このように、下流端部分シーケンス構造StVと第1接続条件テーブル88とによって、出力層Outに向かうデータの処理工程を所望とする順に設定できる。本実施形態では、第2工程、第3工程、第4工程の順にデータ処理が実行されて出力層Outによって処理後データである出力データPMが出力される。
【0141】
図31に示すように、ステップS102の次に、ステップS103において、個体群生成部32は、現世代Gについての複数の個体IVから構成される個体群81を生成する。一つの世代Gにおける個体群81は、図4に示すように複数の個体IV1~IV5によって構成されている。生成された個体群81は、記憶装置70に記憶される。
【0142】
次に、ステップS104において、遺伝子翻訳部34は、各個体IV1~IV5のうちで一つを選択して、基準参照テーブルを参照することで、選択した一つの個体IVを翻訳してデータ処理シーケンスSqを生成する。基準参照テーブルは、記憶装置70bに記憶されている。ステップS104において参照される基準参照テーブルは、第1実施形態の図13に示すステップS308と同様に、部分シーケンス構造Stやノード要素が均等な確率で出現するように、出現範囲を規定している。つまり、基準参照テーブルは、図5と同じ構造参照テーブル83と、図7に示すノード参照テーブル84と同様のノード参照テーブルとを有する。本実施形態において、構造参照テーブル83は、第1部分シーケンス構造St1~第10部分シーケンス構造St10が均等な確率で出現するように出現範囲が規定されている。また、同様のノード参照テーブルは、入力数ごとに、第3実施形態で用いる入力側に配置されるノード要素が均等な確率で出現するように出現範囲が規定されている。また、ステップS104では、後述する図39のステップS308bに示す各ステップと同様のステップが実行される。例えば、ステップS104では、後述する図39のステップS318bのように、出力側識別子を出力側種別テーブルに記録する処理が実行される。
【0143】
図31に示すように、生成装置20bは、ステップS104の次に、ステップS105のデータ処理と、ステップS109の処理結果の評価を順に実行する。ステップS104の処理内容は、図12のステップS350と同じである。またステップS105の処理内容はステップS352と同じである。
【0144】
次に、テーブル生成部55は、ステップS110において、第1接続条件テーブル88の更新を実行する。例えば、ステップS104において生成されたデータ処理シーケンスSqが、図9に示すデータ処理シーケンスSq1であり、ステップS109によって算出された接続参考値RVが「0.800」であった場合のステップS110を図35図37を用いて説明する。なお、本実施形態では、評価判定部46は、類似度SDを接続参考値RVに用いる。つまり、最終的な評価値EVが、平均二乗誤差である場合、接続参考値RVは評価値EVの逆数である。また最終的な評価値EVがPNSRやMSEやSSIMが用いられる場合には、接続参考値RVは評価値EVの値が用いられる。
【0145】
図35は、図31のステップS110を説明するための第1図である。図36は、図32のステップS110を説明するための第2図である。図37は、図31のステップS110を説明するための第3図である。図35図37は、図32図34に対応する図である。
【0146】
テーブル生成部55は、データ処理シーケンスSq1を構成する一対の入力側ノード要素と出力側ノード要素の要素セットを全て抽出し、抽出した要素セットのうちで、禁止情報である「-1」が設定された要素セット以外の要素セットを表す欄には、接続参考値RVである「0.800」を加算する。
【0147】
ここで、接続条件テーブル88の一つの要素セットを表す欄には、平均値ARVが最終的な接続参考値RVとして規定される。つまり、n回目の接続参考値RVの加算によって算出される要素セットの平均値ARVは、以下の式(A)を用いて算出される。
【0148】
ARV={RV+ARVn-1×n}/(n+1) ・・・式(A)
ここで、RVは、n回目で加算する接続参考値であり、ARVn-1は前回までの要素セットの欄に規定されていた平均値である。
【0149】
データ処理シーケンスSq1に同じ要素セットが複数ある場合には、同じ要素セットの数だけ接続参考値RVを加算してもよいし、接続参考値RVを1回だけ加算してもよい。本実施形態では、1つのデータ処理シーケンスSq1において、同じ要素セットが複数ある場合でも、接続参考値RVは1回だけ加算している。
【0150】
一方で、禁止情報が設定された要素セットに対応した欄には、接続参考値RVが加算されないため、禁止情報が常に維持される。
【0151】
つまり、図35図37に示す第1接続条件テーブル88のうちで、図35および図36中にシングルハッチングを付した要素セットの欄には、「0.800」が加算され、2で割ることで平均値が「0.900」となる。一方で、図35図37に示す第1接続条件テーブル88のうちで、図37中にクロスハッチングを付した要素セットの欄には、禁止情報である「-1」が設定されているので、接続参考値RVである「0.800」は加算されない。
【0152】
図31に示すように、ステップS111において、テーブル生成部55は、一つの世代Gの個体IV全てにおいてステップS104~ステップS110の処理を実行したか否かを判定する。ステップS111で「No」の判定が成された場合には、プロセッサー25は、一つの世代Gの個体IVのうちでステップS104~ステップS110を実行していない個体IVから一つを選択してステップS104~ステップS111の処理を再び実行する。
【0153】
一方で、ステップS111で「Yes」の判定が成された場合には、テーブル生成部55は、ステップS113において、終了条件を満たすか否かを判定する。終了条件は、予め定めた事前回数だけステップS103~ステップS111の処理ルーチンが実行されたという条件である。予め定めた事前回数は、例えば、第1接続条件テーブル88の要素セットの欄全てに、少なくとも1回、好ましくは2回以上、接続参考値RVが加算される程度の回数に設定される。例えば、第1接続条件テーブル88に規定された要素セットの数の2倍以上の個体IVについてステップS104~ステップS111の処理ルーチンが実行される程度に事前回数が設定される。
【0154】
以上のように、第1接続条件テーブル88は、ランダムな確率でノード要素が出現する関係を有するように、ステップS104の処理によって生成された複数のデータ処理シーケンスSqのそれぞれを用いて算出された類似度SDを、接続参考値RVに用いることで生成される。これにより、第1接続条件テーブル88を用いて個体IVを生成することで、接続の相性が高い要素セットがデータ処理シーケンスSqに含まれる可能性を高くできる。
【0155】
終了条件が満たされていない場合には、個体群生成部32は、次処理ルーチンにおいてステップS103を再び実行する。再び実行されるステップS103は、前回の処理ルーチンにおけるステップS103で生成された親世代Gの個体IV1~IM5のうちで、類似度SDが下位J番目までの個体IVを新たな個体IVに入れ替えることで実行される。「J」は1以上の整数である。つまり、個体群生成部32は、類似度SDが下位J番目までに該当しない個体IVについては複製し、また、下位J番目までに該当しない個体IVに対して交叉や突然変異との少なくとも一つを行うことで新たな個体IVを生成する。これにより、前回までに生成されたデータ処理シーケンスSqとはシーケンス要素の組み合わせが異なる新たなデータ処理シーケンスSqを容易に生成できる。再び実行されたステップS103によって生成された個体IVを対象に、再びステップS104以降の処理を実行する。
【0156】
一方で終了条件が満たされた場合には、テーブル生成部55は、ステップS115において、終了条件を満たした時点の第1接続条件テーブル88を用いて、ノード参照テーブル840の生成処理を実行する。
【0157】
図38は、ノード参照テーブル840の生成処理を説明するための図である。図38では、第1接続条件テーブル88のうちで、出力側ノード要素がフィルター層FtQの列のみを抽出して図示している。
【0158】
テーブル生成部55は、以下の生成アルゴリズムを用いて、ノード参照テーブル840を生成する。
<生成アルゴリズム>
・遺伝子の数値・・・VG(VGは、0から1までの小数点第3位までの数値)
・出力側ノード要素の識別子・・・j
ここで、jは、0以上の整数で表され、出力側ノード要素ごとに異なる値が割り当てられている。本実施形態では、識別子jは、0~15が割り当てられている。
・接続される入力側ノード要素の識別子・・・i
ここで、iは、0以上の整数で表され、0~N-1までの識別子によって表される。Nは、入力数ごとにおいて入力側ノード要素の候補となる数である。本実施形態では、例えば、入力数が「0」の入力側ノード要素である場合には、ノード要素の数Nは2である。よって、識別子iは、0~1が割り当てられている。
・接続条件テーブル88の要素セットの値・・・tij
ijは、平均値ARVであり、添え字の「ij」は、要素セットを特定するための識別子であり、入力側ノード要素と出力側ノード要素の識別子に対応する。例えば、図38においてt48は、入力側ノード要素がフィルター層FtM、出力側ノード要素がフィルター層FtQの要素セットの平均値ARVである「0.200」を示す。ただし、tijが禁止情報である「-1」である場合には、tijの値は「0」とみなす。
【0159】
生成アルゴリズムにおいて、出力側ノード要素jの入力側に入力側ノード要素iが接続される確率Pijは以下の式(1)によって算出される。
【数1】
【0160】
上記式(1)より、tijが禁止情報である「-1」であり、tijの値が「0」とみなされた場合には、接続される確率Pijは「0」となる。すなわち、禁止情報が関連付けられた要素セットは、データ処理シーケンスSqの構成要素として出現しない。
【0161】
また生成アルゴリズムにおいて、入力側ノード要素iが出力側ノード要素jに対して接続される遺伝子の数値範囲の上限閾値Tijは以下の式(2)を用いて算出される。なお、下限閾値は、一つ前の識別子に応じた入力側ノード要素の上限閾値に設定される。一つ前の識別子が無い場合には、下限閾値は「0」に設定される。なお、禁止情報が設定されている要素セットは、接続される確率Pijは「0」となるため、ノード参照テーブル840において上限閾値は設定されない。
【数2】
【0162】
テーブル生成部55は、上記式(2)によって算出した上限閾値Tijを、対応する入力側ノード要素と出力側ノード要素とに関連付けて記録することでノード参照テーブル840を生成する。生成されたノード参照テーブル840は記憶装置70bに記憶される。
【0163】
なお、数値範囲の不等号については、遺伝子の値VGがいずれかの出現範囲に含まれている限り、等号の有無を変更してもよい。図38に示すノード参照テーブル840では、出現範囲は以下としている。
・0≦VG<0.200(T48)のときは、入力側ノード要素No.4であるフィルター層FtMを選択。
・0.200(T48)≦VG≦0.500(T58)のときは、入力側ノード要素No.5であるフィルター層FtNを選択。
・0.500(T58)<VG≦1.000(T68)のときは、入力側ノード要素No.6であるフィルター層FtOを選択。
【0164】
上記の生成アルゴリズムを用いて遺伝子の出現範囲を示す数値範囲を決定することで、同じ出力側ノード要素に対する接続候補である各入力側ノード要素の各接続参考値である各平均値ARVの比が、出力側ノード要素に接続される接続確率の比となるように、データ処理シーケンスSqが生成される。ノード参照テーブル840は、図11のステップS30の前に生成されていたが、ステップS30において生成されてもよい。また、テーブル生成部55は、ステップS30が実行されている場合において、遺伝子の翻訳に必要な部分、すなわち出力側ノード要素を特定し、特定した出力側ノード要素に応じた部分のみのノード参照テーブル840を、第1接続条件テーブル88を用いて生成してもよい。
【0165】
上記のノード参照テーブル840では、実際には、第1接続条件テーブル88に規定された入力側ノード要素と出力側ノード要素との要素セットごとに上限閾値を設定したり、禁止情報に対応して上限閾値を設定しなかったりしている。つまり、ノード参照テーブル840は、出力側ノード要素の種別ごとに、接続される入力側ノード要素の種別と、遺伝子、詳細には遺伝子の数値の上限閾値とを対応づけたテーブルである。
【0166】
第3実施形態の生成装置20bは、第1実施形態と同様に、図11に示すステップS30の特定データ処理シーケンスDSqの生成処理と、ステップS50の特定データ処理シーケンスを利用した利用処理とを実行する。ステップS50の処理内容は、第1実施形態と第3実施形態とでは同じであるので説明を省略する。ステップS30の処理内容について、第1実施形態と第3実施形態とでは、図12に示すステップS308の処理内容が異なる。よって、第3実施形態では、第1実施形態のステップS308に対応する工程をステップS308bとする。
【0167】
図39は、ステップS308bのフローチャートである。第1実施形態の図13に示すステップS308と同じステップについては同一符号を付すと共に説明を適宜省略する。以下では主に、第1実施形態とは異なるステップであるステップS313bとステップS318bとステップS322bとについて説明する。
【0168】
遺伝子翻訳部34は、ステップS313bにおいて、データ処理シーケンスSqと翻訳種別テーブル92と出力側種別テーブル93を初期化する。データ処理シーケンスSqの初期化では、遺伝子翻訳部34は、下流端に出力層outと下流端部分シーケンス構造StVとのいずれかを配置する。各種条件テーブル90に、初期化を実行する場合には下流端部分シーケンス構造StVを配置するという初期配置条件が格納されている場合には、遺伝子翻訳部34は、構造参照テーブル83と遺伝子とを用いることなく、下流端に下流端部分シーケンス構造StVを配置する。下流端部分シーケンス構造StVは、データ処理シーケンスSqの部分シーケンス構造StXとして用いられる。一方で、各種条件テーブル90に初期配置条件が格納されていない場合には、遺伝子翻訳部34は、下流端に出力層outを配置する。本実施形態では、遺伝子翻訳部34は、初期配置条件に従って、下流端に下流端部分シーケンス構造StVを配置する。
【0169】
また、種別テーブル生成部36は、データ処理シーケンスSqにおける部分シーケンス構造StXが設定されるごとに、出力側種別テーブル93への記録を行う。図40は、出力側種別テーブル93を示す図である。ステップS313bの初期化によって、下流端部分シーケンス構造StVがデータ処理シーケンスSqの構成要素として設定された場合、図30に示すように、ノードNo,1のノードND1に接続される出力側のノード要素は出力層outである。よって、図40に示すように、種別テーブル生成部36は、ノードNo.1に関連付けて出力層outを示す識別子「out」を記録する。また、図30に示すように、ノードNo.2のノードND2に接続される出力側のノード要素は、ノードND1に配置されるフィルター層である。よって、図40に示すように、種別テーブル生成部36は、ノードNo.2に関連付けてフィルター層を示す識別子「Ft」を記録する。また、図30に示すように、ノードNo.3のノードND3に接続される出力側のノード要素はノードND2に配置されるフィルター層である。よって、図40に示すように、種別テーブル生成部36は、ノードNo.3に関連付けてフィルター層を示す識別子「Ft」を記録する。
【0170】
また、翻訳種別テーブル92のデコード種別は、図39に示すステップS313bにおける初期化によって、記録されていない状態となる。
【0171】
ステップS318bでは、第1実施形態のステップS318と同様に、種別テーブル生成部36は、部分シーケンス構造Stであることを識別する識別子を、翻訳対象遺伝子が配置された遺伝子座に関連付けることで、部分シーケンス構造StXの識別子を翻訳種別テーブル92に記録する。またステップS318bでは、種別テーブル生成部36は、翻訳したノード要素の出力側の構成要素を示す出力側識別子を、出力側種別テーブル93に記録する。例えば、下流端部分シーケンス構造StVの入力側に、図6に示す第2部分シーケンス構造StBが接続される場合、第2部分シーケンス構造StBのノードNDの出力側は、第2部分シーケンス構造StBとは異なる下流端部分シーケンス構造StVである。よって、図40に示すように、種別テーブル生成部36は、ノードNo.4に関連付けて部分シーケンス構造StXを識別する識別子である「StOut」を出力側種別テーブル93に記録する。
【0172】
ステップS322bにおいて、遺伝子翻訳部34は、ステップS320によって選択した未確定ノードNDに対応した遺伝子の翻訳を行う。本実施形態では、遺伝子翻訳部34は、翻訳対象遺伝子と、出力側種別テーブル93と、第1接続条件テーブル88を用いて生成したノード参照テーブル840とを参照して、未確定ノードNDに割り当てるノード要素を決定する。例えば、出力側種別テーブル93において、未確定ノードNDのノードNo.に「StOut」が関連付けられている場合には、遺伝子翻訳部34は、ノード参照テーブル840のうちで出力側ノード要素として「StOut」が設定された部分と、遺伝子の数値VGとを参照して、未確定ノードNDに割り当てるノード要素を決定する。
【0173】
図41は、第3実施形態のステップS308bにおいて、翻訳される個体IV30を示す図である。図42は、個体IV30を翻訳することで生成されたデータ処理シーケンスSq30を示す図である。図43は、データ処理シーケンスSq30の生成の際に、生成された翻訳情報900を示す図である。図44は、個体IV30についての表形式のデータ処理シーケンスTSq30を示す図である。図42に示すデータ処理シーケンスSq30において、理解の容易のために[x,y]を記載している。xの数字は、データ処理シーケンスSq30のノードNo.を表し、yは対応する遺伝子座No.を表す。図43の翻訳情報900は、翻訳種別テーブル92_IV30と、出力側種別テーブル93_IV30とを有する。
【0174】
上記第3実施形態によれば、上記第1実施形態または上記第2実施形態と同様の構成を有する点において第1実施形態または第2実施形態と同様の効果を奏する。例えば、上記第1実施形態と同様に、データ処理シーケンスSqを生成する工程は、図13のステップS317とステップS322とを有することで、個体IVを構成する遺伝子は、ノード要素に加えて部分シーケンス構造Stも表している。これにより、生成装置20bは、データ処理シーケンスSqを生成する工程において、部分シーケンス構造Stを表す遺伝子および部分シーケンス構造St内のノード要素を表す遺伝子を、次世代の個体についても維持することで、部分シーケンス構造Stを保った状態で新たな個体IVを生成することができる。
【0175】
また上記第3実施形態によれば、図30に示すように、出力層outとフィルター層とを含む下流端部分シーケンス構造StVをデータ処理シーケンスの部分シーケンス構造として用いることで、出力層から上流端側に向かって配置されるノードの配置構成を予め設定できる。本実施形態では、下流端部分シーケンス構造StVは、出力層outから直列に3つのノードND1~ND3が配置される配置構成である。
【0176】
D.他の実施形態:
D-1.他の実施形態1:
上記第3実施形態では、図39のステップS313bの初期化において、データ処理シーケンスSqにおいて下流端部分シーケンス構造StVが配置されることで、図30に示すように、出力層outに接続されるノードND1と、ノードND1に接続されるノードND2と、ノードND2に接続されるノードND3とが予め設定されていたが、これに限定されるものではない。つまり、例えば、互いに接続された入力側と出力側の一対の部分シーケンス構造Stである構造セットごとに、一対の部分シーケンス構造Stの接続確率を表す第2接続条件テーブル892を用いて、構造参照テーブル83Dを生成することで、出力層outから順に接続されるノード要素を制限してもよい。以下に具体例を説明する。
【0177】
図45は、第2接続条件テーブル892を示す図である。第2接続条件テーブル892は、図32図34のノード要素に対する第1接続条件テーブル88を、部分シーケンス構造に対象を代えたテーブルである。つまり、第2接続条件テーブル892において、出力側部分シーケンス構造は、部分シーケンス構造StM~StRに加え、出力層outも含む。入力側部分シーケンス構造は、部分シーケンス構造StM~StRである。
【0178】
部分シーケンス構造StM~StRは、図6に示す部分シーケンス構造Stと同様に、ノードNDの入力側の未接続端子Ntに接続され、入力層とフィルター層との少なくともいずれか一方のノード要素が割り当てられるノードNDを含む。
【0179】
第2接続条件テーブル892において、データ処理シーケンスSqの構成要素として生成されることを禁止しない非禁止構造セットに対しては、0より大きく1以下の範囲で数値が関連付けられる。数値の大きさに比例して、出現する確率は高くなる。一方で、第2接続条件テーブル892において、データ処理シーケンスSqを構成要素として生成されることを予め禁止する所定構造セットに対しては、データ処理シーケンスSqとして生成されることを禁止することを示す禁止情報が関連付けられている。禁止情報は、非禁止構造セットが取り得る数値範囲外の数値に設定され、本実施形態では「-1」に設定される。図45に示す例では、出力層Outに接続される部分シーケンス構造は、部分シーケンス構造StP,StQ,StRのいずれかに制限されている。
【0180】
構造セットに対応させて数値を関連付けることで第2接続条件テーブル892を生成する工程は、利用者の入力によって記憶装置70bに記憶された生成条件に基づいて、図28に示すテーブル生成部55が実行する。また、第2接続条件テーブル892を生成する工程は、図11に示すステップS30の前に実行される。
【0181】
第2接続条件テーブル892において、入力側の各シーケンス構造を識別する識別子i
と、出力側の各シーケンス構造を識別する識別子jとは、括弧内に数字で記されている。第2接続条件テーブル892の各構造セットに関連付けられた値は、図45に示す初期値を最終的な値としてもよいし、図31に示すテーブル生成処理によって、第1接続条件テーブル88と同様に更新してもよい。
【0182】
図46は、第2接続条件テーブル892から生成された構造参照テーブル83Dを示す図である。
【0183】
テーブル生成部55は、第1接続条件テーブル88からノード参照テーブル840を生成する生成処理と同様の生成アルゴリズムを用いて、第2接続条件テーブル892から構造参照テーブル83Dを生成する。すなわち、テーブル生成部55は、上述の式(1)、式(2)を含む生成アルゴリズムを用いて構造参照テーブル83Dの構造セットに関連付けて上限閾値Tijを記録することで、構造参照テーブル83Dを生成する。
【0184】
個体群生成部32は、図5に示す均等な確率でデータ処理シーケンスSqに出現するように規定した構造参照テーブル83に代えて、構造参照テーブル83Dを参照して、出力側部分シーケンス構造に接続される入力側部分シーケンス構造を決定する。これにより、所定構造セットに対して禁止情報が関連付けられることで、データ処理シーケンスSqの構成要素として生成させない構造セットを予め設定できる。これにより、所望の目的に対するデータ処理の組み合わせとして望ましくない構造セットに対して禁止情報を関連付けることで、基準条件を満たすデータ処理シーケンスを効率良く特定できる。
【0185】
なお、上記の第2接続条件テーブル892は、多段階に分かれるように設定されていてもよい。例えば、部分シーケンス構造が、さらに複数の部分シーケンス構造、すなわち小部分シーケンス構造を有するように設定されている場合、さらに部分シーケンス構造と小部分シーケンス構造のそれぞれについて第2接続条件テーブル892が設定されてもよい。
【0186】
D-2.他の実施形態2:
上記各実施形態において、図12に示す2回目以降のルーチンにおいてステップS306で実行される次世代生成工程において、次世代の個体IVと親世代の個体IVとにおいて同じデータ処理シーケンスSqとなる重複状態の場合には、次世代の個体IVを破棄して、再度、次世代の個体IVを生成する処理を実行してもよい。個体群生成部32は、重複状態かどうかを、生成元となった親世代の個体IVに対応する翻訳種別テーブル92と、次世代の個体IVとを参照することで、判定する。具体的には、個体群生成部32は、親世代の個体IVに対応する翻訳種別テーブル92において、デコード種別として「Empty」の識別子が設定された遺伝子のみが交叉や突然変異によって変更されて次世代の個体IVが生成されていた場合には、重複状態であると判定する。
【0187】
E.他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0188】
(1)本開示の第1形態によれば、データ処理シーケンスの生成方法が提供される。この生成方法は、(a)上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する工程と、(b)前記複数の個体ごとに対応した前記データ処理シーケンスを生成する工程であって、(b1)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定する工程と、
(b2)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる工程と、を有する前記データ処理シーケンスを生成する工程と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する工程と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する工程と、を備える。この形態によれば、データ処理シーケンスを生成する工程は、部分シーケンス構造を構造参照テーブルと遺伝子とを用いて決定し、決定した部分シーケンス構造を構成するノードにノード要素を割り当てている。すなわち、個体を構成する遺伝子は、ノード要素に加えて部分シーケンス構造も表している。これにより、工程(a)において、部分シーケンス構造を保った状態で新たな個体を生成することができるので、基準条件を満たすデータ処理シーケンスを生成する効率が低下する可能性を低減できる。
【0189】
(2)上記形態において、前記工程(d)における前記予め定めた基準条件は、前記複数の評価値がそれぞれ示す複数の前記類似度のうちで最も値が高い前記類似度が、予め定めた終了閾値以上であるという条件であり、前記工程(a)は、前記工程(d)において前記予め定めた基準条件を満たさない場合には、前回のルーチンによって生成した前記複数の個体のうちで、前記類似度が低い1つ以上の前記データ処理シーケンスの生成元である前記個体については、前記類似度が高い前記個体に対して交叉と突然変異との少なくとも一つを行うことで新たな前記個体に置き換え、前記類似度が高い前記個体は複製することで、今回のルーチンで用いる次世代の前記個体群を生成する次世代生成工程を含んでいてもよい。この形態によれば、類似度が低い1つ以上の個体を、類似度が高い個体を元に新たな個体に置き換えることで、類似度が低いデータ処理シーケンスについては、処理対象から外すことができる。これにより、より効率良く基準条件を満たすデータ処理シーケンスを特定できる。
【0190】
(3)上記形態において、前記工程(b)は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記遺伝子に割り当てられた前記部分シーケンス構造と前記ノード要素とを区別するためのデコード種別を関連付けた翻訳種別テーブルを生成する翻訳種別テーブル生成工程を含んでいてもよい。この形態によれば、翻訳種別テーブルを参照して、交叉点と突然変異を行う遺伝子との少なくとも一つを決定して、交叉または突然変異を行うことができる。
【0191】
(4)上記形態において、前記次世代生成工程は、前記翻訳種別テーブルを参照して、交叉点と前記突然変異を行う前記遺伝子との少なくともいずれか一つを決定し、前記交叉または前記突然変異を行う参照個体生成工程を含んでいてもよい。この形態によれば、翻訳種別テーブルを参照して、交叉点と突然変異を行う遺伝子との少なくとも一つを決定して、交叉または突然変異を行うことができる。
【0192】
(5)上記形態において、前記参照個体生成工程は、前記交叉によって前記個体を生成する場合において、前記部分シーケンス構造を単位として前記交叉を行ってもよい。この形態によれば、部分シーケンス構造を単位として交叉を行うことで、部分シーケンス構造を保った状態で新たな個体を容易に生成できる。
【0193】
(6)上記形態において、前記デコード種別は、前記部分シーケンス構造と前記ノード要素との区別に加え、前記データ処理シーケンスの生成に用いられなかった未使用の前記遺伝子を区別するための種別を含み、前記参照個体生成工程は、前記交叉によって前記個体を生成する場合において、交叉前後において前記個体が有する前記遺伝子の数が同じとなるように、前記未使用の種別が関連付けられた前記遺伝子を用いて調整してもよい。この形態によれば、データ処理シーケンスに影響のない未使用の遺伝子を用いて遺伝子の数である遺伝子長を一定の値に維持できる。これにより、遺伝子長の増大を抑制して、処理時間の増大を抑制できる。
【0194】
(7)上記形態において、前記遺伝子は、前記部分シーケンス構造と、前記ノード要素と、前記ノード要素に設定されるパラメーターとを表すために用いられ、前記工程(b)は、さらに、(b3)前記工程(b2)の後に、前記ノードに割り当てた前記ノード要素に対して、前記遺伝子と前記パラメーターとを対応付けたパラメーター参照テーブルと、前記遺伝子とを用いて、前記パラメーターを設定する工程を含んでいてもよい。この形態によれば、個体を構成する遺伝子が、パラメーターも表しているので、工程(a)において、パラメーターに着目した個体の生成を行うことができる。例えば、フィルター層の種類によって異なるパラメーターの数にあわせて遺伝子を使用することができる。
【0195】
(8)上記形態において、前記デコード種別は、前記部分シーケンス構造と前記ノード要素との区別に加え、前記パラメーターを区別するための種別を含み、前記翻訳種別テーブル生成工程は、前記データ処理シーケンスの生成元である前記個体を構成する前記遺伝子ごとに、前記デコード種別を関連付けた翻訳種別テーブルを生成してもよい。この形態によれば、翻訳種別テーブルによって、遺伝子が部分シーケンス構造とノード要素とパラメーターとのいずれに割り当てられたのかを容易に判定できる。これにより、次世代の個体群を生成する場合に部分シーケンス構造やパラメーターに着目して新たな個体を容易に生成できる。
【0196】
(9)上記形態において、前記参照個体生成工程は、前記突然変異によって前記個体を生成する場合において、前記突然変異を行う対象となる前記個体が有する前記複数の遺伝子のうちで、前記デコード種別として前記パラメーターが関連付けられた前記遺伝子に対して前記突然変異を行う種別参照変異工程を含んでいてもよい。この形態によれば、デコード種別としてパラメーターが関連付けられた遺伝子に対して突然変異を行うことで個体を生成することから、突然変異を行う対象となる個体に対してノード要素のパラメーターのみを変更した個体を容易に生成できる。これにより、パラメーターの値のみを変更したデータ処理シーケンスを生成して基準条件を満たすかどうかの評価を行うことができる。
【0197】
(10)上記形態において、さらに、前記データ処理シーケンスにおける入力側ノード要素と、前記入力側ノード要素に接続される出力側ノード要素との接続条件を規定した第1接続条件テーブルを用いて、前記ノード参照テーブルを生成する工程を含み、前記第1接続条件テーブルは、互いに接続された前記入力側ノード要素と前記出力側ノード要素との組である要素セットごとに、前記入力側ノード要素と前記出力側ノード要素との接続確率を表すテーブルであり、前記第1接続条件テーブルにおいて、前記データ処理シーケンスを構成する前記要素セットとして生成されることを予め禁止する所定要素セットに対して、前記データ処理シーケンスの構成要素として生成されることを禁止することを示す禁止情報が関連付けられていてもよい。この形態によれば、所定要素セットに対して禁止情報が関連付けられることで、データ処理シーケンスの構成要素として生成させない要素セットを予め設定できる。これにより、所望の目的に対するデータ処理の組み合わせとして望ましくない要素セットに対して禁止情報を関連付けることで、基準条件を満たすデータ処理シーケンスを効率良く特定できる。
【0198】
(11)上記形態において、前記工程(b1)は、前記構造参照テーブルと前記遺伝子とを用いることなく、予め定めた下流端部分シーケンス構造であって、前記出力層と、少なくとも一つの前記フィルター層が割り当てられる前記ノードとを含む下流端部分シーケンス構造を、前記データ処理シーケンスの前記部分シーケンス構造として用いる工程を含んでいてもよい。この形態によれば、出力層とフィルター層が割り当てられるノードとを含む下流端部分シーケンス構造をデータ処理シーケンスの部分シーケンス構造として用いることで、出力層から上流端側に向かって配置されるノードの配置構成を予め設定できる。
【0199】
(12)上記形態において、前記工程(b)は、前記個体の前記遺伝子の配列順に、前記データ処理シーケンスの出力側から入力側へと順に、前記部分シーケンス構造と、前記ノード要素とのいずれかを割り当てることで、前記データ処理シーケンスを生成し、前記ノード参照テーブルは、前記出力側ノード要素の種別ごとに、接続される前記入力側ノード要素の種別と前記遺伝子とを対応付けており、前記ノード参照テーブルの前記出力側ノード要素は、前記ノード要素と前記部分シーケンス構造とを含み、前記工程(b2)は、前記データ処理シーケンスの前記ノードごとの出力側の種別を規定する出力側種別テーブルを用いて、前記ノード要素を割り当てる前記ノードの前記出力側の種別を特定し、特定した前記出力側の種別に応じた前記ノード参照テーブルと、前記遺伝子とを用いて、前記ノードに、前記ノード要素を割り当てる工程と、を含んでいてもよい。この形態によれば、ノードの出力側の種別に応じたノード参照テーブルを用いて、ノードにノード要素を割り当てることができる。
【0200】
(13)上記形態において、さらに、接続された前記入力側と前記出力側の一対の前記部分シーケンス構造である構造セットごとに、前記一対の部分シーケンス構造の接続確率を表す第2接続条件テーブルを用いて、前記構造参照テーブルを生成する工程を含み、前記第2接続条件テーブルにおいて、前記データ処理シーケンスを構成する前記構造セットとして生成されることを予め禁止する所定構造セットに対して、前記禁止情報が関連付けられていてもよい。この形態によれば、所定構造セットに対して禁止情報が関連付けられることで、データ処理シーケンスの構成要素として生成させない構造セットを予め設定できる。これにより、所望の目的に対するデータ処理の組み合わせとして望ましくない構造セットに対して禁止情報を関連付けることで、基準条件を満たすデータ処理シーケンスを効率良く特定できる。
【0201】
(14)本開示の第2形態によれば、データ処理シーケンスの生成装置が提供される。この生成装置は、上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する個体群生成部と、前記複数の個体ごとに対応した前記データ処理シーケンスを生成するシーケンス生成部であって、(i)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定し、(ii)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる、シーケンス生成部と、前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する算出部と、前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する特定部と、を備える。この形態によれば、シーケンス生成部は、部分シーケンス構造を構造参照テーブルと遺伝子とを用いて決定し、決定した部分シーケンス構造を構成するノードにノード要素を割り当てている。すなわち、個体を構成する遺伝子は、ノード要素に加えて部分シーケンス構造も表している。これにより、個体群生成部において、部分シーケンス構造を保った状態で新たな個体を生成することができるので、基準条件を満たすデータ処理シーケンスを生成する効率が低下する可能性を低減できる。
【0202】
(15)本開示の第3形態によれば、データ処理シーケンスの生成をコンピューターに実行させるためのコンピュータープログラムが提供される。このコンピュータープログラムは、(a)上流端ノードに割り当てられる入力層と、データを処理するための少なくとも一つのフィルター層と、下流端ノードに割り当てられる出力層とをノード要素とするデータ処理シーケンスを表すための複数の遺伝子を配列した複数の個体を生成して1世代の個体群を生成する機能と、(b)前記複数の個体ごとに対応した前記データ処理シーケンスを生成する機能であって、(b1)前記ノード要素が割り当てられるノードの未接続端子に接続される部分シーケンス構造であって前記入力層と前記フィルター層との少なくともいずれか一方の前記ノード要素が割り当てられる前記ノードを含む、前記データ処理シーケンスの一部を構成する部分シーケンス構造を、前記遺伝子と前記部分シーケンス構造の種別とを対応付けた構造参照テーブルと、前記遺伝子とを用いて決定する機能と、(b2)前記遺伝子と前記ノード要素の種別とを対応付けたノード参照テーブルと、前記遺伝子と、を用いて前記部分シーケンス構造を構成する前記ノードに、前記入力層と前記フィルター層とのいずれかの前記ノード要素を割り当てる機能と、を有する前記データ処理シーケンスを生成する機能と、(c)前記個体群が表す複数の前記データ処理シーケンスごとに、対象データをデータ処理し、前記データ処理シーケンスごとに出力された出力データと、前記対象データに関連付けられた目標となる目標データと、を比較して前記出力データと前記目標データとの類似度を示す評価値を算出する機能と、(d)前記複数のデータ処理シーケンスのそれぞれに対応する複数の前記評価値を用いて、予め定めた基準条件を満たす前記データ処理シーケンスを特定する機能と、を備える。この形態によれば、データ処理シーケンスを生成する機能は、部分シーケンス構造を構造参照テーブルと遺伝子とを用いて決定し、決定した部分シーケンス構造を構成するノードにノード要素を割り当てている。すなわち、個体を構成する遺伝子は、ノード要素に加えて部分シーケンス構造も表している。これにより、個体群を生成する機能において、部分シーケンス構造を保った状態で新たな個体を生成することができるので、基準条件を満たすデータ処理シーケンスを生成する効率が低下する可能性を低減できる。
【0203】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、コンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)の形態で実現することができる。
【符号の説明】
【0204】
DA…欠陥部分、DSq…特定データ処理シーケンス、EV…評価値、FtA…フィルター層、FtE…フィルター層、FtF…フィルター層、ND…ノード、Nt…未接続端子、SM…学習セット、Sq…データ処理シーケンス、St,StX…部分シーケンス構造、10…生成システム、20,20a,20b…生成装置、25…プロセッサー、30…シーケンス生成部、32…個体群生成部、34…遺伝子翻訳部、36…種別テーブル生成部、40…データ処理部、46…評価判定部、47…算出部、49…特定部、55…テーブル生成部、60…表示制御部、70,70b…記憶装置、74…学習データ群、80…ノード要素群、81…個体群、82,82a…参照テーブル、83,83D…構造参照テーブル、84…ノード参照テーブル、84A…ノード参照テーブル、84Aa…第1ノード参照テーブル、84Ab…第2ノード参照テーブル、84Ac…第3ノード参照テーブル、84a…第1ノード参照テーブル、84b…第2ノード参照テーブル、84c…第3ノード参照テーブル、85,85b1,85b2…パラメーター参照テーブル、85a…第1パラメーター参照テーブル、85b…第2パラメーター参照テーブル、88,88A,88B…第1接続条件テーブル、90…各種条件テーブル、92,92a,92b…翻訳種別テーブル、94…各種プログラム、150…入力部、160…表示部、200…センサー装置、840…ノード参照テーブル、892…第2接続条件テーブル、900…翻訳情報、RV…接続参考値、StOut…部分シーケンス構造
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46