(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-01
(45)【発行日】2024-10-09
(54)【発明の名称】学習装置、学習方法及びプログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20241002BHJP
G06N 3/084 20230101ALI20241002BHJP
【FI】
G06N3/08
G06N3/084
(21)【出願番号】P 2023520726
(86)(22)【出願日】2021-05-14
(86)【国際出願番号】 JP2021018449
(87)【国際公開番号】W WO2022239240
(87)【国際公開日】2022-11-17
【審査請求日】2023-10-06
【新規性喪失の例外の表示】特許法第30条第2項適用 1.WACV2021 講演予稿集 (1) ウェブサイトのアドレス https://openaccess.thecvf.com/content/WACV2021/html/Ikami_Constrained_Weight_Optimization_for_Learning_Without_Activation_Normalization_WACV_2021_paper.html https://openaccess.thecvf.com/content/WACV2021/papers/Ikami_Constrained_Weight_Optimization_for_Learning_Without_Activation_Normalization_WACV_2021_paper.pdf (2) 公開日 2021年1月5日 2.WACV2021 発表動画 (1) ウェブサイトのアドレス https://www.youtube.com/watch?v=Sq04l2CqDTc (2) 公開日 2021年2月4日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】伊神 大貴
(72)【発明者】
【氏名】入江 豪
(72)【発明者】
【氏名】柴田 剛志
【審査官】新井 則和
(56)【参考文献】
【文献】国際公開第2020/144820(WO,A1)
【文献】得居 誠也,最適化から見たディープラーニングの考え方,オペレーションズ・リサーチ 経営の科学 第60巻 第4号,2015年04月01日,pp.191-197,CSNG201500251001
【文献】Samet Oymak,Learning Compact Neural Networks with Regularization,[online],2018年02月05日,[検索日 2024.06.17], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1802.01223v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 3/084
(57)【特許請求の範囲】
【請求項1】
入力データをニューラルネットワークに入力して得られた出力データと、前記入力データに対応した正解データとの誤差を算出する損失関数の勾配に基づいて、前記ニューラルネットワークの重みを更新する学習部を備え、
前記学習部は、前記ニューラルネットワークの各層の各チャネルの前記重みそれぞれの更新に用いる勾配の平均値が0となるように前記勾配を算出し、算出された前記勾配を用いて各層の各チャネルの前記重みを更新する第一更新部と、
前記第一更新部により更新された前記重みのノルムが所定の値となるように前記重みを更新する第二更新部とを備える、
学習装置。
【請求項2】
前記第二更新部は、前記第一更新部により更新された前記重みを、当該重みのノルムにより除算して前記重みを更新する、
請求項1に記載の学習装置。
【請求項3】
前記第二更新部は、前記第一更新部により更新された前記重みを、当該重みのノルムにより除算し、さらに、定数を乗算することにより前記重みを更新する、
請求項1に記載の学習装置。
【請求項4】
前記第一更新部は、前記入力データを前記ニューラルネットワークに入力することにより得られる各層及び各要素の出力に線形変換を施す処理と、前記線形変換のパラメータを前記損失関数の勾配に基づいて更新する処理とを行う、
請求項1に記載の学習装置。
【請求項5】
前記第一更新部は、線形変換が施された前記ニューラルネットワークの各層及び各要素の出力に確率乱数を乗算する、
請求項4に記載の学習装置。
【請求項6】
コンピュータが、
入力データをニューラルネットワークに入力して得られた出力データと、前記入力データに対応した正解データとの誤差を算出する損失関数の勾配に基づいて、前記ニューラルネットワークの重みを更新する学習ステップを有し、
前記学習ステップは、
前記ニューラルネットワークの各層の各チャネルの前記重みそれぞれの更新に用いる勾配の平均値が0となるように前記勾配を算出し、算出された前記勾配を用いて各層の各チャネルの前記重みを更新する第一更新ステップと、
前記第一更新ステップにおいて更新された前記重みのノルムが所定の値となるように前記重みを更新する第二更新ステップとを有する、
学習方法。
【請求項7】
コンピュータを、
請求項1から請求項5のいずれか一項に記載の学習装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法及びプログラムに関する。
【背景技術】
【0002】
AI(人工知能)技術の進展が目覚ましい。画像認識技術は、いまや数千クラスの物体を識別可能になった。音声認識技術は、自然雑音環境下でも安定した認識が可能な技術が多く実用化され、スマートフォンのような小型端末からでも気軽に利用できるようになっている。機械翻訳も誰もが利用可能になり、国際コミュニケーションの障壁が飛躍的に低下してきている。
【0003】
これら近年のAIイノベーションを支えているのは、深層学習と呼ばれる深いニューラルネットワーク(深層ニューラルネットワーク)を学習する技術である。その台頭以来、画像・音・言語といった各種メディアの認識技術は、人間の能力を超えるほどに極めて高い精度レベルを達成するに至っている。
【0004】
これら成功と普及の背後にある技術的要因は多岐にわたる。その要因の一つには、深層学習技術そのもの、すなわち、従来は困難であった深層ニューラルネットワークを、効果的に学習可能にする種々の学習技術が発明、あるいは再発明されてきたことが上げられよう。深層ニューラルネットワークの学習は、一般的には何らかの損失関数Lを最小化するようにネットワークパラメータ(重み)を最適化することによって行われる。しかし、単純にこれを実行しようとすると、学習が安定しない、計算に時間がかかる、精度が低いなど、様々な問題に直面する。これに対し、例えば、効率的な学習を可能とするために、並列更新を可能にするmini-batch stochastic gradient decent(SGD)や、適切な更新ステップサイズを自動的に調整するAdamといった、種々の勾配法ベースの最適化アルゴリズムが発明されてきた。また、ニューラルネットワークの学習は初期値への依存性が非常に高い。そのため、初期値の設定がしばしば勾配消失などの学習の失敗を引き起こす原因となっていた。この問題に対して、ネットワーク各層の出力分布に偏りを無くすような初期値設定手法が整備されたために、安定した学習が可能になった。
【0005】
さらに、これらと並び重要な基本的技術要素の一つとなっているのが正規化である。正規化とは、変数の取りうる値が特定の範囲に収まるように、そのスケールや平均を変換して扱いやすくする操作である。正規化は、学習を安定化したり、収束を早めたり、精度を改善したりする効果がある。
【0006】
ニューラルネットワークの学習における正規化の代表的な手法は、バッチ正規化(batch normalization:BN)である(例えば、非特許文献1参照)。BNでは、ネットワークの各層において、バッチ毎に各チャネルを平均0かつ分散1となるように標準正規化する。BNは学習安定化の効果が非常に高く、ネットワークの精度を増加させることができる。その一方で、BNには、いくつかの大きな弱点が存在する。まず、BNは入力を正規化するため、毎入力ごとに正規化処理を実行する必要がある。よって、計算コストが増加する。また、BNは学習時にはバッチ内の平均・分散を用いて正規化する。そのため、バッチサイズ(バッチ内のサンプル数)が小さい場合には、平均・分散が信頼性のある値にならず、性能が劣化することが知られている。また、学習時とテスト時でデータの統計量が大きく変わるような場合にも、やはり同様に精度が劣化するという問題がある。
【0007】
以上のようなBNの問題点を鑑み、ネットワークの入力を直接正規化するのを避け、ネットワークの重みを正規化する重み正規化によって、BNの弱点を回避する試みがなされている。重み正規化が単体で用いられる場合には、一度重みを正規化しておけば、以降どのような入力がなされた場合であっても、そのたびに正規化の必要がないため、計算量の面でメリットがある。また、バッチサイズにも依存しないため、統計量の信頼性やずれによる影響も受けにくい。
【0008】
これまで、いくつかの重み正規化手法が開示されてきている。例えば、式(1)に示すように、正規化前の各重み(ベクトル)vを、長さgと方向v/||v||に分解して個別に更新し、正規化後の重みwを得る正規化法がある(例えば、非特許文献2参照)。
【0009】
【0010】
また、式(2)に示すように、正規化前の重みvのk番目の要素vkを、重みwの平均μと標準偏差σによって標準正規化し、対応する正規化後の重みの要素wkを得る方法がある(例えば、非特許文献3参照)。
【0011】
【先行技術文献】
【非特許文献】
【0012】
【文献】Sergey Ioffe and Christian Szegedy,"Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift",In Proceedings of the 32nd International Conference on Machine Learning,Volume 37,p.448-456,2015.
【文献】Tim Salimans and Diederik P. Kingmam,"Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks",In Proceedings of the 30th International Conference on Neural Information Processing Systems (NIPS),2016.
【文献】Siyuan Qiao,Huiyu Wang,Chenxi Liu,Wei Shen,Alan Yuille,"Weight standardization",arXiv preprint,arXiv:1903.10520v1,2019.
【発明の概要】
【発明が解決しようとする課題】
【0013】
大局的にみれば、既存の発明はいずれも、正規化前の重みに対して、平均を差し引いたり、ノルムや標準偏差で除算することによって別のパラメータに変換(reparametrization)し、正規化後の重みを得ている。しかしながら、この方式には、学習を崩壊させる「勾配爆発」と呼ばれる問題が起こる可能性があるという根本的な弱点が存在する。このようなreparametrizationに基づく重み正規化法を採用し、正規化前の重みvを勾配ベースの最適化により求めようとした場合、その損失関数Lの重みvについての勾配∇vLは式(3)となる。
【0014】
【0015】
ここで、∇wLは、Lの正規化後の重みwについての勾配であり、〈〉は内積演算であり、σvは正規化前の重みvの標準偏差であり、mは正規化後の重みwの次元を表す。ここで問題となるのは、勾配に標準偏差σvによる除算が含まれる点である。σvは正規化前の重みvの標準偏差であるから、任意の実数値を取りうる。もし仮に、学習の過程でσvが非常に小さい値になったとすると、この勾配は無限大まで発散しうる。すなわち、学習の過程で勾配が発散し、学習自体が失敗する勾配爆発が生じうる。
【0016】
結果として、非特許文献2や非特許文献3に記載の既存の重み正規化法は、それら単体で利用することはできないため、必ずBNなどの活性値正規化法と組み合わせて用いられている。しかしながら、BNと組み合わせることによって、本来重み正規化法を単体で用いることができる場合に享受できるメリット、すなわち、BNの弱点を回避する効果が失われてしまう。そのため、本来のメリットを享受できるような重み正規化法が求められている。
【0017】
上記事情に鑑み、本発明は、計算コストの増加及び学習精度の低下を抑えながらニューラルネットワークを学習することができる学習装置、学習方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0018】
本発明の一態様の学習装置は、入力データをニューラルネットワークに入力して得られた出力データと、前記入力データに対応した正解データとの誤差を算出する損失関数の勾配に基づいて、前記ニューラルネットワークの重みを更新する学習部を備え、前記学習部は、前記ニューラルネットワークの各層の各チャネルの前記重みそれぞれの更新に用いる勾配の平均値が0となるように前記勾配を算出し、算出された前記勾配を用いて各層の各チャネルの前記重みを更新する第一更新部と、前記第一更新部により更新された前記重みのノルムが所定の値となるように前記重みを更新する第二更新部とを備える。
【0019】
本発明の一態様の学習方法は、入力データをニューラルネットワークに入力して得られた出力データと、前記入力データに対応した正解データとの誤差を算出する損失関数の勾配に基づいて、前記ニューラルネットワークの重みを更新する学習ステップを有し、前記学習ステップは、前記ニューラルネットワークの各層の各チャネルの前記重みそれぞれの更新に用いる勾配の平均値が0となるように前記勾配を算出し、算出された前記勾配を用いて各層の各チャネルの前記重みを更新する第一更新ステップと、前記第一更新ステップにおいて更新された前記重みのノルムが所定の値となるように前記重みを更新する第二更新ステップとを有する。
【0020】
本発明の一態様のプログラムは、コンピュータを、上述の学習装置として機能させる。
【発明の効果】
【0021】
本発明により、計算コストの増加及び学習精度の低下を抑えながらニューラルネットワークを学習することが可能となる。
【図面の簡単な説明】
【0022】
【
図1】本発明の第1の実施形態による学習装置の構成を示すブロック図である。
【
図2】同実施形態による学習装置のハードウェア構成を示す図である。
【
図3】同実施形態による学習装置が実行する学習処理を示すフロー図である。
【
図4】同実施形態による学習装置の重み算出を説明するための図である。
【
図5】同実施形態による学習装置を用いた評価実験の結果を示す図である。
【
図6】同実施形態による学習装置を用いた評価実験の結果を示す図である。
【
図7】第2の実施形態による学習装置を用いた評価実験の結果を示す図である。
【発明を実施するための形態】
【0023】
以下、図面を参照しながら本発明の実施形態を詳細に説明する。
【0024】
<第1の実施形態>
第1の実施形態は、画像認識に適用した場合の実施形態の一例である。
【0025】
<<装置構成>>
図1は、本実施形態による学習装置100の構成を示すブロック図である。学習装置100は、入力された学習用データに基づいて深層ニューラルネットワークを学習する。学習装置100は、入力部120と、演算部140とを備える。演算部140は、記憶部160と、学習部180とを備える。なお、記憶部160は、学習装置100の内部にあっても外部にあっても構わない。本実施形態においては、記憶部160は、学習装置100の内部に備えられる。
【0026】
入力部120は、学習用データを受け付ける。学習用データは、入力データと正解データとを対応付けた情報である。
【0027】
記憶部160は、深層ニューラルネットワークのネットワークパラメータである重みを記憶する。学習部180は、学習用データを用いて、深層ニューラルネットワークの学習処理を実行する。学習部180は、学習処理の結果得られた深層ニューラルネットワークの重みを記憶部160に出力する。学習部180は、第一更新部181と、第二更新部182とを備える。
【0028】
第一更新部181は、入力データを深層ニューラルネットワークに入力して出力データを得る。第一更新部181は、出力データと、入力データに対応した正解データとの誤差を算出する損失関数の勾配を算出する。このとき、第一更新部181は、深層ニューラルネットワークの各層の各要素それぞれの重みの更新に用いられる勾配の平均値が0となるように勾配を算出する。第一更新部181は、算出された勾配を用いて重みを更新する。第二更新部182は、第一更新部181により更新された重みのノルムが所定値となるように重みを更新する。
【0029】
図2は、学習装置100のハードウェア構成を示す図である。学習装置100は、一例として、
図2に示すコンピュータ200によって実現される。コンピュータ200は、CPU210と、メモリ220と、記憶部230と、入力部240と、表示部250とを含む。CPU210、メモリ220、記憶部230、入力部240及び表示部250は、バス260を介して互いに接続されている。
【0030】
記憶部230は、例えば、HDD(Hard disk drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現される。記憶部230には、コンピュータ200を学習装置100として機能させるためのプログラム232が記憶されている。CPU210は、プログラム232を記憶部230から読み出してメモリ220に展開し、プログラム232を実行する。なお、プログラム232をコンピュータ可読媒体に格納して提供してもよい。入力部240は、キーボードやマウスを含む。表示部250は、モニタを含む。
【0031】
<<処理概要>>
本実施形態では、学習装置100が画像認識タスクを対象として、深層ニューラルネットワークの一種である畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)を学習する場合について説明する。学習装置100の学習部180は、学習用のデータ群を入力として受け付けると、CNNを学習して出力する。
【0032】
<<<CNNの構成>>>
CNNは、画像を入力として受け付けると、その画像の認識結果を出力する。CNNの構成は、このような入出力関係を実現できるものであれば任意の構成を採ることができる。例えば、畳み込み層Conv、平均プーリング層AvgPool、大域的平均プーリング層GAP(Global Average Pooling)、全結合層Linearを、次のように接続した9層のCNNを用いることができる。
【0033】
Conv(3,64)-Conv(3,64)-Conv(3,64)-AvgPool(2)-Conv(3,128)-Conv(3,128)-Conv(3,128)-AvgPool(2)-Conv(3,256)-Conv(3,256)-Conv(3,256)-GAP-Linear
【0034】
Conv(k,c)は、cチャネル、k×kの大きさの畳み込みカーネルを持つ畳み込み層を表す。AvgPool(s)は、ストライドsの平均プーリング層を表す。
【0035】
学習装置100は、CNNとして、参考文献1に記載のResNetや参考文献2に記載のWideResNetなどのCNNを用いても構わない。
【0036】
[参考文献1]Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun,"Deep Residual Learning for Image Recognition",in Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016.
【0037】
[参考文献2]Sergey Zagoruyko,Nikos Komodakis,"Wide Residual Networks",In Proceedings of British Machine Vision Conference,2016.
【0038】
<<<学習処理>>>
次に、学習装置100がCNNを学習する学習処理について説明する。学習処理は、CNNのパラメータである重みを、学習用データに基づいて適切に決定するための処理である。
【0039】
学習装置100が学習処理を実行するためには、予め学習用データDを準備する必要がある。学習用データは、画像xと当該画像のクラスを表すクラスラベルyの組(x,y)の集合D={(x,y)}によって構成される。クラスラベルyは、該当するクラスのインデクスに対応する要素のみ1を取り、その他の要素は0を取るone hot vectorである。この条件を満たす限り、学習用データを構成するための手段は本実施形態の要点とは無関係であり、どのような手段で準備しても構わない。学習用データを、人手によって準備しても構わないし、自動的に準備しても構わない。
【0040】
図3は、本実施形態における学習装置100が実行する学習処理の概要を示すフロー図である。学習装置100は、上記のような学習用データDを用いて、次の工程により学習処理を実行する。
【0041】
まず、ステップS101において、学習装置100の学習部180は、CNNのすべての重みW={w}を初期化する。便宜上、CNNの各層における各チャネルの重みをwと表す。重みwは、d次元ベクトルである。初期化の方法は様々存在するが、好ましくは、Xavierの初期化(Glorotの初期化)、Heの初期化など、重みの平均値が0となるような公知の方法が用いられる。
【0042】
続いてステップS102において、学習部180の第一更新部181は、学習用データDから画像xとクラスラベルyとの組を取得する。第一更新部181は、画像xをCNNに入力し、CNNの出力zを求める。第一更新部181は、この出力zと、画像xに対応するクラスラベルyとに基づいて、損失関数LのCNN各層及び各チャネルの重みwに対する勾配∇wLを求める。
【0043】
損失関数Lは、重みwに対していたるところで微分可能なものであればどのようなものを用いても構わない。本実施形態においては、損失関数Lとして、Softmax Cross Entropyを用いる。Softmax Cross Entropyは、画像認識において用いられることが多い。損失関数Lは、式(4)のように示される。
【0044】
【0045】
yikは、i番目の画像xに対応するクラスラベルyのk番目の要素である。zikは、i番目の画像xに対応するCNNの出力zのk番目の要素である。nは、学習用データの総数、すなわち、Dの集合の大きさである。
【0046】
通常、CNN(あるいは深層ニューラルネットワーク全般)の学習には、学習用データDのうち一定数のサンプルごとに損失関数の値を計算し、その勾配を求めるミニバッチ学習が導入されることが多い。本ステップにおいても、第一更新部181は、ミニバッチ学習を実行してもよい。
【0047】
続いてステップS103において、第一更新部181は、CNNの各層及び各チャネルの重みwを、以下の式(5)に従い更新する。
【0048】
【0049】
ここで、太字のベクトル1は全要素が1のベクトルであり、αは学習率である。αには、任意の正の実数を与えてよい。αは、通常は、学習用データやネットワークの構造等、諸条件に合わせて調整される。また、第一更新部181は、αを学習の進行とともに変化させても構わない。例えば、第一更新部181は、初期値をα=0.2とし、参考文献3のcosine annealingによりαの値を変化させる。これにより、高い性能を達成できる。∇wLは、損失関数Lの重みwについての勾配である。dは、バッチサイズである。すなわち、dは、1イテレーションの中で同時に学習処理されるサンプル数である。dは、任意の正の整数である。
【0050】
[参考文献3]Ilya Loshchilov,Frank Hutter,"SGDR: Stochastic Gradient Descent with Warm Restarts",In Proceedings of International Conference on Learning Representations,2017.
【0051】
続いてステップS104において、第二更新部182は、CNNの各層及び各チャネルの重みwを、式(6)に従い更新する。
【0052】
【0053】
ここで、cは定数である。第二更新部182は、定数cに任意の正の実数を与えてよいが、好ましくはc=√2とする。この時、各層及び各チャネルの重みwが相互に独立であり、入力xが独立同分布サンプルとして与えられ、さらに、重みwと画像xとが相互に独立であるような場合、全ての層の重みの分散を1にすることができる。
【0054】
学習部180は、以上のステップS102~ステップS104の処理を、所定の回数繰り返す。学習部180は、所定の回数の繰り返が終了した場合、ステップS105において、終了条件を満たしたと判定する。ステップS106において、第二更新部182は、最終的に学習した重みW={w}を記憶部160に出力し、
図3の学習処理を終了する。記憶部160は、第二更新部182から出力された重みWを記憶する。
【0055】
数学的には、上記の学習処理は、各層及び各チャネルの重みwの平均が0、かつ、ノルムがcとなるような制約の下で、損失関数Lを最小化する手続きである。この手続きでは、重みを正規化するのではなく、最初から正規化された重みを求めることに相当する。具体的には、以下の式(7)の制約付き問題を解いている。
【0056】
【0057】
lはCNNの層のインデクス、iは層内のチャネルのインデクスである。W(l)はl層目の重み、wi
(l)はl層目のi番目のチャネルの重みである。c(l)は定数である。c(l)は、0より大きい任意の実数であるが、好ましくは2である。特定の条件を満たした場合に、分散を1とすることができる。式(7)における||wi
(l)||2
2=c(l)は、重みの分散を一定にする制約である。式(7)における1(T)wi
(l)=0は、重みの平均を0にする制約である。
【0058】
式(5)における勾配∇wLは従来技術と同様に求められる。式(5)の右辺において(1/d)(1T∇wL)1の項(以下、項Aと記載)がなければ従来の勾配と同様であるが、項Aがあることによって、勾配の平均が0になるように重みが更新される。そして、式(6)により、重みのノルムがcになるように正規化される。
【0059】
図4は、本実施形態における学習装置100による重みの算出を説明するための図である。w
(t)は、t回目の学習処理で算出された重みwである。w
(t)のノルムはcである。すなわち、w
(t)は、c=||w||
2
2で表される球Q上の点である。w
(t)から-α∇
wLを減算した値がw’である。つまり、w
(t)からw’への方向が、本来の勾配∇
wLの方向である。これは、式(5)の右辺に項Aがない場合の値に相当する。項Aを含んだ式(5)により、w
(t)における接平面Pにw’からおろした垂線の足である点w
-が算出される。点w
-は、式(5)の左辺の更新後の重みwに相当する。そして、式(6)により、w
-から球面Qにおろした垂線が球面Qと交わる点w
(t+1)が求められる。点w
(t+1)は、更新後の重wみである。w
(t+1)は球面Q上の点であるため、w
(t+1)のノルムはcである。
【0060】
上述のように、各層及び各チャネルの重みwの平均が0、かつ、ノルムがcとなるような制約の下で、損失関数Lを最小化している。然るに、最終的な重みは、平均が0、分散が一定に正規化されたものとなっており、重み正規化と同様の効果を得ることができる。非特許文献2、非特許文献3に記載の従来の重み正規化法と異なり、本実施形態では、勾配にσvによる除算が発生しない。よって、勾配爆発を起こさず安定した学習が可能である。この利点により、本実施形態は、BN等と組み合わせることなく学習可能であり、また、BNとそん色のないほど高い精度を実現可能である。
【0061】
<<<線形変換処理>>>
重み正規化は、全ての層における重みの平均値及び分散を画一化するものである。ゆえに、CNN全体としての表現能力を低下させる可能性がある。この問題を回避するため、各層、各チャネルごとにスケールパラメータγとバイアスパラメータβを導入し、以下の式(8)に示すように、各層、各チャネルの出力pに線形変換を与えた新たな出力qを出力するように変更してもよい。すなわち、第一更新部181は、入力データxを深層ニューラルネットワークに入力した際に算出される各層、各チャネルの出力に、式(8)の演算を行って次の層に入力する。学習部180は、重みwに加えて、これらのパラメータγ、βを、重みwと同様に損失関数の勾配に基づいて学習してもよい。
【0062】
【0063】
これにより、各層、各チャネルの出力qは、元の出力pよりもダイナミックレンジの調整が容易になり、性能を高めることが可能になる。
【0064】
<<<乱数乗算処理>>>
一般に、深層ニューラルネットワークの学習時に、適当なランダム性を導入することによって、最終的な性能を改善できる場合があることが知られている。代表的な例としては、ネットワークの出力や結合を一部ランダムに落とすdropoutや、学習用データにランダムな変換を与えるデータ拡張がある。さらに、より最近は、参考文献4に記載のNoisyStudentなどが挙げられる。また、活性値正規化法であるBNにおいても、ミニバッチ統計量の推定バイアスがもたらすランダム性が、最終的な性能を改善する効果を与えていることを示唆する分析結果が報告されている(例えば、参考文献5参照)。
【0065】
[参考文献4] Jiacheng Sun,Xiangyong Cao,Hanwen Liang,Weiran Huang,Zewei Chen,Zhenguo Li,"New Interpretations of Normalization Methods in Deep Learning",In Proceedings of The Thirty-Fourth AAAI Conference on Artificial Intelligence (AAAI-20),2020.
【0066】
[参考文献5] Cecilia Summers,Michael J. Dinneen,"Four things everyone should know to improve batch normalization",In Proceedings of the International Conference on Learning Representations,2020.
【0067】
これらの知見に着想を得て、本実施形態においても、学習時に、各層、各チャネルの出力にランダム性を導入してもよい。具体的には、学習時においてのみ、式(8)の代わりに、式(9)によって各層、各チャネルの出力が定められる。式(9)により、線形変換が施されたニューラルネットワークの各層及び各要素の出力に、確率乱数が乗算される。第一更新部181は、入力データxを深層ニューラルネットワークに入力した際に算出される各層、各チャネルの出力に式(9)の演算を行い、次の層に入力する。
【0068】
【0069】
ここで、εは、平均0、分散σl
2を持つ正規乱数である。分散σl
2の値は、正の実数を取る限り任意の値を定めることができる。例えば、σl
2=0.4などと定めてもよい。一方、ResNetやWideResNetなど、層数の多いCNNを学習する場合には、層ごとにその値を変化させる方が、より大きな性能改善効果を得られる場合がある。CNNの全層数をLとしたとき、本実施形態においては、次の式(10)ように分散σlを定める。
【0070】
【0071】
ここで、sは正の実数を持つ定数であり、例えばs=0.4などとする。
【0072】
以上、本実施形態の学習方法の処理の詳細を説明した。
【0073】
<<評価実験>>
以上説明した本実施形態に関する性能評価実験結果を示す。本実験では、評価用データとして、画像認識性能評価に広く用いられているCIFAR-10、CIFAR-100と呼ばれるデータを用いる。学習するCNNとして、先に示した9層のCNN、ResNet、及び、WideResNetを用いる。CNNを学習する際にはデータ拡張を用いることが多いが、本実験では、ごく一般的な水平反転及びランダムクロップを利用する標準的なデータ拡張(Standard)と、最適化したデータ拡張であるFast AutoAugment (FastAA)を用いる。
【0074】
以上の条件において、本実施形態による重み正規化の性能を、既存の活性値正規化法/重み正規化法である、BN(非特許文献1)、GN(参考文献6)、WS+BN(非特許文献2)、WS+GN(非特許文献2)の性能と比較する。WS+BNは、非特許文献2に記載の重み正規化法であるWSをBNと併用したものを表し、WS+GNは同じくWSをGNと併用したものを表している。なお、WSは単体では学習に失敗し、十分な性能を得ることができないため、これらの活性値正規化法と併用した場合の結果を示している。
【0075】
[参考文献6]Yuxin Wu,Kaiming He,"Group normalization",In Proceedings of European Conference on Computer Vision,2018.
【0076】
図5及び
図6は、学習装置100を用いた評価実験の結果を示す図である。
図5及び
図6に示す表中の数値は、誤差率である。誤差率は、識別を誤った割合である。誤差率が、小さいほど性能がよいことを示す。また、同条件下のうち、最もよい性能を示した手法の数値に下線が付されている。
図5及び
図6に示す結果から、次の事実が観測できる。
【0077】
(1)BNとWS+BNとを比較、あるいは、GNとWS+GNとを比較すると、その性能差はほとんどなく、条件によっては劣化する場合がある。すなわち、BN、GNを単体で利用しても十分な性能を得ることが可能であり、WSを組み合わせるメリットは限定的であると言える。
(2)本実施形態は、既存手法の中では最も性能の高いBNとほぼそん色のない性能を発揮しており、特にCIFAR-100においてはほとんどの場合にこれを上回る性能を達成している。
【0078】
以上のように、本実施形態は、重み正規化法でありながら、それ単体で活性値正規化法であるBNと同程度の性能を達成できることが確認できる。すなわち、本実施形態によれば、重み正規化法本来のメリットを享受することができる高精度な学習を実現可能である。
【0079】
<第2の実施形態>
第2の実施形態は、点群物体認識に適用した場合の実施形態の一例である。本実施形態では、点群計測された物体を識別する点群物体認識タスクを対象として、点群を対象とした深層ニューラルネットワークの一種であるグラフ畳み込みニューラルネットワーク(Graph Convolutional Neural Network:GCNN)を学習する場合について説明する。本実施形態を、画像認識に適用した場合の実施形態との差分を中心に説明する。
【0080】
<<装置構成>>
本実施形態の学習装置として、
図1に示す第1の実施形態の学習装置100を用いることができる。学習装置100は、学習用のデータ群を入力として受け付けると、GCNNを学習し、学習したGCNNを出力する。
【0081】
<<処理概要>>
<<<GCNNの構成>>>
GCNNは、点群データを入力として受け付けると、その点群データの認識結果を出力する。GCNNの構成は、このような入出力関係を実現できるものであれば任意の構成を採ることができる。例えば、本実施形態においては、参考文献7に記載のGCNNを用いる。
【0082】
[参考文献7] Yue Wang,Yongbin Sun,Ziwei Liu,Sanjay E. Sarma,Michael M. Bronstein,Justin M. Solomon,"Dynamic Graph CNN for Learning on Point Clouds",ACM Transactions on Graphics (TOG),38(5):1-12,2019.
【0083】
<<<学習処理>>>
学習処理については、
図3に示す第1の実施形態の画像認識の場合における処理と同一である。入力データ形式には、第1の実施形態が画像、本実施形態は点群であるとの違いがある。しかし、本実施形態では、CNNではなくGCNNを用いるという利用する深層ニューラルネットワークの変更により、この違いが吸収される。そのため、以降の処理は、線形変換処理、乱数乗算処理も含め、全て同様の処理を適用することが可能である。
【0084】
<<評価実験>>
本実施形態の一例に関する性能評価実験結果を示す。本実験では、評価用データとして、点群物体認識性能評価に広く用いられているModelNet40と呼ばれるデータを用いる。先の画像認識性能に対する評価実験同様、本実施形態による重み正規化の性能を、BN、GN、WS+BN、WS+GNの性能と比較する。
【0085】
図7は、本実施形態の学習装置100を用いた性能評価実験の結果を示す図である。
図6に示す表中の数値は認識正解率であり、大きいほど性能がよいことを示す。画像認識の場合の結果とは異なり、GNを除いてどの手法も大きな性能差は見られない。しかしながら、既存手法はいずれも活性値正規化法を用いていることを鑑みると認識に要する計算コストは本実施形態よりも大きく、その点において本実施形態に利点がある。
【0086】
以上より、本実施形態の一例においても、重み正規化法でありながら、単体で活性値正規化法であるBNと同程度の性能を達成できることが示された。
【0087】
以上、本発明の実施形態について詳細に説明した。
【0088】
本発明の実施形態における学習方法を、汎用演算処理装置、記憶装置等を備えたコンピュータやサーバ等により構成して、各処理がプログラムによって実行されるものとしてもよい。このプログラムは記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。もちろん、その他いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現しても構わない。
【0089】
以上説明した実施形態によれば、学習装置は、学習部を備える。学習部は、入力データをニューラルネットワークに入力して得られた出力データと、入力データに対応した正解データとの誤差を算出する損失関数の勾配に基づいて、ニューラルネットワークの重みを更新する。学習部は、第一更新部と、第二更新部とを備える。第一更新部は、ニューラルネットワークの各層の各チャネルの重みそれぞれの更新に用いる勾配の平均値が0となるように勾配を算出し、算出した勾配を用いて各層の各チャネルの重みを更新する。第二更新部は、第一更新部により更新された重みのノルムが所定の値となるように重みを更新する。
【0090】
第二更新部は、第一更新部により更新された重みを、当該重みのノルムにより除算して重みを更新する。また、第二更新部は、第一更新部により更新された重みを、当該重みのノルムにより除算し、さらに、定数を乗算することにより重みを更新する。
【0091】
第一更新部は、入力データをニューラルネットワークに入力することにより得られる各層及び各要素の出力に線形変換を施す処理と、線形変換のパラメータを損失関数の勾配に基づいて更新する処理とを行ってもよい。さらに、第一更新部は、線形変換が施されたニューラルネットワークの各層及び各要素の出力に確率乱数を乗算してもよい。
【0092】
本実施形態の学習装置、学習方法、及びプログラムによれば、単体で用いた場合であっても勾配爆発を起こさず、また、然るに重み正規化本来のメリットである、計算コストが小さい、バッチ統計量に依存しないといった性質を享受できる正規化法を提供できる。結果として、高精度な学習を実現することができる。
【0093】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこれら実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0094】
100 学習装置
120 入力部
140 演算部
160 記憶部
180 学習部
181 第一更新部
182 第二更新部
200 コンピュータ
210 CPU
220 メモリ
230 記憶部
240 入力部
250 表示部