(57)【要約】【課題】出所を特定することができる学習モデルを提供する。【解決手段】情報処理装置１において、訓練データ取得部２１は、目的タスク学習用の訓練データと透かしラベルとを取得する。重み更新部２２は、訓練データに基づいて、複数の層を備えるニューラルネットワークの各層の重みを更新する。重みベクトル生成部２３は、ニューラルネットワークを構成する層の中から選択した層の重みのうち少なくとも一部の重みを成分とするベクトルである重みベクトルを生成する。ベクトル変換部２４は、アダマール行列を重みベクトルに乗じて透かし用ベクトルに変換する。重み更新部２２は、目的タスク学習用に設定された第１損失関数に、透かし用ベクトルと透かしラベルとを用いて定められた第２損失関数を加算した損失関数に基づいて、重みを更新する。【選択図】図６
2019053541.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）」と称す。入力データの周囲の縁（ふち）には、要素０を埋めたゼロパディング（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）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤやＳＳＤ等の大容量記憶装置である。
【００３８】
制御部２０は、情報処理装置１のＣＰＵやＧＰＵ等のプロセッサであり、記憶部１０に記憶されたプログラムを実行することによって訓練データ取得部２１、重み更新部２２、重みベクトル生成部２３、ベクトル変換部２４、行列選択部２５サイズ調整部２６、透かしラベル生成部２７、及び変動記録部２８として機能する。
【００３９】
訓練データ取得部２１は、目的タスク学習用の訓練データと透かしラベルＴ２とを記憶部１０から取得する。訓練データ取得部２１が取得する訓練データには、目的タスク学習用データＤ及び目的タスク用ラベルＴ１が含まれる。重み更新部２２は、訓練データ取得部２１が取得した訓練データに基づいて、複数の層を備えるニューラルネットワークＮの各層の重みを更新する。上述したように、ニューラルネットワークＮは、目的タスク学習用のニュースである第１ニューラルネットワークＮ１と、透かしラベル埋め込み用のニューラルネットワークである第２ニューラルネットワークＮ２とを含んでいる。
【００４０】
重みベクトル生成部２３は、第１ニューラルネットワークＮ１を構成する層の中から選択した層の重みのうち少なくとも一部の重みを成分とするベクトルである重みベクトルＷを生成する。ベクトル変換部２４は、重みベクトル生成部２３が生成した重みベクトルＷにアダマール行列を乗じて透かし用ベクトルに変換する。
【００４１】
重み更新部２２は、目的タスク学習用に設定された第１損失関数に、透かし用ベクトルＯ２と透かしラベルＴ２とを用いて定められた第２損失関数を加算した損失関数に基づいて、ニューラルネットワークＮの重みを更新する。重みベクトル生成部２３は、例えば既知のクロスエントロピーを用いて第２損失関数を構成すればよい。
【００４２】
ここで、アダマール行列は、情報処理装置１が生成する学習モデルの出所を特定するために利用する秘密鍵としての役割を果たす行列である。このため、情報処理装置１が学習する際に用いたアダマール行列は、学習モデルの管理者等の一部の者のみが管理し第三者には秘匿される。また、情報処理装置１を構成する重みのうち、重みベクトル生成部２３がどの重みを用いて重みベクトルＷを構成したかも秘匿される。
【００４３】
アダマール変換は、特殊なフーリエ変換とみなすこともできる。すなわち、ベクトル変換部２４がアダマール行列を用いて透かしラベルＴ２を変換することにより、透かしラベルＴ２の情報は周波数空間中に分散して埋め込まれると考えられる。
【００４４】
したがって、透かしラベルＴ２の改変ないし除去を試みる攻撃者は、まず、情報処理装置１を構成する重みのうちどの重みを用いて重みベクトルＷが構成されているかを見極める必要がある。また、仮に、攻撃者が透かし用ベクトルＯ２を見出したとしても、学習に用いたアダマール行列を知らなければ、透かし用ベクトルＯ２から透かしラベルＴ２を算出することは難しい。
【００４５】
このように、情報処理装置１が生成した学習モデルは出所を特定することができ、かつ出所を示す情報の堅牢性を担保することができる。
【００４６】
上述したように、情報処理装置１が学習に用いるアダマール行列は任意のサイズでは定義されず、サイズが離散的となる。具体的には、アダマール行列は、行及び列の長さが２ｍ（ｍは正の整数）の正方行列となる。
【００４７】
図７は、アダマール行列、重みベクトルＷ、透かしラベルＴ２、及び透かし用ベクトルＯ２のサイズの関係を説明するための図である。透かしラベルＴ２は、学習モデルの出所判別に用いるための情報であるため、その長さは情報処理装置１を用いて学習モデルを作成した学習モデルの管理者等が任意に定めることができる。このため、透かしラベルＴ２の長さが２のべき乗と一致することは一般に保証されない。
【００４８】
そこで、行列選択部２５は、透かしラベルＴ２の長さＬ以上の行の長さを持つアダマール行列を選択する。図７では、透かしラベルＴ２の長さはＬであり、２ｍ−１＜Ｌ≦２ｍであるとする。この場合、行列選択部２５は、行の長さが２ｍであるアダマール行列を選択することになる。アダマール行列は正方行列あるため、行列選択部２５が選択したアダマール行列の列のサイズも２ｍとなる。
【００４９】
ベクトル変換部２４が重みベクトルＷにアダマール行列を乗じて生成するベクトルが透かし用ベクトルＯ２であるから、Ｌ＜２ｍである場合、透かしラベルＴ２と透かし用ベクトルＯ２との長さが異なることになる。そこで、サイズ調整部２６は、透かしラベルＴ２の長さが行列選択部２５が選択したアダマール行列の行の長さと同じ長さとなるように、透かしラベルＴ２をパディングする。
【００５０】
ここで「パディング」とは、データの前又は後ろに適当なデータを追加して長さを合わせる処理をいう。上述したように、透かし用ベクトルＯ２の成分は＋１又は−１のいずれかとするので、サイズ調整部２６は、透かしラベルＴ２に＋１又は−１のいずれかを追加して、透かしラベルＴ２をアダマール行列の行の長さと同じ長さとする。図７に示す例では、透かしラベルＴ２の末尾の斜線で示す領域が、サイズ調整部２６がパディングをした領域である。これにより、情報処理装置１は、任意の長さの透かしラベルＴ２を学習モデルに埋め込むことができる。
【００５１】
重みベクトル生成部２３は、第１ニューラルネットワークＮ１を構成する層Ｌの中から選択した層Ｌの重みのうち、行列選択部２５が選択したアダマール行列における行の長さと同じ数の重みを選択して、重みベクトルＷを生成する。このように、アダマール行列のサイズに応じて重みベクトル生成部２３が重みベクトルＷを生成することにより、行の長さが２のべき乗に規制されるアダマール行列を用いる場合であっても、情報処理装置１は、透かしラベルＴ２を学習モデルに埋め込むことができる。
【００５２】
このように、情報処理装置１は、任意の長さの透かしラベルＴ２を学習モデルに埋め込むことができるが、情報処理装置１が学習モデルに埋め込む透かしラベルＴ２は一種類でなくてもよい。具体的には、透かしラベルＴ２は、複数の異なるラベルを連結して生成されたデータであってもよい。
【００５３】
例えば、情報処理装置１が生成する学習モデルの生成に複数の作成者が関わっているとする。複数の作成者それぞれに異なるラベルを割り当てて管理する場合、情報処理装置１は、学習モデルに複数の異なるラベルを埋め込むことができれば便利である。そこで、透かしラベル生成部２７は、複数の異なるラベルを連結して透かしラベルＴ２を生成する。
【００５４】
図８（ａ）―（ｂ）は、実施の形態に係る透かしラベル生成部２７が作成する透かしラベルＴ２の構造を説明するための図である。具体的には、図８（ａ）は、第１透かしラベルＴ２ａ、第２透かしラベルＴ２ｂ、及び第３透かしラベルＴ２ｃの３つの異なるラベルから構成されている透かしラベルＴ２を例示している。図８（ａ）において、黒塗りの正方形は「−１」、白抜きの正方形は「＋１」を示している。図８（ａ）に示すように、第１透かしラベルＴ２ａ、第２透かしラベルＴ２ｂ、及び第３透かしラベルＴ２ｃはそれぞれ異なるパターンであり、透かしラベルＴ２は、各ラベルを直列に連結されたデータとなっている。
【００５５】
図８（ｂ）は、透かしラベルＴ２から各透かしラベルを取り出すための演算を模式的に示す図である。図８（ｂ）に示すように、情報処理装置１は、透かしラベルＴ２にアダマール行列を乗じることで、各透かしラベルを取り出すことができる。図８（ｂ）に示すように、第１透かしラベルＴ２ａ、第２透かしラベルＴ２ｂ、及び第３透かしラベルＴ２ｃの情報は、それぞれ共通の透かしラベルＴ２に埋め込まれることになる。そして、各透かしラベルは、透かしラベルＴ２にアダマール行列の対応する行を乗じることで取り出すことができる。
【００５６】
ここで、アダマール行列の各行は互いに直交している。このため、実施の形態に係る情報処理装置１によれば、異なる透かしラベルを同一の透かしラベルＴ２に埋め込んでも、透かしラベル同士が埋め込みの際に互いに影響を及ぼすことを軽減できる。
【００５７】
以上、情報処理装置１が、第１ニューラルネットワークＮ１を構成する層Ｌの重みの一部を用いて作成した重みベクトルＷに透かしラベルＴ２を埋め込むことにより、学習モデルに出所を特定可能な情報を埋め込むことについて説明した。次に、学習モデルに埋め込まれた透かしラベルＴ２について、第三者からの改変ないし除去の攻撃に対する耐性を高めるための重みの選択について説明する。
【００５８】
実施の形態に係る情報処理装置１が利用する畳み込みニューラルネットワークの層の数は、数１０層から１００層のオーダーである。したがって、畳み込みニューラルネットワークの層の層を構成する重みの数は、膨大となる。一般に、このような多層のニューラルネットワークを構成する重みは冗長性があり、必ずしも全ての重みが均等に学習に寄与しているわけではない。学習における貢献度が大きい重みは、貢献度が小さい重みと比較して、学習過程における変動が大きいと考えられる。言い換えると、学習における貢献度が大きい重みは、貢献度が小さい重みよりも、活性化していると考えられる。
【００５９】
また、仮に学習に関する貢献度が同程度の重みであっても、その重みが担う情報の質によって、学習過程における変動のしかたが変化すると考えられる。例えば、目的タスクが猫画像検出である場合、情報処理装置１は、多数の猫画像を訓練データとしてニューラルネットワークＮに学習させる。このとき、多数の猫画像に共通する成分（一般的には低周波成分）を担う重みは、ひとたび学習が安定すると変動しにくくなると考えられる。これに対し、多くの猫のバリエーションを吸収するための重みは、猫間の違いに敏感に反応するため、ファインチューニングによって大きく変動すると考えられる。
【００６０】
ここで、透かしラベルＴ２を埋め込むための重みベクトルＷを構成する重みを、学習過程における変動が少ない重みとすることにより、透かしラベルＴ２の攻撃者からの攻撃の耐性を高めることができる。なぜなら、攻撃者は学習モデルを再学習することによって透かしラベルＴ２のスクランブルを試みても、透かしラベルＴ２を埋め込んだ重みベクトルＷを構成する重みは、学習過程における変動が小さいため、スクランブルの度合いも小さくなるからである。
【００６１】
そのため、情報処理装置１は、目的タスク学習用の訓練データに基づいてあらかじめニューラルネットワークＮの各層の重みを更新することによって各層Ｌの重みの変動を記録する変動記録部２８を備える。
【００６２】
図９は、学習過程における重みの変動の一例を模式的に示す図であり、変動記録部２８が記録した重みの変動の一例を示す図である。図９では、重みＷ１、重みＷ２、重みＷ３、及び重みＷ４の４つの重みの変動を図示している。図９において、横軸は学習の反復回数を示し、縦軸は重みの値を示している。
【００６３】
図９において、重みＷ１及び重みＷ４は、重みＷ２及び重みＷ３と比較して、学習過程における変動が大きい。また、重みＷ３は、重みＷ２よりも学習過程における変動が小さい。図９に示す例では、学習過程における重みの変動の大きさの順に並べると、Ｗ１≒Ｗ４＞Ｗ２＞Ｗ３となる。したがって、重みベクトルＷを構成する重みとして採用する場合、攻撃耐性の高さの順序は、Ｗ３＞Ｗ２＞Ｗ１≒Ｗ４となる。
【００６４】
重みベクトル生成部２３は、学習過程における変動の小さい重みを、変動の大きい重みよりも優先して重みベクトルＷの成分として選択する。これにより、万が一攻撃者がファインチューニングによって透かしラベルＴ２のスクランブルを試みても、重みベクトルＷは学習による変動が小さい重みが採用されているため、スクランブルの影響を抑えることができる。
【００６５】
＜情報処理装置１が実行する情報処理の処理フロー＞
図１０は、実施の形態に係る情報処理装置１が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置１が起動したときに開始する。
【００６６】
訓練データ取得部２１は、目的タスク学習用データＤ及び目的タスク用ラベルＴ１を含む目的タスク学習用の訓練データと透かしラベルＴ２とを取得する（Ｓ２）。重みベクトル生成部２３は、複数の層Ｌを備えるニューラルネットワークＮを構成する層Ｌの中から選択した層Ｌの重みのうち少なくとも一部の重みを成分とするベクトルである重みベクトルＷを生成する（Ｓ４）。
【００６７】
ベクトル変換部２４は、アダマール行列を重みベクトルＷに乗じて得られる透かし用ベクトルＯ２に変換する（Ｓ６）。重み更新部２２は、訓練データと、目的タスク学習用に設定された第１損失関数に透かし用ベクトルＯ２と透かしラベルＴ２とを用いて定められた第２損失関数を加算した損失関数と、に基づいて、ニューラルネットワークＮの各層Ｌの重みを更新する（Ｓ８）。
【００６８】
＜実施の形態に係る情報処理装置１が奏する効果＞
以上説明したように、実施の形態に係る情報処理装置１によれば、出所を特定することができる学習モデルを提供することができる。特に、実施の形態に係る情報処理装置１は、重みベクトルＷにアダマール行列を乗じて透かしラベルＴ２を埋め込むため、攻撃者による透かしラベルＴ２のスクランブル攻撃に対する耐性を高めることができる。
【００６９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。特に、装置の分散・統合の具体的な実施の形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【符号の説明】
【００７０】
１・・・情報処理装置
１０・・・記憶部
２０・・・制御部
２１・・・訓練データ取得部
２２・・・重み更新部
２３・・・重みベクトル生成部
２４・・・ベクトル変換部
２５・・・行列選択部
２６・・・サイズ調整部
２７・・・透かしラベル生成部
２８・・・変動記録部
【図１】
2019053541.tif 000003
【図２】
2019053541.tif 000004
【図３】
2019053541.tif 000005
【図４】
2019053541.tif 000006
【図５】
2019053541.tif 000007
【図６】
2019053541.tif 000008
【図７】
2019053541.tif 000009
【図８】
2019053541.tif 000010
【図９】
2019053541.tif 000011
【図１０】
2019053541.tif 000012