(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】機械学習プログラム、機械学習方法及び機械学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240723BHJP
G06F 17/16 20060101ALI20240723BHJP
【FI】
G06N20/00
G06F17/16 M
(21)【出願番号】P 2021011225
(22)【出願日】2021-01-27
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】トルマチョーブ アルセーニ
(72)【発明者】
【氏名】酒井 彬
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2012/133185(WO,A1)
【文献】特開2020-129222(JP,A)
【文献】米国特許出願公開第2016/0004664(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06F 17/16
(57)【特許請求の範囲】
【請求項1】
テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定し、
特定した複数の前記トポロジーモードの軸の中から1つの軸を選択し、
前記テンソル形式のデータから複数の中間テンソルを介してコアテンソルを算出する際、前記複数の中間テンソルのうち第1の中間テンソルに含まれる要素に前記ラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる第1の処理と、前記複数の中間テンソルのうち第2の中間テンソルと前記1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する第2の処理と、前記複数の中間テンソルのうち第3の中間テンソルに含まれる要素に前記1つの軸に対応する第3の要素行列に含まれる要素と、前記第2の要素行列に含まれる要素とを共有して連結させる第3の処理とによって、前記テンソル形式のデータから前記コアテンソルを算出し、
前記コアテンソルを入力として機械学習モデルの機械学習を実行する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記第1の処理と前記第2の処理と前記第3の処理との実行順序を決定する処理を前記コンピュータにさらに実行させ、
前記決定する処理により決定された順序で前記第1の処理と前記第2の処理と前記第3の処理とを実行することを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記決定する処理は、前記第3の処理を前記実行順序の最後に決定する
ことを特徴とする請求項2に記載の機械学習プログラム。
【請求項4】
テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定し、
特定した複数の前記トポロジーモードの軸の中から1つの軸を選択し、
前記テンソル形式のデータから複数の中間テンソルを介してコアテンソルを算出する際、前記複数の中間テンソルのうち第1の中間テンソルに含まれる要素に前記ラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる第1の処理と、前記複数の中間テンソルのうち第2の中間テンソルと前記1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する第2の処理と、前記複数の中間テンソルのうち第3の中間テンソルに含まれる要素に前記1つの軸に対応する第3の要素行列に含まれる要素と、前記第2の要素行列に含まれる要素とを共有して連結させる第3の処理とによって、前記テンソル形式のデータから前記コアテンソルを算出し、
前記コアテンソルを入力として機械学習モデルの機械学習を実行する
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項5】
テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定し、
特定した複数の前記トポロジーモードの軸の中から1つの軸を選択し、
前記テンソル形式のデータから複数の中間テンソルを介してコアテンソルを算出する際、前記複数の中間テンソルのうち第1の中間テンソルに含まれる要素に前記ラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる第1の処理と、前記複数の中間テンソルのうち第2の中間テンソルと前記1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する第2の処理と、前記複数の中間テンソルのうち第3の中間テンソルに含まれる要素に前記1つの軸に対応する第3の要素行列に含まれる要素と、前記第2の要素行列に含まれる要素とを共有して連結させる第3の処理とによって、前記テンソル形式のデータから前記コアテンソルを算出し、
前記コアテンソルを入力として機械学習モデルの機械学習を実行する
処理を実行する制御部を含むことを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習技術に関する。
【背景技術】
【0002】
機械学習により機械学習モデルを生成し、生成した機械学習モデルを用いて予測、分類などを行うシステムの訓練データとしてテンソルデータが用いられることがある。テンソルデータは、n(nは正の整数)次元の配列として表されるが、グラフ、表などによっても表される。
図10は、テンソルデータをグラフ形式と表形式により表現した例を示す図である。
図10は、化学式の例を示す。
図10(a)は、ホルムアルデヒドの化学式をグラフ形式で表したものであり、
図10(b)は、ホルムアルデヒドの化学式を表形式で表したものである。
【0003】
表形式では、始ID、終ID、始素、終素及び結合の5つの軸(列)と、値により化学式が表される。始IDは、繋がりの始点のインデックスである。終IDは、繋がりの終点のインデックスである。なお、始点及び終点へのインデックスの振り方は任意である。始素は、始点の元素の種類である。終素は、終点の元素の種類である。結合は、繋がりの種類である。表形式は、テンソルデータの非ゼロの値のみを行として表現する。
図10(b)では、6つの行で表される6つの値だけが1であり、テンソルデータの他の値は0である。テンソルの軸はモードと呼ばれる。
【0004】
機械学習では、データテンソルは、テンソル分解によりコアテンソルに変換され、コアテンソルを用いて訓練が行われる。
図11は、テンソル分解を説明するための図である。
図11では、白の立方体は0の要素を示し、網掛けの立方体は非ゼロの要素を示す。
図11に示すように、データテンソルは、コアテンソルとモード数個の要素行列にテンソル分解される。
図11では、データテンソルは3階であり、モード数は3であるので、データテンソルは、コアテンソルと3個の要素行列にテンソル分解される。
【0005】
コアテンソルは、データテンソルと各モードの要素行列のモード積により計算される。
図12は、モード積によるコアテンソルの計算を説明するための図である。
図12(a)は、モード積を示し、
図12(b)はコアテンソル計算を示す。
図12(a)に示すように、モード積によりモードの要素数がデータテンソルの数からコアテンソルの要素数に変換される。
図12(a)の例では、縦方向のモードの要素数が3から2に変換される。また、モード方向の要素に1つでも非ゼロの要素があれば、変換後のモード方向の要素は全て非ゼロとなる。
図12(a)の例では、縦方向の3つの要素91には非ゼロが含まれるので変換後の2つの要素92は非ゼロである。なお、コアテンソルにおける各モードの要素数は、ユーザにより指定される。
【0006】
また、
図12(b)に示すように、各モードのモード積を順番に計算することによりコアテンソルが計算される。
図12(b)において、P
i(i=1~3)はモードiに対応するモード積を示す。
図12(b)に示すように、モード積P
1によりデータテンソルから中間テンソル
1が計算され、モード積P
2により中間テンソル
1から中間テンソル
2が計算され、モード積P
3により中間テンソル
2からコアテンソルが計算される。モード積の計算順序は任意である。
【0007】
n階のテンソルをX、コアテンソルをX^、モードi(i=1~n)の要素行列をW
iとすると
【数1】
である。ここで、Rは実数の集合である。I
iはXのモードiの要素数であり、J
iはX^のモードiの要素数である。
【0008】
モードkのモード積P
kは、Xを以下の行列X′として、
【数2】
行列積X″=(W
k)
T×X′を計算する。ここで、
【数3】
である。そして、X″のモードを再配置して、中間テンソルX
intmが得られる。
【数4】
【0009】
なお、データテンソルに関する従来技術として、ラベルの序列関係を踏まえた機械学習を実行することができるテンソル生成プログラムがある。このプログラムは、複数のノードと複数のノードそれぞれに設定される各属性とを含むグラフ構造を有するデータの入力を受け付ける処理をコンピュータに実行させる。このプログラムは複数のノードと各属性とのそれぞれに対応した次元を有し、複数のノードと各属性との関係、および、複数のノード間の関係に対応した値を設定したテンソルデータを生成する処理をコンピュータに実行させる。このプログラムは、各属性をラベルとして各属性間の序列関係を機械学習する場合に、テンソルデータが有する各属性に対して、序列関係に対応する範囲に値を設定する処理をコンピュータに実行させる。
【先行技術文献】
【特許文献】
【0010】
【文献】特開2020-119101号公報
【文献】米国特許出願公開第2019/0228304号明細書
【文献】米国特許出願公開第2019/0325312号明細書
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記の従来技術では、テンソルデータを用いた機械学習においてデータの細かな繋がり方(細かい構造)が捉えにくくなるという問題がある。
【0012】
1つの側面では、機械学習においてデータの細かな繋がり方を捉えやすくすることができる機械学習プログラム、機械学習方法及び機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
1つの案では、機械学習プログラムは、特定する処理と、選択する処理と、算出する処理と、実行する処理とをコンピュータに実行させる。特定する処理は、テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定する。選択する処理は、特定した複数のトポロジーモードの軸の中から1つの軸を選択する。算出する処理は、第1の処理と、第2の処理と、第3の処理とによってテンソル形式のデータからコアテンソルを算出する。第1の処理は、複数の中間テンソルのうち第1の中間テンソルに含まれる要素にラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる。第2の処理は、複数の中間テンソルのうち第2の中間テンソルと1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する。第3の処理は、複数の中間テンソルのうち第3の中間テンソルに含まれる要素に1つの軸に対応する第3の要素行列に含まれる要素と、第2の要素行列に含まれる要素とを共有して連結させる。実行する処理は、コアテンソルを入力として機械学習モデルの機械学習を実行する。
【発明の効果】
【0014】
機械学習においてデータの細かな繋がり方を捉えやすくすることができる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、ラベルモードとトポロジーモードの例を示す図である。
【
図2】
図2は、非ゼロ要素がまばらな行列と密な行列の行列積を説明するための図である。
【
図3】
図3は、モード積と連結の相違を説明するための図である。
【
図4】
図4は、実施例の概要を説明するための図である。
【
図5】
図5は、インデックスの振りなおしを説明するための図である。
【
図6】
図6は、実施例に係る機械学習装置の機能構成例を示す図である。
【
図8】
図8は、コアテンソル計算部による処理の手順を示すフローチャートである。
【
図9】
図9は、実施例に係る機械学習プログラムを実行するコンピュータのハードウェア構成を示す図である。
【
図10】
図10は、テンソルデータをグラフ形式と表形式により表現した例を示す図である。
【
図12】
図12は、モード積によるコアテンソルの計算を説明するための図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して、実施例にかかる機械学習プログラム、機械学習方法及び機械学習装置を説明する。実施例において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施例で説明する機械学習プログラム、機械学習方法及び機械学習装置は、一例を示すに過ぎず、実施例を限定するものではない。また、以下の実施例は、矛盾しない範囲内で適宜組みあわせてもよい。
【実施例】
【0017】
まず、ラベルモードとトポロジーモードについて説明する。実施例に係る機械学習装置は、モードをトポロジーモードとラベルモードに分ける。トポロジーモードは、データの繋がりを表現するモードである。ラベルモードは、属性を表すモードである。
図1は、ラベルモードとトポロジーモードの例を示す図である。
図1に示すように、始ID及び終IDはトポロジーモードであり、始素、終素及び結合はラベルモードである。ラベルモードはトポロジーモードの1つ以上のモードに対応付けられ、ラベルモードの値は対応付けられるトポロジーモードにより決まる。
【0018】
例えば、始素は始IDに対応付けられ、始素の値は始IDにより決まる。始IDが1であれば始素はCであり、始IDが2又は3であれば始素はHであり、始IDが4であれば始素はOである。また、終素は終IDに対応付けられ、終素の値は終IDにより決まる。終IDが1であれば終素はCであり、終IDが2又は3であれば終素はHであり、終IDが4であれば終素はOである。また、結合は始IDと終IDに対応付けられ、結合の値は始IDと終IDにより決まる。始IDが1であって終IDが2又は3であれば結合は1であり、始IDが1であって終IDが4であれば結合は2である。
【0019】
ラベルモードは、ワンホット(one-hot)ベクトルとして表現される。ここで、ワンホットベクトルとは、1つの要素だけが1であって他の要素が0であるベクトルである。
【0020】
次に、実施例に係る機械学習装置によるモード積の連結への変換について説明する。データテンソルにラベルモードが多く含まれると、データテンソルの非ゼロ要素はまばらになる。一方、要素行列は非ゼロ要素が密である。モード積の計算は、行列積X″=(Wk)T×X′の計算であり、データテンソルにラベルモードが多く含まれると、非ゼロ要素がまばらな行列と密な行列の行列積を計算するため、モード積の計算を行うごとに中間テンソルの非ゼロの要素数が指数的に増大する。
【0021】
図2は、非ゼロ要素がまばらな行列と密な行列の行列積を説明するための図である。
図2において、Aは非ゼロ要素がまばらな行列であり、Bは非ゼロ要素が密な行列であり、CはAとBの行列積である。
図2において、黒及び網掛けの四角は非ゼロ要素を示し、白の四角はゼロ要素を示す。
図2に示すように、Aの行の非ゼロ要素はBの対応する行との積が計算されCの対応する行を形成する。Aの行に1つでも非ゼロ要素があると、Cの対応する行の要素は全て非ゼロとなる。このように、非ゼロ要素がまばらな行列と密な行列の行列積では、非ゼロ要素の数が指数的に増大する。すなわち、モード積の計算を行うごとに中間テンソルの非ゼロの要素数が指数的に増大する。
【0022】
そこで、実施例に係る機械学習装置は、ラベルモードのモード積を連結(concatenation)に変換する。ここで、連結とは、データテンソル又は中間テンソルの要素に要素行列の要素を付け加えることであり、E操作ともよぶ。このE操作に対して、行列積(モード積)はP操作ともよぶ。
【0023】
図3は、モード積と連結の相違を説明するための図である。
図3は、モード積P
2と連結E
2の相違を示す。
図3において、網掛けの立方体は非ゼロ要素を示し、白の立方体はゼロ要素を示す。nは中間テンソル1のモード「2」に関する非ゼロ要素のサイズであり、mは要素行列
2の列の非ゼロ要素のサイズである。
【0024】
図3に示すように、モード積P
2の場合には中間テンソル
2のモード「2」に関する非ゼロ要素のサイズはn×mであるのに対して、連結E
2の場合には中間テンソル
2のモード「2」に関する非ゼロ要素のサイズはn+mである。すなわち、実施例に係る機械学習装置は、ラベルモードのモード積を連結に変換することで、非ゼロ要素の数が線形的に増大するようにする。
【0025】
非ゼロ要素がまばらなテンソルXは、インデックステーブルIと非ゼロテンソル要素のベクトルVの組(I,V)で混合表現される。混合表現において、Iの行はVの要素の座標に対応し、Iの列はテンソルのモードに対応する。Iのi番目の行
【数5】
は、非ゼロ要素が密なサブテンソルユニットV
iを指す。混合表現では、ゼロ要素は表現されない。
【0026】
混合表現においてXと要素行列Wとのモード積は、インデックス分割、テンソル外積、和の順に行われる。例えば、モードnのモード積の計算では、インデックス行は以下の式(1)のように分割される。
【数6】
【0027】
モード積の出力インデックステーブルI′はI^
iから形成される。モード積の出力ベクトルV′のそれぞれの値は、V
iの行と対応するWの行の外積の和により以下の式(2)に示すように計算される。また、式(2)の和の計算は、以下の式(3)を満たすiについて行われる。
【数7】
【0028】
ラベルモードでは、式(2)の和の計算がなくなり、外積だけになる。また、実施例に係る機械学習装置は、連結の出力ベクトルを以下に示す式(4)を用いて計算する。
【数8】
【0029】
実施例に係る機械学習装置は、テンソル分解により計算したコアテンソルをニューラルネットワークの入力するために、Vの要素をフラットにして連結してニューラルネットワークの入力を作成する。したがって、モード積の外積とベクトル連結は値の数は異なるが同じ情報を含む。このため、ラベルモードのモード積を連結に変換しても、機械学習への影響はない。
【0030】
また、実施例に係る機械学習装置は、特定した複数のトポロジーモードの軸の中から1つの軸を選択する。例えば、トポロジーモードは、データの繋がりを表現することから、複数(少なくとも繋がりのある1組(2つ))ある。そこで、実施例に係る機械学習装置は、例えばユーザの選択を受け付けるなどして、複数のトポロジーモードの軸の中から説明の対象となりうる軸を1つ選択する。
【0031】
次いで、実施例に係る機械学習装置は、コアテンソルを計算する際に、ラベルモードの軸に対してはE操作を行い、選択した1つの軸以外のトポロジーモードの軸に対してP操作を行う。また、実施例に係る機械学習装置は、コアテンソルを計算する際に、選択した1つの軸に対しては、その軸以外のトポロジーモードの軸とパラメーター(要素行列の要素)を共有するE操作を行う。このパラメーターを共有するE操作では、選択した1つの軸のパラメーターだけでなく、その軸以外のトポロジーモードの軸のパラメーターも連結するE操作である。
【0032】
これにより、コアテンソル(コア表現)には、トポロジーモードの軸の中から選択した1つの軸に対応する要素と、その軸以外のトポロジーモードの軸に対応する要素が組み込まれる。このため、コアテンソル(コア表現)にはデータの繋がり方(トポロジー)が含まれることとなり、実施例では、このようなコアテンソルを用いて機械学習を行うことで、データの細かな繋がり方を捉えやすくすることができる。
【0033】
図4は、実施例の概要を説明するための図である。
図4に示すように、実施例に係る機械学習装置は、トポロジーモード、ラベルモードの特定およびトポロジーモードの軸の中の1つの軸の選択を行ったデータテンソルD1に対し、インデックスの振りなおしを行い(S1)、データテンソルD2を得る。
【0034】
図5は、インデックスの振りなおしを説明するための図である。
図5に示すように、実施例に係る機械学習装置は、データテンソルD1について、データの繋がり方(トポロジー)の情報を保ちながらランダムに新しい要素(インデックス)を振りなおすことでデータテンソルD2を生成する。具体的には、実施例に係る機械学習装置は、トポロジーモードの軸(図示例では「始ID」、「終ID」)について、データごと、学習エポックごとにランダムに要素の置換を行う置換テーブルを決める。
【0035】
次いで、実施例に係る機械学習装置は、同じグループのIDに同じ置換テーブルを使用するように置換テーブルを参照し、データテンソルD1における「始ID」、「終ID」の要素を振りなおすことで、データテンソルD2を生成する。
図5の例では、元ID「1」を新ID「2」に、元ID「2」を新ID「3」に、元ID「3」を新ID「1」に、元ID「4」を新ID「4」に振りなおすこととなる。
【0036】
これにより、データテンソルD2を用いた機械学習では、要素の値にかかわらず同じ推論結果になるように、機械学習モデルのパラメーターを最適化することができる。
【0037】
図4に戻り、実施例に係る機械学習装置は、データテンソルD2を用いてコアテンソルを計算(コア抽出)する(S2)。具体的は、実施例に係る機械学習装置は、データテンソルD2のラベルモードの軸に対してはE操作を行い、選択した軸以外のトポロジーモードの軸に対してP操作を行う。また、実施例に係る機械学習装置は、データテンソルD2の選択した軸に対しては、その軸以外のトポロジーモードの軸とパラメーターを共有するE操作を行う。
【0038】
次いで、実施例に係る機械学習装置は、計算したコアテンソルを入力として機械学習モデルの機械学習を実行する(S3、S4)。具体的には、実施例に係る機械学習装置は、機械学習モデルについて、ノード間の情報伝搬(表現伝搬)をして推論した推論結果と、データテンソルD1に付与された正解ラベルとを比較し、機械学習モデルのパラメーターを調整する。
【0039】
ここで、情報伝搬については、Multihead Self-Attentionなどの公知の手法を用いてよい。また、データごとの推論(例:化学式が示す化合物の毒性)の場合は、Pooling(例えばAverage Pooling)+FCNN(Fully Convolutional Network)であってもよい。ノードごとの推論の場合(例:健康経営、日ごとの出社区分)は、FCNNであってもよい。
【0040】
次に、実施例に係る機械学習装置の機能構成について説明する。
図6は、実施例に係る機械学習装置の機能構成例を示す図である。
図6に示すように、実施例に係る機械学習装置1は、コアテンソル計算部11と機械学習部12を有する。
【0041】
コアテンソル計算部11は、データテンソルD1に関する情報、コアテンソルの各モードの要素数を入力してコアテンソルを計算する。機械学習部12は、コアテンソル計算部11により計算されたコアテンソルを用いて機械学習を行い、機械学習モデルを生成する。生成された機械学習モデルは、分類、予測などに用いられる。
【0042】
コアテンソル計算部11は、入力部21と、記憶部22と、特定部23と、選択部24と、決定部25と、変換部26と、交換部27と、算出部28とを有する。
【0043】
入力部21は、データテンソルD1に関する情報、コアテンソルの各モードの要素数を入力して記憶部22に格納する。
【0044】
記憶部22は、入力部21により入力された情報を記憶する。また、記憶部22は、特定部23、選択部24、決定部25、変換部26、交換部27、算出部28により作成された情報を記憶する。
【0045】
特定部23は、データテンソルD1の各モードがトポロジーモードであるかラベルモードであるかを特定し、特定結果を記憶部22に格納する。特定部23は、例えば、対象モード以外の全モードの値を固定したときに対象モードの値が1つだけ1であって他は全て0である場合に対象モードをラベルモードと特定し、他の場合には対象モードをトポロジーモードと特定する。なお、データテンソルの各モードがトポロジーモードであるかラベルモードであるかは、入力部21により入力されて記憶部22に格納されてもよい。あるいは、特定部23は、ユーザに問い合わせることでトポロジーモードであるかラベルモードであるかを特定してもよい。
【0046】
選択部24は、特定部23が特定したトポロジーモード(軸)の中から1つのモード(軸)を選択し、選択結果を記憶部22に格納する。例えば、選択部24は、ユーザに問い合わせて、入力部21により入力された選択結果を記憶部22に格納する。
【0047】
決定部25は、テンソル分解のモードの順番(実行順序)を、ラベルモードを先にトポロジーモードを後にするように決定し、決定した順番を記憶部22に格納する。なお、決定部25は、選択部24が選択したトポロジーモードについては順番を最後にする。
【0048】
例えば、
図7に示すように、始IDのモードを「1」、終IDのモードを「2」、始素のモードを「3」、終素のモードを「4」、結合のモードを「5」とする。また、始IDのモードを選択部24が選択したモードとする。この
図7の例では、決定部25は、P
5P
4P
3P
2P
1をテンソル分解の処理の順番とする。ここで、P
5P
4P
3P
2P
1は、P
5、P
4、P
3、P
2、P
1の順番にテンソル分解の処理が行われることを示す。
【0049】
変換部26は、ラベルモードのモード積Pを連結Eに変換し、変換結果を記憶部22に格納する。
図7に示した例では、モード「5」、モード「4」及びモード「3」がラベルモードなので、P
5P
4P
3がE
5E
4E
3に変換され、テンソル分解の処理の順番はE
5E
4E
3P
2P
1となる。
【0050】
また、変換部26は、トポロジーモードについては、上記のインデックスの振りなおしを行い、ランダムに新しい要素を振りなおした結果を記憶部22に格納する。
【0051】
また、変換部26は、選択部24が選択したトポロジーモードについては、モード積Pを他のトポロジーモードとパラメーターを共有する連結Eに変換し、変換結果を記憶部22に格納する。
図7に示した例では、モード「1」及びモード「2」がラベルモードであり、モード「1」が選択したモードである。したがって、変換部26は、P
1をP
2とパラメーターを共有するE
1(P2)に変換する。これにより、テンソル分解の処理の順番は、E
5E
4E
3P
2E
1(P2)となる。
【0052】
交換部27は、連結Eをできるだけ後で処理するように処理の順番を交換し、交換結果を記憶部22に格納する。ただし、変換部26は、ラベルモードの処理をラベルモードに対応付けられたトポロジーモードの処理よりも前に行わなければならず、パラメーターを共有する連結Eは最後という制約の下に、処理の順番を交換する。
【0053】
例えば、E5E4E3P2E1(P2)において、E3をできるだけ後に処理する場合に、モード「3」はモード「1」に対応付けられるので、E3はP1より前に行われなければならない。したがって、E3とP2の交換が行われ、E5E4E3P2E1(P2)はE5E4P2E3E1(P2)となる。モード「5」とモード「4」はモード「2」に対応付けられるので、これ以上の交換は行われない。連結Eをできるだけ後で処理することで、コアテンソル計算部11は、中間テンソルの非ゼロ要素の数をさらに減らすことができる。
【0054】
交換部27は、ラベルモードに対応付けられたトポロジーモードを、例えば、ユーザに問い合わせることで特定する。なお、ラベルモードに対応付けられたトポロジーモードは、入力部21により入力されて記憶部22に格納されてもよい。
【0055】
算出部28は、交換部27による交換結果に基づいてテンソル分解を行い、コアテンソルを算出する。そして、算出部28は、算出したコアテンソルの情報を記憶部22に格納する。算出部28は、モード積部31と連結部32を有する。モード積部31は、トポロジーモードについてモード積の計算(P操作)を行う。連結部32は、ラベルモードについて連結計算(E操作)、選択したモードについてパラメーターを共有する連結計算(E操作)を行う。
【0056】
次に、コアテンソル計算部11による処理の手順について説明する。
図8は、コアテンソル計算部11による処理の手順を示すフローチャートである。より具体的には、
図8は、
図4におけるS2に関する処理の手順を示している。
【0057】
図8に示すように、コアテンソル計算部11は、データテンソルの各モードについて、トポロジーモードであるかラベルモードであるかを特定する(ステップS11)。次いで、コアテンソル計算部11は、トポロジーモードの中の1つを選択する(ステップS12)。
【0058】
次いで、コアテンソル計算部11は、ラベルモード、トポロジーモードの順番にテンソル分解の順番を決定する(ステップS13)。ここで、コアテンソル計算部11は、ステップS12で選択したモードを順番の最後に決定する。
【0059】
次いで、コアテンソル計算部11は、ラベルモードの処理をPからEに変換する(ステップS14)。次いで、コアテンソル計算部11は、ラベルモードの処理をラベルモードに対応付けられたトポロジーモードの処理よりも前に行わなければならないという制約の下でEをなるべく後に処理するようにEとPを交換する(ステップS15)。
【0060】
次いで、コアテンソル計算部11は、ステップS12で選択したモードの処理をPからEに変換する(ステップS16)。この変換において、コアテンソル計算部11は、パラメーターは他のPと共有するものとする。次いで、コアテンソル計算部11は、交換により得られた順番でコアテンソルを計算する(ステップS17)。
【0061】
以上のように、実施例では、特定部23が、テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定する。また、選択部24が、特定した複数のトポロジーモードの軸の中から1つの軸を選択する。また、算出部28が、第1の処理と、第2の処理と、第3の処理とによってテンソル形式のデータからコアテンソルを算出する。第1の処理は、中間テンソルに含まれる要素にラベルモードの軸に対応する要素行列に含まれる要素を連結させる。第2の処理は、中間テンソルと選択した1つの軸以外のトポロジーモードの軸に対応する要素行列とのモード積を算出する。第3の処理は、中間テンソルに含まれる要素に選択した1つの軸に対応する要素行列に含まれる要素と、その軸以外のトポロジーモードの軸に対応する要素行列に含まれる要素とを共有して連結させる。また、機械学習部12が、コアテンソル計算部11が算出したコアテンソルを入力として機械学習モデルの機械学習を実行する。
【0062】
これにより、コアテンソル(コア表現)には、トポロジーモードの軸の中から選択した1つの軸に対応する要素と、その軸以外のトポロジーモードの軸に対応する要素が組み込まれ、データの繋がり方(トポロジー)が含まれることとなる。したがって、実施例では、このようなコアテンソルを用いて機械学習を行うことで、データの細かな繋がり方を捉えやすくすることができる。
【0063】
また、実施例では、第3の処理を実行順序の最後とすることで、データの繋がり方(トポロジー)を最後に組み込むようにしたコアテンソル(コア表現)を機械学習に用いることができる。このため、実施例では、機械学習においてデータの細かな繋がり方をより捉えやすくすることができる。
【0064】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0065】
また、実施例では、機械学習装置1について説明したが、機械学習装置1が有する構成をソフトウェアによって実現することで、同様の機能を有する機械学習プログラムを得ることができる。そこで、機械学習プログラムを実行するコンピュータについて説明する。
【0066】
図9は、実施例に係る機械学習プログラムを実行するコンピュータのハードウェア構成を示す図である。
図9に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0067】
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置であり、制御部の一例でもある。CPU52は、メモリコントローラを有するチップセットを含む。
【0068】
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVD、CD-Rの読み書きを行う装置である。
【0069】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続される。HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0070】
そして、コンピュータ50において実行される機械学習プログラムは、例えばコンピュータ50により読み出し可能な記録媒体の一例であるCD-Rに記憶され、ODD57によってCD-Rから読み出されてコンピュータ50にインストールされる。あるいは、機械学習プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた機械学習プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【0071】
以上の実施形態に関し、さらに以下の付記を開示する。
【0072】
(付記1)テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定し、
特定した複数の前記トポロジーモードの軸の中から1つの軸を選択し、
前記テンソル形式のデータから複数の中間テンソルを介してコアテンソルを算出する際、前記複数の中間テンソルのうち第1の中間テンソルに含まれる要素に前記ラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる第1の処理と、前記複数の中間テンソルのうち第2の中間テンソルと前記1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する第2の処理と、前記複数の中間テンソルのうち第3の中間テンソルに含まれる要素に前記1つの軸に対応する第3の要素行列に含まれる要素と、前記第2の要素行列に含まれる要素とを共有して連結させる第3の処理とによって、前記テンソル形式のデータから前記コアテンソルを算出し、
前記コアテンソルを入力として機械学習モデルの機械学習を実行する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【0073】
(付記2)前記第1の処理と前記第2の処理と前記第3の処理との実行順序を決定する処理を前記コンピュータにさらに実行させ、
前記決定する処理により決定された順序で前記第1の処理と前記第2の処理と前記第3の処理とを実行することを特徴とする付記1に記載の機械学習プログラム。
【0074】
(付記3)前記決定する処理は、前記第3の処理を前記実行順序の最後に決定する
ことを特徴とする付記2に記載の機械学習プログラム。
【0075】
(付記4)テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定し、
特定した複数の前記トポロジーモードの軸の中から1つの軸を選択し、
前記テンソル形式のデータから複数の中間テンソルを介してコアテンソルを算出する際、前記複数の中間テンソルのうち第1の中間テンソルに含まれる要素に前記ラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる第1の処理と、前記複数の中間テンソルのうち第2の中間テンソルと前記1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する第2の処理と、前記複数の中間テンソルのうち第3の中間テンソルに含まれる要素に前記1つの軸に対応する第3の要素行列に含まれる要素と、前記第2の要素行列に含まれる要素とを共有して連結させる第3の処理とによって、前記テンソル形式のデータから前記コアテンソルを算出し、
前記コアテンソルを入力として機械学習モデルの機械学習を実行する
処理をコンピュータが実行することを特徴とする機械学習方法。
【0076】
(付記5)前記第1の処理と前記第2の処理と前記第3の処理との実行順序を決定する処理を前記コンピュータがさらに実行し、
前記決定する処理により決定された順序で前記第1の処理と前記第2の処理と前記第3の処理とを実行することを特徴とする付記4に記載の機械学習方法。
【0077】
(付記6)前記決定する処理は、前記第3の処理を前記実行順序の最後に決定する
ことを特徴とする付記5に記載の機械学習方法。
【0078】
(付記7)テンソル形式のデータに含まれる複数の軸のうち、ラベルモードの軸と、トポロジーモードの軸とを特定し、
特定した複数の前記トポロジーモードの軸の中から1つの軸を選択し、
前記テンソル形式のデータから複数の中間テンソルを介してコアテンソルを算出する際、前記複数の中間テンソルのうち第1の中間テンソルに含まれる要素に前記ラベルモードの軸に対応する第1の要素行列に含まれる要素を連結させる第1の処理と、前記複数の中間テンソルのうち第2の中間テンソルと前記1つの軸以外のトポロジーモードの軸に対応する第2の要素行列とのモード積を算出する第2の処理と、前記複数の中間テンソルのうち第3の中間テンソルに含まれる要素に前記1つの軸に対応する第3の要素行列に含まれる要素と、前記第2の要素行列に含まれる要素とを共有して連結させる第3の処理とによって、前記テンソル形式のデータから前記コアテンソルを算出し、
前記コアテンソルを入力として機械学習モデルの機械学習を実行する
処理を実行する制御部を含むことを特徴とする機械学習装置。
【0079】
(付記8)前記第1の処理と前記第2の処理と前記第3の処理との実行順序を決定する処理を前記制御部がさらに実行し、
前記決定する処理により決定された順序で前記第1の処理と前記第2の処理と前記第3の処理とを実行することを特徴とする付記7に記載の機械学習装置。
【0080】
(付記9)前記決定する処理は、前記第3の処理を前記実行順序の最後に決定する
ことを特徴とする付記8に記載の機械学習装置。
【符号の説明】
【0081】
1…機械学習装置
11…コアテンソル計算部
12…機械学習部
21…入力部
22…記憶部
23…特定部
24…選択部
25…決定部
26…変換部
27…交換部
28…算出部
31…モード積部
32…連結部
50…コンピュータ
51…メインメモリ
52…CPU
53…LANインタフェース
54…HDD
55…スーパーIO
56…DVI
57…ODD
A、B…行列
C…行列積
D1、D2…データテンソル