(57)【要約】【課題】ディープニューラルネットの活性化関数が引き起こす勾配消失を低減する。【解決手段】複数の層からなるディープニューラルネットの学習装置は、ディープニューラルネットの同じ層に属するパーセプトロン３０１，３０２それぞれに対し、共通の入力信号および異なるパラメータを与える。そして、学習装置は、共通の入力信号および異なるパラメータを与えたパーセプトロン３０１，３０２からの出力値同士の積を次の層への入力値として伝播させる。【選択図】図３
2019067062.tif 000002
【特許請求の範囲】
【請求項１】
複数の層からなるディープニューラルネットの学習装置であって、
同じ層に属する複数のパーセプトロンによる出力値同士の積の値を次の層への入力値として伝播させる順伝播部と、
前記パーセプトロンにかかるパラメータの誤差を前記パーセプトロンの属する層の前の層に伝播させる逆伝播部と、
前記逆伝播部が伝播させた誤差を基に前記パラメータを更新するパラメータ更新部と、
を有することを特徴とする学習装置。
【請求項２】
前記複数のパーセプトロンによる出力値同士の積は、
前記出力値同士のアダマール積またはスカラー積であることを特徴とする請求項１に記載の学習装置。
【請求項３】
前記逆伝播部は、
微分の連鎖率による確率的勾配降下法を用いて、前記パラメータによる誤差を導出することを特徴とする請求項１に記載の学習装置。
【請求項４】
前記順伝播部は、
前記同じ層に属する複数のパーセプトロンそれぞれに対し、共通する入力値および異なるパラメータを与えることを特徴とする請求項１に記載の学習装置。
【請求項５】
複数の層からなるディープニューラルネットの学習装置が、
同じ層に属する複数のパーセプトロンによる出力値同士の積の値を次の層への入力値として伝播させるステップと、
前記パーセプトロンにかかるパラメータの誤差を前記パーセプトロンの属する層の前の層に伝播させるステップと、
前記前の層に伝播させた誤差を基に前記パラメータを更新するステップと、
を含んだことを特徴とする学習方法。
【請求項６】
複数の層からなるディープニューラルネットの学習プログラムであって、
同じ層に属する複数のパーセプトロンによる出力値同士の積の値を次の層への入力値として伝播させるステップと、
前記パーセプトロンにかかるパラメータの誤差を前記パーセプトロンの属する層の前の層に伝播させるステップと、
前記前の層に伝播させた誤差を基に前記パラメータを更新するステップと、
をコンピュータに実行させることを特徴とする学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、および、学習プログラムに関する。
【背景技術】
【０００２】
ディープニューラルネットは画像や音声認識をはじめ様々な分野で用いられるモデルである。ディープニューラルネットは多層のニューラルネットで構成され、ニューラルネットは複数のパーセプトロンで構成される。パーセプトロンそれぞれは複数の入力信号と重みと呼ばれるパラメータと積和した値に、活性化関数と呼ばれる非線形な関数で得られた値を、次の層への入力信号として出力する。入力層から出力層にかけて順に各層で得られた入力信号を伝えることで予測値を得ることができる。高い予測性能を得るためには最適な重み値を用意する必要がある。
【０００３】
そこで、ディープニューラルネットでは重みをパラメータとした最適化問題として解くことができる。具体的には、解きたい問題の誤差関数を最小化するようにモデルを観測データから学習する。この最小化には確率的勾配降下法が用いられる。
【０００４】
確率的勾配降下法において、あるパラメータに対する勾配（傾き）を求めることで、パラメータがどちらの方向に更新すれば誤差が小さくなるのかが分かる。その際、モデル内の式を微分する必要がある。しかしながら、代表的な活性化関数であるシグモイド関数や双曲線正接関数（tanh）の導関数はほとんど０に近い値を取るため、ディープニューラルネットが多層であるほど勾配が０に潰れる問題がある。そこで、負値を０にするReLU関数といった正規化線形関数が活性化関数として用いられるようになってきたが、それでも導関数の半分は０の値を取る。
【０００５】
そこで、近年、多層でも学習可能な手法として、負値のみ傾きをパラメータ化するPReLU（非特許文献１参照）、スキップ構造を用いて信号値が伝わるようにするResNet（非特許文献２）、全ての信号値を用いずに学習するmeProp（非特許文献３）等、様々な手法が提案されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】K.  He,  et  al.,  “Delving  Deep  into  Rectifiers:  Surpassing  Human-Level  Performance  on  ImageNet  Classification”,  Proceedings  of  IEEE  International  Conference  on  Computer  Vision,  pp.1026-1034,  2015.
【非特許文献２】K.  He,  et  al.,  “Deep  Residual  Learning  for  Image  Recognition”,  Proceedings  of  IEEE  Conference  on  Computer  Vision  and  Pattern  Recognition,  pp.770-778,  2016.
【非特許文献３】X.  Sun,  et  al.,  “meProp:  Sparsified  Back  Propagation  for  Accelerated  Deep  Learning  with  Reduced  Overfitting”,  Proceedings  of  the  34th  International  Conference  on  Machine  Learning,  pp.3299-3308,  2017.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、いずれの手法も勾配消失問題の解決には至っていない。そこで、本発明は、前記した問題を解決し、ディープニューラルネットの活性化関数が引き起こす勾配消失を低減することを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、本発明は、複数の層からなるディープニューラルネットの学習装置であって、同じ層に属する複数のパーセプトロンによる出力値同士の積の値を次の層への入力値として伝播させる順伝播部と、前記パーセプトロンにかかるパラメータの誤差を前記パーセプトロンの属する層の前の層に伝播させる逆伝播部と、前記逆伝播部が伝播させた誤差を基に前記パラメータを更新するパラメータ更新部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ディープニューラルネットの活性化関数が引き起こす勾配消失を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ディープニューラルネットのイメージ図である。
【図２】図２は、従来のパーセプトロンを説明する図である。
【図３】図３は、本実施形態におけるパーセプトロンの例を示す図である。
【図４】図４は、学習装置の構成例を示す図である。
【図５】図５は、図４の順伝播部の構成例を示す図である。
【図６】図６は、図４の学習装置の処理手順の例を示すフローチャートである。
【図７】図７は、学習プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。本発明は、本実施形態に限定されない。本実施形態の学習装置１０（図４参照）は、ディープニューラルネットにおけるパラメータ（入力値に対する重みｗ）の最適化を行う。ここで、背景技術となるディープニューラルネットについて説明する。
【００１２】
ディープニューラルネットは、例えば、図１に示すように多層のニューラルネットからなり、ニューラルネットは、パーセプトロンを備える。そして、入力値（ｘ）がディープニューラルネットに入力されると、入力層から出力層の順に各層のパーセプトロンが入力値に対する計算結果を次の層への入力値として出力する処理を実行し、ディープニューラルネットは最終的な出力値（ｙ）を得る。
【００１３】
ここで、各層のパーセプトロンの内部では、以下の式（１）に示すように、(ｌ−１)層から入力された信号ｚ(ｌ−１)ごとに重み（パラメータ値）を掛けた値の和を求め、求めた値を活性化関数ｆ（・）に与え、得られた信号ｚ(ｌ)を次の層に出力することが行われる。
【００１４】
【数１】
2019067062.tif 000003
【００１５】
例えば、パーセプトロンはそれぞれ、図２に示すように、前の層からの入力信号ｚを受け付けるユニットを備える。そして、パーセプトロンは、前の層からの入力信号ｚ１に対し重みｗ１を掛けた値と、入力信号ｚ２に対し重みｗ２を掛けた値との和を活性化関数ｆ(・)に与え、得られた値を信号ｚとして次の層に出力する。
【００１６】
ここで、上記のディープニューラルによる出力値（推論値）と正解値との誤差関数をＥとした時、これを最小化するために、確率的勾配降下法で各パラメータを最適化する。そのために、微分の連鎖率を利用した誤差逆伝播法により、誤差信号δ(ｌ＋１)を前の層へ送り、誤差関数Ｅの勾配（傾き）∂Ｅ／∂ｗを求める（式（２）参照）。
【００１７】
【数２】
2019067062.tif 000004
【００１８】
そして、上記のようにして求めた勾配に学習係数ηをかけた値を用いてパラメータの更新を行う。例えば、以下の式（３）に基づき、更新後のパラメータｗｊｉ(ｌ)を得る。これにより、誤差関数Ｅが小さくなる方向にパラメータを調整することができる。
【００１９】
【数３】
2019067062.tif 000005
【００２０】
ここで、従来技術において、ディープニューラルネットの活性化関数として、例えば、シグモイド関数、ハイパボリックタンジェント関数、正規化線形関数、ReLU関数（式（４）参照）等が用いられる。特に、近年よく用いられているReLU関数は、負値を０にするものの、他の関数に比べて勾配消失が起きにくい。
【００２１】
【数４】
2019067062.tif 000006
【００２２】
しかし、ReLU関数の導関数（式（５）参照）の半数は０となり、消失する誤差信号が生じてしまう。
【００２３】
【数５】
2019067062.tif 000007
【００２４】
そこで、本実施形態の学習装置１０は、入力信号を共有し、それぞれ異なるパラメータ値を設定した複数のパーセプトロンを１つのブロックとし、ブロック内の複数のパーセプトロンからの出力値の積を、次の層への入力信号として伝播させる。例えば、学習装置１０は、以下の式（６）に基づき、ブロックの出力値を計算する。
【００２５】
【数６】
2019067062.tif 000008
【００２６】
例えば、図３に示すように、ブロック内に、入力信号（ｚ１，ｚ２）を共有する２つのパーセプトロン３０１，３０２がある場合を考える。この場合、パーセプトロン３０１において、入力信号（ｚ１，ｚ２）に対し、自身に設定されたパラメータ値（ｗ１１，ｗ１２）を掛けた値の和（ｚ１×ｗ１１＋ｚ２×ｗ１２）を出力する。また、パーセプトロン３０２においては、入力信号（ｚ１，ｚ２）に対し、自身に設定されたパラメータ値（ｗ２１，ｗ２２）を掛けた値の和（ｚ１×ｗ２１＋ｚ２×ｗ２２）を出力する。そして、学習装置１０は、パーセプトロン３０１，３０２からの出力値同士の積を、次の層への入力信号（入力値）として伝播させる。
【００２７】
このようにすることで、学習装置１０は、ディープニューラルネットの各層に非線形な働きを持たせつつ、勾配消失を低減することができる。その結果、学習装置１０は、効率的な学習を実現することができる。
【００２８】
次に、図４を用いて、上記の学習装置１０の構成例を説明する。この学習装置１０は、順伝播部１１と、逆伝播部１２と、パラメータ更新部１３とを備える。
【００２９】
順伝播部１１は、複数の層からなるディープニューラルネットにおいて、同じ層の複数のパーセプトロンによる出力値同士の積の値を、次の層への入力値として伝播させる。例えば、図５に示すように、順伝播部１１は、パーセプトロン演算処理部１１１と、活性化処理部１１２とを備える。
【００３０】
パーセプトロン演算処理部１１１は、入力値を共有する複数のパーセプトロンによる演算処理を実行させる。具体的には、パーセプトロン演算処理部１１１は、ディープニューラルネットにおける同じ層のパーセプトロンそれぞれに、同じ入力値（共通する入力信号）および異なるパラメータ値（重み）を与え、パーセプトロンそれぞれにおいて、与えられた入力値およびパラメータ値を用いた計算を実行させる。また、活性化処理部１１２は、共通する入力信号を用いるパーセプトロンそれぞれからの出力値（計算値）同士の積を計算し、次の層への入力値として伝播させる。なお、ここでの積は、アダマール積であってもよいし、スカラー積であってもよい。
【００３１】
図４の逆伝播部１２は、各層のパーセプトロンにかかるパラメータの誤差を当該パーセプトロンの属する層の前の層に伝播させる。例えば、逆伝播部１２は、微分の連鎖率を利用した誤差逆伝播法により、最後の層から順に誤差信号を前の層へ伝播させる。
【００３２】
パラメータ更新部１３は、逆伝播部１２が伝播させた誤差を基に各パラメータを更新する。例えば、ディープニューラルによる出力値（推論値）と正解値との誤差関数をＥとした場合、パラメータ更新部１３は、逆伝播部１２が伝播させた誤差に基づき、誤差関数Ｅの勾配（傾き）∂Ｅ／∂ｗを求める（式（２）参照）。そして、パラメータ更新部１３は、勾配∂Ｅ／∂ｗに学習係数ηをかけた値を用いてパラメータの更新を行う。例えば、パラメータ更新部１３は、前記した式（３）に基づき、パラメータｗｊｉ(ｌ)から（学習係数η×勾配∂Ｅ／∂ｗ）を引いた値を、更新後のパラメータｗｊｉ(ｌ)とする。これにより、パラメータ更新部１３は、誤差関数Ｅが小さくなる方向にパラメータを調整することができる。
【００３３】
次に、図６を用いて、学習装置１０の処理手順の例を説明する。まず、学習装置１０の順伝播部１１は、ディープニューラルネットにおいて、入力値を共有する複数のパーセプトロンによる出力値同士の積の値を、次の層への入力値として伝播させる（Ｓ１：順伝播処理）。
【００３４】
Ｓ１の後、逆伝播部１２は、ディープニューラルの各層のパーセプトロンにかかるパラメータの誤差を前の層に伝播させる（Ｓ２：逆伝播処理）。例えば、逆伝播部１２は、微分の連鎖率を利用した誤差逆伝播法により、ディープニューラルの最後の層から順に誤差信号（δ(ｌ＋１)）を前の層へ伝播させる。
【００３５】
Ｓ２の後、パラメータ更新部１３は、Ｓ２で逆伝播部１２が伝播させた誤差を基に各パラメータを更新する（Ｓ３：パラメータ更新処理）。例えば、ディープニューラルによる出力値（推論値）と正解値との誤差関数をＥとした場合、パラメータ更新部１３は、Ｓ２で逆伝播部１２が伝播させた誤差に基づき、誤差関数Ｅの勾配（傾き）∂Ｅ／∂ｗを求める（式（２）参照）。そして、パラメータ更新部１３は、前記した式（３）に基づき、更新後のパラメータｗｊｉ(ｌ)を得る。
【００３６】
このような学習装置１０によれば、ディープニューラルネットの各層に非線形な働きを持たせつつ、勾配消失を低減することができる。その結果、学習装置１０は、効率的な学習を実現することができる。このような学習装置１０によれば、ディープニューラルネットの各層で用いるユニット（図２，図３参照）の数に従い次元が増えるので、例えば、正規化線形関数等の一次元の活性化関数を用いる場合よりも表現性が向上し、高精度な学習成果を得ることができる。
【００３７】
［プログラム］
また、上記の各実施形態で述べた学習装置１０の機能を実現するプログラムを所望の情報処理装置（コンピュータ）にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置を学習装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等がその範疇に含まれる。また、学習装置１０の機能を、クラウドサーバに実装してもよい。
【００３８】
図７を用いて、上記のプログラム（学習プログラム）を実行するコンピュータの一例を説明する。図７に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００３９】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００４０】
ここで、図７に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記の実施形態で説明した各種データや情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００４１】
そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００４２】
なお、上記の学習プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ（Central  Processing  Unit）１０２０によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００４３】
１０  学習装置
１１  順伝播部
１２  逆伝播部
１３  パラメータ更新部
【図１】
2019067062.tif 000009
【図２】
2019067062.tif 000010
【図３】
2019067062.tif 000011
【図４】
2019067062.tif 000012
【図５】
2019067062.tif 000013
【図６】
2019067062.tif 000014
【図７】
2019067062.tif 000015