(57)【要約】【課題】複数のデータ要素が並ぶ系列データ間において、本来類似する２つの系列データの少なくとも一方においてデータ要素が挿入又は削除された場合であっても、当該２つの系列データの類似性をより的確に検出可能なニューラルネットワーク装置を提供する。【解決手段】ニューラルネットワーク１４には、タンパク質を表す文字列が入力データとして入力される。類似度算出部２０は、入力データの一部分である部分入力データＸと、ニューラルネットワーク１４のパラメータの１つであり、同じく文字列であるフィルタＷとの間の類似度を算出する。具体的には、類似度算出部２０は、部分入力データＸとフィルタＷの少なくとも一方において、少なくとも１つの文字を削除した場合の部分入力データＸとフィルタＷとの間の類似度も考慮して、部分入力データＸとフィルタＷとの間の類似度を算出する。【選択図】図１
2019159988.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ要素が並ぶ系列データである入力データが入力されるニューラルネットワーク装置であって、
前記入力データの少なくとも一部分である部分入力データと、複数のデータ要素が並ぶ系列データであるフィルタとの間の系列データ類似度を算出する類似度算出部であって、前記部分入力データ及び前記フィルタの少なくとも一方において、少なくとも１つの前記データ要素を削除した場合の、前記部分入力データと前記フィルタとの間の類似度に基づいて、前記系列データ類似度を算出する類似度算出部と、
前記部分入力データと前記フィルタとの間の前記系列データ類似度に基づいて、前記ニューラルネットワーク装置に関するパラメータを学習する学習部と、
を備えることを特徴とするニューラルネットワーク装置。
【請求項２】
前記類似度算出部は、前記部分入力データに含まれる各データ要素を比較入力データ要素列に加える処理、及び、前記フィルタに含まれる各データ要素を比較フィルタ要素列に加える処理の少なくとも一方を実行して前記比較入力データ要素列と前記比較フィルタ要素列との間の類似度である中間類似度を算出する処理を、順次、前記部分入力データ及び前記フィルタの並びにおける最初から最後まで繰り返すことで前記系列データ類似度を算出し、各中間類似度の算出処理において、前記データ要素を前記比較入力データ要素列及び前記比較フィルタ要素列の双方に追加する場合と、前記データ要素を前記比較入力データ要素列に追加せず前記比較フィルタ要素列に追加する場合と、前記データ要素を前記比較入力データ要素列に追加し前記比較フィルタ要素列に追加しない場合それぞれの前記比較入力データ要素列と前記比較フィルタ要素列との間の類似度のうち、最も大きい類似度を前記中間類似度として算出する、
ことを特徴とする請求項１に記載のニューラルネットワーク装置。
【請求項３】
前記類似度算出部は、前記比較入力データ要素列及び前記比較フィルタ要素列のいずれかに前記データ要素を追加しない場合に、データ要素の削除に要するコストである削除コストを考慮して、前記中間類似度を算出する、
ことを特徴とする請求項１又は２に記載のニューラルネットワーク装置。
【請求項４】
前記学習部は、前記部分入力データ、前記フィルタ、及び前記削除コストに関する前記系列データ類似度に関する偏微分に基づいて、前記ニューラルネットワーク装置に関するパラメータを学習する、
ことを特徴とする請求項１から３のいずれか１項に記載のニューラルネットワーク装置。
【請求項５】
コンピュータを、
複数の入力データ要素が並ぶ系列データである入力データが入力されるニューラルネットワーク装置であって、
前記入力データの少なくとも一部分である部分入力データと、複数のデータ要素が並ぶ系列データであるフィルタとの間の系列データ類似度を算出する類似度算出部であって、前記部分入力データ及び前記フィルタの少なくとも一方において、少なくとも１つの前記データ要素を削除した場合の、前記部分入力データと前記フィルタとの間の類似度に基づいて、前記系列データ類似度を算出する類似度算出部と、
前記部分入力データと前記フィルタとの間の前記系列データ類似度に基づいて、前記ニューラルネットワーク装置に関するパラメータを学習する学習部と、
を備えるニューラルネットワーク装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク装置及びプログラムに関する。
【背景技術】
【０００２】
従来、データ要素が１次元に並ぶ系列データを入力データとし、入力データの中にパターンを見つけることで入力データの特徴を抽出する１次元畳み込みニューラルネットワークが提案されている。例えば、非特許文献１及び２には、系列データとしてのタンパク質を表す文字列を入力データとし、当該文字列からタンパク質の二次構造を予測する１次元畳み込みニューラルネットワークが開示されている。
【０００３】
また、非特許文献３には、動的時間伸縮法（Dynamic Time Warping）と呼ばれる手法により２つの系列データの間の誤差関数を算出し、当該誤差関数の偏微分を行うことで当該誤差関数の評価を行うことが開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Z. Li and Y. Yu. "Protein Secondary Structure Prediction Using Cascaded Convolutional and Recurrent Neural Networks" In Proc. IJCAI’16, pp. 2560-2567.
【非特許文献２】S. Wang, J. Peng, J. Ma, and J. Xu. "Protein Secondary Structure Prediction Using Deep Convolutional Neural Fields" Scientific reports, Vol. 6, No. 18962, 2016.
【非特許文献３】M. Cuturi, M. Blondel, "Soft-DTW: a Differentiable Loss Function for Time-Series" In Proc. ICML’17
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１次元畳み込みニューラルネットワークにおいては、２つの系列データ間の比較を図７（ａ）に示すようなPosition-wise Comparionにより行っていた。Position-wise Comparionは、系列データ１及び系列データ２のｉ番目のデータ要素同士を順次比較するという方法である。
【０００６】
しかしながら、Position-wise Comparionによると、２つの系列データの少なくとも一方においてデータ要素が挿入又は削除された場合、本来類似している２つの系列データの類似度が低く判定される場合があった。例えば、図７（ｂ）に示す通り、系列データ１及び系列データ２は本来類似する系列データであるが、系列データ１の２番目に外乱要素である文字「Ｌ」が挿入されたものである。この場合、図７（ａ）に示すようなPosition-wise Comparionによると、系列データ１と系列データ２との間で、２〜４番目の文字がいずれも異なるため、系列データ１と系列データ２との間の類似度が低く誤判定されてしまう。
【０００７】
本発明の目的は、複数のデータ要素が並ぶ系列データ間において、本来類似する２つの系列データの少なくとも一方においてデータ要素が挿入又は削除された場合であっても、当該２つの系列データの類似性をより的確に検出可能なニューラルネットワーク装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、複数のデータ要素が並ぶ系列データである入力データが入力されるニューラルネットワーク装置であって、前記入力データの少なくとも一部分である部分入力データと、複数のデータ要素が並ぶ系列データであるフィルタとの間の系列データ類似度を算出する類似度算出部であって、前記部分入力データ及び前記フィルタの少なくとも一方において、少なくとも１つの前記データ要素を削除した場合の、前記部分入力データと前記フィルタとの間の類似度に基づいて、前記系列データ類似度を算出する類似度算出部と、前記部分入力データと前記フィルタとの間の前記系列データ類似度に基づいて、前記ニューラルネットワーク装置に関するパラメータを学習する学習部と、を備えることを特徴とするニューラルネットワーク装置である。
【０００９】
望ましくは、前記類似度算出部は、前記部分入力データに含まれる各データ要素を比較入力データ要素列に加える処理、及び、前記フィルタに含まれる各データ要素を比較フィルタ要素列に加える処理の少なくとも一方を実行して前記比較入力データ要素列と前記比較フィルタ要素列との間の類似度である中間類似度を算出する処理を、順次、前記部分入力データ及び前記フィルタの並びにおける最初から最後まで繰り返すことで前記系列データ類似度を算出し、各中間類似度の算出処理において、前記データ要素を前記比較入力データ要素列及び前記比較フィルタ要素列の双方に追加する場合と、前記データ要素を前記比較入力データ要素列に追加せず前記比較フィルタ要素列に追加する場合と、前記データ要素を前記比較入力データ要素列に追加し前記比較フィルタ要素列に追加しない場合それぞれの前記比較入力データ要素列と前記比較フィルタ要素列との間の類似度のうち、最も大きい類似度を前記中間類似度として算出する、ことを特徴とする。
【００１０】
望ましくは、前記類似度算出部は、前記比較入力データ要素列及び前記比較フィルタ要素列のいずれかに前記データ要素を追加しない場合に、データ要素の削除に要するコストである削除コストを考慮して、前記中間類似度を算出する、ことを特徴とする。
【００１１】
望ましくは、前記学習部は、前記部分入力データ、前記フィルタ、及び前記削除コストに関する前記系列データ類似度に関する偏微分に基づいて、前記ニューラルネットワーク装置に関するパラメータを学習する、ことを特徴とする。
【００１２】
また、本発明は、コンピュータを、複数の入力データ要素が並ぶ系列データである入力データが入力されるニューラルネットワーク装置であって、前記入力データの少なくとも一部分である部分入力データと、複数のデータ要素が並ぶ系列データであるフィルタとの間の系列データ類似度を算出する類似度算出部であって、前記部分入力データ及び前記フィルタの少なくとも一方において、少なくとも１つの前記データ要素を削除した場合の、前記部分入力データと前記フィルタとの間の類似度に基づいて、前記系列データ類似度を算出する類似度算出部と、前記部分入力データと前記フィルタとの間の前記系列データ類似度に基づいて、前記ニューラルネットワーク装置に関するパラメータを学習する学習部と、を備えるニューラルネットワーク装置として機能させることを特徴とするプログラムである。
【発明の効果】
【００１３】
本発明によれば、複数のデータ要素が並ぶ系列データ間において、本来類似する２つの系列データの少なくとも一方においてデータ要素が挿入又は削除された場合であっても、当該２つの系列データの類似性をより的確に検出可能なニューラルネットワーク装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るニューラルネットワーク装置の構成概略図である。
【図２】入力データ及びフィルタの例を示す図である。
【図３】系列データ類似度の計算アルゴリズムである。
【図４】系列データ類似度の計算アルゴリズムで用いられる行列Ｓの内容を示す図である。
【図５】系列データ類似度に関する偏微分計算に必要な行列Ｒの計算アルゴリズムである。
【図６】系列データ類似度に関する偏微分計算に必要な行列Ｐの計算アルゴリズムである。
【図７】Position-wise Comparisonを説明するための図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について説明する。
【００１６】
図１には、本実施形態に係るニューラルネットワーク装置１０の構成概略図が示されている。本実施形態におけるニューラルネットワーク装置１０はサーバコンピュータであるが、ニューラルネットワーク装置１０としては、以下に説明する機能を発揮する限りにおいてどのような装置であってもよい。
【００１７】
ニューラルネットワーク装置１０は、後述するニューラルネットワーク１４を用いて、複数のデータ要素が並ぶ系列データである入力データと、同じく複数のデータ要素が並ぶ系列データであるフィルタ（後述のようにこれはニューラルネットワーク１４のパラメータの１つである）との間の類似度である系列データ類似度を算出しながら、ニューラルネットワーク１４に関するパラメータの学習、あるいは、入力データの特徴の抽出を行うものである。
【００１８】
本実施形態においては、ニューラルネットワーク装置１０は、タンパク質を表す文字列を入力データとし、当該文字列をニューラルネットワーク１４に入力することで、タンパク質を表す文字列に含まれる特徴的な部分（文字配列）に基づいて、当該タンパク質の二次構造を予測する。ここで、タンパク質は、２０種類のアミノ酸の１次元の列で表現されており、各アミノ酸は「Ａ」、「Ｒ」、あるいは「Ｎ」などの文字で表される。タンパク質の二次構造とは、数個から２０個程度のアミノ酸によって構成される立体構造であり、α-helixやβ-sheetなどの８種類に分類することができる。
【００１９】
具体的には、ニューラルネットワーク装置１０の入力データは、
ｘ＝ｘ１，ｘ２，・・・ｘＴ
と表すことができる。なお、Ｔは入力データの長さ（文字数）である。各ｘｉは２０種類のアミノ酸を表す文字のいずれかである。ニューラルネットワーク１４は、入力データの各位置のラベル（タンパク質の二次構造を示すラベル）の予測値を出力する。ここで、入力データの各位置のラベルの予測値は、
ｙ＝ｙ１，ｙ２，・・・ｙＴ
で表される。
【００２０】
記憶部１２は、例えばハードディスク、ＲＯＭ（Read Only Memory）、あるいはＲＡＭ（Random Access Memory）などを含んで構成される。図１に示す通り、記憶部１２には、ニューラルネットワーク１４が記憶される。なお、ニューラルネットワーク１４の実体は、ニューラルネットワーク１４に関する各種パラメータ（上述のフィルタあるいは後述の削除コストＧを含む）、及び、入力データに対して処理を行うための処理実行プログラムである。したがって、記憶部１２にニューラルネットワーク１４が記憶されるとは、上記各種パラメータ及び処理実行プログラムが記憶部１２に記憶されることを意味する。
【００２１】
通信部１６は、例えばネットワークアダプタなどを含んで構成される。通信部１６は、ＬＡＮ（Local Area Network）やインターネットなどの通信回線を介して他の装置と通信する機能を発揮する。例えば、通信部１６は、ニューラルネットワーク装置１０における処理結果を示す結果情報を他の装置に送信する。
【００２２】
制御部１８は、例えばＣＰＵ（Central Processing Unit）などを含んで構成され、ニューラルネットワーク装置１０の各部を制御する。特に、制御部１８は、記憶部１２に記憶されたニューラルネットワーク１４の処理プログラムを実行することにより、図１に示すように、類似度算出部２０、予測部２２、及び学習部２４としても機能する。
【００２３】
類似度算出部２０は、入力データの少なくとも一部分である部分入力データと、上述のフィルタとの間の類似度である系列データ類似度を算出する。本実施形態では、入力データはタンパク質を表す文字列（アミノ酸列）であるから、部分入力データは当該文字列の一部分（なお全部であってもよい）ということになる。フィルタも文字列（アミノ酸列）である。フィルタとしては、入力データから抽出したい文字列が設定される。なお、フィルタは複数設けられてもよい。
【００２４】
予測部２２は、類似度算出部２０が算出した部分入力データとフィルタとの間の系列データ類似度に基づいて、入力データの各データ要素のラベルを予測する。本実施形態では、予測部２２は、タンパク質を表す文字列に含まれる各文字（アミノ酸）に対する、タンパク質の二次構造を予測する。
【００２５】
学習部２４は、類似度算出部２０が算出した部分入力データとフィルタとの間の系列データ類似度に基づいて、ニューラルネットワーク１４に関する各パラメータを学習する。
【００２６】
類似度算出部２０、予測部２２、及び学習部２４の処理の詳細については後述する。
【００２７】
ニューラルネットワーク装置１０の構成概要は以上の通りである。なお、ニューラルネットワーク装置１０がサーバ以外のコンピュータ（例えばパーソナルコンピュータ）などである場合には、上述の構成要件に加え、例えばキーボードあるいはマウスなどを含んで構成されユーザの指示をニューラルネットワーク装置１０に入力するための入力部、あるいは、液晶パネルなどを含んで構成され制御部１８の処理結果を表示する表示部などが含まれていてもよい。
【００２８】
以下、類似度算出部２０及び予測部２２の処理の詳細について説明する。
【００２９】
本実施形態においては、入力データとしてのタンパク質の文字列は、２０種類の文字から構成される文字列である。類似度算出部２０は、２０種類の文字をそれぞれｄ次元のベクトル（特徴ベクトル）で表現する。これにより、文字列である入力データは、ｄ次元ベクトル列に変換される。なお、ｄ次元への変換は所定の方法により実行するようにしてよい。
【００３０】
例えば、図２（ａ）に示される通り、入力データである「Ａ，Ｌ，Ｃ，Ｋ，Ｍ，Ｖ，・・・」が、ｄ次元ベクトル列「ｅ１，ｅ２，ｅ３，ｅ４，ｅ５，ｅ６，・・・，ｅＴ」に変換される。
【００３１】
同様に、本実施形態においては、ニューラルネットワーク１４のフィルタも、２０種類の文字から構成される文字列である。類似度算出部２０は、入力データ同様に、２０種類の文字がそれぞれｄ次元のベクトル（特徴ベクトル）で表現されたフィルタを用いる。
【００３２】
例えば、図２（ｂ）に示される通り、「Ａ，Ｃ，Ｋ，Ｇ，・・・」が、ｄ次元のベクトル列「Ｗ（１），Ｗ（２），Ｗ（３），Ｗ（４），・・・，Ｗ（Ｍ）」で表現されたフィルタを用いる。なお、Ｍはフィルタの長さ（文字数）である。
【００３３】
本実施形態では、複数のフィルタが用意される。各フィルタをＷ１，Ｗ２，・・・ＷＪで表す。Ｊはフィルタの個数である。
【００３４】
本実施形態では、入力データの位置ｉを中心とした幅Ｎの窓を考え、当該窓に含まれる文字列が部分入力データとなる。したがって、部分入力データは、
【数１】
2019159988.tif 000003
で表される。
【００３５】
類似度算出部２０は、部分入力データＸと、フィルタＷとの間の系列データ類似度Ｓｉｍ（Ｘ，Ｗ）を算出する。上述の通り、フィルタは複数用意されることから、類似度算出部２０は、部分入力データＸと各フィルタＷｊ（ｊは１〜Ｊ）との間で複数の系列データ類似度Ｚ（ｊ）＝Ｓｉｍ（Ｘ，Ｗｊ）（１≦ｊ≦Ｊ）が算出される。なお、系列データ類似度は実数値である。Ｓｉｍ（Ｘ，Ｗ）については後述する。
【００３６】
算出した複数の系列データ類似度Ｚ（ｊ）＝Ｓｉｍ（Ｘ，Ｗｊ）（１≦ｊ≦Ｊ）は、Ｊ次元のベクトルとみなすことができる。また、部分入力データＸは入力データにおける位置ｉを中心としていたので、各ｉ（ｉは１〜Ｎ）でＪ次元のベクトルＺｉが算出され、Ｊ次元ベクトル列Ｚｉ（ｊ）が形成されることになる。なお、Ｊ次元ベクトル列は
Ｚｉ（ｊ）＝Ｚ１（ｊ），Ｚ２（ｊ），・・・ＺＴ（ｊ）
である。ここで、各フィルタＷｊは各位置ｉで共通したものが用いられる。
【００３７】
上述の処理によって、入力データｘ１，ｘ２，・・・ｘＴがＪ次元ベクトル列Ｚ１，Ｚ２，・・・ＺＴに変換される。
【００３８】
予測部２２は、入力データの各位置ｉについてそれぞれ算出された複数の系列データ類似度（Ｊ次元ベクトル列）Ｚｉ（ｊ）に基づいて入力データ各位置（各文字）ｉのラベルｙｉを予測する。ラベルｙｉを予測する方法は種々の方法が用いられてよいが、本実施形態では、複数の系列データ類似度Ｚｉ（ｊ）を入力とする多層の全結合ニューラルネットワークを用いて予測する。あるいは、リカレントニューラルネットワークを用いて、複数の系列データ類似度Ｚｉ（ｊ）を新しい系列データＺ’ｉに変換した後に、上記の全結合ニューラルネットワークを用いて予測するようにしてもよい。
【００３９】
上記の全結合ニューラルネットワークあるいはリカレントニューラルネットワークは、記憶部１２に記憶されて（ニューラルネットワーク１４に含まれて）いてもよいし、それとは別に用意されてもよい。また、予測部２２及び上記の全結合ニューラルネットワークあるいはリカレントニューラルネットワークをニューラルネットワーク装置１０以外の装置に設ける実施形態も採用し得る。
【００４０】
以下、類似度算出部２０によるＳｉｍ（Ｘ，Ｗ）の詳細な算出方法について説明する。上述の通り、部分入力データＸは長さＮのｄ次元ベクトル列であり、フィルタＷ（ここでは１つのフィルタＷに着目する）は長さＭのｄ次元ベクトル列であり、Ｓｉｍ（Ｘ，Ｗ）は部分入力データＸとフィルタＷとの間の系列データ類似度である。以後、Ｘ（ｔ）を部分入力データＸのｔ番目のベクトルとし、Ｗ（ｓ）をフィルタＷのｓ番目のベクトルとする。
【００４１】
図３に、系列データ類似度の計算アルゴリズム３０が示されている。図３に示す計算アルゴリズム３０は、（Ｎ＋１）行（Ｍ＋１）列の行列Ｓに対して再帰的な計算を行うアルゴリズムである。具体的には、行列Ｓの各成分の値を左上（１行１列）から右下（Ｎ行Ｍ列）に対して算出していくような手続きになっている。
【００４２】
行列Ｓが図４に示されている。行列Ｓの各成分の値であるＳ（ｔ，ｓ）は、部分入力データＸ（１：ｔ）と、フィルタＷ（１：ｓ）との間の類似度を表している。なお、Ｘ（１：ｔ）は、部分入力データの１番目からｔ番目までのベクトル列（データ要素列）であり、Ｗ（１：ｓ）は、フィルタＷの１番目からｓ番目までのベクトル列である。
【００４３】
計算アルゴリズム３０の概要を説明すると、類似度算出部２０は、部分入力データＸに含まれる各ベクトル（各データ要素）を比較入力ベクトル列（比較入力データ要素列）に加える処理、及び、フィルタＷに含まれる各ベクトルを比較フィルタベクトル列（比較フィルタ要素列）に加える処理の少なくとも一方を実行して比較入力ベクトル列と前記比較フィルタベクトル列との間の類似度である中間類似度を算出する処理を、順次、部分入力データＸ及びフィルタＷにおけるデータ要素の並びの最初から最後まで繰り返すことによって、最終的に得られた中間類似度をＳｉｍ（Ｘ，Ｗ）とする。
【００４４】
以下、図４を参照しながら、図３に示す計算アルゴリズム３０の詳細を説明する。
【００４５】
計算アルゴリズム３０のブロック３２においては、行列Ｓの第０行目の各成分を初期化する処理を行っている。具体的には、行列Ｓの第０行目のｓ（ｓは０からＭ）列に対して値−ｓＧを入力する。ここで、Ｇは、部分入力データＸあるいはフィルタＷの１つのベクトル（データ要素）を削除するために必要なコストを表す値である。Ｇは学習部２４による学習対象となるニューラルネットワーク１４のパラメータである。
【００４６】
計算アルゴリズム３０のブロック３４においては、行列Ｓの第０列目の各成分を初期化する処理を行っている。具体的には、行列Ｓの第０列目のｔ（ｔは１からＮ）列に対して値−ｔＧを入力する。
【００４７】
計算アルゴリズム３０のブロック３６においては、行列Ｓのその余の成分の値であるＳ（ｔ，ｓ）を算出する処理を行っている。具体的には、ブロック３６に示される通り、ｍａｘ関数によって、３つの要素のうち最大の値を取る要素がＳ（ｔ，ｓ）として算出される。３つの要素は、第１要素として
Ｓ（ｔ−１，ｓ−１）＋ＶｅｃＳｉｍ（Ｘ（ｔ），Ｗ（ｓ））、
第２要素として
Ｓ（ｔ−１，ｓ）−Ｇ、
第３要素として
Ｓ（ｔ，ｓ−１）−Ｇ
である。
【００４８】
ここで、行列Ｓの３行３列目の成分４０を算出する場合を例に、上記の第１〜第３要素について説明する。なお、上述の通り、部分入力データＸは
Ｘ（１），Ｘ（２），Ｘ（３），・・・，Ｘ（Ｎ）
であり、
フィルタＷは
Ｗ（１），Ｗ（２），Ｗ（３），・・・，Ｗ（Ｍ）
である。
【００４９】
第１要素のうち、第１項は、部分入力データＸ（１：ｔ−１）とフィルタＷ（１：ｓ−１）の類似度を表している。本例では、Ｘ（１），Ｘ（２）のベクトル列と、Ｗ（１），Ｗ（２）のベクトル列との類似度である。
【００５０】
第１要素の第２項であるＶｅｃＳｉｍ（Ｘ（ｔ），Ｗ（ｓ））は、Ｘ（ｔ）とＷ（ｓ）との類似度を算出するための関数である。例えば、ＶｅｃＳｉｍは、ベクトルＸ（ｔ）とベクトルＷ（ｓ）の内積を算出する関数であってよい。本例では、ＶｅｃＳｉｍ（Ｘ（ｔ），Ｗ（ｓ））は、ベクトルＸ（３）とベクトルＷ（３）との類似度を表すものである。
【００５１】
つまり、第１要素は、Ｘ（１），Ｘ（２）のベクトル列と、Ｗ（１），Ｗ（２）のベクトル列との類似度に、ベクトルＸ（３）とベクトルＷ（３）との類似度を加算したものである。これは、Ｘ（１），Ｘ（２）のベクトル列に新たなベクトルＸ（３）が追加された比較入力ベクトル列と、Ｗ（１），Ｗ（２）のベクトル列に新たなベクトルＷ（３）が追加された比較フィルタベクトル列との間の類似度に相当する。第１要素は、部分入力データＸとフィルタＷの双方においてベクトルを削除しないケースに対応する。
【００５２】
第２要素の第１項は、部分入力データＸ（１：ｔ−１）とフィルタＷ（１：ｓ）の類似度を表している。本例では、Ｘ（１），Ｘ（２）のベクトル列と、Ｗ（１），Ｗ（２），Ｗ（３）のベクトル列との類似度である。これは、Ｘ（１），Ｘ（２）のベクトル列に新たなベクトルＸ（３）が追加されなかった比較入力ベクトル列と、Ｗ（１），Ｗ（２）のベクトル列に新たなベクトルＷ（３）が追加された比較フィルタベクトル列との間の類似度である。第２要素は、フィルタＷの１つのベクトルを削除（スキップ）、すなわち系列データ類似度の算出のために考慮しないケースに対応する。
【００５３】
第２要素の第２項である−Ｇは、上述の通り、フィルタＷの１つのベクトルを削除するために必要なコストである。上述のように、第２要素においては、フィルタＷの１つのベクトルが削除されるため、削除コストを差し引いた値を算出している。
【００５４】
第３要素の第１項は、部分入力データＸ（１：ｔ）とフィルタＷ（１：ｓ−１）の類似度を表している。本例では、Ｘ（１），Ｘ（２），Ｘ（３）のベクトル列と、Ｗ（１），Ｗ（２）のベクトル列との類似度である。これは、Ｘ（１），Ｘ（２）のベクトル列に新たなベクトルＸ（３）が追加された比較入力ベクトル列と、Ｗ（１），Ｗ（２）のベクトル列に新たなベクトルＷ（３）が追加されなかった比較フィルタベクトル列との間の類似度である。第３要素は、部分入力データＸの１つのベクトルを削除（スキップ）、すなわち系列データ類似度の算出のために考慮しないケースに対応する。
【００５５】
第３要素の第２項である−Ｇは、上述の通り、部分入力データＸの１つのベクトルを削除するために必要なコストである。上述のように、第３要素においては、部分入力データＸの１つのベクトルが削除されるため、削除コストを差し引いた値を算出している。
【００５６】
ｍａｘ関数によって、第１〜第３要素のうち最大の値を取る要素が中間類似度Ｓ（ｔ，ｓ）として算出される。換言すれば、類似度算出部２０は、中間類似度Ｓ（ｔ，ｓ）の算出処理において、ベクトルＸ（ｔ）を比較入力ベクトル列に追加し、且つ、ベクトルＷ（ｓ）を比較フィルタベクトル列に追加した場合と、ベクトルＸ（ｔ）を比較入力ベクトル列に追加せずベクトルＷ（ｓ）を比較フィルタベクトル列に追加した場合と、ベクトルＸ（ｔ）を比較入力ベクトル列に追加しベクトルＷ（ｓ）を比較フィルタベクトル列に追加しない場合それぞれの比較入力ベクトル列と比較フィルタベクトル列との間の類似度のうち、最も大きい類似度を中間類似度Ｓ（ｔ，ｓ）として算出する。
【００５７】
なお、計算アルゴリズム３０ではｍａｘ関数が用いられているが、第１〜第３要素のうち最大の値を取る限りにおいて他の関数が用いられてもよい。例えば、ｍａｘ関数に代えて、微分可能なソフトマックス関数を用いてもよい。ソフトマックス関数は、以下の式で表される。
【数２】
2019159988.tif 000004
本実施形態では、ソフトマックス関数が用いられる。
【００５８】
ブロック３６の処理によって、行列Ｓ（図４参照）の各成分の値が算出されていき、最終的にＮ行Ｍ列の成分４２の値であるＳ（Ｎ，Ｍ）が算出される。計算アルゴリズム３０のブロック３８においては、当該Ｓ（Ｎ，Ｍ）が、部分入力データＸとフィルタＷとの間の系列データ類似度Ｓｉｍ（Ｘ，Ｗ）として出力される。
【００５９】
なお、本実施形態におけるＳｉｍ（Ｘ，Ｗ）の算出方法は、部分入力データＸとフィルタＷの長さが同じ（Ｎ＝Ｍ）であり、且つ、削除コストＧが十分に大きい（Ｇ→∞）である場合、標準的なベクトルの類似度関数である内積に一致する。すなわち、本実施形態におけるＳｉｍ（Ｘ，Ｗ）の算出方法は、内積を類似度関数とする畳み込みニューラルネットワークを一般化したものとなっている。
【００６０】
上述のように、本実施形態においては、類似度算出部２０は、部分入力データＸとフィルタＷの少なくとも一方において、少なくとも１つのベクトル（Ｘ（ｔ）又はＷ（ｓ））を削除した場合の部分入力データＸとフィルタＷとの間の類似度に基づいて、部分入力データＸとフィルタＷとの間の系列データ類似度を算出する。
【００６１】
本実施形態によれば、部分入力データＸとフィルタＷの少なくとも一方においてデータ要素が挿入又は削除された場合であっても、当該挿入又は削除されたデータ要素を考慮した上で、的確に部分入力データＸとフィルタＷとの間の類似度を算出することができる。これにより、ニューラルネットワーク１４としては、従来よりも好適にラベルの予測あるいは学習を行うことができる。
【００６２】
特に、タンパク質を表す文字列は、進化の過程において文字列中のある文字が欠損したり、新たに挿入されたりする場合がある。したがって、本実施形態に係るニューラルネットワーク１４は、特に、タンパク質の二次構造の予測に適しているといえる。すなわち、ニューラルネットワーク１４によれば、欠損あるいは挿入された文字（アミノ酸）を考慮した上で、フィルタとのより自然な類似度が算出され、ひいては、タンパク質の二次構造の予測精度が向上する。
【００６３】
タンパク質の二次構造の予測結果に関して、十分に学習した従来の１次元畳み込みニューラルネットワークにおいては、学習データに対する予測精度が４４．１９％であり、未知データに対する予測精度が４２．０５％であったところ、十分に学習した本実施形態に係るニューラルネットワーク１４においては、学習データに対する予測精度が４４．９３％であり、未知データに対する予測精度が４２．９７％となった。
【００６４】
以下、学習部２４の処理の詳細について説明する。
【００６５】
ニューラルネットワーク１４に関するパラメータの学習は、入力データと、入力データの特徴が既知である学習データに基づいて行う。本実施形態では、入力データがタンパク質を表す文字列であるので、当該文字列と、各文字に対するラベル（タンパク質の二次構造）が既知のデータを学習データとして用いる。
【００６６】
学習部２４は、学習データにフィッティングするようにニューラルネットワーク１４に関する各パラメータを学習（更新）する。具体的には、損失関数をパラメータに関して微分し、損失が小さくなる方向にパラメータを更新していく。学習の具体的な方法としては、例えば確率勾配法などがあるが、その他の方法であってもよい。
【００６７】
本実施形態では、学習部２４は、Ｓｉｍ（Ｘ，Ｗ）を、部分入力データＸ、フィルタＷ、及び削除コストＧに関する偏微分に基づいて、ニューラルネットワーク１４に関する各パラメータ（すなわち部分入力データＸ、フィルタＷ、及び削除コストＧ）を学習する。これによれば、偏微分の連鎖律によって損失関数をニューラルネットワーク１４の各パラメータに関して偏微分することが可能になり、損失が小さくなる方向に各パラメータを更新することが可能になる。
【００６８】
Ｓｉｍ（Ｘ，Ｗ）の部分入力データＸ、フィルタＷ、及び削除コストＧに関する偏微分を計算するためには、Ｓｉｍ（Ｘ，Ｗ）を計算するために用いられた行列Ｓ（図４参照）、及び、新たな行列Ｒ及び行列Ｐが必要となる。
【００６９】
行列Ｒの計算アルゴリズム５０が図５に示されている。計算アルゴリズム５０のブロック５２においては、ｓがＭから１まで１つずつ減っていき、ｔがＮから１まで１つずつ減っていく。すなわち、行列Ｓの計算とは逆に、行列Ｒの各成分の値の計算は、行列Ｒの右下から左上に向かって行われることになる。ブロック５２で算出される行列Ｒの各成分の値Ｒ（ｔ，ｓ）は、
【数３】
2019159988.tif 000005
を意味する。
【００７０】
また、行列Ｐの計算アルゴリズム６０が図６に示されている。計算アルゴリズム６０のブロック６２においては、ｓが１からＭまで１つずつ増加していき、ｔが１からＮまで１つずつ増加していく。すなわち、行列Ｐの計算においては、行列Ｐの各成分の値の計算は、行列Ｐの左上から右下に向かって行われることになる。計算アルゴリズム６０の戻り値Ｐ（Ｎ，Ｍ）は、
【数４】
2019159988.tif 000006
を意味する。
【００７１】
計算アルゴリズム５０の計算結果から、Ｓｉｍ（Ｘ，Ｗ）の部分入力データＸ、フィルタＷ、及び削除コストＧに関する偏微分は以下のように計算できる。
【数５】
2019159988.tif 000007
【数６】
2019159988.tif 000008
【数７】
2019159988.tif 000009
ただし、
【数８】
2019159988.tif 000010
である。
【００７２】
ここで、類似度が内積で表現できる場合、すなわち
【数９】
2019159988.tif 000011
のケースを考えると
【数１０】
2019159988.tif 000012
【数１１】
2019159988.tif 000013
となる。
【００７３】
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
【００７４】
例えば、上記実施形態においては、入力データとしてタンパク質を表す文字列を用いたが、入力データとしてはその他の系列データを用いるようにしてもよい。
【００７５】
例えば、塩基配列を入力データとして用い、ニューラルネットワーク装置１０を用いて遺伝子の機能予測をしてもよい。また、音声波形を入力データとして用い、ニューラルネットワーク装置１０を用いて音声認識を行ってもよい。あるいは、文字列を入力データとして用い、ニューラルネットワーク装置１０を用いて当該文字列に対する自然言語処理を行うようにしてもよい。
【符号の説明】
【００７６】
１０  ニューラルネットワーク装置、１２  記憶部、１４  ニューラルネットワーク、１６  通信部、１８  制御部、２０  類似度算出部、２２  予測部、２４  学習部。
【図１】
2019159988.tif 000014
【図２】
2019159988.tif 000015
【図３】
2019159988.tif 000016
【図４】
2019159988.tif 000017
【図５】
2019159988.tif 000018
【図６】
2019159988.tif 000019
【図７】
2019159988.tif 000020