特許第6847386号(P6847386)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
<>
  • 特許6847386-ニューラルネットワークの正則化 図000037
  • 特許6847386-ニューラルネットワークの正則化 図000038
  • 特許6847386-ニューラルネットワークの正則化 図000039
  • 特許6847386-ニューラルネットワークの正則化 図000040
  • 特許6847386-ニューラルネットワークの正則化 図000041
  • 特許6847386-ニューラルネットワークの正則化 図000042
  • 特許6847386-ニューラルネットワークの正則化 図000043
  • 特許6847386-ニューラルネットワークの正則化 図000044
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6847386
(24)【登録日】2021年3月5日
(45)【発行日】2021年3月24日
(54)【発明の名称】ニューラルネットワークの正則化
(51)【国際特許分類】
   G06N 3/08 20060101AFI20210315BHJP
   G06N 3/04 20060101ALI20210315BHJP
【FI】
   G06N3/08
   G06N3/04
【請求項の数】19
【外国語出願】
【全頁数】25
(21)【出願番号】特願2016-176336(P2016-176336)
(22)【出願日】2016年9月9日
(65)【公開番号】特開2018-41367(P2018-41367A)
(43)【公開日】2018年3月15日
【審査請求日】2019年2月25日
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成25年度、独立行政法人科学技術振興機 構、戦略的創造研究推進事業「ビッグデータ統合利活用のための次世代基盤技術の創出・体系化」(CREST)、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ダスグプタ サキャシン
(72)【発明者】
【氏名】恐神 貴行
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 米国特許出願公開第2015/0106316(US,A1)
【文献】 特開2016−071697(JP,A)
【文献】 特開2015−011510(JP,A)
【文献】 特開2013−143031(JP,A)
【文献】 特開2011−065361(JP,A)
【文献】 米国特許出願公開第2015/0006444(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00− 3/12
10/00−20/20
(57)【特許請求の範囲】
【請求項1】
複数の先入れ先出し(FIFO)キューを有する元のニューラルネットワークを取得する段階であって、各FIFOキューは、前記元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、段階と、
少なくとも1つの変更されたニューラルネットワークを生成する段階であって、前記変更されたニューラルネットワークは、長さが変更された少なくとも1つのFIFOキューを有する前記元のニューラルネットワークに等しい、段階と、
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを訓練する段階と、
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する段階と、
前記評価に基づき、前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確かを判断する段階と
を備える
方法。
【請求項2】
前記元のニューラルネットワークは、
前記複数のノードのうちの複数のノードで構成された複数のレイヤであって、各レイヤは、データセットの時間枠の入力値を前記複数のレイヤのうちの後続レイヤに連続して転送し、前記データセットは、時系列のものであり、前記複数のノードで構成された複数のレイヤは、
前記複数のノードのうちの入力ノードの第1レイヤであって、前記入力ノードは、前記データセットの現在の時間枠の入力値を受信する、入力ノードの第1レイヤと、
複数の中間レイヤであって、各中間レイヤにおける各ノードは、前のレイヤからの値を、後続又は共有レイヤにおけるノードに転送する、複数の中間レイヤとを含む、複数のノードで構成された複数のレイヤと、
各FIFOキューに対応する複数の重み値であって、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、前記対応するFIFOキューにおける各値に適用される、複数の重み値と
を含む、請求項1に記載の方法。
【請求項3】
前記生成する段階は、前記元のニューラルネットワークにおける複数の前記FIFOキューのうちから、変更させる少なくとも1つのFIFOキューを選択する段階を含む、請求項1または2に記載の方法。
【請求項4】
前記生成する段階は、前記少なくとも1つのFIFOキューを指定された長さに切り捨てる段階をさらに含む、請求項3に記載の方法。
【請求項5】
前記選択する段階は、確率変数に基づく、請求項3または4に記載の方法。
【請求項6】
前記訓練する段階は、データセットの各サンプルに対する訓練フェーズを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記データセットは、時系列のものであり、各訓練フェーズは、前記時系列における少なくとも1つの時間枠に対応する、請求項に記載の方法。
【請求項8】
前記生成する段階は、各訓練フェーズ中に前記少なくとも1つの変更されたニューラルネットワークのうちの変更されたニューラルネットワークを生成する段階を含む、請求項に記載の方法。
【請求項9】
前記評価する段階及び前記判断する段階は、閾値の数の訓練フェーズ後に実行される、請求項に記載の方法。
【請求項10】
前記元のニューラルネットワークを、前記最も正確なニューラルネットワークに置換する段階をさらに備え、
前記元のニューラルネットワークが一旦、前記最も正確なニューラルネットワークに置換されたら、後続の生成、評価、及び判断する動作は、前記元のニューラルネットワークの代わりに、前記最も正確なニューラルネットワークに対して実行される、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する前記段階は、
データセットを前記ニューラルネットワークに入力する段階と、
前記ニューラルネットワークの出力の分布と前記データセットの真の分布との間の差を計算する段階とを含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記ニューラルネットワークの前記出力の分布と前記データセットの前記真の分布との間の前記差を計算する前記段階は、前記出力の分布及び前記真の分布の負の対数尤度を計算する段階を含む、請求項1に記載の方法。
【請求項13】
前記元のニューラルネットワークを前記最も正確なニューラルネットワークに置換する段階をさらに備える請求項1から9のいずれか一項に記載の方法。
【請求項14】
前記生成する段階は、前記少なくとも1つの変更されたニューラルネットワークにおける複数の前記FIFOキューのうちから、変更させる少なくとも1つのFIFOキューを選択する段階を含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
コンピュータに動作を実行させるコンピュータ・プログラムであり、前記動作は、
複数の先入れ先出し(FIFO)キューを有する元のニューラルネットワークを取得することであって、各FIFOキューは、前記元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、元のニューラルネットワークを取得することと、
少なくとも1つの変更されたニューラルネットワークを生成することであって、前記変更されたニューラルネットワークは、長さが変更された少なくとも1つのFIFOキューを有する前記元のニューラルネットワークに等しい、少なくとも1つの変更されたニューラルネットワークを生成することと、
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを訓練することと、
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価することと、
前記評価に基づき、前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断することと
を含む、
コンピュータプログラム。
【請求項16】
前記元のニューラルネットワークは、
前記複数のノードのうちの複数のノードで構成された複数のレイヤであって、各レイヤは、データセットの時間枠の入力値を、前記複数のレイヤのうちの後続レイヤに連続して転送し、前記データセットは、時系列のものであり、前記複数のノードで構成された複数のレイヤは、
前記複数のノードのうちの入力ノードの第1レイヤであって、前記入力ノードは、前記データセットの現在の時間枠の入力値を受信する、入力ノードの第1レイヤと、
複数の中間レイヤであって、各中間レイヤにおける各ノードは、前のレイヤからの値を、後続又は共有レイヤにおけるノードに転送する、複数の中間レイヤとを含む、複数のノードで構成された複数のレイヤと、
各FIFOキューに対応する複数の重み値であって、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、前記対応するFIFOキューにおける各値に適用される、複数の重み値と
を含む、請求項1に記載のコンピュータプログラム。
【請求項17】
前記動作は、前記元のニューラルネットワークを前記最も正確なニューラルネットワークに置換することをさらに含む、請求項15または16に記載のコンピュータプログラム。
【請求項18】
複数の先入れ先出し(FIFO)キューを有する元のニューラルネットワークを取得するよう動作可能な取得部であって、各FIFOキューは、前記元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、取得部と、
少なくとも1つの変更されたニューラルネットワークを生成するよう動作可能な生成部であって、前記変更されたニューラルネットワークは、長さが変更された少なくとも1つのFIFOキューを有する元のニューラルネットワークに等しい、生成部と、
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを訓練する訓練部と、
前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価するよう動作可能な評価部と、
前記評価に基づき、前記元のニューラルネットワーク及び前記少なくとも1つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断するよう動作可能な判断部と
を備える
装置。
【請求項19】
前記元のニューラルネットワークは、
前記複数のノードのうちの複数のノードで構成された複数のレイヤであって、各レイヤは、データセットの時間枠の入力値を、前記複数のレイヤのうちの後続レイヤに連続して転送し、前記データセットは、時系列のものであり、前記複数のノードで構成された複数のレイヤは、
前記複数のノードのうちの入力ノードの第1レイヤであって、前記入力ノードは、前記データセットの現在の時間枠の入力値を受信する、入力ノードの第1レイヤと、
複数の中間レイヤであって、各中間レイヤにおける各ノードは、前のレイヤからの値を、後続又は共有レイヤにおけるノードに転送する、複数の中間レイヤとを含む、複数のノードで構成された複数のレイヤと、
各FIFOキューに対応する複数の重み値であって、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、前記対応するFIFOキューにおける各値に適用される、複数の重み値と
を含む、請求項1に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークの正則化に関する。
【0002】
より具体的には、本発明は、先入れ先出し(FIFO)キューを有するニューラルネットワークの正則化に関する。
【0003】
ディープニューラルネットワークは、多数の画像認識及び他の機械学習タスクにおける学習のために成功に適用されてきた。
【0004】
しかしながら、ニューラルネットワークベースのモデルは概して、大量の利用可能なラベル付きのデータセットを有するシナリオによく適している。レイヤの大きさ又は数の面でニューラルネットワークの複雑さを増大することによって、優れたレベルの能力が達成できる。限られた量の訓練サンプルの存在下で訓練が行われた場合、このことは全般的な過学習又は汎化の問題をもたらし得るという警告がされている。結果として、L2罰則項の追加、ベイジアン法、訓練データへのノイズの追加などのような、ニューラルネットワークの正則化のための広範囲の技術が、開発されてきた。
【0005】
より近年では、ディープアーキテクチャを有するニューラルネットワークを中心とした、N.Srivastava,G.Hinton,A.Krizhevsky,I.Sutskever,and R.Salakhutdinov,"Dropout:A simple way to prevent neural networks from overfitting",The Journal of Machine Learning Research,vol.15,no.1,pp.1929−1958,2014に開示されたようなドロップアウト技術、及び、L.Wan,M.Zeiler,S.Zhang,Y.L.Cun,and R.Fergus,"Regularization of neural networks using dropconnect,"in Proceedings of the 30th International Conference on Machine Learning(ICML−13),2013,pp.1058−1066に開示されたようなドロップコネクト技術が、各訓練サンプル上の特徴検出子の一部をランダムに省略することにより過学習を防止する方法として、提案されてきた。具体的には、ドロップアウトは、フォワードパス中に各レイヤにおける活性化(又はユニット)の半分をランダムに削除し、次に、残りのユニットのみを通して誤差を逆伝播することを含む。これについて、ドロップコネクトは、活性化(ユニット)よりも、重みをランダムに省略することに汎化する。これらの技術は両方、完全に接続された標準ディープニューラルネットワークアーキテクチャの能力の著しく改善するものとして示されている。
【0006】
近年、動的ボルツマンマシン(DyBM)と呼ばれる生成モデルが、2014年9月30日に出願された日本特許番号第5943358号において紹介された。静的パターンの集合で訓練される従来のボルツマンマシンと違って、DyBMは、時間的パターンシーケンスの教師なし学習のために設計されている。DyBMは、生体のニューラルネットワークから、仮説及び観察により動機付けられ、スパイクタイミング(スパイク時間依存可塑性(STDP))に基づき、的確な影響及び重み学習を可能にする。制限付きボルツマンマシン(RBM)と違って、DyBMは概して、具体的な隠れユニットを有しておらず、そのネットワークは、時間にわたっても展開されることができ、無限に多くのレイヤを可能にする。特定の環境において、DyBMは、時間的パターンシーケンスを処理するレイヤにそれぞれが対応する隠れユニットのレイヤなどの隠れユニットを有してよい。さらに、DyBMは、メモリユニットを有し、固定の長さの先入れ先出し(FIFO)キューの形態で実装されたユニット間で伝導遅延を有する、完全に接続された再帰型ニューラルネットワークとして、みなされ得る。シナプス前のニューロンに始まるスパイクが、このFIFOキューに沿って移動し、固定遅延後に、シナプス後のニューロンに到達する。FIFOキューの長さは、最大遅延値を引いたものに等しい。この全く新規なアーキテクチャのDyBMに起因し、既存の正則化方法を適用することが、困難となり、又は、より良好な汎化能力をもたらさない。
【発明の概要】
【0007】
本発明の第1の態様によると、複数の先入れ先出し(FIFO)キューを有する元のニューラルネットワークを取得する段階であって、各FIFOキューが、元のニューラルネットワークの複数のノードのうちの一対のノード(本明細書においてはニューロン又はユニットとも称される)の間に位置する、元のニューラルネットワークを取得する段階と、少なくとも1つの変更されたニューラルネットワークを生成する段階であって、変更されたニューラルネットワークは、長さが変更された少なくとも1つのFIFOキューを有する元のニューラルネットワークに等しい、少なくとも1つの変更されたニューラルネットワークを生成する段階と、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する段階と、当該評価に基づき、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断する段階とを備える方法が、提供される。
【0008】
第1の態様は、任意のニューラルネットワークが、より良い予期精度を産み出すこと、及びFIFOキューに必要とされるメモリ容量を低減することによってより少ない計算資源を使用することを可能にしてよい。第1の態様はまた、当該方法を実装するプログラムと、当該プログラムを実行するコンピュータと、当該方法を実行する装置とを含む。
【0009】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。これらの特徴群のサブコンビネーションもまた発明となり得る。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態に係る、ニューラルネットワーク正則化のための装置を示す。
【0011】
図2】本発明の実施形態に係る、動的ボルツマンマシン(DyBM)をニューラルネットワークの例として示す。
【0012】
図3】本発明の実施形態に係る、FIFOキューを介してシナプス前のニューロンとシナプス後のニューロンとの間の接続を示す。
【0013】
図4】本発明の実施形態に係る、時系列データセット及び訓練データの例を示す。
【0014】
図5】本発明の実施形態に係る、ニューラルネットワークを正則化するための動作フローを示す。
【0015】
図6】本発明の実施形態に係る、変更されたニューラルネットワークを生成するための動作フローを示す。
【0016】
図7】本発明の実施形態に係る、ニューラルネットワークを評価するための動作フローを示す。
【0017】
図8】本発明の実施形態に係る、クラウドサービス利用のために構成されたコンピュータの例示的なハードウェア構成を示す。
【発明を実施するための形態】
【0018】
以下、本発明の例示的な実施形態を説明する。例示的な実施形態は、特許請求の範囲に係る本発明を限定するものではなく、実施形態において説明されている特徴の組み合わせは、必ずしも本発明に不可欠なものとは限らない。
【0019】
本発明の実施形態は、FIFOキューを有するニューラルネットワークなどのニューラルネットワークの正則化された訓練を可能にしてよい。いくつかの実施形態において、訓練中に、ランダムなFIFOキューの長さが、ゼロに切り捨てられる。
【0020】
図1は、本発明の実施形態に係る、ニューラルネットワーク正則化のための装置100を示す。装置100は、オンプレミス型アプリケーションを実行してそれを使用するクライアントコンピュータをホストするサーバコンピュータ又はメインフレームコンピュータなどのホストコンピュータであってよい。装置100は、2つ以上のコンピュータを含むコンピュータシステムであってよい。代替的に、装置100は、装置100のユーザのためにアプリケーションを実行するパーソナルコンピュータであってよい。装置100は、変更されたニューラルネットワークを生成し、かつ、ニューラルネットワークを評価することによって、ニューラルネットワークを正則化してよく、元のニューラルネットワーク及び変更されたニューラルネットワークのうちの最も正確なニューラルネットワークを判断する。
【0021】
装置100は、取得部102と、選択部106と切り捨て部107とを含み得る生成部104と、訓練部109と、入力部113と計算部114とを含み得る評価部111と、判断部116と、置換部118とを備えてよい。装置100は、具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であってよく、当該プログラム命令は、コンピュータにそれらの様々な部の動作を実行させるようにコンピュータにより実行可能である。代替的に、装置100は、アナログ又はデジタルのプログラマブル回路、又はそれらの任意の組み合わせであってよい。装置100は、通信を通して相互作用する物理的に分離されたストレージ又は回路から構成されてよい。
【0022】
取得部102は、装置100と通信するデータ格納からデータを受信してよい。例えば、取得部102は、複数の先入れ先出し(FIFO)キューを有する元のニューラルネットワークを取得するよう動作可能でよく、各FIFOキューは、元のネットワーク120Aのような元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する。取得部102は、そのようなデータ格納と直接通信してよく、又は、ネットワークにわたって有線又は無線通信を通して、コンピュータと通信するようにトランシーバを利用してよい。
【0023】
生成部104は、元のニューラルネットワークから変更されたニューラルネットワークを生成してよい。例えば、生成部104は、少なくとも1つの変更されたニューラルネットワークを生成するよう動作可能でよく、変更されたニューラルネットワークは、変更されたニューラルネットワーク120Bのような、長さが変更された少なくとも1つのFIFOキューを有する元のニューラルネットワークに等しい。そのような例において、選択部106は、変更させる少なくとも1つのFIFOキューを選択してよく、切り捨て部107は、そのFIFOキューを指定された長さに切り捨ててよい。
【0024】
訓練部109は、ニューラルネットワークの重みを調整し、又はその調整の補助をするよう、訓練サンプルを用いてニューラルネットワークを訓練してよい。
【0025】
評価部111は、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価するよう動作可能でよい。例えば、評価部111は、その評価に基づき、各ニューラルネットワークに値を割り当ててよく、他のニューラルネットワークに割り当てられた値と比較する。入力部113は、テストデータセットを各ニューラルネットワークに入力してよく、計算部114は、予期される又は理想的な出力と比較された、ニューラルネットワークの実際の出力に基づき、割り当てられるべき値を計算してよい。
【0026】
判断部116は、その評価に基づき、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断するよう動作可能でよい。例えば、判断部116は、元のニューラルネットワーク及び変更されたニューラルネットワークのうちのどのニューラルネットワークが最も高い割り当て値を有するかを判断してよい。
【0027】
置換部118は、変更されたニューラルネットワークが元のニューラルネットワークより正確であるという判断に応じて、元のニューラルネットワークを変更されたニューラルネットワークに置換してよい。例えば、置換部118は、元のニューラルネットワークの代わりに、変更されたニューラルネットワークを指すようにポインタを更新してよい。元のニューラルネットワークが一旦、変更されたニューラルネットワークに置換されると、変更されたニューラルネットワークは、長さが変更された少なくとも2つのFIFOキューを有するニューラルネットワークのような、さらなる変更されたニューラルネットワークに置換されてよい。
【0028】
装置100のような装置が、DyBMに有用であり得る。装置100はまた、発信ノードから目的地ノードへデータを伝播するためのノード間でFIFOキューを有する任意のニューラルネットワークモデルのために使用され得る。DyBMは、時間的シーケンスの教師なし学習のために使用されてよく、当該装置向けの場合により良い汎化された能力を示してよい。標準のボルツマンマシンと違って、DyBMは、時系列のパターンを用いて訓練されてよい。具体的には、DyBMは、時系列の履歴値があるとし、時系列の次の値(パターン)の条件付き確率を与える。この条件付き確率は、その時系列の履歴全体に依存し得、DyBMは従って、時系列の生成モデルとして反復的に使用されてよい。DyBMはまた、少なくとも1つの訓練データシーケンスを用いて訓練された後であるとし、時系列のパターンの発生の条件付き確率を推定するために使用され得る。
【0029】
DyBMは、複数のユニットのレイヤを有するBMから定義されてよく、ここで、1つのレイヤが、時系列の直近の値を表し、残りのレイヤは、時系列の履歴値を表す。直近の値は、履歴値があるとし、条件付きで互いから独立する。DyBMは、無数のレイヤを有するそのようなBMに等しくてよく、これにより、直近の値は、時系列の履歴全体に依存し得る。DyBMは、履歴値があるとし、次の値の条件付き分布に関して与えられた時系列の尤度が最大化されるそのような方式で訓練されてよい。BMと同様に、DyBMは、人工ニューロンのネットワークから構成されてよい。各ニューロンは、DyBMのパラメータに依存する確率の分布に従って0又は1の2進値を取り得る。BMと違って、DyBMの値は、その前値に依存する方式で、時間にわたって変更してよい。すなわち、DyBMは、多次元系列の2進値を確率的に生成してよい。DyBMは、時間的パターンシーケンスを処理するレイヤにそれぞれが対応する隠れノードのレイヤのような隠れノードを有してよい。隠れノードはまた、FIFOキューを通して他のノードに接続される。各隠れレイヤは、1つ又は複数の隠れノードを含んでよい。入力レイヤにおける各ノードは、時系列入力データを格納してよい。しかしながら、隠れレイヤにおける各隠れノードは、サンプリングされた値を格納してよい。時系列入力データに加えて隠れノードからの入力を用いることによって、表現能力及び学習能力が改善されてよい。そのようなDyBMにおいて、1つ又は2つの隠れノードの間にある任意のFIFOキューはまた、正則化処理を通して切り捨ての対象となり得る。
【0030】
従来のBMにおける学習は、ヘブ則(Hebbian formulation)に基づき得るが、多くの場合は、コントラスティブダイバージェンス法のようなサンプリングベースの方法に近似する。この則において、時間の概念が大きく欠けている。DyBMにおいて、生体のネットワークと同様に、学習は、スパイクタイミングに依存し得る。このことは、スパイク時間依存可塑性又はSTDPと呼ばれ、シナプス前のニューロンのスパイクがシナプス後のニューロンのスパイクに先立った場合、シナプスが強化され(長期増強(LTP))、時間の順序が逆となった場合、シナプスは弱化される(長期抑圧(LTD))ことを記述する。DyBMは、LTP及びLTDの特性を有する的確なオンライン学習則を使用してよい。
【0031】
図2は、本発明の実施形態に係る、元のニューラルネットワーク120Aのようなニューラルネットワークの例として、動的ボルツマンマシン(DyBM)220を示す。DyBM220は、複数のノードのうちの複数のノードのレイヤと、各FIFOキューに対応する複数の重み値とを含んでよく、各レイヤは、時系列であるデータセットの時間枠の入力値を複数のレイヤのうちの後続レイヤへ連続して転送する。複数のノードのレイヤは、複数のノードのうちの入力ノード224のような入力ノードの第1レイヤ222と、複数の中間レイヤとを含み、入力ノードは、データセットの現在の時間枠の入力値を受信し、各中間レイヤにおける各ノードは、前のレイヤからの値を後続又は共有レイヤにおけるノードに転送し、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、対応するFIFOキューにおける各値に適用される。
【0032】
DyBM220は、無限に多くのユニットのレイヤを有するBMに等しくてよい。DyBMは、「0番目」のレイヤにおけるニューロン間に重みを有さない。DyBM220の各レイヤは、共通の数のニューロンを有し、DyBM220におけるバイアス及び重みは、特定の方式において異なるニューロンの間で共有されてよい。
【0033】
形式上、DyBM220は、−T+1から0のTのレイヤを有するBMであってよく、ここで、Tは正の整数又は無限大である。
仮に、
【数1】
であるとし、ここで、
【数2】
は、t番目のレイヤにおけるニューロンの値であり、その値は、時間tにおける値とみなされ得る。0番目のレイヤにおけるN個のユニットは、関連バイアスbを有し得る。
任意の、
【数3】
に対して、
【数4】
は、その(i,j)要素である、
【数5】
が、時間−δにおけるi番目のユニットと任意のδに対する時間0におけるj番目のユニットとの間の重みを示すマトリックスを与える。この重みは順に、LTP及びLTD構成要素に分けられてよい。各ニューロンは、固定常数であるL個のニューラル的確度トレースを格納してよい。
【数6】
及び、
【数7】
に対して、
【数8】
は、時間tの直前におけるj番目のニューロンのl番目のニューラル的確度トレースである。これは、下記数式1に従って、より最近の値にはより重い重み付けで、そのニューロンの過去の値の加重和として、計算されてよい。
【0034】
[数式1]
【数9】
【0035】
ここで、
【数10】
は、l番目のニューラル的確度トレースに対する減衰率である。
各ニューロンはまた、より最近の値にはより重い重み付けで、伝導遅延であるdi,j後にシナプス前のニューロンであるiからニューロンjに到達している値の加重和として、シナプス的確度トレースを格納してよい。すなわち、シナプス後のニューロンjは、シナプス的確度トレースの固定常数であるKを格納してよい。
【数11】
に対して、
【数12】
は、下記数式2に従って、時間tの直前におけるシナプス前のニューロンiに対するニューロンjのk番目のシナプス的確度トレースであってよい。
【0036】
[数式2]
【数13】
【0037】
ここで、
【数14】
は、k番目のシナプスの的確度トレースに対する減衰率である。両方の的確度トレースは、下記数式3及び数式4に従って、以下のように、やがてローカルに更新される。
【0038】
[数式3]
【数15】
【0039】
[数式4]
【数16】
【0040】
【数17】
及び、
【数18】
に対する、並びにjに接続されるニューロンiに対するものである。
DyBM220に対して、
【数19】
は、
【数20】
があるとし、x(0)の条件付き確率であり得、ここでは、(−T,−1]のように間隔Iに対してxを使用し、
【数21】
を示す。0番目のレイヤにおけるニューロンは、互いに重みを有さないので、この条件付き確率は、制限付きボルツマンマシンに類似する条件付き独立性の特性を有し得る。
【0041】
DyBM220は、以下の意味において時系列のモデルとしてみなされ得る。具体的には、時系列の履歴である、
【数22】
があるとし、DyBM220は、時系列のx[0]である次の値の確率を、
【数23】
で与えてよい。無限レイヤのDyBMでは、次の値は、時系列の履歴全体に依存し得る。原則、無限レイヤのDyBMは、瞬間における時系列の値が、その瞬間に先立ったその値があるとし、条件付きで互いから独立であれば、長期依存性を有する任意の時系列をモデル化し得る。DyBM220により与えられた条件付き確率を用いることによって、長さLのシーケンスの確率である、
【数24】
が、下記数式5により与えられる。
【0042】
[数式5]
【数25】
【0043】
ここでは任意に、
【数26】
として、
【数27】
を定義する。すなわち、対応する履歴がない場合、値は、ゼロに設定されてよい。
【0044】
DyBM220のSTDPベースの学習則は、時系列の与えられたセット(D)の対数尤度が、
【数28】
の対数尤度の和を最大化することによって、最大化されるように得られる。
上記数式5を用いて、
【数29】
の対数尤度は、下記数式6に従って、以下の勾配を有してよい。
【0045】
[数式6]
【数30】
【0046】
概して、この勾配の演算は、大きいTに関しては処理しにくい場合がある。しかしながら、特定の形式の重み共有を用いるDyBM220において、的確で効率的な勾配の計算が可能であってよい。具体的には、T→∞の制限において、ニューラル及びシナプスの的確度トレースの式を用いて、DyBM220のパラメータは、下記数式7に従って、与えられたセットDの対数尤度を最大化するオンラインの確率勾配則を用いて的確に算出されてよい。
【0047】
[数式7]
【数31】
【0048】
図3は、本発明の実施形態に係る、FIFOキュー325を介して、ニューラル的確度トレース328を有するシナプス前のニューロン326と、シナプス的確度トレース329を有するシナプス後のニューロン324との間の接続を示す。
【0049】
DyBMの学習則は、シナプス前のニューロン326のような伝導遅延及びFIFOキュー325のようなメモリユニットから構成されるその構造に起因してSTDPの重要な特性の一部を表す。ニューロンは、シナプス前のニューロン326であるiからのスパイクが、軸索に沿って移動し、一定の期間であるdi,jからなる遅延後のシナプスを介して、シナプス後のニューロン324であるjに到達するという方式で、別のニューロンに接続されてよい。FIFOキュー325が、この伝導遅延を引き起こす。FIFOキュー325は、最後の時間の単位di,j−1に対するシナプス前のニューロン326の値を格納してよい。各格納された値は、時間が1単位だけ増分した場合、キューの先頭に向けて1位置だけプッシュされてよい。シナプス前のニューロン326の値は従って、伝導遅延後に、シナプス後のニューロン324に与えられる。さらに、DyBMは、過去のスパイクに関する情報を、メモリユニットに格納されるニューラル的確度トレース328及びシナプス的確度トレース329に集める。各ニューロンは、バイアスと呼ばれる学習可能なパラメータに関連付けられる。シナプス前のニューロン326とシナプス後のニューロン324との間のシナプスの強度は、LTP及びLTD構成要素にさらに分けられ得る、重みと呼ばれる学習可能なパラメータにより表される。
【0050】
図4は、本発明の実施形態に係る、時系列のデータセット430及び訓練データ431−433の例を示す。図4において、横軸は、時間を示す。図4は、訓練部109のような訓練部が、訓練中にニューラルネットワークにより訓練データとして使用された時系列データの期間より長い期間Lを有する時系列データを使用する場合の例を図示する。
【0051】
訓練部は、時点1から時点Tまで、時系列データの時系列データセグメントを第1訓練データとして用いて、第1の訓練フェーズを実行してよい。具体的には、訓練部は、時点Tにおけるデータを、1つの時点における各入力値である、
【数32】
として用いて、かつ、時点1から時点T−1までの時系列データを、入力データシーケンスである、
【数33】
(すなわち、履歴)として用いて、第1の訓練フェーズを実行してよい。
【0052】
次に、訓練部は、時点2から時点T+1までの時系列データの時系列データセグメントを、第2の訓練データとして用いて、第2の訓練フェーズを実行してよい。訓練部は、時点T+D−1までのD個のデータ項目のそれぞれを、各時点における入力値である、
【数34】
として、連続して使用してよい。この場合、訓練部は、間隔を、時点1から時点T−1までの間隔から1つの時点だけシフトすることによって、時点Dから時点T+D−2までのD個の時系列データセグメントのそれぞれを、履歴として使用してよい。訓練部は、この方式で、D個の入力値である、
【数35】
及び対応するD個の履歴に対して、パラメータをD回、調整してよい。すなわち、訓練部は、学習が0からD−1の範囲におけるtに対して実行され得る降下する確率勾配を使用してよい。
【0053】
代替的に、訓練部は、D個の時系列データセットを取得し、期間Lの時間シーケンスのデータセグメントから複数の訓練データセットを生成し、Dのレイヤに対して学習をまとめて実行してよい。
【0054】
図5は、本発明の実施形態に係る、ニューラルネットワークを正則化するための動作フローを示す。動作フローは、DyBM、FIFOキューを有する一般的なニューラルネットワークなどのようなニューラルネットワークを、正則化を用いて訓練し、次に、テストデータセットに対する改善された予期のためにの最良の実行モデルを選択する方法を提供してよい。動作は、装置100のような装置により実行されてよい。
【0055】
S540において、取得部102のような取得部が、元のニューラルネットワーク120Aのような元のニューラルネットワークを取得し得る。例えば、取得部は、複数の先入れ先出し(FIFO)キューを有する元のニューラルネットワークを取得してよく、各FIFOキューは、元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する。元のニューラルネットワークがDyBMであるいくつかの実施形態において、動作S540は、特定の範囲内においてランダムに選択されたニューロンを接続するFIFOキューに対する遅延の長さでDyBMパラメータを初期化することを含んでよい。各ニューロンは、1つの送出するFIFOキュー及び1つの到来するFIFOキューといった2つのFIFOキューを有する別のニューロンに接続される。元のニューラルネットワークのFIFOキューの遅延の長さ又は深さは、同一又は異なるサイズであってよく、予め定められた又はランダムなサイズであってよい。元のニューラルネットワークはまた、図5に示されている方法により生成された複数のニューラルネットワークのような複数のニューラルネットワークのうちから選択されるニューラルネットワークであってよい。
【0056】
S550において、生成部104のような生成部が、変更されたニューラルネットワーク120Bのような1つ又は複数の変更されたニューラルネットワークを生成してよい。例えば、生成部は、少なくとも1つの変更されたニューラルネットワークを生成してよく、変更されたニューラルネットワークは、長さが変更された少なくとも1つのFIFOキューを有する元のニューラルネットワークに等しい。
【0057】
S542において、訓練部109のような訓練部が、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを訓練してよい。動作S550及びS542は両方、訓練フェーズ毎に一度発生してよく、訓練は、データセットの各サンプルに対する訓練フェーズを含む。このことは、元のニューラルネットワークがDyBMである場合に有用であってよく、データセットが時系列のものであり、各訓練フェーズが、その時系列における少なくとも1つの時間枠に対応する。各訓練フェーズ中、変更されたニューラルネットワークが生成され、各ニューラルネットワークは、訓練サンプルを用いて訓練される。換言すれば、生成する段階は、各訓練フェーズ中、少なくとも1つの変更されたニューラルネットワークのうちの変更されたニューラルネットワークを生成する段階を含む。最終的に、ニューラルネットワークは、最も正確なニューラルネットワークを判断するよう評価されるであろう。しかしながら、評価する段階及び判断する段階は、訓練周期又はエポックとして知られている、訓練フェーズの閾値後に、実行されてよい。
【0058】
S544において、訓練部は、エポックが完了したかを判断してよい。例えば、エポックが100個のフェーズである場合、次に訓練部は、訓練の100個のフェーズが、開始時から又は前の訓練周期の完了から、実行されていたかを判断してよい。エポックの長さは、重みの決定を可能にするために一般的に必要とされる訓練フェーズの数に基づき、判断されてよい。エポックの長さは、平均に基づき固定され得、又は、重みの変更度(volatility)に基づき変動してよい。エポックが完了していない場合、次に処理は、動作S550に戻り、別の変更されたニューラルネットワークを生成し、次に、ニューラルネットワークが次の訓練サンプルを用いて訓練されるS542に戻る。エポックが完了した場合、次に処理は、S560へと進む。1つより多くの変更されたニューラルネットワークが、各訓練フェーズ中に生成されてよく、各エポックに対してより正確なニューラルネットワークを生成する尤度を増加し得るが、より多くの計算資源を要求してよく、及び/又はより多くの時間を要求してよい。
【0059】
S560において、評価部111のような評価部が、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価してよい。
【0060】
S546において、判断部116のような判断部が、その評価に基づき、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断してよい。
【0061】
S548において、置換部118のような置換部が、元のニューラルネットワークを、最も正確なニューラルネットワークに置換してよい。例えば、置換部は、最も正確なニューラルネットワークの位置を識別するよう、ポインタを更新してよい。動作S560、S546、及びS548は、全ての訓練周期が使い尽くされるまで、全てのエポックにおいて繰り返されてよい。
【0062】
従って、S549において、訓練部は、全ての訓練周期が完了したかを判断する。訓練周期が完了していない場合、次に処理は、別の変更されたニューラルネットワークが生成され、別のエポックが開始するS550に戻る。しかしながら、S548において元のニューラルネットワークが変更されたニューラルネットワークに置換された場合、次に、訓練周期では、元のニューラルネットワークの代わりに、その変更されたニューラルネットワークを使用するであろう。換言すれば、元のニューラルネットワークが一旦、最も正確なニューラルネットワークに置換されていたら、後続の生成、評価、及び判断する動作は、元のニューラルネットワークの代わりに、最も正確なニューラルネットワークに対して実行される。場合によっては、最も正確なニューラルネットワークが依然として元のニューラルネットワークであることがあり、又は、前の訓練周期中に最も正確であると発見された同一のニューラルネットワークであることもある。それらの場合、S548において、置換又はポインタの更新は、実際に発生しない場合がある。
【0063】
この動作フローを適用することによって、正則化された最良の実行ニューラルネットワークは、取得されてよい。この実施形態において、最良の実行ニューラルネットワークは実質的に、切り捨て手順から残存した全てのFIFOキューから構成されてよい。各訓練周期において、新しい最も正確なニューラルネットワークが、サンプリングされて訓練されてよい。この手順の結果として、装置は、ニューラルネットワークのアンサンブルにわたって訓練してよく、元のニューラルネットワークを有効に正則化してよく、過学習を防止する。他の実施形態において、置換部は、最良の実行モデルを選択する代わりに、アンサンブルにわたってニューラルネットワークを平均してよい。
【0064】
図6は、本発明の実施形態に係る、変更されたニューラルネットワークを生成するための動作フローを示す。この動作フローは、確率pを用いてランダムに選択されたFIFOキューに対して、それらのそれぞれの遅延値を指定された長さに設定することによって、FIFOキューの長さを、指定された長さに切り捨てるための方法を提供してよい。それらの動作は、生成部104のような生成部により実行されてよい。
【0065】
動作フローは、元のニューラルネットワークが取得されると、S640から開始する。
【0066】
S652において、確率pを有する確率変数rが、生成部により生成されてよい。
【0067】
S653において、選択部106のような選択部が、与えられたFIFOキューを選択するかを判断する。換言すれば、生成する段階は、元のニューラルネットワークにおける複数のFIFOキューのうちから、変更させる少なくとも1つのFIFOキューを選択する段階を含む。例えば、選択部は、確率pを有するベルヌーイ分布から、Bernoulli(p)により確率変数rを選択してよい。r=1の場合、次に処理は、段階655を飛ばし、元の最大遅延(FIFOキューの長さ)が維持される。そうでなければ、rが他の任意の数に等しい場合、次に処理は、S655へ進む。換言すると、選択する段階は、確率変数に基づく。多くの実施形態において、pは、各FIFOキューが50%の切り捨てられる確率を有するように、0.5に設定されてよいが、他のp値も可能である。切り捨てるようにFIFOキューをランダムに選択する多くの他の方法が、代わりに使用されてよい。
【0068】
S655において、切り捨て部107のような切り捨て部が、FIFOキューを切り捨ててよい。換言すれば、生成する段階は、少なくとも1つのFIFOキューを、指定された長さに切り捨てる段階をさらに含む。例えば、切り捨て部は、FIFOキューの長さをゼロに切り捨ててよい。FIFOキューの長さがゼロである場合、的確度トレースは、シナプス前のニューロン(又は発信ノード)の、その前値を含まない現在の値に基づき計算されてよい。別の例において、切り捨て部は、FIFOキューの長さが最小サイズ(例えば、0又は1)より小さくならない限り、FIFOキューの長さから予め定められたサイズ(例えば、1)を減じることによって、FIFOキューの長さを減少させてよい。また別の例において、切り捨て部は、FIFOキューの新しい長さをランダムに生成してよい。他の実施形態において、装置は、長さを減少するだけではなく、長さを増加することによっても、FIFOキューの長さを変更してよい。
【0069】
S657において、生成部は、全てのFIFOキューが選択の対象になっていたかを判断する。最後のFIFOキューが選択の対象になっていない場合、次に動作フローは、S658へ進み、そこで、生成部は進んで、S652に戻ることによって、ニューラルネットワークにおける次のFIFOキューを考慮する。最後のFIFOキューが選択の対象となっていた場合、次に動作フローは、S642へ進み、ニューラルネットワークを訓練する。
【0070】
いくつかの実施形態において、切り捨て部は、選択されたFIFOキューを、他の固定された量に、又は可変な量により、切り捨ててよい。他の実施形態において、pの値は、訓練フェーズにより、訓練周期により、等など、変動してよい。各訓練フェーズで複数の変更されたニューラルネットワークが生成される実施形態において、与えられたフェーズにおいて生成された各変更されたニューラルネットワークは、異なるpの値を用いて生成されてよい。変更されたニューラルネットワークを生成する方法により、元のニューラルネットワークの技術的に有限数の可能な変動が存在するので、特定の実施形態は、十分な計算資源及び/又は時間があるとし、各訓練フェーズ又は訓練周期に対して、各可能性を計算し、全ての可能な変更されたニューラルネットワークを生成する。代替的な実施形態は、各訓練フェーズ又は訓練周期に対して、均一に分布する可能な変更されたネットワークの一部を生成してよい。
【0071】
図7は、本発明の実施形態に係る、ニューラルネットワークを評価するための動作フローを示す。この動作フローは、その精度に対応する値を有する各ニューラルネットワークを提供してよい。この動作フローは、評価部111のような評価部により実行されてよい。
【0072】
動作フローは、エポックが完了しているS744から開始してよい。S762において、入力部113のような入力部が、データセットをニューラルネットワークに入力してよい。入力されているデータセットに応じて、ニューラルネットワークは、データセットを出力してよい。ニューラルネットワークがDyBMである場合、出力されたデータセットは、入力されたデータセットの前のデータがあるとし、各ノード(又は入力レイヤにおける各ノード)の尤度のセットを含んでよい。S764において、計算部114のような計算部が、出力の分布に関する入力されたデータセットの負の対数尤度(TNL)を計算してよい。また、入手できない場合、計算部は、訓練サンプルから時間パターンの真の分布に関する負の対数尤度(ONL)を計算してよい。換言すれば、ニューラルネットワークの出力の分布とデータセットの真の分布との間の差を計算する段階は、出力の分布及び真の分布の負の対数尤度を計算する段階を含む。S766において、計算部は、ONLとTNLとの間の差を計算してよい。例えば、ONLとTNLとの間の差は、他のニューラルネットワークの精度と比較する値を産み出してよい。S768において、評価部は、TNLがまだ計算されていないいかなるニューラルネットワークが存在するかを判断する。そのようなニューラルネットワークが存在する場合、次に動作フローは、S769へ進み、ここで、評価部は進んで、S762に戻ることによって、次のニューラルネットワークを考慮する。最後のニューラルネットワークにTNL値が割り当てられていた場合、次に動作フローはS746へ進み、ニューラルネットワークを訓練する。換言すれば、元のニューラルネットワーク及び少なくとも1つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する段階は、データセットをニューラルネットワークに入力する段階と、ニューラルネットワークの出力の分布とデータセットの真の分布との間の差を計算する段階とを含む。
【0073】
いくつかの実施形態において、各訓練サンプル及び現在の訓練周期に対して、訓練部は、完了していた訓練フェーズ数の閾値後に、時間的シーケンスのパターンを予期するために、前に学習した各ニューラルネットワークを検証してよい。次に、計算部は、訓練されたDyBMにより定義された分布に関する訓練(又は検証)データの負の対数尤度(TNL)を計算してよい。計算部は、ONLとTNLとの間の差、クロスエントロピー、又は任意の他の適切な能力測定を計算することによって、能力評価測定を更新してよい。置換部は、これまでの最良精度を有する学習されたニューラルネットワークに向けて指すよう、最良のモデルポインタを更新してよい。最終的に、(全てのパラメータが固定された)最良の実行モデルが、最終テストのために、訓練及び検証処理から選択されてよい。
【0074】
上述した装置は、多次元の時間的パターンシーケンスの生成モデルを学習するために特に適したものであってよい。たとえ比較的小さい訓練及びテストデータセットのものであっても、装置は、良好な汎化された能力を産み出すよう、過学習を防止してよい。特定の応用において、DyBMの構造の独自性に起因して、FIFOキューの長さをランダムに切り捨てることは、シナプス前のニューロンからシナプス後のニューロンまでのスパイクのメモリを短縮することによって、DyBMのスパイクダイナミクスにおける変化をもたらし得る。実験結果は、FIFOキューの長さの切り捨ては、任意のニューラルネットワークがより良い予期精度を産み出すことを可能にすること、及び、FIFOキューに必要とされるメモリ容量を低減することによってより少ない計算資源を用いることで、他の状態の当技術分野の方法の性能を著しく上回ることを示している。
【0075】
図8は、本発明の実施形態に係る、クラウドサービス利用のために構成されたコンピュータの例示的なハードウェア構成を示す。コンピュータ800にインストールされるプログラムが、コンピュータ800に、本発明の実施形態の複数の装置、又はそれらの1つ又は複数の(モジュール、構成要素、要素等を含む)部に関連付けられる動作を実行させ、又はそれらとして機能させてよく、及び/又は、コンピュータ800に、本発明の実施形態の複数の処理、又はそれらの複数の段階を実行させてよい。そのようなプログラムは、コンピュータ800に、本明細書にて説明されているフローチャート及びブロック図のブロックの一部又は全てに関連付けられている特定の動作を実行させるよう、CPU800−12により実行されてよい。
【0076】
本実施形態に係るコンピュータ800は、CPU800−12と、RAM800−14と、グラフィックスコントローラ800−16と、ディスプレイデバイス800−18とを含み、それらは、ホストコントローラ800−10により相互に接続される。コンピュータ800はまた、通信インタフェース800−22、ハードディスクドライブ800−24、DVD−ROMドライブ800−26、及びICカードドライブなどの入出力部を含み、それらは、入出力コントローラ800−20を介してホストコントローラ800−10に接続される。コンピュータはまた、ROM800−30及びキーボード800−42などのレガシ入出力部を含み、それらは、入出力チップ800−40を通して入出力コントローラ800−20と接続される。
【0077】
CPU800−12は、ROM800−30及びRAM800−14に格納されるプログラムに従って動作し、それにより、各ユニットを制御する。グラフィックスコントローラ800−16は、CPU800−12により生成された画像データを、RAM800−14に又はそれ自体に提供されるフレームバッファ又は同様のもの上で取得し、その画像データをディスプレイデバイス800−18上で表示させる。
【0078】
通信インタフェース800−22は、ネットワーク800−50を介して他の電子デバイスと通信する。ハードディスクドライブ800−24は、コンピュータ800内のCPU800−12により使用されるプログラム及びデータを格納する。DVD−ROMドライブ800−26は、DVD−ROM800−01からプログラム又はデータを読み取り、RAM800−14を介して、それらのプログラム又はデータをハードディスクドライブ800−24に提供する。ICカードドライブは、ICカードからプログラム及びデータを読み取り、及び/又は、ICカードにプログラム及びデータを書き込む。
【0079】
ROM800−30は、活性化の時間においてコンピュータ800により実行されるブートプログラム又は同様のもの、及び/又は、コンピュータ800のハードウェアに依存するプログラムを格納する。入出力チップ800−40はまた、パラレルポート、シリアルポート、キーボードポート、マウスポート、及び同様のものを介して、様々な入出力部を入出力コントローラ800−20に接続してよい。
【0080】
プログラムは、DVD−ROM800−01又はICカードなどのコンピュータ可読媒体により提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ800−24、RAM800−14、又はROM800−30にインストールされ、CPU800−12により実行される。これらのプログラムにおいて記述される情報処理は、コンピュータ800に読み取られ、プログラムと上述の様々な種類のハードウェア資源との間の協働をもたらす。装置又は方法は、コンピュータ800の使用に従って動作又は情報処理を実現することによって構成されてよい。
【0081】
例えば、コンピュータ800と外部のデバイスとの間の通信が実行された場合、通信プログラムに記述されている処理に基づき、CPU800−12は、通信インタフェース800−22に通信処理を命令するよう、RAM800−14上に搭載された通信プログラムを実行してよい。通信インタフェース800−22は、CPU800−12の制御下、RAM800−14、ハードディスクドライブ800−24、DVD−ROM800−01、又はICカードなどの記録媒体に提供されている送信バッファ領域上に格納された送信データを読み取り、その読み取られた送信データをネットワーク800−50に送信し、又は、ネットワーク800−50から受信された受信データを、記録媒体上に提供されている受信バッファ領域又は同様のものに書き込む。
【0082】
加えて、CPU800−12は、ハードディスクドライブ800−24、DVD−ROMドライブ800−26(DVD−ROM800−01)、ICカードなどのような外部記録媒体に格納されているファイル又はデータベースの全て又は必要な部分を、RAM800−14に読み取らせてよく、RAM800−14上でデータに対して様々な種類の処理を実行してよい。CPU800−12は次に、処理されたデータを外部記録媒体に書き戻してよい。
【0083】
様々な種類のプログラム、データ、テーブル、及びデータベースなどの様々な種類の情報は、情報処理を行うべく、記録媒体に格納されてよい。CPU800−12は、RAM800−14から読み取られたデータに対して、本開示にわたって説明されてプログラムの命令シーケンスにより指定されている様々な種類の動作、情報の処理、条件判断、条件分岐、無条件分岐、情報の検索/置換などを含む様々な種類の処理を実行してよく、その結果をRAM800−14に書き戻す。加えて、CPU800−12は、記録媒体において、ファイル、データベースなどにおける情報を検索してよい。例えば、第1の属性の属性値を有するそれぞれが第2の属性の属性値に関連付けられている複数のエントリが記録媒体に格納されている場合、CPU800−12は、複数のエントリのうちから、その第1の属性の属性値が指定された条件に一致するエントリを検索し得、そのエントリに格納されている第2の属性の属性値を読み取り、それにより、予め定められた条件を満たす第1の属性に関連付けられている第2の属性の属性値を取得する。
【0084】
上述のプログラム又はソフトウェアモジュールは、コンピュータ800上の又はその付近のコンピュータ可読媒体に格納されてよい。加えて、専用通信ネットワーク又はインターネットに接続されているサーバシステムに提供されるハードディスク又はRAMなどの記録媒体が、コンピュータ可読媒体として、使用されてよく、それにより、ネットワークを介して、プログラムをコンピュータ800に提供する。
【0085】
本発明は、システム、方法、及び/又はコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに本発明の複数の態様を実行させるコンピュータ可読プログラム命令を有する一(又は複数の)コンピュータ可読記憶媒体を含んでよい。
【0086】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び格納し得る有形デバイスであってよい。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はそれらの任意の適した組み合わせであってよいが、これらに限定されない。完全に網羅しているわけではないが、コンピュータ可読記憶媒体のより具体的な例のリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD−ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、記録された命令を有する溝におけるパンチカード又は隆起構造などの機械的に符号化されたデバイス、及び上述のそれらの任意の適した組み合わせを含む。本明細書に使用されるコンピュータ可読記憶媒体は、それ自体が、電波又は他の自由に伝播する電磁波、導波路又は他の伝送媒体を通して伝播する電磁波(例えば、光ファイバーケーブルを通過する光パルス)、又はワイヤを通して伝送される電子信号などの一時的な信号として解釈されるべきではない。
【0087】
本明細書にて説明されているコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれの演算/処理デバイスに、又は、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又は無線ネットワークなどのネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされてよい。ネットワークは、銅製伝送ケーブル、光伝送ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを含んでよい。各演算/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれの演算/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0088】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラー命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++又は同様のものなどのオブジェクト指向のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせに書き込まれたソースコードかオブジェクトコードのいずれか、及び、"C"プログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語であってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータでかつ部分的にリモートコンピュータ上で、又は、完全にリモートコンピュータ又はサーバ上で、実行してよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてよく、又は、その接続は、(例えば、インターネットサービスプロバイダを用いてインターネットを通して)外部コンピュータとつながってよい。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の複数の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路を個別化するべく、コンピュータ可読プログラム命令を実行してよい。
【0089】
本発明の複数の態様は、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフロー図及び/又はブロック図を参照して本明細書にて説明されている。フロー図及び/又はブロック図の各ブロック、及びフロー図及び/又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令により実装され得ることが理解されたい。
【0090】
これらのコンピュータ可読プログラム命令は、機械を生成するべく、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供され得、これにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャート及び/又はブロック図のブロック(又は複数のブロック)において特定された機能/動作を実装するための手段を生成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに、特定の方式で機能するよう指示し得るコンピュータ可読記憶媒体に格納されてよく、これにより、格納された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図のブロック又は複数のブロックに特定された機能/動作の態様を実装する命令を有する製品を備える。
【0091】
コンピュータ可読プログラム命令はまた、コンピュータ実装の処理を生成するよう、一連の動作段階が、コンピュータ、他のプログラマブル装置、又は他のデバイス上に実行されることを可能にするべく、そのコンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上に搭載されてよく、これにより、そのコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行する命令は、フローチャート及び/又はブロック図のブロック又は複数のブロックに特定された機能/動作を実装する。
【0092】
図面におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、動作を図示する。これについて、フローチャート又はブロック図における各ブロックは、特定された論理関数を実装するための1つ又は複数の実行可能な命令を含むモジュール、セグメント、又は命令の一部を表してよい。いくつかの代替的な実装において、ブロックに記載された機能は、図面に記載されている順序と異なって発生し得る。例えば、連続して示されている2つのブロックは実際に、実質的に同時に実行されてよく、又は、それらのブロックは、場合によって、関連する機能に応じて逆の順序で実行されてよい。ブロック図及び/又はフロー図の各ブロック、及びブロック図及び/又はフロー図のブロックの組み合わせは、特定された機能又は動作を実行し、又は専用ハードウェア及びコンピュータ命令の組み合わせを実現する専用ハードウェアベースのシステムにより実装されてよいことも、留意されたい。
【0093】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0094】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【0095】
上述により明確されたように、本発明の実施形態は、クラウドサービス利用を実現するために使用できる。
図1
図2
図3
図4
図5
図6
図7
図8