(57)【要約】【課題】表現能力が向上した深層学習を効率的に行う。【解決手段】計算部１２１は、ニューラルネットワークの出力層の出力信号について、softmaxに含まれる指数関数を指数関数とパラメータを持たない所定の関数との積に置き換えた出力関数であって、対数尤度関数が非線形である出力関数を計算する。また、更新部１２２は、出力信号に基づいて、出力関数の対数尤度関数が最適化されるように、ニューラルネットワークのパラメータを更新する。【選択図】図２
2019191868.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークの出力層の出力信号を変数とする出力関数であって、対数尤度関数が非線形である出力関数を計算する計算部と、
前記出力信号に基づいて、前記出力関数の対数尤度関数が最適化されるように、前記ニューラルネットワークのパラメータを更新する更新部と、
を有することを特徴とする学習装置。
【請求項２】
前記計算部は、softmaxに含まれる指数関数を前記指数関数とパラメータを持たない所定の関数との積に置き換えた出力関数を計算することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記計算部は、softmaxに含まれる指数関数を、前記指数関数とシグモイド関数との積、シグモイド関数及びsoftplusのいずれかに置き換えた出力関数を計算することを特徴とする請求項１又は２に記載の学習装置。
【請求項４】
コンピュータによって実行される学習方法であって、
ニューラルネットワークの出力層の出力信号を変数とする出力関数であって、対数尤度関数が非線形である出力関数を計算する計算工程と、
前記出力信号に基づいて、前記出力関数の対数尤度関数が最適化されるように、前記ニューラルネットワークのパラメータを更新する更新工程と、
を含むことを特徴とする学習方法。
【請求項５】
コンピュータを、請求項１から３のいずれか１項に記載の学習装置として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
例えば、ニューラルネットワークを多層にした深層学習を用いて、画像に写っている物体のクラス（車、犬等）の確率を出力する手法が知られている。このような深層学習の手法においては、全要素の和が１、各値が［０；１］の中になるようなベクトルを出力する出力関数を用いることで、各クラスの確率を表現している。特に、学習時に用いられる交差エントロピーとの相性から、出力関数としてsoftmaxが用いられる場合がある（例えば、非特許文献１を参照）。さらに、深層学習の表現能力を向上せるため、複数のsoftmaxを混合させるmixture  of  softmax（Ｍｏｓ）という手法が知られている（例えば、非特許文献２を参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ian  Goodfellow,  Yoshua  Bengio,  and  Aaron  Courville.  Deep  learning.  MIT  press,  2016.
【非特許文献２】Zhilin  Yang  et  al.  Breaking  the  softmax  bottleneck:  a  high-rank  RNN  language  model.  In:  arXivpreprint  arXiv:1711.03953  (2017).
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の手法には、表現能力が向上した深層学習を効率的に行うことが困難な場合があるという問題がある。例えば、非特許文献２に記載の手法を用いて学習を行う場合、softmaxを用いる場合に比べ、学習するパラメータ及び調整するパラメータを追加で設定する必要があるため、効率が低下することがある。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明の学習装置は、ニューラルネットワークの出力層の出力信号を変数とする出力関数であって、対数尤度関数が非線形である出力関数を計算する計算部と、前記出力信号に基づいて、前記出力関数の対数尤度関数が最適化されるように、前記ニューラルネットワークのパラメータを更新する更新部と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、表現能力が向上した深層学習を効率的に行うことができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、深層学習のモデルを説明するための図である。
【図２】図２は、第１の実施形態に係る学習装置の構成の一例を示す図である。
【図３】図３は、第１の実施形態に係る学習処理の流れを示すフローチャートである。
【図４】図４は、第１の実施形態に係る学習処理の流れを示すフローチャートである。
【図５】図５は、学習プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に、本願に係る学習装置、学習方法及び学習プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【０００９】
［従来の深層学習の出力］
まず、図１を用いて深層学習について説明する。図１は、深層学習のモデルを説明するための図である。ここでは、特に、クラスの分類を行うためのモデルについて説明する。図１に示すように、深層学習のモデルは、入力層、１つ以上の中間層及び出力層を有する。
【００１０】
入力層には入力データが入力される。また、出力層からは各クラスの確率が出力される。例えば、入力データは、所定の形式で表現された画像データである。また、例えば、クラスが車、船、犬、猫についてそれぞれ設定されている場合、出力層からは、入力データの元になった画像に写っているものが車である確率、船である確率、犬である確率及び猫である確率がそれぞれ出力される。
【００１１】
従来、出力層から確率を出力するために、softmaxが用いられている。ここで、最後の中間層である第Ｌ中間層の出力信号をｕ∈Ｒ´とすると、出力層からは、softmaxを使った式（１）のｙ∈ＲＫが出力される。
【００１２】
【数１】
2019191868.tif 000003
【００１３】
式（１）の行列Ｗは、深層学習において学習される重みと呼ばれるパラメータである。
［ｙ］ｉはベクトルｙのｉ番目の要素である。式（１）において、softmaxは、重み計算後のベクトルＷｕに対する指数関数を使った非線形変換を行っている。また、出力ベクトルｙのｉ番目の要素［ｙ］ｉは、例えば入力がクラスｉである確率を表している。
【００１４】
また、式（１）の右辺の分母は、各要素の指数関数の和であるため、各要素［ｙ］ｉは１以下である。また、指数関数が０以上の値をとることから、出力の各要素［ｙ］ｉは［０，１］の範囲である。このため、式（１）は、確率を表現することができる。
【００１５】
しかしながら、softmaxには表現能力の限界が存在する。まず、softmaxの対数をとったlog  softmaxについて考える。log  softmaxは、softmaxの対数尤度関数に含まれる。log  softmax：ｆは、ＲＫ→ＲＫのベクトル値関数である。ｆ（ｘ）のｉ番目の要素は、式（２）のように表される。
【００１６】
【数２】
2019191868.tif 000004
【００１７】
ここで、モデルに入力されたベクトルｕがＮサンプルあると仮定し、ｉ番目の入力をｕ（ｉ）とする。このとき、全ての入力ｕ（１），…，ｕ（Ｎ）が張る空間Ｕ＝ｓｐａｎ（ｕ（１），…，ｕ（Ｎ））の次元がｒであるとする。つまり、モデルに入力された入力の中には、一次独立な入力がｒ個存在するとする。すると、ベクトルＷｕ（ｉ）（ｉ＝１，…，Ｎ）が張る空間について、式（３）が成り立つ。
【００１８】
【数３】
2019191868.tif 000005
【００１９】
ここで、log  softmaxの出力空間Ｙについて考える。まず、対数と割り算の関係から、式（２）は式（４）のようになる。
【００２０】
【数４】
2019191868.tif 000006
【００２１】
また、ｆ（ｘ）は、式（５）のようになる。
【００２２】
【数５】
2019191868.tif 000007
【００２３】
よって、ｙ（ｉ）は、式（６）のようになる。
【００２４】
【数６】
2019191868.tif 000008
【００２５】
一次独立なＬ個の入力Ｗｕ（ｉ）に対する出力の張る空間Ｙ＝ｓｐａｎ（ｙ（１），…，ｙ（Ｎ））は、式（７）のようになる。
【００２６】
【数７】
2019191868.tif 000009
【００２７】
このため、Ｙの次元は、式（８）のようになる。
【００２８】
【数８】
2019191868.tif 000010
【００２９】
以上より、出力ｙの張る空間は、式（９）のようになる。
【００３０】
【数９】
2019191868.tif 000011
【００３１】
式（９）より、もし、真の出力ベクトルの張る空間がｍ＞ｍｉｎ（ｒａｎｋ（Ｗ），ｒ）＋１であったとすると、log  softmaxでは表現することができないことがいえる。このように、従来のsoftmaxを使った深層学習では、出力関数の対数尤度関数が線形であることによって表現能力が制限されている。
【００３２】
そこで、実施形態では、対数尤度関数が非線形であるような出力関数を用いることで、深層学習の表現能力を向上させる。さらに、実施形態で使用する出力関数のパラメータは、従来のsoftmaxと同じものとすることができるため、新たな学習パラメータの設定等は不要である。
【００３３】
［第１の実施形態の構成］
まず、図２を用いて、第１の実施形態に係る学習装置の構成について説明する。図２は、第１の実施形態に係る学習装置の構成の一例を示す図である。図２に示すように、学習装置１０は、記憶部１１及び制御部１２を有する。
【００３４】
記憶部１１は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１１は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１１は、学習装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１１は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１１は、深層学習のモデルのパラメータを記憶する。
【００３５】
制御部１２は、学習装置１０全体を制御する。制御部１２は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１２は、計算部１２１及び更新部１２２を有する。
【００３６】
計算部１２１は、ニューラルネットワークの出力層の出力信号を変数とする出力関数であって、対数尤度関数が非線形である出力関数を計算する。例えば、計算部１２１は、ニューラルネットワークの出力層の出力信号について、softmaxに含まれる指数関数を指数関数とパラメータを持たない所定の関数との積に置き換えた出力関数であって、対数尤度関数が非線形である出力関数を計算する。ここでは、計算部１２１は、softmaxに含まれる指数関数を指数関数とシグモイド関数との積に置き換えた出力関数を計算する。
【００３７】
前述の通り、従来のsoftmaxを使った深層学習では、出力関数の対数をとった式（５）が非線形要素を有しておらず、もとの入力ベクトルＷｕと１ベクトルのスカラー倍の和になっているため、表現能力が制限されていた。
【００３８】
そこで、実施形態の学習装置１０は、softmaxに含まれる指数関数を、指数関数とシグモイド関数との積に置き換えた関数を出力関数として使用する。実施形態の出力関数は、式（１０）のｇ（ｘ）である。また、シグモイド関数は、式（１０）のσ（［ｘ］）である。
【００３９】
【数１０】
2019191868.tif 000012
【００４０】
このように、計算部１２１は、出力層においては、出力信号のみを変数とする出力関数の計算を行う。このため、本実施形態では出力関数のための学習パラメータは不要であり、計算部１２１は、ニューラルネットワークの出力層の出力信号のみを変数とする、パラメータを持たない出力関数を計算する。
【００４１】
また、式（１１）に示すように、出力関数ｇ（ｘ）の対数は、非線形要素−ｌｏｇ（１＋ｅｘｐ（ｘ））を有する。−ｌｏｇ（１＋ｅｘｐ（ｘ））は、非線形変換を行うベクトル値関数である。
【００４２】
【数１１】
2019191868.tif 000013
【００４３】
このように、実施形態の深層学習のモデルにおいては、出力関数の対数尤度関数が非線形であるため、出力の空間が入力の次元によって制限されず、表現能力が制限されない。また、式（１０）は、従来のsoftmaxである式（２）と同じパラメータのみを使って構成されている。
【００４４】
また、更新部１２２は、出力信号に基づいて、出力関数の対数尤度関数が最適化されるように、ニューラルネットワークのパラメータを更新する。例えば、更新部１２２は、記憶部１１に記憶されたパラメータの行列Ｗを更新する。
【００４５】
ここまで、計算部１２１が、softmaxに含まれる指数関数を指数関数とシグモイド関数との積に置き換えた出力関数を計算する場合について説明した。一方で、出力関数は、これまでに説明したものに限られず、対数が非線形性を有する関数であって、softmaxの指数関数を他の関数に置き換えた関数であってよい。例えば、計算部１２１は、式（１２）に示すような、softmaxの指数関数をシグモイド関数に置き換えた関数を出力関数とすることができる。
【００４６】
【数１２】
2019191868.tif 000014
【００４７】
また、計算部１２１は、式（１３）に示すような、softmaxの指数関数をsoftplusに置き換えた関数を出力関数とすることができる。つまり、計算部１２１は、softmaxに含まれる指数関数を、指数関数とシグモイド関数との積、シグモイド関数及びsoftplusのいずれかに置き換えた出力関数を計算することができる。
【００４８】
【数１３】
2019191868.tif 000015
【００４９】
［第１の実施形態の処理］
図３を用いて、学習装置１０の処理の流れについて説明する。図３は、第１の実施形態に係る学習処理の流れを示すフローチャートである。図３に示すように、まず、学習装置１０は、入力層への入力データの入力を受け付ける（ステップＳ１０）。
【００５０】
次に、学習装置１０は、入力層の出力信号を計算する（ステップＳ２０）。そして、学習装置１０は、ｉを１に設定し（ステップＳ３０）、ｉ＝Ｌになるまで（ステップＳ５０、Ｎｏ）、ｉを１ずつ増加させながら（ステップＳ６０）、第ｉ層の出力信号を計算する（ステップＳ４０）。つまり、学習装置１０は、第１層から第Ｌ層までの中間層の出力信号を計算し、第Ｌ層の出力信号を得る。そして、学習装置１０は、出力層の処理を行う（ステップＳ７０）。
【００５１】
図４を用いて、学習装置１０の出力層の処理について説明する。図４に示すように、学習装置１０は、まず、最後の中間層である第Ｌ層の出力信号に重みを掛けて、出力層の出力信号を計算する（ステップＳ７０１）。例えば、第Ｌ中間層の出力信号をベクトルｕ、重みを行列Ｗで表すとすると、学習装置１０はＷｕを計算する。
【００５２】
次に、学習装置１０は、出力信号を変数とする指数関数及びシグモイド関数を計算する（ステップＳ７０２）。例えば、出力信号をベクトルｘとすると、学習装置１０は、ベクトルｘの第ｉ要素について、指数関数ｅｘｐ（［ｘ］ｉ）及びシグモイド関数σ（［ｘ］ｉ）を計算する。なお、σ（）は、式（１０）に示す通りである。
【００５３】
そして、学習装置１０は、要素として指数関数とシグモイド関数の積を計算する（ステップＳ７０３）。学習装置１０は、計算した全要素の和を計算し（ステップＳ７０４）、要素を和で割って各クラスの確率を計算する（ステップＳ７０５）。
【００５４】
［第１の実施形態の効果］
本実施形態において、計算部１２１は、ニューラルネットワークの出力層の出力信号を変数とする出力関数であって、対数尤度関数が非線形である出力関数を計算する。更新部１２２は、出力信号に基づいて、出力関数の対数尤度関数が最適化されるように、ニューラルネットワークのパラメータを更新する。
【００５５】
このように、本実施形態の学習装置１０は、softmaxを基に、パラメータを追加することなく作成された関数を出力関数として学習を行う。また、当該出力関数は、対数尤度関数が非線形であるため、入力の次元によって出力の表現能力が制限されない。このため、本実施形態によれば、表現能力が向上した深層学習を効率的に行うことができる。
【００５６】
また、計算部１２１は、softmaxに含まれる指数関数を指数関数とパラメータを持たない所定の関数との積に置き換えた出力関数であって、対数尤度関数が非線形である出力関数を計算する。例えば、計算部１２１は、softmaxに含まれる指数関数を指数関数とシグモイド関数との積、シグモイド関数及びsoftplusのいずれかに置き換えた出力関数を計算することができる。これらの置き換えられた関数の対数は、非線形性を有する。
【００５７】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５８】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５９】
［プログラム］
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を学習装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００６０】
また、学習装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供する学習サーバ装置として実装することもできる。例えば、学習サーバ装置は、更新前のパラメータを入力とし、更新後のパラメータを出力とする学習サービスを提供するサーバ装置として実装される。この場合、学習サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００６１】
図５は、学習プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００６３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、学習装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、学習装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００６４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０は、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した実施形態の処理を実行する。
【００６５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６６】
１０  学習装置
１１  記憶部
１２  制御部
１２１  計算部
１２２  更新部
【図１】
2019191868.tif 000016
【図２】
2019191868.tif 000017
【図３】
2019191868.tif 000018
【図４】
2019191868.tif 000019
【図５】
2019191868.tif 000020