(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【0013】
以下に開示される一実施形態の情報処理システムは、機械学習に使用される教師データを自動的に生成する。情報処理システムは、機械学習のモデルを利用して、教師データを生成する。機械学習により得られるモデル(アルゴリズム)は、基本的に与えられたデータに対するフィッティングモデルであり、学習サンプルの近傍の入力にのみ適切に反応でき、未知の入力データに対する汎化性/外挿性は低い。
【0014】
一方、機械学習のシステム設計者は、プログラミング(手続き的知識の生成)の際に宣言的知識を予め持っている。つまり、システム設計者は、目的の問題を解決する手続き的知識(モデル)を有していなくても、その宣言的知識を予め持っている。例えば、数列をソートする問題の例において、システム設計者は、正しいソート結果を得る手続き的知識(モデル)を有していなくとも、数列の順序を入れ替えた結果が正しいソート結果であるか判定できる。例えば、システム設計者は、入力[1、3、2]に対して、出力(応答)[1、2、3]が目的の結果か判定できる。
【0015】
本開示の情報処理システムにおいて、モデルの出力が正解であるか否かを判定するための検証ルールが予め定義されている。検証ルールは、出力(応答)が入力に対して正解であるための条件を示す。システム設計者は、モデルが解決することを目的とする問題の宣言的知識に基づき、検証ルールを情報処理システムに予め定義する。
【0016】
情報処理システムは、正解が不明なテストデータをモデルに入力し、その出力を取得する。情報処理システムは、入力と出力のペア(サンプル)を、教師データ候補として保持する。情報処理システムは、予め設定されている検証ルールに基づき、教師データ候補のペアそれぞれの出力が正解であるか判定する。情報処理システムは、出力が正解であるペアを新たな教師データとして保存する。
【0017】
上述のように、学習モデルを使用して教師候補データを生成し、検証ルールに基づき教師候補データから教師データを選択することで、情報システムが自律的に教師データを生成することができる。
【0018】
情報処理システムは、さらに、新たに生成した教師データを使用して、モデルを学習させる。このように、情報処理システムは、自律的に、教師データの生成とモデルの教師あり学習を繰り返し行うことができる。
【0019】
例えば、情報処理システムは、モデルに、簡単なタスクを学習させる。簡単なタスクの教師データは、例えば、システム設計者によって予め用意されている。簡単なタスクは、計算理論における計算複雑性が低いタスクである。例えば、ソート問題において、数列の要素数が多い程、タスクの難易度は高い。同一問題の異なるタスクが存在し、また、異なる問題のタスクは異なるタスクである。
【0020】
このように、簡単なタスクで学習したモデルを使用してより難しいタスクの教師データを生成することで、効率的に教師データを生成することができる。あるモデルが生成した教師データを、当該モデル(同一問題のモデル)の学習に使用することができ、当該モデルと異なるモデル(異なる問題のモデル)に使用することもできる。
【0021】
モデルの教師あり学習と、新たな教師データの生成を繰り返すことで、多量の教師データを用意することなく、情報処理システムが自律的にモデルの教師あり学習を進めることができる。システム設計者が簡単な教師データを与えると、情報処理システムは、自律的に訓練データ(教師データ)の生成と再学習を繰り返し、より複雑なタスクに適応可能である。
【0022】
図1は、本実施形態の情報処理システム1の構成例を示す。情報処理システム1は、機械学習システム10を含む。機械学習システム10は、セルフトレーナ部110、セルフトレーナ部110が使用する制御データ、学習モデル部(単にモデルとも呼ぶ)120、及び学習モデル部120の学習に使用される訓練データ(学習データとも呼ぶ)を含む。訓練データは、教師あり学習のための教師データである。教師データの各サンプルは、入力値(入力データ)と出力値(出力データ)のペアで構成される。入力値は、例えば、ベクトルである。
【0023】
学習モデル部120は、教師あり学習の任意のモデルでよい。セルフトレーナ部110例えば、決定木、サポートベクタマシン、ディープニューラルネットワーク(深層学習)、ロジスティック回帰等を含む、任意のモデルタイプの学習モデル部120を、が学習させることができる。
【0024】
セルフトレーナ部110は、教師データを使用して、目的の問題を解決することができるように学習モデル部120を学習させる。セルフトレーナ部110は、訓練データ生成部113、訓練データ管理部115、及び訓練管理部117を含む。
【0025】
セルフトレーナ部110は、初期データの入力を受信する。初期データは、初期構成パラメータ141、自己訓練ルール145、及び検証ルール147を含む初期制御データと、初期訓練データ143とを含む。訓練管理部117は、初期制御データの入力を受信し、ルール・構成データデータベース(DB)105に格納する。訓練データ管理部115、入力された初期訓練データ143を、訓練データDB101に格納する。
【0026】
初期構成パラメータ141は、学習モデル部120の学習で参照される構成パラメータを含む。初期構成パラメータ141は、例えば、損失関数、最適化法(例えば勾配効果法の特定のアルゴリズム)、及び最適化パラメータを含む。セルフトレーナ部110は、学習モデル部120の教師あり学習において、指定された最適化方法に従って、学習モデル部120の出力と正解との誤差に対する損失関数の値に基づき、最適化パラメータを更新する。
【0027】
自己訓練ルール145は、学習モデル部120の学習のための、教師データの生成及び学習タスクに関するルールを示す。セルフトレーナ部110は、自己訓練ルール145に従って、学習モデル部120を使用して新たな教師データを生成し、生成した教師データを使用して学習モデル部120の再学習を行う。再学習の前の学習モデル部120の情報は、モデルDB103に格納される。
【0028】
自己訓練ルール145は、具体的には、次の学習タスクのための教師データの候補を生成するための新たな入力データを生成する手続き、学習タスクの終了判定条件、及び、学習タスクの内容を更新する手続きを規定する。セルフトレーナ部110は、新たな学習タスクのために、学習モデル部120を使用して、新たな教師データを生成する。
【0029】
検証ルール147は、学習モデル部120への入力に対する出力が、正解であるか否かを判定する方法(判定基準)を示す。検証ルール147により、セルフトレーナ部110は、学習モデル部120が生成した教師データ候補から、正しい教師データを選択できる。
【0030】
セルフトレーナ部110は、学習モデル部120が生成した教師データ候補サンプルのうち、入力値に対する出力値が正解のサンプルを、検証ルール147に従って、選択する。上述のように、検証ルール147は、システム設計者が宣言的知識に基づいて定義、作成して、情報処理システム1に予め設定する。
【0031】
機械学習システム10は、例えば、所定のプログラム及びデータがインストールされた1又は複数の計算機からなる計算機システムで構成することができる。
図2は、計算機200の構成例を示す。計算機200は、プロセッサ210、メモリ220、補助記憶装置230、入出力インタフェース240を含む。上記構成要素は、バスによって互いに接続されている。メモリ220、補助記憶装置230又はこれらの組み合わせは記憶装置の例である。
【0032】
メモリ220は、例えば半導体メモリから構成され、主にプログラムやデータを一時的に保持するために利用される。メモリ220は、セルフトレーナ部110及び学習モデル部120を構成するためのプログラムを格納する。
【0033】
プロセッサ210は、メモリ220に格納されているプログラムに従って、様々な処理を実行する。プロセッサ210がプログラムに従って動作することで、様々な機能部が実現される。例えば、プロセッサ210は、プログラムそれぞれに従って、セルフトレーナ部110及び学習モデル部120として動作する。
【0034】
補助記憶装置230は、例えばハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。本例において、補助記憶装置230は、訓練データDB101、モデルDB103、及びルール・構成データDB105を格納している。
【0035】
補助記憶装置230に格納されたプログラムが起動時又は必要時にメモリ220にロードされ、このプログラムをプロセッサ210が実行することにより、機械学習システム10の各種処理が実行される。したがって、プログラムにより実行される処理は、プロセッサ210又は機械学習システム10による処理である。
【0036】
入出力インタフェース240は、周辺機器との接続のためのインタフェースであり、例えば、入力装置242及び表示装置244とが接続される。入力装置242は、ユーザが文章作成装置100に指示や情報などを入力するためのハードウェアデバイスであり、表示装置244は、入出力用の各種画像を表示するハードウェアデバイスである。
【0037】
機械学習システム10は、学習モデル部120のための、学習モードと運用モード(処理モード)を有する。運用モードにおいて、学習モデル部120は、入力データ(例えば測定データ)に対して出力データを生成する。出力データは、所定のデバイスに送信される。
【0038】
学習モードにおいて、セルフトレーナ部110は、上述のように、訓練データ(教師データ)を学習モデル部120によって生成し、それを使用して当該学習モデル部120を学習させる。学習モードは、学習フェーズとテストフェーズを含む。学習フェーズは、訓練データを学習モデル部120に入力し、その最適化パラメータを更新する。テストフェーズは、学習モデル部120にテストデータ(教師データ)を入力し、出力と正解とを比較して、学習モデル部120の学習度を検証する。
【0039】
以下において、
図3のフローチャートを参照して、セルフトレーナ部110が学習モデル部120に学習させるための処理を説明する。まず、セルフトレーナ部110の訓練データ管理部115は、訓練データDB101から外部入力された初期訓練データ143を取得する。訓練管理部117は、初期訓練データ143を学習モデル部120に入力し、初期構成パラメータ141に基づいて、初期学習タスクを学習させる(S101)。学習モデル部120の学習方法は広く知られており、説明を省略する。
【0040】
訓練管理部117は、自己訓練ルール145が示す学習終了判定条件に基づいて、初期学習タスクが完了しているか判定する(S102)。初期学習タスクが完了していない場合(S102:NO)、訓練管理部117は、ステップS101に戻って、初期学習タスクを再開する。
【0041】
初期学習タスクが完了している場合(S102:YES)、訓練管理部117は、学習済みモデル(学習モデル部のプログラムを含むデータ)のコピーを生成して、モデルDB103に格納する。さらに、訓練管理部117は、学習タスクの内容を、自己訓練ルール145が規定する学習内容更新手続きに従って更新する(S103)。例えば、学習タスクは、より計算複雑性が高い内容に更新される。
【0042】
訓練データ生成部113は、新しい学習タスクの訓練データ(教師データ)候補を生成するための入力データを生成する(S104)。訓練データ生成部113は、更新された学習タスクの内容に対応する、入力データを生成する。
【0043】
訓練データ生成部113は、学習済みの学習モデル部120によって、新たに生成された入力データから、新しい学習タスクの訓練データ(教師データ)候補を生成する(S105)。
【0044】
訓練データ生成部113は、外部入力された訓練データの検証ルール147に基づいて、生成された訓練データ候補から、新たな訓練データ(教師データ)を選択する(S106)。訓練データ生成部113は、生成された全ての訓練データ候補サンプルについて、検証ルール147に基づき、出力が正解であるか判定する。
【0045】
訓練データ生成部113は、正解の出力を含む全てのサンプル(入力と出力のペア)を、新たらしい訓練データ(教師データ)に含める。訓練データ管理部115は、新たな訓練データ(教師データ)を訓練データDB101に格納する(S107)。
【0046】
訓練管理部117は、初期構成パラメータ141に基づき、新たに生成された訓練データにより、又は、新しい訓練データと既存訓練データにより、学習モデル部120の再学習を実行する(S108)。上述のように、訓練データを使用した学習の方法は公知の技術であり、説明を省略する。
【0047】
訓練管理部117は、自己訓練ルール145が示す学習終了判定条件に基づいて、現在の学習タスクが完了しているか判定する(S109)。これにより、適切に次の学習タスクに移ることができる。例えば、訓練管理部117は、学習モデル部120にテストデータを入力し、その正解率に基づき、現在の学習内容の学習タスクを終了するか判定する。例えば、所定入力数に対する正解率が所定値以上である場合に、学習タスクが終了すると判定される。
【0048】
現在の学習タスクが完了していない場合(S109:NO)、訓練管理部117は、ステップS104に戻る。訓練データ生成部113は、新たな訓練データ候補を生成するための入力データを生成する(S104)。この入力データは、前回生成した入力データと同じ学習タスク(内容が同一)のためのものである。
【0049】
訓練データ生成部113は、学習中の学習モデル又はモデルDB103に格納されている最新の学習済みモデルを使用して、新たな訓練データ候補を生成する(S105)。訓練データ生成部113は、既存の訓練データに含まれない新たな訓練データを生成する。訓練管理部117は、例えば、既存訓練データに含まれない入力データを生成して、訓練データ候補を生成する。同一入力値に対して正解と見なされる複数の出力値が存在する場合、既存訓練データに含まれる入力データが、訓練データ候補生成のために使用されてもよい。
【0050】
訓練データ生成部113は、外部入力された訓練データの検証ルール147に基づいて、生成された訓練データ候補から、新たな訓練データ(教師データ)を選択する(S106)。訓練データ管理部115は、新たな訓練データ(教師データ)を訓練データDB101に格納する(S107)。訓練管理部117は、新たに生成された訓練データを使用して、学習モデル部120の再学習を実行する(S108)。
【0051】
現在の学習タスクが完了している場合(S109:YES)、訓練管理部117は、自己訓練ルール145が示す学習終了条件に基づいて、学習モデル部120の学習を終了すべきか判定する(S110)。学習を続行すべき場合(S110:NO)、訓練管理部117は、ステップS103に戻って、学習済みの学習モデルをモデルDB103に格納し、学習タスクの内容を更新して、学習タスクを再開する。
【0052】
上記例は、学習モデル部120で生成した新規訓練データを、学習モデル部120の再学習に使用する。新規訓練データは、学習モデル部120以外の学習モデルの学習に使用することができる。例えば、特定の問題を解決することを目的とする学習モデルにより生成された訓練データを、他の問題を解決することを目的とする学習モデルの学習に使用することができる。
【0053】
上記例は、外部から入力された初期訓練データにより、学習モデル部120の学習を行う。学習済みの学習モデル部により効率的に新規訓練データを生成することができる。これと異なり、初期訓練データにより予め学習済みの学習モデル部120を使用して、初期訓練データによる学習を省略してもよい。外部から入力された初期訓練データによる学習により、学習済みの学習モデル部120を用意する必要がない。
【0054】
以下において、ソート問題を例として、学習モデル部120の学習を説明する。ソート問題は、入力された数列の数字を、降順又は昇順に再配列する。
図4Aは、ソート問題に対する自己訓練ルール145に含まれる情報の例を示す。自己訓練ルール145は、新しい訓練データの入力データを生成する手続き451、学習終了判定条件452、及び学習内容更新手続き453を規定する。
図4Bは、検証ルール147の例を示す。
【0055】
本例において、ソート順序は、昇順である。新しい訓練データの入力データを生成する手続き451は、新しい入力データxを生成する関数を示す。関数は、所定長さ「length」の乱数列を返す。
【0056】
検証ルール147は、入力データxsと出力データysの要素集合が等しく、全隣接要素間の大小関係が適切であることを規定する。昇順における適切な大小関係は、後ろの要素の値が前の要素の値以上であることである。
【0057】
学習終了判定条件452は、ランダムな所定数のテストデータサンプルを正解すること(正解率100%)を規定する。本例での所定数は100である。学習内容更新手続き453は、学習タスク完了時に、数列の長さを更新して返すことを示す。本例は、数列の長さをインクリメントする。
【0058】
ソート問題の学習方法の例を説明する。訓練データ管理部115は、訓練データDB101から初期訓練データ143を取得する。初期訓練データ143は、所定の要素数、例えば、5要素の数列の教師データである。
【0059】
訓練管理部117は、初期訓練データ143によって、学習モデル部120を学習させる(S101)。その後、訓練管理部117は、初期訓練データ143と同じ要素数の100の入力サンプルをランダムに生成し、学習モデル部120をテストする。訓練管理部117は、は、検証ルール147により、出力が正解か否か判定する。学習モデル部120が全てのサンプルに対して正解を出力する場合、初期学習タスクは完了である(S102:YES)。
【0060】
訓練管理部117は、学習済みの学習モデルのコピーをモデルDB103に格納する。訓練管理部117は、学習タスクの内容を、学習内容更新手続き453に従って更新する(S103)。訓練管理部117は、新しい訓練データの入力データを生成する手続き451の「length」を、インクリメントする。「length」の初期値は、初期訓練データ143の要素数に一致する。
【0061】
訓練データ生成部113は、新しい訓練データの入力データを生成する手続き451に従って、所定数の長さ「length」の乱数列を生成する(S104)。乱数列は、教師データ候補を生成するための入力データである。長さ「length」は、例えば、6である。
【0062】
訓練データ生成部113は、学習済みの学習モデル部120に生成した乱数列を入力し、それぞれの出力値(数列)を取得する(S105)。乱数列と出力値とのペアが、訓練データサンプルの候補である。
【0063】
訓練データ生成部113は、検証ルール147に基づいて、生成された訓練データサンプル候補から、新たな訓練データ(教師データ)サンプルを選択する(S106)。訓練データとして選択される各サンプルは、出力数列の要素が入力乱数列の要素と一致し、さらに、出力数列における全隣接要素間で、後ろの要素の値が前の要素の値以上である。訓練データ管理部115は、新たな訓練データを訓練データDB101に格納する(S107)。
【0064】
訓練管理部117は、新たに生成された要素数6の訓練データのみ、又は、要素数5の既存訓練データ(初期訓練データ)と要素数6の新たな訓練データとにより、学習モデル部120の再学習を実行する(S108)。要素数6の訓練データは、要素数5の訓練データよりも計算複雑性が高いデータである。
【0065】
その後、訓練管理部117は、自己訓練ルール145が示す学習終了判定条件に基づいて、現在の学習タスクが完了しているか判定する(S109)。例えば、訓練管理部117は、要素数5又は要素数6の乱数列を繰り返し生成して、合計100のテスト用入力乱数列を生成する。各乱数列の要素数は、例えば、ランダムに決定される。訓練管理部117は、100の入力乱数列を学習モデル部120に入力し、出力それぞれが正確であるか検証ルール147に従って判定する。学習方法によっては、要素数6の乱数列のみが生成される。
【0066】
学習モデル部120からの全ての出力が正解であれば(S109:YES)、本学習タスクは終了である。学習モデル部120の学習を続行すべき場合(S110:NO)、訓練管理部117は、学習済みの学習モデルのコピーをモデルDB103に格納し、長さ「length」をインクリメントする(S103)。次の学習タスクのための新たな訓練データの生成及び学習モデル部120の学習(再学習)を実行する(S104〜109)。
【0067】
いずれかの出力が不正解である場合(S109:NO)、訓練データ生成部113は、学習モデル部120を使用して、要素数6の新たな訓練データを生成する(S105)。訓練管理部117は、新たに生成した要素数6の訓練データを使用して、学習モデル部120の再学習を行う(S106〜S109)。
【0068】
次に、最大流量問題の例を説明する。最大流量問題は、容量付グラフにおいて、ソースからシンクへの最大流量フローを求める問題である。
図5Aから5Dは、最大フロー問題及びその解法を模式的に示す。
【0069】
図5Aは、学習モデル部120への入力ネットワークの例511を示す。Sノードはソースを示し、Tノードはシンクを示す。エッジの矢印は流れの方向を示し、エッジの数字は容量を示す。
図5Bは、学習モデル部120からの出力フローの例513を示す。エッジの数字は流量を示す。
【0070】
図5Cは、入力ネットワーク511と出力フロー513から生成された、残余ネットワーク515を示す。各実線矢印(エッジ)の数字は、入力ネットワーク511の容量から出力フロー513の流量を引いた値を示し、当該エッジでさらに流すことが可能な流量を示す。各破線矢印の数字は、当該エッジにおいて反対方向に流すことができる流量を示す。各破線矢印の数字は、出力フロー513における当該エッジの流量に一致する。
【0071】
図5Dは、
図5Cに示す残余ネットワーク515から、残余容量が0の有方エッジ(実線矢印)を削除して得られる残余ネットワーク517を示す。残余ネットワーク515と残余ネットワーク517とは、同一の残余ネットワークの異なる表現である。
図5Dに示す残余ネットワーク517において、SノードからTノードへのパスは存在しない。パスは、残余ネットワーク517に残されている有向エッジ(実線矢印及び破線矢印)で構成される。
【0072】
残余ネットワーク517においてSノードからTノードへのパスが存在しないことは、出力フロー513が、SノードからTノードへの最大流量を示していることを、意味する。したがって、残余ネットワークにおいてSノードからTノードへのパスが存在しないことは、最大流量問題の検証ルール147として使用することができる。
【0073】
以下において、最大流量問題のための、自己訓練ルール145及び検証ルール147の例を説明する。上述のように、自己訓練ルール145は、新しい訓練データの入力データを生成する手続き、学習終了判定条件、及び、学習内容更新手続きを規定する。
【0074】
新しい訓練データの入力データを生成する手続きは、例えば、所定数のノード及び所定数のエッジから、異なる構成のグラフを、所定数生成することを指示する。新しい訓練データの入力データを生成する手続きは、さらに、各グラフから、容量の異なる組み合わせのネットワークを所定数生成することを指示する。各エッジの流量は、例えば、所定範囲内の乱数が割り当てられる。
【0075】
新しい訓練データの入力データを生成する手続きは、一つのノードに接続されるエッジの最大数を規定する。グラフは、ノードとノード間を接続するエッジからなり、エッジ又はノードへの容量を定義しない。エッジは方向を持つことができる。ここで、グラフは、ソースノードとシンクノードを定義し、さらに、ソースノードからシンクノードへのパスを含む。
【0076】
学習終了判定条件は、例えば、所定数の入力ネットワークの全てに対して、正解を出力することである。入力ネットワークのノード数及びエッジ数は、学習タスクで使用された訓練データのノード数及びエッジ数に対応する。
【0077】
学習内容更新手続きは、例えば、現在の入力ネットワークのエッジの数が所定数未満である場合にエッジの数を増加させ、エッジの数が所定数に達している場合にノードの数を増加させる、ことを指示する。エッジ数又はノード数の増加に伴い、計算複雑性が増加する。特定ノード数に対するエッジ数の初期値は、予め規定されている。
【0078】
検証ルール147は、例えば、残余ネットワークにおいてソースノードとシンクノードとの間にパスが存在しないことを、正解の条件として示す。
【0079】
セルフトレーナ部110は、上記の自己訓練ルール145及び検証ルール147に基づいて、
図3に示すフローチャートに沿って、学習モデル部120の学習及び訓練データの生成を繰り返す。
【0080】
次に、交通量推測問題の例を説明する。
図6は、学習モデル部120への入力ネットワークの例611を示す。ネットワーク611は、道路網及びその交通量を示す。黒点ノードは交差点を表し、エッジは道路を表す。エッジの矢印は、道路の通行方向を示す。ネットワーク611における交差点間の全ての道路は、一方通行である。
【0081】
エッジの数字は、当該道路における特定時間内の交通量を示す。交通量の一部データが欠損している。「?」は、当該道路の交通量のデータが存在せず、不明であることを示す。道路が双方向である場合、ノード間において双方向の交通量が示される。道路の交通量は、例えば、道路に設置されている測定装置により計測される。
【0082】
学習モデル部120は、入力されたネットワークにおける全ての欠損交通量を推定し、全ての道路の交通量を示すネットワークを出力する。検証ルール147は、フロー保存則を利用する。フロー保存則は、一つのノードにおける流入量の総和は、当該ノードからの流出量の総和に等しいことを示す。
【0083】
図7A及び7Bは、フロー保存則を説明するため、一つの交差点に接続する四つの道路を示す。道路711から714が、交差点701に接続している。
図7Aにおいて、一つの道路の交通量が不明であり、
図7Bにおいて二つの道路の交通量が不明である。
【0084】
具体的には、
図7Aにおいて、道路711から交差点701への流入量は9である。道路712から交差点701への流入量は3である。交差点701から道路713への流出量は8である。交差点701から道路714への流出量は不明(「?」)である。フロー保存則は、道路714への流出量は4であることを示す。
【0085】
一方、
図7Bにおいて、道路714への流出量に加え、道路711からの流入量が不明である。フロー保存則は、道路714及び道路711の交通量の複数の組が正解であり得ることを示す。具体的には、道路711の交通量と道路714への交通量との和が、+5である任意の組み合わせが正解である。なお、交差点701への流入は正の数字で表わされ、交差点からの流出は負の数字で表わされるものとする。
【0086】
以下において、交通量推測問題の自己訓練ルール145及び検証ルール147の例を説明する。上述のように、自己訓練ルール145は、新しい訓練データの入力データを生成する手続き、学習終了判定条件、及び学習内容更新手続きを規定する。
【0087】
新しい訓練データの入力データを生成する手続きは、例えば、所定数のノード及び所定数のエッジから、異なる構成のグラフを、所定数生成することを指示する。例えば、各エッジはいずれかの一方向を持つ(一方通行)、又は、双方向を持つ(双方向通行)。
【0088】
新しい訓練データの入力データを生成する手続きは、さらに、各グラフから、交通量の異なる組み合わせのネットワークを所定数生成することを指示する。ネットワークにおいて、ランダムに所定数のエッジを選択し、交通量未設定のエッジと決定することを指示する。
【0089】
新しい訓練データの入力データを生成する手続きは、ノードごとに、交通量未設定と決定されたるエッジを除く全てのエッジそれぞれに対して、交通量を所定範囲内の乱数に設定することを指示する。ただし、交通量未設定のエッジが一つも接続されないノードに関しては、そのノードに接続するエッジの集合に割り当てられる交通量の総和が、フロー保存則を満たすまで、乱数による割り当てを繰り返すことを指示する。
【0090】
上記他の問題のための学習において、新しい訓練データの入力データを生成する手続きは、既存訓練データにおける入力データと異なる入力データを使用して訓練データ候補を生成する。本問題においては、一つの入力オブジェクトに対して正解と見なされる複数の出力値が存在し得る。同一学習タスクの訓練データ生成ために異なるパラメータセットの学習モデル部を使用され、新たな訓練データ候補の生成において、既存訓練データに含まれる入力データが使用されてもよい。
【0091】
学習終了判定条件は、例えば、所定数の入力ネットワークの全てに対して、正解を出力することである。上述のように、一つのノードに接続する複数のエッジの流量が不明の場合、複数の正解が存在する。入力ネットワークのノード数及びエッジ数は、学習タスクで使用された訓練データのノード数及びエッジ数に対応する。
【0092】
学習内容更新手続きは、例えば、現在の入力ネットワークのエッジの数が所定数未満である場合にエッジの数を増加させ、エッジの数が所定数に達している場合にノードの数を増加させる、ことを指示する。エッジ数又はノード数の増加に伴い、計算複雑性が増加する。特定ノード数に対するエッジ数の初期値は、予め規定されている。検証ルール147は、各ノードにおいて、フロー保存則が満たされていることを示す。
【0093】
本実施形態の情報処理システム1は、上記三つの問題例以外の問題にも適用可能である。上記三つの問題例に対してそれぞれ示した検証ルールは例であって、他の可能な検証ルールを使用することができる。
【0094】
以下において、情報処理システム1の運用の例を説明する。最大フロー問題の学習モデル部120の運用の例を説明する。最大フロー問題の学習モデル部120は、例えば、生産ラインにおける各バルブの開閉量制御、都市における交通流制御、施設内の人流制御等に適用することができる。
【0095】
図8は、施設内の人流制御に適用された、情報処理システム1の他の構成例を示す。
図8に示す情報処理システム1は、例えば、駅において、改札周辺やホームの混雑状況に応じて電子看板で人の流れを誘導する、又は、商業施設において、混雑予測情報をモニタに映し出すことにより効率的に施設を利用させることができる。
【0096】
機械学習システム10は、
図1に示す構成に加え、ネットワーク生成部161及びオペレーショントランスレータ部163を含む。これらは、例えば、プログラムに従って動作する210により構成することができる。
【0097】
情報処理システム1は、基本的に、学習部と運用部に分けることができる。学習部は、学習モデル部120を学習させる機能部であり、運用部は、実際の施設内の人流制御を実行する機能部である。
【0098】
ネットワーク生成部161は、外部から入力される情報、例えば、平均歩行速度171、通路幅173、及びカメラ映像175から、対象となるネットワークを生成する。生成したネットワークは、学習後の学習モデル部120に入力される。学習モデル部120は、最大フローを算出する。オペレーショントランスレータ部163は、算出された最大フローの情報を、例えば、施設配置案165、スタッフガイダンス166、デジタルサイネージデータ167等に解釈して出力する。
【0099】
学習部の動作は、基本的に、上述の通りである。セルフトレーナ部110は、例えば、現在の入力データであるネットワーク情報に基づき、学習モデル部120の再学習を制御してもよい。例えば、過去の学習におけるネットワークよりもサイズが大きいネットワークの入力の検知に応答して、セルフトレーナ部110は、学習モデル部120の再学習を開始してもよい。
【0100】
以下において、本実施形態の機械学習システム10の評価結果の例を示す。発明者らは、シーケンスデータのECHO問題(タスク)のため、短いシーケンス長(L=5)の訓練データ(教師データ)を用意した。ECHO問題は、入力シーケンスを出力シーケンスとして出力する問題である。発明者らは、本実施形態の機械学習システム10が、学習モデル部120を、自律的により長いシーケンス長(L=19)のデータに対して適応させることができるか評価した。
【0101】
機械学習システム10は、用意された訓練データで学習モデル部120を学習させた後、新たな訓練データの生成と学習モデル部120の再学習を繰り返した(学習モデル部120の自己学習)。本実施形態の機械学習システム10は、長いシーケンス長(L=19)のデータに対して適応した学習モデル部120を自律的に生成することができた。
【0102】
図9A〜9Eは、上記評価結果を示す。
図9A〜9Fは、それぞれ、ECHO問題における、入力値、目標値(真値)、予測値(出力値)、及び目標値と予測値との間の差分を示す。
【0103】
図9Aは、シーケンス長が5の学習が完了した時の結果を示す。入力値321は、シーケンス幅3、シーケンス長5の、0/1の2値データである。入力値321に対して、スタートフラグ301とエンドフラグ303が付随している。学習モデル部120が出力した予測値325は、目標値323と一致しており、それらの差分はゼロである。
【0104】
図9Bは、シーケンス長が6の学習の途中結果を示す。学習モデル部120が、入力値331に対して、出力した予測値335は、目標値333と異なっている。予測値335と目標値333との間の差分337が存在する。
図9Cは、シーケンス長が6の学習が完了した時の結果を示す。学習モデル部120が、入力値341に対して出力した予測値345は、目標値343と一致しており、それらの差分はゼロである。
【0105】
図9Dは、シーケンス長が10の学習が完了した時の結果を示す。学習モデル部120が、入力値351に対して出力した予測値355は、目標値353と一致しており、それらの差分はゼロである。
図9Eは、シーケンス長が19の学習が完了した時の結果を示す。学習モデル部120が、入力値361に対して出力した予測値365は、目標値363と一致しており、それらの差分はゼロである。
【0106】
以上のように、本実施形態の機械学習システム10は、外部から入力された短いシーケンスデータ(L=5)から、自律的に、より複雑なデータに対する学習を実現していくことができた。
【0107】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0108】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
【0109】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。