(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-15
(45)【発行日】2023-05-23
(54)【発明の名称】学習プログラム、学習方法、及び学習装置
(51)【国際特許分類】
G06N 3/08 20230101AFI20230516BHJP
G06N 20/00 20190101ALI20230516BHJP
G06V 10/82 20220101ALI20230516BHJP
G16B 30/00 20190101ALI20230516BHJP
G16B 40/20 20190101ALI20230516BHJP
【FI】
G06N3/08
G06N20/00 130
G06V10/82
G16B30/00
G16B40/20
(21)【出願番号】P 2019053570
(22)【出願日】2019-03-20
【審査請求日】2021-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】大木 雄介
(72)【発明者】
【氏名】丸橋 弘治
【審査官】多賀 実
(56)【参考文献】
【文献】特開2018-055580(JP,A)
【文献】特開2009-288933(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 16/00-16/958
G06F 17/10-17/18
G06T 7/00
G06V 10/70-10/86
G16B 5/00-99/00
(57)【特許請求の範囲】
【請求項1】
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、
前記入力データテンソルを変換行列により
テンソル変換した変換データテンソルを
入力とするニューラルネットワーク
を用いた学習において、
前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように前記変換行列を組み換え、
前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する
処理をコンピュータに実行させる学習プログラム。
【請求項2】
前記系列データは画像データであり、前記局所単位は、前記画像データの画像サイズに基づき決定されることを特徴とする請求項1記載の学習プログラム。
【請求項3】
前記局所次元及び前記全体次元の各成分は2次元成分であることを特徴とする請求項2記載の学習プログラム。
【請求項4】
前記系列データは遺伝子配列データであり、前記局所単位は、コドンの単位であることを特徴とする請求項1記載の学習プログラム。
【請求項5】
前記局所次元及び前記全体次元とによって入力値を定めて、前記入力データテンソルを生成することを特徴とする請求項4記載の学習プログラム。
【請求項6】
分類対象のデータとして入力された系列データに対し、該系列データを前記局所単位ごとに分割することにより、前記局所次元及び前記全体次元を有する入力データテンソルを生成し、
生成した前記入力データテンソルを、前記照合パタンに類似させることで前記変換データテンソルへと変換し、
前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを分類した結果を出力する
処理をコンピュータに実行させる請求項1記載の学習プログラム。
【請求項7】
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、
前記入力データテンソルを変換行列により
テンソル変換した変換データテンソルを
入力とするニューラルネットワーク
を用いた学習において、
前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように前記変換行列を組み換え、
前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する
処理をコンピュータが行う学習方法。
【請求項8】
分類対象のデータとして入力された系列データに対し、該系列データを前記局所単位ごとに分割することにより、前記局所次元及び前記全体次元を有する入力データテンソルを生成し、
生成した前記入力データテンソルを、前記照合パタンに類似させることで前記変換データテンソルへと変換し、
前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを分類した結果を出力する
処理をコンピュータが行う請求項7記載の学習方法。
【請求項9】
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成する生成部と、
前記入力データテンソルを変換行列により
テンソル変換した変換データテンソルを
入力とするニューラルネットワーク
を用いた学習を行う学習部とを有し、
前記学習部は、
前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように、前記変換行列を組み換える組み換え部と、
前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する更新部と
を有することを特徴とする学習装置。
【請求項10】
分類対象のデータとして入力された系列データに対し、該系列データを前記局所単位ごとに分割することにより、前記局所次元及び前記全体次元を有する入力データテンソルを生成する生成部と、
生成した前記入力データテンソルを、前記照合パタンに類似させることで前記変換データテンソルへと変換し、前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを分類した結果を出力する解析部と
を有することを特徴とする請求項9記載の学習装置。
【請求項11】
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、
生成した前記入力データテンソルを、該入力データテンソルの入力値とニューラルネットワークのノードとの対応関係を最適化する照合パタンに類似させた変換データテンソルへと変換し、
前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを学習する
処理をコンピュータに実行させる学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習プログラム、学習方法、及び学習装置に関する。
【背景技術】
【0002】
近年、様々な分野において、ニューラルネットワークを利用した機械学習が用いられるようになってきている。機械学習に入力するデータの形式は、分野により異なっている。より精度良く学習結果を得るために、様々な工夫がなされている。
【0003】
乳児の泣き声のデータを音響特徴分析して得られた音響特徴パラメータを時系列に配列し、音響特徴パラメータの時系列データに対して情動ごとにかつ音響特徴セグメントごとに、音響特徴パラメータの出現分布学習処理を施す技術等が知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2007/102505号パンフレット
【文献】特開2018-55580号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
機械学習では、入力されたデータの特徴を抽出する畳み込み層と、抽出された特徴をまとめ上げるプーリング層とを有する。畳み込み層では予め定めた所定単位でその所定単位内において複数の特徴を抽出し、プーリング層では所定単位内における代表的な特徴を決定する。
【0006】
このように、プーリング層では、ある局所的な範囲に着目して代表的な特徴を決定しているため、複数の局所的な特徴の組み合せにより全体として異なる特徴を示すデータの場合、精度よくデータを分類することができない、といった問題がある。
【0007】
したがって、1つの側面では、局所的な特徴と、全体的な特徴の双方の関係を持つ系列データを適切に学習することを目的とする。
【課題を解決するための手段】
【0008】
一態様によれば、データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、前記入力データテンソルを変換行列によりテンソル変換した変換データテンソルを入力とするニューラルネットワークを用いた学習において、前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように前記変換行列を組み換え、前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する処理をコンピュータに実行させる学習プログラムが提供される。
【発明の効果】
【0009】
局所的な特徴と、全体的な特徴の双方の関係を持つ系列データを適切に学習することができる。
【図面の簡単な説明】
【0010】
【
図2】タンパク質の種類の決定について説明するための図である。
【
図3】遺伝子解析の第1の例を説明するための図である。
【
図4】遺伝子解析の第2の例を説明するための図である。
【
図5】学習装置のハードウェア構成例を示す図である。
【
図7】テンソル生成部によるテンソル生成処理の概要を説明するための図である。
【
図8】入力データテンソルの生成例を示す図である。
【
図9】学習部の機能構成例を説明するための図(その1)である。
【
図10】学習部の機能構成例を説明するための図(その2)である。
【
図11】学習部の機能構成例を説明するための図(その3)である。
【
図13】学習処理を説明するためのフローチャート図である。
【
図14】解析部による解析処理を説明するための図である。
【
図15】探索部による探索処理の一例を説明するための図である。
【
図16】ニューラルネットワークに関する設定例を示す図である。
【
図17】順伝播及び逆伝播を説明するための図である。
【
図18】照合パタンの量変更による試験方法を説明するための第1の図である。
【
図19】照合パタンの量変更による試験方法を説明するための第2の図である。
【
図20】照合パタンの量変更による試験方法を説明するための第3の図である。
【
図21】照合パタンの量変更による試験方法を説明するための第4の図である。
【
図22】全体次元の対応関係変更による試験方法を説明するための図である。
【
図23】調整部による調整割合の算出例を説明するための図である。
【
図24】更新部による更新処理の例を示す図である。
【
図25】系列データに対して、学習装置が実現する学習内容を説明するための図である。
【
図27】スクランブル画像の生成方法を説明するための図である。
【
図28】スクランブル画像の次元分割を説明するための図である。
【
図30】ネットワークシステムの例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を図面に基づいて説明する。各要素の順序が規定された系列データの例として、遺伝子配列が挙げられる。遺伝子配列は、複数の局所的な特徴の組み合せにより特徴づけられている。
図1に示すような遺伝子配列を分類する場合で、機械学習について説明する。
【0012】
図1は、系列データの例を示す図である。
図1に示す系列データ30aは、遺伝子配列「AAG ATC AAG TTC AAG AAT CGT AGA」である。このような遺伝子配列をタンパク質の種別に分類する。タンパク質の種類の決定について
図2で説明する。
【0013】
図2は、タンパク質の種類の決定について説明するための図である。
図2より、
図1に示すような遺伝子配列に対しては、タンパク質の構成に基づいて種類が決定される。遺伝子配列では、塩基3個を配列したコドン2ごとにアミノ酸の種類が示される。遺伝子配列を表す塩基は、A(アデニン)、C(シトニン)、G(グアニン)、及びT(チミン)の4種類である。アミノ酸ごとに特徴は異なるが、アミノ酸の組み合せにより遺伝子配列の特徴も異なってくる。
【0014】
コドン2により生成されるアミノ酸の種別は「局所的な特徴」に基づき判別され、複数のアミノ酸の結合により生成されるタンパク質の種別は「全体的な特徴」に基づき判別される。また、所定の単位ごとに特徴が示され、更に、特徴の組み合せにより示される特徴で分類される対象データに対しても同様に、定めた単位(範囲を含む)ごとの特徴を「局所的な特徴」といい、局所的な特徴の組み合せにより定まる特徴を「全体的な特徴」という。
【0015】
図2を参照すると、系列データ30aの遺伝子配列は、コドン「AAG」、「ATC」、「AAG」、「TTC」、「AAG」、「AAT」、「CGT」、及び「AGA」ごとにアミノ酸の種別を決定し、決定した8個のアミノ酸の種別からタンパク質としての種別を決定することが適切な方法である。タンパク質の種別を決定する機械学習は、遺伝子解析として知られている。系列データ30aの遺伝子配列を例として、遺伝子解析について簡単に説明する。
【0016】
図3は、遺伝子解析の第1の例を説明するための図である。
図3に示す遺伝子解析では、畳み込み層4aと、プーリング層4bとによる機械学習を行った場合で説明する。畳み込み層4aでは、それぞれのアミノ酸の塩基配列に反応するフィルタを用いて、系列データ30aから順に選択したコドン2に対して複数のフィルタを用いて畳み込み、コドン2の特徴を抽出する。そして、プーリング層4bで、コドン2ごとに各フィルタで最も反応した特徴を抽出する。
【0017】
畳み込み層4aとプーリング層4bとによる処理を、遺伝子配列の長さに応じて、即ち、系列データ30aのコドン2の数に応じて、繰り返し行うことで、データ30aにおいて最も強く反応したアミノ酸をタンパク質の特徴として出力する。この例では、アミノ酸「AAG」及び「ATC」が出力される。
【0018】
しかしながら、
図3に示す遺伝子配列とは異なる系列データ30aであっても、アミノ酸「AAG」及び「ATC」を主要なコドン2として、遺伝子配列中で結合されているタンパク質が存在する場合、同様の結果を示し、精度良くタンパク質を分類することができない。
図3の系列データ30aは、アミノ酸「AAG」が3個存在し、他のアミノ酸との結合により構成されたタンパク質を表している。しかし、3個のアミノ酸を含む異なる結合によるタンパク質は異なる特徴を有するが、プーリング層4bで同一のコドンの特徴は一つにまとめられるため、区別して学習することができない。
【0019】
コドン2(即ち、連続した3つの塩基)を所定の単位とする代りに、組み合せる塩基の個数を所定の単位として、タンパク質の特徴を表す塩基列を抽出することが考えられる。このように特徴を抽出する処理を、「組み合せ探索」と呼ぶものとする。
【0020】
図4は、遺伝子解析の第2の例を説明するための図である。
図4において、組み合せ探索4cは、ニューラルネットワークへの最適な入力順を定めて系列データ3aを学習することで、特徴として塩基同士の主要な結合を学習する。
【0021】
組み合せ探索4cは、出願人により開発され、入力データに含まれる複数の入力値のそれぞれと、ニューラルネットワークの入力層の複数のノード(ニューロンを表す)のそれぞれとの対応関係を考慮することで学習精度を改善した技術である。組み合せ探索4cが、複数の入力値と複数のノードとの最適な対応関係を学習することから、「Deep Tensor」と呼ばれる。「Deep Tensor」では、ニューラルネットワークへの入力値の入力前に、入力データを表すテンソルは、最適な対応関係となるように変換(テンソル変換)されて学習に用いられる。
【0022】
入力データの形式によっては、「Deep Tensor」への適合に工夫を要するものが存在する。遺伝子配列が入力データの場合を例として、単純に、入力データそのものを「Deep Tensor」を適用した場合について説明する。
【0023】
図4では、組み合せ探索4cにより、遺伝子配列の特徴として、組み合せ「AG」が4カ所、組み合せ「AT」が2カ所、及び、組み合せ「TCA」が2カ所で抽出されたことを示している。この結果は、
図3の結果とは異なり、遺伝子配列の全体的な特徴として、塩基同士の主要な結合を学習できる。しかしながら、組み合せ探索4cでは、全ての組み合せを探索するわけではないため、局所の並び順(この例では、アミノ酸)に起因する特徴が失われてしまう。
【0024】
このようなことから、局所的な特徴を重視する場合には、遺伝子解析による第1の例(
図3)の技術で学習し、全体的な特徴の組み合せを重視する場合には、「Deep Tensor」を用いた学習による第2の例(
図4)の技術で学習することが考えられる。しかしながら、知識を有する者がそれぞれの学習結果を総合的に解析する必要があり、現実的ではない。
【0025】
上述したように、局所的な特徴と全体的な特徴の双方の関係を持った遺伝子配列等の系列データが存在する。このような系列データであっても、「Deep Tensor」を用いた学習により、高精度な結果を得る技術を以下に開示する。
【0026】
図5は、学習装置のハードウェア構成例を示す図である。
図5より、学習装置100は、情報処理装置であって、CPU11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、通信I/F17と、ドライブ装置18とを有し、バスBに接続される。補助記憶装置13、入力装置14、及び学習装置100がアクセス可能な外部記憶装置を含めて、記憶部130という。
【0027】
CPU11は、学習装置100を制御するプロセッサに相当し、記憶部130に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置14は、ユーザによって操作され、操作に応じてデータを入力し、表示装置15は、ユーザーインタフェースとして様々な画面を表示する。通信I/F17は、外部装置との通信を制御する。
【0028】
記憶媒体19(例えば、CD-ROM(Compact Disc Read-Only Memory)等)に記憶された本実施例に係る学習プログラムは、ドライブ装置18を介して記憶部130にインストールされ、CPU11によって実行可能となる。
【0029】
尚、本実施例に係るプログラムを格納する記憶媒体19はCD-ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0030】
図6は、学習装置の機能構成例を示す図である。
図6において、学習装置100は、テンソル生成部20と、学習部40と、解析部60とを有する。テンソル生成部20と、学習部40と、解析部60とは、学習装置100にインストールされたプログラムが、CPU11に実行させる処理により実現される。また、記憶部130は、入力データ30、次元分割データ31a、入力データテンソル31b、順序付け変換行列32、教師データDB33、学習結果50、変換データテンソル61等を記憶する。
【0031】
テンソル生成部20は、系列データ30aを入力データ30として受け付けると、系列データ30aを、局所次元と全体次元とに分割して次元分割データ31aを生成する。そして、テンソル生成部20は、生成した次元分割データ31aから入力データテンソル31bを生成する。系列データ30aに対する入力データテンソル31bの生成方法については後述される。
【0032】
学習部40による学習処理時と、解析部60による解析処理時のそれぞれで、テンソル生成部20による系列データ30aに対する入力データテンソル31bが生成される。学習処理時には、教師ラベル33aが予め付与された系列データ30aを蓄積した教師データDB33を用いる。解析処理時には、ユーザによって入力された系列データ30aが入力データ30となる。
【0033】
学習部40は、テンソル生成部20によって生成された入力データテンソル31bのニューラルネットワーク41への入力順を最適化する照合パタン51と、ニューラルネットワーク41とを学習する。
【0034】
学習部40は、入力誤差64(
図9~
図11)に基づいて調整した照合パタン51との類似度が最大となるように入力データテンソル31bにおける入力順を変更して、変換データテンソル61を生成する。照合パタン51が調整されることで入力順が最適化され、任意の入力データテンソル31bに対して変換データテンソル61は、高精度な解析を実現する高精度解析用のテンソルとなり、学習精度を向上させる。
【0035】
本実施例では、ニューラルネットワーク41を用いた学習において、入力データテンソル31bを変換して高精度な解析を実現する変換データテンソル61を取得する照合パタン51を学習する「Deep Tensor」を行う。また、「Deep Tensor」を用いた学習より、ニューラルネットワーク41のパラメータ群71は最適化される。
【0036】
解析部60は、テンソル生成部20が生成した入力データテンソル31bを、順序付け変換行列32を用いて、照合パタン51に最も類似する変換データテンソル61を生成し、ニューラルネットワーク41により入力データ30を分類する。
【0037】
図7は、テンソル生成部によるテンソル生成処理の概要を説明するための図である。
図7において、テンソル生成部20は、入力データ30である系列データ30aの次元を分割する。
【0038】
系列データ30aがコドン2の配列によりタンパク質を表した遺伝子配列である場合、テンソル生成部20は、コドン2ごとに縦軸の局所次元に3個の塩基を順に配列し、コドン2の単位で、出現順に横軸の全体次元に配列する。遺伝子配列の例を用いた説明では、局所次元の一例として、「コドン次元」と呼ぶ場合がある。コドン2は、局所次元を生成するための局所単位である。局所次元及び全体次元が配置された次元分割データ31aが作成されると、記憶部130に記憶される。
【0039】
テンソル生成部20は、作成した次元分割データ31aを用いて、更に、入力データテンソル31bを生成する。入力データテンソル31bは、コドン次元と全体次元との組み合せ全てを示す一覧であり、予め定めた計算方法により得られた量が組合せごとに設定されている。
【0040】
コドン次元nは1コドン当たりの塩基数を示し、全体次元Nは系列データ30aで示されるコドン2の個数を示す場合、この例では、n=3及びN=8であるため、入力データテンソル31bは、24(=3×8)の組み合せに係るテンソルとなる。入力データテンソル31bの生成例を
図8に示す。
【0041】
図8は、入力データテンソルの生成例を示す図である。
図8より、入力データテンソル31bは、コドン次元と全体次元の組み合せごとに量を示したテンソルである。
【0042】
コドン次元、即ち、局所次元に関して、
b1は「AAATAACA」を表し、
b2は「ATATAAGG」を表し、
b3は「GCGCGTTA」を表す。
【0043】
全体次元に関して、
e1は「AAG」を表し、
e2は「ATC」を表し、
e3は「AAG」を表し、
e4は「TTC」を表し、
e5は「AAG」を表し、
e6は「AAT」を表し、
e7は「CGT」を表し、
e8は「AGA」を表す。
【0044】
次元分割データ31aはマトリクス形式であるため、局所次元と全体次元とにより1つの塩基を指定する。指定された塩基に対応する量が、局所次元と全体次元の組み合せに対応付けられる。設定する量として、指定された塩基の原子数、モル質量等の塩基固有の特性の一つを用いればよい。説明を簡単とするため、以下の説明では、
・A(アデニン)の量を「0」、
・C(シトニン)の量を「1」、
・G(グアニン)の量を「2」、及び
・T(チミン)の量を「3」とする。
【0045】
つまり、次元分割データ31aに基づいて、局所次元b1とe1との組み合せにより塩基「A」が指定されるため量には「0」を設定する。組み合せ及び量を(局所次元、全体次元、量)で表した場合、
(b1, e1, 0)
(b2, e1, 0)
(b3, e1, 2)
(b1, e2, 0)
(b2, e2, 3)
(b3, e2, 1)
・・・
(b1, e8, 0)
(b2, e8, 2)
(b3, e8, 0)
となり、これらを表す入力データテンソル31bが記憶部130に生成される。
【0046】
図9、
図10、及び
図11は、学習部の機能構成例を説明するための図である。
図9から
図11より、学習部40は、初期化部40aと、探索部40bと、調整部40cと、更新部40dとを有する。
【0047】
図9より、初期化部40aは、順序付け変換行列32、照合パタン51、及びパレメータ群71を初期化する。
【0048】
探索部40bは、入力データテンソル31bの全体次元に対しては、照合パターン51との類似度が最大となるように順序付け変換行列32を決定し、ニューラルネットワーク41に対して順伝播及び逆伝播を行って入力誤差64を取得する。順序付け変換行列32については後述する。
【0049】
具体的には、探索部40bは、学習に用いる入力データテンソル31bにおいて全体次元を共通とし、局所次元を用いて入力順の入れ替えを行い、量に基づいて照合パターン51との類似度が最大となるように順序付け変換行列32を決定する。入力順の入れ替えにより、変換データテンソル61が記憶部130に作成される。
【0050】
変換データテンソル61は、局所次元と全体次元とによる組み合せの順序を入れ替えたテンソルである。テンソルをテーブルと見なした場合、レコードの順番の入れ替えに相当する。ニューラルネットワーク41の入力層の複数のノードに対して入力順が定められている。変換データテンソル61において上位の組み合せから、量をニューラルネットワーク41のノードに順に入力することで分類結果を得る。これを「順伝播」という。
【0051】
更に、探索部40bは、得られた分類結果の教師ラベル33aとの出力誤差63を算出し、パラメータ群71の各パラメータwiに出力誤差63を乗算することにより入力誤差64を取得する。これを「逆伝播」という。
【0052】
図10より、調整部40cは、入力データテンソル31bの全体次元を用いた入力順の入れ替えごとに変換データテンソル61の順序付けからの変分量83を求め、求めた変分量83と入力誤差64との内積84の平均を算出して、局所次元の順序付けに対する調整割合94を設定する。
【0053】
具体的には、調整部40cは、入力データテンソル31bの全体次元を用いた入力順の入れ替えごとに、照合パターン51との類似度が最大となる試験データテンソル81を生成し、生成した試験データテンソル81と変換データテンソル61の量の差を取得する。得られた、入力順の組み換えごとの量の差が変分量83として記憶部130に記憶される。
【0054】
次に、調整部40cは、変分量83それぞれと入力誤差64との内積84を求めて平均することにより調整割合94を取得する。得られた調整割合94は、記憶部130に記憶される。
【0055】
図11より、更新部40dは、パラメータ群71と照合パタン51とを更新する。具体的には、更新部40dは、変換データテンソル61と、順伝播による学習結果と教師ラベル33aとの出力誤差63とに基づいてパラメータ群71を更新する。また、更新部40dは、調整割合94を用いて、照合パタン51を更新する。更新部40dによる更新方法は、後述される。
【0056】
順序付け変換行列32の一例について説明する。
図12は、順序付け変換行列の例を示す図である。順序付け変換行列32は、全体次元間の対応関係と、局所次元間の対応関係とを表し、これらの対応関係以外、即ち、全体次元と局所次元の対応関係は0で固定された行列である。
【0057】
図12の順序付け変換行列32は、
図8の入力データテンソル31bから生成される行列である。入力データテンソル31b内のコドン次元の成分はb1、b2、及びb3で示され、全体次元の成分はe1、e2、・・・e8で示されている。また、変換される先の、コドン次元の成分はb’1、b’2、及びb’3で示され、全体次元の成分はe’1、e’2、・・・e’8で示されている。変換先の成分の数字(1、2、3、・・・)は、テンソル内の位置を示し、数字が小さいほど、入力順が上位であることを示すものとする。
【0058】
全体次元間の対応関係を表す全体次元行列32aは、初期状態において同じ位置に対応付けられる成分を指定する。局所次元間の対応関係を表す局所次元行列32bも、同様に、初期状態において同じ位置に対応付けられる成分を指定する。
【0059】
探索部40bにより入力データテンソル31bの量が照合パタン51と最も類似するように順序付け変換行列32が設定されることで、全体次元行列32aにおける成分間の対応関係が定まる。また、局所次元行列32bは、学習過程で照合パタン51が更新されることで、成分間の対応関係が定まる。
【0060】
一方、調整部40cにおいて全体次元行列32aの対応関係を変更することで、順序付け変換行列32による局所次元の順序付けの変動を小さくする割合が求められる(全体次元の対応関係変更による試験方法)。
【0061】
割合は、また、調整部40cが、照合パタン51の量を所定量(例えば、1)増加し、増加に応じて全体次元行列32aの変更による、局所次元行列32bでの順序付けの変動を小さくするように定められてもよい(照合パタン51の量変更による試験方法)。
【0062】
本実施例では、照合パタン51の量変更による試験方法と、全体次元変更による試験方法とにより得られた内積を全て合計し平均した値を調整割合94として用いる。
【0063】
図13は、学習処理を説明するためのフローチャート図である。
図13より、テンソル生成部20は、入力データ30を、局所次元と全体次元とに分割して入力データテンソル31bへと変換する(ステップS201)。
【0064】
具体的には、テンソル生成部20は、入力データ30、すなわち、系列データ30aを局所次元と全体次元とに分割して次元分割データ31aを作成する。そして、テンソル生成部20は、作成した次元分割データ31aに量を設定して、入力データテンソル31bを得る。
【0065】
ステップS202からS210までが、学習部40によって行われる。学習部40において、先ず、初期化部40aが、照合パタン51と、順序付け変換行列32と、ニューラルネットワーク41のパラメータ群71とを初期化する(ステップS202)。
【0066】
初期化部40aは、局所次元と全体次元の組み合せを全て作成し、組み合せごとに量をランダムに設定する。一例として、-1から1の間のランダムな値を用いてもよい。量の設定方法は、この例に限定されない。量はユーザが予め定めた方法で設定されればよい。また、初期化部40aは、
図12で示すように、全体次元行列32aでは同じ位置への変換となるように対応付けをし、全体次元行列32aと局所次元行列32b以外を0に設定した順序付け変換行列32を記憶部130に作成する。更に、初期化部40aは、パラメータ群71の重み値を初期化する。
【0067】
その後、探索部40bは、入力データテンソル31bを、全体次元の入力順を固定し、局所次元の入力順を入れ替えることで、照合パタン51に最も類似する変換データテンソル61に変換する(ステップS203)。
【0068】
探索部40bは、入れ替えパターンごとに、変換データテンソル61の量を順に並べ替えた量ベクトル61vと、照合パタン51の量を順に並べた量ベクトル51vとの内積を算出する。探索部40bは、算出した内積を、変換データテンソル61の照合パタン51に対する類似度として利用する。探索部40bは、全ての変換データテンソル61のそれぞれで得た類似度(内積)のうち、最大となる類似度を得た変換データテンソル61を特定する。
【0069】
そして、探索部40bは、順伝播及び逆伝播により入力誤差64を取得する(ステップS204)。探索部40bは、入力順に従って、最大の類似度を得た変換データテンソル61の量をニューラルネットワーク41のノードに入力し、分類結果39(
図17)を得る(順伝播)。また、探索部40bは、分類結果39と教師ラベル33aとの出力誤差63を算出し、算出した出力誤差63とパラメータ群71とから入力誤差64を得る(逆伝播)。
【0070】
次に、調整部40cは、照合パタン51の量を1つ選択し1加算、または、全体次元の順序付けを変化させて得られた試験データテンソル81の変換データテンソル61からの変分量83を算出する(ステップS205)。
【0071】
調整部40cは、照合パタン51の量を選択して1加算する。次に、調整部40cは、局所次元行列32b又は全体次元行列32aの2成分の対応関係を入れ替えた入力順ごとに試験データテンソル81を作成する。そして、調整部40cは、作成した試験データテンソル81のうち、照合パタン51に最も類似する試験データテンソル81を特定する。調整部40cは、特定した試験データテンソル81の変換データテンソル61からの変分量83を算出する。調整部40cは、同様の処理を繰り返し、照合パタン51の全ての量に対して変分量83を算出する。
【0072】
照合パタン51の量を全て選択している場合は、調整部40cは、全体次元行列32aから2成分を選択して対応付けを入れ替えて、量の入力順を変えた試験データテンソル81を作成する。そして、調整部40cは、作成した試験データテンソル81のうち、照合パタン51に最も類似する試験データテンソル81を特定する。調整部40cは、特定した試験データテンソル81の変換データテンソル61からの変分量83を算出する。調整部40cは、同様の処理を繰り返し、全体次元行列32aにおける2成分の組み合せを全てに対して変分量83を算出する。
【0073】
試験データテンソル81の量を順に並べ替えた量ベクトルと、照合パタン51の量を順に並べた量ベクトルとの内積を算出する。調整部40cは、算出した内積を、変換データテンソル61の照合パタン51に対する類似度として利用する。調整部40cは、全ての変換データテンソル61のそれぞれで得た類似度(内積)のうち、最大となる類似度を得た変換データテンソル61を特定すればよい。
【0074】
そして、調整部40cは、入力誤差64と得られた変分量83との内積84を求めて記憶部130に記憶する(ステップS206)。内積84を求めるごとに記憶部130に蓄積される。
【0075】
調整部40cは、全ての量及び順序付けを選択したか否かを判断する(ステップS207)。照合パタン51の各量の変化ごとの内積84を求め、また、全体次元行列32aにおける対応付けの変化ごとの内積84を求める処理を全て終了していない場合(ステップS207のNO)、調整部40cは、ステップS205へと戻り、上述した同様の処理を繰り返す。
【0076】
一方、照合パタン51の各量の変化ごとの内積84を求め、また、全体次元行列32aにおける対応付けの変化ごとの内積84を求める処理を全て終了している場合(ステップS207のYES)、調整部40cは、全ての内積84の平均を算出して調整割合を取得し(ステップS208)、調整部40cによる調整処理を終了する。次に、更新部40dによる更新処理が行われる。
【0077】
更新部40dは、照合パタン51の量と、順序付け変換行列32の全体次元行列32aと、ニューラルネットワークのパラメータ群71とを更新する(ステップS209)。更新部40dは、少なくとも調整割合94を用いて照合パタン51の各量を更新する。
【0078】
また、更新部40dは、調整割合94(内積84の平均値)が負であれば、全体次元行列32aが示す対応関係を変化させた方向が入力誤差64を負の方向に拡大させたと判断する。一方、更新部40dは、調整割合94が正であれば、全体次元行列32aの対応関係を変化させた方向が入力誤差64を正の方向に拡大させたと判断する。判断結果に基づいて、更新部40dは、全体次元行列32aが示す対応関係を変化させる。
【0079】
更に、更新部40dは、ニューラルネットワーク41のパラメータ群71を、少なくとも調整割合94を用いて更新する。
【0080】
更新部40dによる更新処理が終了すると、学習装置100は、更新が収束したか、又は、所定数ループしたかを判断する(ステップS210)。更新が収束せず、かつ、所定数ループしていない場合(ステップS210のNO)、学習装置100は、ステップS201へと戻り、上述した同様の処理を繰り返す。一方、更新が収束し、又は、所定数ループしている場合(ステップS208のYES)、学習装置100は、全体処理を終了する。
【0081】
上述した処理において、学習を目的とした入力データ30は、通常、複数の系列データ30aを含み、系列データ30aごとの入力データテンソル31bが生成される。従って、調整割合94は、全ての入力データテンソル31bに対して、ステップS203からS207を行って得られた内積の平均値となる。
【0082】
図14は、解析部による解析処理を説明するための図である。
図14より、入力された系列データ30aは、上述した学習処理と同様に、テンソル生成部20により、系列データ30aが局所次元と全体次元とに分割され、局所次元と全体次元とで特定される塩基の量を設定することで入力データテンソル31bへと変換される。
【0083】
そして、解析部60は、入力データテンソル31bの入力順を変更して、照合パタン51の入力順の量に最も類似する変換データテンソル61へと変換する。解析部60は、得られた変換データテンソル61に基づく入力順で、量をニューラルネットワーク41へと入力し、分類結果39を得る。
【0084】
解析部60は、学習部40により学習した照合パタン51を用いて、テンソル生成部20によって生成された入力データテンソル31bのニューラルネットワーク41への入力順を最適化するため、高精度の分類結果39を得ることができる。
【0085】
次に、学習装置100による系列データ30aに対する学習部40による学習処理について説明する。先ず、学習処理のうち、探索部40bによる探索処理を
図15から
図17を参照して説明する。以下、上述の遺伝子配列とは異なる配列を示す系列データ30aを入力データ30とし、(局所次元、全体次元、量)は、
(b1, e1,
3)
(b2, e1,
1)
(b1, e2, 2)
(b2, e2, 0)
で表した簡潔な例で説明する。即ち、全体次元行列32aはe1及びe2を成分とし、局所次元行列32bはb1及びb2を成分とする。
【0086】
また、初期化部40aにより、照合パタン51が、
(b’1, e’1, 0.2)
(b’2, e’1, 0.1)
(b’1, e’2, -0.3)
(b’2, e’2, 0.4)
に初期化されたものとする。量には、-1から1の間でランダムに値が設定された例で説明するが、この設定方法に限定されない。
【0087】
図15は、探索部による探索処理の一例を説明するための図である。
図15より、探索部40bは、入力データテンソル31bに基づいて、入力順の入れ替えパターンごとに照合パタン51との類似度を算出し、得られた類似度のうち最大の類似度を得られた入れ替えパターン25に基づいて変換データテンソル61を生成する。
【0088】
探索部40bは、変換データテンソル61から順に量を、ニューラルネットワーク41の入力層41aに入力する。一例として、変換データテンソル61の一番目の量を、入力層41aにおいて予め定めた順に従って一番目のノードに入力する。変換データテンソル61の二番目以降の量も同様である。本実施例では、入力層41aのノードの上から下への順を入力順とする。
【0089】
したがって、変換データテンソル61の一番目の量「1」が入力層41aの一番目のノードに入力され、変換データテンソル61の二番目の量「3」が入力層41aの二番目のノードに入力され、変換データテンソル61の三番目の量「0」が入力層41aの三番目のノードに入力され、変換データテンソル61の四番目の量「2」が入力層41aの四番目のノードに入力される。
【0090】
入力層41aにおいて全ての量が入力されると、ニューラルネットワーク41は、順伝播42aによりデータを学習して、出力層41bの各ノードで出力値を取得し、出力値を並べた分類結果39を出力する。分類結果39は、分類A、分類B、及び分類Cのそれぞれの確からしさを示してもよいし、最も確からしい分類のみを示すようにしてもよい。
【0091】
更に、探索部40bは、得られた分類結果39と、系列データ30aに関連付けられた教師ラベル33aとの出力誤差63を用いて、ニューラルネットワーク41を逆伝播42bさせて、入力誤差64を取得する。
【0092】
以下、ニューラルネットワーク41に関し、
図16に示すような設定例を用いて説明する。
【0093】
図16は、ニューラルネットワークに関する設定例を示す図である。
図16(A)は、
図15に示すニューラルネットワーク41の簡易例を示す。ニューラルネットワーク41は、入力層41aと、出力層41bの2つの層を有する。入力層41aは複数のノードを有し、出力層41bは1つのノードを有する。
【0094】
図16(B)は、ニューラルネットワーク41の各ノードに与えられたパラメータの値を示す。パラメータは、ノードごとの重み値を指定し、w1、w2、w3、w4、・・・で示される。それぞれの重み値は、初期化部40aにより初期化され、
図16(B)では、w1に「1.2」、w2に「
-0.1」、w3に「-0.9」、w4に「0.6」のように設定された例を示している。
【0095】
図16(C)は、分類と教師ラベルとの対応関係の一例を示している。
図16(C)において、系列データ30aは、分類A、分類B、分類C等のいずれかに分類され、それぞれの分類ごとに教師ラベル33aが対応付けられている。この例では、分類Aに「1.0」、分類Bに「2.0」、分類Cに「3.0」等が設定されている。
【0096】
図16の設定例で、教師データDB33に含まれる、分類Aの教師ラベル33aが付与された系列データ30aを用いて、分類Aに精度良く分類されるように学習する場合で説明する。値「1.0」の教師ラベル33aを用いる。先ず、
図15の順伝播42a及び逆伝播42bについて詳述する。
【0097】
図17は、順伝播及び逆伝播を説明するための図である。
図17より、ニューラルネットワーク41の順伝播42aでは、変換データテンソル61の量の値を入力順に示す量ベクトル61vと、入力層41aのノードの並び順に重み値を示した重みベクトル71vとの内積を算出することで、分類結果39を取得する。
【0098】
この例では、
1 × 1.2 = 1.2
3 ×(-0.1)= -0.3
0 ×(-0.9)= 0
2 × 0.6 = 1.2
を得て、全ての値を合算することで内積「2.1(=1.2-0.3+0+1.2)」を得る。内積「2.1」が分類結果39となる。
【0099】
次に、ニューラルネットワーク41では、分類結果39を用いて、逆伝播42bが行われる。分類Aの教師ラベル33aは「1.0」を示す。分類結果39から教師ラベル33aを減算して、出力誤差63を得る。即ち、
2.1 - 1.0 = 1.1
重みベクトル71vの各成分に出力誤差63を乗算することで、入力誤差64を得る。即ち、
1.1 × 1.2 、よって約1.3
1.1 ×(-0.1)、よって約-0.1
1.1 ×(-0.9)、よって約-1.0
1.1 × 0.6 、よって約0.7
を得て、(1.3, -0.1, -1.0, 0.7)が入力誤差64となる。
【0100】
次に、調整部40cによる調整処理を
図18から
図22で説明する。調整割合94を取得するための処理として、先ず、照合パタン51の量変更による試験方法について、
図18から
図21を参照して説明する。
【0101】
図18は、照合パタンの量変更による試験方法を説明するための第1の図である。調整部40cは、照合パタン51の先頭のレコードから順に量を1増加させて試験を行う。
図18では、照合パタン51において、最初のレコードで示される次元パタン(b’1, e’1)の量を1増加した場合の処理例を説明する。
【0102】
次元パタン(b’1, e’1)の量を1増加した照合パタン52aが作成され、照合パタン52aの第1レコードの量は「1.2」となる。調整部40cは、入力データテンソル31bに対して、全体次元行列32a又は局所次元行列32bの2つの成分間で対応関係を入れ替えながら照合パタン52aに最も類似する試験データテンソル81aを探索する試験的探索を行う。
【0103】
試験的探索では、調整部40cは、全体次元行列32aの2つの成分、又は、局所次元行列32bの2つの成分を選択して試験データテンソル81aを生成する。調整部40cは、生成した試験データテンソル81aの量を成分として示す量ベクトル81vと、照合パタン52aの量を成分として示す量ベクトル52vとの内積(類似度)を求める。
【0104】
調整部40cは、全ての対応関係の入れ替えを終了すると、入れ替えごとに算出した内積のうち最も大きい値となった試験データテンソル81aを特定する。即ち、2つの成分の選択ごとに生成された複数の試験データテンソル81aの中から、照合パタン52aに最も類似する試験データテンソル81aを定める。この例では、全体次元行列32aにおいて、入れ替えパタン35aのときに試験データテンソル81aが最も照合パタン52aに類似する。
【0105】
そして、調整部40cは、照合パタン52aに最も類似する試験データテンソル81aと、探索部40bが生成した変換データテンソル61との間の変分量83を算出する。具体的には、試験データテンソル81aの量ベクトル81vと、変換データテンソル61の量ベクトル61vとの差分を算出することにより変分量83を得る。この例では、
第1成分同士の減算により、3-1 = 2
第2成分同士の減算により、1-3 = -2
第3成分同士の減算により、2-0 = 2
第4成分同士の減算により、0-2 = -2
を得る。従って、変分量83は、(2, -2, 2, -2)となる。
【0106】
次に、調整部40cは、探索部40bにより算出された入力誤差64と、変分量83との内積を算出する。この例では、
1.3×2 + (-0.1)×(-2) + (-1.0)×2 + 0.7×(-2) = -0.6
を得る。調整部40cは、次元パタン(b’1, e’1)の量の変化が局所次元の順序付けの変動に及ぼす影響を示す値「-0.6」を内積データ85に蓄積する。
【0107】
図19は、照合パタンの量変更による試験方法を説明するための第2の図である。
図19では、照合パタン51において、第2レコードで示される次元パタン(b’2, e’1)の量を1増加した場合の処理例を説明する。
【0108】
次元パタン(b’2, e’1)の量を1増加した照合パタン52bが作成され、照合パタン52bの第2レコードの量は「1.1」となる。調整部40cは、入力データテンソル31bに対して、照合パタン52bに最も類似する試験データテンソル81bを探索する試験的探索を行う。試験的探索は、
図18における試験的探索と同様であるため詳細な説明を省略する。
【0109】
この例では、入れ替えパタン35bのときに、照合パタン52bに最も類似する試験データテンソル81bが特定される。調整部40cは、照合パタン52bに最も類似する試験データテンソル81bと、探索部40bが生成した変換データテンソル61との間の変分量83を算出する。試験データテンソル81bの量ベクトル81vと、変換データテンソル61の量ベクトル61vとの差分は、
第1成分同士の減算により、1-1 = 0
第2成分同士の減算により、3-3 = 0
第3成分同士の減算により、0-0 = 0
第4成分同士の減算により、2-2 = 0
を得る。従って、変分量83は、(0, 0, 0, 0)となる。
【0110】
次に、調整部40cは、探索部40bにより算出された入力誤差64と、変分量83との内積を算出する。この例では、
1.3×0 + (-0.1)×0 + (-1.0)×0 + 0.7×0 = 0.0
を得る。調整部40cは、次元パタン(b’2, e’1)の量の変化が局所次元の順序付けの変動に及ぼす影響を示す値「0.0」を内積データ85に蓄積する。
【0111】
図20は、照合パタンの量変更による試験方法を説明するための第3の図である。
図20では、照合パタン51において、第3レコードで示される次元パタン(b’1, e’2)の量を1増加した場合の処理例を説明する。
【0112】
次元パタン(b’1, e’2)の量を1増加した照合パタン52cが作成され、照合パタン52cの第3レコードの量は「0.7」となる。調整部40cは、入力データテンソル31bに対して、照合パタン52cに最も類似する試験データテンソル81cを探索する試験的探索を行う。試験的探索は、
図18における試験的探索と同様であるため詳細な説明を省略する。
【0113】
この例では、入れ替えパタン35cのときに、照合パタン52cに最も類似する試験データテンソル81cが特定される。調整部40cは、照合パタン52cに最も類似する試験データテンソル81cと、探索部40bが生成した変換データテンソル61との間の変分量83を算出する。試験データテンソル81cの量ベクトル81vと、変換データテンソル61の量ベクトル61vとの差分は、
第1成分同士の減算により、2-1 = 1
第2成分同士の減算により、0-3 = -3
第3成分同士の減算により、3-0 = 3
第4成分同士の減算により、1-2 = -1
を得る。従って、変分量83は、(1, -3, 3, -1)となる。
【0114】
次に、調整部40cは、探索部40bにより算出された入力誤差64と、変分量83との内積を算出する。この例では、
1.3×1 + (-0.1)×(-3) + (-1.0)×3 + 0.7×(-1) = -2.1
を得る。調整部40cは、次元パタン(b’1, e’2)の量の変化が局所次元の順序付けの変動に及ぼす影響を示す値「-2.1」を内積データ85に蓄積する。
【0115】
図21は、照合パタンの量変更による試験方法を説明するための第4の図である。
図21では、照合パタン51において、第4レコードで示される次元パタン(b’2, e’2)の量を1増加した場合の処理例を説明する。
【0116】
次元パタン(b’2, e’2)の量を1増加した照合パタン52dが作成され、照合パタン52dの第3レコードの量は「1.4」となる。調整部40cは、入力データテンソル31bに対して、照合パタン52dに最も類似する試験データテンソル81dを探索する試験的探索を行う。試験的探索は、
図18における試験的探索と同様であるため詳細な説明を省略する。
【0117】
この例では、入れ替えパタン35dのときに、照合パタン52dに最も類似する試験データテンソル81dが特定される。調整部40cは、照合パタン52dに最も類似する試験データテンソル81dと、探索部40bが生成した変換データテンソル61との間の変分量83を算出する。試験データテンソル81dの量ベクトル81vと、変換データテンソル61の量ベクトル61vとの差分は、
第1成分同士の減算により、0-1 = -1
第2成分同士の減算により、2-3 = -1
第3成分同士の減算により、1-0 = 1
第4成分同士の減算により、3-2 = 1
を得る。従って、変分量83は、(-1, -1, 1, 1)となる。
【0118】
次に、調整部40cは、探索部40bにより算出された入力誤差64と、変分量83との内積を算出する。この例では、
1.3×(-1) + (-0.1)×(-1) + (-1.0)×1 + 0.7×1 = -1.5
を得る。調整部40cは、次元パタン(b’1, e’2)の量の変化が局所次元の順序付けの変動に及ぼす影響を示す値「-1.5」を内積データ85に蓄積する。
【0119】
次に、全体次元の対応関係変更による試験方法について、
図22を参照して説明する。
図22は、全体次元の対応関係変更による試験方法を説明するための図である。
図22において、照合パタン51において、全体次元行列32aにおける対応関係を変化させた場合の処理例を説明する。
【0120】
探索部40bでの処理では、全体次元行列32aの成分の対応付けは固定であったが、調整部40cでは、全体次元から2つの成分を選択して入れ替えた対応付けに対して、局所次元の成分の対応付けを入れ替えた入れ替えパターンごとに、試験データテンソル81eを作成する。
【0121】
そして、調整部40cは、作成した試験データテンソル81eのうち、照合パタン51と最も類似する試験データテンソル81eを選択した後、変換データテンソル61との変分量83を算出し、入力誤差64との内積を求めて、内積データ85に追加する。
【0122】
この例では、全体次元行列32aでは、成分e1及びe2の2つのみであるため、調整部40cは、成分e1と成分e2とを入れ替えた場合の、局所次元の2成分間の入れ替えごとに試験データテンソル81eを作成する。
【0123】
この試験方法においても、内積を類似度として利用する。具体的には、調整部40cは、照合パタン51の量を並べた量ベクトル51vと、試験データテンソル81eの量を並べた量ベクトル81vとの内積を算出する。そして、調整部40cは、照合パタン51と最も類似する試験データテンソル81eを特定する。
【0124】
この例では、入れ替えパタン35eのときに、照合パタン51に最も類似する試験データテンソル81eが特定される。調整部40cは、照合パタン51に最も類似する試験データテンソル81eと、探索部40bが生成した変換データテンソル61との間の変分量83を算出する。試験データテンソル81eの量ベクトル81vと、変換データテンソル61の量ベクトル61vとの差分は、
第1成分同士の減算により、2-1 = 1
第2成分同士の減算により、0-3 = -3
第3成分同士の減算により、1-0 = 1
第4成分同士の減算により、3-2 = 1
を得る。従って、変分量83は、(1, -3, 1, 1)となる。
【0125】
次に、調整部40cは、探索部40bにより算出された入力誤差64と、変分量83との内積を算出する。この例では、
1.3×1 + (-0.1)×(-3) + (-1.0)×1 + 0.7×1 = 1.3
を得る。調整部40cは、全体次元の対応関係の変化が局所次元の順序付けに及ぼす影響の大きさを示す値「1.3」を内積データ85に蓄積する。
【0126】
この例では、全体次元の2成分の組み合せは1つであるが、3個の成分であれば6通りの組み合せそれぞれの更新方向を示す値を算出し、内積データ85に蓄積する。4成分以上の場合も同様である。
【0127】
図23は、調整部による調整割合の算出例を説明するための図である。
図23より、調整部40cは、内積データ85に蓄積された値を合計し平均値を算出する。
【0128】
すなわち、内積データ85に基づいて、
(-0.6) + 0.0 + (-2.1) + (-1.5) + 1.3 = -2.9
を得るため、
(-2.9) / 5 = -0.6
より、平均値「-0.6」を得る。この値「-0.6」は、局所次元の順序付けの変動が入力誤差64を拡大する大きさと方向とを示し、調整割合94として記憶部130に記憶される。
【0129】
図24は、更新部による更新処理の例を示す図である。
図24より、更新部40dは、ニューラルネットワーク41のステップ数αを考慮して、パラメータ群71と照合パタン51とを更新する。ステップ数は、階層から階層への伝播回数であり、
図16(A)の例では、ステップ数αは1となる。
【0130】
更新部40dは、変換データテンソル61から得られる量ベクトル61vの各成分の値に出力誤差63を乗算し、乗算後の各成分にステップ数αを乗算することで、パラメータ群71を最適化する補正値74を得る。その後、更新部40dは、パラメータ群71から得られる重みベクトル71vから補正値74を減算し、パラメータ群71を更新する。
【0131】
具体的には、
第1成分同士の減算により、 1.2-1.1 = 0.1
第2成分同士の減算により、-0.1-3.3 = -3.4
第3成分同士の減算により、-0.9-0.0 = -0.9
第4成分同士の減算により、 0.6-2.2 = -1.8
を得る。従って、重みベクトル71vは、(0.1, -3.4, -0.9, -1.8)へと更新される。
【0132】
また、更新部40dは、照合パタン51から得られる量ベクトル51vの各成分の値から、ステップ数αを乗算した調整割合94を減算して、照合パタン51を更新する。
【0133】
具体的には、ステップ数αを1とし、
第1成分からの減算により、 0.2-(1×(-0.6)) = 0.8
第2成分からの減算により、 0.1-(1×(-0.6)) = 0.7
第3成分からの減算により、-0.3-(1×(-0.6)) = 0.3
第4成分からの減算により、 0.4-(1×(-0.6)) = 1.0
を得る。従って、量ベクトル51vは、(0.8, 0.7, 0.3, 1.0)へと更新される。
【0134】
図25は、系列データに対して、学習装置が実現する学習内容を説明するための図である。
図25より、学習装置100は、遺伝子配列を表す系列データ30aを、局所次元及び全体次元に分割することで、局所次元では、コドン2ごとの塩基の並びの特徴を学習すし(i)、全体次元では、コドン2の特徴の組み合せにより得られる特徴を学習する(ii)。
【0135】
学習装置100は、系列データ30aの特徴として、
・主要コドンIを4個
・主要コドンIIを1個
を特定し(iii)、タンパク質の種別分類を精度良く行う(iv)。
【0136】
学習装置100では、学習により、系列データ30aに対して、タンパク質の種別の分類において、3回出現する「AAG」と、1回出現する「CGT」の2つのコドン2を主要コドンIとして判別可能となり、1回出現する「ATC」を主要コドンIIとして判別可能となる。また、「TTC」、「AAT」、及び「AGA」をその他コドンであると判別している。「TTC」、「AAT」、及び「AGA」は、それぞれ1回出現している。
【0137】
本実施例における学習装置100では、複数の局所的な特徴の組み合せにより特徴づけられる系列データ30aに対して、分類精度を最適とするニューラルネットワーク41への入力順、即ち、照合パタン51を学習する。言い換えると、本実施例により、学習装置100は、タンパク質の種別分類に重要な主要コドンを判別する能力の獲得する。本実施例を機械学習に適応した場合、遺伝子配列に基づくタンパク質の種別分類では、概ね0.96以上の精度を実現し得る。
【0138】
上述では、入力データ30が系列データ30aで説明したが、入力データ30がスクランブル画像である場合にも、上述した実施例を適用することで分類精度を向上させることができる。スクランブル画像の場合の処理例について説明する。以下の処理例においても、学習装置100の機能構成例は、前述した
図6、
図9~
図11、及び
図14と同様である。
【0139】
先ず、スクランブル画像について説明する。
図26は、スクランブル画像の例を示す図である。
図26(A)に示すスクランブル画像9scは、15×15画素のサイズであり、3×3画素を1つのブロック6kでスクランブルされている画像の例である。ブロック6kは、画像サイズに基づき決定されればよく、3×3画素に限定されない。また、1ブロック6kのサイズは、局所次元32bを生成するための局所単位となる。
【0140】
図26(B)より、各ブロック6k内では画素は元画像の一部を示し、3画素の並び順で一部を連続的に表すため、その並び順に特徴がある。また、各ブロック6k外では、隣接させるブロック6kとの組み合せにより元画像の特徴が現れる。
【0141】
ここで、スクランブル画像9scの生成方法の一例について説明する。
図27は、スクランブル画像の生成方法を説明するための図である。
図27(A)より、元画像9orを所定画素数のブロック6kに分割する。理解を容易とするため、行ごとに異なる色を割り当て(横方向は同一色)、列ごとに異なる数字(縦方向は同一数字)を割り当てている。
【0142】
図27(B)に示す画像9pは、元画像9orの横軸をスクランブルした結果を示している。ブロック6kの数字順がバラバラになる。更に縦軸をスクランブルすると、ブロック6kの色順にバラバラになり、
図27(C)に示すようなスクランブル画像9scを得る。
図27(C)に示すスクランブル画像9scでは、列9cをみると、同じ数字が縦に並び、行9rをみると、同じ色が横に並んでいる。
【0143】
スクランブル画像9scでは、ブロック内次元の特徴として、目が映っている、又は口が映っている等の被写体の一部を特定できる場合がある。また、ブロック外次元の特徴としては、ある二つのブロック6kを組み合わせると耳が現れる、縦長な画像、青っぽい画像等の元画像9orの全体的な特徴を抽出できる。
【0144】
このような考えから、ブロック内次元を上述した局所次元に適応し、ブロック外次元を上述した全体次元に適応することで、分類精度を向上する。
【0145】
図28は、スクランブル画像の次元分割を説明するための図である。
図28において、スクランブル画像9scのブロック内次元7b及びブロック外次元7aは共に2次元で表される。
【0146】
ブロック内次元7bの成分の組み換え行列8bをUxとUyで表し、逆伝播で学習させて入力順を定める。また、ブロック外次元7aの成分の組み換え行列8aをUXとUYで表し、照合パタン51に対して最も類似するようにして、変換データテンソル61を得るようにすればよい。
【0147】
図29は、分類精度の比較例を示す図である。
図29(A)は、Fashion MNISTのデータセットから選択した画像91orをスクランブル画像91scに変換した例を示している。
図29(B)は、CMU Faces Imagesのデータセットから選択した画像92orをスクランブル画像92scに変換した例を示している。
【0148】
図29(A)のスクランブル画像91scと、
図29(B)のスクランブル画像92scとを、本実施例との比較対象として、ストライド幅を合わせたCNN(Convolutional Neural Network)(以下、比較技術1という)と、ヒストグラム化及びSVM(Support Vector Machine)(以下、比較技術2という)とを用いて、分類精度を比較し、その結果を
図29(C)に示している。
【0149】
図29(C)より、
図29(A)のスクランブル画像91scの分類精度は、本実施例で「0.725」、比較技術1で「0.651」、そして、比較技術2で「0.595」を示した。また、
図29(B)のスクランブル画像92scの分類精度は、本実施例で「0.818」、比較技術1で「0.560」、そして、比較技術2で「0.309」を示した。
【0150】
これらの結果より、入力データ30を局所次元と全体次元とに分割して作成した入力データテンソル31bにより、ニューラルネットワーク41への入力順を最適化した本実施例では、いずれの例においても機械学習の分類精度を向上させたと言える。
【0151】
上述した本実施例における学習装置100は、ネットワークシステムにおいて利用されてもよい。
図30は、ネットワークシステムの例を示す図である。
図30に示すネットワークシステム1000では、複数の端末5がネットワーク1ntを介して学習装置100に接続可能である。
【0152】
ネットワークシステム1000において、学習装置100は、
図5に示すハードウェア構成を有する。端末5は、情報処理装置であって、CPU501と、主記憶装置502と、補助記憶装置503と、入力装置504と、表示装置505と、通信I/F507と、ドライブ装置508とを有し、バスB2に接続される。補助記憶装置503、入力装置504、及び端末5がアクセス可能な外部記憶装置を含めて、記憶部530という。
【0153】
CPU501は、端末5を制御するプロセッサに相当し、記憶部530に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置504は、ユーザによって操作され、操作に応じてデータを入力し、表示装置505は、ユーザーインタフェースとして様々な画面を表示する。入力装置504と、表示装置505とは、一体化したタッチパネルであっても良い。通信I/F507は、外部装置との通信を制御する。
【0154】
記憶媒体509(例えば、CD-ROM(Compact Disc Read-Only Memory)等)に記憶された本実施例に係るプログラムは、ドライブ装置508を介して記憶部530にインストールされ、CPU501によって実行可能となる。
【0155】
尚、本実施例に係るプログラムを格納する記憶媒体509はCD-ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0156】
上述より、本実施例によれば、系列データ30aを局所次元と全体次元に分割した1つの入力データテンソル31bで表現し、局所次元における成分の並び順の特徴と、全体次元における成分の組み合せの特徴の学習を同時に行うことで、分類精度を向上する。
【0157】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【0158】
実施例に記載の、テンソル生成部20は、生成部の一例であり、学習部40の探索部40b及び調整部40eは、組み換え部の一例である。
【0159】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、
前記入力データテンソルを変換行列により変換した変換データテンソルをニューラルネットワークを用いて出力するテンソル変換を用いた学習において、
前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように前記変換行列を組み換え、
前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する
処理をコンピュータに実行させる学習プログラム。
(付記2)
前記系列データは画像データであり、前記局所単位は、前記画像データの画像サイズに基づき決定されることを特徴とする付記1記載の学習プログラム。
(付記3)
前記局所次元及び前記全体次元の各成分は2次元成分であることを特徴とする付記2記載の学習プログラム。
(付記4)
前記系列データは遺伝子配列データであり、前記局所単位は、コドンの単位であることを特徴とする付記1記載の学習プログラム。
(付記5)
前記局所次元及び前記全体次元とによって入力値を定めて、前記入力データテンソルを生成することを特徴とする付記4記載の学習プログラム。
(付記6)
前記入力値は、前記局所次元と前記全体次元とによって特定される塩基に特有な値を示すことを特徴とする付記4記載の学習プログラム。
(付記7)
分類対象のデータとして入力された系列データに対し、該系列データを前記局所単位ごとに分割することにより、前記局所次元及び前記全体次元を有する入力データテンソルを生成し、
生成した前記入力データテンソルを、前記照合パタンに類似させることで前記変換データテンソルへと変換し、
前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを分類した結果を出力する
処理をコンピュータに実行させる付記1記載の学習プログラム。
(付記8)
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、
前記入力データテンソルを変換行列により変換した変換データテンソルをニューラルネットワークを用いて出力するテンソル変換を用いた学習において、
前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように前記変換行列を組み換え、
前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する
処理をコンピュータが行う学習方法。
(付記9)
分類対象のデータとして入力された系列データに対し、該系列データを前記局所単位ごとに分割することにより、前記局所次元及び前記全体次元を有する入力データテンソルを生成し、
生成した前記入力データテンソルを、前記照合パタンに類似させることで前記変換データテンソルへと変換し、
前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを分類した結果を出力する
処理をコンピュータが行う付記8記載の学習方法。
(付記10)
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成する生成部と、
前記入力データテンソルを変換行列により変換した変換データテンソルをニューラルネットワークを用いて出力するテンソル変換を用いた学習を行う学習部とを有し、
前記学習部は、
前記入力データテンソルの全体次元に対しては、前記テンソル変換で基準となる照合パタンとの類似度が最大となるように前記変換行列を組み換える組み換え部と、
前記入力データテンソルの局所次元に対しては、前記学習の過程で前記照合パタンを更新する更新部と
を有することを特徴とする学習装置。
(付記11)
分類対象のデータとして入力された系列データに対し、該系列データを前記局所単位ごとに分割することにより、前記局所次元及び前記全体次元を有する入力データテンソルを生成する生成部と、
生成した前記入力データテンソルを、前記照合パタンに類似させることで前記変換データテンソルへと変換し、前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを分類した結果を出力する解析部と
を有することを特徴とする付記10記載の学習装置。
(付記12)
データを構成する各要素の順序が規定された系列データに対し、該系列データを局所単位ごとに分割することにより、局所次元及び全体次元を有する入力データテンソルを生成し、
生成した前記入力データテンソルを、該入力データテンソルの入力値とニューラルネットワークのノードとの対応関係を最適化する照合パタンに類似させた変換データテンソルへと変換し、
前記変換データテンソルの入力値を前記ニューラルネットワークのノードに入力することで、前記データを学習する
処理をコンピュータに実行させる学習プログラム。
【符号の説明】
【0160】
20 テンソル生成部
30 入力データ
30a 系列データ
31a 次元分割データ、 31b 入力データテンソル
32 順序付け変換行列
33 教師データDB 33a 教師ラベル
40 学習部
40a 初期化部、 40b 探索部
40c 調整部、 40e 更新部
41 楽手結果
51 照合パタン
60 解析部
61 変換データテンソル
63 出力誤差 64 入力誤差
71 ニューラルネットワーク
81 試験データテンソル
83 変分量 84 内積
94 調整割合
100 学習装置