(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-12-26
(45)【発行日】2023-01-10
(54)【発明の名称】情報処理方法、プログラム及び情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20221227BHJP
【FI】
G06N20/00
(21)【出願番号】P 2021176197
(22)【出願日】2021-10-28
【審査請求日】2021-10-28
【早期審査対象出願】
(73)【特許権者】
【識別番号】520040304
【氏名又は名称】窪田 望
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】窪田 望
【審査官】北川 純次
(56)【参考文献】
【文献】特表2021-518939(JP,A)
【文献】特開2020-166443(JP,A)
【文献】特開2020-166418(JP,A)
【文献】特開2020-166397(JP,A)
【文献】特開2020-140466(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/02-3/08
(57)【特許請求の範囲】
【請求項1】
情報処理装置に備えられるプロセッサが、
データ拡張可能な複数の関数が重みを用いて結合された結合関数を含む任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、
所定の学習を行う学習モデルに前記拡張データを入力して学習を行うことであって、前記結合関数の重みを段階的に変化させながら生成された各拡張データを用いて学習を行うことを含む、前記学習を行うこと、
前記学習の学習結果が所望の結果を示す境界の重みを特定し、前記境界の重みと前記対象データに関する情報とを関連付けること、
を実行する、情報処理方法。
【請求項2】
情報処理装置に備えられるプロセッサが、
整数階又は分数階の微分又は積分可能な関数を含む任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、
所定の学習を行う学習モデルに前記拡張データを入力して学習を行うことであって、前記関数の整数階又は分数階を段階的に変化させながら生成された各拡張データを用いて学習を行うことを含む、前記学習を行うこと、
前記学習の学習結果が所望の結果を示す境界の整数階又は分数階を特定し、前記境界の整数階又は分数階と前記対象データに関する情報とを関連付けること、
を実行する、情報処理方法。
【請求項3】
情報処理装置に備えられるプロセッサに、
データ拡張可能な複数の関数が重みを用いて結合された結合関数を含む任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、
所定の学習を行う学習モデルに前記拡張データを入力して学習を行うことであって、前記結合関数の重みを段階的に変化させながら生成された各拡張データを用いて学習を行うことを含む、前記学習を行うこと、
前記学習の学習結果が所望の結果を示す境界の重みを特定し、前記境界の重みと前記対象データに関する情報とを関連付けること、
を実行させる、プログラム。
【請求項4】
プロセッサを含む情報処理装置であって、
前記プロセッサが、
データ拡張可能な複数の関数が重みを用いて結合された結合関数を含む任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、
所定の学習を行う学習モデルに前記拡張データを入力して学習を行うことであって、前記結合関数の重みを段階的に変化させながら生成された各拡張データを用いて学習を行うことを含む、前記学習を行うこと、
前記学習の学習結果が所望の結果を示す境界の重みを特定し、前記境界の重みと前記対象データに関する情報とを関連付けること、
を実行する、情報処理装置。
【請求項5】
情報処理装置に備えられるプロセッサに、
整数階又は分数階の微分又は積分可能な関数を含む任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、
所定の学習を行う学習モデルに前記拡張データを入力して学習を行うことであって、前記関数の整数階又は分数階を段階的に変化させながら生成された各拡張データを用いて学習を行うことを含む、前記学習を行うこと、
前記学習の学習結果が所望の結果を示す境界の整数階又は分数階を特定し、前記境界の整数階又は分数階と前記対象データに関する情報とを関連付けること、
を実行させる、プログラム。
【請求項6】
プロセッサを含む情報処理装置であって、
前記プロセッサが、
整数階又は分数階の微分又は積分可能な関数を含む任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、
所定の学習を行う学習モデルに前記拡張データを入力して学習を行うことであって、前記関数の整数階又は分数階を段階的に変化させながら生成された各拡張データを用いて学習を行うことを含む、前記学習を行うこと、
前記学習の学習結果が所望の結果を示す境界の整数階又は分数階を特定し、前記境界の整数階又は分数階と前記対象データに関する情報とを関連付けること、
を実行する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、プログラム及び情報処理装置に関する。
【背景技術】
【0002】
近年、敵対的生成ネットワークを用いて生成される画像を用いて訓練データを拡張する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】中国特許出願公開第111401445号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、データ拡張に関し、学習モデルに入力する際に所望の結果(例えば正しい分類結果又は正しくない分類結果)を得られるようにデータ拡張を行いたいというニーズがある。しかしながら、任意のデータ拡張アルゴリズムを用いてデータ拡張をしても、ユーザが所望するデータとは異なるデータになってしまうケースがある。例えば、Goodを示す親指アップの画像の天地が逆になると、Badを示す親指ダウンの画像になり、意味が全く逆になり、所望の結果が得られない。
【0005】
そこで、本発明は、所定のデータに対して、有意なデータ拡張アルゴリズムを提供可能にする情報処理方法、プログラム及び情報処理装置を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様に係る情報処理方法は、情報処理装置に備えられるプロセッサが、任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、所定の学習を行う学習モデルに前記拡張データを入力して学習を行うこと、前記学習の学習結果が所望の結果を示す場合、前記対象データに関する情報と、前記任意のデータ拡張アルゴリズムに関する情報とを関連付けること、を実行する。
【発明の効果】
【0007】
本発明によれば、所定のデータに対して、有意なデータ拡張アルゴリズムを提供可能にする情報処理方法、プログラム及び情報処理装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係るシステム構成の一例を示す図である。
【
図2】実施形態に係る情報処理装置の物理的構成の一例を示す図である。
【
図3】実施形態に係るサーバの処理ブロックの一例を示す図である。
【
図4】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
【
図5】実施形態に係る関数ライブラリの一例を示す図である。
【
図6】実施形態に係る対象データに関する情報及び有意なデータ拡張アルゴリズムに関する情報の関連データの一例を示す図である。
【
図7】実施形態に係る所定範囲の例を示す図である。
【
図8】実施形態に係るサーバの処理例を示すフローチャートである。
【
図9】実施形態に係る情報処理装置20の処理例を示すフローチャートである。
【発明を実施するための形態】
【0009】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0010】
<システム構成>
図1は、実施形態に係るシステム構成の一例を示す図である。
図1に示す例では、サーバ10と、各情報処理装置20A、20B、20C、20Dとが、ネットワークを介してデータ送受信可能なように接続される。情報処理装置を個別に区別しない場合は情報処理装置20とも表記する。
【0011】
サーバ10は、データを収集、分析可能な情報処理装置であり、1つ又は複数の情報処理装置から構成されてもよい。情報処理装置20は、スマートフォン、パーソナルコンピュータ、タブレット端末、サーバ、コネクティッドカーなど、機械学習を実行可能な情報処理装置である。なお、情報処理装置20は、脳波をセンシングする侵襲型又は非侵襲型の電極に直接的又は間接的に接続されており、脳波データを解析、送受信可能な装置でもよい。
【0012】
図1に示すシステムでは、サーバ10は、データごとに、ユーザが所望するデータを得られるデータ拡張アルゴリズム(以下「有意なデータ拡張アルゴリズム」ともいう。)を関連付ける。このため、サーバ10は、様々なデータ拡張アルゴリズムを用いて対象データを拡張し、拡張されたデータ(以下「拡張データ」ともいう。)に対して所定の学習を行い、学習結果を取得する。この学習結果が所望の学習結果であれば、サーバ10は、対象データとデータ拡張アルゴリズムとを関連付ける。
【0013】
例えば、対象データを含む訓練データを増やして学習モデルの精度を高めたいユーザは、データ拡張アルゴリズムを用いて対象データから拡張データを生成し、訓練データを増やす。このとき、教師あり学習が行われる場合、拡張データすべてに対してラベルを付与するアノテーションを行うことになり、ユーザの手間が増大してしまう。
【0014】
一方で、人手によるラベルが付与された対象データに対し、対象データの特徴の意味を変えずにデータを改変して拡張させることができれば、拡張データに対して対象データと同じラベルを付与することが可能になる。よって、本開示の技術では、対象データの学習結果に基づき、ユーザが所望する学習結果となるような有意なデータ拡張アルゴリズムを見つけ出し、対象データに有意なデータ拡張アルゴリズムを関連付ける。
【0015】
例えば、対象データを画像データとする場合、データ拡張アルゴリズムには、反転、輝度変更、回転、平行移動、合成などの処理があり、これらのアルゴリズムは全て数式化して関数として表現することが可能である。数式化された関数は、重みを用いて線形結合したり、整数階又は分数階の微積分を行ったりすることで、データ拡張アルゴリズムを増やしたり、数式を複雑化したりすることが可能になる。その結果、データ拡張アルゴリズムにより生成される拡張データの量を増やすことでき、学習モデルの精度向上に寄与することができる。以下、本実施形態の各装置の構成について説明する。
【0016】
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10の物理的構成の一例を示す図である。情報処理装置10は、演算部に相当するCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【0017】
本実施形態では、情報処理装置10が一台のコンピュータで構成される場合について説明するが、情報処理装置10は、複数のコンピュータ又は複数の演算部が組み合わされて実現されてもよい。また、
図1で示す構成は一例であり、情報処理装置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が学習プログラムを実行することにより、後述する
図2を用いて説明する様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、情報処理装置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、学習部12、関連付け部13、出力部14、拡張部15、及び記憶部16を備える。情報処理装置10は、汎用のコンピュータで構成されてもよい。
【0027】
取得部11は、情報処理装置20から、任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得する。例えば、取得部11は、対象データが画像データの場合、反転、輝度変更、回転、平行移動、合成などのデータ拡張アルゴリズムを用いて対象データが拡張された1又は複数の拡張データを取得する。
【0028】
また、取得部11は、情報処理装置20から対象データを取得してもよい。この場合、情報処理装置20から取得された対象データが、後述する拡張部15により任意のデータ拡張アルゴリズムを用いてデータ拡張され、取得部11は、拡張部15により拡張された拡張データを取得してもよい。
【0029】
対象データは、学習対象データであり、例えば、画像データ、系列データ及びテキストデータの少なくともいずれかを含む。ここで、画像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株価のデータなどを含む。
【0030】
対象データが画像データである場合、データ拡張アルゴリズムは、例えば、所定の敵対的サンプル生成アルゴリズムを含んでもよい。具体例としては、データ拡張アルゴリズムは、公知のFGSM(Fast Gradient Sign Method)、DeepFool、IGSM(Iterative Gradient Sign Method)、C&W(Carlini & Wagner)、JSMA(Jacobian-Based Saliency Map Approach)のいずれか1つ、又は任意の組み合わせによるアルゴリズムでもよい。また、データ拡張アルゴリズムは、1ピクセルアタックを行うアルゴリズムでもよく、上述した方法で生成された画像データにさらに、1ピクセルアタックを行ってもよい。また、データ拡張アルゴリズムは、その他、GANs(Generative adversarial networks)などの敵対的生成ネットワークを用いて敵対的な画像を生成するアルゴリズムでもよい。なお、上述した例を含む公知の敵対的サンプル生成アルゴリズムは、将来的に公知になる敵対的サンプル生成アルゴリズムを含んでもよい。
【0031】
また、対象データが画像データである場合、データ拡張アルゴリズムは、画像データの少なくとも一部に変更を加える所定のアルゴリズムを含んでもよい。具体例としては、データ拡張アルゴリズムは、以下の少なくとも1つの公知の編集方法を含む。データ拡張が行われる際、いずれの編集方法について、所定量だけ編集が加えられるように設定されていればよい。
・水平及び/又は垂直に画像をシフトする
・水平方向及び/又は垂直方向に画像を反転させる
・回転させる (回転角度はランダム)
・明度を変える
・ズームイン又はズームアウトする
・画像の一部をくり抜く、削除する
・背景色を変える
・背景を置き換える
・Mixup又はCutMix
・色空間モデルを変更する
【0032】
また、対象データが系列データである場合、データ拡張アルゴリズムは、例えば周波数変換を行ってフィルタリングする手法を含む。対象データがテキストデータの場合、例えば形態素解析や、TF/IDFなどを用いて出現頻度の低いもの又は高いものをカットする手法を含む。その他、データ拡張アルゴリズムは、対象データに改変を加えるアルゴリズムを含んでもよい。
【0033】
これにより、データ拡張アルゴリズムを用いて事前に対象データを効率よく拡張することが可能になる。また、上述したアルゴリズムを用いれば自動的に学習データを拡張することができ、学習データの拡張処理を容易にすることが可能である。また、データ拡張の目的に応じて、データ拡張アルゴリズムを取捨選択してもよい。例えば、敵対的サンプル生成アルゴリズムをまとめた第1関数ライブラリと、画像編集アルゴリズムをまとめた第2関数ライブラリとが生成されると、ユーザは関数ライブラリを指定することで目的に応じたデータ拡張を行うことができる。具体的には、敵対的生成アルゴリズムに対抗するための学習モデルが生成される場合は、第1関数ライブラリが選択されればよく、多少対象データに改変を加えて訓練データを増やす場合は、第2関数ライブラリが選択されるとよい。
【0034】
学習部12は、所定の学習を行う学習モデル12aに、取得部11により取得された拡張データを入力して学習を行う。学習の種類は、対象データ、解くべき問題などによって適宜決定されればよい。例えば、学習モデル12aは、弱学習器として用いられる学習モデルであり、決定木分類モデル、K-means分類モデル、ロジスティック回帰分類モデル、統計モデルなどのいずれかの学習モデルを適用可能である。また、学習部12は、学習モデル12aとして、バギングと決定木を利用したランダムフォレストや、ブースティングと決定木を利用したXGboost、比較的単純なニューラルネットワークを用いる学習モデルなどのいずれかも適用可能である。
【0035】
また、学習部12は、強学習器として適用可能である、ニューラルネットワークを用いる所定の学習モデルであってもよい。所定の学習モデル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生成モデル等のいずれかでもよい。
【0036】
また、学習モデル12aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、学習部12は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
【0037】
例えば、学習部12は、対象データを画像データとし、学習モデル12aをCNNとする場合、画像内の対象物が正しく分類されるか否かの分類問題を解くとする。学習部12は、画像データを学習モデル12aに入力し、画像データ内の対象物を正しく認識できるか否かを学習結果として出力する。
【0038】
関連付け部13は、学習部12の学習の学習結果が所望の結果を示す場合、対象データに関する情報と、任意のデータ拡張アルゴリズムに関する情報とを関連付ける。例えば、分類問題の学習結果が出力される場合、拡張データの分類結果が正しい分類を示せば、関連付け部13は、対象データの特徴情報と、正しい分類結果を示す拡張データを生成したデータ拡張アルゴリズムの識別情報とを関連付ける。なお、拡張データの分類結果が正しくない分類を示す場合に、関連付け処理が行われてもよい。また、有意なデータ拡張アルゴリズムは、分類結果(正解又は不正解など)とともに対象データに関連付けられてもよい。
【0039】
以上の処理によれば、サーバ10は、様々な対象データに対して有意なデータ拡張アルゴリズムを関連付けることができ、例えば、生成される拡張データには対象データと同じラベルを付与することができ、アノテーションの負担を減らすことが可能になる。また、関連付け部13は、拡張データに対して、対象データのラベルを自動で関連付ける(付与する)ことも可能になる。
【0040】
出力部14は、所定のリクエストに応じて、対象データに関する情報とデータ拡張アルゴリズムに関する情報とが関連付けられた関連データや、対象データに対応する有意なデータ拡張アルゴリズムに関する情報や、データ拡張アルゴリズムに対応する対象データに関する情報などを情報処理装置20などに出力する。
【0041】
拡張部15は、任意のデータ拡張アルゴリズムを用いて対象データの拡張を行う。例えば、拡張部15は、上述したデータ拡張アルゴリズムのうちのいずれかを用いて、画像データや系列データなどの対象データの拡張データを生成する。また、拡張部15は、データ拡張アルゴリズムの関数のパラメータを変更して、複数の拡張データを生成してもよい。なお、拡張部15は、必ずしもサーバ10に必要な構成ではない。
【0042】
記憶部16は、1又は複数のデータ拡張アルゴリズム16aと、所定数以上のデータが集まった関連データ16b(例えば
図6)を記憶する。データ拡張アルゴリズム16aは、後述する
図5に示すように、関連するデータ拡張アルゴリズムの集合である関数ライブラリとして記憶されてもよい。
【0043】
また、任意のデータ拡張アルゴリズムは、データ拡張可能な複数の関数が重みを用いて結合された結合関数を含んでもよい。例えば、結合関数は、各関数にそれぞれ重みを付与して線形結合し、各重みの合計は1とする。このとき、拡張部15は、各重みを所定基準に従って順に変更していくとする。
【0044】
この場合、学習部12は、結合関数の重みを段階的に変化させながら生成された各拡張データを用いて学習を行うことを含んでもよい。学習部12は、重みが変更されるごとに、変更後の重みを有する結合関数を用いて生成された拡張データを学習モデル12aに入力して学習結果を得る。
【0045】
重みが変更されるごとに学習結果が得られると、関連付け部13は、学習の学習結果が所望の結果を示す境界の重みを特定し、境界の重みと対象データに関する情報とを関連付けることを含んでもよい。例えば、境界の重みとは、順に重みが変更されるときに、分類結果が第1結果(例、正解)を示す重みから、第1結果とは異なる第2結果(例、不正解)を示す重みに切り替わる前の重みのことをいう。具体例としては、W1(複数の重みの集合でもよい)、W2、W3と重みを順に変えていくときに、Wnまでは分類結果は正解を示すが、Wn+1で分類結果が不正解となる場合、Wnを境界の重みとする。なお、境界の重みは、データ拡張アルゴリズムに関する情報の一例である。
【0046】
以上の処理によれば、データ拡張アルゴリズムに結合関数が含まれる場合、対象データごとに、結合関数の重みの境界値を見出すことができ、その対象データについては、境界値まで重みを適宜変更することで様々な結合関数を生成することができ、これらの有意な結合関数を用いて、拡張データを増やすことが可能になる。
【0047】
また、任意のデータ拡張アルゴリズムは、整数階又は分数階の微分又は積分可能な関数を含んでもよい。例えば、拡張部15は、所定の関数に対して、整数階微分を所定階数行い、次に、分数階微分を所定階数行い、さらに、微分を積分に変えて様々な関数を生成してもよい。
【0048】
この場合、学習部12は、関数の整数階又は分数階を段階的に変化させながら生成された各拡張データを用いて学習を行うことを含んでもよい。例えば、学習部12は、整数階又は分数階の微分階数又は積分階数が段階的に変更されるごとに、変更後の関数を用いて生成された拡張データを学習モデル12aに入力して学習結果を得る。
【0049】
整数階又は分数階の微分又は積分が変更されるごとに学習結果が得られると、関連付け部13は、所定の学習の学習結果が所望の結果を示す境界の整数階又は分数階を特定し、境界の整数階又は分数階と対象データに関する情報とを関連付けることを含んでもよい。例えば境界の整数階又は分数階とは、階数が順に変更されるとき、分類結果が第1結果(例、正解)を示す階数から、第1結果とは異なる第2結果(例、不正解)を示す階数に切り替わるときの階数をいう。具体例としては、N1(階数)、N2、N3と階数を順に変えていくときに、Nnまでは分類結果は正解を示すが、Nn+1で分類結果が不正となる場合、Nnを境界の階数とする。なお、境界の階数は、データ拡張アルゴリズムに関する情報の一例である。
【0050】
以上の処理によれば、データ拡張アルゴリズムに微分又は積分可能な関数が含まれる場合、対象データごとに、微分又は積分の階数の境界値を見出すことができ、その対象データについては、境界値まで階数を適宜変更することで様々な関数を生成することができ、これらの有意な関数を用いて、拡張データを増やすことが可能になる。
【0051】
また、対象データは、所定のデータセットの中の少なくとも一つのデータでもよい。この場合、関連付け部13は、所定のデータセットの特徴情報と、任意のデータ拡張アリゴリズムに関する情報とを関連付けることを含んでもよい。例えば、データセットの特徴情報は、画像データ、系列データなどのジャンルやカテゴリに関する情報や、あるカテゴリの中での種類に関する情報などを含む。種類に関する情報は、例えば、画像データの場合、動物、車両、生体情報などを含み、系列データの場合、音、株価などを含む。なお、データセットの特徴情報は、対象データに関する情報の一例である。
【0052】
以上の処理によれば、データセットの特徴情報と、有意なデータ拡張アルゴリズムに関する情報とを関連付けておくことで、あるデータセットの特徴が取得されると、そのデータセットに対する有意なデータ拡張アルゴリズムを特定することができるようになる。また、データセットと、1又は複数の有意なデータ拡張アルゴリズムとを含むライブラリの生成が可能になる。
【0053】
また、関連付け部13は、学習部12の学習結果が、所望の結果であることを示す数値で表される場合、数値が所望の結果に関する所定範囲に入る任意のデータ拡張アルゴリズムに関する情報と、対象データに関する情報とを関連付けることを含んでもよい。例えば、所定の学習が分類問題である場合、シグモイド関数などを用いて学習結果を0から1の間の数値で表現することが可能であり、例えば、0.5以上であれば正解を示し、0.5未満であれば不正解を示すなどの基準を設けることが可能である。この場合、例えば、関連付け部13は、学習結果が0.7~1.0の範囲に入る場合に、その拡張データを生成したデータ拡張アルゴリズムに関する情報と、対象データに関する情報とを関連付けてもよい。なお、関連付け部13は、学習結果が所定範囲に入る場合、この所定範囲内の境界となる上述した重みや階数を、対象データに関する情報とに関連付けてもよい。
【0054】
以上の処理によれば、関連付けの基準をより明確にすることが可能であり、また、所定範囲を適宜変更することで、ユーザが所望する学習結果となる拡張データを生成したデータ拡張アルゴリズムと、対象データとを関連付けることが可能となる。
【0055】
図4は、実施形態に係る情報処理装置20の処理ブロックの一例を示す図である。情報処理装置20は、出力部21、取得部22、拡張部23、学習部24、及び記憶部25を備える。情報処理装置20は、汎用のコンピュータで構成されてもよい。
【0056】
出力部21は、対象データに関する情報を他の情報処理装置に出力する。例えば、出力部21は、学習対象データをサーバ10に出力する。なお、出力部21は、学習対象データの特徴情報をサーバ10に出力してもよい。
【0057】
取得部22は、他の情報処理装置により、複数のデータ拡張アルゴリズムの中から、対象データに関する情報に関連付けられたデータ拡張アルゴリズムが特定され、特定されたデータ拡張アルゴリズムに関する情報を他の情報処理装置から取得する。例えば、取得部22は、サーバ10により、学習対象データに関する情報に基づき特定されたデータ拡張アルゴリズムに関する情報をサーバ10から取得する。データ拡張アルゴリズムに関する情報は、データ拡張アルゴリズム自体でもよいし、データ拡張アルゴリズムを識別する情報でもよい。
【0058】
拡張部23は、対象データに対し、他の情報処理装置により特定されたデータ拡張アルゴリズムに関する情報に基づくデータ拡張アルゴリズムを適用してデータ拡張を行う。例えば、拡張部23は、学習対象データを、サーバ10により特定されたデータ拡張アルゴリズムに学習対象データを適用し、拡張データを生成する。また、拡張部23は、サーバ10の拡張部15と同様の機能を有する。
【0059】
学習部23は、所定の学習を行う学習モデル23aに学習対象データ及び拡張データを入力して学習を行う。学習部23は、学習後の学習結果をサーバ10にフィードバックしてもよい。学習結果は、例えば、調整後のハイパーパラメータや、学習精度などを含んでもよい。学習部23は、対象データの種類、及び/又は、解くべき問題に応じて、学習モデル23aを選択してもよい。
【0060】
また、所定の学習モデル23aは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル23aは、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生成モデル等のいずれかでもよい。
【0061】
また、学習モデル23aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、学習部23は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
【0062】
記憶部25は、学習部23に関するデータを記憶する。記憶部25は、学習対象データや、拡張データ、サーバ10から取得したデータ、学習途中のデータなどを含むデータ25aを記憶する。
【0063】
これにより、情報処理装置20は、対象データに対し、有意なデータ拡張アルゴリズムがサーバ10から通知されることで、対象データと同様の特徴を有する拡張データを生成することができる。また、情報処理装置20は、拡張データを用いることで訓練データの数を効率よく増やすことができ、学習モデルの精度を向上させることが可能になる。
【0064】
<データ例>
図5は、実施形態に係る関数ライブラリの一例を示す図である。
図5に示す例では、関数の識別情報(ID)ごとに、データ拡張アルゴリズムの関数が関連付けられている。例えば、関数IDが「A001」には、シフト変換を行う関数が対応付けられ、関数ID「A002」には、拡大又は縮小を行う関数が対応付けられてもよい。また、関数IDに、関数のグループが対応付けられてもよい。例えば、画像の編集に関する関数群や、敵対的生成アルゴリズムなどである。また、関数IDに、上述した結合関数や、整数階又は分数階の微分又は積分される対象の関数が関連付けられてもよい。また、対象データの種類ごとに、対応するデータ拡張アルゴリズムを含む関数ライブラリがあってもよい。
【0065】
サーバ10の拡張部15又は情報処理装置20の拡張部23は、
図5に示す関数ライブラリに含まれる関数の中から所定の関数を選択して拡張データを生成する。
【0066】
図6は、実施形態に係る対象データに関する情報及び有意なデータ拡張アルゴリズムに関する情報の関連データの一例を示す図である。
図6に示す例では、データの種類を示す「データA」に、関数ID「A001」、「A003」などの複数の有意なデータ拡張アルゴリズムが関連付けられている。また、データの種類を示す「データE」には、関数ID「A0010」の各重みの境界値(W
1,W
2,・・・)が関連付けられており、データの種類を示す「データH」には、関数ID「A0020」の整数階又は分数階の境界値(N
1)が関連付けられている。
【0067】
<所定範囲の活用例>
図7は、実施形態に係る所定範囲の例を示す図である。
図7に示す例では、学習部12によりシグモイド関数を用いて学習結果が出力される。学習結果が1.0に近い値の方が、分類精度が高いとする。このとき、所定範囲R1は、分類精度が高い学習結果を自動で抽出することを可能にし、この所定範囲R1に含まれる拡張データには、対象データと同じ正解ラベルを自動で付与することが可能になる。なお、所定範囲R1は、0からの所定範囲でもよく、この場合は不正解のラベルが拡張データに付与される。
【0068】
所定範囲R2は、中央値の0・5を含む所定範囲であり、学習による分類が適切に行われていない可能性がある。この所定範囲R2に含まれる拡張データが抽出され、抽出された拡張データに対しては、人手がラベル付けを行ってもよい。例えば、誤って分類された拡張データを生成したデータ拡張アルゴリズムは、対象データの関連付け対象から外してもよい。これにより、誤分類されやすい拡張データを生成するデータ拡張アルゴリズムを、関連付け対象から外すことが可能になる。
【0069】
<処理例>
図8は、実施形態に係るサーバ10の処理例を示すフローチャートである。ステップS102において、サーバ10の取得部12は、任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得する。また、サーバ10の取得部12は、情報処理装置20から、対象データを受信してもよい。サーバ10は、対象データを受信する場合は、拡張部15により拡張データを生成し、取得部12が、拡張部15により拡張された拡張データを取得してもよい。
【0070】
ステップS104において、サーバ10の学習部12は、所定の学習を行う学習モデル12aに拡張データを入力して学習を行う。所定の学習は、対象データによって適宜選択されてもよい。例えば、対象データが画像データの場合、所定の学習は、分類問題を解く学習であり、対象データが系列データの場合、所定の学習は、クラスタリングを行う学習などである。
【0071】
ステップS106において、サーバ10の関連付け部13は、学習の学習結果が所望の結果を示す場合、対象データに関する情報と、任意のデータ拡張アルゴリズムに関する情報とを関連付ける。例えば、所望の結果は、例えば、対象データに付与されたラベルと同じ分類に分類された場合、異なる分類に分類された場合、又は誤分類されやすい所定範囲に分類された場合などのいずれかである。
【0072】
以上、実施形態に係るサーバ10の処理によれば、データごとに有意なデータ拡張アルゴリズムを関連付けておくことにより、所定のデータに対して、有意なデータ拡張アルゴリズムを提供することが可能になる。
【0073】
次に、ユーザ側の情報処理装置20の処理について説明する。
図9は、実施形態に係る情報処理装置20の処理例を示すフローチャートである。ステップS202において、情報処理装置20の出力部21は、対象データに関する情報を他の情報処理装置に出力する。例えば、出力部21は、学習対象データ又は学習対象データの特徴情報をサーバ10に出力する。
【0074】
ステップS204において、情報処理装置20の取得部22は、他の情報処理装置により、複数のデータ拡張アルゴリズムの中から、対象データに関する情報に関連付けられたデータ拡張アルゴリズムが特定され、特定されたデータ拡張アルゴリズムに関する情報を他の情報処理装置から取得する。例えば、取得部22は、対象データに関連付けられた有意なデータ拡張アルゴリズムに関する情報を、サーバ10から取得する。
【0075】
ステップS206において、情報処理装置20の拡張部23は、対象データに対し、サーバ10により特定されたデータ拡張アルゴリズムに関する情報に基づくデータ拡張アルゴリズムを適用してデータ拡張を行う。例えば、拡張部23は、有意なデータ拡張アルゴリズムに対象データを入力して拡張データを生成する。
【0076】
また、所望の学習結果が正解の学習結果の場合、拡張部23は、拡張データに、対象データのラベルを付与してもよい。所望の学習結果が不正解の結果の場合、拡張部23は、拡張データに、対象データのラベルとは異なるラベル(例、不正解レベル)を付与してもよい。
【0077】
情報処理装置10の学習部24は、対象データ及び拡張データを訓練データとして、教師あり学習を行う。学習部24の学習モデル24aは、対象データや目的に応じて適宜適切なモデルが設定されればよく、訓練データの数を増やすことで、学習モデル24aの精度向上を図ることができる。
【0078】
以上、実施形態に係る情報処理装置10によれば、対象データに対して有意なデータ拡張アルゴリズムを知ることができ、所望の拡張データを生成するデータ拡張を行うことができる。その結果、情報処理装置10は、訓練データを効率よく増やすことができ、学習モデルの精度を向上させることが可能になる。また、ラベル付けに伴うユーザの手間を省くことが可能になる。
【0079】
以上、実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【0080】
上記実施形態では、情報処理装置10の学習部24は、他の装置に実装されてもよく、この場合、情報処理装置10は、拡張データを他の装置に送信してもよい。
【符号の説明】
【0081】
1…情報処理システム、10…情報処理装置、10a…CPU、10b…RAM、10c…ROM、10d…通信部、10e…入力部、10f…表示部、11…取得部、12…学習部、12a…学習モデル、13…関連付け部、14…出力部、15…拡張部、16…記憶部、21…出力部、22…取得部、23…拡張部、24…学習部、24a…学習モデル、25…記憶部
【要約】
【課題】所定のデータに対して、有意なデータ拡張アルゴリズムを提供すること。
【解決手段】情報処理方法は、情報処理装置に備えられるプロセッサが、任意のデータ拡張アルゴリズムを用いて対象データが拡張された拡張データを取得すること、所定の学習を行う学習モデルに拡張データを入力して学習を行うこと、学習の学習結果が所望の結果を示す場合、対象データに関する情報と、任意のデータ拡張アルゴリズムに関する情報とを関連付けること、を実行する。
【選択図】
図8