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

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

▶ 富士通株式会社の特許一覧

特許7326867情報処理装置、情報処理プログラム及び情報処理方法
<>
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図1
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図2
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図3
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図4
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図5
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図6
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図7
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図8
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図9
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図10
  • 特許-情報処理装置、情報処理プログラム及び情報処理方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-07
(45)【発行日】2023-08-16
(54)【発明の名称】情報処理装置、情報処理プログラム及び情報処理方法
(51)【国際特許分類】
   G06N 3/08 20230101AFI20230808BHJP
【FI】
G06N3/08
【請求項の数】 6
(21)【出願番号】P 2019095468
(22)【出願日】2019-05-21
(65)【公開番号】P2020190895
(43)【公開日】2020-11-26
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】田渕 晶大
(72)【発明者】
【氏名】笠置 明彦
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開2019-053383(JP,A)
【文献】特表2019-502970(JP,A)
【文献】国際公開第2019/079198(WO,A1)
【文献】米国特許出願公開第2017/0206457(US,A1)
【文献】米国特許出願公開第2022/0036548(US,A1)
【文献】KAYAMA, Masahiro,Methodology for Constructing Optimal Multi-layered Neural Networks,Computer Science Department Technical Report[online],University of California,1991年09月,[retrieved on 2022.12.27], Retrieved from the Internet: <URL: https://ftp.cs.ucla.edu/tech-report/1991-reports/910068.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する処理とを実行する生成部と、
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、各ネットワーク層の重みパラメータを固定したうえで、前記第2のミニバッチを用いて学習を行う学習部と
を有する情報処理装置。
【請求項2】
前記学習部は、前記学習処理の際、前記第1のミニバッチを用いて行う学習が、予め定められたepoch数に到達した場合に、前記第2のミニバッチを用いて学習を行う、請求項1に記載の情報処理装置。
【請求項3】
前記学習部は、前記学習処理の際、前記第1のミニバッチを用いて行う学習が、予め定められた学習率に到達した場合に、前記第2のミニバッチを用いて学習を行う、請求項1に記載の情報処理装置。
【請求項4】
前記学習処理により得られた学習結果に、推論用データを入力することで推論処理を行う推論部と、
前記推論用データを入力する際、前記推論用データを用いて推論用パラメータを算出し、前記推論部に設定する更新部と
を更に有する、請求項1に記載の情報処理装置。
【請求項5】
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、各ネットワーク層の重みパラメータを固定したうえで、前記第2のミニバッチを用いて学習を行う、
処理を実行させる情報処理プログラム。
【請求項6】
ニューラルネットワークを用いて学習処理を行うコンピュータが、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、各ネットワーク層の重みパラメータを固定したうえで、前記第2のミニバッチを用いて学習を行う、
処理を実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理プログラム及び情報処理方法に関する。
【背景技術】
【0002】
一般に、DNN(Deep Neural Network)を用いた学習処理では、汎化性能の高い適切な重みパラメータを算出するために、学習用データをランダムに変形してミニバッチを生成する、いわゆるデータ拡張処理が行われる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-97585号公報
【文献】特開2017-16414号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、データ拡張処理により生成されるミニバッチを用いた場合、データ拡張処理によらずに生成されるミニバッチを用いた場合と比較して、学習処理の際にバッチノーマライゼーション部で算出される推論用パラメータの偏りが大きくなる。この結果、学習結果(学習済みのモデル)の性能(推論精度)が低下する場合がある。
【0005】
一つの側面では、学習結果の性能を向上させることを目的としている。
【課題を解決するための手段】
【0006】
一態様によれば、ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する処理とを実行する生成部と、
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、各ネットワーク層の重みパラメータを固定したうえで、前記第2のミニバッチを用いて学習を行う学習部とを有する。
【発明の効果】
【0007】
学習結果の性能を向上させることができる。
【図面の簡単な説明】
【0008】
図1】情報処理装置の機能構成の一例を示す第1の図である。
図2】情報処理装置のハードウェア構成の一例を示す図である。
図3】情報処理装置の拡張部の機能構成の一例を示す図である。
図4】学習処理時のミニバッチの構成例を示す図である。
図5】情報処理装置の学習部の機能構成の一例を示す第1の図である。
図6】情報処理装置による学習処理の流れを示す第1のフローチャートである。
図7】情報処理装置の学習部の機能構成の一例を示す第2の図である。
図8】情報処理装置による学習処理の流れを示す第2のフローチャートである。
図9】情報処理装置の機能構成の一例を示す第2の図である。
図10】情報処理装置の更新部及び推論部の機能構成の一例を示す図である。
図11】情報処理装置による推論処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0010】
[第1の実施形態]
<情報処理装置の機能構成>
はじめに、ニューラルネットワークの一例であるDNN(Deep Neural Network)を用いて学習処理を行う情報処理装置の機能構成について説明する。図1は、情報処理装置の機能構成の一例を示す第1の図である。情報処理装置100には、情報処理プログラムがインストールされており、当該プログラムが実行されることで、情報処理装置100は、拡張部110、学習部120、推論部130として機能する。
【0011】
拡張部110は生成部の一例である。拡張部110は、学習用データ格納部140に格納された学習用データを読み出し、読み出した学習用データに対して、データ拡張処理を行いミニバッチ(第1のミニバッチ)を生成する第1のデータ処理を実行する。
【0012】
また、拡張部110は、学習用データ格納部140に格納された学習用データを読み出し、読み出した学習用データに対して、データ拡張を行わずにミニバッチ(第2のミニバッチ)を生成する第2のデータ処理を実行する。
【0013】
つまり、拡張部110は、学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する第1のデータ処理と、学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する第2のデータ処理とを実行する。
【0014】
学習部120は、DNNを用いて学習処理を行う。具体的には、学習部120は、はじめに、第1のミニバッチを用いて学習を行い、所定のepoch数分の学習が完了すると、第2のミニバッチを用いて学習を行う。
【0015】
このように、はじめに、第1のミニバッチを用いて学習を行うことで、学習部120では、汎化性能の高い適切な重みパラメータを算出することできる。
【0016】
一方で、所定のepoch数分の学習が完了した後は、第2のミニバッチを用いて学習を行うことで、学習部120では、バッチノーマライゼーション部にて、偏りの少ない適切な推論用パラメータを算出することできる。バッチノーマライゼーション部にて算出される推論用パラメータは、直近のミニバッチ(ここでは、偏りの少ない第2のミニバッチ)に強く依存するからである。
【0017】
つまり、学習部120では、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第1の実施形態によれば、学習処理の際に第1のミニバッチのみを用いて学習を行った場合と比較して、学習結果(学習済みのモデル)の性能(推論精度)を向上させることができる。
【0018】
推論部130は、推論用データ格納部150に格納された推論用データを読み出し、学習部120による学習処理の結果得られた学習結果(学習済みのモデル)に入力することで、推論結果を出力する。
【0019】
<情報処理装置のハードウェア構成>
次に、情報処理装置100のハードウェア構成について説明する。図2は、情報処理装置のハードウェア構成の一例を示す図である。図2に示すように、情報処理装置100は、CPU(Central Processing Unit)201、GPU(Graphics Processing Unit)202を有する。また、情報処理装置100は、ROM(Read Only Memory)203、RAM(Random Access Memory)204を有する。なお、CPU201、GPU202、ROM203、RAM204は、いわゆるコンピュータを形成する。
【0020】
また、情報処理装置100は、補助記憶装置205、表示装置206、操作装置207、ドライブ装置208を有する。なお、情報処理装置100の各ハードウェアは、バス209を介して相互に接続されている。
【0021】
CPU201は、補助記憶装置205にインストールされている各種プログラム(例えば、情報処理プログラム等)を実行する演算デバイスである。
【0022】
GPU202は、画像処理用の演算デバイスであり、CPU201により各種プログラムが実行される際に、画像データである学習用データまたは推論用データについて、並列処理による高速演算を実行する。なお、図2の例では、説明の便宜上、情報処理装置100が1つのGPUを有する場合について示しているが、情報処理装置100が有するGPUの数は1つに限定されない。
【0023】
ROM203は、不揮発性メモリである。ROM203は、補助記憶装置205にインストールされている各種プログラムをCPU201が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ROM203はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【0024】
RAM204は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリである。RAM204は、補助記憶装置205にインストールされている各種プログラムがCPU201によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【0025】
補助記憶装置205は、各種プログラムや、各種プログラムが実行される際に用いられるデータを格納する補助記憶デバイスである。例えば、学習用データ格納部140及び推論用データ格納部150は、補助記憶装置205において実現される。
【0026】
表示装置206は、情報処理装置100の内部状態等を表示する表示デバイスである。操作装置207は、情報処理装置100のユーザが情報処理装置100に対して各種指示を入力する際に用いる入力デバイスである。
【0027】
ドライブ装置208は記録媒体210をセットするためのデバイスである。ここでいう記録媒体210には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体210には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0028】
なお、補助記憶装置205にインストールされる各種プログラムは、例えば、配布された記録媒体210がドライブ装置208にセットされ、該記録媒体210に記録された各種プログラムがドライブ装置208により読み出されることでインストールされる。あるいは、補助記憶装置205にインストールされる各種プログラムは、不図示のネットワークよりダウンロードされることでインストールされてもよい。
【0029】
<情報処理装置の拡張部の機能構成>
次に、情報処理装置100の拡張部110の機能構成について説明する。図3は、情報処理装置の拡張部の機能構成の一例を示す図である。
【0030】
図3に示すように、拡張部110は、学習用データ格納部140より学習用データを読み出し、第1のデータ処理と第2のデータ処理とを行う。なお、図3の例では、学習用データ格納部140より読み出す学習用データが同じサイズの場合を示しているが、実際には、様々なサイズのデータが含まれているものとする。
【0031】
拡張部110では、第1のデータ処理として、
・読み出した学習用データそれぞれについて、サイズが5%~90%の範囲、かつ、アスペクト比が0.667~1.5の範囲で、領域を切り出し、
・切り出した領域を224×224[画素]にリサイズし、
所定数のまとまりであるミニバッチを複数含む第1のミニバッチとして出力する(図3の例では、N個のミニバッチを含む第1のミニバッチとして出力した様子を示している)。
【0032】
また、拡張部110では、第2のデータ処理として、
・読み出した学習用データそれぞれについて、短辺が256[画素]となるようにリサイズし、
・リサイズした学習用データそれぞれについて、中心領域の224×224[画素]を切り出し、
所定数のまとまりであるミニバッチを複数含む第2のミニバッチとして出力する(図3の例では、N個のミニバッチを含む第2のミニバッチとして出力した様子を示している)。
【0033】
<学習処理時のミニバッチの構成例>
次に、拡張部110において第1のデータ処理により生成された第1のミニバッチの学習処理時の構成例と、第2のデータ処理により生成された第2のミニバッチの学習処理時の構成例とについて説明する。
【0034】
図4は、学習処理時のミニバッチの構成例を示す図である。図4に示すように、学習処理の際、学習部120では、第1のデータ処理により生成された第1のミニバッチのうち、1番目の第1のミニバッチ(“ミニバッチ1”)を用いて1回目の学習を行う。以降、学習部120では、N番目の第1のミニバッチ(“ミニバッチN”)まで、N回の学習を行う。これにより、学習部120では、1epoch分の学習が完了する。
【0035】
なお、本実施形態における学習処理では、100epoch分の学習を行うものとする。学習部120では、そのうち、Xepoch目(例えば、90≦X≦99)までは、第1のデータ処理により生成された第1のミニバッチを用いて学習を行う(epochごとに第1のデータ処理を行い、新たに第1のミニバッチを生成して学習を行うものとする)。
【0036】
一方、学習部120では、X+1epoch目~100epoch目までは、第2のデータ処理により生成された第2のミニバッチを用いて学習を行う。
【0037】
<学習部の機能構成>
次に、情報処理装置100の学習部120の機能構成について説明する。図5は、情報処理装置の学習部の機能構成の一例を示す第1の図である。図5に示すように、学習部120は、入力部と、第1層から第M層までの各ネットワーク層(DNNの各ネットワーク層)と、比較部とを有する。また、第1層から第M層までの各ネットワーク層は、例えば、畳み込み部と、バッチノーマライゼーション部(BN部)と、活性化部と、プーリング部とを有する(図5下側参照)。
【0038】
図5に示す機能構成のもと、学習部120では、1epoch目からXepoch目までは、第1のミニバッチを入力部に入力する。これにより、第1層には、1番目からN番目までの各ミニバッチが、順次、入力されるとともに、比較部には、対応する正解データが通知される。
【0039】
第1層から第M層までの各ネットワーク層では、前回の学習によって更新された重みパラメータを用いて、入力部(または前層のネットワーク層)から出力されたデータを演算し、次層のネットワーク層に出力する。また、第M層から出力されたデータは、認識結果として、比較部に出力される。
【0040】
比較部では、第M層から出力された認識結果と、入力部から通知された正解データとを比較し、両者の差分値を算出する。なお、比較部により算出された差分値は逆伝播され、第1層から第M層までの各ネットワーク層の重みパラメータを更新する。
【0041】
ここで、各ネットワーク層に含まれる各部(図5の下側参照)のうち、畳み込み部、活性化部、プーリング部の処理についての詳細な説明は省略し、ここでは、BN部の処理について詳細な説明を行う。
【0042】
BN部は、入力された各ミニバッチの平均μと分散σとを用いて、入力された各ミニバッチを正規化し、更に、アフィン変換を行う(下式参照。ただし、xは各ミニバッチに含まれる各データを指すものとする)。
【0043】
【数1】
【0044】
なお、上式において、学習パラメータγ及びβは、各ミニバッチを用いて学習を行う際に、重みパラメータと同様に、差分値の逆伝播に伴って更新される。そして、BN部では、下式に基づいて、推論用パラメータ(μの移動平均値及びσの移動平均値)を算出する。
【0045】
【数2】
【0046】
一方、図5に示す機能構成のもと、学習部120では、X+1epoch目から100epoch目までは、第2のミニバッチを入力部に入力する。これにより、第1層には、1番目からN番目までの各ミニバッチが、順次、入力されるとともに、比較部には、対応する正解データが、順次、通知される。
【0047】
第1層から第M層までの各ネットワーク層では、前回の学習によって更新された重みパラメータを用いて、入力部(または前層のネットワーク層)から出力されたデータを演算し、次層のネットワーク層に出力する。また、第M層から出力されたデータは、認識結果として、比較部に入力される。
【0048】
比較部では、第M層から出力された認識結果と、入力部から通知された正解データとを比較し、両者の差分値を算出する。なお、比較部により算出された差分値は逆伝播され、第1層から第M層までの各ネットワーク層の重みパラメータを更新する。
【0049】
ここで、X+1epoch目以降の各学習を行う時点では、通常、学習率が低下しており、重みパラメータ更新時の更新量はわずかである。一方で、BN部で算出される推論用パラメータは、学習処理が終了する前の直近に入力されるミニバッチ(つまり、X+1epoch目から100epoch目までの第2のミニバッチ)により大きく変化する。
【0050】
このように、学習部120では、第1のミニバッチを用いて学習を行い、その後、第2のミニバッチを用いて学習を行う。
【0051】
これにより、学習部120では、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第1の実施形態によれば、学習処理の際に第1のミニバッチのみを用いて学習を行った場合と比較して、学習結果(学習済みのモデル)の性能(推論精度)を向上させることができる。
【0052】
<学習処理の流れ>
次に、情報処理装置100による学習処理の流れについて説明する。図6は、情報処理装置による学習処理の流れを示す第1のフローチャートである。図6に示すように、ステップS601において、拡張部110は、学習用データ格納部140より学習用データを読み出す。
【0053】
ステップS602において、拡張部110は、読み出した学習用データに対して、データ拡張処理を行い第1のミニバッチを生成する。ステップS603において、学習部120は、第1のミニバッチを用いた学習を開始する。
【0054】
ステップS604において、学習部120は、Xepoch目の学習が完了したか否かを判定する。ステップS604において、Xepoch目の学習が完了していないと判定した場合には(ステップS604においてNoの場合には)、再びステップS602のデータ拡張処理を行い、第1のミニバッチを用いた学習を継続する。一方、ステップS604において、Xepoch目の学習が完了したと判定した場合には(ステップS604においてYesの場合には)、ステップS605に進む。
【0055】
ステップS605において、拡張部110は、読み出した学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する。ステップS606において、学習部120は、第2のミニバッチを用いた学習を開始する。
【0056】
ステップS607において、学習部120は、学習処理を終了するか否かを判定する。ステップS607において、学習処理を終了しないと判定した場合には(ステップS607においてNoの場合には)、第2のミニバッチを用いた学習を継続する。一方、ステップS607において、学習処理を終了すると判定した場合には(ステップS607においてYesの場合には)、学習処理を終了する。
【0057】
以上の説明から明らかなように、第1の実施形態に係る情報処理装置100では、拡張部110が、学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、データ拡張処理を行わずに第2のミニバッチを生成する処理とを実行する。また、学習部が、学習処理の際、第1のミニバッチを用いて学習を行った後に、第2のミニバッチを用いて学習を行う。
【0058】
これにより、第1の実施形態に係る情報処理装置100では、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第1の実施形態に係る情報処理装置100によれば、学習結果の性能を向上させることができる。
【0059】
[第2の実施形態]
上記第1の実施形態では、第2のミニバッチを用いて学習を行う際、学習パラメータに加え、重みパラメータも更新するものとして説明した。これに対して、第2の実施形態では、第2のミニバッチを用いて学習を行う際、学習率をゼロに設定することで、重みパラメータを固定し、学習パラメータのみを更新する。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0060】
<学習部の機能構成>
はじめに、第2の実施形態に係る情報処理装置100の学習部120の機能構成について説明する。図7は、情報処理装置の学習部の機能構成の一例を示す第2の図である。図5との相違点は、X+1epoch目から100epoch目まで、第2のミニバッチを用いて学習を行うにあたり、学習率をゼロに設定する点である。
【0061】
これにより、第M層から出力された認識結果と、入力部から通知された正解データとの差分値が逆伝播された場合であっても、第1層から第M層までの各ネットワーク層の重みパラメータは更新量がゼロとなり、固定される。
【0062】
一方で、BN部で更新される学習パラメータは、学習率の設定に関わらず、学習処理が終了する前の直近に入力されるミニバッチ(つまり、X+1epoch目から100epoch目までの第2のミニバッチ)により大きく変化する。
【0063】
このように、学習部120では、第1のミニバッチを用いて学習を行うことで算出した、汎化性能の高い適切な重みパラメータを維持したまま、学習を継続する。また、学習部120では、第2のミニバッチを用いて学習を行うことで、偏りの少ない適切な推論用パラメータを算出する。
【0064】
これにより、第2の実施形態の場合、上記第1の実施形態と比較して、重みパラメータを更新する必要がないため、逆伝播の処理が不要になる。この結果、第2の実施形態によれば、学習速度を向上させることができる。
【0065】
<学習処理の流れ>
次に、第2の実施形態に係る情報処理装置100による学習処理の流れについて説明する。図8は、情報処理装置による学習処理の流れを示す第2のフローチャートである。図6に示す学習処理との相違点は、ステップS801である。
【0066】
ステップS801において、学習部120は、学習率をゼロに設定することで、第2のミニバッチを用いて学習を行う際の重みパラメータを固定する。
【0067】
以上の説明から明らかなように、第2の実施形態に係る情報処理装置100では、拡張部110が、学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、データ拡張処理を行わずに第2のミニバッチを生成する処理とを実行する。また、学習部が、第1のミニバッチを用いて学習を行った後に、重みパラメータを固定して、第2のミニバッチを用いて学習を行う。
【0068】
これにより、第2の実施形態に係る情報処理装置100によれば、汎化性能の高い適切な重みパラメータと、偏りの少ない適切な推論用パラメータとを算出することができる。この結果、第2の実施形態に係る情報処理装置100によれば、上記第1の実施形態が奏する効果に加えて、学習速度を向上させることができる。
【0069】
[第3の実施形態]
上記第1及び第2の実施形態では、学習処理の際に、X+1epochから100epoch目に、第2のミニバッチを用いて学習を行うことで、偏りの少ない適切な推論用パラメータを算出するものとして説明した。
【0070】
これに対して、第3の実施形態では、更に、推論処理の際に、推論用データを用いて、推論用パラメータを更新する。これにより、第3の実施形態によれば、学習用データと推論用データとで、内容が大きく変わった場合であっても、学習結果の性能(推論精度)が低下するのを抑えることができる。
【0071】
以下、第3の実施形態について、上記第1及び第2の実施形態との相違点を中心に説明する。
【0072】
<情報処理装置の機能構成>
はじめに、第3の実施形態に係る情報処理装置の機能構成について説明する。図9は、情報処理装置の機能構成の一例を示す第2の図である。図1を用いて説明した情報処理装置100との相違点は、図9に示す情報処理装置900の場合、更新部910を有する点である。
【0073】
更新部910は、例えば、学習処理が完了し、かつ、学習率をゼロに設定した学習部120と同様の機構を含んでいる。これにより、更新部910は、推論用データ格納部150に格納された所定数の推論用データを読み出した際、推論用パラメータ(μの移動平均値及びσの移動平均値)を算出する。また、更新部910は、算出した推論用パラメータを、推論部130に含まれる各層のBN部に設定する(図10の例は、第1層のBN部に設定した様子を示している)。これにより、推論部130は、推論用データに基づいて算出された推論用パラメータが各層のBN部に設定された状態で推論用データを入力し、推論結果を出力することができる。
【0074】
<更新部及び推論部の機能構成>
次に、第3の実施形態に係る情報処理装置900の更新部910及び推論部130の機能構成について説明する。図10は、情報処理装置の更新部及び推論部の機能構成の一例を示す図である。
【0075】
図10に示すように、更新部910は、推論用データ格納部150より、所定数の推論用データを読み出し、推論用パラメータ(μの移動平均値及びσの移動平均値)を算出する。また、更新部910は、算出した推論用パラメータを、推論部130に含まれる各層のBN部に設定する。
【0076】
<推論処理の流れ>
次に、第3の実施形態に係る情報処理装置900による推論処理の流れについて説明する。図11は、情報処理装置による推論処理の流れを示すフローチャートである。
【0077】
ステップS1101において、更新部910は、推論用データ格納部150より所定数の推論用データを読み出す。
【0078】
ステップS1102において、更新部910は、読み出した所定数の推論用データを解析し、学習用データと比較して、データ内容が大きく変更されているか否かを判定する。ステップS1102において、データ内容が大きく変更されていないと判定した場合には(ステップS1102においてNoの場合には)、ステップS1105に進む。
【0079】
一方、ステップS1102において、データ内容が大きく変更されていると判定した場合には(ステップS1102においてYesの場合には)、ステップS1103に進む。
【0080】
ステップS1103において、更新部910は、読み出した所定数の推論用データに基づいて、推論用パラメータを算出する。
【0081】
ステップS1104において、更新部910は、算出した推論用パラメータについて、推論部130に含まれる各層のBN部に設定する。
【0082】
ステップS1105において、推論部130は、読み出した推論用データを用いて推論処理を行う。また、推論部130は、推論結果を出力し、推論処理を終了する。
【0083】
以上の説明から明らかなように、第3の実施形態に係る情報処理装置900では、推論処理の際、更新部910が、推論用データを用いて推論用パラメータを算出し、BN部に設定する。
【0084】
これにより、第3の実施形態に係る情報処理装置900によれば、汎化性能の高い適切な重みパラメータと、推論用データに則した適切な推論用パラメータとを用いて、推論処理を行うことができる。この結果、第3の実施形態に係る情報処理装置900によれば、学習結果の性能(推論精度)を向上させることができる。
【0085】
[その他の実施形態]
上記第1及び第2の実施形態では、データ拡張処理の処理内容を図3に例示したが、データ拡張処理の処理内容はこれに限定されず、学習用データをランダムに変形する処理内容であれば、他の処理内容であってもよい。
【0086】
例えば、第1のデータ処理により生成される第1のミニバッチの分散σの方が、第2のデータ処理により生成される第2のミニバッチの分散σより大きくなるように、データ拡張処理を行ってもよい。
【0087】
また、上記第1及び第2の実施形態では、説明の便宜上、情報処理装置100が、1つのGPU202を有する場合について説明した。一方で、情報処理装置100は、複数のGPUを有していてもよい。この場合、例えば、各GPUにおいて実現されるBN部が推論用パラメータ(μの移動平均値及びσの移動平均値)を算出するにあたっては、各GPUにおいて実現されるBN部が算出した推論用パラメータの平均値を、各BN部に設定するようにしてもよい。
【0088】
また、上記第1及び第2の実施形態では、Xepoch目の学習が完了したと判定した場合に、第1のミニバッチを用いた学習から第2のミニバッチを用いた学習へと切り替えるものとして説明した。しかしながら、第1のミニバッチを用いた学習から第2のミニバッチを用いた学習へと切り替えるタイミングはこれに限定されない。例えば、学習率が所定の値に到達した場合に、第1のミニバッチを用いた学習から第2のミニバッチを用いた学習へと切り替えるようにしてもよい。
【0089】
また、上記第1及び第2の実施形態では、100epoch分の学習を行うものとしたが、epoch数は100に限定されない。
【0090】
また、上記第2の実施形態では、データ内容が大きく変更されていると判定した場合に、推論用データに基づいて推論用パラメータを算出するものとして説明した。しかしながら、推論用データに基づいて推論用パラメータを算出するか否かの判定はこれに限定されない。推論用データに基づいて算出される平均μ、分散σが所定の閾値以上変化した場合に、推論用データに基づいて推論用パラメータを算出するようにしてもよい。
【0091】
また、上記各実施形態では、拡張部、学習部、更新部、推論部が、1台の情報処理装置100(または、900)において実現されるものとして説明した。しかしながら、これらの各部は、複数台の情報処理装置において実現されてもよい。
【0092】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
ニューラルネットワークを用いて学習処理を行う情報処理装置であって、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する処理とを実行する生成部と、
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、前記第2のミニバッチを用いて学習を行う学習部と
を有する情報処理装置。
(付記2)
前記学習部は、前記学習処理の際、前記第1のミニバッチを用いて行う学習が、予め定められたepoch数に到達した場合に、前記第2のミニバッチを用いて学習を行う、付記1に記載の情報処理装置。
(付記3)
前記学習部は、前記学習処理の際、前記第1のミニバッチを用いて行う学習が、予め定められた学習率に到達した場合に、前記第2のミニバッチを用いて学習を行う、付記1に記載の情報処理装置。
(付記4)
前記学習部は、前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、前記学習部に含まれる各ネットワーク層の重みパラメータを固定したうえで、前記第2のミニバッチを用いて学習を行う、付記1に記載の情報処理装置。
(付記5)
前記学習処理により得られた学習結果に、推論用データを入力することで推論処理を行う推論部と、
前記推論用データを入力する際、前記推論用データを用いて推論用パラメータを算出し、前記推論部に設定する更新部と
を更に有する、付記1に記載の情報処理装置。
(付記6)
ニューラルネットワークを用いて学習処理を行うコンピュータに、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する処理とを実行し、
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、前記第2のミニバッチを用いて学習を行う、
処理を実行させる情報処理プログラム。
(付記7)
ニューラルネットワークを用いて学習処理を行うコンピュータが、
学習用データに対してデータ拡張処理を行い第1のミニバッチを生成する処理と、該学習用データに対してデータ拡張処理を行わずに第2のミニバッチを生成する処理とを実行し、
前記学習処理の際、前記第1のミニバッチを用いて学習を行った後に、前記第2のミニバッチを用いて学習を行う、
処理を実行する情報処理方法。
【0093】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0094】
100 :情報処理装置
110 :拡張部
120 :学習部
130 :推論部
900 :情報処理装置
910 :更新部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11