(57)【要約】【課題】機械学習のための教師データを装置により自動的に生成する。【解決手段】情報処理システムは、学習モデル部と前記学習モデル部を学習させるトレーナ部と、記憶部と、を含み、前記記憶部は、入力値に対する前記学習モデル部の出力値が真と判定される条件を示す、予め設定されている検証ルールを格納し、前記トレーナ部は、前記学習モデル部に対して、複数の入力値を入力し、前記複数の入力値に対する前記学習モデル部の複数の出力値を取得し、前記検証ルールを参照して、前記複数の出力値が、それぞれ、前記複数の入力値に対して真であるか判定し、前記複数の出力値において真であると判定された出力値と対応する入力値とのペアを、教師あり学習のための新規訓練データとして前記記憶部に格納する。【選択図】図１
2019016025.tif 000002
【特許請求の範囲】
【請求項１】
学習モデル部と
前記学習モデル部を学習させるトレーナ部と、
記憶部と、を含み、
前記記憶部は、入力値に対する前記学習モデル部の出力値が真と判定される条件を示す、予め設定されている検証ルールを格納し、
前記トレーナ部は、
前記学習モデル部に対して、複数の第１の入力値を入力し、
前記複数の第１の入力値に対する前記学習モデル部の複数の第１の出力値を取得し、
前記検証ルールを参照して、前記複数の第１の出力値が、それぞれ、前記複数の第１の入力値に対して真であるか判定し、
前記複数の第１の出力値において真であると判定された第１の出力値と対応する第１の入力値とのペアを、教師あり学習のための新規訓練データとして前記記憶部に格納する、情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記トレーナ部は、前記新規訓練データを利用して、前記学習モデル部を学習させる、情報処理システム。
【請求項３】
請求項２に記載の情報処理システムであって、
前記トレーナ部は、初期訓練データによる学習済みの前記学習モデル部に、前記複数の第１の入力値を入力して、前記新規訓練データを生成する、情報処理システム。
【請求項４】
請求項３に記載の情報処理システムであって、
前記トレーナ部は、
外部から入力された前記初期訓練データを使用して前記学習モデル部を学習させた後、前記学習モデル部に前記複数の第１の入力値を入力する、情報処理システム。
【請求項５】
請求項３に記載の情報処理システムであって、
前記複数の第１の入力値は、前記初期訓練データよりも計算複雑性が高い学習のデータである、情報処理システム。
【請求項６】
請求項３に記載の情報処理システムであって、
前記トレーナ部は、
前記新規訓練データを使用した前記学習モデル部の学習の後、前記学習モデル部に複数の第２の入力値を入力して複数の第２の出力値を取得し、
前記検証ルールを参照して、前記複数の第２の出力値が、それぞれ、前記複数の第２の入力値に対して真であるか判定し、
前記複数の第２の出力値において真であると判定された第２の出力値と対応する第２の入力値とのペアを、前記学習モデル部の再学習ための訓練データとして使用する、情報処理システム。
【請求項７】
請求項６に記載の情報処理システムであって、
前記トレーナ部は
前記新規訓練データを使用した前記学習モデル部の学習の後、前記学習モデル部にテストデータを入力し、
前記テストデータに対する正解率を前記検証ルールに基づき決定し、
前記正解率及び予め定められている判定条件に基づき、前記学習モデル部の現在の学習内容の学習を継続するか判定し、
前記現在の学習内容での学習を終了すると判定した場合に、前記学習モデル部に前記複数の第２の入力値を入力して前記第２の出力値を取得する、情報処理システム。
【請求項８】
請求項７に記載の情報処理システムであって、
前記複数の第２の入力値は、前記複数の第１の入力値よりも計算複雑性が高い学習のデータである、情報処理システム。
【請求項９】
学習モデル部と、前記学習モデル部を学習させるトレーナ部と、記憶部と、を含む、情報処理システムにおいて実行される方法であって、
前記記憶部は、入力値に対する前記学習モデル部の出力値が真と判定される条件を示す、予め設定されている検証ルールを格納し、
前記方法は、前記トレーナ部が、
前記学習モデル部に対して、複数の入力値を入力し、
前記複数の入力値に対する前記学習モデル部の複数の出力値を取得し、
前記検証ルールを参照して、前記複数の出力値が、それぞれ、前記複数の入力値に対して真であるか判定し、
前記複数の出力値において真であると判定された出力値と対応する入力値とのペアを、教師あり学習のための新規訓練データとして前記記憶部に格納する、ことを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習の訓練データを生成する技術に関する。
【背景技術】
【０００２】
システム開発コストの増加と機械学習ベースプログラミング要求仕様の高度化、不確実性が高まっており、システム開発コストが高騰している。そこで、入力ｘに対して出力ｙを返すモジュール（ｙ＝ｆ（ｘ））を人手でプログラミングするのではなく、機械学習による推定モデルとして一連のプログラム開発フローに取込む動き（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ａｓ  Ｐｒｏｇｒａｍｍｉｎｇ）が活発化しつつある。
【０００３】
特に、画像処理応用で成功を収めた人工ニューラルネットワーク（ＡＮＮ）の技術において、シーケンスデータや構造データに対するアルゴリズムの学習でも成功例（ＤＮＣ：  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｎｅｕｒａｌ  Ｃｏｍｐｕｔｅｒ、ＮＰＩ：  Ｎｅｕｒａｌ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｐｒｅｔｅｒなど）が報告され始めている。今後この流れは従来の画像処理用途にとどまらず、より広い応用分野で適用されると予想される。
【０００４】
ＡＮＮをはじめとする機械学習モデルは、大量かつ網羅的な教師データを必要とする。例えば、米国特許出願公開第２０１１／０１６７０２７号（特許文献１）は、外部入力された訓練データを、ルールにより選別・重み付けする技術を開示する。具体的には、情報解析装置は、テキスト情報の複数の文からなる解析単位毎に、解析単位に対象情報が含まれる度合いを示す密度を推定する密度推定部と、各分析単位に含まれる各文がターゲット情報に対応する度合いを示す評価値を、その分析単位の推定密度から取得し、その評価値に基づきその情報が対象情報に該当するか否かを判定する判定部を含む。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１１／０１６７０２７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、機械学習モデルは、大量かつ網羅的な教師データを必要とする。しかし、必要な学習を終了していないモデル（アルゴリズム）は、正確な教師データを生成することは基本的に不可能である。モデルが正確な教師データを生成できることは、そのモデルの必要な学習が終了していることを意味する。
【０００７】
特許文献１に開示の技術は、外部から入力されるデータから訓練データを選別・重み付することはできるが、機械学習に使用できる教師データを自動的に生成することはできない。
【０００８】
したがって、機械学習のための教師データを装置により自動的に生成することができる技術が望まれる。
【課題を解決するための手段】
【０００９】
本発明の一態様は、学習モデル部と前記学習モデル部を学習させるトレーナ部と、記憶部と、を含み、前記記憶部は、入力値に対する前記学習モデル部の出力値が真と判定される条件を示す、予め設定されている検証ルールを格納し、前記トレーナ部は、前記学習モデル部に対して、複数の第１の入力値を入力し、前記複数の第１の入力値に対する前記学習モデル部の複数の第１の出力値を取得し、前記検証ルールを参照して、前記複数の第１の出力値が、それぞれ、前記複数の第１の入力値に対して真であるか判定し、前記複数の第１の出力値において真であると判定された第１の出力値と対応する第１の入力値とのペアを、教師あり学習のための新規訓練データとして前記記憶部に格納する、情報処理システムである。
【発明の効果】
【００１０】
本発明の一態様によれば、機械学習のための教師データを装置により自動的に生成することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の情報処理システムの構成例を示す。
【図２】計算機の構成例を示す。
【図３】セルフトレーナ部が学習モデル部に学習させるための処理のフローチャートを示す。
【図４Ａ】ソート問題に対する自己訓練ルールに含まれる情報の例を示す。
【図４Ｂ】検証ルールの例を示す。
【図５Ａ】学習モデル部への入力ネットワークの例を示す。
【図５Ｂ】学習モデル部からの出力フローの例を示す。エッジの数字は流量を示す
【図５Ｃ】入力ネットワークと出力フローから生成された、残余ネットワークを示す。
【図５Ｄ】図５Ｃに示す残余ネットワークから、残余容量が０の有方エッジ（実線矢印）を削除して得られる残余ネットワークを示す。
【図６】学習モデル部への入力ネットワークの例を示す。
【図７Ａ】フロー保存則を説明するため、一つの交差点に接続する四つの道路を示す。
【図７Ｂ】フロー保存則を説明するため、一つの交差点に接続する四つの道路を示す。
【図８】施設内の人流制御に適用された、情報処理システムの他の構成例を示す。
【図９Ａ】本実施形態の機械学習システムのＥＣＨＯ問題に対する評価における、シーケンス長が５の学習が完了した時の結果を示す。
【図９Ｂ】本実施形態の機械学習システムのＥＣＨＯ問題に対する評価における、シーケンス長が６の学習の途中結果を示す。
【図９Ｃ】本実施形態の機械学習システムのＥＣＨＯ問題に対する評価における、シーケンス長が６の学習が完了した時の結果を示す。
【図９Ｄ】本実施形態の機械学習システムのＥＣＨＯ問題に対する評価における、シーケンス長が１０の学習が完了した時の結果を示す。
【図９Ｅ】本実施形態の機械学習システムのＥＣＨＯ問題に対する評価における、シーケンス長が１９の学習が完了した時の結果を示す。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１３】
以下に開示される一実施形態の情報処理システムは、機械学習に使用される教師データを自動的に生成する。情報処理システムは、機械学習のモデルを利用して、教師データを生成する。機械学習により得られるモデル（アルゴリズム）は、基本的に与えられたデータに対するフィッティングモデルであり、学習サンプルの近傍の入力にのみ適切に反応でき、未知の入力データに対する汎化性／外挿性は低い。
【００１４】
一方、機械学習のシステム設計者は、プログラミング（手続き的知識の生成)の際に宣言的知識を予め持っている。つまり、システム設計者は、目的の問題を解決する手続き的知識（モデル）を有していなくても、その宣言的知識を予め持っている。例えば、数列をソートする問題の例において、システム設計者は、正しいソート結果を得る手続き的知識（モデル）を有していなくとも、数列の順序を入れ替えた結果が正しいソート結果であるか判定できる。例えば、システム設計者は、入力［１、３、２］に対して、出力（応答）［１、２、３］が目的の結果か判定できる。
【００１５】
本開示の情報処理システムにおいて、モデルの出力が正解であるか否かを判定するための検証ルールが予め定義されている。検証ルールは、出力（応答）が入力に対して正解であるための条件を示す。システム設計者は、モデルが解決することを目的とする問題の宣言的知識に基づき、検証ルールを情報処理システムに予め定義する。
【００１６】
情報処理システムは、正解が不明なテストデータをモデルに入力し、その出力を取得する。情報処理システムは、入力と出力のペア（サンプル）を、教師データ候補として保持する。情報処理システムは、予め設定されている検証ルールに基づき、教師データ候補のペアそれぞれの出力が正解であるか判定する。情報処理システムは、出力が正解であるペアを新たな教師データとして保存する。
【００１７】
上述のように、学習モデルを使用して教師候補データを生成し、検証ルールに基づき教師候補データから教師データを選択することで、情報システムが自律的に教師データを生成することができる。
【００１８】
情報処理システムは、さらに、新たに生成した教師データを使用して、モデルを学習させる。このように、情報処理システムは、自律的に、教師データの生成とモデルの教師あり学習を繰り返し行うことができる。
【００１９】
例えば、情報処理システムは、モデルに、簡単なタスクを学習させる。簡単なタスクの教師データは、例えば、システム設計者によって予め用意されている。簡単なタスクは、計算理論における計算複雑性が低いタスクである。例えば、ソート問題において、数列の要素数が多い程、タスクの難易度は高い。同一問題の異なるタスクが存在し、また、異なる問題のタスクは異なるタスクである。
【００２０】
このように、簡単なタスクで学習したモデルを使用してより難しいタスクの教師データを生成することで、効率的に教師データを生成することができる。あるモデルが生成した教師データを、当該モデル（同一問題のモデル）の学習に使用することができ、当該モデルと異なるモデル（異なる問題のモデル）に使用することもできる。
【００２１】
モデルの教師あり学習と、新たな教師データの生成を繰り返すことで、多量の教師データを用意することなく、情報処理システムが自律的にモデルの教師あり学習を進めることができる。システム設計者が簡単な教師データを与えると、情報処理システムは、自律的に訓練データ（教師データ）の生成と再学習を繰り返し、より複雑なタスクに適応可能である。
【００２２】
図１は、本実施形態の情報処理システム１の構成例を示す。情報処理システム１は、機械学習システム１０を含む。機械学習システム１０は、セルフトレーナ部１１０、セルフトレーナ部１１０が使用する制御データ、学習モデル部（単にモデルとも呼ぶ）１２０、及び学習モデル部１２０の学習に使用される訓練データ（学習データとも呼ぶ）を含む。訓練データは、教師あり学習のための教師データである。教師データの各サンプルは、入力値（入力データ）と出力値（出力データ）のペアで構成される。入力値は、例えば、ベクトルである。
【００２３】
学習モデル部１２０は、教師あり学習の任意のモデルでよい。セルフトレーナ部１１０例えば、決定木、サポートベクタマシン、ディープニューラルネットワーク（深層学習）、ロジスティック回帰等を含む、任意のモデルタイプの学習モデル部１２０を、が学習させることができる。
【００２４】
セルフトレーナ部１１０は、教師データを使用して、目的の問題を解決することができるように学習モデル部１２０を学習させる。セルフトレーナ部１１０は、訓練データ生成部１１３、訓練データ管理部１１５、及び訓練管理部１１７を含む。
【００２５】
セルフトレーナ部１１０は、初期データの入力を受信する。初期データは、初期構成パラメータ１４１、自己訓練ルール１４５、及び検証ルール１４７を含む初期制御データと、初期訓練データ１４３とを含む。訓練管理部１１７は、初期制御データの入力を受信し、ルール・構成データデータベース（ＤＢ）１０５に格納する。訓練データ管理部１１５、入力された初期訓練データ１４３を、訓練データＤＢ１０１に格納する。
【００２６】
初期構成パラメータ１４１は、学習モデル部１２０の学習で参照される構成パラメータを含む。初期構成パラメータ１４１は、例えば、損失関数、最適化法（例えば勾配効果法の特定のアルゴリズム）、及び最適化パラメータを含む。セルフトレーナ部１１０は、学習モデル部１２０の教師あり学習において、指定された最適化方法に従って、学習モデル部１２０の出力と正解との誤差に対する損失関数の値に基づき、最適化パラメータを更新する。
【００２７】
自己訓練ルール１４５は、学習モデル部１２０の学習のための、教師データの生成及び学習タスクに関するルールを示す。セルフトレーナ部１１０は、自己訓練ルール１４５に従って、学習モデル部１２０を使用して新たな教師データを生成し、生成した教師データを使用して学習モデル部１２０の再学習を行う。再学習の前の学習モデル部１２０の情報は、モデルＤＢ１０３に格納される。
【００２８】
自己訓練ルール１４５は、具体的には、次の学習タスクのための教師データの候補を生成するための新たな入力データを生成する手続き、学習タスクの終了判定条件、及び、学習タスクの内容を更新する手続きを規定する。セルフトレーナ部１１０は、新たな学習タスクのために、学習モデル部１２０を使用して、新たな教師データを生成する。
【００２９】
検証ルール１４７は、学習モデル部１２０への入力に対する出力が、正解であるか否かを判定する方法（判定基準）を示す。検証ルール１４７により、セルフトレーナ部１１０は、学習モデル部１２０が生成した教師データ候補から、正しい教師データを選択できる。
【００３０】
セルフトレーナ部１１０は、学習モデル部１２０が生成した教師データ候補サンプルのうち、入力値に対する出力値が正解のサンプルを、検証ルール１４７に従って、選択する。上述のように、検証ルール１４７は、システム設計者が宣言的知識に基づいて定義、作成して、情報処理システム１に予め設定する。
【００３１】
機械学習システム１０は、例えば、所定のプログラム及びデータがインストールされた１又は複数の計算機からなる計算機システムで構成することができる。図２は、計算機２００の構成例を示す。計算機２００は、プロセッサ２１０、メモリ２２０、補助記憶装置２３０、入出力インタフェース２４０を含む。上記構成要素は、バスによって互いに接続されている。メモリ２２０、補助記憶装置２３０又はこれらの組み合わせは記憶装置の例である。
【００３２】
メモリ２２０は、例えば半導体メモリから構成され、主にプログラムやデータを一時的に保持するために利用される。メモリ２２０は、セルフトレーナ部１１０及び学習モデル部１２０を構成するためのプログラムを格納する。
【００３３】
プロセッサ２１０は、メモリ２２０に格納されているプログラムに従って、様々な処理を実行する。プロセッサ２１０がプログラムに従って動作することで、様々な機能部が実現される。例えば、プロセッサ２１０は、プログラムそれぞれに従って、セルフトレーナ部１１０及び学習モデル部１２０として動作する。
【００３４】
補助記憶装置２３０は、例えばハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。本例において、補助記憶装置２３０は、訓練データＤＢ１０１、モデルＤＢ１０３、及びルール・構成データＤＢ１０５を格納している。
【００３５】
補助記憶装置２３０に格納されたプログラムが起動時又は必要時にメモリ２２０にロードされ、このプログラムをプロセッサ２１０が実行することにより、機械学習システム１０の各種処理が実行される。したがって、プログラムにより実行される処理は、プロセッサ２１０又は機械学習システム１０による処理である。
【００３６】
入出力インタフェース２４０は、周辺機器との接続のためのインタフェースであり、例えば、入力装置２４２及び表示装置２４４とが接続される。入力装置２４２は、ユーザが文章作成装置１００に指示や情報などを入力するためのハードウェアデバイスであり、表示装置２４４は、入出力用の各種画像を表示するハードウェアデバイスである。
【００３７】
機械学習システム１０は、学習モデル部１２０のための、学習モードと運用モード（処理モード）を有する。運用モードにおいて、学習モデル部１２０は、入力データ（例えば測定データ）に対して出力データを生成する。出力データは、所定のデバイスに送信される。
【００３８】
学習モードにおいて、セルフトレーナ部１１０は、上述のように、訓練データ（教師データ）を学習モデル部１２０によって生成し、それを使用して当該学習モデル部１２０を学習させる。学習モードは、学習フェーズとテストフェーズを含む。学習フェーズは、訓練データを学習モデル部１２０に入力し、その最適化パラメータを更新する。テストフェーズは、学習モデル部１２０にテストデータ（教師データ）を入力し、出力と正解とを比較して、学習モデル部１２０の学習度を検証する。
【００３９】
以下において、図３のフローチャートを参照して、セルフトレーナ部１１０が学習モデル部１２０に学習させるための処理を説明する。まず、セルフトレーナ部１１０の訓練データ管理部１１５は、訓練データＤＢ１０１から外部入力された初期訓練データ１４３を取得する。訓練管理部１１７は、初期訓練データ１４３を学習モデル部１２０に入力し、初期構成パラメータ１４１に基づいて、初期学習タスクを学習させる（Ｓ１０１）。学習モデル部１２０の学習方法は広く知られており、説明を省略する。
【００４０】
訓練管理部１１７は、自己訓練ルール１４５が示す学習終了判定条件に基づいて、初期学習タスクが完了しているか判定する（Ｓ１０２）。初期学習タスクが完了していない場合（Ｓ１０２：ＮＯ）、訓練管理部１１７は、ステップＳ１０１に戻って、初期学習タスクを再開する。
【００４１】
初期学習タスクが完了している場合（Ｓ１０２：ＹＥＳ）、訓練管理部１１７は、学習済みモデル（学習モデル部のプログラムを含むデータ）のコピーを生成して、モデルＤＢ１０３に格納する。さらに、訓練管理部１１７は、学習タスクの内容を、自己訓練ルール１４５が規定する学習内容更新手続きに従って更新する（Ｓ１０３）。例えば、学習タスクは、より計算複雑性が高い内容に更新される。
【００４２】
訓練データ生成部１１３は、新しい学習タスクの訓練データ（教師データ）候補を生成するための入力データを生成する（Ｓ１０４）。訓練データ生成部１１３は、更新された学習タスクの内容に対応する、入力データを生成する。
【００４３】
訓練データ生成部１１３は、学習済みの学習モデル部１２０によって、新たに生成された入力データから、新しい学習タスクの訓練データ（教師データ）候補を生成する（Ｓ１０５）。
【００４４】
訓練データ生成部１１３は、外部入力された訓練データの検証ルール１４７に基づいて、生成された訓練データ候補から、新たな訓練データ（教師データ）を選択する（Ｓ１０６）。訓練データ生成部１１３は、生成された全ての訓練データ候補サンプルについて、検証ルール１４７に基づき、出力が正解であるか判定する。
【００４５】
訓練データ生成部１１３は、正解の出力を含む全てのサンプル（入力と出力のペア）を、新たらしい訓練データ（教師データ）に含める。訓練データ管理部１１５は、新たな訓練データ（教師データ）を訓練データＤＢ１０１に格納する（Ｓ１０７）。
【００４６】
訓練管理部１１７は、初期構成パラメータ１４１に基づき、新たに生成された訓練データにより、又は、新しい訓練データと既存訓練データにより、学習モデル部１２０の再学習を実行する（Ｓ１０８）。上述のように、訓練データを使用した学習の方法は公知の技術であり、説明を省略する。
【００４７】
訓練管理部１１７は、自己訓練ルール１４５が示す学習終了判定条件に基づいて、現在の学習タスクが完了しているか判定する（Ｓ１０９）。これにより、適切に次の学習タスクに移ることができる。例えば、訓練管理部１１７は、学習モデル部１２０にテストデータを入力し、その正解率に基づき、現在の学習内容の学習タスクを終了するか判定する。例えば、所定入力数に対する正解率が所定値以上である場合に、学習タスクが終了すると判定される。
【００４８】
現在の学習タスクが完了していない場合（Ｓ１０９：ＮＯ）、訓練管理部１１７は、ステップＳ１０４に戻る。訓練データ生成部１１３は、新たな訓練データ候補を生成するための入力データを生成する（Ｓ１０４）。この入力データは、前回生成した入力データと同じ学習タスク（内容が同一）のためのものである。
【００４９】
訓練データ生成部１１３は、学習中の学習モデル又はモデルＤＢ１０３に格納されている最新の学習済みモデルを使用して、新たな訓練データ候補を生成する（Ｓ１０５）。訓練データ生成部１１３は、既存の訓練データに含まれない新たな訓練データを生成する。訓練管理部１１７は、例えば、既存訓練データに含まれない入力データを生成して、訓練データ候補を生成する。同一入力値に対して正解と見なされる複数の出力値が存在する場合、既存訓練データに含まれる入力データが、訓練データ候補生成のために使用されてもよい。
【００５０】
訓練データ生成部１１３は、外部入力された訓練データの検証ルール１４７に基づいて、生成された訓練データ候補から、新たな訓練データ（教師データ）を選択する（Ｓ１０６）。訓練データ管理部１１５は、新たな訓練データ（教師データ）を訓練データＤＢ１０１に格納する（Ｓ１０７）。訓練管理部１１７は、新たに生成された訓練データを使用して、学習モデル部１２０の再学習を実行する（Ｓ１０８）。
【００５１】
現在の学習タスクが完了している場合（Ｓ１０９：ＹＥＳ）、訓練管理部１１７は、自己訓練ルール１４５が示す学習終了条件に基づいて、学習モデル部１２０の学習を終了すべきか判定する（Ｓ１１０）。学習を続行すべき場合（Ｓ１１０：ＮＯ）、訓練管理部１１７は、ステップＳ１０３に戻って、学習済みの学習モデルをモデルＤＢ１０３に格納し、学習タスクの内容を更新して、学習タスクを再開する。
【００５２】
上記例は、学習モデル部１２０で生成した新規訓練データを、学習モデル部１２０の再学習に使用する。新規訓練データは、学習モデル部１２０以外の学習モデルの学習に使用することができる。例えば、特定の問題を解決することを目的とする学習モデルにより生成された訓練データを、他の問題を解決することを目的とする学習モデルの学習に使用することができる。
【００５３】
上記例は、外部から入力された初期訓練データにより、学習モデル部１２０の学習を行う。学習済みの学習モデル部により効率的に新規訓練データを生成することができる。これと異なり、初期訓練データにより予め学習済みの学習モデル部１２０を使用して、初期訓練データによる学習を省略してもよい。外部から入力された初期訓練データによる学習により、学習済みの学習モデル部１２０を用意する必要がない。
【００５４】
以下において、ソート問題を例として、学習モデル部１２０の学習を説明する。ソート問題は、入力された数列の数字を、降順又は昇順に再配列する。図４Ａは、ソート問題に対する自己訓練ルール１４５に含まれる情報の例を示す。自己訓練ルール１４５は、新しい訓練データの入力データを生成する手続き４５１、学習終了判定条件４５２、及び学習内容更新手続き４５３を規定する。図４Ｂは、検証ルール１４７の例を示す。
【００５５】
本例において、ソート順序は、昇順である。新しい訓練データの入力データを生成する手続き４５１は、新しい入力データｘを生成する関数を示す。関数は、所定長さ「ｌｅｎｇｔｈ」の乱数列を返す。
【００５６】
検証ルール１４７は、入力データｘｓと出力データｙｓの要素集合が等しく、全隣接要素間の大小関係が適切であることを規定する。昇順における適切な大小関係は、後ろの要素の値が前の要素の値以上であることである。
【００５７】
学習終了判定条件４５２は、ランダムな所定数のテストデータサンプルを正解すること（正解率１００％）を規定する。本例での所定数は１００である。学習内容更新手続き４５３は、学習タスク完了時に、数列の長さを更新して返すことを示す。本例は、数列の長さをインクリメントする。
【００５８】
ソート問題の学習方法の例を説明する。訓練データ管理部１１５は、訓練データＤＢ１０１から初期訓練データ１４３を取得する。初期訓練データ１４３は、所定の要素数、例えば、５要素の数列の教師データである。
【００５９】
訓練管理部１１７は、初期訓練データ１４３によって、学習モデル部１２０を学習させる（Ｓ１０１）。その後、訓練管理部１１７は、初期訓練データ１４３と同じ要素数の１００の入力サンプルをランダムに生成し、学習モデル部１２０をテストする。訓練管理部１１７は、は、検証ルール１４７により、出力が正解か否か判定する。学習モデル部１２０が全てのサンプルに対して正解を出力する場合、初期学習タスクは完了である（Ｓ１０２：ＹＥＳ）。
【００６０】
訓練管理部１１７は、学習済みの学習モデルのコピーをモデルＤＢ１０３に格納する。訓練管理部１１７は、学習タスクの内容を、学習内容更新手続き４５３に従って更新する（Ｓ１０３）。訓練管理部１１７は、新しい訓練データの入力データを生成する手続き４５１の「ｌｅｎｇｔｈ」を、インクリメントする。「ｌｅｎｇｔｈ」の初期値は、初期訓練データ１４３の要素数に一致する。
【００６１】
訓練データ生成部１１３は、新しい訓練データの入力データを生成する手続き４５１に従って、所定数の長さ「ｌｅｎｇｔｈ」の乱数列を生成する（Ｓ１０４）。乱数列は、教師データ候補を生成するための入力データである。長さ「ｌｅｎｇｔｈ」は、例えば、６である。
【００６２】
訓練データ生成部１１３は、学習済みの学習モデル部１２０に生成した乱数列を入力し、それぞれの出力値（数列）を取得する（Ｓ１０５）。乱数列と出力値とのペアが、訓練データサンプルの候補である。
【００６３】
訓練データ生成部１１３は、検証ルール１４７に基づいて、生成された訓練データサンプル候補から、新たな訓練データ（教師データ）サンプルを選択する（Ｓ１０６）。訓練データとして選択される各サンプルは、出力数列の要素が入力乱数列の要素と一致し、さらに、出力数列における全隣接要素間で、後ろの要素の値が前の要素の値以上である。訓練データ管理部１１５は、新たな訓練データを訓練データＤＢ１０１に格納する（Ｓ１０７）。
【００６４】
訓練管理部１１７は、新たに生成された要素数６の訓練データのみ、又は、要素数５の既存訓練データ（初期訓練データ）と要素数６の新たな訓練データとにより、学習モデル部１２０の再学習を実行する（Ｓ１０８）。要素数６の訓練データは、要素数５の訓練データよりも計算複雑性が高いデータである。
【００６５】
その後、訓練管理部１１７は、自己訓練ルール１４５が示す学習終了判定条件に基づいて、現在の学習タスクが完了しているか判定する（Ｓ１０９）。例えば、訓練管理部１１７は、要素数５又は要素数６の乱数列を繰り返し生成して、合計１００のテスト用入力乱数列を生成する。各乱数列の要素数は、例えば、ランダムに決定される。訓練管理部１１７は、１００の入力乱数列を学習モデル部１２０に入力し、出力それぞれが正確であるか検証ルール１４７に従って判定する。学習方法によっては、要素数６の乱数列のみが生成される。
【００６６】
学習モデル部１２０からの全ての出力が正解であれば（Ｓ１０９：ＹＥＳ）、本学習タスクは終了である。学習モデル部１２０の学習を続行すべき場合（Ｓ１１０：ＮＯ）、訓練管理部１１７は、学習済みの学習モデルのコピーをモデルＤＢ１０３に格納し、長さ「ｌｅｎｇｔｈ」をインクリメントする（Ｓ１０３）。次の学習タスクのための新たな訓練データの生成及び学習モデル部１２０の学習（再学習）を実行する（Ｓ１０４〜１０９）。
【００６７】
いずれかの出力が不正解である場合（Ｓ１０９：ＮＯ）、訓練データ生成部１１３は、学習モデル部１２０を使用して、要素数６の新たな訓練データを生成する（Ｓ１０５）。訓練管理部１１７は、新たに生成した要素数６の訓練データを使用して、学習モデル部１２０の再学習を行う（Ｓ１０６〜Ｓ１０９）。
【００６８】
次に、最大流量問題の例を説明する。最大流量問題は、容量付グラフにおいて、ソースからシンクへの最大流量フローを求める問題である。図５Ａから５Ｄは、最大フロー問題及びその解法を模式的に示す。
【００６９】
図５Ａは、学習モデル部１２０への入力ネットワークの例５１１を示す。Ｓノードはソースを示し、Ｔノードはシンクを示す。エッジの矢印は流れの方向を示し、エッジの数字は容量を示す。図５Ｂは、学習モデル部１２０からの出力フローの例５１３を示す。エッジの数字は流量を示す。
【００７０】
図５Ｃは、入力ネットワーク５１１と出力フロー５１３から生成された、残余ネットワーク５１５を示す。各実線矢印（エッジ）の数字は、入力ネットワーク５１１の容量から出力フロー５１３の流量を引いた値を示し、当該エッジでさらに流すことが可能な流量を示す。各破線矢印の数字は、当該エッジにおいて反対方向に流すことができる流量を示す。各破線矢印の数字は、出力フロー５１３における当該エッジの流量に一致する。
【００７１】
図５Ｄは、図５Ｃに示す残余ネットワーク５１５から、残余容量が０の有方エッジ（実線矢印）を削除して得られる残余ネットワーク５１７を示す。残余ネットワーク５１５と残余ネットワーク５１７とは、同一の残余ネットワークの異なる表現である。図５Ｄに示す残余ネットワーク５１７において、ＳノードからＴノードへのパスは存在しない。パスは、残余ネットワーク５１７に残されている有向エッジ（実線矢印及び破線矢印）で構成される。
【００７２】
残余ネットワーク５１７においてＳノードからＴノードへのパスが存在しないことは、出力フロー５１３が、ＳノードからＴノードへの最大流量を示していることを、意味する。したがって、残余ネットワークにおいてＳノードからＴノードへのパスが存在しないことは、最大流量問題の検証ルール１４７として使用することができる。
【００７３】
以下において、最大流量問題のための、自己訓練ルール１４５及び検証ルール１４７の例を説明する。上述のように、自己訓練ルール１４５は、新しい訓練データの入力データを生成する手続き、学習終了判定条件、及び、学習内容更新手続きを規定する。
【００７４】
新しい訓練データの入力データを生成する手続きは、例えば、所定数のノード及び所定数のエッジから、異なる構成のグラフを、所定数生成することを指示する。新しい訓練データの入力データを生成する手続きは、さらに、各グラフから、容量の異なる組み合わせのネットワークを所定数生成することを指示する。各エッジの流量は、例えば、所定範囲内の乱数が割り当てられる。
【００７５】
新しい訓練データの入力データを生成する手続きは、一つのノードに接続されるエッジの最大数を規定する。グラフは、ノードとノード間を接続するエッジからなり、エッジ又はノードへの容量を定義しない。エッジは方向を持つことができる。ここで、グラフは、ソースノードとシンクノードを定義し、さらに、ソースノードからシンクノードへのパスを含む。
【００７６】
学習終了判定条件は、例えば、所定数の入力ネットワークの全てに対して、正解を出力することである。入力ネットワークのノード数及びエッジ数は、学習タスクで使用された訓練データのノード数及びエッジ数に対応する。
【００７７】
学習内容更新手続きは、例えば、現在の入力ネットワークのエッジの数が所定数未満である場合にエッジの数を増加させ、エッジの数が所定数に達している場合にノードの数を増加させる、ことを指示する。エッジ数又はノード数の増加に伴い、計算複雑性が増加する。特定ノード数に対するエッジ数の初期値は、予め規定されている。
【００７８】
検証ルール１４７は、例えば、残余ネットワークにおいてソースノードとシンクノードとの間にパスが存在しないことを、正解の条件として示す。
【００７９】
セルフトレーナ部１１０は、上記の自己訓練ルール１４５及び検証ルール１４７に基づいて、図３に示すフローチャートに沿って、学習モデル部１２０の学習及び訓練データの生成を繰り返す。
【００８０】
次に、交通量推測問題の例を説明する。図６は、学習モデル部１２０への入力ネットワークの例６１１を示す。ネットワーク６１１は、道路網及びその交通量を示す。黒点ノードは交差点を表し、エッジは道路を表す。エッジの矢印は、道路の通行方向を示す。ネットワーク６１１における交差点間の全ての道路は、一方通行である。
【００８１】
エッジの数字は、当該道路における特定時間内の交通量を示す。交通量の一部データが欠損している。「？」は、当該道路の交通量のデータが存在せず、不明であることを示す。道路が双方向である場合、ノード間において双方向の交通量が示される。道路の交通量は、例えば、道路に設置されている測定装置により計測される。
【００８２】
学習モデル部１２０は、入力されたネットワークにおける全ての欠損交通量を推定し、全ての道路の交通量を示すネットワークを出力する。検証ルール１４７は、フロー保存則を利用する。フロー保存則は、一つのノードにおける流入量の総和は、当該ノードからの流出量の総和に等しいことを示す。
【００８３】
図７Ａ及び７Ｂは、フロー保存則を説明するため、一つの交差点に接続する四つの道路を示す。道路７１１から７１４が、交差点７０１に接続している。図７Ａにおいて、一つの道路の交通量が不明であり、図７Ｂにおいて二つの道路の交通量が不明である。
【００８４】
具体的には、図７Ａにおいて、道路７１１から交差点７０１への流入量は９である。道路７１２から交差点７０１への流入量は３である。交差点７０１から道路７１３への流出量は８である。交差点７０１から道路７１４への流出量は不明（「？」）である。フロー保存則は、道路７１４への流出量は４であることを示す。
【００８５】
一方、図７Ｂにおいて、道路７１４への流出量に加え、道路７１１からの流入量が不明である。フロー保存則は、道路７１４及び道路７１１の交通量の複数の組が正解であり得ることを示す。具体的には、道路７１１の交通量と道路７１４への交通量との和が、＋５である任意の組み合わせが正解である。なお、交差点７０１への流入は正の数字で表わされ、交差点からの流出は負の数字で表わされるものとする。
【００８６】
以下において、交通量推測問題の自己訓練ルール１４５及び検証ルール１４７の例を説明する。上述のように、自己訓練ルール１４５は、新しい訓練データの入力データを生成する手続き、学習終了判定条件、及び学習内容更新手続きを規定する。
【００８７】
新しい訓練データの入力データを生成する手続きは、例えば、所定数のノード及び所定数のエッジから、異なる構成のグラフを、所定数生成することを指示する。例えば、各エッジはいずれかの一方向を持つ（一方通行）、又は、双方向を持つ（双方向通行）。
【００８８】
新しい訓練データの入力データを生成する手続きは、さらに、各グラフから、交通量の異なる組み合わせのネットワークを所定数生成することを指示する。ネットワークにおいて、ランダムに所定数のエッジを選択し、交通量未設定のエッジと決定することを指示する。
【００８９】
新しい訓練データの入力データを生成する手続きは、ノードごとに、交通量未設定と決定されたるエッジを除く全てのエッジそれぞれに対して、交通量を所定範囲内の乱数に設定することを指示する。ただし、交通量未設定のエッジが一つも接続されないノードに関しては、そのノードに接続するエッジの集合に割り当てられる交通量の総和が、フロー保存則を満たすまで、乱数による割り当てを繰り返すことを指示する。
【００９０】
上記他の問題のための学習において、新しい訓練データの入力データを生成する手続きは、既存訓練データにおける入力データと異なる入力データを使用して訓練データ候補を生成する。本問題においては、一つの入力オブジェクトに対して正解と見なされる複数の出力値が存在し得る。同一学習タスクの訓練データ生成ために異なるパラメータセットの学習モデル部を使用され、新たな訓練データ候補の生成において、既存訓練データに含まれる入力データが使用されてもよい。
【００９１】
学習終了判定条件は、例えば、所定数の入力ネットワークの全てに対して、正解を出力することである。上述のように、一つのノードに接続する複数のエッジの流量が不明の場合、複数の正解が存在する。入力ネットワークのノード数及びエッジ数は、学習タスクで使用された訓練データのノード数及びエッジ数に対応する。
【００９２】
学習内容更新手続きは、例えば、現在の入力ネットワークのエッジの数が所定数未満である場合にエッジの数を増加させ、エッジの数が所定数に達している場合にノードの数を増加させる、ことを指示する。エッジ数又はノード数の増加に伴い、計算複雑性が増加する。特定ノード数に対するエッジ数の初期値は、予め規定されている。検証ルール１４７は、各ノードにおいて、フロー保存則が満たされていることを示す。
【００９３】
本実施形態の情報処理システム１は、上記三つの問題例以外の問題にも適用可能である。上記三つの問題例に対してそれぞれ示した検証ルールは例であって、他の可能な検証ルールを使用することができる。
【００９４】
以下において、情報処理システム１の運用の例を説明する。最大フロー問題の学習モデル部１２０の運用の例を説明する。最大フロー問題の学習モデル部１２０は、例えば、生産ラインにおける各バルブの開閉量制御、都市における交通流制御、施設内の人流制御等に適用することができる。
【００９５】
図８は、施設内の人流制御に適用された、情報処理システム１の他の構成例を示す。図８に示す情報処理システム１は、例えば、駅において、改札周辺やホームの混雑状況に応じて電子看板で人の流れを誘導する、又は、商業施設において、混雑予測情報をモニタに映し出すことにより効率的に施設を利用させることができる。
【００９６】
機械学習システム１０は、図１に示す構成に加え、ネットワーク生成部１６１及びオペレーショントランスレータ部１６３を含む。これらは、例えば、プログラムに従って動作する２１０により構成することができる。
【００９７】
情報処理システム１は、基本的に、学習部と運用部に分けることができる。学習部は、学習モデル部１２０を学習させる機能部であり、運用部は、実際の施設内の人流制御を実行する機能部である。
【００９８】
ネットワーク生成部１６１は、外部から入力される情報、例えば、平均歩行速度１７１、通路幅１７３、及びカメラ映像１７５から、対象となるネットワークを生成する。生成したネットワークは、学習後の学習モデル部１２０に入力される。学習モデル部１２０は、最大フローを算出する。オペレーショントランスレータ部１６３は、算出された最大フローの情報を、例えば、施設配置案１６５、スタッフガイダンス１６６、デジタルサイネージデータ１６７等に解釈して出力する。
【００９９】
学習部の動作は、基本的に、上述の通りである。セルフトレーナ部１１０は、例えば、現在の入力データであるネットワーク情報に基づき、学習モデル部１２０の再学習を制御してもよい。例えば、過去の学習におけるネットワークよりもサイズが大きいネットワークの入力の検知に応答して、セルフトレーナ部１１０は、学習モデル部１２０の再学習を開始してもよい。
【０１００】
以下において、本実施形態の機械学習システム１０の評価結果の例を示す。発明者らは、シーケンスデータのＥＣＨＯ問題（タスク）のため、短いシーケンス長（Ｌ＝５）の訓練データ（教師データ）を用意した。ＥＣＨＯ問題は、入力シーケンスを出力シーケンスとして出力する問題である。発明者らは、本実施形態の機械学習システム１０が、学習モデル部１２０を、自律的により長いシーケンス長（Ｌ＝１９）のデータに対して適応させることができるか評価した。
【０１０１】
機械学習システム１０は、用意された訓練データで学習モデル部１２０を学習させた後、新たな訓練データの生成と学習モデル部１２０の再学習を繰り返した（学習モデル部１２０の自己学習）。本実施形態の機械学習システム１０は、長いシーケンス長（Ｌ＝１９）のデータに対して適応した学習モデル部１２０を自律的に生成することができた。
【０１０２】
図９Ａ〜９Ｅは、上記評価結果を示す。図９Ａ〜９Ｆは、それぞれ、ＥＣＨＯ問題における、入力値、目標値（真値）、予測値（出力値）、及び目標値と予測値との間の差分を示す。
【０１０３】
図９Ａは、シーケンス長が５の学習が完了した時の結果を示す。入力値３２１は、シーケンス幅３、シーケンス長５の、０／１の２値データである。入力値３２１に対して、スタートフラグ３０１とエンドフラグ３０３が付随している。学習モデル部１２０が出力した予測値３２５は、目標値３２３と一致しており、それらの差分はゼロである。
【０１０４】
図９Ｂは、シーケンス長が６の学習の途中結果を示す。学習モデル部１２０が、入力値３３１に対して、出力した予測値３３５は、目標値３３３と異なっている。予測値３３５と目標値３３３との間の差分３３７が存在する。図９Ｃは、シーケンス長が６の学習が完了した時の結果を示す。学習モデル部１２０が、入力値３４１に対して出力した予測値３４５は、目標値３４３と一致しており、それらの差分はゼロである。
【０１０５】
図９Ｄは、シーケンス長が１０の学習が完了した時の結果を示す。学習モデル部１２０が、入力値３５１に対して出力した予測値３５５は、目標値３５３と一致しており、それらの差分はゼロである。図９Ｅは、シーケンス長が１９の学習が完了した時の結果を示す。学習モデル部１２０が、入力値３６１に対して出力した予測値３６５は、目標値３６３と一致しており、それらの差分はゼロである。
【０１０６】
以上のように、本実施形態の機械学習システム１０は、外部から入力された短いシーケンスデータ（Ｌ＝５）から、自律的に、より複雑なデータに対する学習を実現していくことができた。
【０１０７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１０８】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【０１０９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１１０】
１  情報処理システム、１０  機械学習システム、１１０  セルフトレーナ部、１２０  学習モデル部、１１３  訓練データ生成部、１１５  訓練データ管理部、１１７  訓練管理部、１４１  初期構成パラメータ、１４５  自己訓練ルール、１４７  検証ルール、
２１０  プロセッサ、２２０  メモリ、２３０  補助記憶装置、２４０  入出力インタフェース、２４２  入力装置、２４４  表示装置、４５１  入力データを生成する手続き、４５３  学習内容更新手続き、４５２  学習終了判定条件
【図１】
2019016025.tif 000003
【図２】
2019016025.tif 000004
【図３】
2019016025.tif 000005
【図４Ａ】
2019016025.tif 000006
【図４Ｂ】
2019016025.tif 000007
【図５Ａ】
2019016025.tif 000008
【図５Ｂ】
2019016025.tif 000009
【図５Ｃ】
2019016025.tif 000010
【図５Ｄ】
2019016025.tif 000011
【図６】
2019016025.tif 000012
【図７Ａ】
2019016025.tif 000013
【図７Ｂ】
2019016025.tif 000014
【図８】
2019016025.tif 000015
【図９Ａ】
2019016025.tif 000016
【図９Ｂ】
2019016025.tif 000017
【図９Ｃ】
2019016025.tif 000018
【図９Ｄ】
2019016025.tif 000019
【図９Ｅ】
2019016025.tif 000020