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

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

▶ 窪田 望の特許一覧

<>
  • 特開-計算グラフの改善 図1
  • 特開-計算グラフの改善 図2
  • 特開-計算グラフの改善 図3
  • 特開-計算グラフの改善 図4
  • 特開-計算グラフの改善 図5
  • 特開-計算グラフの改善 図6
  • 特開-計算グラフの改善 図7
  • 特開-計算グラフの改善 図8
  • 特開-計算グラフの改善 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023162911
(43)【公開日】2023-11-09
(54)【発明の名称】計算グラフの改善
(51)【国際特許分類】
   G06N 3/02 20060101AFI20231101BHJP
【FI】
G06N3/02
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022073623
(22)【出願日】2022-04-27
(11)【特許番号】
(45)【特許公報発行日】2023-01-05
(71)【出願人】
【識別番号】520040304
【氏名又は名称】窪田 望
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】窪田 望
(57)【要約】
【課題】ニューラルネットワークを構成する計算グラフを、より適切にすること。
【解決手段】情報処理方法は、情報処理装置に含まれる1又は複数のプロセッサが、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、所定のデータ及び/又は所定の計算グラフを変更すること、変更後の所定のデータ及び/又は所定の計算グラフを用いた学習の学習結果を取得すること、学習が行われた任意のデータ及び任意の計算グラフと、任意のデータ及び任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、を実行する。
【選択図】図3
【特許請求の範囲】
【請求項1】
情報処理装置に含まれる1又は複数のプロセッサが、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更すること、
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
前記学習が行われた任意のデータ及び任意の計算グラフと、前記任意のデータ及び前記任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行する情報処理方法。
【請求項2】
前記取得することは、
変更後のデータ及び/又は計算グラフを用いて前記学習を行うことにより前記学習結果を取得することを含む、請求項1に記載の情報処理方法。
【請求項3】
前記取得することは、
変更後のデータ及び/又は計算グラフを用いた前記学習が行われた他の情報処理装置から前記学習結果を取得することを含む、請求項1に記載の情報処理方法。
【請求項4】
前記1又は複数のプロセッサは、
前記所定のデータに関する情報と、前記計算グラフに関する情報とを関連づけること、をさらに実行する請求項1に記載の情報処理方法。
【請求項5】
前記変更することは、
前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数であって、前記所定のレイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する関数を変更することを含む、請求項1に記載の情報処理方法。
【請求項6】
情報処理装置に含まれる1又は複数のプロセッサに、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更すること、
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
任意の所定のデータと、任意の所定の計算グラフと、前記任意の所定のデータ及び前記任意の所定の計算グラフを用いて学習したときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行させるプログラム。
【請求項7】
1又は複数のプロセッサを含む情報処理装置であって、
前記1又は複数のプロセッサは、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更すること、
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
任意の所定のデータと、任意の所定の計算グラフと、前記任意の所定のデータ及び前記任意の所定の計算グラフを用いて学習したときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行する情報処理装置。
【請求項8】
情報処理装置に含まれる1又は複数のプロセッサが、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得すること、
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行する情報処理方法。
【請求項9】
前記計算グラフを取得することは、
前記計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数であって、前記所定のレイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する関数を取得することを含む、請求項8に記載の情報処理方法。
【請求項10】
情報処理装置に含まれる1又は複数のプロセッサに、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得すること、
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行させるプログラム。
【請求項11】
情報処理装置に含まれる1又は複数のプロセッサを含む情報処理装置であって、
前記1又は複数のプロセッサが、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得すること、
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行する情報処理装置。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、適切な計算グラフを提供可能な情報処理方法、プログラム及び情報処理装置に関する。
【背景技術】
【0002】
近年、汎用AI(Artificial General Intelligence)の研究が行われており、学習精度を高めるため、ニューラルネットワークの構成をより複雑化して任意の問題に対応することが考えられている。下記特許文献1には、ニューラルネットワークに用いられる関数を表現する計算グラフを修正することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2018-533792号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、ニューラルネットワークを用いる学習は、損失関数の最適化として定式化される。損失関数の最適化として、損失関数の出力を最小化するために、誤差逆伝搬法が用いられる。誤差逆伝搬法を実装する方法の一つして、計算グラフが作成され、その逆をたどるということが行われる。このとき、計算グラフ内のノード数や、エッジとノードとの関係や、各ノードに関連付けられる関数などを変更することで、計算グラフは任意の構成が考えられる。
【0005】
しかしながら、データセットの種類や解くべき問題などによって、計算グラフは異なるものが使用されてもよいが、現在一般的に利用されている計算グラフが最善であるとは限らなかった。
【0006】
そこで、本発明の目的の1つは、ニューラルネットワークを構成する計算グラフを、より適切にすることを可能にする情報処理方法、プログラム及び情報処理装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係る情報処理方法は、情報処理装置に含まれる1又は複数のプロセッサが、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、前記所定のデータ及び/又は前記所定の計算グラフを変更すること、変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、前記学習が行われた任意のデータ及び任意の計算グラフと、前記任意のデータ及び前記任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、を実行する。
【発明の効果】
【0008】
本発明によれば、ニューラルネットワークを構成する計算グラフを、より適切にすることを可能にする情報処理方法、プログラム及び情報処理装置を提供することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るシステム構成の一例を示す図である。
図2】実施形態に係る情報処理装置の物理的構成の一例を示す図である。
図3】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
図4】実施形態に係るレイヤの一部の一例を示す図である。
図5】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
図6】実施形態に係る計算グラフに関する情報の一例を示す図である。
図7】実施形態に係る所定のデータに関する情報と、適切な計算グラフに関する情報との関連データの一例を示す図である。
図8】実施形態に係る予測モデルの生成に関する処理の一例を示すフローチャートである。
図9】実施形態に係るユーザが利用する情報処理装置における処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0011】
[実施形態]
<システム構成>
図1は、実施形態に係るシステム構成の一例を示す図である。図1に示す例では、サーバ10と、各情報処理装置20A、20B、20C、20Dとが、ネットワークを介してデータ送受信可能なように接続される。情報処理装置を個別に区別しない場合は情報処理装置20とも表記する。
【0012】
サーバ10は、データを収集、分析可能な情報処理装置であり、1つ又は複数の情報処理装置から構成されてもよい。情報処理装置20は、スマートフォン、パーソナルコンピュータ、タブレット端末、サーバ、コネクティッドカーなど、機械学習を実行可能な情報処理装置である。なお、情報処理装置20は、脳波をセンシングする侵襲型又は非侵襲型の電極に直接的又は間接的に接続されており、脳波データを解析、送受信可能な装置でもよい。
【0013】
図1に示すシステムでは、サーバ10は、例えば、様々なデータセットを用いて、様々な計算グラフのいずれかにより表現されるニューラルネットワークを用いる学習モデルに、いずれかのデータセットを入力して学習を実行する。このとき、サーバ10は、所定のデータセット及び所定の計算グラフのときの学習性能を関連付けて記憶する。
【0014】
次に、サーバ10は、任意のデータセットと、任意の計算グラフとを用いた学習結果(例えば学習性能)を訓練データとして、所定のデータに対して、学習性能が高い計算グラフを特定する予測モデルを学習して生成する。
【0015】
これにより、所定のデータに対して学習が行われる場合、ニューラルネットワークを構成する計算グラフをより適切にすることが可能になる。また、サーバ10は、計算グラフの各ノードに関連付けられる関数を変更することで計算グラフを変更してもよい。なお、この関数は、誤差逆伝搬法を考慮して微分可能な関数が望ましい。
【0016】
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10の物理的構成の一例を示す図である。情報処理装置10は、演算部に相当する1又は複数のCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【0017】
本実施形態では、情報処理装置10が一台のコンピュータで構成される場合について説明するが、情報処理装置10は、複数のコンピュータ又は複数の演算部が組み合わされて実現されてもよい。また、図2で示す構成は一例であり、情報処理装置10はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【0018】
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。CPU10aは、より適切な計算グラフを調べるための学習モデルを用いて学習を行うプログラム(学習プログラム)や、任意のデータを入力したときに適切な計算グラフを出力する予測モデルを生成するための学習を行うプログラム(予測プログラム)を実行する演算部である。CPU10aは、入力部10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに表示したり、RAM10bに格納したりする。
【0019】
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。RAM10bは、CPU10aが実行するプログラム、様々な計算グラフに関する計算グラフデータ、適切な計算グラフを予測する予測モデル、学習対象のデータに関する情報と、このデータに対応する適切な計算グラフとの対応関係を示す関連データなどのデータを記憶してもよい。なお、これらは例示であって、RAM10bには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【0020】
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ROM10cは、例えば学習プログラムや、書き換えが行われないデータを記憶してよい。
【0021】
通信部10dは、情報処理装置10を他の機器に接続するインターフェースである。通信部10dは、インターネット等の通信ネットワークに接続されてよい。
【0022】
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【0023】
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成されてよい。表示部10fが演算結果を表示することは、XAI(eXplainable AI:説明可能なAI)に貢献し得る。表示部10fは、例えば、学習結果や、関数データを表示してもよい。
【0024】
学習プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークを介して提供されてもよい。情報処理装置10では、CPU10aが学習プログラムを実行することにより、後述する図3を用いて説明する様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、情報処理装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えていてもよい。また、情報処理装置10は、GPU(Graphical Processing Unit)やASIC(Application Specific Integrated Circuit)を備えていてもよい。
【0025】
なお、情報処理装置20の構成は、図2に示す情報処理装置10の構成と同様であるため、その説明を省略する。また、情報処理装置10と情報処理装置20とは、データ処理を行う基本的な構成であるCPU10aやRAM10b等を有していればよく、入力部10eや表示部10fは設けられなくてもよい。また、入力部10eや表示部10fは、外部からインターフェースを用いて接続されてもよい。
【0026】
<処理構成>
図3は、実施形態に係る情報処理装置10の処理ブロックの一例を示す図である。情報処理装置10は、取得部11、第1学習部12、変更部13、第2学習部14、関連付け部15、出力部16、及び記憶部17を備える。例えば、図3に示す第1学習部12、変更部13、第2学習部14、関連付け部15は、例えばCPU10aなどにより実行されて実現され、取得部11及び出力部16は、例えば通信部10dなどにより実現され、記憶部17は、RAM10b及び/又はROM10cなどにより実現され得る。
【0027】
取得部11は、所定のデータを取得する。例えば、取得部11は、所定のデータとして、画像データ、系列データ、テキストデータなどの公知のデータセットを取得してもよい。なお、取得部11は、記憶部17に記憶されたデータを取得してもよいし、他の情報処理装置により送信されたデータを取得してもよい。
【0028】
第1学習部12は、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデル12aに、取得部11により取得された所定のデータを入力して学習を行う。例えば、第1学習部12は、計算グラフが異なる複数の学習モデル12aを使用する。いずれの計算グラフを用いるかは、学習される所定の問題、又は所定のデータセットに対して、適宜設定されるとよい。また、第1学習部12は、複数の学習モデル12aそれぞれを用いて学習した学習結果(例えば学習性能)を取得する。
【0029】
所定の問題は、例えば画像データ、系列データ及びテキストデータの少なくともいずれかについて、分類、生成及び最適化の少なくともいずれかを行う問題を含む。ここで、画像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株価のデータを含む。
【0030】
また、所定の学習モデル12aは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル12aは、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
【0031】
また、学習モデル12aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、第1学習部12は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
【0032】
変更部13は、所定のデータ及び/又は所定の計算グラフを変更する。例えば、変更部13は、複数の所定のデータの中から、第1学習部12に入力される所定のデータを1つずつ順に変更する。また、変更部13は、全ての所定のデータに対して学習が行われた場合、別の計算グラフを利用するため、複数の計算グラフの中から1つを選択して計算グラフを変更する。これにより、所定のデータと所定の計算グラフとの任意の組み合わせに対して学習させることが可能になる。例えば、変更部13は、所定のデータと所定の計算グラフとの全ての組み合わせが学習されるように、所定のデータ及び/又は所定の計算グラフを順に変更してもよいし、所定の条件が満たされるまで所定のデータ及び/又は所定の計算グラフを順に変更してもよい。
【0033】
取得部11又は第1学習部12は、変更後の所定のデータ及び/又は所定の計算グラフを用いた学習の学習結果を取得する。例えば、取得部11又は第1学習部12は、様々な組み合わせの所定のデータ及び/又は所定の計算グラフを用いて学習された学習結果を取得する。
【0034】
第1学習部12は、変更部13により変更された所定のデータを学習モデル12aに入力し、又は変更された所定の計算グラフを適用した学習モデル12aに所定のデータを入力して学習を行うことにより、学習結果を取得することを含んでもよい。上述したとおり、第1学習部12は、所定のデータが変更された場合は、現在の学習モデル12aを用いて学習し、所定の計算グラフが変更された場合は、変更後の計算グラフを適用し、更新された学習モデル12aに所定のデータを入力して学習を行う。
【0035】
取得部11は、変更部13により変更された所定のデータ及び/又は所定の計算グラフを用いた学習が他の情報処理装置により行われ、他の情報処理装置から学習結果を取得することを含んでもよい。取得部11は、それぞれ異なる所定のデータや、それぞれ異なる計算グラフを用いて学習された各情報処理装置20から、各学習結果を取得する。例えば、サーバ10は、分散学習を実行するため、各情報処理装置20に対して、任意のデータや任意の計算グラフを送信し、送信した任意のデータや任意の計算グラフを用いた学習を指示してもよい。
【0036】
第2学習部14は、学習が行われた任意のデータ及び任意の計算グラフと、任意のデータ及び任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行う。例えば、第2学習部14は、任意のデータ及び任意の計算グラフを用いて学習された際の学習結果(例えば学習性能)を正解ラベルとする訓練データを用いて、教師あり学習を行う。
【0037】
具体例として、訓練データは、画像のデータセット及び様々な計算グラフを用いて学習された際の分類性能を正解ラベルとする訓練データを含み、又は、テキストのデータセット及び様々な計算グラフを用いて学習された際の文字認識結果を正解ラベルとする訓練データなどを含む。
【0038】
また、第2学習部14は、教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成する。例えば、第2学習部14は、任意のデータを入力すると、このデータに対して適切な計算グラフを出力する予測モデルを生成する。
【0039】
具体例として、第2学習部14は、画像のデータを予測モデルに入力すると、この画像データの特徴に基づいて、この特徴に応じて適切な計算グラフを出力する。適切な計算グラフとは、例えば、様々な計算グラフの中で、この画像データの特徴に対して最も分類性能が良い計算グラフを示す。様々な計算グラフには、レイヤ数、各レイヤのノード数、ノードとエッジとの関係などが異なる計算グラフを含む。
【0040】
以上の構成により、第2学習部14により生成された予測モデルを用いることで、任意のデータ(例、データセット)に対して、ニューラルネットワークを構成する計算グラフを、より適切にすることが可能になる。
【0041】
また、関連付け部15は、所定のデータに関する情報と、予測モデルにより出力された計算グラフに関する情報とを関連付ける。例えば、関連付け部15は、所定のデータの特徴情報と、特定された計算グラフを識別する情報とを関連付けた関連データを記憶部17に記憶する。関連データは、例えば図7を用いて後述する。
【0042】
以上の構成により、サーバ10は、学習対象データの特徴情報が関連データに記憶されていれば、学習をしなくても、その学習対象データに適した計算グラフを特定することができる。この場合、学習対象データが関連データに記憶されていない場合に、第2学習部14は学習を行うにようにしてもよい。その結果、サーバ10の処理負荷を軽減することができ、サーバ10の処理効率を向上させることが可能になる。
【0043】
出力部16は、第2学習部14により予測された計算グラフを、他の情報処理装置20に出力してもよい。例えば、出力部16は、所定のデータを送信して、適切な計算グラフの取得を要求した情報処理装置20に対し、所定のデータに対応する適切な計算グラフを出力してもよい。また、出力部16は、予測された計算グラフを記憶部17に出力してもよい。
【0044】
また、変更部13は、所定の計算グラフ内の所定の層(レイヤ)の所定のノードに関連付けられる関数であって、この所定レイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する関数を変更することを含んでもよい。例えば、変更部13は、各ノードの出力値を1つに変換するための関数として、線形の1次関数ではなく、非線形の二次関数や三次関数などの微分可能な関数に変更してもよい。この関数は、誤差逆伝搬法が考慮されて、微分可能な関数が用いられるとよい。
【0045】
一般的に、あるレイヤの各ノードの出力値を次のレイヤに渡す際に、シンプルな関数(例えばy=w×x+b)を用いて線形変換が行われる。yは出力、wは重み行列、xは入力ベクトル、bはバイアスベクトルを表す。
【0046】
図4は、実施形態に係るレイヤの一部の一例を示す図である。図4に示すレイヤL-1において、4つのノードがあり、それぞれのノードの出力値はh01、h02、h03、1とする。出力値1は、バイアスである。この場合、レイヤLの各ノードでは、一般的には前のレイヤL-1の出力値に線形変換と、非線形変換(活性化関数)とを順に行って出力値が生成される。ここで、線形変換において、一般的にはu=wh+bという関数を用いて線形変換が行われる。例えば、図4に示すu11、u12は、以下の式(1)及び(2)を用いて算出される。
【数1】
【0047】
また、上記式は、入力ベクトルH、重み行列W10、バイアスベクトルB、出力Uを以下のように定義すれば、式(7)のように記載することができる。
【数2】

=W10×H+B ・・・式(7)
【0048】
上記例では、計算グラフにおける各ノードに対して、前の層の出力値に線形変換(W10×H)が行われるが、この関数として、微分可能な関数、例えば二次関数や三次関数などが用いられてもよい。これにより、線形関数を用いるときの損失関数の出力値よりも、他の非線形な関数を用いるときの損失関数の出力値の方が、小さくなる場合もあり得る。すなわち、損失関数の値が小さいということは、正解値と予測値との誤差が小さく学習性能が高いことを意味する。
【0049】
第1学習部12は、各ノードに関連付けられた、前の層の出力値を1つの値に変換する関数として様々な関数を含む計算グラフを用いて学習する。これにより、線形変換の場合の損失関数の出力値よりも、所定の関数に相当する非線形変換の場合の損失関数の出力値の方が小さくなるか否かを調べることができる。所定のデータに対しては、非線形変換の場合の損失関数の出力値が小さくなれば、このことが第2学習部14による教師あり学習により予測モデルに反映される。したがって、所定のデータと同一又は類似するデータが予測モデルに入力されれば、非線形変換の関数を含む計算グラフが出力されることが想定される。この計算グラフは、損失関数の出力値がより小さくなるような計算グラフであるため、その学習性能を向上させることが可能になる。また、様々な計算グラフには、ノード数やエッジなどの構成は同じでも、各ノードに関連付けられる関数が異なるグラフも含まれる。
【0050】
図5は、実施形態に係る情報処理装置20の処理ブロックの一例を示す図である。情報処理装置20は、取得部21、学習部22、出力部23、及び記憶部24を備える。情報処理装置20は、汎用のコンピュータで構成されてもよい。
【0051】
取得部21は、他の情報処理装置(例えばサーバ10)により、分散学習の指示とともに、所定の計算グラフに関する情報や所定のデータセットに関する情報を取得してもよい。所定の計算グラフに関する情報は、計算グラフの構成を示す情報や、計算グラフの各ノードに関連付けられる、前の層からの出力値を変換する関数を示す情報でもよい。所定のデータセットに関する情報は、データセット自体でもよく、所定のデータセットが格納された格納先を示す情報でもよい。
【0052】
学習部22は、所定の計算グラフを用いる学習を行う学習モデル22aに学習対象の所定のデータセットを入力して学習を行う。学習部22は、学習後の学習結果をサーバ10にフィードバックするように制御する。学習結果は、例えば、学習性能などを含み、学習時間をさらに含んでもよい。学習部22は、学習対象のデータセットの種類、及び/又は、解くべき問題に応じて、学習モデル22aを選択してもよい。
【0053】
また、所定の学習モデル22aは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル22aは、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
【0054】
また、学習モデル22aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、学習部22は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
【0055】
出力部23は、分散学習の学習結果に関する情報を他の情報処理装置に出力する。例えば、出力部23は、学習部22による学習結果に関する情報をサーバ10に出力する。例えば、分散学習の学習結果に関する情報は、上述したように、学習性能を含み、学習時間をさらに含んでもよい。
【0056】
記憶部24は、学習部22に関するデータを記憶する。記憶部24は、所定のデータセット24aや、サーバ10から取得したデータ、学習途中のデータ、学習結果に関する情報などを記憶する。
【0057】
これにより、情報処理装置20は、他の情報処理装置(例えばサーバ10)からの指示により、所定のデータセットに対して、所定の計算グラフを適用した分散学習を実行し、学習結果をサーバ10にフィードバックすることが可能になる。
【0058】
また、出力部23は、所定のデータに関する情報を他の情報処理装置(例えばサーバ10)に出力する。出力部23は、所定のデータ(例えば学習対象のデータセット)を出力してもよいし、所定のデータの特徴情報を出力してもよい。
【0059】
取得部21は、他の情報処理装置から、所定のデータに対応する計算グラフを取得する。取得される計算グラフは、他の情報処理装置が予測モデルを利用して予測した、所定のデータに適切な計算グラフである。
【0060】
学習部22は、取得された計算グラフを所定の学習モデル22aに適用する。このとき、学習モデル22aは、上述した学習に用いられた学習モデル22aに計算グラフを適用してもよい。また、学習モデル22aは、他の情報処理装置10から取得される学習モデルでもよいし、自装置で管理する学習モデルでもよい。
【0061】
学習部22は、計算グラフが適用された学習モデル22aに、所定のデータを入力して学習結果を取得する。この学習結果は、所定のデータに適した計算グラフを用いて学習した結果であるため、学習性能の向上を図ることができる。
【0062】
また、取得部21は、取得する計算グラフとして、計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数であって、所定レイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する関数を取得することを含んでもよい。これにより、前レイヤの各出力値を取得して変化する方法として線形変換が一般的であるが、微分可能な任意の変換方法を利用して学習性能の向上を図ることができる。
【0063】
<データ例>
図6は、実施形態に係る計算グラフに関する情報の一例を示す図である。図6に示す例では、関数IDごとに計算グラフに関する情報として関数が関連付けられている。例えば、様々な計算グラフの一例として、計算グラフの各ノードに関連付けられた関数が任意である計算グラフとする。具体例として、関数IDが「A001」の関数として一次関数「u=wh+b」が各ノードに関連付けられ、関数IDが「A002」の関数として二次関数「u=wh+b」が各ノードに関連付けられる。なお、様々な計算グラフの一例として、前の層の出力値を入力する関数を任意とすることを説明したが、計算グラフ内のレイヤ数、各レイヤのノード数、ノードとエージとの関係を任意とする計算グラフでもよい。なお、図6に示すデータは、図3に示す計算グラフ17bのデータの一例である。
【0064】
図7は、実施形態に係る所定のデータに関する情報と、適切な計算グラフに関する情報とを関連付けた関連データの一例を示す図である。図7に示す例では、データセットの種類Aに関数ID「A001」の関数が関連付けられ、データの種類Bに関数「A002」の関数が関連付けられている。なお、図7に示すデータは、図3に示す関連データ17cの一例である。
【0065】
<動作>
図8は、実施形態に係る予測モデルの生成に関する処理の一例を示すフローチャートである。図8に示す処理は、情報処理装置10により実行される。
【0066】
ステップS102において、情報処理装置10の第1学習部12は、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行う。所定のデータは、記憶部17のデータセット17aから選択されてもよいし、他の装置からネットワークを介して受信された所定のデータでもよいし、ユーザ操作に応じて入力された所定のデータを取得してもよい。また、所定の計算グラフは、デフォルトで第1計算グラフが設定されていればよい。
【0067】
ステップS104において、情報処理装置10の変更部13は、所定のデータ及び/又は所定の計算グラフを変更する。変更部13は、所定の基準に従って、学習対象のデータを変更したり、計算グラフを変更したりする。
【0068】
ステップS106において、情報処理装置10の第1学習部12は、変更後の所定のデータ及び/又は所定の計算グラフを用いた学習の学習結果を取得する。
【0069】
ステップS108において、情報処理装置10の第2学習部14は、学習が行われた任意のデータ及び任意の計算グラフと、任意のデータ及び任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行う。
【0070】
ステップS110で、情報処理装置10の第2学習部14は、教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成する。
【0071】
以上の処理により、生成された予測モデルを利用することで、ニューラルネットワークを構成する計算グラフを、より適切にすることを可能にする。
【0072】
図9は、実施形態に係るユーザが利用する情報処理装置20における処理の一例を示すフローチャートである。ステップS202において、情報処理装置20の出力部23は、学習対象の所定のデータに関する情報を他の情報処理装置(例えばサーバ10)に出力する。
【0073】
ステップS204において、情報処理装置20の取得部21は、他の情報処理装置(例えばサーバ10)から、所定のデータに対応する計算グラフを示す情報を取得する。
【0074】
ステップS206において、情報処理装置20の学習部22は、取得された計算グラフを所定の学習モデル22aに適用する。
【0075】
ステップS208において、情報処理装置20の学習部22は、計算グラフが適用された学習モデル22aに、所定のデータを入力して学習結果を取得する。
【0076】
これにより、エッジ側の情報処理装置であっても、学習対象のデータに対して適切な計算グラフを取得して学習を行うことで、学習性能の向上を図ることができる。
【0077】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。また、第1学習部12を備える装置と、第2学習部14を備える装置とは別のコンピュータでもよい。この場合、生成された第1学習部12により学習された学習結果が、ネットワークを介して、第2学習部14を備える装置に送信されてもよい。
【0078】
また、情報処理装置10は、変更部13を必ずしも設けなくてもよい。例えば、情報処理装置10は、任意の学習対象のデータと任意の計算グラフの組における各学習性能を取得して第2学習部14による学習を行ってもよい。
【符号の説明】
【0079】
10…情報処理装置、10a…CPU、10b…RAM、10c…ROM、10d…通信部、10e…入力部、10f…表示部、11…取得部、12…第1学習部、12a…学習モデル、13…変更部、14…第2学習部、14a…予測モデル、15…関連付け部、16…出力部、17…記憶部、17a…データセット、17b…計算グラフ、17c…関連データ、21…取得部、22…学習部、22a…学習モデル、23…出力部、24…記憶部、24a…データセット
図1
図2
図3
図4
図5
図6
図7
図8
図9
【手続補正書】
【提出日】2022-09-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
情報処理装置に含まれる1又は複数のプロセッサが、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
前記学習が行われた任意のデータ及び任意の計算グラフと、前記任意のデータ及び前記任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行する情報処理方法。
【請求項2】
前記取得することは、
変更後のデータ及び/又は計算グラフを用いて前記学習を行うことにより前記学習結果を取得することを含む、請求項1に記載の情報処理方法。
【請求項3】
前記取得することは、
変更後のデータ及び/又は計算グラフを用いた前記学習が行われた他の情報処理装置から前記学習結果を取得することを含む、請求項1に記載の情報処理方法。
【請求項4】
前記1又は複数のプロセッサは、
前記所定のデータに関する情報と、前記計算グラフに関する情報とを関連づけること、をさらに実行する請求項1に記載の情報処理方法。
【請求項5】
前記変更することは、
記所定のレイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する前記関数を変更することを含む、請求項1に記載の情報処理方法。
【請求項6】
情報処理装置に含まれる1又は複数のプロセッサに、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
任意の所定のデータと、任意の所定の計算グラフと、前記任意の所定のデータ及び前記任意の所定の計算グラフを用いて学習したときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行させるプログラム。
【請求項7】
1又は複数のプロセッサを含む情報処理装置であって、
前記1又は複数のプロセッサは、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
任意の所定のデータと、任意の所定の計算グラフと、前記任意の所定のデータ及び前記任意の所定の計算グラフを用いて学習したときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行する情報処理装置。
【請求項8】
情報処理装置に含まれる1又は複数のプロセッサが、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得することであって、前記所定の計算グラフは、所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記所定のデータに応じて特定される前記関数を含む、前記取得すること
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行する情報処理方法。
【請求項9】
前記計算グラフを取得することは、
記所定のレイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する前記関数を取得することを含む、請求項8に記載の情報処理方法。
【請求項10】
情報処理装置に含まれる1又は複数のプロセッサに、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得することであって、前記所定の計算グラフは、所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記所定のデータに応じて特定される前記関数を含む、前記取得すること
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行させるプログラム。
【請求項11】
情報処理装置に含まれる1又は複数のプロセッサを含む情報処理装置であって、
前記1又は複数のプロセッサが、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得することであって、前記所定の計算グラフは、所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記所定のデータに応じて特定される前記関数を含む、前記取得すること
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行する情報処理装置。