(57)【要約】【課題】効率的な学習を実現することができる。【解決手段】学習装置１０は、深層学習のパラメータを量子化する学習装置であって、パラメータの値域を制約した状態で信号を伝播させる順伝播部１１と、値域を制約されたパラメータによる誤差を伝播させる逆伝播部１２と、パラメータを二値に収束させる正則化項を有する演算式を用いて、逆伝播部が伝播させた誤差を基にパラメータを更新するパラメータ更新部１３と、を有し、効率的な学習を実現する。【選択図】図１
2019040414.tif 000002
【特許請求の範囲】
【請求項１】
深層学習のパラメータを量子化する学習装置であって、
前記パラメータの値域を制約した状態で信号を伝播させる順伝播部と、
値域を制約された前記パラメータによる誤差を伝播させる逆伝播部と、
前記パラメータを二値に収束させる正則化項を有する演算式を用いて、前記逆伝播部が伝播させた誤差を基に前記パラメータを更新するパラメータ更新部と、
を有することを特徴とする学習装置。
【請求項２】
前記順伝播部は、前記パラメータの値域を、微分可能な関数を用いて制約した状態で信号を伝播させ、
前記逆伝播部は、微分の連鎖率による確率的勾配降下法を用いて、前記パラメータによる誤差を導出することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記順伝播部は、tanh関数を用いて、前記パラメータの値域を［−１，＋１］間に制約した状態で信号を伝播させ、
前記パラメータ更新部は、sin関数項を正則化項として有する演算式を用いて、前記パラメータを｛−１，＋１｝の二値に収束させることを特徴とする請求項１または２に記載の学習装置。
【請求項４】
深層学習のパラメータを量子化する学習装置が実行する学習方法であって、
前記パラメータの値域を制約した状態で信号を伝播させる順伝播工程と、
値域を制約された前記パラメータによる誤差を伝播させる逆伝播工程と、
前記パラメータを二値に収束させる正則化項を有する演算式を用いて、前記誤差を基に前記パラメータを更新するパラメータ更新工程と、
を含んだことを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置及び学習方法に関する。
【背景技術】
【０００２】
深層学習は、識別や回帰などのタスクにおいて、観測データを用いることによって目標となる値が出力されるようにモデルのパラメータを最適化する。これが学習であり、この学習を経て未知データに対しても予測が行えるようになる。
【０００３】
このような深層学習は、高度な予測を行うために、モデルに膨大な量のパラメータを持たせている。そこで、従来、パラメータの数を減らさずにビット幅を落とすことで省メモリ化するアルゴリズムが提案されてきた。
【０００４】
例えば、近年、パラメータの値を１ビットに落とす二値化手法であるBinaryConnectが提案されている（例えば、非特許文献１参照）。このBinaryConnectでは、パラメータを最適化する際に、階段状の関数を用いることで強制的に±１の値に丸め込んでいる。しかしながら、この処理を行うことによって、BinaryConnectでは、微分不可能な状態となってしまう。本来、深層学習の最適化には確率的勾配降下法をベースとした誤差逆伝播法が用いられており、勾配の導出には一次微分する必要がある。
【０００５】
このため、BinaryConnectでは、Straight-Through  Estimatorのように階段状の関数を一次直線とみなすことで強制的に誤差逆伝播法を用いている。また、Expectation  Backpropagation（EBP）のようにベイズ的アプローチを応用することで誤差逆伝播法を用いない手法（例えば、非特許文献２参照）も提案されている。他にも、パラメータだけでなく出力値も二値化するBinaryNet（例えば、非特許文献３参照）や、行列の近似分解で二値化するXnorNet（例えば、非特許文献４参照）、０の値も許容して三値化するTWN（例えば、非特許文献５参照）など、近年様々な手法が提案されているが、いずれも誤差逆伝播法が正しく用いられていない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】M.  Courbariaux,  Y.  Bengio,  and  J.  P.  David,  “BinaryConnect:  Training  Deep  Neural  Networks  with  binary  weights  during  propagations”,  Advances  in  Neural  Information  Processing  Systems,  pp.3105-3113,  2015.
【非特許文献２】D.  Soudry,  I.  Hubara,  and  R.  Meir,  “Expectation  Backpropagation:  Parameter-Free  Training  of  Multilayer  Neural  Networks  with  Continuous  or  Discrete  Weights”,  Advances  in  Neural  Information  Processing  Systems,  pp.963-971,  2014.
【非特許文献３】M.  Courbariaux,  I.  Hubara,  D.  Soudry,  R.  El-Yaniv,  and  Y.  Bengio,  “Binarized  Neural  Networks：Training  Neural  Networks  with  Weights  and  Activations  Constrained  to  +1  or  -1”,  Advances  in  Neural  Information  Processing  Systems,  pp.4107-4115,  2016.
【非特許文献４】M.  Rastegari,  V.  Ordonez,  J.  Redmon,  and  A.  Farhadi,  “XNOR-Net:  ImageNet  Classification  Using  Binary  Convolutional  Neural  Networks”,  Proceedings  of  the  14th  European  Conference  on  Computer  Vision,  pp.525-542,  2016.
【非特許文献５】F.  Li,  B.  Zhang,  and  B.  Liu,  “Ternary  Weight  networks”,  arXiv  preprint  arXiv:1605.04711,  2016.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このように、BinaryConnectをはじめ様々な二値化手法では厳密な勾配が求まらないため、予測精度の低下が生じる。また、これらの手法では、通常とは異なった学習率や最適化スケジューリングのテクニックが求められる。以上のことから、従来の手法では、量子化するにあたり効率的な学習が行えないという問題がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、効率的な学習を実現することができる学習装置及び学習方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明に係る学習装置は、深層学習のパラメータを量子化する学習装置であって、パラメータの値域を制約した状態で信号を伝播させる順伝播部と、値域を制約されたパラメータによる誤差を伝播させる逆伝播部と、パラメータを二値に収束させる正則化項を有する演算式を用いて、逆伝播部が伝播させた誤差を基にパラメータを更新するパラメータ更新部と、を有することを特徴とする。
【００１０】
また、本発明に係る学習方法は、深層学習のパラメータを量子化する学習装置が実行する学習方法であって、パラメータの値域を制約した状態で信号を伝播させる順伝播工程と、値域を制約されたパラメータによる誤差を伝播させる逆伝播工程と、パラメータを二値に収束させる正則化項を有する演算式を用いて、誤差を基にパラメータを更新するパラメータ更新工程と、を含んだことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、効率的な学習を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施の形態に係る学習装置の構成の一例を示すブロック図である。
【図２】図２は、図１に示す学習装置が使用する学習アルゴリズムを示す図である。
【図３】図３は、実施の形態に係る学習処理の処理手順を示すフローチャートである。
【図４】図４は、プログラムが実行されることにより、学習装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１４】
［主な記号の定義］
実施の形態で用いる主な記号を下表に示す。以下の各説明において、同一の記号を用いる。
【００１５】
【表１】
2019040414.tif 000003
【００１６】
［従来の数理的背景］
まず、以降の説明において必要となる背景知識を説明する。深層学習は、基本的に、多層に積み重なったパーセプトロンで構成されている。各層のパーセプトロンの内部では、前の層から入力された信号に対して重み値と積和し、それを活性化関数に与えて得られた信号を次の層に出力することが行われている。この計算を入力層から出力層に掛けて順に信号を伝播させることで予測値を得ることができる。この深層学習において高い予測性能を得るためには、最適な重み値を用意する必要がある。
【００１７】
ここで、深層学習では、重みをパラメータとした最適化問題として解くことができる。具体的には、深層学習では、解きたい問題の誤差関数を最小化するようにモデルを観測データから学習する。しかしながら、深層学習のパラメータ数は膨大であるという問題がある。そこで、近年、パラメータのとれる値を±１の二値に限定的にすることでパラメータの数を変えずにメモリ消費量を下げる研究が進んでいる。この際、パラメータｗは、以下の（１）式のように丸め込まれる。
【００１８】
【数１】
2019040414.tif 000004
【００１９】
この（１）式では、sign関数によって強制的に離散化されるため、数学的に最適化不可能になる。そこで、既存手法は、特殊な操作をすることによってパラメータの最適化を行っている。
【００２０】
［本実施の形態］
そこで、本実施の形態に係る学習装置では、微分可能な関数である連続関数を用いることによって、従来必要であった特殊な操作を行わずとも、パラメータの最適化を可能とする。その際、本実施の形態では、正則化処理により徐々に二値に収束させる。したがって、本実施の形態では、深層学習のモデルを量子化する際、丸め込みを行わずにパラメータを二値に収束させることができる。
【００２１】
図１は、本実施の形態に係る学習装置の構成の一例を示すブロック図である。図１に示すように、本実施の形態に係る学習装置１０は、順伝播部１１、逆伝播部１２及びパラメータ更新部１３を有する。本実施の形態に係る学習装置１０は、例えば、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＰＵ（Central  Processing  Unit）等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。この学習装置１０は、深層学習のパラメータを量子化する学習装置であって、内部でパラメータの最適化を行う。学習装置１０は、観測データ、正解ベクトル、ハイパーパラメータ、更新前のパラメータ及び層の数を入力として受け取り、更新後のパラメータを出力する。
【００２２】
順伝播部１１は、更新前のパラメータの値域を制約した状態で信号を伝播させる。順伝播部１１は、更新前のパラメータの値域を、微分可能な関数を用いて制約した状態で信号を伝播させる。順伝播部１１は、tanh関数を用いてパラメータの値域を［−１，＋１］間に制約する。さらに、順伝播部１１は、活性化関数にもtanh関数を用いて出力値を同様に制約している。このように、順伝播部１１は、パラメータをハイボリックタンジェントと設定することで微分可能な関数で射影する。
【００２３】
逆伝播部１２は、値域を制約されたパラメータによる誤差を伝播させる。tanh関数は、微分可能な関数であるため、逆伝播部１２は、微分の連鎖率による確率的勾配降下法を用いて、パラメータによる誤差を導出している。
【００２４】
パラメータ更新部１３は、パラメータを二値に収束させる正則化項を持ち、逆伝播部１２が伝播させた誤差を用いてパラメータを更新する。この際、パラメータ更新部１３は、sin関数項を正則化項として用いている。これにより、パラメータが｛−１，＋１｝の二値の時を除き、罰則が働く。このため、パラメータ更新部１３の処理では、必要なパラメータのみが｛−１，＋１｝の二値に収束し、それ以外のパラメータは０に収束し、スパース化される。このように、パラメータ更新部１３は、正則化項をsin関数とすることでパラメータを二値に収束させる。
【００２５】
このパラメータ更新部１３、逆伝播部１２及びパラメータ更新部１３による処理は、パラメータの更新が無くなるまで繰り返される。
【００２６】
［学習アルゴリズム］
次に、学習装置１０が使用する学習アルゴリズムについて説明する。図２は、図１に示す学習装置１０が使用する学習アルゴリズムを示す図である。
【００２７】
図２に示すように、学習アルゴリズムでは、まず、観測データＸ、正解ベクトルＤ、ハイパーパラメータα，β，ε，λ、更新前のパラメータＷｔ及び層の数ｌを入力として受け取る。そして、学習アルゴリズムは、以下の処理を行うことによって、更新後のパラメータＷｔ＋１を出力する。
【００２８】
まず、順伝播部１１による順伝播処理（図２の１参照）について説明する。順伝播部１１は、図２の１に示すように、順伝播処理として、tanh関数を用いてパラメータＷｔ（ｉ）の値域を［−１，＋１］間に制約する処理を行う。さらに、順伝播部１１は、活性化関数にもtanh関数を用いて、出力値を同様に［−１，＋１］間に制約する処理を行う（図２の２〜５行目）。
【００２９】
続いて、逆伝播部１２による逆伝播処理（図２の２参照）について説明する。前段の順伝播処理において、パラメータＷｔ（ｉ）が微分可能な関数であるtanh関数を用いて制約される。そこで、逆伝播部１２は、図２の２に示すように、値域を制約されたパラメータＷｔ（ｉ）を基に、微分の連鎖率による確率的勾配降下法を用いてパラメータによる誤差∇Ｗｔ（ｉ）を導出する（図２の７〜１２行目）。
【００３０】
そして、パラメータ更新部１３によるパラメータ更新処理（図２の３参照）について説明する。パラメータ更新部１３は、逆伝播部１２が導出した誤差∇Ｗｔ（ｉ）を用いてパラメータＷｔ（ｉ）を更新する。その際、パラメータ更新部１３は、sin関数項を正則化項として用いている（図２の１４行目）。これによって、パラメータＷｔ（ｉ）が｛−１，＋１｝の二値の時を除き罰則が働く。このため、必要なパラメータのみが｛−１，＋１｝の二値に収束し、それ以外のパラメータは０に収束し、スパース化される。学習装置１０は、このアルゴリズムを、パラメータの更新が無くなるまで繰り返す。
【００３１】
［学習処理の処理手順］
次に、実施の形態に係る学習処理の処理手順について説明する。図３は、実施の形態に係る学習処理の処理手順を示すフローチャートである。
【００３２】
図３に示すように、学習装置１０は、まず、観測データＸ、正解ベクトルＤ、ハイパーパラメータα，β，ε，λ、更新前のパラメータＷｔ及び層の数ｌを入力として受け取り（ステップＳ１）、順伝播部１１が、パラメータの値域を制約した状態で信号を伝播させる順伝播処理を行う（ステップＳ２）。この際、順伝播部１１は、更新前のパラメータの値域を、微分可能な関数、具体的には、tanh関数を用いて制約した状態で信号を伝播させる。
【００３３】
続いて、逆伝播部１２は、値域を制約されたパラメータによる誤差を伝播させる逆伝播処理を行う（ステップＳ３）。この際、逆伝播部１２は、微分の連鎖率による確率的勾配降下法を用いてパラメータによる誤差を導出する。
【００３４】
そして、パラメータ更新部１３は、sin関数項を正則化項として用いてパラメータを｛−１，＋１｝二値に収束させることで、逆伝播部１２が伝播させた誤差を基にパラメータを更新するパラメータ更新処理を行い（ステップＳ４）、更新後のパラメータＷｔ＋１を出力して、処理を終了する。
【００３５】
［実施の形態の効果］
本実施の形態では、深層学習のモデルを量子化する際に、パラメータの値域を制約した状態で信号を伝播させ、値域を制約されたパラメータによる誤差を導出し、パラメータを二値に収束させる正則化項を有する演算式を用いて、誤差を基にパラメータを更新する。この場合、本実施の形態では、正則化項を有する演算式を用いた処理によりパラメータを徐々に二値に収束させる。
【００３６】
このため、本実施の形態では、従来必要であった特殊な操作を行わずとも、正則化項を有する演算式を用いた処理を行うのみでパラメータを最適化でき、効率的な学習を実現することができる。また、本実施の形態では、必要十分なパラメータのみを二値にし、それ以外を０に収束させるため、スパース化による汎化性能の向上が期待できる。さらに、本実施の形態は、既存の深層学習の手法に、本実施の形態に係る学習処理として説明した計算部分を新たに付け足すだけでよいため、タスクを選ばずに実行が可能である。
【００３７】
そして、本実施の形態では、パラメータの値域を、微分可能な関数であるtanh関数を用いて制約することで、パラメータによる誤差の導出において微分の連鎖率による確率的勾配降下法の適用が可能となる。したがって、本実施の形態によれば、正確に勾配を求めることができるため、効率的にパラメータを最適化でき、効率的な学習を実現することができる。また、本実施の形態では、微分可能な関数である連続関数を用いることによって、従来必要であった特殊な操作を行わずとも、パラメータの最適化を適切に実行することができる。また、本実施の形態では、正則化項をsin関数とすることで、パラメータを｛−１，＋１｝の二値に収束させることができる。したがって、本実施の形態によれば、パラメータを１bitにすることで、メモリ消費量を削減することができる。
【００３８】
［実施形態のシステム構成について］
図１に示した学習装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、学習装置１０の機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【００３９】
また、学習装置１０においておこなわれる各処理は、全部または任意の一部が、ＣＰＵおよびＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、学習装置１０においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００４０】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【００４１】
［プログラム］
図４は、プログラムが実行されることにより、学習装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００４２】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００４３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、学習装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、学習装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００４４】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００４５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００４６】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００４７】
１０  学習装置
１１  順伝播部
１２  逆伝播部
１３  パラメータ更新部
【図１】
2019040414.tif 000005
【図２】
2019040414.tif 000006
【図３】
2019040414.tif 000007
【図４】
2019040414.tif 000008