Suche in nationalen und internationalen Patentsammlungen
Einige Inhalte dieser Anwendung sind momentan nicht verfügbar.
Wenn diese Situation weiterhin besteht, kontaktieren Sie uns bitte unterFeedback&Kontakt
1. (WO2018180263) INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND COMPUTER-READABLE STORAGE MEDIUM
Document

明 細 書

発明の名称 情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体

技術分野

0001  

背景技術

0002  

先行技術文献

非特許文献

0003  

発明の概要

発明が解決しようとする課題

0004   0005  

課題を解決するための手段

0006  

発明の効果

0007   0008  

図面の簡単な説明

0009  

発明を実施するための形態

0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049  

請求の範囲

1   2   3   4   5   6   7  

図面

1   2   3   4   5   6   7   8A   8B   9  

明 細 書

発明の名称 : 情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体

技術分野

[0001]
 本発明は、情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体に関する。

背景技術

[0002]
 近年、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある(非特許文献1参照)。

先行技術文献

非特許文献

[0003]
非特許文献1 : Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev,Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 675-678). ACM.

発明の概要

発明が解決しようとする課題

[0004]
 大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。さらに、一般に学習モデル生成に用いられた学習データを、学習モデル自体から推測することは難しい。
[0005]
 このため、学習モデルを生成した者は、その学習モデルが第三者によって不正に利用されたとしても、不正を立証することが難しい。収集した学習データと、学習データに基づいて生成された学習モデルとはそれぞれ労力をかけて取得した価値あるものであり、不正利用から学習モデルを守ることが望まれている。

課題を解決するための手段

[0006]
 本発明の一態様によると、情報処理装置は、第1ニューラルネットワークの複数の層の中から選択した選択層の複数の重みを、第2ニューラルネットワークの複数の重みとして設定する重み設定手段と、前記選択層の複数の重みそれぞれを第1グループ又は第2グループに分類する分類手段と、前記第1ニューラルネットワークの複数の層の各重みについての第1勾配を第1教師データに基づき判定する第1判定手段と、前記第2ニューラルネットワークの複数の重みのうちの前記第1グループに属する重みについての第2勾配を第2教師データに基づき判定する第2判定手段と、前記選択層の複数の重みのうち、前記第1グループに属する重みについては、前記第1判定手段が判定した前記第1勾配と前記第2判定手段が判定した前記第2勾配と、に基づき更新し、前記選択層の複数の重みのうち、前記第2グループに属する重みと、前記第1ニューラルネットワークの複数の層のうちの前記選択層とは異なる層の重みについては、前記第1判定手段が判定した前記第1勾配に基づき更新する更新手段と、を備えている。

発明の効果

[0007]
 本発明によれば、ニューラルネットワークの出所を特定することができる。
[0008]
 本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。

図面の簡単な説明

[0009]
[図1] 畳み込みニューラルネットワークの一般的な機能構成を示す図である。
[図2] 入力データと特徴マップとの畳み込みの関係を説明するための図である。
[図3] 重みフィルタを用いた特徴マップの生成を説明するための図である。
[図4] N個の重みフィルタとN段の特徴マップとの関係を説明するための図である。
[図5] 一実施形態による情報処理装置が実行する学習処理の概要を説明するための図である。
[図6] 一実施形態による情報処理装置の機能構成を示す図である。
[図7] 一実施形態による透かし用重み設定部による重み設定処理を説明するための図である。
[図8A] 一実施形態による重み更新用ベクトルと、マスクデータと、第2ラベルとの関係を示す図である。
[図8B] 一実施形態によるマスクデータと第2ラベルとの関係を示す図である。
[図9] 一実施形態による情報処理装置が実行する情報処理のフローチャートである。

発明を実施するための形態

[0010]
<畳み込みニューラルネットワーク>
 実施の形態に係る情報処理装置は、ニューラルネットワーク(NN)のモデルパラメータに透かし情報を埋め込むための装置である。以下では、ニューラルネットワークが、畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)であるものとして実施形態の説明を行う。まず畳み込みニューラルネットワークについて簡単に説明する。
[0011]
 図1は、畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ(又はグラフ構造)で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
[0012]
 図1において、順伝播型ニューラルネットワークは、入力層(input layer)と、隠れ層(hidden layer)と、出力層(output layer)との3つの層から構成され、入力データは、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状の複数の層から構成することができる。各層は、複数のユニット(ニューロン)を持つ。各層において、前方層のユニットから後方層のユニットへの入力値に適用するパラメータを、「重み(weight)」と称す。本明細書における学習とは、適切な「重み」を算出することである。
[0013]
 図1は、畳み込みニューラルネットワークを示している。畳み込みニューラルネットワークは、入力層と、畳み込み層(convolutional layer)と、プーリング層(pooling layer)と、全結合層(full-connected layer)と、出力層とから構成される。図1において、第1層L1が入力層であり、第2層L2は畳み込み層である。同様に、第n層Lnが出力層となっている。
[0014]
 実施の形態に係るニューラルネットワークにおける学習とは、教師データの入力データに対する出力層からの出力値と、当該入力データに対応する正解ラベル(以下、単に、ラベルとも呼ぶ。)との誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」(loss function)が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播され、各層の重みは、少しずつ更新される。最終的に、誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行する。具体的には、ニューラルネットワークにおける学習(すなわち、新規のモデルパラメータの生成段階)で、誤差を逆伝播させた勾配によって、モデルパラメータを更新する。
[0015]
 図2は、入力データと特徴マップとの畳み込みの関係を説明するための図である。図2における処理は、畳み込み層及び全結合層によって実行される。図2に示す例では、入力データに対して1個の重みフィルタをかけることにより、1枚の特徴マップを生成している。図2において、入力データ、重みフィルタ、及び特徴マップのサイズはそれぞれ以下のとおりである。
  入力データ :32×32×3個の要素
  重みフィルタ:5×5×3個の要素 (モデルパラメータ)
  特徴マップ :28×28個の要素
[0016]
 重みフィルタはN個(Nは1以上の整数。)分用意され、これがモデルパラメータとなる。すなわち、「重み」とは、N個の重みフィルタそれぞれの重み(フィルタの要素の値)を意味する。ただし、ここでは、バイアス項は考慮しないものとする。
[0017]
 図3は、重みフィルタを用いた特徴マップの生成を説明するための図である。図3に示す例では、5×5×3個の要素からなる1個の重みフィルタを入力データにかけ、その各要素の積の和を特徴マップの1個の要素の値とする。そして、入力データに対して同じ重みフィルタを移動させることにより、1枚の特徴マップを生成する。ここで、重みフィルタを移動させる要素の数(移動量)を「ストライド(stride)」と称す。入力データの周囲の縁(ふち)には、要素0を埋めたゼロパディング(zero-padding)の領域を設ける。これによって、入力データの縁の要素にも、同数の重みフィルタをあてることができる。
[0018]
 図4は、N個の重みフィルタとN段の特徴マップとの関係を説明するための図である。図4に示す例では、重みフィルタの数はN個である。図2及び図3は、1個の重みフィルタによって1枚の特徴マップを生成する様子を示している。これに対し、図4に示す例は、N個の重みフィルタによってN段の特徴マップを生成する様子を示している。ニューラルネットワークの学習では、ある層における特徴マップが、次の層における入力データとなる。ニューラルネットワークの学習を実行することにより、損失関数に基づく誤差が出力層側から入力層側へ向けて次々に伝播し、既知の誤差逆伝播法によって各層の重みが更新される。
[0019]
 <実施の形態の概要>
 以上を前提として、実施の形態の概要を述べる。実施の形態に係る情報処理装置は、ニューラルネットワークを用いて目的タスクを達成するための学習モデルを生成すると同時に、その学習モデルに対して電子的な透かしを埋め込むための装置である。
[0020]
 実施の形態に係る情報処理装置は、CPUやGPU等のプロセッサ、DRAM(Dynamic Random Access Memory)等の作業メモリ、及びHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置によって構成される。情報処理装置は、PC(Personal Computer)やワークステーション、サーバ等の単一の装置であってもよいし、クラウドサーバのように複数の装置から構成されてもよい。
[0021]
 図5は、実施の形態に係る情報処理装置が実行する学習処理の概要を説明するための模式図である。実施の形態に係る情報処理装置は、従来のニューラルネットワークと同様に、目的タスク学習用の第1データD1及び第1ラベルT1を含む第1教師データに基づいて、複数の層を備える第1ニューラルネットワークN1の各層Lの各重みについて勾配(以下、第1勾配と呼ぶ。)を求める。例えば、「猫検出」、「山検出」、「自動車検出」のように複数の目的タスクが存在する場合、各目的タスク用の第1データD1と、各第1データD1それぞれに対応する第1ラベルT1を割り当てたデータセットが、第1教師データとなる。
[0022]
 また、実施の形態に係る情報処理装置は、第1ニューラルネットワークを構成する層Lの中から選択した1又はそれ以上の層Lから構成される第2ニューラルネットワークN2も備える。実施の形態に係る情報処理装置は、透かし検出用の第2データD2及び第2ラベルT2を含む第2教師データに基づいて、第2ニューラルネットワークN2における層Lの各重みについて勾配(以下、第2勾配と呼ぶ。)を求める。なお、第2教師データは、1つの第2データD2と、それに対応する第2ラベルT2とのペアである。第2ラベルT2が透かしである。したがって、埋め込む透かしを異ならせる場合、異なるペアを使用する。図5は、第1ニューラルネットワークN1における第2層L2が、第2ニューラルネットワークN2を構成する層として選択された場合の例を示している。
[0023]
 詳細は後述するが、実施の形態に係る情報処理装置は、第1ニューラルネットワークN1から選択した層L(本例では第2層L2)の重みフィルタを1次元に展開して重み更新用ベクトルWを生成する。実施の形態に係る情報処理装置は、透かし検出用の第2データD2と、生成した重み更新用ベクトルWとに対して所定の演算を行って第2ニューラルネットワークN2の出力である第2出力O2を求める。例えば、重み更新用ベクトルWがK個の重みを含むベクトルであり、第2ラベルT2をBビットとする。この場合、第2データD2は、B行K列の行列とすることができる。そして、第2ニューラルネットワークN2は、この行列と重み更新用ベクトルWとの積を求めて、Bビットの第2出力O2を求める。なお、B行K列の行列の要素の値と、第2ラベルT2の各ビットの値は、任意に選択することできる。実施の形態に係る情報処理装置は、第2出力O2と、第2ラベルT2との第2誤差E2に基づいて、誤差逆伝搬法により、重み更新用ベクトルの各重みについて第2勾配を求める。
[0024]
 ここで、実施の形態に係る情報処理装置は、第2ニューラルネットワークN2における重み更新用ベクトルWに対して、マスクデータMを設定する。マスクデータMは、重み更新用ベクトルWの各重みについて、第2勾配を強制的に0とするか否か、或いは、第2勾配を求めるか否かを示している。つまり、マスクデータは、重み更新用ベクトルWの重みそれぞれが第1グループに属するか第2グループに属するかを示すデータである。ここで、第1グループに属する重みは第2勾配を求める重みであり、第2グループに属する重みは第2勾配を求めない(或いは、第2勾配を強制的に0にする)重みである。図5に示す例では、マスクデータMにおいて黒色の矩形に白抜きの×印で示す部分が、第2勾配を求めない箇所である。
[0025]
 実施の形態に係る情報処理装置は、透かし検出用の第2ラベルT2が異なる場合、すなわち埋め込む透かしが異なる場合、重み更新を禁止する箇所が異なるマスクデータMを設定する。これにより、実施の形態に係る情報処理装置は、第1ニューラルネットワークを構成する層の中から選択した1又はそれ以上の層に対し、異なるマスクデータの数だけ異なる透かしを埋め込むことができる。
[0026]
 上述した様に、第1ニューラルネットワークN1については、総ての層の総ての重みについて第1教師データに基づき第1勾配が算出される。また、第2ニューラルネットワークN2を構成する層として選択された第2層L2の複数の重みのうち、マスクデータMが第1グループであると示している重みについては、第2ニューラルネットワークN2と第2教師データに基づき第2勾配が求められる。実施の形態に係る情報処理装置は、第1ニューラルネットワークN1の各層Lの重みのうち、第1勾配のみが求められた重みについては、第1勾配のみにより更新を行う。一方、第1ニューラルネットワークN1の複数の層のうち、第2ニューラルネットワークを構成する層として選択された層の重みのうち、第1勾配と第2勾配が求められた重みについては、第1勾配及び第2勾配に基づき、より詳しくは、第1勾配と第2勾配との和に基づき更新を行う。そして、第1ニューラルネットワークN1の各層Lの重みを更新すると、更新後の重みに基づき、再度、第2ニューラルネットワークN2の重み更新用ベクトルWを求める。実施の形態に係る情報処理装置は、第2ニューラルネットワークN2の重み更新用ベクトルWを求めることと、第1勾配の算出と、第2勾配の算出と、第1ニューラルネットワークN1の各重みの更新を繰り返すことで、目的タスクのための学習と透かし埋め込みのための学習とを同時に実現する。なお、最初に第2ニューラルネットワークN2の重み更新用ベクトルWを求めた後、重み更新用ベクトルWの重みについても、当該重みについて求めた第2勾配と、第1ニューラルネットワークN1において当該重みについて求めた第1勾配との和に基づき更新する構成とすることができる。この場合、実施の形態に係る情報処理装置は、第1勾配の算出と、第2勾配の算出と、第1ニューラルネットワークN1及び第2ニューラルネットワークN2の各重みの更新を繰り返すことになる。なお、以下では、前者の方法、つまり、第1ニューラルネットワークN1の重みのみを更新し、更新後、再度、第2ニューラルネットワークN2の重み更新用ベクトルWを求めるものとする。なお、この場合、第2ニューラルネットワークN2の重み更新用ベクトルWの元となる第1ニューラルネットワークの層(本例では、第2層L2)は、繰り返しにおいて同じものとする。
[0027]
<実施の形態に係る情報処理装置の機能構成>
 以下、実施の形態に係る情報処理装置についてより詳細に説明する。図6は、実施の形態に係る情報処理装置1の機能構成を模式的に示す図である。情報処理装置1は、記憶部10と制御部20とを備える。制御部20は、透かし用重み設定部21、マスク設定部22、勾配判定部23及び重み更新部24を備える。
[0028]
 記憶部10は、情報処理装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)や情報処理装置1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。記憶部10は、第1教師データ、第2教師データ、第1ニューラルネットワークN1の構成を示す情報、例えば、第1ニューラルネットワークN1の各重みフィルタの初期値等の情報を保持している。
[0029]
 制御部20は、情報処理装置1のCPUやGPU等のプロセッサであり、記憶部10に記憶されたプログラムを実行することによって透かし用重み設定部21、マスク設定部22、勾配判定部23及び重み更新部24として機能する。
[0030]
 透かし用重み設定部21は、第1ニューラルネットワークN1を構成する層Lの中から選択した1又はそれ以上の層Lの重みを、透かし埋め込みタスク用の第2ニューラルネットワークN2を構成する層Lの重みとして設定する。ここで、透かし用重み設定部21は、第1ニューラルネットワークN1を構成する1又はそれ以上の層Lのうち、第1ニューラルネットワークN1の入力層Lに近い側に存在する層Lを優先して選択する。これにより、実施の形態に係る情報処理装置1が生成した学習モデルが事後的にファインチューニングによって改変されたとしても、透かしを埋め込んだ層Lが変更される可能性を減らすことができる。一般に、出力層に近い層Lであるほど、ファインチューニングによって改変される確率が高まるからである。
[0031]
 図7は、実施の形態に係る透かし用重み設定部21による重み設定処理を説明するための図である。具体的には、図7は、5×5×3個の要素からなる重みフィルタに基づいて、透かし用重み設定部21が重み更新用ベクトルWを生成する過程を示している。
[0032]
 参照符号50は、5×5×3個の要素からなる重みフィルタFを示している。透かし用重み設定部21は、5×5×3個の要素からなる重みフィルタを、まず縦5、横5合わせて25個の要素からなる3つの2次元重みフィルタ(F1、F2、及びF3)に分割する。参照符号51は、5×5×3個の要素からなる重みフィルタを分割して得られる第1重みフィルタF1、第2重みフィルタF2、及び第3重みフィルタF3を示している。
[0033]
 続いて、透かし用重み設定部21は、第1重みフィルタF1、第2重みフィルタF2、及び第3重みフィルタF3それぞれを、5×5=25個の要素からなる3つの列ベクトル(V1、V2、及びV3)に展開する。参照符号52は、第1重みフィルタF1、第2重みフィルタF2、及び第3重みフィルタF3それぞれを展開して得られる第1列ベクトルV1、第2列ベクトルV2、及び第3列ベクトルV3を模式的に示す図である。
[0034]
 最後に、透かし用重み設定部21は、第1列ベクトルV1、第2列ベクトルV2、及び第3列ベクトルV3を順に連結して25×3=75個の要素からなる一つの列ベクトルVを生成し、これを重み更新用ベクトルWとする。ここで、図4を参照して説明したように、透かし用重み設定部21が選択した層LがN個の重みフィルタNを備える場合、透かし用重み設定部21は、各フィルタを同様に列ベクトルに展開したうえで順番につなげ、75×N個の要素からなる新たな列ベクトルを生成する。透かし用重み設定部21は、生成した列ベクトルを重み更新用ベクトルWとする。
[0035]
 マスク設定部22は、マスクデータMを設定する。図8Aは、重み更新用ベクトルWと、マスクデータMと、第2ラベルT2との関係を示している。図8Aに示すように、マスクデータMの形状及びサイズは、重み更新用ベクトルWと、同じである。図8Aに示す重み更新用ベクトルWにおいて、一つの矩形は一つの重みを示している。
[0036]
 マスクデータMにおいて、白抜きの矩形は、対応する重みが第1グループであることを示し、斜線を付した矩形は、対応する重みが第2グループであることを示している。なお、第1グループの重みは第2勾配を求める重みであり、第2グループの重みは第2勾配を求めない、或いは、強制的に0にする重みである。なお、第1グループに属する重みの数は、例えば、第2ラベルT2のビット数と同じとする。図8Aに示す例では、重み更新用ベクトルWの上部の6個の重みについては、第2勾配と、第1ニューラルネットワークの対応する重みについての第1勾配との和に基づき更新されることになる。一方、重み更新用ベクトルWの上部の6個以外の重みについては、第2勾配を求めない、或いは、第2勾配を強制的に0とするため、第1ニューラルネットワークの対応する重みについての第1勾配のみに基づき更新されることになる。第2ラベルT2のビット長は、重み更新用ベクトルWの長さ、埋め込むべき透かしの数、及び透かしデータの複雑性等を勘案して定めればよい。
[0037]
 図8Bは、3つの異なるマスクデータMと、それらに対応する3つの異なる第2ラベルT2を示す図である。より具体的には、図8Bは、第1マスクデータM1、第2マスクデータM2、及び第3マスクデータM3と、各マスクデータMに対応する第2ラベルT2a、第2ラベルT2b、及び第2ラベルT2cを示している。この様に、マスク設定部23は、第2教師データが異なると、異なるマスクデータMを設定する。図8Bに示すように、第1マスクデータM1、第2マスクデータM2、及び第3マスクデータM3が示す第1グループの重みは重複しない。マスク設定部22は、異なる第2ラベルT2(すなわち、異なる透かし検出用の第2データD2)を学習する際には、異なるマスクデータMを設定する。この構成により、第1ニューラルネットワークN1に、第2ラベルT2aをまず埋め込み、その後、第1ニューラルネットワークN1のバージョンを更新する際に、第2ラベルT2bを埋め込むことができる。
[0038]
 勾配判定部23は、第1ニューラルネットワークN1の総ての層の各重みについて第1教師データに基づき第1勾配を求める。また、勾配判定部23は、第2ニューラルネットワークN2の重み更新用ベクトルWのうち、マスクデータが第1グループであると示している重みについて第2勾配を求める。或いは、勾配判定部23は、第2ニューラルネットワークN2の重み更新用ベクトルWの各重みについて第2勾配を求め、その後、第2グループの重みについては第2勾配を強制的に0とする。重み更新部24は、第1ニューラルネットワークN1の複数の層の各重みのうち、第1勾配のみが求められている重みについては第1勾配に基づき更新を行う。一方、重み更新部24は、第1ニューラルネットワークN1の複数の層の各重みのうち、第1勾配と第2勾配の両方が求められている重みについては第1勾配と第2勾配とに基づき更新を行う。第1ニューラルネットワークN1の更新後の重みは、透かし用重み設定部21に通知され、透かし用重み設定部21は、第1ニューラルネットワークN1の更新後の重みに基づき重み更新用ベクトルWを生成する。以後、この処理が繰り返される。なお、繰り返しにおいて、透かし用重み設定部21とマスク設定部22の処理は同じである。つまり、透かし用重み設定部21が重み更新用ベクトルWを生成するために使用する第1ニューラルネットワークN1の層と、当該層の重み更新用ベクトルWへの展開方法は同じである。また、マスク設定部22が生成するマスクデータMは同じである。
[0039]
 ここで、勾配判定部23は、マスクデータMが第1グループであると示している重み更新用ベクトルWの重みに対応する、第1ニューラルネットワークN1の重みについての第1勾配を強制的に0(或いは、第1勾配を求めない)としても良い。この場合、第1勾配を強制的に0とする(或いは、第1勾配を求めない)第1ニューラルネットワークN1の重みは、第2勾配のみより更新され、よって、目的タスクの学習に寄与せずに透かしの埋め込みのためにのみ用いられることになる。目的タスクの学習に寄与する重みが減少する分、第1ニューラルネットワークN1の学習能力が減少することになるが、透かし用重み設定部21が選択した層Lよりも出力側に十分な数の層があれば、目的タスクの実質的な影響は少ないと考えられる。むしろ、当該重みを透かしの埋め込み専用に割り当てることになり、透かし埋め込みの信頼性を向上させることができる。
[0040]
 また、第2ニューラルネットワークN2の出力である第2出力O2は、透かし検出用の第2データD2と、生成した重み更新用ベクトルWとに対して所定の演算を行って求めるものとした。このとき、マスクデータMが第2グループであると示している重み更新用ベクトルWの重みについては、その値が0であるものとして第2データD2との演算を行う構成とすることができる。この場合には、第2勾配を求める際にも、第2グループの重みを0にして、第2データD2との演算を行う。第2グループの重みは、第1勾配のみにより更新され、第2ラベルT2の生成には寄与しない。したがって、第2グループの重みを0として演算を行うことで、第2出力O2を第2ラベルT2に近づけることができる。
[0041]
 <情報処理装置1が実行する情報処理の処理フロー>
 図9は、実施の形態に係る情報処理装置1が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置1が起動したときに開始する。
[0042]
 制御部20は、記憶部10から目的タスク学習用の第1データD1及び第1ラベルT1を読み出して取得する(S2)。制御部20は、記憶部10から透かし検出用の第2データD2及び第2ラベルT2を読み出して取得する(S4)。
[0043]
 透かし用重み設定部21は、第1ニューラルネットワークN1を構成する層Lの中から選択した1又はそれ以上の層Lの重みを、透かし埋め込みタスク用の第2ニューラルネットワークN2を構成する層Lの重みとして選択する(S6)。マスク設定部22は、マスクデータMを設定する(S8)。
[0044]
 勾配判定部23は、第2ニューラルネットワークN2の出力と透かし検出用ラベルの誤差である第2誤差E2を最小化するように、重み更新用ベクトルWの第1グループの重みについて第2勾配を求める。さらに、勾配判定部23は、第1ニューラルネットワークN1の出力と第1ラベルT1との誤差である第1誤差E1を最小化するように、第1ニューラルネットワークN1の各重みについて第1勾配を求める。重み更新部24は、上述した様に、第1ニューラルネットワークN1の複数の層それぞれの重みを更新する。(S12)。
[0045]
 情報処理装置1は、第1誤差E1と第2誤差E2とのそれぞれが所定の閾値以下となるまで、図9の処理を繰り返す。第1誤差E1と第2誤差E2とのそれぞれが所定の閾値以下となると、本フローチャートにおける処理は終了する。
[0046]
<情報処理装置1が奏する効果>
 例えば、あるニューラルネットワークが使用している重みフィルタから図7で説明した様に重み更新ベクトルWを生成し、この重み更新ベクトルWと第2データD2とに対して第2ニューラルネットワークN2で定義された所定の演算を行って第2出力O2を求める。この第2出力O2と第2ラベルT2とを比較することで、あるニューラルネットワークの出所を特定することができる。具体的には、例えば、第2出力O2と第2ラベルT2との対応する要素の差が総て閾値以内であると、ニューラルネットワークは、透かしである第2ラベルT2が埋め込まれたものと判定することができる。また、マスク設定部22は、透かし検出用の第2データD2及び第2ラベルT2を含む第2教師データに対応付けて、マスクデータMを設定するので、複数の透かしデータを埋め込むことができる。これにより、例えば、学習モデルのバージョンや権利保有者毎に異なる透かしを学習モデルに挿入できる。
[0047]
 また、上記では、目的タスクとして教師あり学習について説明したが、目的タスクとしては教師あり学習以外の学習方法(例えば、強化学習、教師なし学習、半教師あり学習等)において本手法を適用し学習させてもよい。
[0048]
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
[0049]
 本願は、2017年3月31日提出の日本国特許出願特願2017-071874を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。

請求の範囲

[請求項1]
 第1ニューラルネットワークの複数の層の中から選択した選択層の複数の重みを、第2ニューラルネットワークの複数の重みとして設定する重み設定手段と、
 前記選択層の複数の重みそれぞれを第1グループ又は第2グループに分類する分類手段と、
 前記第1ニューラルネットワークの複数の層の各重みについての第1勾配を第1教師データに基づき判定する第1判定手段と、
 前記第2ニューラルネットワークの複数の重みのうちの前記第1グループに属する重みについての第2勾配を第2教師データに基づき判定する第2判定手段と、
 前記選択層の複数の重みのうち、前記第1グループに属する重みについては、前記第1判定手段が判定した前記第1勾配と前記第2判定手段が判定した前記第2勾配と、に基づき更新し、前記選択層の複数の重みのうち、前記第2グループに属する重みと、前記第1ニューラルネットワークの複数の層のうちの前記選択層とは異なる層の重みについては、前記第1判定手段が判定した前記第1勾配に基づき更新する更新手段と、
を備える、情報処理装置。
[請求項2]
 前記第1判定手段は、前記第1ニューラルネットワークの前記選択層の複数の重みのうち、前記第1グループに属する重みについては、前記第1勾配を0にする、請求項1に記載の情報処理装置。
[請求項3]
 前記分類手段は、前記第2教師データに応じて前記選択層の複数の重みそれぞれを前記第1グループ又は前記第2グループに分類し、
 異なる前記第2教師データに対して前記第1グループが示す前記選択層の重みは重複しない、請求項1又は2に記載の情報処理装置。
[請求項4]
 前記重み設定手段は、前記第1ニューラルネットワークの複数の層のうち、前記第1ニューラルネットワークの入力層に近い層を優先して前記選択層として選択する、請求項1から3のいずれか一項に記載の情報処理装置。
[請求項5]
 前記第2判定手段は、前記第2ニューラルネットワークの複数の重みのうち、前記第2グループに属する重みについてはその値を0として前記第2勾配を判定する、請求項1から4のいずれか一項に記載の情報処理装置。
[請求項6]
 プロセッサが、
 第1ニューラルネットワークの複数の層の中から選択層を選択することと、
 前記選択層を、第2ニューラルネットワークを構成する層として設定することと、
 前記選択層の複数の重みそれぞれを第1グループ又は第2グループに分類することと、
 前記第1ニューラルネットワークの複数の層の各重みについての第1勾配を第1教師データに基づき判定することと、
 前記第2ニューラルネットワークを構成する前記選択層の複数の重みのうち、前記第1グループに属する重みについての第2勾配を第2教師データに基づき判定することと、
 前記選択層の複数の重みのうち、前記第1グループに属する重みについては、前記第1勾配と前記第2勾配と、に基づき更新し、前記選択層の複数の重みのうち、前記第2グループに属する重みと、前記第1ニューラルネットワークの複数の層のうちの前記選択層とは異なる層の重みについては、前記第1勾配に基づき更新することと、
を実行する、情報処理方法。
[請求項7]
 プログラムを格納するコンピュータ可読記憶媒体であって、
 前記プログラムは、1つ以上のプロセッサで実行されると、前記1つ以上のプロセッサに、
 第1ニューラルネットワークの複数の層の中から選択層を選択することと、
 前記選択層を、第2ニューラルネットワークを構成する層として設定することと、
 前記選択層の複数の重みそれぞれを第1グループ又は第2グループに分類することと、
 前記第1ニューラルネットワークの複数の層の各重みについての第1勾配を第1教師データに基づき判定することと、
 前記第2ニューラルネットワークを構成する前記選択層の複数の重みのうち、前記第1グループに属する重みについての第2勾配を第2教師データに基づき判定することと、
 前記選択層の複数の重みのうち、前記第1グループに属する重みについては、前記第1勾配と前記第2勾配と、に基づき更新し、前記選択層の複数の重みのうち、前記第2グループに属する重みと、前記第1ニューラルネットワークの複数の層のうちの前記選択層とは異なる層の重みについては、前記第1勾配に基づき更新することと、
を実行させる、コンピュータ可読記憶媒体。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8A]

[ 図 8B]

[ 図 9]