(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】学習プログラム、学習方法、および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20231129BHJP
【FI】
G06N20/00
(21)【出願番号】P 2020050214
(22)【出願日】2020-03-19
【審査請求日】2022-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】丸橋 弘治
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2018-055580(JP,A)
【文献】特開2019-212155(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、
生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、
生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項2】
前記共通変換情報を生成する処理は、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記共通変換情報を生成する、ことを特徴とする請求項1に記載の学習プログラム。
【請求項3】
前記更新する処理は、
生成した前記変換データに基づいて、さらに、前記共通変換情報を更新する、ことを特徴とする請求項1に記載の学習プログラム。
【請求項4】
前記類似度は、前記試験データにおける入力値を並べた第1のベクトルと、前記照合データにおける入力値を並べた第2のベクトルとの内積により表現される、ことを特徴とする請求項1~3のいずれか一つに記載の学習プログラム。
【請求項5】
複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、
生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、
生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項6】
複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、
生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、
生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習プログラム、学習方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、ニューラルネットワーク(Neural Network)を利用した機械学習の技術がある。例えば、情報処理装置は、ニューラルネットワークの入力層の複数のノードのそれぞれに、入力データに含まれる複数の入力値のそれぞれを入力し、ニューラルネットワークの出力データと教師データとの出力誤差に基づいて、ニューラルネットワークを学習する。
【0003】
先行技術としては、例えば、ニューラルネットワークの入力層の複数のノードのそれぞれと、入力データに含まれる複数の入力値のそれぞれとの対応関係を変換する基準が、複数の基準値の配列で示された照合データを利用するものがある。例えば、情報処理装置は、照合データに基づく対応関係に従って、ニューラルネットワークに入力データに含まれる複数の入力値のそれぞれを入力し、ニューラルネットワークの出力データと教師データとの出力誤差に基づいて、ニューラルネットワークおよび照合データを更新する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、機械学習の学習精度の向上を図ることが難しい。例えば、ノードと入力値との対応関係を決定する際に、入力値が何の項目に関わる値であるかを考慮しなければ、ニューラルネットワークおよび照合データを精度よく更新していくことができない場合がある。
【0006】
1つの側面では、本発明は、機械学習の学習精度の向上を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する学習プログラム、学習方法、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、機械学習の学習精度の向上を図ることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる学習方法の一実施例を示す説明図である。
【
図2】
図2は、分類システム200の一例を示す説明図である。
【
図3】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、入力データ400の一例を示す説明図である。
【
図5】
図5は、照合データ500の一例を示す説明図である。
【
図6】
図6は、共通変換情報600の一例を示す説明図である。
【
図7】
図7は、個別変換情報700の一例を示す説明図である。
【
図8】
図8は、ニューラルネットワーク800の一例を示す説明図である。
【
図9】
図9は、情報処理装置100の機能的構成例を示すブロック図である。
【
図10】
図10は、情報処理装置100の動作例1の流れを示す説明図である。
【
図11】
図11は、情報処理装置100の動作例1の具体例を示す説明図(その1)である。
【
図12】
図12は、情報処理装置100の動作例1の具体例を示す説明図(その2)である。
【
図13】
図13は、動作例1における全体処理手順の一例を示すフローチャートである。
【
図14】
図14は、情報処理装置100の動作例2の流れを示す説明図(その1)である。
【
図15】
図15は、情報処理装置100の動作例2の流れを示す説明図(その2)である。
【
図16】
図16は、情報処理装置100の動作例2の具体例を示す説明図(その1)である。
【
図17】
図17は、情報処理装置100の動作例2の具体例を示す説明図(その2)である。
【
図18】
図18は、動作例2における全体処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる学習プログラム、学習方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる学習方法の一実施例)
図1は、実施の形態にかかる学習方法の一実施例を示す説明図である。情報処理装置100は、学習器を利用した機械学習を実現するコンピュータである。情報処理装置100は、例えば、サーバやPC(Personal Computer)などである。学習器は、例えば、ニューラルネットワークである。
【0012】
ニューラルネットワークは、入力層と中間層と出力層とを有する。ニューラルネットワークは、中間層を複数有する場合がある。入力層と中間層と出力層との各層は、1以上のノードを有する。ノードは、自ノードに入力された値に所定の処理を実行し、所定の処理により得られた値を出力する。
【0013】
ニューラルネットワークは、例えば、入力データを分類するために利用される。入力データは、1以上の項目のそれぞれの項目の項目値と入力値との組み合わせを複数含む。ニューラルネットワークは、入力データに含まれる入力値が、入力層のノードに入力されたことに応じて、入力データを分類した結果を、出力層の出力値により表現する。
【0014】
従来、ニューラルネットワークを利用した機械学習では、入力データと、入力データの正しい分類結果を示す教師データとを対応付けた学習データを用いて、ニューラルネットワークが学習される。例えば、情報処理装置は、ニューラルネットワークに入力データを入力し、ニューラルネットワークの出力データと教師データとを比較して得られた出力誤差から、誤差逆伝搬により入力誤差を算出する。そして、入力誤差に基づきニューラルネットワークの学習が実行され、ニューラルネットワークの精度向上を図られる。
【0015】
しかしながら、従来では、ニューラルネットワークを精度よく学習することが難しい場合がある。例えば、入力データに含まれる複数の入力値のそれぞれと、ニューラルネットワークの入力層の複数のノードのそれぞれとの対応関係が考慮されず、ニューラルネットワークを精度よく学習することができないことがある。
【0016】
具体的には、入力データに含まれる1以上の項目値が示す人や物の関係性が、入力データを分類する精度に影響を与える場合がある。この場合、人や物の関係性を考慮して、ニューラルネットワークを学習することが好ましい。従来では、入力値が人や物のどのような関係性に関わるかを考慮せず、入力値とノードとの対応関係を調整しないため、ニューラルネットワークを精度よく学習することができない。
【0017】
これに対し、学習データの他に、照合データを用いて、ニューラルネットワークを学習する手法が考えられる。照合データは、ニューラルネットワークの入力層の複数のノードのそれぞれと、入力データに含まれる複数の入力値のそれぞれとの対応関係を、入力データを分類する精度が向上するように変換する基準を示すためのデータである。
【0018】
上記手法は、具体的には、照合データに基づいて、入力データに含まれる複数の入力値のそれぞれの、ニューラルネットワークの入力層の複数のノードのそれぞれとの対応関係を変換した変換データを生成する。次に、上記手法は、変換データに含まれる複数の入力値のそれぞれを、ニューラルネットワークの入力層の複数のノードのそれぞれに入力する。そして、上記手法は、ニューラルネットワークの出力データと教師データとを比較して得られた出力誤差から、誤差逆伝搬により入力誤差を算出し、入力誤差に基づきニューラルネットワークを学習すると共に、照合データを学習し、照合データの精度向上を図る。
【0019】
ここで、上記手法でも、ニューラルネットワークおよび照合データを精度よく学習することが難しい場合がある。例えば、入力値とノードとの対応関係を変換する際、入力値が、いずれの項目値に関わるかが考慮されず、ニューラルネットワークおよび照合データを精度よく学習することができないことがある。
【0020】
具体的には、人や物の関係性の他、項目値が示す人や物そのものが、入力データを分類する精度に影響を与える場合がある。この場合、人や物の関係性の他、人や物そのものを考慮して、ニューラルネットワークおよび照合データの学習が行われることが好ましい。上記手法は、入力値がいずれの人や物に関わるかを考慮せずに、入力値とノードとの対応関係を変換する。この場合、入力値とノードとの対応関係は入力データ毎に変動しうるので、入力データ中の入力値がいずれの項目値に関わるかという観点は、学習において考慮されなくなる。そのため、ニューラルネットワークおよび照合データを精度よく学習することができない。
【0021】
一例として、一定期間のネットワークの通信ログから得られる入力データを、不正通信があったか否かに分類するニューラルネットワークを学習する場合が考えられる。入力データは、例えば、項目値として送信元アドレスと送信先アドレスとを含み、入力値として通信量を含む。
【0022】
この場合、入力値が特定の送信先アドレスに関わるか否かが、入力データを不正通信があったか否かに分類する精度に影響を与えることがある。このため、特定の送信先アドレスに関わる入力値が、ニューラルネットワークの入力層が有する特定のノードに入力されるように、入力値とノードとの対応関係を変換することが好ましい。一方で、入力値が、特定の送信先アドレスに関わるか否かを考慮しなければ、ニューラルネットワークおよび照合データを精度よく学習することができない。
【0023】
そこで、本実施の形態では、入力データに含まれる1以上の項目値が示す人や物の関係性の他、一部の項目値が示す人や物そのものも考慮して、ニューラルネットワークおよび照合データを学習することができる学習方法について説明する。
【0024】
図1において、情報処理装置100は、学習器110を更新する。学習器110は、入力ノードを有する。学習器110は、例えば、ニューラルネットワークである。入力ノードは、ニューラルネットワークの入力層のノードである。
【0025】
(1-1)情報処理装置100は、複数の項目のうち1以上の項目に対応付けて、複数のデータに共通で適用される共通変換情報120を生成する。データは、学習器110に入力される入力データである。データは、複数の項目のそれぞれの項目の項目値と入力値との組み合わせを複数含む。
【0026】
共通変換情報120は、データを学習器110に入力する場合において、データにおける入力値のそれぞれと、学習器110における入力ノードのそれぞれとの対応関係を変換するための情報である。共通変換情報120の一例は、例えば、
図6を用いて後述する。
図1の例では、情報処理装置100は、項目2に対応付けて、データ101,102に共通して適用される共通変換情報120を生成する。
【0027】
(1-2)情報処理装置100は、複数の項目のうち1以上の項目を除く残余の項目に対応付けて、データごとに個別で適用される個別変換情報130を生成する。個別変換情報130は、データを学習器110に入力する場合において、データにおける入力値のそれぞれと、学習器110における入力ノードのそれぞれとの対応関係を変換するための情報である。個別変換情報130の一例は、例えば、
図7を用いて後述する。
【0028】
情報処理装置100は、例えば、複数のデータのそれぞれのデータの対応関係を変換して得られる試験データと照合データとの類似度に基づいて、個別変換情報130を生成する。
図1の例では、情報処理装置100は、項目1に対応付けて、データ101,102に個別に適用される個別変換情報130を生成する。
【0029】
(1-3)情報処理装置100は、生成した共通変換情報120および個別変換情報130に基づいて、複数のデータのそれぞれのデータの対応関係を変換した変換データを生成する。
図1の例では、情報処理装置100は、データ101,102から変換データ103,104を生成する。
【0030】
(1-4)情報処理装置100は、生成した変換データに基づいて、照合データ140および学習器110を更新する。照合データ140の一例は、例えば、
図5を用いて後述する。
図1の例では、情報処理装置100は、生成した変換データ103,104を学習器110に入力し、誤差逆伝搬により入力誤差を算出し、入力誤差に基づいて照合データ140および学習器110を更新する。
【0031】
これにより、情報処理装置100は、学習精度の向上を図ることができる。情報処理装置100は、例えば、項目値が示す人や物そのものを考慮して、照合データ140および学習器110を更新することができる。
【0032】
情報処理装置100は、具体的には、共通変換情報120により、データ101,102に関して共通して、項目2の項目値「R1」の入力値が、入力ノード111,112のいずれかに対応付けられるようにすることができる。また、情報処理装置100は、同様に、項目2の項目値「R2」の入力値が、入力ノード113,114のいずれかに対応付けられるようにすることができる。このため、情報処理装置100は、項目2の項目値を考慮して照合データ140および学習器110を更新可能にすることができる。
【0033】
結果として、情報処理装置100は、学習精度の向上を図り、精度のよい照合データ140および学習器110を得ることができる。そして、情報処理装置100は、得られた照合データ140および学習器110を、分類対象のデータを分類するために利用可能にすることができる。また、情報処理装置100は、照合データ140および学習器110を利用して、分類対象のデータを分類する精度の向上を図ることができる。
【0034】
(分類システム200の一例)
次に、
図2を用いて、
図1に示した情報処理装置100を適用した、分類システム200の一例について説明する。
【0035】
図2は、分類システム200の一例を示す説明図である。
図2において、分類システム200は、情報処理装置100と、1以上のクライアント装置201とを含む。
【0036】
分類システム200において、情報処理装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0037】
情報処理装置100は、照合データおよびニューラルネットワークを有するコンピュータである。照合データの一例は、例えば、
図5を用いて後述する。ニューラルネットワークの一例は、例えば、
図8を用いて後述する。情報処理装置100は、入力データを含む学習データ、または、分類対象の入力データを、クライアント装置201から受信する。入力データの一例は、例えば、
図4を用いて後述する。
【0038】
情報処理装置100は、学習データに基づいて、共通変換情報および個別変換情報を生成し、ニューラルネットワークおよび照合データを更新する。共通変換情報の一例は、例えば、
図6を用いて後述する。個別変換情報の一例は、例えば、
図7を用いて後述する。
【0039】
情報処理装置100は、更新したニューラルネットワークおよび照合データに基づいて、分類対象の入力データを分類する。クライアント装置201は、入力データを含む学習データ、または、分類対象の入力データを情報処理装置100に送信するコンピュータである。クライアント装置201は、分類対象の入力データの分類結果を受信してもよい。
【0040】
(分類システム200の使用例(その1))
例えば、情報処理装置100は、一定期間内のネットワークの通信ログの統計データを、入力データとして利用する場合がある。情報処理装置100は、入力データを含む学習データに基づいて、不正行為がある入力データと、不正行為がない入力データとを分類するためのニューラルネットワーク、および、照合データを生成する。不正行為は、例えば、DDoS攻撃や標的型攻撃などである。また、情報処理装置100は、更新後のニューラルネットワークおよび照合データに基づいて、分類対象の入力データを分類する。
【0041】
(分類システム200の使用例(その2))
例えば、情報処理装置100は、一定期間内の金融機関の取引ログの統計データを、入力データとして利用する場合がある。情報処理装置100は、入力データを含む学習データに基づいて、不正行為がある入力データと、不正行為がない入力データとを分類するためのニューラルネットワーク、および、照合データを生成する。不正行為は、例えば、振込詐欺やマネーロンダリングなどである。また、情報処理装置100は、更新後のニューラルネットワークおよび照合データに基づいて、分類対象の入力データを分類する。
【0042】
ここでは、情報処理装置100が、入力データを含む学習データ、または、分類対象の入力データを、クライアント装置201から受信する場合について説明したが、これに限らない。例えば、情報処理装置100が、利用者の操作入力に基づき、入力データを含む学習データなどを受け付ける場合があってもよい。また、情報処理装置100が、接続された記録媒体から、入力データを含む学習データなどを取得する場合があってもよい。以下の説明では、上述した分類システム200の使用例(その1)を一例として説明する。
【0043】
(情報処理装置100のハードウェア構成例)
次に、
図3を用いて、情報処理装置100のハードウェア構成例について説明する。
【0044】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0045】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0046】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0047】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0048】
情報処理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、または、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0049】
(入力データ400の一例)
次に、
図4を用いて、入力データ400の一例について説明する。
【0050】
図4は、入力データ400の一例を示す説明図である。
図4において、入力データ400は、通信元ホストと、通信先ホストと、ポートと、量とのフィールドを有する。通信元ホストのフィールドには、通信元ホストを示すアドレスが設定される。通信先ホストのフィールドには、通信先ホストを示すアドレスが設定される。ポートのフィールドには、通信に用いたポートを示す番号が設定される。量のフィールドには、一定期間における通信ログにおける、通信元ホストから通信先ホストへのポートを介した通信量が設定される。入力データ400の各レコードに設定された通信量は、各レコードの位置に応じてニューラルネットワーク800の入力層のいずれかのノードに、入力値として対応付けられる。
【0051】
(照合データ500の一例)
次に、
図5を用いて、照合データ500の一例について説明する。
【0052】
図5は、照合データ500の一例を示す説明図である。
図5において、照合データ500は、通信元ホストと、通信先ホストと、ポートと、量とのフィールドを有する。各フィールドは、入力データ400の各フィールドと同様であるため、説明を省略する。照合データ500の各レコードに設定された通信量は、各レコードの位置に応じて、ニューラルネットワーク800の入力層のいずれかのノードに、入力値として対応付けられる。照合データ500は、入力データ400の各レコードの位置を入れ替えて、ニューラルネットワーク800の入力層のノードと入力値との対応関係を、どのように変換することが好ましいかの基準を示す。
【0053】
(共通変換情報600の一例)
次に、
図6を用いて、共通変換情報600の一例について説明する。
【0054】
図6は、共通変換情報600の一例を示す説明図である。
図6において、共通変換情報600は、入力データ400を、照合データ500に合わせて変換する際の、いずれかの項目に関する基準を示す。以下の説明では、かかる項目を「共通項目」と表記する場合がある。
図6の例では、共通変換情報600の行は、入力データ400の共通項目の項目値に対応する。共通変換情報600の列は、照合データ500の共通項目の項目値に対応する。数値「1」は、入力データ400と照合データ500との対応関係を示す。これにより、共通変換情報600は、入力データ400の共通項目の項目値が、照合データ500の共通項目の項目値の位置に相当するように、入力データ400を変換することを表現する。
【0055】
(個別変換情報700の一例)
次に、
図7を用いて、個別変換情報700の一例について説明する。
【0056】
図7は、個別変換情報700の一例を示す説明図である。
図7において、個別変換情報700は、入力データ400を、照合データ500に合わせて変換する際の、いずれかの項目に関する基準を示す。以下の説明では、かかる項目を「個別項目」と表記する場合がある。
図7の例では、個別変換情報700の行は、入力データ400の個別項目の項目値に対応する。個別変換情報700の列は、照合データ500の個別項目の項目値に対応する。数値「1」は、入力データ400と照合データ500との対応関係を示す。これにより、個別変換情報700は、入力データ400の個別項目の項目値が、照合データ500の個別項目の項目値の位置に相当するように、入力データ400を変換することを表現する。
【0057】
(ニューラルネットワーク800の一例)
次に、
図8を用いて、ニューラルネットワーク800の一例について説明する。
【0058】
図8は、ニューラルネットワーク800の一例を示す説明図である。
図8において、ニューラルネットワーク800は、入力層と、2つの中間層と、出力層とを有する。入力ベクトルは、入力データ400の入力値を並べたベクトルである。入力ベクトルは、入力層に入力される。ニューラルネットワーク800は、入力ベクトルが入力層に入力されたことに応じて、入力層、中間層、出力層のノードに規定された処理を実行し、出力層の出力値を並べた出力データを出力する。出力データは、分類結果を示す。
【0059】
(クライアント装置201のハードウェア構成例)
クライアント装置201のハードウェア構成例は、
図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0060】
(情報処理装置100の機能的構成例)
次に、
図9を用いて、情報処理装置100の機能的構成例について説明する。
【0061】
図9は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部900と、取得部901と、生成部902と、変換部903と、更新部904と、出力部905とを含む。
【0062】
記憶部900は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部900が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部900が、情報処理装置100とは異なる装置に含まれ、記憶部900の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0063】
取得部901~出力部905は、制御部の一例として機能する。取得部901~出力部905は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0064】
記憶部900は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部900は、例えば、入力データ400を記憶する。入力データ400は、複数の項目のそれぞれの項目の項目値と入力値との組み合わせを複数含む。記憶部900は、例えば、照合データ500を記憶する。記憶部900は、例えば、共通変換情報600と個別変換情報700とを記憶する。共通変換情報600と個別変換情報700とは、入力データ400における入力値のそれぞれと、ニューラルネットワーク800における入力層のノードのそれぞれとの対応関係を変換するための情報である。共通変換情報600は、複数の入力データ400に共通で適用される。個別変換情報700は、入力データ400に個別で適用される。記憶部900は、例えば、学習器を記憶する。学習器は、ニューラルネットワーク800である。以下の説明では、学習器が「ニューラルネットワーク800」である場合について説明する。
【0065】
取得部901は、各機能部の処理に用いられる各種情報を取得する。取得部901は、取得した各種情報を、記憶部900に記憶し、または、各機能部に出力する。また、取得部901は、記憶部900に記憶しておいた各種情報を、各機能部に出力してもよい。取得部901は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部901は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0066】
取得部901は、具体的には、入力データ400と、入力データ400の正しい分類結果を示す教師データとを対応付けた学習データを取得する。これにより、取得部901は、ニューラルネットワーク800および照合データ500を更新可能にすることができる。取得部901は、具体的には、ニューラルネットワーク800および照合データ500を更新した後、分類対象の入力データ400を取得してもよい。これにより、取得部901は、ニューラルネットワーク800を利用可能にすることができる。
【0067】
生成部902は、複数の項目のうち1以上の項目に対応付けて、共通変換情報600を生成する。1以上の項目は、共通項目である。共通項目は、利用者によって予め設定される。生成部902は、例えば、複数の入力データ400のそれぞれの入力データ400の対応関係を変換して得られる試験データと照合データ500との類似度を算出する。類似度は、試験データにおける入力値を並べた第1のベクトルと、照合データ500における入力値を並べた第2のベクトルとの内積により表現される。類似度は、例えば、コサイン類似度である。そして、生成部902は、例えば、類似度に基づいて、共通変換情報600を生成する。生成部902は、具体的には、類似度の平均値が最大化されるように、共通変換情報600を生成する。これにより、生成部902は、共通変換情報600を適切に生成することができる。
【0068】
ここで、更新部904が、後述するように共通変換情報600を更新する場合があってもよい。この場合、生成部902は、例えば、ランダムな共通変換情報600を生成してもよい。これにより、生成部902は、共通変換情報600を、照合データ500から独立させることができる。このため、生成部902は、照合データ500を変動させる場合の処理量の増大化を抑制することができる。
【0069】
生成部902は、複数の項目のうち1以上の項目を除く残余の項目に対応付けて、入力データ400ごとに個別で適用される個別変換情報700を生成する。残余の項目は、個別項目である。個別項目は、利用者によって予め設定される。生成部902は、例えば、複数の入力データ400のそれぞれの入力データ400の対応関係を変換して得られる試験データと照合データ500との類似度を算出する。そして、生成部902は、例えば、類似度に基づいて、個別変換情報700を生成する。生成部902は、具体的には、類似度の平均値が最大化されるように、個別変換情報700を生成する。これにより、生成部902は、個別変換情報700を適切に生成することができる。
【0070】
変換部903は、生成した共通変換情報600および個別変換情報700に基づいて、複数の入力データ400のそれぞれの入力データ400の対応関係を変換した変換データを生成する。変換部903は、例えば、入力データ400の特定の項目値を有するレコードが、共通変換情報600および個別変換情報700に示された照合データ500の特定の項目値を有するレコードの位置に合うように、入力データ400の各レコードの位置を入れ替える。これにより、変換部903は、現状で分類誤差が最小と推定され、照合データ500およびニューラルネットワーク800の更新に利用される変換データを得ることができる。
【0071】
更新部904は、生成した変換データに基づいて、照合データ500およびニューラルネットワーク800を更新する。更新部904は、例えば、入力データ400ごとに、誤差逆伝搬により、入力データ400から生成した変換データをニューラルネットワーク800に入力した場合の、変換データにおける入力値の誤差を並べた誤差ベクトルを算出する。また、更新部904は、例えば、入力データ400ごとに、入力データ400から生成した変換データと、共通変換情報600または照合データ500を変動させた場合に入力データ400から生成される別の変換データとにおける入力値の差分を算出する。次に、更新部904は、例えば、入力データ400ごとに、算出した差分を並べた変分ベクトルを算出する。そして、更新部904は、例えば、誤差ベクトルと変分ベクトルとに基づいて、照合データ500およびニューラルネットワーク800を更新する。これにより、更新部904は、照合データ500およびニューラルネットワーク800の精度向上を図ることができ、学習効率の向上を図ることができる。
【0072】
また、更新部904は、生成した変換データに基づいて、さらに、共通変換情報600を更新してもよい。更新部904は、例えば、誤差ベクトルと変分ベクトルとに基づいて、さらに、共通変換情報600を更新する。これにより、更新部904は、共通変換情報600を、照合データ500から独立させても、精度のよい共通変換情報600を得ることができる。
【0073】
(ニューラルネットワーク800および照合データ500を更新した後)
ここで、ニューラルネットワーク800および照合データ500を更新した後、取得部901が、分類対象の入力データ400を取得した場合について説明する。
【0074】
この場合、変換部903は、生成した共通変換情報600および更新した照合データ500に基づいて、分類対象となる入力データ400の対応関係を変換した変換データを生成し、更新したニューラルネットワーク800に入力する。変換部903は、例えば、共通変換情報600に従った上で、変換データと照合データ500との類似度を最大化するように、分類対象となる入力データ400の対応関係を変換した変換データを生成し、更新したニューラルネットワーク800に入力する。
【0075】
出力部905は、ニューラルネットワーク800に入力したことに応じて、ニューラルネットワーク800から出力される出力データに基づいて、分類対象となる入力データ400を分類する。出力部905は、分類対象となる入力データ400を分類した結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部905は、分類対象となる入力データ400を分類した結果を利用者が把握可能にすることができる。
【0076】
(情報処理装置100の動作例1)
次に、
図10~
図12を用いて、情報処理装置100の動作例1について説明する。まず、
図10を用いて、情報処理装置100の動作例1の流れについて説明する。
【0077】
図10は、情報処理装置100の動作例1の流れを示す説明図である。
図10において、(10-1)情報処理装置100は、学習データ群を取得する。学習データは、入力データ1001を含む。情報処理装置100は、照合データ1002を有する。
【0078】
(10-2)情報処理装置100は、学習データ群のそれぞれの学習データに含まれる入力データ1001のレコードの順序を変換することにより変換データ1003を生成するための、共通変換情報および個別変換情報を生成する。情報処理装置100は、例えば、学習データ群に関して生成される変換データ1003についての照合データ1002との類似度の平均値が最大化するように、共通変換情報および個別変換情報を生成する。
【0079】
情報処理装置100は、具体的には、入力データ1001のレコードを試験的に入れ替えて、入力データ1001のレコードを入れ替える入替パターンを探索するための探索用の変換データを生成する。次に、情報処理装置100は、具体的には、探索用の変換データごとに照合データ1002との類似度として、探索用の変換データにおける量を順に並べた第1のベクトルと照合データ1002における量を順に並べた第2のベクトルとの内積を算出する。そして、情報処理装置100は、具体的には、算出した内積から得られる類似度の平均値を算出し、類似度の平均値が最大化される入替パターンを探索し、探索した入替パターンを示す共通変換情報および個別変換情報を生成する。
【0080】
(10-3)情報処理装置100は、生成した共通変換情報および個別変換情報に基づいて、入力データ1001のレコードの順序を変換することにより、変換データ1003を生成する。この際、情報処理装置100は、例えば、すべての入力データ1001で共通して、項目値「R1」と項目値「R2」との位置が、それぞれ、照合データ1002の項目値「R’1」と項目値「R’2」との位置に合うように、レコードの順序を変換する。また、情報処理装置100は、例えば、項目値「S1」と項目値「S2」との位置については、入力データ1001個別で、照合データ1002の項目値「S’1」と項目値「S’2」との位置のいずれかの位置に合うように、レコードの順序を変換する。
【0081】
(10-4)情報処理装置100は、変換データ1003ごとに、変換データ1003をニューラルネットワーク800に入力した結果に基づいて、ニューラルネットワーク800と照合データ1002とを更新する。情報処理装置100は、例えば、変換データ1003をニューラルネットワーク800に入力した結果に基づいて、誤差逆伝搬により入力誤差を算出する。そして、情報処理装置100は、例えば、入力誤差に基づいて、ニューラルネットワーク800と照合データ1002とを更新する。
【0082】
これにより、情報処理装置100は、機械学習による学習精度の向上を図ることができる。情報処理装置100は、例えば、すべての入力データ1001で共通して、項目値「R1」と項目値「R2」との位置が、それぞれ、照合データ1002の項目値「R’1」と項目値「R’2」との位置に合うように、レコードの順序を変換することができる。このため、情報処理装置100は、通信先ホストが、ニューラルネットワーク800による分類精度に影響を与える場合、精度のよいニューラルネットワーク800および照合データ1002を学習しやすくすることができる。
【0083】
図11および
図12は、情報処理装置100の動作例1の具体例を示す説明図である。
図11において、(11-1)情報処理装置100は、照合データ1100を有する。情報処理装置100は、入力データ1101を含む学習データや入力データ1102を含む学習データを取得する。
【0084】
(11-2)情報処理装置100は、入力データ1101,1102のレコードを試験的に入れ替えて、入力データ1101,1102のレコードを入れ替える入替パターンを探索するための探索用の変換データを生成する。次に、情報処理装置100は、具体的には、探索用の変換データごとに照合データ1100との類似度として、探索用の変換データにおける量を順に並べた第1のベクトルと照合データ1100における量を順に並べた第2のベクトルとの内積を算出する。
【0085】
そして、情報処理装置100は、具体的には、算出した内積から得られる類似度の平均値を算出し、類似度の平均値が最大化される入替パターンを探索し、探索した入替パターンを示す共通変換情報1131を生成する。また、情報処理装置100は、入力データ1101について、共通変換情報1131の下で、類似度が最大化される入替パターンを示す個別変換情報1111,1112を生成する。また、情報処理装置100は、入力データ1102について、共通変換情報1131の下で、類似度が最大化される入替パターンを示す個別変換情報1121,1122を生成する。
【0086】
(11-3)情報処理装置100は、共通変換情報1131および個別変換情報1111,1112に基づいて、入力データ1101のレコードの順序を変換することにより、変換データ1141を生成する。また、情報処理装置100は、共通変換情報1131および個別変換情報1121,1122に基づいて、入力データ1102のレコードの順序を変換することにより、変換データ1142を生成する。次に、
図12の説明に移行する。
【0087】
図12において、(12-1)情報処理装置100は、変換データ1141をニューラルネットワーク800の入力層のノードに入力する。次に、情報処理装置100は、ニューラルネットワーク800の出力層のノードの出力値を並べた出力ベクトルと、教師データにおける出力値を並べた出力ベクトルとの差分を、出力誤差として算出する。そして、情報処理装置100は、出力誤差に基づいて、誤差逆伝搬により入力誤差を算出し、入力誤差を順に並べた、変換データ1141についての誤差ベクトルを算出する。また、情報処理装置100は、同様に、変換データ1142をニューラルネットワーク800の入力層のノードに入力し、変換データ1142についての誤差ベクトルを算出する。
【0088】
(12-2)情報処理装置100は、試験的に照合データ1100の1番目の量を1変化させ、入力データ1101,1102のレコードの順序を変換することにより、入力データ1101,1102についての試験データを生成する。1番目の量は、1番目のレコードの量である。そして、情報処理装置100は、入力データ1101についての試験データにおける量を順に並べた入力ベクトルと、入力データ1101から生成した変換データ1141の量を順に並べた入力ベクトルとの変分を算出する。次に、情報処理装置100は、算出した変分を順に並べた、変換データ1141についての変分ベクトルを算出する。そして、情報処理装置100は、変換データ1141についての、算出した誤差ベクトルと変分ベクトルとの内積を算出する。また、情報処理装置100は、同様に、変換データ1142についての内積を算出する。
【0089】
(12-3)情報処理装置100は、変換データ1141,1142についての内積の平均値1200を算出する。ここで、情報処理装置100は、内積の平均値1200が負であれば、試験的に照合データ1100の1番目の量を変化させた変化方向が、出力誤差を縮小する方向であると判断する。一方で、情報処理装置100は、内積の平均値1200が正であれば、試験的に照合データ1100の1番目の量を変化させた変化方向が、出力誤差を拡大する方向であると判断する。そして、情報処理装置100は、判断した結果に基づいて照合データ1100の1番目の量を変化させる。情報処理装置100は、同様に、照合データ1100の2番目以降の量についても変化させる。
【0090】
(12-4)情報処理装置100は、出力誤差に基づいて、ニューラルネットワーク800のパラメータを更新する。これにより、情報処理装置100は、機械学習による学習精度の向上を図り、精度のよいニューラルネットワーク800および照合データ1100を学習しやすくすることができる。
【0091】
ここでは、情報処理装置100が、共通変換情報1131を生成した後、共通変換情報1131の下で、個別変換情報1111,1112および個別変換情報1121,1122を生成する場合について説明したが、これに限らない。例えば、情報処理装置100が、内積から得られる類似度の平均値が最大化される入替パターンに基づいて、共通変換情報1131、個別変換情報1111,1112、および、個別変換情報1121,1122を纏めて生成する場合があってもよい。
【0092】
(動作例1における全体処理手順)
次に、
図13を用いて、動作例1における情報処理装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0093】
図13は、動作例1における全体処理手順の一例を示すフローチャートである。
図13において、情報処理装置100は、照合データの量と、ニューラルネットワークのパラメータとをランダムに初期化する(ステップS1301)。
【0094】
次に、情報処理装置100は、照合データとの類似度が最大化するように、入力データを変換した変換データを生成する(ステップS1302)。そして、情報処理装置100は、誤差逆伝搬により誤差ベクトルを取得する(ステップS1303)。
【0095】
次に、情報処理装置100は、照合データのいずれかの量を1変化させた場合を試験して得た変換データから、変分ベクトルを取得する(ステップS1304)。そして、情報処理装置100は、誤差ベクトルと変分ベクトルとの内積を算出する(ステップS1305)。
【0096】
次に、情報処理装置100は、ステップS1304において、試しうる量の変化のすべてを試験したか否かを判定する(ステップS1306)。ここで、試験していない量の変化がある場合(ステップS1306:No)、情報処理装置100は、ステップS1304の処理に戻る。一方で、すべてを試験している場合(ステップS1306:Yes)、情報処理装置100は、ステップS1307の処理に移行する。
【0097】
ステップS1307では、情報処理装置100は、算出した内積に基づいて、照合データの量と、ニューラルネットワークのパラメータとを更新する(ステップS1307)。次に、情報処理装置100は、ステップS1307において更新が収束したか、または、ステップS1301~S1307の一連の処理を所定数ループしたかを判定する(ステップS1308)。ここで、更新が収束せず、かつ、所定数ループしていない場合(ステップS1308:No)、情報処理装置100は、ステップS1302の処理に戻る。
【0098】
一方で、更新が収束し、または、所定数ループしている場合(ステップS1308:Yes)、情報処理装置100は、全体処理を終了する。これにより、情報処理装置100は、学習効率の向上を図ることができる。
【0099】
(情報処理装置100の動作例2)
次に、
図14~
図17を用いて、情報処理装置100の動作例2について説明する。まず、
図14および
図15を用いて、情報処理装置100の動作例2の流れについて説明する。
【0100】
図14および
図15は、情報処理装置100の動作例2の流れを示す説明図である。
図14において、(14-1)情報処理装置100は、学習データ群を取得する。学習データは、入力データ1401を含む。情報処理装置100は、照合データ1402を有する。
【0101】
(14-2)情報処理装置100は、学習データ群のそれぞれの学習データに含まれる入力データ1401のレコードの順序を変換することにより変換データ1403を生成するための、共通変換情報および個別変換情報を生成する。情報処理装置100は、例えば、ランダムな共通変換情報を生成する。また、情報処理装置100は、例えば、学習データ群に関して生成される変換データ1403ごとに、照合データ1402との類似度が最大化するように、個別変換情報を生成する。
【0102】
情報処理装置100は、入力データ1401ごとにレコードを試験的に入れ替えて、入力データ1401のレコードを入れ替える入替パターンを探索するための、入力データ1401ごとの探索用の変換データを生成する。次に、情報処理装置100は、探索用の変換データごとに照合データ1402との類似度として、探索用の変換データにおける量を順に並べた第1のベクトルと照合データ1402における量を順に並べた第2のベクトルとの内積を算出する。そして、情報処理装置100は、入力データ1401ごとに、算出した内積から得られる類似度が最大化される入替パターンを探索し、探索した入替パターンを示す個別変換情報を生成する。
【0103】
(14-3)情報処理装置100は、生成した共通変換情報および個別変換情報に基づいて、入力データ1401のレコードの順序を変換することにより、変換データ1403を生成する。この際、情報処理装置100は、例えば、すべての入力データ1401で共通して、項目値「R1」と項目値「R2」との位置が、それぞれ、照合データ1402の項目値「R’1」と項目値「R’2」との位置に合うように、レコードの順序を変換する。また、情報処理装置100は、例えば、項目値「S1」と項目値「S2」との位置については、入力データ1401個別で、照合データ1402の項目値「S’1」と項目値「S’2」との位置のいずれかの位置に合うように、レコードの順序を変換する。
【0104】
(14-4)情報処理装置100は、変換データ1403ごとにニューラルネットワーク800に入力する。情報処理装置100は、変換データ1403ごとに、ニューラルネットワーク800の出力層のノードの出力値を並べた出力ベクトルと、教師データにおける出力値を並べた出力ベクトルとの差分を、出力誤差として算出する。情報処理装置100は、変換データ1403ごとに、出力誤差に基づいて、誤差逆伝搬により入力誤差を算出し、入力誤差を順に並べた、誤差ベクトル1404を算出する。次に、
図15の説明に移行する。
【0105】
図15において、(15-1)情報処理装置100は、試験的に照合データ1402の量を1変化させ、入力データ1401ごとにレコードの順序を変換することにより、入力データ1401ごとの試験データ1501を生成する。そして、情報処理装置100は、試験データ1501における量を順に並べた入力ベクトルと、変換データ1403の量を順に並べた入力ベクトルとの変分を算出する。次に、情報処理装置100は、算出した変分を順に並べた、変換データ1403についての変分ベクトル1502を算出する。そして、情報処理装置100は、変換データ1403ごとに、変換データ1403に基づき算出した誤差ベクトル1404と、変換データ1403に基づき算出した変分ベクトル1502との内積を算出する。
【0106】
(15-2)情報処理装置100は、変換データ1403ごとの内積から、内積の平均値を算出する。ここで、情報処理装置100は、内積が負であれば、試験的に照合データ1402の量を変化させた変化方向が、出力誤差を縮小する方向であると判断し、判断した結果に基づいて照合データ1402の量を変化させる。一方で、情報処理装置100は、内積が正であれば、試験的に照合データ1402の量を変化させた変化方向が、出力誤差を拡大する方向であると判断し、判断した結果に基づいて照合データ1402の量を変化させる。情報処理装置100は、同様に、照合データ1402の他の量についても変化させる。
【0107】
(15-3)情報処理装置100は、試験的に、第1の共通項目に関する共通変換情報が示す対応関係を変化させ、入力データ1401ごとにレコードの順序を変換することにより、入力データ1401ごとの試験データ1501を生成する。
図15の例では、第1の共通項目に関する共通変換情報が、項目値「R1」と項目値「R2」との位置を、それぞれ、照合データ1402の項目値「R’2」と項目値「R’1」との位置に対応付ける対応関係を示すように変化させる。
【0108】
そして、情報処理装置100は、試験データ1501における量を順に並べた入力ベクトルと、変換データ1403の量を順に並べた入力ベクトルとの変分を算出する。次に、情報処理装置100は、算出した変分を順に並べた、変換データ1403についての変分ベクトル1502を算出する。そして、情報処理装置100は、変換データ1403ごとに、変換データ1403に基づき算出した誤差ベクトル1404と、変換データ1403に基づき算出した変分ベクトル1502との内積を算出する。
【0109】
(15-4)情報処理装置100は、変換データ1403ごとの内積から、内積の平均値を算出する。ここで、情報処理装置100は、内積が負であれば、試験的に、第1の共通項目に関する共通変換情報が示す対応関係を変化させた変化方向が、出力誤差を縮小する方向であると判断する。一方で、情報処理装置100は、内積が正であれば、試験的に、第1の共通項目に関する共通変換情報が示す対応関係を変化させた変化方向が、出力誤差を拡大する方向であると判断する。そして、情報処理装置100は、判断した結果に基づいて、第1の共通項目に関する共通変換情報が示す対応関係を変化させる。
【0110】
ここで、第1の共通項目に関する共通変換情報が示す対応関係を変化させる変化パターンが複数ある場合がある。この場合、情報処理装置100は、それぞれの変化パターンについて内積の平均値を算出し、それぞれの変化パターンについての内積の平均値を比較した結果に基づいて、第1の共通項目に関する共通変換情報が示す対応関係を変化させてもよい。また、情報処理装置100は、同様に、他の項目に関する共通変換情報が示す対応関係についても変化させる。
【0111】
(15-5)情報処理装置100は、出力誤差に基づいて、ニューラルネットワーク800のパラメータを更新する。これにより、情報処理装置100は、機械学習による学習精度の向上を図ることができる。情報処理装置100は、例えば、通信先ホストが、ニューラルネットワーク800による分類精度に影響を与える場合、精度のよいニューラルネットワーク800および照合データ1402を学習しやすくすることができる。
【0112】
また、情報処理装置100は、共通変換情報を、照合データ1402から独立させて生成および更新することができる。このため、情報処理装置100は、照合データ1402を変動させる場合の処理量の増大化を抑制することができる。情報処理装置100は、具体的には、ミニバッチを利用して機械学習を実現する場合、ミニバッチ内の入力データだけに基づいて、共通変換情報を更新する際にかかる処理量の増大化を抑制することができる。
【0113】
図16および
図17は、情報処理装置100の動作例2の具体例を示す説明図である。
図16において、(16-1)情報処理装置100は、照合データ1600を有する。情報処理装置100は、入力データ1601を含む学習データや入力データ1602を含む学習データを取得する。情報処理装置100は、ランダムな共通変換情報1631を生成する。
【0114】
(16-2)情報処理装置100は、入力データ1601,1602のレコードを試験的に入れ替えて、入力データ1601,1602のレコードを入れ替える入替パターンを探索するための探索用の変換データを生成する。次に、情報処理装置100は、探索用の変換データごとに照合データ1600との類似度として、探索用の変換データにおける量を順に並べた第1のベクトルと照合データ1600における量を順に並べた第2のベクトルとの内積を算出する。そして、情報処理装置100は、入力データ1601について、内積から得られる類似度が最大化される入替パターンを示す個別変換情報1611,1612を生成する。また、情報処理装置100は、入力データ1602について、内積から得られる類似度が最大化される入替パターンを示す個別変換情報1621,1622を生成する。
【0115】
(16-3)情報処理装置100は、共通変換情報1631および個別変換情報1611,1612に基づいて、入力データ1601のレコードの順序を変換することにより、変換データ1641を生成する。また、情報処理装置100は、共通変換情報1631および個別変換情報1621,1622に基づいて、入力データ1602のレコードの順序を変換することにより、変換データ1642を生成する。次に、
図17の説明に移行する。
【0116】
図17において、(17-1)情報処理装置100は、変換データ1641をニューラルネットワーク800の入力層のノードに入力する。次に、情報処理装置100は、ニューラルネットワーク800の出力層のノードの出力値を並べた出力ベクトルと、教師データにおける出力値を並べた出力ベクトルとの差分を、出力誤差として算出する。そして、情報処理装置100は、出力誤差に基づいて、誤差逆伝搬により入力誤差を算出し、入力誤差を順に並べた、変換データ1641についての誤差ベクトルを算出する。また、情報処理装置100は、同様に、変換データ1642をニューラルネットワーク800の入力層のノードに入力し、変換データ1642についての誤差ベクトルを算出する。
【0117】
(17-2)情報処理装置100は、試験的に照合データ1600の1番目の量を1変化させ、入力データ1601,1602のレコードの順序を変換することにより、入力データ1601,1602についての試験データを生成する。そして、情報処理装置100は、入力データ1601についての試験データにおける量を順に並べた入力ベクトルと、入力データ1601から生成した変換データ1641の量を順に並べた入力ベクトルとの変分を算出する。次に、情報処理装置100は、算出した変分を順に並べた、変換データ1641についての変分ベクトルを算出する。そして、情報処理装置100は、変換データ1641についての、算出した誤差ベクトルと変分ベクトルとの内積を算出する。また、情報処理装置100は、同様に、変換データ1642についての内積を算出する。
【0118】
(17-3)情報処理装置100は、変換データ1641,1642についての内積の平均値1700を算出する。ここで、情報処理装置100は、内積の平均値1700が負であれば、試験的に照合データ1600の1番目の量を変化させた変化方向が、出力誤差を縮小する方向であると判断する。一方で、情報処理装置100は、内積の平均値1700が正であれば、試験的に照合データ1600の1番目の量を変化させた変化方向が、出力誤差を拡大する方向であると判断する。そして、情報処理装置100は、判断した結果に基づいて、照合データ1600の1番目の量を変化させる。情報処理装置100は、同様に、照合データ1600の2番目以降の量についても変化させる。
【0119】
(17-4)情報処理装置100は、試験的に共通変換情報1631が示す対応関係を変化させ、入力データ1601,1602のレコードの順序を変換することにより、入力データ1601,1602についての試験データを生成する。そして、情報処理装置100は、入力データ1601についての試験データにおける量を順に並べた入力ベクトルと、入力データ1601から生成した変換データ1641の量を順に並べた入力ベクトルとの変分を算出する。次に、情報処理装置100は、算出した変分を順に並べた、変換データ1641についての変分ベクトルを算出する。そして、情報処理装置100は、変換データ1641についての、算出した誤差ベクトルと変分ベクトルとの内積を算出する。また、情報処理装置100は、同様に、変換データ1642についての内積を算出する。
【0120】
(17-5)情報処理装置100は、変換データ1641,1642についての内積の平均値1700を算出する。ここで、情報処理装置100は、内積の平均値1700が負であれば、試験的に共通変換情報1631が示す対応関係を変化させた変化方向が、出力誤差を縮小する方向であると判断する。一方で、情報処理装置100は、内積の平均値1700が正であれば、試験的に共通変換情報1631が示す対応関係を変化させた変化方向が、出力誤差を拡大する方向であると判断する。そして、情報処理装置100は、判断した結果に基づいて、第1の共通項目に関する共通変換情報1631が示す対応関係を変化させる。
【0121】
(17-6)情報処理装置100は、出力誤差に基づいて、ニューラルネットワーク800のパラメータを更新する。これにより、情報処理装置100は、機械学習による学習精度の向上を図り、精度のよいニューラルネットワーク800および照合データ1600を学習しやすくすることができる。
【0122】
また、情報処理装置100は、共通変換情報1631を、照合データ1600から独立させて生成および更新することができる。このため、情報処理装置100は、照合データ1600を変動させる場合の処理量の増大化を抑制することができる。情報処理装置100は、具体的には、ミニバッチを利用して機械学習を実現する場合、ミニバッチ内の入力データだけに基づいて、共通変換情報1631を更新する際にかかる処理量の増大化を抑制することができる。
【0123】
(動作例2における全体処理手順)
次に、
図18を用いて、動作例2における情報処理装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0124】
図18は、動作例2における全体処理手順の一例を示すフローチャートである。
図18において、情報処理装置100は、照合データの量と、共通変換テーブルと、ニューラルネットワークのパラメータとをランダムに初期化する(ステップS1801)。
【0125】
次に、情報処理装置100は、個別項目に関して照合データとの類似度が最大化するように、入力データを変換した変換データを生成する(ステップS1802)。そして、情報処理装置100は、誤差逆伝搬により誤差ベクトルを取得する(ステップS1803)。
【0126】
次に、情報処理装置100は、照合データのいずれかの量を1変化させるか、または、共通変換情報のいずれかの共通項目に関する対応関係を変化させた場合を試験して得た変換データから、変分ベクトルを取得する(ステップS1804)。そして、情報処理装置100は、誤差ベクトルと変分ベクトルとの内積を算出する(ステップS1805)。
【0127】
次に、情報処理装置100は、ステップS1804において、試しうる量の変化と、試しうる対応関係の変化とのすべてを試験したか否かを判定する(ステップS1806)。ここで、試験していない量の変化、または、試験していない対応関係の変化がある場合(ステップS1806:No)、情報処理装置100は、ステップS1804の処理に戻る。一方で、すべてを試験している場合(ステップS1806:Yes)、情報処理装置100は、ステップS1807の処理に移行する。
【0128】
ステップS1807では、情報処理装置100は、算出した内積に基づいて、照合データの量と、共通変換情報と、ニューラルネットワークのパラメータとを更新する(ステップS1807)。次に、情報処理装置100は、ステップS1807において更新が収束したか、または、ステップS1801~S1807の一連の処理を所定数ループしたかを判定する(ステップS1808)。ここで、更新が収束せず、かつ、所定数ループしていない場合(ステップS1808:No)、情報処理装置100は、ステップS1802の処理に戻る。
【0129】
一方で、更新が収束し、または、所定数ループしている場合(ステップS1808:Yes)、情報処理装置100は、全体処理を終了する。これにより、情報処理装置100は、学習効率の向上を図ることができる。また、情報処理装置100は、算出した内積に基づいて、共通変換情報を更新するため、処理量の低減化を図ることができる。
【0130】
以上では、変換データが、入力データと同じデータ構造である場合について説明したが、これに限らない。例えば、入力データのレコードを並べ替えず、入力データの入力値を並べ替えた後の入力ベクトルを、変換データとして扱う場合があってもよい。
【0131】
以上説明したように、情報処理装置100によれば、複数の項目のうち1以上の項目に対応付けて、複数のデータに共通で適用される共通変換情報120を生成することができる。情報処理装置100によれば、複数の項目のうち1以上の項目を除く残余の項目に対応付けて、データごとに個別で適用される個別変換情報130を生成することができる。情報処理装置100によれば、生成した共通変換情報120および個別変換情報130に基づいて、複数のデータのそれぞれのデータの対応関係を変換した変換データを生成することができる。情報処理装置100によれば、生成した変換データに基づいて、照合データ140および学習器110を更新することができる。これにより、情報処理装置100は、学習精度の向上を図ることができる。
【0132】
情報処理装置100によれば、複数のデータのそれぞれのデータの、入力値と入力ノードとの対応関係を変換して得られる試験データと照合データ140との類似度に基づいて、共通変換情報120を生成することができる。これにより、情報処理装置100は、精度のよい共通変換情報120を得やすくすることができる。
【0133】
情報処理装置100によれば、生成した変換データに基づいて、さらに、共通変換情報120を更新することができる。これにより、情報処理装置100は、共通変換情報120を、照合データ140から独立させて生成および更新することができる。このため、情報処理装置100は、照合データ140および学習器110を更新するために、照合データ140を変動させ、変換データを生成する場合にかかる処理量の増大化を抑制することができる。
【0134】
情報処理装置100によれば、類似度を、試験データにおける入力値を並べた第1のベクトルと、照合データ140における入力値を並べた第2のベクトルとの内積により表現することができる。これにより、情報処理装置100は、類似度を扱いやすくすることができる。
【0135】
情報処理装置100によれば、誤差逆伝搬により、データから生成した変換データを学習器110に入力した場合の、データから生成した変換データにおける入力値の誤差を並べた誤差ベクトルを算出することができる。情報処理装置100によれば、データから生成した変換データと、共通変換情報120または照合データ140を変動させた場合にデータから生成される別の変換データとにおける入力値の差分を並べた変分ベクトルを算出することができる。情報処理装置100によれば、誤差ベクトルと変分ベクトルとに基づいて、照合データ140および学習器110を更新することができる。これにより、情報処理装置100は、精度のよい照合データ140および学習器110を得やすくすることができる。
【0136】
情報処理装置100によれば、生成した共通変換情報120および更新した照合データ140に基づいて、分類対象となるデータの対応関係を変換した変換データを生成し、更新した学習器110に入力することができる。情報処理装置100によれば、学習器110に入力したことに応じて、学習器110から出力される出力データに基づいて、分類対象となるデータを分類することができる。これにより、情報処理装置100は、学習器110を、利用者が利用可能にすることができる。
【0137】
なお、本実施の形態で説明した学習方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した学習プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した学習プログラムは、インターネット等のネットワークを介して配布してもよい。
【0138】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0139】
(付記1)複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、
生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、
生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【0140】
(付記2)前記共通変換情報を生成する処理は、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記共通変換情報を生成する、ことを特徴とする付記1に記載の学習プログラム。
【0141】
(付記3)前記更新する処理は、
生成した前記変換データに基づいて、さらに、前記共通変換情報を更新する、ことを特徴とする付記1に記載の学習プログラム。
【0142】
(付記4)前記類似度は、前記試験データにおける入力値を並べた第1のベクトルと、前記照合データにおける入力値を並べた第2のベクトルとの内積により表現される、ことを特徴とする付記1~3のいずれか一つに記載の学習プログラム。
【0143】
(付記5)前記データごとに、誤差逆伝搬により、前記データから生成した前記変換データを前記学習器に入力した場合の、前記データから生成した前記変換データにおける入力値の誤差を並べた誤差ベクトルを算出し、
前記データごとに、前記データから生成した前記変換データと、前記共通変換情報または前記照合データを変動させた場合に前記データから生成される別の変換データとにおける入力値の差分を並べた変分ベクトルを算出する、処理を前記コンピュータに実行させ、
前記更新する処理は、
前記誤差ベクトルと前記変分ベクトルとに基づいて、前記照合データおよび前記学習器を更新する、ことを特徴とする付記1~4のいずれか一つに記載の学習プログラム。
【0144】
(付記6)生成した前記共通変換情報および更新した前記照合データに基づいて、分類対象となるデータの前記対応関係を変換した変換データを生成し、更新した前記学習器に入力し、
前記学習器に入力したことに応じて、前記学習器から出力される出力データに基づいて、前記分類対象となるデータを分類する、処理を前記コンピュータに実行させることを特徴とする付記1~5のいずれか一つに記載の学習プログラム。
【0145】
(付記7)複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、
生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、
生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する、
処理をコンピュータが実行することを特徴とする学習方法。
【0146】
(付記8)複数の項目のうち1以上の項目に対応付けて、前記複数の項目のそれぞれの項目の項目値と入力値との組み合わせをそれぞれが含む複数のデータを学習器に入力する場合において前記データにおける入力値のそれぞれと前記学習器における入力ノードのそれぞれとの対応関係を変換する、前記複数のデータに共通で適用される共通変換情報を生成し、
前記複数のデータそれぞれについての前記対応関係を変換して得られる試験データと照合データとの類似度に基づいて、前記複数の項目のうち前記1以上の項目を除く残余の項目に対応付けて、前記複数のデータそれぞれの前記対応関係を変換する、前記複数のデータそれぞれに個別で適用される個別変換情報を生成し、
生成した前記共通変換情報および前記個別変換情報に基づいて、前記複数のデータそれぞれの前記対応関係を変換した変換データを生成し、
生成した前記変換データに基づいて、前記照合データおよび前記学習器を更新する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0147】
100 情報処理装置
101,102 データ
103,104,1003,1141,1142,1403,1641,1642 変換データ
110 学習器
111~114 入力ノード
120,600,1131,1631 共通変換情報
130,700,1111,1112,1121,1122,1611,1612,1621,1622 個別変換情報
140,500,1002,1100,1402,1600 照合データ
200 分類システム
201 クライアント装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
400,1001,1101,1102,1401,1601,1602 入力データ
800 ニューラルネットワーク
900 記憶部
901 取得部
902 生成部
903 変換部
904 更新部
905 出力部
1200,1700 平均値
1404 誤差ベクトル
1501 試験データ
1502 変分ベクトル