(57)【要約】      （修正有）【課題】問題２の学習で問題１と問題２の両問題を解くことができるパラメータへ収束するニューラルネットワークを提供する。【解決手段】ニューラルネットワークは、、複数のパラメータを、第１の問題のための第１の学習データを使用した学習により生成された第１のパラメータ値に設定した状態から、第２の問題のための第２の学習データから複数のパラメータに基づいて算出した出力値と学習データの正解値との誤差に複数のパラメータ毎の罰則のうち対応する罰則を加算した罰則付き誤差が、小さくなるよう複数のパラメータをそれぞれ更新する処理を繰り返して、第２のパラメータ値を生成する。パラメータ更新時に、第１のパラメータ値と更新対象パラメータ値との差分にパラメータ毎の罰則係数を乗じてパラメータ毎の罰則を求め、ニューラルネットワークのいずれかの構成要素に属するパラメータの複数の罰則係数を、複数の罰則係数の代表値に置き換える。【選択図】図５
2020177554.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークの学習を実行するニューラルネットワーク装置であって、
前記ニューラルネットワークは、単数または複数のニューロンをそれぞれ有する複数の層を有し、前記複数の層内のある層のニューロンへの入力にパラメータが割り当てられ、前記複数の層は入力層と出力層と前記入力層及び出力層の間の中間層を有し、
プロセッサと、
前記プロセッサによりアクセスされるメモリとを有し、
前記プロセッサは、
前記複数のパラメータを、第１の問題の第１の学習データを使用した第１の学習により生成された第１のパラメータ値に設定した状態から、第２の問題の第２の学習データの入力値を前記入力層のノードに入力し、前記出力層の出力値を前記複数のパラメータに基づいて算出し、前記出力値と前記第２の学習データの正解値との第２の誤差に前記複数のパラメータ毎の罰則のうち対応する罰則を加算した罰則付き第２の誤差が、小さくなるよう前記複数のパラメータをそれぞれ更新する処理を繰り返して、第２のパラメータ値を生成する第２の学習を行い、
前記複数のパラメータを更新するとき、前記複数のパラメータ毎の罰則を、前記第１のパラメータ値と更新対象のパラメータの値との差分に前記複数のパラメータ毎の罰則係数を乗じてそれぞれ求め、前記複数のパラメータのうち、前記ニューラルネットワークのいずれかの構成要素に属するパラメータの複数の罰則係数を、前記複数の罰則係数の代表値に置き換える、ニューラルネットワーク装置。
【請求項２】
前記複数のパラメータそれぞれの罰則係数は、前記第１の学習の終了時の第１の誤差の前記パラメータに対する傾きの程度に基づく値である、請求項１に記載のニューラルネットワーク装置。
【請求項３】
前記複数のパラメータそれぞれの罰則係数は、前記第１の学習の終了時の第１の誤差の自然対数を前記パラメータで偏微分して生成される、請求項２に記載のニューラルネットワーク装置。
【請求項４】
前記複数のパラメータ毎の罰則を、前記第１のパラメータ値と更新対象のパラメータの値との差分の二乗に、前記複数のパラメータ毎の罰則係数を乗じてそれぞれ生成する、請求項１に記載のニューラルネットワーク装置。
【請求項５】
前記構成要素は、前記ノード、前記層のいずれかである、請求項１に記載のニューラルネットワーク装置。
【請求項６】
前記第１の問題の学習を行うことと、前記第２の問題の学習を行うことは、それぞれ、前記層のニューロンの入力をフィルタを構成する複数のパラメータで畳み込み演算することを有し、
前記構成要素は、前記フィルタである、請求項１に記載のニューラルネットワーク装置。
【請求項７】
前記代表値は、前記複数の罰則係数の平均値、中央値、最大値のいずれかである、請求項１に記載のニューラルネットワーク装置。
【請求項８】
前記第２の学習において前記複数のパラメータを更新することは、前記罰則付き第２の誤差を前記複数のパラメータそれぞれで偏微分した値に所定の学習率を乗じ、更新前のパラメータの値に加算することである、請求項１に記載のニューラルネットワーク装置。
【請求項９】
ニューラルネットワークの学習処理をコンピュータに実行させるコンピュータ読み取り可能なニューラルネットワークの学習プログラムであって、
前記ニューラルネットワークは、単数または複数のニューロンをそれぞれ有する複数の層を有し、前記複数の層内のある層のニューロンへの入力にパラメータが割り当てられ、前記複数の層は入力層と出力層と前記入力層及び出力層の間の中間層を有し、
前記学習処理は、
前記複数のパラメータを、第１の問題の第１の学習データを使用した第１の学習により生成された第１のパラメータ値に設定した状態から、第２の問題の第２の学習データの入力値を前記入力層のノードに入力し、前記出力層の出力値を前記複数のパラメータに基づいて算出し、前記出力値と前記第２の学習データの正解値との第２の誤差に前記複数のパラメータ毎の罰則のうち対応する罰則を加算した罰則付き第２の誤差が、小さくなるよう前記複数のパラメータをそれぞれ更新する処理を繰り返して、第２のパラメータ値を生成する第２の学習を行い、
前記複数のパラメータを更新するとき、前記複数のパラメータ毎の罰則を、前記第１のパラメータ値と更新対象のパラメータの値との差分に前記複数のパラメータ毎の罰則係数を乗じてそれぞれ求め、前記複数のパラメータのうち、前記ニューラルネットワークのいずれかの構成要素に属するパラメータの複数の罰則係数を、前記複数の罰則係数の代表値に置き換える、ニューラルネットワークの学習プログラム。
【請求項１０】
ニューラルネットワークの学習処理をプロセッサが実行する学習方法であって、
前記ニューラルネットワークは、単数または複数のニューロンをそれぞれ有する複数の層を有し、前記複数の層内のある層のニューロンへの入力にパラメータが割り当てられ、前記複数の層は入力層と出力層と前記入力層及び出力層の間の中間層を有し、
前記学習処理は、
前記複数のパラメータを、第１の問題の第１の学習データを使用した第１の学習により生成された第１のパラメータ値に設定した状態から、第２の問題の第２の学習データの入力値を前記入力層のノードに入力し、前記出力層の出力値を前記複数のパラメータに基づいて算出し、前記出力値と前記第２の学習データの正解値との第２の誤差に前記複数のパラメータ毎の罰則のうち対応する罰則を加算した罰則付き第２の誤差が、小さくなるよう前記複数のパラメータをそれぞれ更新する処理を繰り返して、第２のパラメータ値を生成する第２の学習を行い、
前記複数のパラメータを更新するとき、前記複数のパラメータ毎の罰則を、前記第１のパラメータ値と更新対象のパラメータの値との差分に前記複数のパラメータ毎の罰則係数を乗じてそれぞれ求め、前記複数のパラメータのうち、前記ニューラルネットワークのいずれかの構成要素に属するパラメータの複数の罰則係数を、前記複数の罰則係数の代表値に置き換える、ニューラルネットワークの学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ニューラルネットワーク装置、ニューラルネットワークの学習プログラム及び学習方法に関する。
【背景技術】
【０００２】
ニューラルネットワークの学習は、入力値である説明変数ｘと出力値である目的変数yの期待値を有する学習データ（または訓練データ）を使用して行われる。目的変数の期待値は、正解値と呼ばれる。
【０００３】
具体的には、学習は、ニューラルネットワークの入力層に入力値ｘを入力し、出力層から出力される出力値ｙを算出する。出力値は、入力値とニューラルネットワーク内のパラメータに基づいて計算される。そして、出力値と正解値との差分を計算し、差分ができるだけ小さくなるようにパラメータ値を最適化する。一般には、出力層のニューロン毎の出力値と正解値との差分の二乗の和（これを誤差と呼ぶ）ができるだけ小さくなるようにパラメータを最適化する。このパラメータを最適化することが、ニューラルネットワークの学習である。最適化において、最小化の対象となる関数のことを目的関数と呼ぶ。上記の場合、目的関数は誤差である。
【０００４】
問題１を解くためにパラメータを学習して最適化した後、問題１と異なる問題２を解くために学習する場合、問題２を解くための学習工程で、問題１の学習で最適化されたパラメータ値が忘れられて、問題１を解けなくなることがある。異なる問題を解くために追加の学習をした場合の忘却問題については、以下の非特許文献に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３８７０９号公報
【特許文献２】特開２０１７−２２４１５６号公報
【特許文献３】特開２０１７−１３８８０８号公報
【非特許文献】
【０００６】
【非特許文献１】Overcoming catastrophic forgetting in neural networks, Kirkpatrick et al., https://arxiv.org/abs/1612.00796
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の非特許文献では、問題２の学習工程で、上記の誤差である目的関数に、問題２の学習で最適化されるパラメータ値が、問題１の学習で最適化したパラメータ値から離れる程大きくなる罰則項を加算する。これにより、問題２の学習工程でパラメータ値が問題１の学習で最適化したパラメータ値から離れにくくし、問題１の忘却を抑制する。
【０００８】
しかし、非特許文献の罰則項は、各パラメータ毎に異なる罰則を与える。そのため、問題２の学習工程で、問題１と問題２の両方を解くことができるパラメータに収束させることができないことがある。
【０００９】
そこで，本実施の形態の第1の側面の目的は，問題１と問題２の両方を解くことができるパラメータへ収束することができるニューラルネットワーク装置、ニューラルネットワークの学習プログラム及び学習方法を提供することにある。
【課題を解決するための手段】
【００１０】
本実施の形態の第１の側面は， ニューラルネットワークの学習を実行するニューラルネットワーク装置であって、
前記ニューラルネットワークは、単数または複数のニューロンをそれぞれ有する複数の層を有し、前記複数の層内のある層のニューロンへの入力にパラメータが割り当てられ、前記複数の層は入力層と出力層と前記入力層及び出力層の間の中間層を有し、
プロセッサと、
前記プロセッサによりアクセスされるメモリとを有し、
前記プロセッサは、
前記複数のパラメータを、第１の問題の第１の学習データを使用した第１の学習により生成された第１のパラメータ値に設定した状態から、第２の問題の第２学習データの入力値を前記入力層のノードに入力し、前記出力層の出力値を前記複数のパラメータに基づいて算出し、前記出力値と前記第２の学習データの正解値との第２の誤差に前記複数のパラメータ毎の罰則のうち対応する罰則を加算した罰則付き第２の誤差が、小さくなるよう前記複数のパラメータをそれぞれ更新する処理を繰り返して、第２のパラメータ値を生成する第２の学習を行い、
前記複数のパラメータを更新するとき、前記複数のパラメータ毎の罰則を、前記第１のパラメータ値と更新対象のパラメータとの差分に前記複数のパラメータ毎の罰則係数を乗じてそれぞれ求め、前記複数のパラメータのうち、前記ニューラルネットワークのいずれかの構成要素に属するパラメータの複数の罰則係数を、前記複数の罰則係数の代表値に置き換える、ニューラルネットワーク装置である。
【発明の効果】
【００１１】
第１の側面によれば，ニューラルネットワークの学習において、問題１と問題２の両方を解くことができるパラメータへ収束することができる。
【図面の簡単な説明】
【００１２】
【図１】ニューラルネットワークの構成例を示す図である。
【図２】ニューラルネットワークの学習済みパラメータw1,w2の領域の例を示す図である。
【図３】問題１の学習を行った後に、問題１とは異なる問題２の学習を追加で行った場合のパラメータの領域の例を示す図である。
【図４】本実施の形態におけるニューラルネットワーク装置の構成例を示す図である。
【図５】ニューラルネットワーク装置の学習プログラムの処理のフローチャートを示す図である。
【図６】本実施の形態例におけるニューラルネットワーク装置の機能ブロックを示す図である。
【図７】ニューラルネットワークの２つの問題の具体例を示す図である。
【図８】ニューラルネットワークのモデルを示す図である。
【図９】ニューラルネットワークの一般的な構成を示す図である。
【図１０】全結合層の演算例を示す図である。
【図１１】畳み込み層の構成例を示す図である。
【図１２】畳み込み層の畳み込み演算例を示す図である。
【図１３】畳み込み層の畳み込み演算の別の例を示す図である。
【図１４】図１３の３つのフィルタFLT1,FLT2,FLT3それぞれの１対の重み行列（W1,1, W2,1）（W1,2, W2,2）（W1,3, W2,3）の各要素wi,j（パラメータ）の罰則係数τiの第１の例を示す図である。
【図１５】図１３の３つのフィルタFLT1,FLT2,FLT3それぞれの１対の重み行列（W1,1, W2,1）（W1,2, W2,2）（W1,3, W2,3）の各要素wi,j（重み、パラメータ）の罰則の罰則係数τiの第２の例を示す図である。
【図１６】問題２の学習の実験結果の一例を示す図である。
【発明を実施するための形態】
【００１３】
図１は、ニューラルネットワークの構成例を示す図である。ニューラルネットワークは、単数または複数のニューロンまたはノード（以下、ニューロンと称する）Ｎをそれぞれ有する複数の層Lin,L1,Loutを有し、複数の層の２つの層Lin,L1またはL1,Loutのニューロン間のリンクLNKにパラメータｗが割り当てられる。つまり、層L1またはLoutのニューロンへのリンクに対応する入力に、パラメータｗが割り当てられる。複数の層は、入力層Linと、出力層Loutと、入力層Lin及び出力層Loutの間の中間層L1を有する。中間層L1は複数でもよい。
【００１４】
ニューラルネットワークは、学習処理で、入力値と正解値を有する学習データを使用して、内部のパラメータｗを最適化する。具体的には、学習データの入力値24_1を入力層Linに入力すると、入力層Linの各ニューロンN11, N12, N13の値N11, N12, N13と、パラメータw11-21, w12-21, w13-21との積和演算の演算結果が中間層L1のニューロンN21に入力され、ニューロンN21がニューロンN21の値を活性化関数σに通した値を出力する。
【００１５】
中間層L1のニューロンN21の出力値N21は、以下のとおりとなる。中間層L1の他のニューロンN22, N23の出力値も同様である。
【００１６】
【数１】
2020177554.tif 000003
但し、バイアス項は省略されている。
【００１７】
さらに、出力層Loutの出力値も、上記と同様にして算出される。学習データの入力値に対するニューラルネットワークの出力値を求める処理は、例えば、順伝播処理と称する。
【００１８】
次に、学習処理では、出力層Loutの各ニューロンN31,N32,N33の出力値と、学習データの正解値24_2との差分である二乗の和ε=ε12+ε22+ε32が算出され、この誤差εができるだけ小さくなるようにパラメータw11-21, w12-21, w13-21が更新される。上記の誤差εは、パラメータの最適解を求める場合の最適化対象であり、目的関数Lと呼ばれる。目的関数Lは、ニューラルネットワークの入力値である説明変数から求められる出力層の出力である目的変数とは異なる。
【００１９】
このパラメータの更新処理は、例えば、勾配法と呼ばれる以下の式により行われる。
【００２０】
【数２】
2020177554.tif 000004
但し、目的関数LはL=ε、ηは学習率であり正の値である。
【００２１】
例えば、目的関数Lをパラメータｗで偏微分して求めた目的関数Lのパラメータｗに対する傾きが負であれば、パラメータｗは負の傾きに学習率-ηを乗じた値を加算した値に更新され、傾きが正であれば、パラメータｗは正の傾きに学習率-ηを乗じた値を加算した値に更新される。また、パラメータｗが極小値より遠い場合は、傾きが大きくなり更新幅は大きくなるが、パラメータｗが極小値に近づくと、傾きが小さくなり更新幅は小さくなり、極小値に収束するようになる。
【００２２】
学習処理では、上記の順伝播処理とパラメータの更新処理が、複数の学習データに対して繰り返し行われ、パラメータが最適な値（目的関数Lをできるだけ小さくする一つの極小値）に収束される。目的関数Lの極小値が複数ある場合、いずれかの極小値に収束することで、学習の目的をある程度達成できる。
【００２３】
図２は、ニューラルネットワークの学習済みパラメータw1,w2の領域の例を示す図である。図１のニューラルネットワークでは、入力層Linと中間層L1の間に９つのパラメータと、中間層L1と出力層Loutの間に９つのパラメータとの、合計１８個のパラメータが存在する。但し、図２では、簡略化して２つのパラメータw1, w2の軸と、問題１が解けるパラメータ領域PR1が示される。図２の紙面に垂直な方向が、誤差εまたは目的関数Lの大きさに対応し、パラメータ領域PR1は、例えば谷の地形を有し、中心のポイントＡが谷底に対応する。
【００２４】
２つのパラメータw1, w2が、パラメータ領域PR1内の中心のポイントＡ（5.3，1.4）にあるとき、問題１を最も解くことができる。パラメータ領域PR1は、出力値の正解値に対する誤差差分の二乗和εが小さい領域であり、例えば、ポイントＡが誤差ε（または目的関数L）の極小値をとるポイントである。
【００２５】
図３は、問題１の学習を行った後に、問題１とは異なる問題２の学習を追加で行った場合のパラメータの領域の例を示す図である。図中、問題１を良く解くことができるパラメータ領域PR1に対して、問題２を良く解くことができるパラメータ領域PR2が示される。両パラメータ領域PR1,PR2は、一部の領域で重複している。また、パラメータ領域PR1には、擬似的に、谷の地形を示す等高線が追加されている。
【００２６】
この場合、問題２の学習も問題１の学習と同様に行われ、問題２を最もよく解けるポイントＢのパラメータw1, w2に収束したとする。この結果、ポイントＢは問題１をよく解けるパラメータ領域PR1の外側であるため、ニューラルネットワークは、問題１を解くことができなくなる、または困難になる。この現象が、問題１を解くための学習後に、異なる問題２を解くために追加の学習をした場合の忘却の現象である。
【００２７】
本実施の形態によれば、問題１の学習後に問題２の学習を追加で行う場合、問題２の学習で、パラメータw1, w2をポイントＣに収束させる。ポイントＣは、問題１を良く解けるパラメータ領域PR1と問題２を良く解けるパラメータ領域PR2の重複領域であるので、問題２の学習後のパラメータにより、ニューラルネットワークは、問題１と問題２の両方の問題を良く解くことができる。
【００２８】
［本実施の形態］
図４は、本実施の形態におけるニューラルネットワーク装置の構成例を示す図である。ニューラルネットワーク装置１は、汎用のコンピュータ、またはニューラルネットワークの演算、例えば畳み込み演算などの処理を演算する特殊プロセッサと汎用プロセッサを搭載したコンピュータである。
【００２９】
ニューラルネットワーク装置１は、プロセッサ１０と、プロセッサがアクセス可能なメインメモリ１２と、キーボードやディスプレイなどの入出力装置１４と、ネットワークNWとのネットワークインターフェース１６と、HDDやSDDなどの大容量の補助記憶装置２０と、それらを通信可能に接続するバス１８とを有する。
【００３０】
補助記憶装置２０は、図示しないオペレーションシステム（OS）以外に、ニューラルネットワークの学習プログラム２２と、学習データ２４と、学習済みパラメータデータ２６と、罰則データ２８を記憶する。学習プログラム２２は、メインメモリ１２に展開され、プロセッサ１０により実行される。また、学習プログラム２２には、推論プログラムが内蔵されるので、プロセッサ１０は、推論プログラムを実行して、推論対象の入力（説明変数）に対して、学習済みパラメータのニューラルネットワークによる推論を行い、出力（目的変数）を算出する。
【００３１】
ニューラルネットワーク装置１は、ネットワークNWを介して、複数のクライアント端末装置３０，３２からアクセス可能である。例えば、ニューラルネットワーク装置１のプロセッサ１０は、クライアント端末装置等から提供されたある問題を解くための学習データを使用して、ニューラルネットワークの学習プログラムを実行し、ニューラルネットワークのパラメータを、問題を解くことができる値に更新する。
【００３２】
図５は、ニューラルネットワーク装置の学習プログラムの処理のフローチャートを示す図である。プロセッサ１０は、学習プログラムを実行して、以下の処理を実行する。
【００３３】
［第１の問題の第１の学習］
プロセッサは、まず、第１の問題の第1の学習データを使用して、第１の問題の学習を実行し、第１の問題の学習済みの第１のパラメータを生成する（S10,S11,S12）。第１の問題の学習では、プロセッサは、第１の問題のための第１の学習データの入力値Xを、ニューラルネットワークの入力層のニューロンに入力し、内部のパラメータに基づいて、中間層のニューロンの出力値Yを算出し、更に出力層のニューロンの出力値を算出する。そして、プロセッサは、出力値Yと第１の学習データの期待値ｙとの誤差εを目的関数Lとして算出する（S10）。そして、誤差εが小さくなるように内部の複数のパラメータを更新する（S11）。パラメータwの更新は、前述の数２の勾配法の演算式により行われる。
【００３４】
プロセッサは、上記の第１の学習データの入力値から出力層の出力値を算出する処理と、内部のパラメータを更新する処理とを、複数の第１の学習データについて繰り返す（S12）。そして、プロセッサは、パラメータの値が収束した段階で、第１の問題の学習処理を終了する。その結果、第１の問題を解くことができる第１のパラメータの値が、補助記憶装置２０内の学習済みパラメータデータ２６に格納される。
【００３５】
［パラメータ毎の罰則の生成］
次に、プロセッサは、パラメータ毎の罰則を生成する（S13）。パラメータw1, w2毎の罰則項は、第１の問題の学習済パラメータが、（w1,w2)=(5.3,1.4)だったとすると、以下に示すとおりである。
【００３６】
【数３】
2020177554.tif 000005
但し、w1,w2は、第２の問題の学習で更新されるパラメータであり、τ1、τ2はパラメータw1,w2の罰則係数である。
【００３７】
上記のパラメータ毎の罰則項のうち、第２の問題の学習中のパラメータ（w1,w2)と第１の問題の学習済みパラメータ値（5.3,1,4）の差分の二乗（w1-5.3）2, (w2-1.4)2は、第２の問題の学習中のパラメータ（w1,w2)が、第１の問題の学習済パラメータの値（5.3,1,4）から離れるほど、大きくなることを示す。したがって、差分の二乗に代えて、差分の絶対値でもよい。罰則項が下に凸の関数であればよい。
【００３８】
さらに、上記の罰則項は、上記の各パラメータの差分の二乗にそれぞれの罰則係数τ1, τ2を乗じて求められる。罰則係数τiは、以下のフィッシャー情報量であり、正数である。
【００３９】
【数４】
2020177554.tif 000006
但し、この式でのεは第１の問題の学習での誤差であり、Eは期待値である。つまり、εは、第１の問題の学習を終了した時点での誤差である。
【００４０】
罰則係数τiは、第１の問題の学習で変動されたくないパラメータに対してより大きな値をとる。つまり、罰則係数が大きいパラメータは、第1の問題の学習結果としてより重要なパラメータであり、第２の問題の学習で変動することをより抑制すべきパラメータである。
【００４１】
罰則係数τiは、第１の問題の学習終了時の誤差εの自然対数（log）をパラメータwiで偏微分して求められる。つまり、係数τiは、誤差εのパラメータwi方向の傾きの程度を示す。例えば、図３の第１の問題の学習で最適化されたパラメータ領域PR1の等高線をみると、パラメータw2方向の傾きは急であり大きいが、パラメータw1方向の傾きは緩やかで小さい。したがって、係数τiは、上記のフィッシャー情報量により、第１の問題にとってより重要なパラメータwiほど、大きな値に設定される。
【００４２】
例えば、図３において、座標上パラメータをポイントＡから上方向のポイントＢに移動させるほうが問題１を解けなくなりやすく、ポイントＡから右方向のポイントＣに移動させるほうが解ける状態を維持できる。そこで、パラメータの上下方向への移動に寄与するパラメータw2が問題１の学習済みの値、１．４、から移動することに対する罰則項を、パラメータw1が学習済みの値、５．３、から移動することよりも大きな罰則項にすれば、問題１の忘却を抑制できる。罰則係数τiにフィッシャー情報量を採用することで、上下方向の移動に寄与するパラメータw2の罰則係数τ2（誤差εのw2に対する傾きの程度）が、左右方向への移動に寄与するパラメータw1の罰則係数τ1（誤差εのw1に対する傾きの程度）より大きくなるように設定できる。
【００４３】
そして、第２の問題の学習するときの目的関数Lを、以下のように設定する。
【００４４】
【数５】
2020177554.tif 000007
但し、λは、罰則項の効力の強さを調整する第２の罰則係数であり、問題に応じて人為的に設定されるハイパーパラメータである。ここでのεは第２の問題の学習中の誤差である。数４の第１の問題の学習終了時の誤差εとは異なる。そして、目的関数Lが罰則付き誤差である。プロセッサは、第２の学習では、この罰則付き誤差Lを小さくするように勾配法の数式（数２）によりパラメータを更新する（S16）。
【００４５】
上記の数５は、一般化すると以下のとおりである。
【００４６】
【数６】
2020177554.tif 000008
但し、Nはパラメータの数である。数６の目的関数Lについては、前述の非特許文献に記載されている。
【００４７】
数６の目的関数Lの以下のパラメータwiの罰則項
【００４８】
【数７】
2020177554.tif 000009
は、パラメータwiが＾wiから離れることに対して与えられる罰則である。つまり、罰則は、
【００４９】
【数８】
2020177554.tif 000010
の時最小になり、wiが＾wiから離れるほど大きくなる関数である。
【００５０】
数６の目的関数Lは、以下の２つに分解できる。
【００５１】
【数９】
2020177554.tif 000011
問題１は解けなくてもよく問題２だけ解きたいなら第２の罰則係数λをλ=0とすればよい。この場合、L = εになるので、パラメータは問題2に関する誤差εを最小にするように収束する。逆に、問題２は解けなくてもよく問題1だけを解きたいなら、λを十分大きい値に設定すればよい。この場合は、目的関数Lは以下のとおり
【００５２】
【数１０】
2020177554.tif 000012
となり、パラメータはLを最小にするように、すなわち、（w1,w2)＝（5.3,1.4）に収束する。
【００５３】
しかし、問題１と２の両方の問題を解きたい場合は、適切なλを設定して、両方が含まれた数６を使用して、問題１と問題２の両方を解けるパラメータに収束させる。
【００５４】
なお、数６の目的関数Lを数２のように各パラメータwiで偏微分すると、パラメータwi以外のパラメータの罰則項はゼロになるので、数６の目的関数Lは以下の数１１の目的関数Liでも良い。但し、数１１では、パラメータwi毎に目的関数Liが異なる。
【００５５】
【数１１】
2020177554.tif 000013
上記の数５，数６では、複数のパラメータwi毎に係数τiが異なっている。そのため、ある機能を実現する複数のパラメータそれぞれの係数τiが異なり、第２の問題の学習を行っても、問題１と問題２の問題の両方を解くことができるようにパラメータを収束させることができないことがある。本発明者が、具体的に第２の問題の学習を実行してみて、この問題点を見出した。
【００５６】
そこで、本実施の形態では、図５に示すとおり、共通の機能を有する複数のパラメータ（パラメータグループ）の罰則項の罰則係数τを、複数の罰則係数τiの代表値τrep、例えば、平均値、中央値または最大値のいずれか、に置き換える（S14）。つまり、問題１を解くために維持すべき重要な複数のパラメータの罰則項の罰則係数τiを、共通の代表値τrepに置き換える。
【００５７】
［第２の問題の第２の学習］
次に、プロセッサは、第１の学習データで学習済みの第１のパラメータ値を有するニューラルネットワークについて、第１の問題とは異なる第２の問題を解くための第２の学習データを使用して、第２の問題の学習を実行し、学習済みの第２のパラメータを生成する（S15,S16,S17）。
【００５８】
第２の問題の学習では、第１の問題の学習と同様に、プロセッサは、第２の学習データの入力値から出力層の出力値を算出し、出力値と正解値との誤差εを求める処理（S15）と、内部の複数のパラメータを更新する処理（S16）とを、複数の第２の学習データに対して繰り返す（S17）。
【００５９】
但し、第２の問題の学習では、プロセッサは、数２の目的関数Lとして、出力値と第２の学習データの正解値との誤差εに、複数のパラメータ毎の罰則値を加算した罰則付き第２の誤差L（数５、数６）を生成する。この複数のパラメータ毎の罰則値は、前述したとおり、更新されるパラメータが、第１の問題の学習で取得したパラメータの値から離れるほど大きくなる性質を有する。さらに、第1の問題にとって重要なパラメータほど、その罰則値は大きく設定される。そして、プロセッサは、罰則付き第２の誤差Lが小さくなるように複数のパラメータを更新し、第２の問題を解くことができる複数の第２のパラメータの値を生成する。罰則項の具体的な数式は後で詳述する。
【００６０】
これにより、第２の問題の学習により、パラメータの値を、図３に示した第１の問題の学習済みパラメータのポイントＡから、第２の問題の学習済みパラメータのポイントＣに移動させることができる。上記のパラメータ毎の罰則値をパラメータ更新の演算式の目的関数Lに加算することで、学習済みパラメータがポイントＡからポイントＢに移動することを抑制できる。
【００６１】
さらに、プロセッサは、前記複数のパラメータ毎の罰則値を、前記第１のパラメータ値と更新対象のパラメータの値との差分の二乗に複数のパラメータ毎の罰則係数τを乗じてそれぞれ求める。そして、複数のパラメータのうち、ニューラルネットワークのいずれかの構成要素に属する複数のパラメータそれぞれの複数の罰則係数を、複数の罰則係数の代表値に置き換える。代表値とは、例えば、前記複数の罰則係数の平均値、中央値、または最大値のいずれかである。また、構成要素とは、ニューラルネットワークのニューロン、層、フィルタなどである。
【００６２】
ニューラルネットワークの構成要素に属する複数のパラメータは、ニューラルネットワークの推論においてある機能を有する複数のパラメータの集合である。機能でまとめられる複数のパラメータそれぞれの罰則値の罰則係数τを代表値τrepに統一することで、第１の問題と第２の問題の両方を解くことができるパラメータ値への収束が可能になる。
【００６３】
上記の処理S14について具体例で説明する。例えば、ニューラルネットワークにパラメータが１０個（w1,w2…w10）存在し、ある機能１に属するパラメータがw1〜w5、ある機能２に属するパラメータがw6〜w10とする。前述の数６では、目的関数Lは、以下のとおり罰則項の大きさを示す罰則係数τ1〜τ10がパラメータ毎に異なる。
【００６４】
【数１２】
2020177554.tif 000014
但し、^wiは、第１の問題の学習済みパラメータ値である。
【００６５】
これに対して、本実施の形態では、機能１に属するパラメータw1〜w5、の罰則係数τ1〜τ5は、代表値τ1,2,3,4,5に、機能２に属するパラメータw6〜w10の罰則係数τ6〜τ10は、代表値τ6,7,8,9,10にそれぞれ置換される。その結果、目的関数Lは以下のとおりとなる。
【００６６】
【数１３】
2020177554.tif 000015
但し、数１３では、複数のパラメータの罰則係数τiの平均値が代表値として採用されている。
【００６７】
上記の数１３の例では、ニューラルネットワークのパラメータの罰則項の罰則係数τ1〜τ10の全てを、２つのパラメータグループに分けて、それぞれを代表値で置き換えている。しかし、必ずしも全てのパラメータの罰則項の罰則係数を代表値に置き換える必要はなく、一部のパラメータの罰則項の罰則係数だけを代表値に置き換えても良い。
【００６８】
図６は、本実施の形態例におけるニューラルネットワーク装置の機能ブロックを示す図である。図４に示したプロセッサ１０は、学習プログラムを実行して、問題の学習データ２４を使用してニューラルネットワークの学習を行う学習部10_1を構成する。さらに、プロセッサ１０は、学習プログラムを実行して、問題１の学習済みモデルのパラメータの状態から、学習部10_1が問題２の学習を実行する際にパラメータ毎の罰則を生成するパラメータ毎罰則生成部10_2と、パラメータグループ毎の罰則を生成するパラメータグループ毎罰則生成部10_3とを構成する。パラメータ毎の罰則及びパラメータグループ毎の罰則は、罰則データ２８に格納される。上記のパラメータ毎の罰則の生成は、前述の例では、数３で示した罰則項のパラメータの差分の二乗と罰則係数τiの生成である。
【００６９】
［具体例］
図７は、ニューラルネットワークの２つの問題の具体例を示す図である。問題１は、矩形内の手書きの数字の画像から数字を分類する問題である。一方、問題２は、問題１と同様に、矩形内の手書きの数字の画像から数字を分類する問題であるが、手書き文字が左右反転の裏文字になっている。
【００７０】
したがって、問題１は左右方向が正常な手書き文字の画像から数字を分類する問題であり、問題１の学習済みパラメータは、上記の手書き文字の画像から数字を分類できるように更新された値をとる。その後、本発明を用いて、追加の問題２の学習が実行されると、問題１の手書き文字と問題２の手書き文字（左右反転）の両方の画像の数字を分類できるパラメータに更新される。
【００７１】
図８は、ニューラルネットワークのモデルを示す図である。ニューラルネットワークNNのモデルは、２８×２８行列の入力INPUTを入力し、１×１０行列の出力OUTPUTを出力する。図７の問題の場合、ニューラルネットワークNNは、手書きの数字の画像を入力し、その画像が該当する数字（ラベル）である確率を出力する関数である。入力INPUTは、２８×２８行列のX0,0〜X27,27の入力を有し、出力OUTPUTは、画像が０〜９それぞれである10個の確率p0〜p9であり、10個の確率の合計がΣpi＝１で、且つ各確率がpi≧0である。入力画像の０〜９の分類を行うモデルでは、出力の10個の確率piのうち最も大きい確率の数字を入力画像に該当するラベルと判定する。
【００７２】
図８に示すとおり、ニューラルネットワークNNのモデルは、各出力p0〜p9を算出する関数f0〜f9を算出する。これらの関数は、入力X0,0〜X27,27をパラメータ集合W内の複数のパラメータwiに基づいて演算する。
【００７３】
図９は、ニューラルネットワークの一般的な構成を示す図である。図９の入力INPUTと出力OUTPUTは、図１と同じであり、入力層と出力層は省略されている。図９に示したニューラルネットワークNNは、図示しない入力層に続き、複数の中間層L0〜L3を有する。図１に示したとおり、図９の層L0〜L3は、図１の中間層L1と同様に、複数のニューロン（またはノード）と、前層のノード間のリンクに割り当てられた複数のパラメータwiを有する。
【００７４】
図９の層L0〜L3は、それぞれ図１に示した中間層L1のように、全結合層であり、ある層内のニューロンは、前層のニューロンとの間に、重みと呼ばれる単数または複数のパラメータwiが対応付けられる。
【００７５】
図９の層L0〜L3は、例えば、全結合層や畳み込み層などがある。以下、全結合層と畳み込み層の例と、本実施の形態における、ある機能を有する複数のパラメータ（パラメータグループ）の例について説明する。
【００７６】
［全結合層のパラメータグループ］
図１０は、全結合層の演算例を示す図である。入力INPUTは、図９と同じであり、２８×２８＝７８４の入力を有する。２８×２８の行列の入力INPUTは、１×７８４の行列に平坦化され、入力層に入力され、最初の中間層L0に入力される。そして、中間層L0のm個のニューロンの出力Y0〜Ym-1のうち出力Y0は、例えば、以下のとおりである。
Y0 = w0X0,0 + w1X0,1 + ・・+ w27X0,27 + ・・+ w783X27,27
但し、バイアス項、活性化関数、ドロップアウトなどは省略している。他の入力Y1〜Ym-1も同様である。
【００７７】
図９の各層に全結合層を有するニューラルネットワークNNの場合、例えば、ある層のニューロンに属する複数のパラメータが、ある機能を有する複数のパラメータ（パラメータグループ）である。また、例えば、ある層内のあるニューロンに属する複数のパラメータ、図10の例では層L0の出力Y0を出力するニューロンに属する複数のパラメータ、w0〜w783が、ある機能を有する複数のパラメータ（パラメータグループ）である。
【００７８】
図１１は、畳み込み層の構成例を示す図である。入力INPUTと出力OUTPUTは、図９，１０と同じであり、入力層は省略されている。また、層L0,L1,L2は畳み込み層であり、層L3は平坦化層である。畳み込み層は、例えば画像認識に利用される層であり、畳み込み層の入力を、パラメータであるフィルタ係数で畳み込み演算し、演算結果を畳み込み層の出力として出力する。または、畳み込み演算結果を畳み込み層の活性化関数に入力して求めた出力を畳み込み層の出力として出力する。
【００７９】
［畳み込み層のパラメータグループ］
図１２は、畳み込み層の畳み込み演算例を示す図である。今、畳み込み層L0の入力が８×８の画素値であり、パラメータwが３×３のフィルタ係数であり、畳み込み層L0の出力が畳み込み演算結果とする。畳み込み層L0の出力の最初の２つの値をO1,O2とすると、それらの値O1,O2は、図中に示されるとおり、入力の画素値Xijとパラメータであるフィルタ係数w11〜w33との積和演算の値である。
【００８０】
図１３は、畳み込み層の畳み込み演算の別の例を示す図である。この例では、畳み込み層L0への入力xc_inがｍ１チャネル（ｍ１＝２）、出力yc_outがｍ２チャネル（ｍ２＝３）の場合の畳み込み演算である。ここで、チャネルとは、例えば、カラー画像の場合のRGBの３チャネルなどである。
【００８１】
畳み込み層L0への入力画像xc_inは、ｍ１チャネル（ｍ１＝２）の画像X1,X2を有する。入力画像X1，X2は、それぞれ、図１２の畳み込み層L0の8×8画素xi,jの入力に対応する。これに対して、畳み込み層L0の出力画像Yc_outは、ｍ２チャネル（ｍ２＝３）の画像Y1, Y2, Y3を有する。各出力画像Y1, Y2, Y3は、図１２の畳み込み層L0の8×8画素yi,jの出力に対応する。ｍ２チャネル（ｍ２＝３）の出力画像Y1, Y2, Y3を得るために、パラメータWc_in,c_outは、３つのフィルタFLT1, FLT2, FLT3を有する。各フィルタは、それぞれ入力のｍ１チャネル１，２と、出力のｍ２チャネル１，２，３の組合せの重みWc_in,c_outのフィルタからなる。具体的には、
FLT1 = (W1,1, W2,1)
FLT2 = (W1,2, W2,2)
FLT3 = (W1,3, W2,3)
である。
【００８２】
３つのフィルタFLT1, FLT2, FLT3それぞれの１対の重み（または係数）の行列（W1,1, W2,1）（W1,2, W2,2）（W1,3, W2,3）それぞれは、K×Lの要素を有し、各要素は重みwijである。これによれば、出力チャネルc_outの出力画像Yc_outの各要素yc_out,i,jは、以下の式で畳み込み演算される。
【００８３】
【数１４】
2020177554.tif 000016
図１３の層L0に属するある機能を有する複数のパラメータ（パラメータグループ）は、例えば、フィルタFLT1の重み行列W1,1, W2,1の各要素、フィルタFLT2の重み行列W1,2, W2,2の各要素、フィルタFLT3の重み行列W1,3, W2,3の各要素である。つまり、出力画像Y1, Y2, Y3の畳み込み演算に使用されるフィルタの複数の要素（重み）が、ある機能を有する複数のパラメータ（パラメータグループ）に対応する。
【００８４】
［パラメータの罰則項の罰則係数τ］
図１４は、図１３の３つのフィルタFLT1,FLT2,FLT3それぞれの１対の重み行列（W1,1, W2,1）（W1,2, W2,2）（W1,3, W2,3）の各要素wi,j（パラメータ）の罰則係数τiの第１の例を示す図である。図１４では、フィルタそれぞれの１対の重み行列それぞれは、３×３の要素（重み、パラメータ）を有する。そして、前述の数４によれば、罰則項の罰則係数τiは、出力層の出力値と正解値との差分の二乗和である誤差εの桁（logε）を各パラメータwiで偏微分して二乗した値の期待値Eである。つまり、罰則係数τiは、各パラメータwi毎に異なる大きさを有する。
【００８５】
図１４には、各パラメータの罰則項の罰則係数τiの大きさ、大、中、小、をL, M, Sで示している。これによれば、ある機能を有する複数のパラメータに対応する３つのフィルタFLT1,FLT2,FLT3それぞれの複数のパラメータの罰則係数τiは、大きさがバラバラである。
【００８６】
図１５は、図１３の３つのフィルタFLT1,FLT2,FLT3それぞれの１対の重み行列（W1,1, W2,1）（W1,2, W2,2）（W1,3, W2,3）の各要素wi,j（重み、パラメータ）の罰則の罰則係数τiの第２の例を示す図である。図１５では、図１４の３つのフィルタFLT1,FLT2,FLT3それぞれの複数のパラメータの罰則の罰則係数τiが代表値τrepに置き換えられている。フィルタFLT1の代表値τrepは最も大きいL、フィルタFLT2の代表値τrepは最も小さいS、フィルタFLT3の代表値τrepは中間値のMである。
【００８７】
このように、ある機能を有する複数パラメータ（パラメータグループ）の罰則の罰則係数τを、それぞれの複数パラメータの代表値、例えば罰則係数τの平均値、最大値、中央値等、に置き換えることで、問題２の学習工程で、問題１，２の両方の問題を解くことができるパラメータに収束することができる。
【００８８】
［実験結果］
図１６は、問題２の学習の実験結果の一例を示す図である。問題２の学習は、問題１の学習データで問題１を解くことができるようニューラルネットワークのパラメータを最適化した後、問題２の学習データで問題２を解くことができるようにパラメータを最適化する処理である。３つの実験１〜３の横軸は学習データの数、例えばミニバッチ法のミニバッチの数（EPOC数）、であり、縦軸は正解率である。EPOC数１０までが問題１の学習であり、EPOC数１０〜２０が問題２の学習である。
【００８９】
図１６の実験１は、問題２の学習における勾配法の数２の目的関数Lを誤差εとした場合の、問題２の学習での問題１（Task1）と問題２（Task2）の正解率の変化を示す。問題１の学習での正解率Task1は殆ど１に近づいたが、問題２の学習を行った結果、問題１の正解率Task1は大きく低下し、問題１の忘却現象が生じている。
【００９０】
図１６の実験２は、問題２の学習における勾配法の目的関数Lを、誤差εに、図１４のように罰則係数τがばらばらの罰則項を加算した場合の、問題２の学習での問題１（Task1）と問題２（Task2）の正解率の変化を示す。この場合、問題１の正解率Task1の低下は抑制されたが、問題２の学習では、問題１の正解率Task1は低下した位置で収束し、逆に問題２の正解率Task2はそれより高い位置で収束した。つまり、問題１と問題２の正解値が同等になるよう収束できていない。
【００９１】
これに対して、図１６の実験３では、本実施の形態のように、問題２の学習における勾配法の目的関数Lを、誤差εにパラメータの罰則項を加算し、ある機能を有する複数のパラメータの罰則項の罰則係数τを代表値に置換した。この実験３では、問題２の学習での問題１の正解率Task1と問題２の正解率Task2は、同じ０．９５付近で収束した。実験３の結果が示すとおり、ある機能を有する複数のパラメータの罰則項の罰則係数τを代表値に置換することで、問題１忘却現象を抑制し、さらに問題１，２の両問題のいずれも高い正解率で解くことができることが判明した。
【００９２】
上記の実施の形態によれば、問題１の学習済みパラメータの状態から問題１とは異なる問題の問題２の学習工程において、問題１の忘却現象を抑制し、問題１と問題２の両方を比較的高い正解率で解くことができるパラメータへ収束することができる。
【符号の説明】
【００９３】
NN：ニューラルネットワーク
N：ニューロン、ノード
ｗi：パラメータ、重み
FLT：フィルタ
L：NNのパラメータ最適化のための目的関数
ε：誤差関数、誤差
τi：パラメータｗiの誤差係数
λ：第２の誤差係数
【図１】
2020177554.tif 000017
【図２】
2020177554.tif 000018
【図３】
2020177554.tif 000019
【図４】
2020177554.tif 000020
【図５】
2020177554.tif 000021
【図６】
2020177554.tif 000022
【図７】
2020177554.tif 000023
【図８】
2020177554.tif 000024
【図９】
2020177554.tif 000025
【図１０】
2020177554.tif 000026
【図１１】
2020177554.tif 000027
【図１２】
2020177554.tif 000028
【図１３】
2020177554.tif 000029
【図１４】
2020177554.tif 000030
【図１５】
2020177554.tif 000031
【図１６】
2020177554.tif 000032