IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

特許7542199ニューラルネットワーク、演算方法及びプログラム
<>
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図1
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図2
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図3
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図4A
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図4B
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図4C
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図5
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図6
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図7
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図8
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図9A
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図9B
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図10
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図11
  • 特許-ニューラルネットワーク、演算方法及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-22
(45)【発行日】2024-08-30
(54)【発明の名称】ニューラルネットワーク、演算方法及びプログラム
(51)【国際特許分類】
   G06N 3/04 20230101AFI20240823BHJP
【FI】
G06N3/04
【請求項の数】 6
(21)【出願番号】P 2021553678
(86)(22)【出願日】2020-10-29
(86)【国際出願番号】 JP2020040591
(87)【国際公開番号】W WO2021085523
(87)【国際公開日】2021-05-06
【審査請求日】2023-08-16
(31)【優先権主張番号】62/928,760
(32)【優先日】2019-10-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】ムルガン プシュパラヤ
(72)【発明者】
【氏名】ルー ジン
(72)【発明者】
【氏名】スブラマニアン カルティック
(72)【発明者】
【氏名】リム スギリ プラナ
(72)【発明者】
【氏名】上田 功
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-105899(JP,A)
【文献】米国特許出願公開第2019/0311249(US,A1)
【文献】長瀬准平, 外1名,“スキップ接続によるプーリング層の構成および表現力に基づくそれらのモデルの解析”,2019年度人工知能学会全国大会(第33回) 人工知能学会全国大会論文集,2019年06月07日,p.1-4
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
入力情報が入力される入力層と、
前記入力情報の特徴量を抽出するための複数のブロックと、
抽出された特徴量を出力する出力層とを備え、
前記複数のブロックのそれぞれは、
1以上の第1の畳み込み層と、前記1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックと、
第2の畳み込み層を少なくとも有する接続ブロックであって、前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とを平均化する接続ブロックとを含み、
コンピュータを、
前記残差ブロックに、第1情報を入力するステップと、
前記1以上の第1の畳み込み層により抽出された前記第1情報の特徴量と、前記スキップ接続により出力された前記第1情報とを、前記接続ブロックに入力して、前記第1情報の特徴量と前記第1情報とを平均化させるステップとを、
実行するよう、機能させる
ニューラルネットワーク。
【請求項2】
前記接続ブロックは、
前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とが入力される第2の畳み込み層と、
前記第2の畳み込み層の出力が入力される第1出力層と、
前記第1出力層の出力に、予め記憶されていた重みを付与する重み付け層と、
前記重み付け層の出力が入力される第3の畳み込み層とを備える、
請求項1に記載のニューラルネットワーク。
【請求項3】
前記複数のブロックのそれぞれは、さらに、
前記接続ブロックの出力に加えて、前記スキップ接続の出力を出力し、
前記接続ブロックは、
前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とが入力される第2の畳み込み層と、
前記第2の畳み込み層の出力が入力される第1出力層と、
前記第1出力層の出力に、予め記憶されていた重みを付与する重み付け層と、
前記第1出力層及び前記重み付け層をショートカットするショートカット接続と、
前記重み付け層の出力と前記ショートカット接続の出力とが入力される第3の畳み込み層とを備える、
請求項1に記載のニューラルネットワーク。
【請求項4】
前記第1出力層は、入力された前記第2の畳み込み層の出力に対してソフトマックス関数を用いて得た値を出力する、
請求項2または3に記載のニューラルネットワーク。
【請求項5】
入力情報が入力される入力層と、前記入力情報の特徴量を抽出するための複数のブロックと、抽出された特徴量を出力する出力層を備えるニューラルネットワークにおける前記複数のブロックの演算方法であって、
前記ブロックを構成する残差ブロックであって1以上の第1の畳み込み層と、前記1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックに、第1情報を入力するステップと、
前記1以上の第1の畳み込み層により抽出された前記第1情報の特徴量と、前記スキップ接続により出力された前記第1情報とを、前記ブロックを構成する接続ブロックであって第2の畳み込み層を少なくとも有する接続ブロックに入力して、前記第1情報の特徴量と前記第1情報とを平均化させるステップとを含む、
演算方法。
【請求項6】
入力情報が入力される入力層と、前記入力情報の特徴量を抽出するための複数のブロックと、抽出された特徴量を出力する出力層を備えるニューラルネットワークにおける前記複数のブロックの演算方法を実行するためのプログラムであって、
前記ブロックを構成する残差ブロックであって1以上の第1の畳み込み層と、前記1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックに、第1情報を入力するステップと、
前記1以上の第1の畳み込み層により抽出された前記第1情報の特徴量と、前記スキップ接続により出力された前記第1情報とを、前記ブロックを構成する接続ブロックであって第2の畳み込み層を少なくとも有する接続ブロックに入力して、前記第1情報の特徴量と前記第1情報とを平均化させるステップとを、
コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ニューラルネットワーク、演算方法及びプログラムに関する。
【背景技術】
【0002】
近年、畳み込みネットワーク(CNN: Convolutional Neural Network)を用いたDL(Deep Learning)モデルは、画像分類、物体検出、物体認識など多くの視覚課題に対して優れた性能を発揮している。
【0003】
一方で、DLモデルの階層を深くすることで性能を高めることができることも知られている。しかしながら、単純に階層を深くしたDLモデルでは、勾配消失(vanishing)または勾配発散(exploding)が発生するという問題がある。
【0004】
この問題に対して、例えば残差学習(Residual Learning)を組み込んだResNet(Residual Network)というCNNモデルが提案されている(例えば非特許文献1参照)。ResNetでは、出力H(x)から入力xを引いた残差F(x)=H(x)-xを学習することで、上記の問題を解決し、152層の深さのネットワーク構造を実現している。また、非特許文献1に開示されるResNetでは、ある層への入力をバイパスし当該層をまたいだ奥の層へと入力させるスキップ接続と畳み込み層との組み合わせにより構成される残差ブロックを積層させてネットワーク構造を有している。なお、ResNetで用いられるスキップ接続は、ローカル残差スキップ接続(local residual skip connection)と称される場合もある。
【先行技術文献】
【非特許文献】
【0005】
【文献】He, K., Zhang, X., Ren, S. and Sun, J., 2016. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778).
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1に開示されるResNetのネットワーク構造を有するモデル(ネットワークモデル)は、深い層で構成され、膨大なパラメータと演算量(FLOPs)とを必要とする。また、スマートフォンもしくはタブレットなどのモバイル端末、テレビなどの家電製品、または、産業機器といったハードウェアプラットフォームは、リソースが限られており、実装可能な演算量及びモデルサイズには制限がある。つまり、非特許文献1に開示されるResNetを、モバイル端末などのリソースの限られたハードウェアプラットフォームに実装させて利用することは難しい。
【0007】
本開示は、上述の事情を鑑みてなされたもので、精度を維持しつつ、モデルサイズと演算量とをより軽減できるニューラルネットワーク、演算方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本開示の一態様に係るニューラルネットワークは、入力情報が入力される入力層と、前記入力情報の特徴量を抽出するための複数のブロックと、抽出された特徴量を出力する出力層とを備え、前記複数のブロックのそれぞれは、1以上の第1の畳み込み層と、前記1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックと、第2の畳み込み層を少なくとも有する接続ブロックであって、前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とを平均化する接続ブロックとを含む。
【0009】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0010】
本開示によれば、精度を維持しつつ、モデルサイズと演算量とをより軽減できるニューラルネットワーク等を実現できる。
【図面の簡単な説明】
【0011】
図1図1は、実施の形態に係る演算装置の構成の一例を示すブロック図である。
図2図2は、実施の形態に係る演算装置の機能をソフトウェアにより実現するコンピュータのハードウェア構成の一例を示す図である。
図3図3は、実施の形態に係るニューラルネットワークの構成を示す図である。
図4A図4Aは、図3に示すブロックのネットワーク構造を説明するための概念図である。
図4B図4Bは、図4Aに示す畳み込み層で行われる演算を概念的に示す図である。
図4C図4Cは、図4Aに示す接続ブロックの具体的構成を概念的に示す図である。
図5図5は、図4Aに示すブロックのネットワーク構造の一具体的態様を示す図である。
図6図6は、図4Aに示すブロックのネットワーク構造の別の具体的態様を示す図である。
図7図7は、ResNet10相当のネットワーク構造の実装例を概念的に示す図である。
図8図8は、実施の形態に係るニューラルネットワークの実装例を概念的に示す図である。
図9A図9Aは、ResNet34のネットワーク構造の実装例を概念的に示す図である。
図9B図9Bは、ResNet18相当のネットワーク構造の実装例を概念的に示す図である。
図10図10は、実施の形態に係る演算装置の動作概要を示すフローチャートである。
図11図11は、実施例に係るデータベースの概要を示す図である。
図12図12は、実施例に係る実験結果を示す図である。
【発明を実施するための形態】
【0012】
本開示の一形態に係るニューラルネットワークは、入力情報が入力される入力層と、前記入力情報の特徴量を抽出するための複数のブロックと、抽出された特徴量を出力する出力層とを備え、前記複数のブロックのそれぞれは、1以上の第1の畳み込み層と、前記1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックと、第2の畳み込み層を少なくとも有する接続ブロックであって、前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とを平均化する接続ブロックとを含む。
【0013】
この構成によれば、精度を維持しつつ、モデルサイズと演算量とをより軽減できるニューラルネットワークを実現できる。
【0014】
ここで、例えば、前記接続ブロックは、前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とが入力される第2の畳み込み層と、前記第2の畳み込み層の出力が入力される第1出力層と、前記第1出力層の出力に、予め記憶されていた重みを付与する重み付け層と、前記重み付け層の出力が入力される第3の畳み込み層とを備えてもよい。
【0015】
この構成により、精度を維持するために必要なブロックの数を軽減することができるので、モデルサイズと演算量とを軽減できる。
【0016】
また、例えば、前記複数のブロックのそれぞれは、さらに、前記接続ブロックの出力に加えて、前記スキップ接続の出力を出力し、前記接続ブロックは、前記1以上の第1の畳み込み層の出力と前記スキップ接続の出力とが入力される第2の畳み込み層と、前記第2の畳み込み層の出力が入力される第1出力層と、前記第1出力層の出力に、予め記憶されていた重みを付与する重み付け層と、前記第1出力層及び前記重み付け層をショートカットするショートカット接続と、前記重み付け層の出力と前記ショートカット接続の出力とが入力される第3の畳み込み層とを備えてもよい。
【0017】
この構成により、精度を維持するために必要なブロックの数を軽減することができるだけでなく、ショートカット接続により接続ブロックの出力が勾配爆発または勾配発散することを回避できるので、精度を維持しつつ、モデルサイズと演算量とをより軽減できる。
【0018】
ここで、例えば、前記第1出力層は、入力された前記第2の畳み込み層の出力に対してソフトマックス関数を用いて得た値を出力する。
【0019】
また、本開示の一形態に係る演算方法は、入力情報が入力される入力層と、前記入力情報の特徴量を抽出するための複数のブロックと、抽出された特徴量を出力する出力層を備えるニューラルネットワークにおける前記複数のブロックの演算方法であって、前記ブロックを構成する残差ブロックであって1以上の第1の畳み込み層と、前記1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックに、第1情報を入力するステップと、前記1以上の第1の畳み込み層により抽出された前記第1情報の特徴量と、前記スキップ接続により出力された前記第1情報とを、前記ブロックを構成する接続ブロックであって第2の畳み込み層を少なくとも有する接続ブロックに入力して、前記第1情報の特徴量と前記第1情報とを平均化させるステップとを含む。
【0020】
以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態等は、一例であって本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本開示の一形態に係る実現形態を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。本開示の実現形態は、現行の独立請求項に限定されるものではなく、他の独立請求項によっても表現され得る。
【0021】
(実施の形態)
以下では、図面を参照しながら、実施の形態について説明する。
【0022】
[1.演算装置1]
図1は、本実施の形態に係る演算装置1の構成の一例を示すブロック図である。
【0023】
演算装置1は、学習済のNN(Neural Networks)を用いたコンピュータ等で実現され、図1に示すように入力部2と処理部3と出力部4とで構成されている。演算装置1は、入力情報が入力されると、入力情報から抽出した特徴量を、演算結果として出力する。なお、入力情報は、例えば画像または映像など視覚課題に用いられる情報である。
【0024】
入力部2は、入力情報を取得し、取得した入力情報を、処理部3に入力する。本実施の形態では、入力部2は、取得した入力情報を、処理部3に入力する。
【0025】
処理部3は、本実施の形態に係るニューラルネットワークを用いて、入力情報から特徴量を抽出する。本実施の形態では、処理部3は、学習済のニューラルネットワーク3aを用いて、入力情報から特徴量を抽出する。学習済のニューラルネットワーク3aは、処理部3が有する記憶部(不図示)に記憶されている。なお、学習済のニューラルネットワーク3aは、クラウド上に記憶されていてもよく、インターネットなどの通信ネットワークを介して処理部3により用いられてもよい。ニューラルネットワーク3aの構成については後述する。
【0026】
出力部4は、処理部3において抽出された特徴量を、演算結果として出力する。
【0027】
[1-1.ハードウェア構成]
図2は、本実施の形態に係る演算装置1の機能をソフトウェアにより実現するコンピュータ1000のハードウェア構成の一例を示す図である。
【0028】
コンピュータ1000は、図2に示すように、入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007、送受信装置1008及びバス1009を備えるコンピュータである。入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007及び送受信装置1008は、バス1009により接続される。
【0029】
入力装置1001は入力ボタン、タッチパッド、タッチパネルディスプレイなどといったユーザインタフェースとなる装置であり、ユーザの操作を受け付ける。なお、入力装置1001は、ユーザの接触操作を受け付ける他、音声での操作、リモコン等での遠隔操作を受け付ける構成であってもよい。
【0030】
内蔵ストレージ1004は、フラッシュメモリなどである。また、内蔵ストレージ1004は、演算装置1の機能を実現するためのプログラム、及び、演算装置1の機能構成を利用したアプリケーションの少なくとも一方が、予め記憶されていてもよい。また、内蔵ストレージ1004は、学習済のニューラルネットワーク3aが記憶されるとしてもよい。
【0031】
RAM1005は、ランダムアクセスメモリ(Random Access Memory)であり、プログラム又はアプリケーションの実行に際してデータ等の記憶に利用される。
【0032】
読取装置1007は、USB(Universal Serial Bus)メモリなどの記録媒体から情報を読み取る。読取装置1007は、上記のようなプログラムやアプリケーションが記録された記録媒体からそのプログラム、ニューラルネットワーク3aやアプリケーションを読み取り、内蔵ストレージ1004に記憶させる。
【0033】
送受信装置1008は、無線又は有線で通信を行うための通信回路である。送受信装置1008は、例えばネットワークに接続されたサーバ装置と通信を行い、サーバ装置から上記のようなプログラム、ニューラルネットワーク3aやアプリケーションをダウンロードして内蔵ストレージ1004に記憶させてもよい。
【0034】
CPU1003は、中央演算処理装置(Central Processing Unit)であり、内蔵ストレージ1004に記憶されたプログラム、アプリケーションをRAM1005にコピーし、そのプログラムやアプリケーションに含まれる命令をRAM1005から順次読み出して実行する。
【0035】
[1-2.ニューラルネットワーク3a]
図3は、本実施の形態に係るニューラルネットワーク3aの構成を示す図である。
【0036】
本実施の形態に係るニューラルネットワーク3aは、図3に示すように、入力情報が入力される入力層10と、入力情報の特徴量を抽出するための複数のブロック111からなる中間層11と、抽出された特徴量を出力する出力層12とを備える。なお、以下では、本実施の形態に係るニューラルネットワーク3aを、LVNetと称する場合もある。以下、ブロック111のネットワーク構造を有するモデルについて説明する。
【0037】
[1-2-1.ブロック111]
図4Aは、図3に示すブロック111のネットワーク構造を説明するための概念図である。
【0038】
ブロック111は、積層されてニューラルネットワーク3aを構成する。ブロック111は、図4Aに示すように、接続ブロック112と、Hi-1で示される基本単位層(fundamental unit)と、スキップ接続とで構成される。なお、ブロック111は、ResNetではビルディングブロック(building block)とも称される。
【0039】
基本単位層は、1以上の第1の畳み込み層で構成される。図4Aで示される例では、Hi-1で示される基本単位層は、Conv(i-1)で示される畳み込み層1111と、Conviで示される畳み込み層1112とで構成される。畳み込み層1111及び畳み込み層1112は、実装される際には、図4Aに示されるように、Batch Normalization(図でBN)を行う層と、reluなどの活性化関数(図でACT)と、畳み込み層(図でWeight)とで構成される。なお、演算順序は図4Aに示される順に限定されない。
【0040】
スキップ接続は、Hi-1で示される基本単位層をバイパスさせて、H0で示される入力を接続ブロック112に入力する。
【0041】
接続ブロック112は、図4Aでは、CBi-1(connection block)と示され、Hi-1で示される基本単位層の出力とスキップ接続の出力とを平均化する。
【0042】
なお、Hi-1で示される基本単位層とスキップ接続とは、残差ブロックを構成する。
【0043】
図4Bは、図4Aに示す畳み込み層で行われる演算を概念的に示す図である。図4Bには、一例としてHi-1で示される基本単位層のConv(i-1)において行われる演算が模式的に示されている。
【0044】
図4Bに示すように、Conv(i-1)に入力される入力特徴は、
【数1】
で示されるテンソルである。入力特徴の次元は、
【数2】
で示されている。畳み込みを行うカーネルのカーネルサイズは、
【数3】
で示されている。カーネルを用いた畳み込み演算によって得られる特徴マップは、
【数4】
で示されている。この特徴マップは、Conv(i)の入力特徴になり、その次元は、
【数5】
で示されている。
【0045】
図4Cは、図4Aに示す接続ブロック112の構成の一例を概念的に示す図である。
【0046】
接続ブロック112は、図4Cに示されるように、Conv(i-1) (CB)、ソフトマックス関数、Weights Wn CB、及びConv(i) (CB)などにより構成される。
【0047】
[1-2-2.ブロック111のネットワーク構造の具体的態様]
以下、図5を用いて、図4Aに示すブロック111のネットワーク構造の具体的態様について説明する。
【0048】
図5は、図4Aに示すブロック111のネットワーク構造の一具体的態様を示す図である。
【0049】
図5に示すブロック111は、残差ブロックと、接続ブロック112Aと、加算部113とを備える。なお、ブロック111は加算部113を備えなくてもよい。
【0050】
残差ブロックは、1以上の第1の畳み込み層と、1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される。図5に示す例では、残差ブロックは、畳み込み層1111と畳み込み層1112と、畳み込み層1111及び畳み込み層1112をまたぐ接続であるスキップ接続との組み合わせにより構成されている。なお、畳み込み層1111及び畳み込み層1112は、図4A及び図4Cで説明した基本単位層を構成する。
【0051】
接続ブロック112Aは、第2の畳み込み層を少なくとも有する接続ブロックであって、1以上の第1の畳み込み層の出力とスキップ接続の出力とを平均化する。図5に示す例では、接続ブロック112Aは、畳み込み層1121と、出力層1122と、重み1123と、重み付け層1124と、加算部1125と、畳み込み層1121とで構成される。なお、図5に示す例では、加算部1125は機能させないため、接続ブロック112Aは、加算部1125を備えなくてもよい。
【0052】
畳み込み層1121は、第2の畳み込み層の一例であり、1以上の第1の畳み込み層の出力とスキップ接続の出力とが入力される。畳み込み層1121は、入力された1以上の第1の畳み込み層の出力とスキップ接続の出力とを畳み込んで出力する。本実施の形態では、畳み込み層1121は、例えば図5では、Conv(CB)と表現されており畳み込み層1112の出力とスキップ接続の出力とが入力される。畳み込み層1121は、入力された畳み込み層1112の出力とスキップ接続の出力とを畳み込んで得た特徴マップを出力層1122に出力する。なお、畳み込み層1121は、例えば図4Cでは、Conv(i-1) (CB)と表現されておりHi-1で示される基本単位層の出力と、スキップ接続の出力としてH0で示される入力とがスタックされて入力される。
【0053】
出力層1122は、第1出力層の一例であり、第2の畳み込み層の出力が入力される。より具体的には、出力層1122は、入力された第2の畳み込み層の出力に対してソフトマックス関数を用いて得た値を出力する。本実施の形態では、出力層1122は、例えばソフトマックス関数を用いて、畳み込み層1112から出力された特徴マップから、出力の発生確率を求めて、重み付け層1124に出力する。出力層1122は、例えば図5ではSoftmaxと表現されており、例えば図4Cではソフトマックス関数を用いて得た発生確率のグラフで表現されている。
【0054】
重み1123は、重み(重みの集合)を予め記憶している。重み1123に記憶されている重みは、学習データを用いて接続ブロック112Aを学習させることで得ることができる。重み1123は、例えば図5ではWeights(CB)と表現されており、例えば図4CではWeights Wn CBと表現されている。
【0055】
重み付け層1124は、出力層1122の出力に、予め記憶されていた重みを付与する。本実施の形態では、重み付け層1124は、重み1123に予め記憶されている重みを、出力層1122の出力に乗算することで、重みを付与する。これにより、残差ブロックの出力に分散した重み付けを行うことができるので、残差ブロックの入力と出力との非線形性を向上させることができる。
【0056】
畳み込み層1126は、第3の畳み込み層の一例であり、重み付け層1124の出力が入力される。本実施の形態では、畳み込み層1126は、重み付け層1124の出力を畳み込んで得た特徴マップを出力する。畳み込み層1126は、重み付け層1124の出力を畳み込むことで、重み付け層1124の出力をダウンサンプリングすることができる。なお、畳み込み層1126は、例えば図4Cでは、Convi (CB)と表現されている。
【0057】
図6は、図4Aに示すブロック111のネットワーク構造の別の具体的態様を示す図である。図4A図4C及び図5等と同様の要素には同一の符号を付しており、詳細な説明は省略する。
【0058】
図6に示すブロック111Bは、図5に示すブロック111に対して、接続ブロック112Bの構成と、スキップ接続の接続先が増えている点とが異なる。以下、異なるところを中心に説明する。
【0059】
ブロック111Bは、さらに、接続ブロック112Bの出力に加えて、スキップ接続の出力を出力する。より具体的には、ブロック111Bでは、スキップ接続は、畳み込み層1111及び畳み込み層1112をまたいで接続ブロック112の畳み込み層1121と接続されるだけでなく、接続ブロック112Bをまたいで、接続ブロック112Bの出力先の加算部113に接続される。これにより、スキップ接続への入力は、接続ブロック112の畳み込み層1121に加えて、ブロック111Bの次のブロック111Bに出力されることになる。よって、ブロック111Bも、残差ブロックの機能を有することになり、ブロック111の入力と出力との非線形性を向上させ、勾配損失を回避できるので精度をより向上させることができる。
【0060】
接続ブロック112Bは、図5に示す接続ブロック112Aと比較して、ショートカット接続をさらに備える。接続ブロック112Bは、接続ブロック112Aと同様に、第2の畳み込み層を少なくとも有する接続ブロックであって、1以上の第1の畳み込み層の出力とスキップ接続の出力とを平均化する。
【0061】
ショートカット接続は、第1出力層及び重み付け層をショートカットする。本実施の形態では、ショートカット接続は、畳み込み層1121の出力と出力層1122と重み付け層1124とをショートカットし、畳み込み層1121の出力と加算部1125とを接続する。
【0062】
加算部1125は、ショートカット接続を介して出力された畳み込み層1121の出力と、重み付け層1124の出力とを加算する。これにより、畳み込み層1121の出力が、重み付け層1124により無理に非線形されてしまい、そのまま畳み込み層1126に出力すると不安定のため勾配爆発または発散の発生が生じてしまう場合でも、勾配爆発または発散を回避することができる。
【0063】
畳み込み層1126は、第3の畳み込み層の一例であり、重み付け層1124の出力とショートカット接続の出力とが入力される。本実施の形態では、畳み込み層1126は、加算部1125の出力を畳み込んで得た特徴マップを出力する。畳み込み層1126は、加算部1125の出力を畳み込むことで、加算部1125の出力をダウンサンプリングすることができる。
【0064】
[1-3.ニューラルネットワーク3aの実装例]
続いて、ニューラルネットワーク3aの実装例について説明する。
【0065】
ニューラルネットワーク3aは、上述したように、積層されるブロック111それぞれに残差ブロックを含む。このため、ニューラルネットワーク3aは、残差ブロックを有するResNetのネットワーク構造を利用することで実装できる。また、ニューラルネットワーク3aは、積層されるブロック111それぞれに接続ブロック112Aまたは112Bを含むため、ResNetをより浅い層で構成させたネットワーク構造を利用して実装したとしても、ResNetと同等の精度を維持できる。
【0066】
図7は、ResNet10相当のネットワーク構造の実装例を概念的に示す図である。図7に示すように、ResNet10相当は、Building Block1~Building Block4で示される4つのBuilding Blockが積層される。また、Building Blockのそれぞれは、2つの畳み込み層とスキップ接続との組み合わせにより構成されている。よって、ResNet10相当は、上記の非特許文献1に開示されているResNetをより浅い層で構成させたネットワーク構造であり、10層の畳み込み層を用いて構成されるネットワーク構造を有する。
【0067】
図8は、本実施の形態に係るニューラルネットワーク3aの実装例を概念的に示す図である。なお、図8に示されるニューラルネットワーク3aは、上記でLVNetと称したもののネットワーク構造の一例である。
【0068】
より具体的には、図8に示すニューラルネットワーク3aは、図7に示すResNet10相当におけるBuilding Block1~Building Block4のそれぞれに、上述した接続ブロック112Bを追加したネットワーク構造を有している。
【0069】
なお、本実施の形態に係るニューラルネットワーク3aの実装例は、図8に示すような場合に限らない。ResNet34のBuilding Blockのそれぞれに、または、ResNet18相当のBuilding Blockのそれぞれに、上述した接続ブロック112Bを追加したネットワーク構造を有するとしてもよい。
【0070】
ここで、ResNet34及びResNet18相当のネットワーク構造について説明する。
【0071】
図9Aは、ResNet34のネットワーク構造の実装例を概念的に示す図である。図9Aに示すように、ResNet34は、Building Block1~Building Block4で示される4つのBuilding Blockが積層される。また、Building Blockのそれぞれは、複数の畳み込み層と複数のスキップ接続との組み合わせにより構成されている。Building Block1では6層、Building Block2では8層、Building Block3では12層、Building Block4では6層の畳み込み層が構成されている。スキップ接続は、2層の畳み込み層をまたぐように構成されている。よって、ResNet34は、34層の畳み込み層を用いて構成されるネットワーク構造を有する。
【0072】
また、図9Bは、ResNet18相当のネットワーク構造の実装例を概念的に示す図である。図9Bに示すように、ResNet18相当は、Building Block1~Building Block4で示される4つのBuilding Blockが積層される。また、Building Blockのそれぞれは、4つの畳み込み層と、2層の畳み込み層をまたぐスキップ接続との組み合わせにより構成されている。つまり、ResNet18相当は、上記の非特許文献1に開示されているResNetをより浅い層で構成させたネットワーク構造であり、18層の畳み込み層を用いて構成されるネットワーク構造を有する。
【0073】
[2.演算装置1の動作]
以上のように構成された演算装置1の動作の一例について以下説明する。
【0074】
図10は、本実施の形態における演算装置1の動作概要を示すフローチャートである。図10には、ニューラルネットワーク3aを構成する複数のブロック111の1つのブロック111に行わせる演算処理が示されている。
【0075】
まず、演算装置1は、ニューラルネットワーク3aのブロック111を構成する残差ブロックに、入力情報として第1情報を入力する(S10)。より具体的には、演算装置1は、1以上の第1の畳み込み層と、1以上の第1の畳み込み層をまたぐ接続であるスキップ接続との組み合わせにより構成される残差ブロックに、第1情報を入力する。なお、第1情報は、ブロック111がBuilding Block1に該当する場合には、入力情報である。ブロック111がBuilding Block1に該当しない場合には、ブロック111を含むBuilding Blockの1つ前のBuilding Blockの出力である。
【0076】
次に、演算装置1は、残差ブロックの1以上の第1の畳み込み層により抽出された第1情報の特徴量と、残差ブロックのスキップ接続により出力された第1情報とを、接続ブロックに入力して、第1情報の特徴量と第1情報とを平均化させる(S11)。
【0077】
[3.効果等]
本実施の形態によれば、ResNetなどで知られる残差ブロックに接続ブロックを追加することで、残差ブロックの出力に分散した重み付けを行うなどにより残差ブロックの出力を平均化させることができ、残差ブロックの入力と出力との非線形性を向上させることができる。よって、精度を維持するために必要なブロックの数を軽減することができるので、精度を維持しつつ、モデルサイズと演算量とをより軽減できるニューラルネットワークを実現できる。
【0078】
また、本実施の形態によれば、接続ブロックがさらにショートカット接続を備えることで、ブロックの入力と出力との非線形性を向上させ、勾配損失を回避できる。よって、精度を維持するために必要なブロックの数を軽減することができるだけでなく、ショートカット接続により接続ブロックの出力が勾配爆発または発散することを回避できるので、精度を維持しつつ、モデルサイズと演算量とをより軽減できる。
【0079】
また、精度を維持しつつ、モデルサイズと演算量とをより軽減できることにより、集積回路に実装し機器本体に設ける形態、いわゆるエッジAIでの利用を容易にする効果がある。
【0080】
例えば、テレビなどの放送波を受信し受信した放送波を処理する場合は、画像認識などの演算量の多い処理を行う必要がある。そのため、ResNetなどの従来のニューラルネットワークを用いる場合、従来のニューラルネットワークはクラウド上に実装され(いわゆるクラウドAI)、インターネットなどのネットワークを介して通信する必要が発生する。そして、従来のニューラルネットワークをクラウド上で実装した場合、その通信量または通信による放送の遅延が生じる。一方、LVNetなどの本実施の形態に係るニューラルネットワークを用いる場合、本実施の形態に係るニューラルネットワークは、精度を維持しつつ、モデルサイズと演算量とをより軽減することができることから、集積回路での実装に適しており、テレビなどの機器本体に設けることができる。そのため、本実施の形態に係るニューラルネットワークは、例えインターネットなどのネットワークを介して通信する必要が発生した場合でも、通信量を削減できるので、、通信量または通信による遅延を抑制できる。
【0081】
(実施例)
演算装置1に用いられる本実施の形態に係るニューラルネットワーク3aの有効性について検証したので、その実験結果を実施例として説明する。
【0082】
本実施例では、収集した2つの実験データであるテストA及びテストBを用いて演算装置1に用いられるニューラルネットワーク3aの性能を評価した。
【0083】
<実験データ>
図11は、本実施例に係るデータベースの概要を示す図である。
【0084】
本実施例に係るデータベースには、図11に示すアニメ、スポーツ、音楽、その他といった4つのカテゴリーについて収集された画像を格納した。なお、その他のカテゴリーには、天気、風景、トークといったカテゴリーが含まれる。
【0085】
データベースに格納された画像は、例えばYouTube(登録商標)、Google(登録商標)など、さまざまなリソースを用いて収集された100万以上の高解像度の画像から生成した。また、データベースに格納された画像は、訓練データ(Training)としての96K画像と、評価データ(Validation)としての7K画像に分けられている。
【0086】
また、テストAは、クラス内の分散が少ない画像群から構成し、テストBは、クラス間の分散が小さい画像群から構成した。
【0087】
<実験条件>
本実験では、対象のニューラルネットワークの学習をGPU(Graphics Processing Unit)を用いて8時間行った。本実験での学習は、次のパラメータにて行った。すなわち、学習率(Learning rate)を0.025に設定し10エポックごとに半分になるように設定した。また、本実験での学習は、モーメンタムの最適化アルゴリズム(Optimizer)を使用したバッチ勾配降下法(Batch gradient descent)で0.9に設定して行った。
【0088】
<実験結果>
図12は、実施例に係る実験結果を示す図である。より具体的には、図12は本実施例に係るテストA及びテストBを用いて本実施の形態に係るニューラルネットワーク3aの精度と比較例のニューラルネットワークの精度とを評価した実験結果を示す図である。図12では、本実施の形態及び比較例のニューラルネットワークのモデルサイズ、演算量(モデルの複雑さ)、パラメータ及びメモリアクセスも併せて示されている。なお、比較例のニューラルネットワークは、ResNet34とResNet18とである。当該ResNet34は図9Aで示したResNet34に該当し、当該ResNet18は図9Bで示したResNet18相当に該当する。本実施の形態に係るニューラルネットワーク3aは、LR10_CB128とLR10_CB128_SHとして示されている。LR10_CB128_SHは、LVNetすなわち図8で示したネットワーク構造を有するモデルに該当する。LR10_CB128は、図8で示したLVNetの接続ブロック112Bを図5に示す接続ブロック112Aに変更したネットワーク構造を有するモデルに該当する。
【0089】
図12に示すように、比較例に係るニューラルネットワークのResNet34及びResNet18と、本実施の形態に係るニューラルネットワーク3aのLR10_CB128及びLR10_CB128_SHとで精度が同等であるのがわかる。
【0090】
また、図12に示すように、本実施の形態に係るニューラルネットワーク3aのメモリサイズと演算量(計算の複雑さ)は、比較例に係るニューラルネットワークのメモリサイズと演算量(計算の複雑さ)よりも大幅に削減されているのがわかる。さらに、LR10_CB128_SHすなわち図8で示したネットワーク構造を有するモデルであるLVNetは、他のすべてのニューラルネットワークと比較して、相対的に最高の性能を発揮していることもわかる。例えば、LR10_CB128_SHのモデルサイズと演算量(FLOPs)とは、ResNet18のモデルサイズの8.2%と演算量の6.3%とである。つまり、LR10_CB128_SHは、ResNet18と比較して、モデルサイズが91.8%削減され、演算量(FLOPs)が92.2%削減されていることがわかる。
【0091】
以上のように、本実施の形態によれば、ResNetと同等の精度を維持しつつ、モデルサイズと演算量とをより軽減できるニューラルネットワーク3aを実現できる。
【0092】
(他の実施態様の可能性)
以上、本開示の一態様に係るニューラルネットワーク、演算装置及び演算方法について、実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の範囲内に含まれる。例えば、以下のような場合も本開示に含まれる。
【0093】
(1)上記の演算装置を構成する構成要素の一部または全部は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムでもよい。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0094】
(2)上記の演算装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0095】
(3)上記の演算装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【産業上の利用可能性】
【0096】
本開示は、ニューラルネットワーク、演算方法及びプログラムに利用でき、特に、リソースの限られたハードウェアプラットフォームに実装されても視覚課題に対して優れた性能を発揮することができるニューラルネットワーク、演算方法及びプログラムに利用できる。
【符号の説明】
【0097】
1 演算装置
2 入力部
3 処理部
3a ニューラルネットワーク
4 出力部
10 入力層
11 中間層
12、1122 出力層
111、111B ブロック
112、112A、112B 接続ブロック
113、1125 加算部
1111、1112、1121、1126 畳み込み層
1123 重み
1124 重み付け層
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8
図9A
図9B
図10
図11
図12