(57)【要約】【課題】より多くの情報を容易に秘匿し、また、秘匿したデータの漏洩を困難にする。【解決手段】ニューラルネットワークであって、ニューラルネットワークの１または複数のノード間に情報要素を備え、情報要素は、１または複数の第１入力ノードを有する第１入力部と、１または複数の第１出力ノードを有する第１出力部と、第１入力部および第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードとを有し、第１入力部が受け取る第１入力データと、第１入力データに応じて第１出力部が出力する第１出力データとが一致し、重み係数は、ニューラルネットワークの学習とは関連のない伝達情報に基づく値を含む、ニューラルネットワークを提供する。【選択図】図２
2020052813.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークであって、
前記ニューラルネットワークの１または複数のノード間に情報要素を備え、
前記情報要素は、
１または複数の第１入力ノードを有する第１入力部と、
１または複数の第１出力ノードを有する第１出力部と、
前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードと
を有し、
前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、
前記重み係数は、前記ニューラルネットワークの学習とは関連のない伝達情報に基づく値を含む、
ニューラルネットワーク。
【請求項２】
前記重み係数の総数Ｎのうち、
（Ｎ−１）個以下の重み係数は、前記伝達情報に含まれる値であり、
残りの１以上の重み係数は、前記第１入力データおよび前記第１出力データが一致するように前記伝達情報に含まれる値から算出される値である、
請求項１に記載のニューラルネットワーク。
【請求項３】
前記重み係数のうち、前記（Ｎ−１）個以下の重み係数の少なくとも１つの重み係数は、誤り訂正符号を含む、請求項２に記載のニューラルネットワーク。
【請求項４】
少なくとも２つの前記第１隠れノードは、正規化線形関数（Rectified Linear Unit）を活性化関数とした入出力特性を有し、
前記第１入力部から前記第１出力部までデータを伝達する全ての経路のそれぞれは、第１グループおよび第２グループのいずれか一方に属し、
前記第１グループに属する経路は、前記第１入力データの値が０以上の場合に、前記第１隠れノードの出力を０以上の値にさせ、また、前記第１入力データおよび前記第１出力データを一致させる重み係数を有し、
前記第２グループに属する経路は、前記第１入力データの値が０未満の場合に、前記第１隠れノードの出力を０以上の値にさせ、また、前記第１入力データおよび前記第１出力データを一致させる重み係数を有する、
請求項１に記載のニューラルネットワーク。
【請求項５】
前記第１グループの前記重み係数の総数Ｌのうち、
（Ｌ−１）個以下の重み係数は、前記伝達情報に含まれる値であり、
残りの１以上の重み係数は、前記第１入力データおよび前記第１出力データが一致するように前記伝達情報に含まれる値から算出される値であり、
前記第２グループの前記重み係数の総数Ｍのうち、
（Ｍ−１）個以下の重み係数は、前記伝達情報に含まれる値であり、
残りの１以上の重み係数は、前記第１入力データおよび前記第１出力データが一致するように前記伝達情報に含まれる値から算出される値である、
請求項４に記載のニューラルネットワーク。
【請求項６】
前記重み係数のうち、前記（Ｌ−１）個以下の重み係数の少なくとも１つの重み係数、および、前記（Ｍ−１）個以下の重み係数の少なくとも１つの重み係数は、誤り訂正符号を含む、請求項５に記載のニューラルネットワーク。
【請求項７】
コンピュータが実行する請求項１から６のいずれか一項に記載のニューラルネットワークの学習方法であって、前記情報要素内の経路の重み係数は更新せずに、前記情報要素には含まれない重み係数を更新することにより、前記ニューラルネットワークを学習する、学習方法。
【請求項８】
ニューラルネットワークの情報を取得する第１取得部と、
前記ニューラルネットワークの学習とは関連のない伝達情報を取得する第２取得部と、
前記伝達情報に基づき、情報要素を生成する生成部と、
前記ニューラルネットワークの１または複数のノード間に、生成した情報要素を埋め込む埋め込み部と
を備え、
前記情報要素は、
１または複数の第１入力ノードを有する第１入力部と、
１または複数の第１出力ノードを有する第１出力部と、
前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードと
を有し、
前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、
前記重み係数は、前記伝達情報に基づく値を含む、
情報付加装置。
【請求項９】
ニューラルネットワークの情報を取得するステップと、
前記ニューラルネットワークの学習とは関連のない伝達情報を取得するステップと、
前記伝達情報に基づき、情報要素を生成するステップと、
前記ニューラルネットワークの１または複数のノード間に、生成した情報要素を埋め込むステップと
を備え、
前記情報要素は、
１または複数の第１入力ノードを有する第１入力部と、
１または複数の第１出力ノードを有する第１出力部と、
前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードと
を有し、
前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、
前記重み係数は、前記伝達情報に基づく値を含む、
情報付加方法。
【請求項１０】
実行されると、コンピュータを請求項８に記載の情報付加装置として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク、情報付加装置、学習方法、情報付加方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central 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.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的に、データ構造に伝達すべきデータを埋め込む場合、埋め込むデータの量が多くなると、第三者によるデータ解析が容易になってしまうことがある。また、データ解析を困難にすべく、より複雑なデータ構造を用いたくても、適切なデータ構造を探すことは困難であった。また、複雑なデータ構造の中にデータを埋め込んでも、ＣＰＵの進歩等により、時間をかければデータ構造が解明されてしまうリスクが伴う。
【０００５】
一方、機械学習によって生成された学習モデルは、数千万個以上のパラメータを有することもある。即ち、第三者がこのような学習モデルを不正に取得しても、それぞれのパラメータの詳細を解析することは現実的ではない。また、学習モデルは、再学習および微調整等によってパラメータが更新されることがあるので、埋め込んだデータが改変されて解析が物理的に不可能となることもある。したがって、学習済みの学習モデルにデータを埋め込むことができれば、より多くの情報を秘匿し、また、秘匿したデータの漏洩を困難にする技術の実現が期待される。
【０００６】
そこで、本発明はこれらの点に鑑みてなされたものであり、より多くの情報を容易に秘匿し、また、秘匿したデータの漏洩を困難にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様においては、ニューラルネットワークであって、前記ニューラルネットワークの１または複数のノード間に情報要素を備え、前記情報要素は、１または複数の第１入力ノードを有する第１入力部と、１または複数の第１出力ノードを有する第１出力部と、前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードとを有し、前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、前記重み係数は、前記ニューラルネットワークの学習とは関連のない伝達情報に基づく値を含む、ニューラルネットワークを提供する。
【０００８】
前記重み係数の総数Ｎのうち、（Ｎ−１）個以下の重み係数は、前記伝達情報に含まれる値であり、残りの１以上の重み係数は、前記第１入力データおよび前記第１出力データが一致するように前記伝達情報に含まれる値から算出される値でよい。前記重み係数のうち、前記（Ｎ−１）個以下の重み係数の少なくとも１つの重み係数は、誤り訂正符号を含んでよい。
【０００９】
少なくとも２つの前記第１隠れノードは、正規化線形関数（Rectified Linear Unit）を活性化関数とした入出力特性を有し、前記第１入力部から前記第１出力部までデータを伝達する全ての経路のそれぞれは、第１グループおよび第２グループのいずれか一方に属し、前記第１グループに属する経路は、前記第１入力データの値が０以上の場合に、前記第１隠れノードの出力を０以上の値にさせ、また、前記第１入力データおよび前記第１出力データを一致させる重み係数を有し、前記第２グループに属する経路は、前記第１入力データの値が０未満の場合に、前記第１隠れノードの出力を０以上の値にさせ、また、前記第１入力データおよび前記第１出力データを一致させる重み係数を有してよい。
【００１０】
前記第１グループの前記重み係数の総数Ｌのうち、（Ｌ−１）個以下の重み係数は、前記伝達情報に含まれる値であり、残りの１以上の重み係数は、前記第１入力データおよび前記第１出力データが一致するように前記伝達情報に含まれる値から算出される値であり、前記第２グループの前記重み係数の総数Ｍのうち、（Ｍ−１）個以下の重み係数は、前記伝達情報に含まれる値であり、残りの１以上の重み係数は、前記第１入力データおよび前記第１出力データが一致するように前記伝達情報に含まれる値から算出される値でよい。前記重み係数のうち、前記（Ｌ−１）個以下の重み係数の少なくとも１つの重み係数、および、前記（Ｍ−１）個以下の重み係数の少なくとも１つの重み係数は、誤り訂正符号を含んでよい。
【００１１】
本発明の第２の態様においては、コンピュータが実行する第１の態様のニューラルネットワークの学習方法であって、前記情報要素内の経路の重み係数は更新せずに、前記情報要素には含まれない重み係数を更新することにより、前記ニューラルネットワークを学習する、学習方法を提供する。
【００１２】
本発明の第３の態様においては、ニューラルネットワークの情報を取得する第１取得部と、前記ニューラルネットワークの学習とは関連のない伝達情報を取得する第２取得部と、前記伝達情報に基づき、情報要素を生成する生成部と、前記ニューラルネットワークの１または複数のノード間に、生成した情報要素を埋め込む埋め込み部とを備え、前記情報要素は、１または複数の第１入力ノードを有する第１入力部と、１または複数の第１出力ノードを有する第１出力部と、前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードとを有し、前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、前記重み係数は、前記伝達情報に基づく値を含む、情報付加装置を提供する。
【００１３】
本発明の第４の態様においては、ニューラルネットワークの情報を取得するステップと、前記ニューラルネットワークの学習とは関連のない伝達情報を取得するステップと、前記伝達情報に基づき、情報要素を生成するステップと、前記ニューラルネットワークの１または複数のノード間に、生成した情報要素を埋め込むステップとを備え、前記情報要素は、１または複数の第１入力ノードを有する第１入力部と、１または複数の第１出力ノードを有する第１出力部と、前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードとを有し、前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、前記重み係数は、前記伝達情報に基づく値を含む、情報付加方法を提供する。
【００１４】
本発明の第５の態様においては、実行されると、コンピュータを第３の態様の情報付加装置として機能させる、プログラムを提供する。
【発明の効果】
【００１５】
本発明によれば、より多くの情報を容易に秘匿し、また、秘匿したデータの漏洩を困難にするという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るニューラルネットワーク１０の構成例を示す。
【図２】本実施形態に係る情報要素１００の第１構成例を示す。
【図３】本実施形態に係る情報要素１００の第２構成例を示す。
【図４】本実施形態に係る情報要素１００の第３構成例を示す。
【図５】本実施形態に係る情報要素１００の第４構成例を示す。
【図６】本実施形態に係る情報付加装置３００の構成例を示す。
【図７】本実施形態に係る情報付加装置３００の動作フローの一例を示す。
【発明を実施するための形態】
【００１７】
＜ニューラルネットワーク１０の構成例＞
図１は、本実施形態に係るニューラルネットワーク１０の構成例を示す。ニューラルネットワーク１０は、入力したデータをノード間に伝播させ、入力データに応じたデータを出力する。ニューラルネットワーク１０は、ノード間の接続、重み係数、パラメータ、および活性化関数等の設定および学習等により、画像認識、文字認識、および音声認識等に利用される。ニューラルネットワーク１０は、入力層２０と、複数のノード３０と、出力層４０とを備える。
【００１８】
入力層２０は、当該ニューラルネットワーク１０への入力データを受け取る。入力データは、１つのまたは複数のデータ値を含む。入力層２０は、１つのまたは複数の入力ノード２２を有する。入力ノード２２は、入力データに含まれるデータ値が入力される。また、入力ノード２２は、入力されたデータ値を当該入力ノード２２に接続された１つのまたは複数のノード３０に供給する。
【００１９】
ノード３０は、入力層２０および出力層４０の間に複数設けられる。複数のノード３０は、隠れ層または中間層として機能する。ノード３０は、入力ノード２２、他のノード３０、自身のノード３０、および出力層４０等と接続され、入力側の接続から出力側の接続へと予め定められた方向にデータ値を伝播させる。
【００２０】
ノード３０は、例えば、入力側に接続されたノード間に重み係数ｗが設定され、当該ノード３０に向けて伝播されるデータ値ｕに当該重み係数を乗じた値ｗ・ｕが入力される。ノード３０は、入力側にｎ個の複数のノードが接続された場合、ｎ個の接続によって当該ノード３０に伝播されるｎ個のデータ値ｕｎに、接続ごとに設定された重み係数ｗｎをそれぞれ乗じたｎ個の値ｗｎ・ｕｎが入力される。
【００２１】
ノード３０は、例えば、入力されるデータ値ｗｎ・ｕｎの総和Σｗｎ・ｕｎを出力側の接続へと伝播させる。ノード３０は、総和Σｗｎ・ｕｎにバイアスパラメータｂを加えた値Σｗｎ・ｕｎ＋ｂを伝播させてもよい。また、ノード３０は、値Σｗｎ・ｕｎまたは値Σｗｎ・ｕｎ＋ｂを予め定められた関数ｆ（）に入力して算出された値を伝播させてもよい。
【００２２】
出力層４０は、入力データに応じた出力データを出力する。出力層４０は、１つのまたは複数の出力ノード４２を有する。出力層４０は、当該出力層４０に含まれる出力ノード４２から出力されるデータ値を、出力データとして出力する。出力ノード４２は、当該出力ノード４２に接続された１つのまたは複数のノード３０から受け取るデータ値に基づく値を出力する。出力ノード４２は、例えば、ノード３０と同様に、ノード間の重み係数、バイアスパラメータ、および関数等を用いて算出された値を出力する。
【００２３】
以上のニューラルネットワーク１０は、画像認識、文字認識、および音声認識等といった目的に応じて、入力ノード２２、ノード３０、および出力ノード４２の数、接続、重み係数等のパラメータが設定される。そして、ニューラルネットワーク１０は、教師あり学習、教師なし学習、および強化学習等の学習データに基づく機械学習により、重み係数等のパラメータが更新され、高い精度の識別機能および分類機能を有する学習モデルとして用いることができる。
【００２４】
このようなニューラルネットワーク１０は、複雑で高度な機能を有するので、内部のパラメータは数千万個を超えることがある。したがって、パラメータのそれぞれを解析するには膨大な時間がかかり、学習動作とは無関係なデータが埋め込まれても、第三者が判別することは困難である。即ち、ニューラルネットワーク１０は、データを秘匿するには適度に複雑なデータ構造を有するといえる。そこで、本実施形態に係るニューラルネットワーク１０は、第三者に秘匿する情報を含めた情報要素をノード間に設け、学習モデルとは無関係なデータを容易に埋め込み可能とする。
【００２５】
図１は、ニューラルネットワーク１０が情報要素１００をノード間に備える例を示す。図１は、情報要素１００が単一のノード３０の置き換えとして設けられた例を示す。このような情報要素１００について次に説明する。
【００２６】
＜情報要素１００の構成例＞
図２は、本実施形態に係る情報要素１００の第１構成例を示す。情報要素１００は、第１入力部１１０と、複数の第１隠れノード１２０と、第１出力部１３０とを有する。
【００２７】
第１入力部１１０は、ニューラルネットワーク１０の１つのまたは複数のノード３０から伝播される値が入力される。ここで、第１入力部１１０に入力される１つのまたは複数の値ｘｉを、第１入力データとする。第１入力部１１０は、１つのまたは複数の第１入力ノード１１２を有する。第１入力ノード１１２のそれぞれは、複数の第１隠れノード１２０に接続され、接続された複数の第１隠れノード１２０へと第１入力データｘｉを伝播させる。図２は、第１入力部１１０が１つの第１入力ノード１１２を有する例を示す。
【００２８】
複数の第１隠れノード１２０は、第１入力部１１０および第１出力部１３０の間に設けられる。第１隠れノード１２０は、例えば、入力側が第１入力ノード１１２と接続され、出力側が第１出力部１３０と接続される。また、第１隠れノード１２０の入力側および出力側は、他の第１隠れノード１２０に接続されてもよい。第１隠れノード１２０は、ニューラルネットワーク１０のノード３０と同様に、入力側の接続から出力側の接続へと予め定められた方向にデータ値を伝播させる。
【００２９】
第１隠れノード１２０は、例えば、入力側に接続されたノード間に重み係数ｗが設定され、当該第１隠れノード１２０に向けて伝播されるデータ値ｘｉに当該重み係数を乗じた値ｗ・ｘｉが入力される。第１隠れノード１２０は、入力側にｎ個の複数のノードが接続された場合、ｎ個の接続によって当該第１隠れノード１２０に伝播されるｎ個のデータ値ｘｉｎに、接続ごとに設定された重み係数ｗｎをそれぞれ乗じたｎ個の値ｗｎ・ｘｉｎが入力される。また、第１隠れノード１２０は、一例として、値ｗｎ・ｘｉｎの総和Σｗｎ・ｘｉｎを出力側に接続されたノードに伝播させる。
【００３０】
図２は、情報要素１００が２つの第１隠れノード１２０を有し、２つの第１隠れノード１２０の入力側が１つの第１入力ノード１１２にそれぞれ接続される例を示す。また、図２は、２つの第１隠れノード１２０のうち一方の第１隠れノード１２０と、第１入力ノード１１２との間の重み係数をｗ１とし、他方の第１隠れノード１２０と、第１入力ノード１１２との間の重み係数をｗ３とした例を示す。
【００３１】
また、２つの第１隠れノード１２０の出力側は、第１出力部１３０に接続される。図２は、一方の第１隠れノード１２０が値ｗ１・ｘｉを第１出力部１３０に伝播し、他方の第１隠れノード１２０が値ｗ３・ｘｉを第１出力部１３０に伝播する例を示す。
【００３２】
第１出力部１３０は、情報要素１００の内部から外部の１つのまたは複数のノード３０へと値を伝播する。ここで、第１出力部１３０が出力する１つのまたは複数の値ｙｉを、第１出力データとする。第１出力部１３０は、１つのまたは複数の第１出力ノード１３２を有する。第１出力ノード１３２は、複数の第１隠れノード１２０に接続され、接続された複数の第１隠れノード１２０から伝播される値に基づく第１出力データを出力する。第１出力ノード１３２は、例えば、第１隠れノード１２０と同様に、ノード間の重み係数を用いて算出された値を出力する。このように、第１隠れノード１２０は、出力側に接続されたノード間にも重み係数ｗが設定される。
【００３３】
図２は、第１出力部１３０が１つの第１出力ノード１３２を有し、当該１つの第１出力ノード１３２が２つの第１隠れノード１２０の出力側とそれぞれ接続する例を示す。また、図２は、２つの第１隠れノード１２０のうち一方の第１隠れノード１２０と、第１出力ノード１３２との間の重み係数をｗ２とし、他方の第１隠れノード１２０と、第１出力ノード１３２との間の重み係数をｗ４とした例を示す。そして、第１出力ノード１３２は、値ｗ１・ｗ２・ｘｉ＋ｗ３・ｗ４・ｘｉを第１出力データｙｉとして出力する。
【００３４】
以上の情報要素１００においては、第１入力部１１０が受け取る第１入力データｘｉと、第１入力データに応じて第１出力部１３０が出力する第１出力データｙｉとが一致する。このような入力値と入力値に応じた出力値とが一致する性質を有する対応関係を、恒等写像と呼ぶ。情報要素１００は、恒等写像の性質を有するように、重み係数が予め定められる。図２の例の場合、ｗ１・ｗ２・ｘｉ＋ｗ３・ｗ４・ｘｉ＝ｘｉより、次式を得る。
（数１）
ｗ１・ｗ２＋ｗ３・ｗ４＝１
【００３５】
ここで、一例として、ｗ３≠０とすると、次式が成立する。
（数２）
ｗ４＝（１−ｗ１・ｗ２）／ｗ３
【００３６】
（数２）式より、ｗ１，ｗ２，およびｗ３は、ｗ４の表現可能な数値の精度範囲において、自由な値を設定できることがわかる。即ち、複数の重み係数は、ニューラルネットワーク１０の学習とは関連のない伝達情報に基づく値を含ませることができる。なお、（数２）式は、ｗ４をｗ１，ｗ２，およびｗ３を用いて表現した例であり、これに限定されることはない。ｗ１，ｗ２，およびｗ３のいずれか１つの重み係数は、他の３つの重み係数で（数２）式のように表現できる。即ち、４個の重み係数のうちのいずれか３個の重み係数は、残りの１個の重み係数の表現可能な数値の精度範囲において、自由な値を設定できる。
【００３７】
したがって、４個の重み係数のうち３個の重み係数の値を、伝達すべき情報の値にして、残りの１個の重み係数の値を、（数１）式が成立するように、他の３個の重み係数の値から算出される値にできる。このように、情報要素１００は、恒等写像の性質を有しつつ、伝達すべき情報の値を重み係数として直接埋め込むことができる。
【００３８】
以上の情報要素１００は、入力データおよび出力データが一致するので、図１に示すようなニューラルネットワーク１０のノード３０として埋め込まれても、当該ニューラルネットワーク１０の入出力応答にほとんど影響を与えない。したがって、ニューラルネットワーク１０は、入力データに対して学習済みの動作を施して、対応する出力データを出力できる。ニューラルネットワーク１０は、学習動作とは関連のない伝達情報を埋め込んだまま学習済みの動作を実行できるので、伝達情報が含まれていることを第三者が把握することを困難にさせる。
【００３９】
また、仮に、ニューラルネットワーク１０を不正に取得した第三者が、当該ニューラルネットワーク１０に伝達情報が含まれていることを知得しても、膨大なパラメータを解析することは困難であり、現実的ではない。また、ニューラルネットワーク１０は、再学習および微調整により、重み係数を更新して使用することが一般的なので、第三者が不正に入手した時点で、伝達情報が改変されて物理的に解析不能になっていることもある。また、第三者自身が学習モデルを使用して、伝達情報を改変することもある。
【００４０】
一方、ニューラルネットワーク１０を正当に取得したユーザは、このようなニューラルネットワーク１０の具体的な設計および構成等を知り得るので、不用意に情報要素１００に含まれる重み係数を微調整することはない。例えば、ユーザは、情報要素１００内の経路の重み係数は更新せずに、情報要素１００には含まれない重み係数を更新することにより、当該ニューラルネットワーク１０を学習すればよい。また、ユーザは、学習前のニューラルネットワーク１０に情報要素１００を埋め込んだ後、情報要素１００内の経路の重み係数は変更せずに、当該ニューラルネットワーク１０を学習してもよい。したがって、本実施形態に係る情報要素１００は、正当なユーザによるニューラルネットワーク１０の微調整を実行可能とする一方で、第三者への情報漏洩を困難にさせることができる。
【００４１】
なお、図２に示す情報要素１００は、第１隠れノード１２０を２つ有する例であり、これに限定されることはない。情報要素１００は、より多くの伝達情報を埋め込む目的で、第１隠れノード１２０をより多く有することが望ましい。そこで、第１構成例の情報要素１００よりも第１隠れノード１２０を増加させた例を次に示す。
【００４２】
＜情報要素１００の第１変形例＞
図３は、本実施形態に係る情報要素１００の第２構成例を示す。図３に示す第２構成例の情報要素１００において、図２に示された情報要素１００の動作と略同一のものには同一の符号を付け、説明を省略する。第２構成例の情報要素１００は、３つの第１隠れノード１２０を有する例を示す。
【００４３】
図３は、３つ目の第１隠れノード１２０の第１入力ノード１１２との間の重み係数をｗ５とし、第１出力ノード１３２との間の重み係数をｗ６とした例を示す。このような情報要素１００は、恒等写像の性質を有するように、ｗ１・ｗ２・ｘｉ＋ｗ３・ｗ４・ｘｉ＋ｗ５・ｗ６・ｘｉ＝ｘｉより、次式を得る。
（数３）
ｗ１・ｗ２＋ｗ３・ｗ４＋ｗ５・ｗ６＝１
【００４４】
ここで、一例として、ｗ５≠０とすると、次式が成立する。
（数４）
ｗ６＝（１−ｗ１・ｗ２−ｗ３・ｗ４）／ｗ５
【００４５】
（数４）式より、ｗ１からｗ５までの重み係数は、自由な値を設定できる。このように、情報要素１００は、第１隠れノード１２０の数を増加させて、より多くの情報を埋め込むことができる。この場合、情報要素１００は、重み係数の総数Ｎのうち、（Ｎ−１）個以下の重み係数を、伝達情報に含まれる値とすることができる。なお、残りの１以上の重み係数は、第１入力データおよび第１出力データが一致するように伝達情報に含まれる値から算出される値となる。
【００４６】
以上のように、情報要素１００は、第１隠れノード１２０の数を増加させても、単純な式で解析的に重み係数を定めることができる。したがって、情報要素１００は、より多くの情報を容易に埋め込むことができる。これに代えて、または、これに加えて、ニューラルネットワーク１０の複数のノード間に情報要素１００を設けることで、埋め込む情報量を更に増加させてもよい。また、同一の情報要素１００を複数埋め込んで、正確な情報を伝達させる確率を高めてもよい。
【００４７】
情報要素１００をニューラルネットワーク１０に複数埋め込むことにより、ネットワークの構成は複雑になり、第三者による解析は困難となる。また、ニューラルネットワーク１０の学習動作を実行する場合に、情報要素１００の重み係数を調節する可能性を高めるので、第三者への情報漏洩は、より困難になる。したがって、情報要素１００は、ニューラルネットワーク１０の計算処理に影響を与えない程度の範囲で、より多くの数が埋め込まれることが望ましい。
【００４８】
なお、ニューラルネットワーク１０を微調整する場合、出力層４０に近い位置の重み係数を調整することが多い。したがって、ニューラルネットワーク１０は、出力層４０に近い位置により多くの情報要素１００が配置されてよい。例えば、ニューラルネットワーク１０に含まれる複数のノード３０を、入力層２０に近い第１ノード群と、出力層４０に近い第２ノード群の２つに分割した場合に、第１ノード群に設けられた情報要素１００の数よりも、第２ノード群に設けられた情報要素１００の数の方を多くする。
【００４９】
この場合、更に、ニューラルネットワーク１０の入力層２０から出力層４０に向けて、情報要素１００の密度が増加するように、情報要素１００が配置されてよい。これにより、第三者がニューラルネットワーク１０を微調整する場合に、情報要素１００に含まれる重み係数を微調整する確率を高めることができる。
【００５０】
なお、図３に示す情報要素１００は、複数の第１隠れノード１２０が第１入力部１１０および第１出力部１３０にそれぞれ接続される例を示す。即ち、複数の第１隠れノード１２０が一層の隠れ層を構成する例を示すが、これに限定されることはなく、複数の第１隠れノード１２０が複数の隠れ層を構成してもよい。この場合、異なる第１隠れノード１２０同士が接続されてよい。
【００５１】
以上の本実施形態に係るニューラルネットワーク１０は、伝達情報の値を埋め込んだ情報要素１００を、１つまたは複数のノード間に設ける例を説明したが、これに限定されることはない。情報要素１００は、伝達情報の値に基づく値が埋め込まれてもよい。情報要素１００は、例えば、伝達情報の値を更に暗号化した値が埋め込まれてもよい。また、情報要素１００は、重み係数のうち、（Ｎ−１）個以下の重み係数の少なくとも１つの重み係数が、誤り訂正符号を含んでもよい。
【００５２】
以上の本実施形態に係る情報要素１００は、第１隠れノード１２０が、入力値ｗｎ・ｘｉｎの総和Σｗｎ・ｘｉｎを出力側に接続されたノードに伝播させる例を説明したが、これに限定されることはない。第１隠れノード１２０は、総和Σｗｎ・ｘｉｎを活性化関数に入力した結果を、出力側のノードに伝播させてもよい。このような情報要素１００の例を次に説明する。
【００５３】
＜情報要素１００の第２変形例＞
図４は、本実施形態に係る情報要素１００の第３構成例を示す。図４に示す第３構成例の情報要素１００において、図２に示された情報要素１００の動作と略同一のものには同一の符号を付け、説明を省略する。
【００５４】
第３構成例の複数の第１隠れノード１２０は、正規化線形関数（ReLU：Rectified Linear Unit）を活性化関数とした入出力特性を有する例を説明する。ここで、正規化線形関数φ（ｘ）は、次式で示される。即ち、φ（ｘ）は、ｘの値が０未満の場合に値が０となり、ｘの値が０以上の場合に値がｘと同じになる関数である。
（数５）
φ（ｘ）＝ｍａｘ（０，ｘ）
【００５５】
このように、活性化関数が０を境界として特性が変化するので、情報要素１００のデータを伝達する経路および重み係数も、対応して、０を境界として動作する２つのグループが設けられている。例えば、情報要素１００の第１入力部１１０から第１出力部１３０までデータを伝達する全ての経路のそれぞれは、第１グループおよび第２グループのいずれか一方に属する。ここで、入出力特性に活性化関数を有する第１隠れノード１２０は、２つにグループのそれぞれに属するので、少なくとも２つの第１隠れノード１２０を情報要素１００が有することになる。
【００５６】
この場合、第１グループに属する経路は、第１入力データの値が０以上の場合に、第１隠れノード１２０の出力を０以上の値にさせ、また、第１入力データおよび第１出力データを一致させる重み係数を有する。図４は、第１経路２１０が第１グループに属する例を示す。第１隠れノード１２０は、（数５）式より、入力する値が０以上の場合に、０以上の値を出力し、入力する値が０未満の場合に、０を出力する。ここで、第１経路２１０の第１隠れノード１２０に入力する値は、ｗ１・ｘｉである。したがって、第１入力データの値ｘｉが０以上の場合、第１隠れノード１２０の出力を０以上の値にする重み係数ｗ１の条件は、ｗ１・ｘｉ≧０より、ｗ１≧０である。
【００５７】
そして、第１入力データの値ｘｉが０以上の場合に、第１経路２１０が恒等写像の特性を有するには、ｗ１・ｗ２・ｘｉ＝ｘｉとなり、ｗ１・ｗ２＝１となる。したがって、ｗ１およびｗ２のいずれか一方は、ｗ１≧０の条件において自由な値を設定できることがわかる。即ち、第１グループの重み係数の総数Ｌのうち、（Ｌ−１）個以下の重み係数は、伝達情報に含まれる値であり、残りの１以上の重み係数は、第１入力データおよび第１出力データが一致するように伝達情報に含まれる値から算出される値である。
【００５８】
同様に、第２グループに属する経路は、第１入力データの値が０未満の場合に、第１隠れノード１２０の出力を０以上の値にさせ、第１入力データおよび前記第１出力データを一致させる重み係数を有する。図４は、第２経路２２０が第２グループに属する例を示す。第２経路２２０の第１隠れノード１２０に入力する値は、ｗ３・ｘｉである。したがって、第１入力データの値ｘｉが０未満の場合、第１隠れノード１２０の出力を０以上の値にする重み係数ｗ３の条件は、ｗ３・ｘｉ≧０より、ｗ３＜０である。
【００５９】
そして、第１入力データの値ｘｉが０未満の場合に、第２経路２２０が恒等写像の特性を有するには、ｗ３・ｗ４・ｘｉ＝ｘｉとなり、ｗ３・ｗ４＝１となる。したがって、ｗ３およびｗ４のいずれか一方は、ｗ３＜０の条件において自由な値を設定できることがわかる。即ち、第２グループの重み係数の総数Ｍのうち、（Ｍ−１）個以下の重み係数は、伝達情報に含まれる値であり、残りの１以上の重み係数は、第１入力データおよび第１出力データが一致するように伝達情報に含まれる値から算出される値である。
【００６０】
一例として、図４の４つの重み係数をｗ１＝３，ｗ２＝１／３，ｗ３＝−２，ｗ４＝−１／２とすることにより、情報要素１００は、恒等写像の性質を有しつつ、伝達情報の値を重み係数として直接埋め込むことができる。この場合、伝達情報の値は、３または１／３と、−２または１／２である。
【００６１】
以上の第１隠れノード１２０は、（数５）式で示す正規化線形関数φ（ｘ）を用いた例を説明したが、これに限定されることはない。第１隠れノード１２０は、例えば、正規化線形関数φ’（ｘ）＝ｍｉｎ（０，ｘ）を用いてもよい。即ち、φ’（ｘ）は、ｘの値が０以上の場合に値が０となり、ｘの値が０未満の場合に値がｘと同じになる関数である。
【００６２】
この場合においても、データを伝達する経路を２つのグループに分けて、重み係数を定めることができる。例えば、第１経路２１０の第１隠れノード１２０が正規化線形関数φ（ｘ）を用い、第２経路２２０の第１隠れノード１２０が正規化線形関数φ’（ｘ）を用いる場合、第１経路２１０を第１グループに、第２経路２２０を第２グループにする。一例として、図４の４つの重み係数をｗ１＝２，ｗ２＝１／２，ｗ３＝３，ｗ４＝１／３とすることにより、恒等写像の性質を有しつつ、伝達情報の値を重み係数として直接埋め込んだ当該情報要素１００を実現できる。
【００６３】
以上の活性化関数を用いた情報要素１００において、第１グループに属する経路および第２グループに属する経路には、第１隠れノード１２０がそれぞれ１つ含まれる構成を例として説明したが、これに限定されることはない。第１グループおよび第２グループは、それぞれ複数の第１隠れノード１２０を含んでよい。
【００６４】
この場合においても、第１グループに属する経路は、第１入力データの値が０以上の場合に、第１隠れノード１２０の出力を０以上の値にさせ、また、第１入力データおよび第１出力データを一致させる重み係数を有する。また、第２グループに属する経路は、第１入力データの値が０未満の場合に、第１隠れノード１２０の出力を０以上の値にさせ、第１入力データおよび前記第１出力データを一致させる重み係数を有する。
【００６５】
このような情報要素１００の一例を図５に示す。図５は、第１グループに２つの第１隠れノード１２０が含まれる例を示す。この場合、第１経路２１０の２つの第１隠れノード１２０に入力する値は、それぞれｗ１１・ｘｉ，ｗ１２・ｘｉである。したがって、第１入力データの値ｘｉが０以上の場合、２つの第１隠れノード１２０の出力を０以上の値にする重み係数ｗ１１，ｗ１２の条件は、ｗ１１≧０，ｗ１２≧０である。
【００６６】
そして、第１入力データの値ｘｉが０以上の場合に、第１経路２１０が恒等写像の特性を有するには、ｗ１１・ｗ２１・ｘｉ＋ｗ１２・ｗ２２・ｘｉ＝ｘｉとなり、ｗ１１・ｗ２１＋ｗ１２・ｗ２２＝１となる。したがって、４つの重み係数ｗ１１，ｗ２１，ｗ１２，およびｗ２２のうちいずれか３つの重み係数は、ｗ１１≧０，ｗ１２≧０の条件において自由な値を設定できることがわかる。即ち、図５の第１経路２１０は、Ｌ＝４とした場合の例であり、（Ｌ−１）＝３個以下の重み係数は、伝達情報に含まれる値であり、残りの１以上の重み係数は、第１入力データおよび第１出力データが一致するように伝達情報に含まれる値から算出される値である。
【００６７】
以上の活性化関数を用いた情報要素１００においても、伝達情報の値に基づく値が埋め込まれてもよい。例えば、重み係数のうち、（Ｌ−１）個以下の重み係数の少なくとも１つの重み係数、および、（Ｍ−１）個以下の重み係数の少なくとも１つの重み係数は、誤り訂正符号を含んでよい。
【００６８】
以上のように、本実施形態に係る情報要素１００は、活性化関数を用いた第１隠れノード１２０を用いることができる。これにより、情報要素１００に含まれる第１隠れノード１２０は、ニューラルネットワーク１０のノード３０の動作とより近い動作とすることができる。したがって、第三者が、ニューラルネットワーク１０を解析しても、情報要素１００の発見をより困難にさせることができる。
【００６９】
以上の本実施形態に係るニューラルネットワーク１０は、情報要素１００が埋め込まれることにより、より多くの情報を秘匿し、また、秘匿したデータの漏洩を困難にすることができる。このようなニューラルネットワーク１０を生成する装置について次に説明する。
【００７０】
＜情報付加装置３００の構成例＞
図６は、本実施形態に係る情報付加装置３００の構成例を示す。情報付加装置３００は、学習済みまたは学習前のニューラルネットワーク１０に情報要素１００を埋め込む。情報付加装置３００は、第１取得部３１０と、第２取得部３２０と、記憶部３３０と、生成部３４０と、埋め込み部３５０と、出力部３６０とを備える。
【００７１】
第１取得部３１０は、ニューラルネットワーク１０の情報を取得する。第１取得部３１０は、例えば、外部のデータベース５０等から学習済みのニューラルネットワーク１０の情報を取得する。第１取得部３１０は、例えば、ネットワーク６０を介して、データベース５０等にアクセスする。また、第１取得部３１０は、情報付加装置３００の内部でニューラルネットワーク１０を学習した場合、学習済みのニューラルネットワーク１０の情報を記憶部３３０等から取得してもよい。
【００７２】
第２取得部３２０は、ニューラルネットワーク１０の学習とは関連のない伝達情報を取得する。第２取得部３２０は、例えば、外部のデータベース５０等から伝達情報を取得する。また、第２取得部３２０は、入力デバイス等を介して、ユーザから入力される伝達情報を取得してもよい。伝達情報は、ユーザが伝達したい情報であり、例えば、予め定められたビット数の複数のデータ値を含む。伝達情報は、正負の符号、誤り訂正符号等を含んでもよい。
【００７３】
記憶部３３０は、第１取得部３１０が取得したニューラルネットワーク１０の情報を記憶する。また、記憶部３３０は、第２取得部３２０が取得した伝達情報を記憶する。また、記憶部３３０は、情報付加装置３００の設定値等を記憶してよい。また、記憶部３３０は、情報付加装置３００が動作の過程で生成する（または利用する）中間データ、算出結果、閾値、およびパラメータ等をそれぞれ記憶してもよい。また、記憶部３３０は、情報付加装置３００内の各部の要求に応じて、記憶したデータを要求元に供給してもよい。
【００７４】
生成部３４０は、伝達情報に基づき、情報要素１００を生成する。生成部３４０は、図２から図４で説明した情報要素１００を生成する。生成部３４０は、例えば、伝達情報のデータ値の数に応じて、第２構成例または第３構成例の情報要素１００を生成する。また、生成部３４０は、複数の情報要素１００を生成してもよい。生成部３４０は、１つまたは複数の情報要素１００に含まれる重み係数に、全ての伝達情報のデータ値が埋め込まれるように情報要素１００を生成する。
【００７５】
埋め込み部３５０は、生成部３４０が生成した情報要素１００を、ニューラルネットワーク１０のノード間に埋め込む。出力部３６０は、埋め込み部３５０が情報要素１００を埋め込んだニューラルネットワーク１０を出力する。出力部３６０は、例えば、外部のデータベース５０等にニューラルネットワーク１０を出力する。
【００７６】
＜情報付加装置３００の動作フロー＞
以上の本実施形態に係る情報付加装置３００の動作について次に説明する。図７は、本実施形態に係る情報付加装置３００の動作フローの一例を示す。情報付加装置３００は、図７のＳ４１０からＳ４５０の動作を実行することにより、情報要素１００を生成して学習済みまたは学習前のニューラルネットワーク１０に埋め込む。
【００７７】
まず、Ｓ４１０において、第１取得部３１０は、ニューラルネットワーク１０の情報を取得する。第１取得部３１０は、例えば、学習モデルのノードの接続およびパラメータ等の情報を取得する。第１取得部３１０は、一例として、学習済みのニューラルネットワーク１０の情報を取得する。記憶部３３０は、第１取得部３１０が取得したニューラルネットワーク１０の情報を記憶する。
【００７８】
次に、Ｓ４２０において、第２取得部３２０は、伝達情報を取得する。第２取得部３２０は、例えば、Ｋ個のデータ値を含む伝達情報を取得する。記憶部３３０は、第２取得部３２０が取得した伝達情報を記憶する。なお、情報付加装置３００は、Ｓ４１０およびＳ４２０の動作を、逆の順番に実行してもよい。
【００７９】
次に、Ｓ４３０において、生成部３４０は、情報要素１００を生成する。生成部３４０は、一例として、Ｋ／２個よりも多い数の第１隠れノード１２０を有する第２構成例の情報要素１００を生成する。これに代えて、生成部３４０は、Ｋ個よりも多い数の第１隠れノード１２０を有する第３構成例の情報要素１００を生成する。
【００８０】
ここで、生成部３４０が、Ｊ個の情報要素１００を生成する例を説明する。生成部３４０は、例えば、全ての情報要素１００に含まれる重み係数の数Ｈが、データ値の数ＫをＪ個以上超えるように（Ｈ≧Ｋ＋Ｊ）、情報要素１００を生成する。この場合、生成部３４０は、１つの情報要素１００に含まれる重み係数の数ｈが、１つの情報要素１００に含めるデータ値の数ｋを超えるように（ｈ＞ｋ）、情報要素１００を生成する。生成部３４０は、ｈ個の重み係数のうち、ｋ個の重み係数の値を、それぞれｋ個のデータ値の値とする。そして、生成部３４０は、情報要素１００が恒等写像の性質を有するように、残りのｈ−ｋ個の重み係数の値を算出する。
【００８１】
次に、Ｓ４４０において、埋め込み部３５０は、ニューラルネットワーク１０のノード間に、生成した情報要素１００を埋め込む。生成部３４０が１つの情報要素１００を生成した場合、埋め込み部３５０は、図１に示すように、ニューラルネットワーク１０の１つのノード間に当該１つの情報要素１００を埋め込む。また、生成部３４０が複数の情報要素１００を生成した場合、埋め込み部３５０は、ニューラルネットワーク１０の複数のノード間に当該複数の情報要素１００を埋め込む。
【００８２】
埋め込み部３５０は、例えば、予め定められた複数のノード間に、予め定められた順番で複数の情報要素１００を埋め込む。なお、ニューラルネットワーク１０の出力層４０により近いノード間を、情報要素１００を埋め込むノード間として予め定めることが望ましい。また、ニューラルネットワーク１０の出力層４０により近いノード間を、より早い順番に予め定めることが望ましい。
【００８３】
次に、Ｓ４５０において、出力部３６０は、情報要素１００を埋め込んだニューラルネットワーク１０を外部に出力する。出力部３６０は、ネットワーク６０を介してニューラルネットワーク１０を出力する。
【００８４】
以上のように、情報付加装置３００は、学習済みまたは学習前の学習モデルに伝達情報を容易に埋め込むことができる。このような情報付加装置３００の少なくとも一部は、例えば、コンピュータ等で構成される。この場合、記憶部３３０は、一例として、当該情報付加装置３００を実現するコンピュータ等のＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）、および作業領域となるＲＡＭ（Random Access Memory）を含む。また、記憶部３３０は、ＯＳ（Operating System）、アプリケーションプログラム、および／または当該アプリケーションプログラムの実行時に参照されるデータベースを含む種々の情報を格納してよい。即ち、記憶部３３０は、ＨＤＤ（Hard Disk Drive）および／またはＳＳＤ（Solid State Drive）等の大容量記憶装置を含んでよい。
【００８５】
また、情報付加装置３００は、例えば、制御部を含む。制御部は、ＣＰＵ等のプロセッサであり、記憶部３３０に記憶されたプログラムを実行することによって、第１取得部３１０、第２取得部３２０、生成部３４０、埋め込み部３５０、および出力部３６０として機能する。制御部は、ＧＰＵ（Graphics Processing Unit）等を含んでもよい。
【００８６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【符号の説明】
【００８７】
１０  ニューラルネットワーク
２０  入力層
２２  入力ノード
３０  ノード
４０  出力層
４２  出力ノード
５０  データベース
６０  ネットワーク
１００  情報要素
１１０  第１入力部
１１２  第１入力ノード
１２０  第１隠れノード
１３０  第１出力部
１３２  第１出力ノード
２１０  第１経路
２２０  第２経路
３００  情報付加装置
３１０  第１取得部
３２０  第２取得部
３３０  記憶部
３４０  生成部
３５０  埋め込み部
３６０  出力部
【図１】
2020052813.tif 000003
【図２】
2020052813.tif 000004
【図３】
2020052813.tif 000005
【図４】
2020052813.tif 000006
【図５】
2020052813.tif 000007
【図６】
2020052813.tif 000008
【図７】
2020052813.tif 000009