(57)【要約】【課題】ロバスト性の高いバイナリネットワークを提供する。【解決手段】学習装置は、ディープニューラルネットワークの各層で用いる重みの値を二値化する。その後、学習装置は、重みの値が二値化されたディープニューラルネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネック法により、入力値を確率変数としたときの確率的写像を、ディープニューラルネットワークおいて、入力値から前記入力値の関連情報を予測する際に用いる潜在変数として出力する。【選択図】図１
2020191006.tif 000002
【特許請求の範囲】
【請求項１】
ディープニューラルネットワークの各層で用いる重みの値を二値化する変換部と、
前記重みの値が二値化されたディープニューラルネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネック法により、前記入力値を確率変数としたときの確率的写像を、前記ディープニューラルネットワークおいて、入力値から前記入力値の関連情報を予測する際に用いる潜在変数として出力する計算部と、
を備えることを特徴とする学習装置。
【請求項２】
前記変換部は、
前記ディープニューラルネットワークの各層で用いる重みの値を、符号関数を用いて＋１および−１のいずれかの値に変換する
ことを特徴とする請求項１に記載の学習装置。
【請求項３】
ディープニューラルネットワークの学習装置により実行される学習方法であって、
前記ディープニューラルネットワークの各層で用いる重みの値を二値化するステップと、
前記重みの値が二値化されたディープニューラルネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネック法により、前記入力値を確率変数としたときの確率的写像を、前記ディープニューラルネットワークおいて、入力値から前記入力値の関連情報を予測する際に用いる潜在変数として出力するステップと、
を含むことを特徴とする学習方法。
【請求項４】
ディープニューラルネットワークの各層で用いる重みの値を二値化するステップと、
前記重みの値が二値化されたディープニューラルネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネック法により、前記入力値を確率変数としたときの確率的写像を、前記ディープニューラルネットワークおいて、入力値から前記入力値の関連情報を予測する際に用いる潜在変数として出力するステップと、
をコンピュータに実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、および、学習プログラムに関する。
【背景技術】
【０００２】
ディープニューラルネットワークは、画像や音声認識をはじめ、様々な分野で用いられるモデルである。このモデルは、多層のニューラルネットワークで構成され、ニューラルネットワークは、複数のパーセプトロンで構成される。
【０００３】
このパーセプトロンは、複数の入力信号に対し、それぞれ重みと呼ばれるパラメータと積和することで１つの値を得る。また、パーセプトロンは、次の層の入力信号を与えるために、活性化関数と呼ばれる非線形な関数で得られた値を射影し、その信号値を出力する。ディープニューラルネットワークは、上記のような計算を入力層から出力層に向けて順に行い、各層に信号を伝えることで、入力信号に対する予測値を得ることができる。
【０００４】
ここで、ディープニューラルネットワークのパラメータおよび信号の値を二値化し、計算時におけるメモリ消費量を低減する手法が知られている（例えば、非特許文献１を参照）。このように、パラメータおよび信号の値を二値化して計算を行うディープニューラルネットワークをバイナリネットワークと呼ぶ。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】I.  Hubara,  M.  Courbariaux,  D.  Soudry,  R.  El-Yaniv,  and  Y.  Bengio,  Binarized  Neural  Networks:  Training  Neural  Networks  with  Weights  and  Activations  Constrained  to  +1  or  -1,  pp.4107-4115,  2016.
【非特許文献２】J.  Xu,  P.  Wang,  H.  Yang,  A.  M.  Lopez,  Training  a  Binary  Weight  Object  Detector  by  Knowledge  Transfer  for  Autonomous  Driving,  arXiv  preprint  arXiv:1804.06332,  2018.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、バイナリネットワークは、パラメータおよび信号が二値に限定されるため、入力層にノイズが入ると出力層から得られる予測値が大きく変わってしまうおそれがある。つまり、バイナリネットワークはロバスト性が低いという問題がある。そこで、本発明は、前記した問題を解決し、ロバスト性の高いバイナリネットワークを提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するため、本発明は、ディープニューラルネットワークの各層で用いる重みの値を二値化する変換部と、前記重みの値が二値化されたディープニューラルネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネック法により、前記入力値を確率変数としたときの確率的写像を、前記ディープニューラルネットワークおいて、入力値から前記入力値の関連情報を予測する際に用いる潜在変数として出力する計算部とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ロバスト性の高いバイナリネットワークを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、学習装置によるバイナリネットワークの学習の概要を説明する図である。
【図２】図２は、学習装置の構成例を示す図である。
【図３】図３は、学習装置の処理手順の例を示すフローチャートである。
【図４】図４は、学習プログラムを実行するコンピュータの例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。まず、本実施形態の学習装置による学習対象となるバイナリネットワークについて説明する。
【００１１】
バイナリネットワークは、順伝搬において、(l-1)層から入力された各信号x（ｌ-1）をパラメータwと積和する。そして、バイナリネットワークは、この積和の結果を符号関数signにより活性化させた信号x（ｌ）を得ると、この信号x（ｌ）を次の層に出力する。なお、バイナリネットワークは、上記の積和の際、パラメータwを符号関数signにより二値化させる（式（１）参照）。
【００１２】
【数１】
2020191006.tif 000003
【００１３】
［概要］
次に、学習装置によるバイナリネットワークの学習の概要を、図１を用いて説明する。なお、図１に示すバイナリネットワークＡ，Ｂは、学習対象のバイナリネットワークに含まれるサブネットワークであるものとする。このうちバイナリネットワークＡは、パラメータθを用いて、入力データxの写像としてzを計算し、バイナリネットワークＢは、パラメータφを用いて、入力データzの写像として予測ラベルyを計算するものとする。ここでバイナリネットワークＡの確率分布はpθ(z|x)であり、バイナリネットワークＢの確率分布はqφ(y|z)であるものとする。
【００１４】
このような場合、学習装置は、まず、上記のパラータθ，φを二値化する。その後、学習装置は、情報ボトルネック（information  bottleneck）法を用いて、バイナリネットワークへの入力データxの確率的写像ｚを求める。ここで求めた写像ｚの確率分布rθ(z)は、バイナリネットワークへの入力データｘにノイズが含まれていたとしても、当該入力データの正解ラベルごとに共通のものとなる。換言すると、入力データｘが異なっていても、当該入力データの正解ラベルごとに共通の確率分布rθ(z)が現れる。よって、学習装置１０は、ロバスト性の高いバイナリネットワークを得ることができる。
【００１５】
［構成］
次に、図２を用いて学習装置の構成を説明する。学習装置１０は、入出力部１１と、制御部１２と、記憶部１３とを備える。入出力部１１は、各種情報の入出力を司る。例えば、入出力部１１は、制御部１２による学習対象のバイナリネットワークで用いるパラメータwの初期値等、学習に用いる各種データの入力を受け付ける。
【００１６】
制御部１２は、学習装置１０全体の制御を司る。この制御部１２は、変換部１２１と、計算部１２２とを備える。変換部１２１は、ディープニューラルネットワーク（バイナリネットワーク）の各層で用いる重みの値を二値化する、例えば、変換部１２１は、符号関数signを用いて、ディープニューラルネットワーク（バイナリネットワーク）の各層で用いる重みの値を＋１および−１のいずれかに二値化する。
【００１７】
計算部１２２は、変換部１２１により重みの値が二値化されたバイナリネットワークについて情報ボトルネック法を用いた学習を行う。計算部１２２は、重みの値が二値化されたディープニューラルネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネック法により、１以上の入力値を、当該入力値の関連情報が類似するようクラスタリングする。そして、計算部１２２は、上記のクラスタリングにおける入力値を確率変数としたときの確率的写像を、上記のディープニューラルネットワークおいて、入力値から当該入力値の関連情報を予測する際に用いる潜在変数として出力する。この計算部１２２の詳細は後記する。
【００１８】
記憶部１３は、制御部１２による学習により得られたバイナリネットワークのモデルを記憶する。モデルは、例えば、上記のバイナリネットワークの各層で用いられる重み（パラメータw）の値や、潜在変数（z）、活性化関数等の情報を含む。
【００１９】
［処理手順］
学習装置１０の処理手順を、図３を用いて説明する。例えば、学習装置１０の変換部１２１は、ディープニューラルネットワーク（バイナリネットワーク）の各層で用いる重みの値を二値化する（Ｓ１）。その後、計算部１２２は、Ｓ１で重みの値が二値化されたバイナリネットワークについて情報ボトルネック法を用いた潜在変数の算出を行う（Ｓ２）。
【００２０】
［計算部の詳細］
上記の計算部１２２を詳細に説明する。計算部１２２は、重みの値が二値化されたバイナリネットワークについて、当該バイナリネットワークへの入力値と当該入力値の関連情報とを用いて、情報ボトルネックにより、入力値の関連情報が類似するようクラスタリングする。この関連情報は、入力値に関連する情報であり、例えば、入力値が単語である場合、当該入力値の関連情報は、当該単語を含む文書のトピック等である。
【００２１】
ここで、計算部１２２は、上記のクラスタリングにおいて、入力値を離散確率変数としたときのクラスタ変数への確率的写像を、上記のバイナリネットワークおいて、入力値から当該入力値の関連情報を予測する際に用いる潜在変数として出力する。
【００２２】
一般に情報ボトルネックを用いたクラスタリングは、クラスタリングの対象である変数X、変数Xのクラスタ変数（変数Xの確率的写像）Z、変数Xの関連情報Yを用いて、式（２）の値を最小化することにより行われる。なお、式（２）におけるＩは相互情報量である。つまり、XとZとの相互情報量I（X；Z）をできるだけ小さくし、ZとYとの相互情報量I（Z；Y）をできるだけ大きくするようなZを求めることにより行われる。
【００２３】
【数２】
2020191006.tif 000004
【００２４】
ここで、学習装置１０による学習対象のバイナリネットワークが入力データxからその入力データxのラベル値yを予測するものである場合、計算部１２２は、上記の入力データxを離散確率変数とし、ラベル値yを入力データｘの関連情報とし、以下の式（３）を最小化する、入力データxの確率的写像z（潜在変数z）を求める。
【００２５】
【数３】
2020191006.tif 000005
【００２６】
ここでr(z)を、周辺分布p(z)の変分近似としたとき、上記の式（３）を最小化することは、以下の式（４）を最小化するのと同義である。
【００２７】
【数４】
2020191006.tif 000006
【００２８】
ここで、pθ(z|x)は、パラメータθを持つバイナリネットワークにｘを与えたときのｚの確率分布であり、qφ(y|z)は、パラメータφを持つバイナリネットワークにzを与えたときのyの確率分布である。なお、このpθ(z|x)は、パラメータθを持つバイナリネットワークの出力値から得られ、qφ(y|z)は、パラメータφを持つバイナリネットワークの出力値から得られるものとする。また、rθ(z)は、z（潜在変数z）の事前分布であり、平均μ、分散σのガウス分布（N(μ,σ)）に従うものとする。
【００２９】
計算部１２２は、式（４）に示すようにKLダイバージェンスの項で正則化しながら、バイナリネットワークの学習を行う。これにより、当該バイナリネットワークのモデルは、入力データxから特徴zの得られるモデルとなるため、入力データxにノイズが入っていたとしても共通の特徴zが得られやすくなる。その結果、例えば、当該バイナリネットワークが入力データxから当該入力データxの予測ラベルyを出力する場合に、ロバスト性の高い予測ラベルyの出力を実現することができる。
【００３０】
［プログラム］
また、上記の実施形態で述べた学習装置１０の機能を実現するプログラムを所望の情報処理装置（コンピュータ）にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置を学習装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータ、ラック搭載型のサーバコンピュータ等が含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）等がその範疇に含まれる。また、学習装置１０を、クラウドサーバに実装してもよい。
【００３１】
図４を用いて、上記のプログラム（学習プログラム）を実行するコンピュータの一例を説明する。図４に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００３２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００３３】
ここで、図４に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。前記した実施形態で説明した各種データや情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００３４】
そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００３５】
なお、上記の学習プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮやＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００３６】
１０  学習装置
１１  入出力部
１２  制御部
１３  記憶部
１２１  変換部
１２２  計算部
【図１】
2020191006.tif 000007
【図２】
2020191006.tif 000008
【図３】
2020191006.tif 000009
【図４】
2020191006.tif 000010