特許第6657137号(P6657137)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許6657137情報処理装置、情報処理方法、及びプログラム
<>
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000002
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000003
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000004
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000005
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000006
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000007
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000008
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000009
  • 特許6657137-情報処理装置、情報処理方法、及びプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6657137
(24)【登録日】2020年2月7日
(45)【発行日】2020年3月4日
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06N 3/02 20060101AFI20200220BHJP
   G06F 21/16 20130101ALI20200220BHJP
【FI】
   G06N3/02
   G06F21/16
【請求項の数】7
【全頁数】14
(21)【出願番号】特願2017-71874(P2017-71874)
(22)【出願日】2017年3月31日
(65)【公開番号】特開2018-173843(P2018-173843A)
(43)【公開日】2018年11月8日
【審査請求日】2019年3月4日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100124084
【弁理士】
【氏名又は名称】黒岩 久人
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】永井 有希
(72)【発明者】
【氏名】小林 達也
【審査官】 多賀 実
(56)【参考文献】
【文献】 国際公開第2016/043734(WO,A1)
【文献】 Uchida, Yusuke, et al.,“Embedding Watermarks into Deep Neural Networks”,arXiv.org[online],2017年 1月15日,v1,pp.1-10,[令和2年1月10日検索],インターネット<URL:https://arxiv.org/abs/1701.04082v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02−3/10
G06N 20/00
G06F 21/16
(57)【特許請求の範囲】
【請求項1】
目的タスク学習用のデータを含む第1訓練データに基づいて、複数の層を備える第1ニューラルネットワークの各層の重みを更新する第1重み更新部と、
前記第1ニューラルネットワークを構成する層の中から選択した1又はそれ以上の層の重みを、透かし埋め込みタスク用の第2ニューラルネットワークを構成する層の重みとして設定する透かし用重み設定部と、
透かし検出用のデータ及びラベルを含む第2訓練データに対応付けて、前記第2ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定するマスク設定部と、
前記第2訓練データに基づいて、前記第2ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新する第2重み更新部と、
を備える情報処理装置。
【請求項2】
前記第1重み更新部は、前記マスクデータが前記第2ニューラルネットワークの重みの更新を許可する箇所に対応する前記第1ニューラルネットワークの重みの更新を禁止する、
請求項1に記載の情報処理装置。
【請求項3】
前記マスク設定部は、異なる前記第2訓練データに対し、重み更新を禁止する箇所が異なるマスクデータを設定する、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記透かし用重み設定部は、前記第1ニューラルネットワークを構成する1又はそれ以上の層のうち、前記第1ニューラルネットワークの入力層に近い側に存在する層を優先して選択する、
請求項1から3のいずれか一項に記載の情報処理装置。
【請求項5】
前記第1重み更新部は、前記第1ニューラルネットワークの各層の重みに対する前記目的タスク学習用のラベルの誤差を最小化した第1の勾配と、前記第2重み更新部によって生成された前記第2ニューラルネットワークの重みに対する透かし検出用ラベルの誤差を最小化した第2の勾配と、を加算した更新勾配に基づいて前記第1ニューラルネットワークの重みを更新する、
請求項1から4のいずれか一項に記載の情報処理装置。
【請求項6】
プロセッサが、
目的タスク学習用のデータを含む第1訓練データに基づいて、複数の層を備える第1ニューラルネットワークの各層の重みを更新するステップと、
前記第1ニューラルネットワークを構成する層の中から1又はそれ以上の層を選択するステップと、
選択した層を、透かし埋め込みタスク用の第2ニューラルネットワークを構成する層の重みとして設定するステップと、
透かし検出用のデータ及びラベルを含む第2訓練データに対応付けて、前記第2ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定するステップと、
前記第2訓練データに基づいて、前記第2ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新するステップと、
を実行する情報処理方法。
【請求項7】
コンピュータに、
目的タスク学習用のデータを含む第1訓練データに基づいて、複数の層を備える第1ニューラルネットワークの各層の重みを更新する機能と、
前記第1ニューラルネットワークを構成する層の中から1又はそれ以上の層を選択する機能と、
選択した層を、透かし埋め込みタスク用の第2ニューラルネットワークを構成する層の重みとして設定する機能と、
透かし検出用のデータを含む第2訓練データに対応付けて、前記第2ニューラルネットワークにおける重み更新の可否を定めるマスクデータを設定する機能と、
前記第2訓練データに基づいて、前記第2ニューラルネットワークの重みのうち、前記マスクデータが更新を許可する箇所の重みを更新する機能と、
を実現させるプログラム。

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

図1
図2
図3
図4
図5
図6
図7
図8
図9