(58)【調査した分野】(Int.Cl.,DB名)
前記2つのニューラルネットワークのモデルの一致度を判定することは、比較する層同士の種類が異なる場合、前記類似度を0とし、当該層から後段の層における比較を実行しないことを含む、請求項1に記載の情報処理方法。
前記活性化層の種類は、線形結合、シグモイド関数、ハードシグモイド関数、tanh関数(hyperbolic tangent function)、ソフトサイン関数、ソフトプラス関数、又は、ReLU(Rectified Linear Unit)である、請求項8に記載の情報処理方法。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2015−11510号公報
【特許文献2】特開2015−52832号公報
【特許文献3】特開2015−57630号公報
【非特許文献】
【0006】
【非特許文献1】A. Krizhevsky, I. Sutskever and G. E. Hinton, "ImageNet Classification with Deep Convolutional Neural Networks," NIPS'12.
【非特許文献2】K. Simonyan and A. Zisserman, "Very Deep Convolutional Networks for Large-Scale Image Recognition," ICLR'15.
【非特許文献3】X. Ma and E. Hovy, "End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF," ACL'16.
【非特許文献4】S. Ren, K. He, R. Girshick, and J. Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks," NIPS'15.
【非特許文献5】W. Liu, et al., "SSD: Single Shot MultiBox Detector," ECCV'16.
【非特許文献6】P.-T. Yu, H.-H. Tsai, and J.-S. Lin, "Digital watermarking based on neural networks for color images," in Signal Processing, vol. 81, no. 3,2001.
【非特許文献7】M. Elarbi, C. B. Amar, and H. Nicolas, "Video Watermarking Based on Neural Networks," in Proc. of ICME, 2006.
【非特許文献8】Fei-Fei Li & Andrej Karpathy & Justin Johnson、Lecture 7、Convolutional Neural Networks、27 Jan 2016、[online]、[平成29年1月4日検索]、インターネット<URL:http://cs231n.stanford.edu/slides/winter1516_lecture7.pdf>
【非特許文献9】正則化、[online]、[平成29年1月5日検索]、インターネット<URL:https://ja.wikipedia.org/wiki/%E6%AD%A3%E5%89%87%E5%8C%96>
【非特許文献10】A. Krogh and J. A. Hertz, "A Simple Weight Decay Can Improve Generalization," in Proc. of NIPS, 1992.
【非特許文献11】Caffe、[online]、[平成29年1月5日検索]、インターネット<URL:http://caffe.berkeleyvision.org/>
【非特許文献12】TensorFlow、[online]、[平成29年1月5日検索]、インターネット<URL:https://www.tensorflow.org/>
【非特許文献13】Chainer、[online]、[平成29年1月5日検索]、インターネット<URL:http://chainer.org/>
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を用いて詳細に説明する。
【0016】
図1は、ニューラルネットワークの一般的な機能構成図である。
【0017】
ニューラルネットワークには、様々な構成があるが、ニューラルネットワークは、基本的には複数種類の層の重ね合わせ(又はグラフ構造)で表現される。ニューラルネットワークには、入力データと正解ラベルとが対応付けられた教師データが入力される。そして、ニューラルネットワークは、入力データに対する最終的な出力結果が正解ラベルと一致するように、モデルパラメータを学習する(タスクに応じて入力に対する出力を近似させる)。
【0018】
図1によれば、順伝播型ニューラルネットワークは、入力層(input layer)と、隠れ層(hidden layer)と、出力層(output layer)との3つの層を有し、入力されたデータは、入力層から出力層へ向けて一方向に伝播する。隠れ層は、複数の層から構成され得る。各層は、複数のユニット(ニューロン)を持ち、前方層のユニットから後方層のユニットへの入力に対するパラメータを、「重み(weight)」と称す。学習とは、この入力に対するパラメータとして、適切な「重み」を算出することにある。
図1には、順伝播型ニューラルネットワークとして、畳み込みニューラルネットワーク(Convolutional Neural Network, CNN)も示されている。
【0019】
学習とは、入力データに対する出力層からの出力データと、当該入力データに対する正解ラベルとの誤差を用いて、各層の重みを最適に更新することをいう。その誤差を算出するために、「損失関数」(loss function)が定義される。誤差は、「誤差逆伝播法」によって、出力層側から入力層側へ向けて次々に伝播され、これにより各層の重みを少しずつ更新していく。最終的に、誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行する。
【0020】
また、
図1には、ニューラルネットワークの中で学習されたモデルが表されている。「モデル」とは、隠れ層に内在する層毎に、「層構造」、「パラメータ」を対応付けて記憶したものである。層構造は、層の種類やフィルタサイズ、フィルタ数等により示される。パラメータは、学習された重み(重みフィルタ)の要素である。
【0021】
図2は、本実施形態における情報処理装置が実行する情報処理方法の説明図である。
【0022】
本実施形態の情報処理装置は、2つのニューラルネットワークのモデルの比較を行う。情報処理装置は、以下の2つのステップを実行する。
【0023】
(S1)各ニューラルネットワークのモデルから、各層について層構造とパラメータとを読み込む。モデルとしては、深層学習フレームワークによって、様々な形式がある。例えば、Caffeの場合、ネットワーク構成がprototxtファイルで記述され、学習済みのパラメータはcaffemodelファイルに保存される(非特許文献11参照)。また、TensorFlowの場合、学習済みのモデルはckptファイルに保存される(非特許文献12参照)。更に、Chainerの場合、HDF5フォーマットにて学習済みのモデルが保存される(非特許文献13参照)。これらニューラルネットワークのモデルは、異なる形式であっても、本質的には、「層構造」及び「パラメータ」によって表現される。S1では、これら異なる形式のモデルを読み込み、内部的には共通のフォーマットで記憶する。S1では、これら様々な形式のモデルを比較可能な形式で読み込む。
【0024】
(S2)2つのニューラルネットワークのモデルの層構造及びパラメータを比較して同一か否かを判定する。両方のモデルについて、同一と判定された場合、一方のモデルが改変または再学習されて、他方のモデルが生成された可能性がある。
【0025】
図3は、複数の層がグラフ状に構成されたニューラルネットワークを表す説明図である。
【0026】
図3によれば、複数の層がグラフ状に、順伝播型として構成されている。隠れ層の種類としては、例えば以下のようなものがある。
畳み込み層(convolutional layer)
活性化層(activation function)
プーリング層(pooling layer)
全結合層(full-connected layer)
【0027】
S2によれば、隠れ層でグラフ状に構成された各層同士を、入力層(最下層)から順に「幅優先探索」又は「深さ優先探索」で辿って比較していく。幅優先探索(breadth first search)とは、入力層に近い層から順に探索するものである。深さ優先探索(depth first search)とは、入力層から繋がる限り出力層まで探索するものである。
【0028】
<比較する層同士の種類の判定>
一形態によると、層同士の「種類」が異なる場合、類似度を0とし、当該層から後段の層における比較を実行しない。即ち、層同士の種類が異なると、モデル同士の関係として改変された可能性はない(モデルの非同一判定)と判定することができる。具体的には、2つのモデルについて、入力層(最下位層)から順に層同士の種類を比較して、同一か否かを判定する。両モデルについて、幅優先探索又は深さ優先探索によって辿りながら、次の層同士を選択して比較していく。
【0029】
また、層同士の「種類」が異なっていても、当該層について、入力と出力とが同一である場合、その層は同一のものであるとして、その比較をスキップすることもできる。例えば、入力の順序を入れ替えて出力するだけの層も、入力と出力とが同一であるとする。例えば、入力の順序を入れ替えるだけの全結合層や、1×1のプーリング層が該当する。
【0030】
例えば、比較する層同士の「種類」が異なる場合(例えば畳み込み層と活性化層)、2つの層は不一致であると判定される。但し、畳み込み層は、全結合層の一種と考えることができるために、畳み込み層と同一の出力を出力する全結合層は、同一と判定することができる。
【0031】
上記のとおり、最も簡単な方法としては、層同士の「種類」のみを判定する。しかしながら、層同士は同じ種類のものであっても、モデルの層構造及びパラメータが改変される場合もある。そこで、比較する層同士の種類が同一である場合、更に、層構造及びパラメータを比較して、層同士の同一判定を実行する。具体的には、層同士の種類が同一である場合、更に、層構造やパラメータの類似度から、最終的に、層同士のモデルの同一判定を実行する。以下では、同じ種類の層同士の同一判定について、具体的に詳述する。
【0032】
<畳み込み層同士の比較>
最初に、畳み込み層における層構造(フィルタ数)及びパラメータ(重みフィルタ)について説明する。
【0033】
図4は、入力データと特徴マップとの畳み込みの関係を表す説明図である。
【0034】
図4における処理は、畳み込み層(全結合層も同様)によって実行される。
図4によれば、入力データに対して、1個の重みフィルタを使用することで1つの特徴マップを生成している。なお、本実施形態において、入力データ、重みフィルタ及び特徴マップのサイズは以下の通りである。
入力データ :32×32×3個の要素
重みフィルタ:5×5×5個の要素 (パラメータ)
特徴マップ :28×28個の要素
重みフィルタは、N個分用意され、これがパラメータとなる。即ち、「重み」とは、N個の重みフィルタを意味する。但し、ここでは、バイアス項は考慮しないものとする。
【0035】
図5は、重みフィルタを用いた特徴マップの生成を表す説明図である。
【0036】
図5に示す様に、5×5×3個の要素からなる1個の重みフィルタを、入力データに充てて、その各要素の積の和を、特徴マップの1個の要素の値とする。そして、同じ重みフィルタを、入力データに対して移動させて、1枚の特徴マップを生成する。ここで、移動させる要素の数(移動量)を「ストライド(stride)」と称す。入力データの周囲の縁(ふち)には、要素0を埋めたゼロパディング(zero-padding)の領域を設けることもできる。これによって、入力データの縁の要素にも、同数の重みフィルタをあてることができる。
【0037】
図6は、N個の重みフィルタとN段の特徴マップとの関係を表す説明図である。
【0038】
重みフィルタは、N個から構成される。
図4及び
図5によれば、1個の重みフィルタから1枚の特徴マップが生成されている。したがって、
図6に示す様に、N個の重みフィルタからN段の特徴マップが生成される。
【0039】
前述した
図4及び
図5によれば、32×32(画像サイズ)×3(RGBチャンネル)の入力に対し、5×5×3のフィルタ1つを適用している。このフィルタは5×5×3+1=76個のパラメータを持つ。通常、畳み込み層では、N個(複数)のフィルタを用いて畳み込みを実行する。例えば、128個のフィルタを持つ畳み込み層は、76×128個のパラメータを持つ。最も単純には、このパラメータを特徴ベクトルとして、何らかの尺度を用いて距離を計算し、一定以下の距離であれば一致したと判定することができる。
【0040】
しかしながら、重みフィルタの効果を維持したまま、意図的にフィルタの構造を変更することで、モデルの再利用(改変)を行うことができる。例えば、(1)フィルタのサイズを大きくしたり、(2)フィルタの順序を変更したり、(3)フィルタを追加削除する、ように改変することができる。これに対し、本実施形態によれば、重みフィルタの構造が変更された場合であっても、同一判定をすることができる。
【0041】
畳み込み層同士を比較する場合、重みフィルタのパラメータによって判定するべく、以下のS211〜S214のステップを実行する。
【0042】
(S211)畳み込み層の重みフィルタについて真の(実際の)フィルタサイズを推定する。具体的には、重みフィルタにおける各チャンネル(例えばRGB=3)のパラメータの絶対値を累積する。その累積値が所定閾値以上となる箇所(パラメータ)を全て含む最小の矩形を、真のフィルタサイズとして推定する。
【0043】
図7は、畳み込み層の重みフィルタから真のフィルタサイズを推定する処理の説明図である。
【0044】
例えばフィルタが5×5のサイズであれば、真のフィルタサイズは、2×2,3×3,4×4である可能性がある。
図7によれば、複数のチャンネル(例えばRGB)を持つ入力に対するフィルタとしては、5×5×3の重みフィルタが適用されている。この場合、各チャンネルに対する5×5のパラメータそれぞれについて絶対値を取り、3つのチャネルに対応する各フィルタの同一位置の3つの絶対値を加算する。
図7のように、中心の3×3以外のパラメータの絶対値が小さい場合、真のフィルタサイズは3×3であると推定することができる。これは、フィルタの各パラメータの絶対値について、閾値以上となる最小の矩形から推定される。
図7では、閾値を0.2とし、これにより、真のフィルタサイズを3×3であると推定している。
【0045】
(S212)比較する重みフィルタのパラメータを推定された真のフィルタサイズに修正する。比較する畳み込み層同士における真のフィルタサイズが一致しなかった場合、畳み込み層同士は同一でないと判定される。例えば一方の畳み込み層のフィルタサイズが3×3×3であり、他方の畳み込み層のフィルタサイズが5×5×3である場合、これら畳み込み層同士は、一致しないと判定される。
【0046】
(S213)比較する畳み込み層同士について、真のフィルタサイズが一致する場合、次にパラメータ同士を比較する。このとき、各重みフィルタのパラメータを1つのベクトルとみなして、各畳み込み層をベクトル集合として表現する。例えば、一方の畳み込み層のフィルタサイズが5×5×3、フィルタ数が128であり、他方の畳み込み層のフィルタサイズが5×5×3、フィルタ数が64である場合を想定する。
【0047】
図8は、畳み込み層同士の真のフィルタサイズ内のパラメータを比較する説明図である。
【0048】
パラメータ同士の比較は、各フィルタのパラメータを特徴ベクトルとみなし、一方の畳み込み層の特徴ベクトルの集合と、他方の畳み込み層の特徴ベクトルの集合との間の距離を算出する。例えば、2つの特徴ベクトル集合間について、距離が所定閾値以下となる特徴ベクトルのペアを算出することによって「二部グラフ」を構成する。そして、二部グラフから最大マッチング問題を解くことによって算出した最大のマッチ数を、類似度とする。また、画像認識におけるBag-of-Visual Wordsを用いて、各特徴ベクトルを量子化し、量子化ヒストグラムを畳み込み層の特徴ベクトルとし、その距離を用いることもできる。更に、各特徴ベクトルを量子化し、量子化ヒストグラム間の類似度を、ベクトル集合間の類似度とすることもできる。
【0049】
二部グラフとは、頂点(パラメータ)集合を2つの部分集合に分割し、各集合内の頂点同士の間には辺が無いようにしたものである。2つの頂点集合V1,V2に分割したとき、V1同士・V2同士の頂点間には辺が存在しないが、V1とV2間の任意の2点間に辺が存在するグラフである。マッチ数とは、辺集合に属するいずれの2辺も隣接していない数を言い、最大マッチングとは、辺集合のうち辺の数が最大のものをいう。
【0050】
(S214)比較する畳み込み層同士のベクトル集合間の類似度を、畳み込み層同士の類似度とする。そして、畳み込み層同士の類似度が、所定閾値以上である場合、2つの畳み込み層は、同一であると判定することができる。
【0051】
<全結合層同士の比較>
全結合層同士を比較する場合、全結合層に対する重みを特徴ベクトルとみなして、全結合層をベクトル集合として表現する。そして、比較する全結合層同士のベクトル集合間の類似度(例えばベクトル集合間の距離)を、全結合層同士の類似度とする。そして、全結合層同士の類似度が、所定閾値以上である場合、2つの全結合層は、同一であると判定することができる。
【0052】
全結合層がバイアス項を含む場合、全結合層は、出力次元数×(入力次元数+1)のパラメータで表現される(バイアス項を含まない場合は、出力次元数×入力次元数)。このパラメータに対し、(入力次元数+1)次元の重み(入力に対する係数)を、特徴ベクトルとみなし、この特徴ベクトルの集合として全結合層を表現する。
【0053】
<活性化層同士の比較>
活性化層同士を比較する場合、活性化層の種類が同じであり、パラメータ同士の距離が所定閾値以下である場合、当該距離を類似度として算出する。それ以外の場合、類似度を0とする。そして、活性化層同士の類似度が、所定閾値以上である場合、2つの活性化層は、同一であると判定することができる。活性化層の種類は、線形結合、シグモイド関数、ハードシグモイド関数、tanh関数(hyperbolic tangent function)、ソフトサイン関数、ソフトプラス関数、ReLU(Rectified Linear Unit)のいずれかである。
【0054】
<プーリング層同士の比較>
プーリング層同士を比較する場合、プーリング層の種類が同じであり、パラメータ同士の距離が所定閾値以下である場合、当該距離を類似度として算出する。それ以外の場合、類似度を0とする。そして、プーリング層同士の類似度が、所定閾値以上である場合、2つのプーリング層は、同一であると判定することができる。プーリング層の種類は、最大値(max)プーリング、平均値(average)プーリングのいずれかである。パラメータは、フィルタサイズ及びストライド(フィルタを適用する間隔)である。
【0055】
そして、一方のニューラルネットワークにおいて比較が行われなかった層がなく、比較が行われた各層の比較結果がすべて一致した場合、一方のニューラルネットワークは、他方のニューラルネットワークが改変又は再学習されたものと判定することができる。
【0056】
また、多層ニューラルネットワークにおいては、他のニューラルネットワークの一部だけを再利用することがあり得る。したがって、所定数以上の層が一致すると、一方のニューラルネットワークは、他方のニューラルネットワークが改変又は再学習されたものと判定することができる。なお、所定数は1以上とすることができる。また、ニューラルネットワーク全体の改変を判定するのではなく、層単位で一致・不一致を判定し、判定結果を出力する構成とすることもできる。つまり、一方のニューラルネットワークのある層が、他方のニューラルネットワークにおいて流用されているかを判定する構成とすることもできる。
【0057】
また、たとえば、一致する畳み込み層が所定数以上あると、一方のニューラルネットワークは、他方のニューラルネットワークの一部が改変又は再学習されたものと判定するといった様に、層の種類を判定条件に使用することができる。なお、所定数は1とすることができる。
【0058】
また、比較した各層について一致、不一致を判定するのではなく、類似度を合計して、一方のニューラルネットワークと他方のニューラルネットワークの類似度を判定するものとすることもできる。
【0059】
以上、詳細に説明したように、本実施形態によれば、ニューラルネットワークのモデルの一部が改変又は再学習されたとしても、モデル同士を比較することによって改変を検出することができる。
【0060】
図9は、本実施形態による情報処理装置の構成図である。読込部10は、比較対象の2つのニューラルネットワークのモデルの各層について、層構造とパラメータとを読み込む。判定部20は、読込部10が読み込んだ、2つのニューラルネットワークのモデルの層構造及びパラメータを比較して改変を判定する。
【0061】
また、上述した情報処理方法又は情報処理装置は、コンピュータプログラムにより実現することもできる。当該プログラムは、コンピュータの1つ以上のプロセッサで実行されると、当該コンピュータに、上述した情報処理方法を実行させる。或いは、当該プログラムは、コンピュータの1つ以上のプロセッサで実行されると、当該コンピュータを上述した情報処理装置として機能させる。コンピュータプログラムは、一時的ではないコンピュータ可読記憶媒体に記憶される。
【0062】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【0063】
本願は、2017年1月13日提出の日本国特許出願特願2017−003849を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。