(57)【要約】  データ処理システム１００は、学習データに対してニューラルネットワークにしたがった処理を実行することにより出力される出力データと、その学習データに対する理想的な出力データとの比較に基づいて、ニューラルネットワークの最適化対象パラメータを最適化する学習部を備える。ニューラルネットワークの活性化関数ｆ（ｘ）は、第１のパラメータをＣ、非負の値をとる第２のパラメータをＷとするとき、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称である関数である。学習部は、第１のパラメータおよび第２のパラメータを、最適化パラメータのひとつとして最適化する。
2019142241.tif 000002
【特許請求の範囲】
【請求項１】
学習データに対してニューラルネットワークにしたがった処理を実行することにより出力される出力データと、その学習データに対する理想的な出力データとの比較に基づいて、前記ニューラルネットワークの最適化対象パラメータを最適化する学習部を備え、
前記ニューラルネットワークの活性化関数ｆ（ｘ）は、第１のパラメータをＣ、非負の値をとる第２のパラメータをＷとするとき、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称である関数であり、
前記学習部は、前記第１のパラメータの初期値として０を設定し、前記第１のパラメータおよび前記第２のパラメータを、最適化パラメータのひとつとして最適化することを特徴とするデータ処理システム。
【請求項２】
前記活性化関数ｆ（ｘ）は、
【数１】
2019142241.tif 000015
で表現されることを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記活性化関数ｆ（ｘ）は、
【数２】
2019142241.tif 000016
で表現されることを特徴とする請求項１に記載のデータ処理システム。
【請求項４】
前記ニューラルネットワークは、畳み込みニューラルネットワークであり、コンポーネントごとに独立した、前記第１のパラメータおよび前記第２のパラメータを有することを特徴とする請求項１から３のいずれかに記載のデータ処理システム。
【請求項５】
前記コンポーネントはチャンネルであることを特徴とする請求項４に記載のデータ処理システム。
【請求項６】
前記学習部は、前記第２のパラメータが所定の閾値以下となった場合、その活性化関数による出力のみに影響する演算処理を実行しないことを特徴とする請求項１から５のいずれかに記載のデータ処理システム。
【請求項７】
学習データに対してニューラルネットワークにしたがった処理を実行することにより学習データに対応する出力データを出力するステップと、
学習データに対応する出力データと、その学習データに対する理想的な出力データとの比較に基づいて、前記ニューラルネットワークの最適化対象パラメータを最適化するステップと、を備え、
前記ニューラルネットワークの活性化関数ｆ（ｘ）は、第１のパラメータをＣ、非負の値をとる第２のパラメータをＷとするとき、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称である関数であり、
前記第１のパラメータの初期値として０が設定され、
前記最適化対象パラメータを最適化するステップでは、前記第１のパラメータおよび前記第２のパラメータを、最適化パラメータのひとつとして最適化することを特徴とするデータ処理方法。
【請求項８】
学習データに対してニューラルネットワークにしたがった処理を実行することにより出力される出力データと、その学習データに対する理想的な出力データとの比較に基づいて、前記ニューラルネットワークの最適化対象パラメータを最適化する機能をコンピュータに実現させるためのプログラムであって、
前記ニューラルネットワークの活性化関数ｆ（ｘ）は、第１のパラメータをＣ、非負の値をとる第２のパラメータをＷとするとき、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称である関数であり、
前記最適化対象パラメータを最適化する機能は、前記第１のパラメータの初期値として０を設定し、前記第１のパラメータおよび前記第２のパラメータを、最適化パラメータのひとつとして最適化することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムおよびデータ処理方法に関する。
【背景技術】
【０００２】
ニューラルネットワークは、１以上の非線形ユニットを含む数学的モデルであり、入力に対応する出力を予測する機械学習モデルである。多くのニューラルネットワークは、入力層と出力層の他に、１以上の中間層（隠れ層）をもつ。各中間層の出力は次の層（中間層または出力層）の入力となる。ニューラルネットワークの各層は、入力および自身のパラメータに応じて出力を生成する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Alex Krizhevsky、Ilya Sutskever、Geoffrey E. Hinton、「ImageNet Classification with Deep Convolutional Neural Networks」、NIPS2012_4824
【発明の概要】
【発明が解決しようとする課題】
【０００４】
比較的高精度でありながらも、より安定した学習を実現できることが望ましい。【０００５】
本発明はこうした状況に鑑みなされたものであり、その目的は、比較的高精度でありながらも、より安定した学習を実現できる技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様のデータ処理システムは、学習データに対してニューラルネットワークにしたがった処理を実行することにより出力される出力データと、その学習データに対する理想的な出力データとの比較に基づいて、ニューラルネットワークの最適化対象パラメータを最適化する学習部を備える。ニューラルネットワークの活性化関数ｆ（ｘ）は、第１のパラメータをＣ、非負の値をとる第２のパラメータをＷとするとき、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称である関数であり、学習部は、第１のパラメータおよび第２のパラメータを、最適化パラメータのひとつとして最適化する。【０００７】
本発明の別の態様は、データ処理方法である。この方法は、学習データに対してニューラルネットワークにしたがった処理を実行することにより学習データに対応する出力データを出力するステップと、学習データに対応する出力データと、その学習データに対する理想的な出力データとの比較に基づいて、ニューラルネットワークの最適化対象パラメータを最適化するステップと、を備える。ニューラルネットワークの活性化関数ｆ（ｘ）は、第１のパラメータをＣ、非負の値をとる第２のパラメータをＷとするとき、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称である関数であり、最適化対象パラメータを最適化するステップでは、第１のパラメータおよび第２のパラメータを、最適化パラメータのひとつとして最適化する。【０００８】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、比較的高精度でありながらも、より安定した学習を実現できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態に係るデータ処理システムの機能および構成を示すブロック図である。
【図２】データ処理システムによる学習処理のフローチャートを示す図である。
【図３】データ処理システムによる適用処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。
【００１２】
実施の形態を説明する前に、基礎となった知見を説明する。勾配を用いた学習においてニューラルネットワークの任意の層に与える入力の平均値がゼロから外れた場合、重み更新の方向に対応する偏りの影響で、学習が滞ることが知られている。
【００１３】
一方、ＲｅＬＵ関数を活性化関数に用いることにより、ディープニューラルネットワークの学習を困難にする勾配消失問題を緩和することができる。学習が可能になったディープニューラルネットワークは表現力の向上によって画像分類を含む多種多様なタスクにおいて高性能を達成している。ＲｅＬＵ関数は、正値入力に対する勾配が常に１であるため、絶対値が大きい入力に対する勾配が常に１よりはるかに小さいシグモイド関数を活性化関数に用いた場合等に引き起こされる勾配消失問題を緩和することができる。しかし、ＲｅＬＵ関数の出力は、非負であり、明らかにゼロから外れた平均値をもつ。したがって、次の層への入力の平均値がゼロから外れ、学習が滞る場合がある。
【００１４】
負値入力に対する勾配がゼロではないＬｅａｋｙ  ＲｅＬＵ関数、ＰＲｅＬＵ関数、ＲＲｅＬＵ関数、ＥＬＵ関数が提案されているが、いずれの出力も平均値はゼロより大きい。また、ＣＲｅＬＵ関数、ＮＣＲｅＬＵ関数は畳み込み深層学習においてＲｅＬＵ（ｘ）とＲｅＬＵ（−ｘ）のチャンネル結合を出力することで、ＢＲｅＬＵ関数はチャンネルの半数を正負反転することで、層全体としての平均値をゼロにしているが、各チャンネルの平均値がゼロから外れる問題の解消には至っていない。また、チャンネルの概念がないその他のニューラルネットワークには適用できない。
【００１５】
Ｎｏｎｌｉｎｅａｒｉｔｙ  Ｇｅｎｅｒａｔｏｒ（ＮＧ）は、ｆ（ｘ）＝ｍａｘ（ｘ，ａ）（ａはパラメータ）と定義され、ａ≦ｍｉｎ（ｘ）であれば恒等写像となるため、各層の入力の平均値がゼロになるように初期化されたニューラルネットワークでは、各層の出力の平均値がゼロである。また、上記のように初期化した場合、収束が進んで平均値がゼロから外れた状態でもさらに収束が進む実験結果が示されており、平均値ゼロが真に重要であるのは学習の初期であることがわかる。ここで、ａの初期値ａ０が小さすぎると収束開始までに多大な時間を要するため、ａ０≒ｍｉｎ（ｘ０）（ｘ０はｘの初期値）であることも望ましい。しかし、近年は、ニューラルネットワークの計算グラフ構造が複雑化しており、適切な初期値を与えるのは困難である。
【００１６】
Ｂａｔｃｈ  Ｎｏｒｍａｌｉｚａｔｉｏｎ（ＢＮ）は、ミニバッチ全体の平均と分散を正規化し、出力の平均値をゼロにすることで学習を高速化した。しかし、ニューラルネットワークの任意の層でバイアスシフトを行うとニューラルネットワークの正斉次性を担保せず、精度の低い局所解が存在することが近年報告されている。
【００１７】
よって、比較的高精度でありながらも、より安定した学習を実現するためには、すなわち学習遅滞問題、勾配消失問題、初期値問題、低精度局所解問題を解決するためには、入力の初期値に依存せずにバイアスシフトなしで出力平均値がニューラルネットワークの初期状態においてゼロであり、値域の十分広い範囲において勾配が十分大きい（１に近い）活性化関数が必要である。
【００１８】
以下ではデータ処理装置を画像処理に適用する場合を例に説明するが、当業者によれば、データ処理装置を音声認識処理、自然言語処理、その他の処理にも適用可能であることが理解されよう。
【００１９】
図１は、実施の形態に係るデータ処理システム１００の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵ（central processing unit）をはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２０】
データ処理システム１００は、学習用の画像と、その画像に対する理想的な出力データである正解値とに基づいてニューラルネットワークの学習を行う「学習処理」と、学習済みのニューラルネットワークを画像に適用し、画像分類、物体検出または画像セグメンテーションなどの画像処理を行う「適用処理」と、を実行する。
【００２１】
学習処理では、データ処理システム１００は、学習用の画像に対してニューラルネットワークにしたがった処理を実行し、学習用の画像に対する出力データを出力する。そしてデータ処理システム１００は、出力データが正解値に近づくようにニューラルネットワークの最適化（学習）対象のパラメータ（以下、「最適化対象パラメータ」と呼ぶ）を更新する。これを繰り返すことにより最適化対象パラメータが最適化される。
【００２２】
適用処理では、データ処理システム１００は、学習処理において最適化された最適化対象パラメータを用いて、画像に対してニューラルネットワークにしたがった処理を実行し、その画像に対する出力データを出力する。データ処理システム１００は、出力データを解釈して、画像を画像分類したり、画像から物体検出したり、画像に対して画像セグメンテーションを行ったりする。
【００２３】
データ処理システム１００は、取得部１１０と、記憶部１２０と、ニューラルネットワーク処理部１３０と、学習部１４０と、解釈部１５０と、を備える。主にニューラルネットワーク処理部１３０と学習部１４０により学習処理の機能が実現され、主にニューラルネットワーク処理部１３０と解釈部１５０により適用処理の機能が実現される。
【００２４】
取得部１１０は、学習処理においては、一度に複数枚の学習用の画像と、それら複数枚の画像のそれぞれに対応する正解値とを取得する。また取得部１１０は、適用処理においては、処理対象の画像を取得する。なお、画像は、チャンネル数は特に問わず、例えばＲＧＢ画像であっても、また例えばグレースケール画像であってもよい。
【００２５】
記憶部１２０は、取得部１１０が取得した画像を記憶する他、ニューラルネットワーク処理部１３０、学習部１４０および解釈部１５０のワーク領域や、ニューラルネットワークのパラメータの記憶領域となる。
【００２６】
ニューラルネットワーク処理部１３０は、ニューラルネットワークにしたがった処理を実行する。ニューラルネットワーク処理部１３０は、ニューラルネットワークの入力層の各コンポーネントに対応する処理を実行する入力層処理部１３１と、１以上の中間層（隠れ層）の各層の各コンポーネントに対応する処理を実行する中間層処理部１３２と、出力層の各コンポーネントに対応する処理を実行する出力層処理部１３３と、を含む。
【００２７】
中間層処理部１３２は、中間層の各層の各コンポーネントの処理として、前段の層（入力層または前段の中間層）からの入力データに対して活性化関数を適用する活性化処理を実行する。なお中間層処理部１３２は、活性化処理に加えて、畳み込み処理や間引き処理やその他の処理を実行してもよい。
【００２８】
活性化関数は、以下の式（１）により与えられる。
【数１】
2019142241.tif 000003
ここで、Ｃｃは出力値の中心値を示すパラメータ（以下、「中心値パラメータ」と呼ぶ）であり、Ｗｃは非負の値をとるパラメータ（以下、「幅パラメータ」と呼ぶ）である。中心値パラメータＣｃ、幅パラメータＷｃのパラメータ対は、コンポーネントごとに独立に設定される。例えばコンポーネントは入力データのチャンネルや、入力データの座標や、入力データそのものである。
【００２９】
つまり、本実施の形態の活性化関数は、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフはｆ（ｘ）＝Ｃに対応する点について点対称な関数である。したがって、後述のように中心値パラメータＣｃの初期値に例えば「０」を設定した場合、学習の初期では出力の平均値は、すなわち次の層への入力の平均値は、明らかにゼロとなる。
【００３０】
出力層処理部１３３は、例えばソフトマックス関数、シグモイド関数、クロスエントロピー関数などを組み合わせた演算を行う。
【００３１】
学習部１４０は、ニューラルネットワークの最適化対象パラメータを最適化する。学習部１４０は、学習用の画像をニューラルネットワーク処理部１３０に入力することにより得られた出力と、その画像に対応する正解値とを比較する目的関数（誤差関数）により、誤差を算出する。学習部１４０は、算出された誤差に基づいて、非特許文献１に記載のように、勾配逆伝搬法等によりパラメータについての勾配を計算し、モーメンタム法に基づいてニューラルネットワークの最適化対象パラメータを更新する。本実施の形態では、最適化対象パラメータには、重み係数およびバイアスに加え、中心値パラメータＣｃと幅パラメータＷｃとが含まれる。なお、中心値パラメータＣｃの初期値には例えば「０」が設定され、幅パラメータＷｃの初期値には「１」が設定される。
【００３２】
学習部１４０による処理を、中心値パラメータＣｃおよび幅パラメータＷｃを更新する場合を例に具体的に説明する。
学習部１４０は、ニューラルネットワークの目的関数εの中心値パラメータＣｃついての勾配と幅パラメータＷｃついての勾配をそれぞれ、勾配逆伝搬法に基づき、以下の式（２）、（３）で算出する。
【数２】
2019142241.tif 000004
【数３】
2019142241.tif 000005
ここで、∂ε/∂f(xc)は後続の層から逆伝搬されてきた勾配である。
【００３３】
学習部１４０は、中間層の各層の各コンポーネントにおける入力ｘｃ、中心値パラメータＣｃ、幅パラメータＷｃそれぞれについての勾配∂f(xc)/∂xc、∂f(xc)/∂Ｃc、∂f(xc)/∂Ｗcは以下の式（４）、（５）、（６）で算出する。
【数４】
2019142241.tif 000006
【数５】
2019142241.tif 000007
【数６】
2019142241.tif 000008
【００３４】
学習部１４０は、算出された勾配に基づき、モーメンタム法（以下の式（７）、（８））で中心値パラメータＣｃ、幅パラメータＷｃを更新する。
【数７】
2019142241.tif 000009
【数８】
2019142241.tif 000010
ここで、
μ：モーメンタム
η：学習率
である。
例えば、μ＝０．９、η＝０．１に設定する。
【００３５】
学習部１４０は、Ｗｃ＜０となった場合は、さらにＷｃ＝０に更新する。
【００３６】
取得部１１０による学習用の画像の取得と、ニューラルネットワーク処理部１３０による学習用画像に対するニューラルネットワークにしたがった処理と、学習部１４０による最適化対象パラメータの更新とを繰り返すことにより、最適化対象パラメータが最適化される。
【００３７】
また、学習部１４０は、学習を終了すべきか否かを判定する。学習を終了すべき終了条件は、例えば学習が所定回数行われたことや、外部から終了の指示を受けたことや、最適化対象パラメータの更新量の平均値が所定値に達したことや、算出された誤差が所定の範囲内に収まったことである。学習部１４０は、終了条件が満たされる場合、学習処理を終了させる。学習部１４０は、終了条件が満たされない場合、処理をニューラルネットワーク処理部１３０に戻す。
【００３８】
解釈部１５０は、出力層処理部１３３からの出力を解釈して、画像分類、物体検出または画像セグメンテーションを実施する。
【００３９】
実施の形態に係るデータ処理システム１００の動作を説明する。
図２は、データ処理システム１００による学習処理のフローチャートを示す。取得部１１０は、複数枚の学習用の画像を取得する（Ｓ１０）。ニューラルネットワーク処理部１３０は、取得部１１０が取得した複数枚の学習用の画像のそれぞれに対して、ニューラルネットワークにしたがった処理を実行し、それぞれについての出力データを出力する（Ｓ１２）。学習部１４０は、複数枚の学習用の画像のそれぞれについての出力データと、それぞれについての正解値とに基づいて、パラメータを更新する（Ｓ１４）。このパラメータの更新では、重み付け係数やバイアスに加えて、中心値パラメータＣｃおよび幅パラメータＷｃも最適化対象パラメータとして更新する。学習部１４０は、終了条件が満たされるか否かを判定する（Ｓ１６）。終了条件が満たされない場合（Ｓ１６のＮ）、処理はＳ１０に戻される。終了条件が満たされる場合（Ｓ１６のＹ）、処理は終了する。
【００４０】
図３は、データ処理システム１００による適用処理のフローチャートを示す。取得部１１０は、適用処理の対象の画像を取得する（Ｓ２０）。ニューラルネットワーク処理部１３０は、取得部１１０が取得した画像に対して、最適化対象パラメータが最適化されたすなわち学習済みのニューラルネットワークにしたがった処理を実行し、出力データを出力する（Ｓ２２）。解釈部１５０は、出力データを解釈し、対象の画像を画像分類したり、対象の画像から物体検出したり、対象の画像に対して画像セグメンテーションを行ったりする（Ｓ２４）。
【００４１】
以上説明した実施の形態に係るデータ処理システム１００によると、すべての活性化関数の出力は、入力の初期値に依存せずにバイアスシフト無しで出力平均値がニューラルネットワークの初期状態においてゼロ、値域の一定範囲において勾配が１となる。これにより、学習の高速化、勾配の維持、初期値依存性の緩和、低精度局所解の回避を実現することができる。
【００４２】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４３】
（変形例１）
実施の形態では、活性化関数が式（１）で与えられる場合について説明したが、これに限られない。活性化関数は、入力値に対する出力値がＣ±Ｗの範囲内の値を連続的にとり、入力値に対する出力値が一意に決まり、そのグラフがｆ（ｘ）＝Ｃに対応する点について点対称であればよい。活性化関数は例えば、式（１）の代わりに、以下の式（９）により与えられてもよい。
【数９】
2019142241.tif 000011
この場合、勾配∂f(xc)/∂xc、∂f(xc)/∂Ｃc、∂f(xc)/∂Ｗcは、式（４）、（５）、（６）の代わりに、以下の式（１０）、（１１）、（１２）で与えられる。
【数１０】
2019142241.tif 000012
【数１１】
2019142241.tif 000013
【数１２】
2019142241.tif 000014
本変形例によれば実施の形態と同様の作用効果を奏することができる。
【００４４】
（変形例２）
実施の形態では特に言及しなかったが、あるコンポーネントの活性化関数の幅パラメータＷが所定の閾値以下となり、その活性化関数による出力値が比較的小さくなった場合、その出力は、適用処理に影響を与えないものと考えられる。したがって、あるコンポーネントの活性化関数の幅パラメータＷが所定の閾値以下となった場合、その活性化関数による出力のみに影響する演算処理を実行しなくてもよい。つまり、その活性化関数による演算処理や、そのコンポーネントのみに出力するための演算処理を実行しなくてもよい。例えば、それらの演算処理のみを実行するコンポーネントを、コンポーネントごと削除してもよい。この場合、不要な演算処理が実行されなくなるため、処理の高速化や消費メモリの削減を実現できる。
【符号の説明】
【００４５】
１００  データ処理システム、  １３０  ニューラルネットワーク処理部、  １４０  学習部。
【産業上の利用可能性】
【００４６】
本発明は、データ処理システムおよびデータ処理方法に関する。
【図１】
2019142241.tif 000017
【図２】
2019142241.tif 000018
【図３】
2019142241.tif 000019
【国際調査報告】
2019142241.tif 000020
2019142241.tif 000021
2019142241.tif 000022
2019142241.tif 000023