(57)【要約】【課題】出所を特定することができる学習モデルを提供する。【解決手段】第１重み更新部２１は、目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新する。透かし用重み設定部２２は、第１ニューラルネットワークを構成する層の中から選択した１又はそれ以上の層の重みを、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定する。マスク設定部２３は、透かし検出用のデータ及びラベルを含む第２訓練データに対応付けて、第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定する。第２重み更新部２４は、第２訓練データに基づいて、第２ニューラルネットワークの重みのうち、マスクデータが更新を許可する箇所の重みを更新する。【選択図】図６
2018173843.tif 000002
【特許請求の範囲】
【請求項１】
目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新する第１重み更新部と、
前記第１ニューラルネットワークを構成する層の中から選択した１又はそれ以上の層の重みを、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定する透かし用重み設定部と、
透かし検出用のデータ及びラベルを含む第２訓練データに対応付けて、前記第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定するマスク設定部と、
前記第２訓練データに基づいて、前記第２ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新する第２重み更新部と、
を備える情報処理装置。
【請求項２】
前記第１重み更新部は、前記マスクデータが前記第２ニューラルネットワークの重みの更新を許可する箇所に対応する前記第１ニューラルネットワークの重みの更新を禁止する、
請求項１に記載の情報処理装置。
【請求項３】
前記マスク設定部は、異なる前記第２訓練データに対し、重み更新を禁止する箇所が異なるマスクデータを設定する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記透かし用重み設定部は、前記第１ニューラルネットワークを構成する１又はそれ以上の層のうち、前記第１ニューラルネットワークの入力層に近い側に存在する層を優先して選択する、
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第１重み更新部は、前記第１ニューラルネットワークの各層の重みに対する前記目的タスク学習用のラベルの誤差を最小化した第１の勾配と、前記第２重み更新部によって生成された前記第２ニューラルネットワークの重みに対する透かし検出用ラベルの誤差を最小化した第２の勾配と、を加算した更新勾配に基づいて前記第１ニューラルネットワークの重みを更新する、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
プロセッサが、
目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新するステップと、
前記第１ニューラルネットワークを構成する層の中から１又はそれ以上の層を選択するステップと、
選択した層を、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定するステップと、
透かし検出用のデータ及びラベルを含む第２訓練データに対応付けて、前記第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定するステップと、
前記第２訓練データに基づいて、前記第２ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新するステップと、
を実行する情報処理方法。
【請求項７】
コンピュータに、
目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新する機能と、
前記第１ニューラルネットワークを構成する層の中から１又はそれ以上の層を選択する機能と、
選択した層を、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定する機能と、
透かし検出用のデータを含む第２訓練データに対応付けて、前記第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定する機能と、
前記第２訓練データに基づいて、前記第２ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphics Processing Unit）の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。さらに、一般に学習モデル生成に用いられた学習データを、学習モデル自体から推測することは難しい。
【０００５】
このため、学習モデルを生成した者は、その学習モデルが第三者によって不正に利用されたとしても、不正を立証することが難しい。収集した学習データと、学習データに基づいて生成された学習モデルとはそれぞれ労力をかけて取得した価値あるものであり、不正利用から学習モデルを守ることが望まれている。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、出所を特定することができる学習モデルを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、情報処理装置である。この装置は、目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新する第１重み更新部と、前記第１ニューラルネットワークを構成する層の中から選択した１又はそれ以上の層の重みを、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定する透かし用重み設定部と、透かし検出用のデータ及びラベルを含む第２訓練データに対応付けて、前記第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定するマスク設定部と、前記第２訓練データに基づいて、前記第２ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新する第２重み更新部と、を備える。
【０００８】
前記第１重み更新部は、前記マスクデータが前記第２ニューラルネットワークの重みの更新を許可する箇所に対応する前記第１ニューラルネットワークの重みの更新を禁止してもよい。
【０００９】
前記マスク設定部は、異なる前記第２訓練データに対し、重み更新を禁止する箇所が異なるマスクデータを設定してもよい。
【００１０】
前記透かし用重み設定部は、前記第１ニューラルネットワークを構成する１又はそれ以上の層のうち、前記第１ニューラルネットワークの入力層に近い側に存在する層を優先して選択してもよい。
【００１１】
前記第１重み更新部は、前記第１ニューラルネットワークの各層の重みに対する前記目的タスク学習用のラベルの誤差を最小化した第１の勾配と、前記第２重み更新部によって生成された前記第２ニューラルネットワークの重みに対する透かし検出用ラベルの誤差を最小化した第２の勾配と、を加算した更新勾配に基づいて前記第１ニューラルネットワークの重みを更新してもよい。
【００１２】
本発明の第２の態様は、情報処理方法である。この方法は、プロセッサが、目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新するステップと、前記第１ニューラルネットワークを構成する層の中から１又はそれ以上の層を選択するステップと、選択した層を、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定するステップと、透かし検出用のデータ及びラベルを含む第２訓練データに対応付けて、前記第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定するステップと、前記第２訓練データに基づいて、前記第２ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新するステップと、を実行する。
【００１３】
本発明の第３の態様は、プログラムである。このプログラムは、コンピュータに、目的タスク学習用のデータを含む第１訓練データに基づいて、複数の層を備える第１ニューラルネットワークの各層の重みを更新する機能と、前記第１ニューラルネットワークを構成する層の中から１又はそれ以上の層を選択する機能と、選択した層を、透かし埋め込みタスク用の第２ニューラルネットワークを構成する層の重みとして設定する機能と、透かし検出用のデータ及びラベルを含む第２訓練データに対応付けて、前記第２ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定する機能と、前記第２訓練データに基づいて、前記第２ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新する機能と、を実現させる。
【発明の効果】
【００１４】
本発明によれば、出所を特定することができる学習モデルを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【図２】入力データと特徴マップとの畳み込みの関係を説明するための図である。
【図３】重みフィルタを用いた特徴マップの生成を説明するための図である。
【図４】Ｎ個の重みフィルタとＮ段の特徴マップとの関係を説明するための図である。
【図５】実施の形態に係る情報処理装置が実行する学習処理の概要を説明するための模式図である。
【図６】実施の形態に係る情報処理装置の機能構成を模式的に示す図である。
【図７】実施の形態に係る透かし用重み設定部による重み設定処理を説明するための図である。
【図８】第２ラベルとマスクデータとの関係を模式的に示す図である。
【図９】実施の形態に係る情報処理装置が実行する情報処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
＜畳み込みニューラルネットワーク＞
実施の形態に係る情報処理装置は、ニューラルネットワークのうち、特に畳み込みニューラルネットワーク（Convolutional Neural Network；ＣＮＮ）のモデルパラメータに透かし情報を埋め込むための装置である。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳み込みニューラルネットワークについて簡単に説明する。
【００１７】
図１は、畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ（又はグラフ構造）で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
【００１８】
図１において、順伝播型ニューラルネットワークとして、入力層（input layer）と、隠れ層（hidden layer）と、出力層（output layer）との３つの層から構成され、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状に複数の層から構成することができる。各層は、複数のユニット（ニューロン）を持つ。各層において、前方層のユニットから後方層のユニットへつなぐ関数のパラメータを、「重み（weight）」と称す。本明細書における学習とは、この関数のパラメータとして、適切な「重み」を算出することである。
【００１９】
図１は、畳み込みニューラルネットワークを図示している。畳み込みニューラルネットワークは、入力層と、畳み込み層（convolutional layer）と、プーリング層（pooling layer）と、全結合層（full-connected layer）と、出力層とから構成される。図１において、第１層Ｌ１が入力層であり、第２層Ｌ２は畳み込み層である。同様に、第ｍ層Ｌｍが出力層となっている。畳み込みニューラルネットワークは、前方層における特定のユニットのみが、後方層のユニットへ結合されている。すなわち、畳み込みニューラルネットワークにおいては、前方層における全てのユニットが後方層のユニットへ結合されているものではない。
【００２０】
実施の形態に係るニューラルネットワークにおける学習は、訓練データに対する出力層からの出力値と訓練データのラベルとの誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」（loss function）が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播し、各層の重みを少しずつ更新していく。最終的に、誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行する。具体的には、ニューラルネットワークにおける学習（すなわち、新規のモデルパラメータの生成段階）で、誤差を逆伝播させた勾配によって、モデルパラメータを更新する。
【００２１】
図２は、入力データと特徴マップとの畳み込みの関係を説明するための図である。図２における処理は、畳み込み層及び全結合層によって実行される。図２に示す例では、入力データに対して１個の重みフィルタをかけることにより、特徴マップを生成している。図２において、入力データ、重みフィルタ、及び特徴マップのサイズはそれぞれ以下のとおりである。
入力データ  ：３２×３２×３個の要素
重みフィルタ：５×５×３個の要素  （モデルパラメータ）
特徴マップ  ：２８×２８個の要素
【００２２】
重みフィルタはＮ個（Ｎは１以上の整数。）分用意され、これがモデルパラメータとなる。すなわち、「重み」とは、Ｎ個の重みフィルタを意味する。ただし、ここでは、バイアス項は考慮しないものとする。
【００２３】
図３は、重みフィルタを用いた特徴マップの生成を説明するための図である。
図３に示す例では、５×５×３個の要素からなる１個の重みフィルタを入力データにかけ、その各要素の積の和を特徴マップの１個の要素の値とする。そして、入力データに対して同じ重みフィルタを移動させることにより、１枚の特徴マップを生成する。ここで、重みフィルタを移動させる要素の数（移動量）を「ストライド（stride）」と称す。入力データの周囲の縁（ふち）には、要素0を埋めたゼロパディング（zero-padding）の領域を設ける。これによって、入力データの縁の要素にも、同数の重みフィルタをあてることができる。
【００２４】
図４は、Ｎ個の重みフィルタとＮ段の特徴マップとの関係を説明するための図である。図４に示す例では、重みフィルタの数はＮ個である。図２及び図３は、１個の重みフィルタによって生成された１枚の特徴マップが生成される場合の例が示されている。これに対し、図４に示す例は、Ｎ個の重みフィルタによってＮ段の特徴マップが生成される場合の例が示されている。ニューラルネットワークの学習では、ある層における特徴マップが、次の層における入力データとなる。ニューラルネットワークの学習を実行することにより、損失関数に基づく誤差が出力層側から入力層側へ向けて次々に伝播し、既知の誤差逆伝播法によって各層の重みが更新される。
【００２５】
＜実施の形態の概要＞
以上を前提として、実施の形態の概要を述べる。
実施の形態に係る情報処理装置は、ニューラルネットワークを用いて目的タスクを達成するための学習モデルを生成すると同時に、その学習モデルに対して電子的な透かしを埋め込むための装置である。
【００２６】
実施の形態に係る情報処理装置は、ＣＰＵやＧＰＵ等のプロセッサ、ＤＲＡＭ（Dynamic Random Access Memory）等の作業メモリ、及びＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量記憶装置によって構成される。情報処理装置１は、ＰＣ（Personal Computer）やワークステーション、サーバ等の単一の装置であってもよいし、クラウドサーバのように複数の装置から構成されてもよい。
【００２７】
図５は、実施の形態に係る情報処理装置が実行する学習処理の概要を説明するための模式図である。実施の形態に係る情報処理装置は、従来のニューラルネットワークと同様に、目的タスク学習用の第１データＤ１及び第１ラベルＴ１を含む第１訓練データに基づいて、複数の層Ｌを備える第１ニューラルネットワークＮ１の各層Ｌの重みを更新する。例えば、「猫検出」、「山検出」、「自動車検出」のように複数の目的タスクが存在する場合、各目的タスク用の第１データＤ１と、各第１データＤ１それぞれに異なる第１ラベルＴ１を割り当てたデータセットが、第１訓練データとなる。
【００２８】
また、実施の形態に係る情報処理装置は、第１ニューラルネットワークを構成する層Ｌの中から選択した１又はそれ以上の層Ｌから構成される第２ニューラルネットワークＮ２も備える。実施の形態に係る情報処理装置は、透かし検出用の第２データＤ２及び第２ラベルＴ２を含む第２訓練データに基づいて、第２ニューラルネットワークＮ２における層Ｌの重みを更新する。なお、図５は、第１ニューラルネットワークＮ１における第２層Ｌ２が、第２ニューラルネットワークＮ２における重みの更新対象として選択された場合の例を示している。
【００２９】
詳細は後述するが、実施の形態に係る情報処理装置は、第１ニューラルネットワークＮ１から選択した層Ｌに基づいて重み更新用ベクトルＷを生成する。実施の形態に係る情報処理装置は、生成した重み更新用ベクトルＷに対する全結合層の出力を、第２ニューラルネットワークＮ２の出力である第２出力Ｏ２とする。第２出力Ｏ２は、重み更新用ベクトルＷに「透かしパラメータ行列Ｘ」を乗じて生成されるベクトルに相当する。実施の形態に係る情報処理装置は、第２出力Ｏ２と、第２ラベルＴ２との第２誤差Ｅ２に基づいて、重み更新用ベクトルＷを更新する。
【００３０】
ここで、実施の形態に係る情報処理装置は、第２ニューラルネットワークＮ２における重み更新用ベクトルＷに対して、重み更新の可否を定めるマスクデータＭを設定する。実施の形態に係る情報処理装置は、マスクデータＭが更新を許可する箇所の重みを更新の対象とし、マスクデータＭが更新を禁止する箇所の重みは更新せずに維持する。図５に示す例では、マスクデータＭにおいて黒色の矩形に白抜きの×印で示す部分が重み更新を禁止する箇所である。重み更新用ベクトルＷのうちマスクデータＭが重み更新を禁止する箇所、すなわち重み更新用ベクトルＷにおいて黒色の丸で示される個所の重みは更新されない。
【００３１】
実施の形態に係る情報処理装置は、透かし検出用の第２ラベルＴ２が異なる場合、すなわち埋め込む透かしが異なる場合、重み更新を禁止する箇所が異なるマスクデータＭを設定する。これにより、実施の形態に係る情報処理装置は、第１ニューラルネットワークを構成する層の中から選択した１又はそれ以上の層に対し、異なるマスクデータの数だけ異なる透かしを埋め込むことができる。
【００３２】
なお、実施の形態に係る情報処理装置は、従来のニューラルネットワークと同様に、第１ニューラルネットワークＮ１の最終層である第ｍ層Ｌｍの出力である第１出力Ｏ１と、第１ラベルＴ１との誤差である第１誤差Ｅ１に基づいて、各層Ｌの重みを更新することを基本とする。しかしながら、実施の形態に係る情報処理装置は、第２ニューラルネットワークＮ２を構成する重みとして選択した第２層Ｌ２に関しては、第１誤差Ｅ１と第２誤差Ｅ２とに基づいて重みを更新する。これにより、実施の形態に係る情報処理装置は、目的タスクのための学習と透かし埋め込みのための学習とを同時に実現することができる。
【００３３】
＜実施の形態に係る情報処理装置の機能構成＞
以下、実施の形態に係る情報処理装置についてより詳細に説明する。
図６は、実施の形態に係る情報処理装置１の機能構成を模式的に示す図である。情報処理装置１は、記憶部１０と制御部２０とを備える。制御部２０は、第１重み更新部２１、透かし用重み設定部２２、マスク設定部２３、及び第２重み更新部２４を備える。
【００３４】
記憶部１０は、情報処理装置１を実現するコンピュータのＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）や情報処理装置１の作業領域となるＲＡＭ（Random Access Memory）、ＯＳ（Operating System）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤやＳＳＤ等の大容量記憶装置である。
【００３５】
制御部２０は、情報処理装置１のＣＰＵやＧＰＵ等のプロセッサであり、記憶部１０に記憶されたプログラムを実行することによって第１重み更新部２１、透かし用重み設定部２２、マスク設定部２３、及び第２重み更新部２４として機能する。
【００３６】
第１重み更新部２１は、目的タスク学習用の第１データＤ１及び第１ラベルＴ１を含む第１訓練データを記憶部１０から読み出して取得する。第１重み更新部２１は、取得した第１訓練データに基づいて、複数の層Ｌを備える第１ニューラルネットワークＮ１の各層Ｌの重みを更新する。
【００３７】
透かし用重み設定部２２は、第１ニューラルネットワークＮ１を構成する層Ｌの中から選択した１又はそれ以上の層Ｌの重みを、透かし埋め込みタスク用の第２ニューラルネットワークＮ２を構成する層Ｌの重みとして設定する。ここで、第１重み更新部２１は、第１ニューラルネットワークＮ１を構成する１又はそれ以上の層Ｌのうち、第１ニューラルネットワークＮ１の入力層Ｌに近い側に存在する層Ｌを優先して選択する。これにより、実施の形態に係る情報処理装置１が生成した学習モデルが事後的にファインチューニングによって改変されたとしても、透かしを埋め込んだ層Ｌが変更される可能性を減らすことができる。一般に、出力層に近い層Ｌであるほど、ファインチューニングによって改変される確率が高まるからである。
【００３８】
図７（ａ）―（ｃ）は、実施の形態に係る透かし用重み設定部２２による重み設定処理を説明するための図である。具体的には、図７（ａ）―（ｃ）は、５×５×３個の要素からなる重みフィルタに基づいて、透かし用重み設定部２２が重み更新用ベクトルＷを生成する過程を示す図である。
【００３９】
図７（ａ）は、５×５×３個の要素からなる重みフィルタＦを模式的に示す図である。透かし用重み設定部２２は、５×５×３個の要素からなる重みフィルタを、まず縦５、横５合わせて２５個の要素からなる３つの２次元重みフィルタ（Ｆ１、Ｆ２、及びＦ３）に分割する。図７（ｂ）は、５×５×３個の要素からなる重みフィルタを分割して得られる第１重みフィルタＦ１、第２重みフィルタＦ２、及び第３重みフィルタＦ３を模式的に示す図である。
【００４０】
続いて、透かし用重み設定部２２は、第１重みフィルタＦ１、第２重みフィルタＦ２、及び第３重みフィルタＦ３それぞれを、５×５＝２５個の要素からなる３つの列ベクトル（Ｖ１、Ｖ２、及びＶ３）に展開する。図７（ｃ）は、第１重みフィルタＦ１、第２重みフィルタＦ２、及び第３重みフィルタＦ３それぞれを展開して得られる第１列ベクトルＶ１、第２列ベクトルＶ２、及び第３列ベクトルＶ３を模式的に示す図である。
【００４１】
最後に、透かし用重み設定部２２は、第１列ベクトルＶ１、第２列ベクトルＶ２、及び第３列ベクトルＶ３を順に連結して２５×３＝７５個の要素からなる一つの列ベクトルＶを生成する。ここで、図４を参照して説明したように、透かし用重み設定部２２が選択した層ＬがＮ個の重みフィルタＮを備える場合、透かし用重み設定部２２は、各フィルタを同様に列ベクトルに展開したうえで順番につなげ、７５×Ｎ個の要素からなる新たな列ベクトルを生成する。透かし用重み設定部２２は、生成した列ベクトルを重み更新用ベクトルＷとする。
【００４２】
マスク設定部２３は、透かし検出用の第２データＤ２及び第２ラベルＴ２を含む第２訓練データに対応付けて、第２ニューラルネットワークＮ２における重み更新の可否を定めるマスクデータＭを設定する。ここで、マスク設定部２３は、異なる第２訓練データに対し、重み更新を禁止する箇所が異なるマスクデータＭを設定する。これは、一つの重み更新用ベクトルＷを異なるマスクデータＭの数だけ分割することに相当する。
【００４３】
図８（ａ）−（ｂ）は、第２ラベルＴ２とマスクデータＭとの関係を模式的に示す図である。図８（ａ）に示すように、マスクデータＭの形状及びサイズは、第２ラベルＴ２の形状及びサイズと同一である。図８に示す重み更新用ベクトルＷにおいて、一つの矩形は一つの重みパラメータを示している。
【００４４】
マスクデータＭにおいて、斜線を付した矩形は、対応する重み更新用ベクトルＷにおける重み更新を禁止する箇所を示し、白抜きの矩形は重みの更新を許可する箇所を示す。したがって、図８に示す例では、重み更新用ベクトルＷの上部の６個の重み更新が許可されることになる。このため、第２ラベルＴ２のビット長も６ビットとなっている。なお、第２ラベルＴ２のビット長は６ビットに限られない。第２ラベルＴ２のビット長は、重み更新用ベクトルＷの長さ、埋め込むべき透かしの数、及び透かしデータの複雑性等を勘案して定めればよい。
【００４５】
図８（ｂ）は、３つの異なるマスクデータＭと、それらに対応する３つの異なる第２ラベルＴ２を示す図である。より具体的には、図８（ｂ）は、第１マスクデータＭ１、第２マスクデータＭ２、及び第３マスクデータＭ３と、各マスクデータＭに対応する第２ラベルＴ２ａ、第２ラベルＴ２ｂ、及び第２ラベルＴ２ｃを示している。
【００４６】
図８（ｂ）に示すように、第１マスクデータＭ１、第２マスクデータＭ２、及び第３マスクデータＭ３は、それぞれ重み更新を許可する箇所が互いに排他的に異なる。マスク設定部２３は、第２重み更新部２４が異なる第２ラベルＴ２（すなわち、異なる透かし検出用の第２データＤ２）を学習する際には、異なるマスクデータＭを設定する。
【００４７】
第２重み更新部２４は、第２訓練データに含まれるデータ及び第２ラベルＴ２に基づいて、第２ニューラルネットワークの重みのうち、マスクデータＭが更新を許可する箇所の重みを更新する。第２重み更新部２４は、異なるマスクデータＭ毎に異なる第２ラベルＴ２に基づいて重み更新用ベクトルＷの重みを更新することができる。これにより、第２重み更新部２４は、一つの重み更新用ベクトルＷに、マスクデータＭの種類の数だけ異なる透かしを埋め込むことができる。
【００４８】
次に、第１重み更新部２１が実行する第１ニューラルネットワークＮ１における学習と、第２重み更新部２４が実行する第２ニューラルネットワークＮ２における学習との関係について説明する。
【００４９】
第１重み更新部２１は、第１ニューラルネットワークＮ１の学習段階で、第１誤差Ｅ１を逆伝播させた第１の勾配によって、第１ニューラルネットワークＮ１の各層Ｌの重みを更新しようとする。このとき、第１重み更新部２１は、第１ニューラルネットワークＮ１の各層Ｌの重みに対する第１ラベルＴ１の誤差（すなわち、第１誤差Ｅ１）を最小化した第１の勾配を算出する。
【００５０】
また、第２重み更新部２４は、第２ニューラルネットワークＮ２の重みである重み更新用ベクトルＷに対する透かし検出用ラベルの誤差（すなわち、第２誤差Ｅ２）を最小化した第２の勾配を算出する。第１重み更新部２１は、第１の勾配と第２の勾配とを加算した更新勾配に基づいて、第１ニューラルネットワークの重みを更新する。これにより、第１ニューラルネットワークＮ１の層Ｌのうち、第２ニューラルネットワークＮ２の重みとして透かし用重み設定部２２が選択した層Ｌに、透かしが埋め込まれることになる。
【００５１】
ここで、第１重み更新部２１は、マスクデータＭが第２ニューラルネットワークＮ２の重み（すなわち、重み更新用ベクトルＷ）の更新を許可する箇所に対応する第１ニューラルネットワークＮ１の重みの更新を禁止してもよい。この場合、透かし用重み設定部２２が選択した層Ｌのうち、マスクデータＭが重みの更新を許可する箇所に対応する箇所は、目的タスクの学習に寄与せずに透かしの埋め込みのためにのみ用いられることになる。目的タスクの学習に寄与する重みが減少する分、第１ニューラルネットワークＮ１の学習能力が減少することになるが、透かし用重み設定部２２が選択した層Ｌよりも出力側に十分な数の層があれば、目的タスクの実質的な影響は少ないと考えられる。むしろ、マスクデータＭが重みの更新を許可する箇所を透かしの埋め込み専用に割り当てることで、透かし埋め込みの信頼性を向上することができる。
【００５２】
＜情報処理装置１が実行する情報処理の処理フロー＞
図９は、実施の形態に係る情報処理装置１が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置１が起動したときに開始する。
【００５３】
第１重み更新部２１は、記憶部１０から目的タスク学習用の第１データＤ１及び第１ラベルＴ１を読み出して取得する（Ｓ２）。第２重み更新部２４は、記憶部１０から透かし検出用の第２データＤ２及び第２ラベルＴ２を読み出して取得する（Ｓ４）。
【００５４】
透かし用重み設定部２２は、第１ニューラルネットワークＮ１を構成する層Ｌの中から選択した１又はそれ以上の層Ｌの重みを、透かし埋め込みタスク用の第２ニューラルネットワークＮ２を構成する層Ｌの重みとして選択する（Ｓ６）。マスク設定部２３は、透かし検出用の第２データＤ２及び第２ラベルＴ２を含む第２訓練データに対応付けて、第２ニューラルネットワークＮ２における重み更新の可否を定めるマスクデータＭを設定する（Ｓ８）。
【００５５】
第２重み更新部２４は、重み更新用ベクトルＷに対する透かし検出用ラベルの誤差である第２誤差Ｅ２を最小化するように、重み更新用ベクトルＷを更新する（Ｓ１０）。第１重み更新部２１は、第１ニューラルネットワークＮ１の出力と第１ラベルＴ１との誤差である第１誤差Ｅ１と、第２誤差Ｅ２とに基づいて、第１ニューラルネットワークの重みを更新する（Ｓ１２）。
【００５６】
情報処理装置１は、第１誤差Ｅ１と第２誤差Ｅ２とのそれぞれが所定の閾値以下となるまで上記の重み更新を繰り返す。第１誤差Ｅ１と第２誤差Ｅ２とのそれぞれが所定の閾値以下となると、本フローチャートにおける処理は終了する。
【００５７】
＜情報処理装置１が奏する効果＞
以上説明したように、実施の形態に係る情報処理装置１によれば、出所を特定することができる学習モデルを提供することができる。特に、マスク設定部２３は、透かし検出用の第２データＤ２及び第２ラベルＴ２を含む第２訓練データに対応付けて、第２ニューラルネットワークＮ２における重み更新の可否を定めるマスクデータＭを設定するので、複数の透かしデータを埋め込むことができる。これにより、例えば、学習モデルのバージョンや権利保有者毎に異なる透かしを学習モデルに挿入できる。
【００５８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【００５９】
上記では、マスク設定部２３が設定するマスクデータＭに基づいて重み更新の可否を制御する場合について説明した。ここで、マスク設定部２３は、第１重み更新部２１及び第２重み更新部２４を直接制御して一部の重み更新制限するようにしてもよい。このように、マスク設定部２３が２１及び第２重み更新部２４の重み更新処理に干渉して重み更新制限することも、「マスクデータＭ」を設定することによって重み更新の可否を制御することを実質的に同じであることは、当業者であれば理解できることである。
【００６０】
また、上記では、目的タスクとして教師あり学習について説明したが、目的タスクとしては教師あり学習以外の学習方法（例えば、強化学習、教師なし学習、半教師あり学習等）において本手法を適用し学習させてもよい。
【符号の説明】
【００６１】
１・・・情報処理装置
１０・・・記憶部
２０・・・制御部
２１・・・第１重み更新部
２２・・・透かし用重み設定部
２３・・・マスク設定部
２４・・・第２重み更新部
【図１】
2018173843.tif 000003
【図２】
2018173843.tif 000004
【図３】
2018173843.tif 000005
【図４】
2018173843.tif 000006
【図５】
2018173843.tif 000007
【図６】
2018173843.tif 000008
【図７】
2018173843.tif 000009
【図８】
2018173843.tif 000010
【図９】
2018173843.tif 000011