(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-17
(45)【発行日】2025-02-26
(54)【発明の名称】残差ニューラルネットワークシステム及びプログラム
(51)【国際特許分類】
G06N 3/0464 20230101AFI20250218BHJP
G06N 3/0499 20230101ALI20250218BHJP
【FI】
G06N3/0464
G06N3/0499
(21)【出願番号】P 2023065781
(22)【出願日】2023-04-13
【審査請求日】2024-10-11
【早期審査対象出願】
(73)【特許権者】
【識別番号】523139847
【氏名又は名称】松村 香澄
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】松村 香澄
【審査官】多賀 実
(56)【参考文献】
【文献】Dehui Li et al.,"Multi - Direction Convolution for Semantic Segmentation",2020 25th International Conference on Pattern Recognition (ICPR) [online],IEEE,2021年05月05日,pp. 519-525,[検索日 2025.01.08], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/9413174>,DOI: 10.1109/ICPR48806.2021.9413174
【文献】Yan Zhou et al.,"Multi-directional feature refinement network for real-time semantic segmentation in urban street scenes",IET Computer Vision [online],John Wiley & Sons Ltd,2023年02月11日,Volume 17, Issue 4,pp.431-444,[検索日 2025.01.08], インターネット:<URL: https://ietresearch.onlinelibrary.wiley.com/doi/full/10.1049/cvi2.12178>,DOI: 10.1049/cvi2.12178
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 17/10-17/18
G06T 7/00- 7/90
G06V 10/00-10/98
(57)【特許請求の範囲】
【請求項1】
残差ブロックを複数接続した残差ニューラルネットワークシステムにおいて、
高さ方向及び幅方向に同一の複数ピクセルを有する第1カーネルを適用する第1畳み込み層と、
入力されるデータの高さ方向と同数のピクセル、幅方向に1ピクセルを有し所定のストライドで幅方向へ移動させ高さ方向へ移動させない第2カーネル、及び、高さ方向に1ピクセル幅方向に前記データの幅方向と同数のピクセルを有し所定のストライドで高さ方向に移動させ幅方向に移動させない第3カーネルを適用する第2畳み込み層と、
前記第1畳み込み層または前記第2畳み込み層に接続される全結合層と
を残差ブロック内に備える残差ニューラルネットワークシステム。
【請求項2】
前記第2畳み込み層には、前記データの高さ方向及び幅方向と同数のピクセル、チャンネル方向に1ピクセルを有し前記チャンネル方向にストライドさせる第4カーネルが適用される
ことを特徴とする請求項1に記載の残差ニューラルネットワークシステム。
【請求項3】
入力データを取得し、
高さ方向及び幅方向に同一の複数ピクセルを有する第1カーネルを適用する第1畳み込み層と、入力されるデータの高さ方向と同数のピクセル、幅方向に1ピクセルを有し所定のストライドで幅方向へ移動させ高さ方向へ移動させない第2カーネル、及び、高さ方向に1ピクセル幅方向に前記データの幅方向と同数のピクセルを有し所定のストライドで高さ方向に移動させ幅方向に移動させない第3カーネルを適用する第2畳み込み層と、前記第1畳み込み層または前記第2畳み込み層に接続される全結合層とを残差ブロック内に備え、該残差ブロックを複数接続した残差ニューラルネットワークに、取得した入力データを入力することにより、前記残差ニューラルネットワークから出力される出力データを取得する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、残差ニューラルネットワークシステム及びプログラムに関する。
【背景技術】
【0002】
近年、人工知能(AI; Artificial Intelligence)に基づくボードゲーム等の開発が盛んに進められている。例えば特許文献1には、盤面に基づくデータに基づいて、自己学習することができる情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は、通常の学習モデルが使用するよりも少ない回数の演算で処理を行うことが可能な残差ニューラルネットワークシステムを提供することができないという問題がある。
【0005】
一つの側面では、少ない回数の演算で処理を行うことが可能な残差ニューラルネットワークシステム等を提供することにある。
【課題を解決するための手段】
【0006】
一つの側面に係る残差ニューラルネットワークシステムは、残差ブロックを複数接続した残差ニューラルネットワークシステムにおいて、高さ方向及び幅方向に同一の複数ピクセルを有する第1カーネルを適用する第1畳み込み層と、入力されるデータの高さ方向と同数のピクセル、幅方向に1ピクセルを有し所定のストライドで幅方向へ移動させ高さ方向へ移動させない第2カーネル、及び、高さ方向に1ピクセル幅方向に前記データの幅方向と同数のピクセルを有し所定のストライドで高さ方向に移動させ幅方向に移動させない第3カーネルを適用する第2畳み込み層と、前記第1畳み込み層または前記第2畳み込み層に接続される全結合層とを残差ブロック内に備えることを特徴とする。
【発明の効果】
【0007】
一つの側面では、少ない回数の演算で処理を行うことが可能となる。
【図面の簡単な説明】
【0008】
【
図1】コンピュータの構成例を示すブロック図である。
【
図2】ResNetにおける残差ブロックの構造を説明する説明図である。
【
図3】本実施形態での残差ブロックの構造を説明する説明図である。
【
図6】特徴マップのサイズの変換処理を説明する説明図である。
【
図7】学習モデルを用いてボードゲームを実行する際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
実施形態1は、残差ブロックを複数接続した残差ニューラルネットワークを構築する形態に関する。残差ニューラルネットワークは、スキップコネクション(構造)を取り入れたニューラルネットワークの手法であり、例えば、ResNet(Residual Neural Network)またはDenseNet(Dense Convolutional Network)等である。なお、以下では、残差ニューラルネットワークがResNetである例を説明するが、他の種類の残差ニューラルネットワークにも同様に適用することができる。
【0011】
本実施形態では、情報処理装置1を含む。情報処理装置1は、種々の情報に対する処理、記憶及び送受信等を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC(パソコン)等である。本実施形態において、情報処理装置1は、パーソナルコンピュータであるものとし、以下では簡潔のためコンピュータ1と読み替える。
【0012】
図1は、コンピュータ1の構成例を示すブロック図である。コンピュータ1は、制御部11、記憶部12、通信部13、入力部14、表示部15、読取部16及び大容量記憶部17を含む。各構成はバスBで接続されている。
【0013】
制御部11は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、または量子プロセッサ等の演算処理装置を含む。制御部11は、記憶部12に記憶された制御プログラム1P(プログラム製品)を読み出して実行することにより、コンピュータ1に係る種々の情報処理または制御処理等を行う。
【0014】
なお、制御プログラム1Pは、単一のコンピュータ上で、または1つのサイトにおいて配置されるか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。なお、
図1では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0015】
記憶部12はRAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1Pまたはデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部13は通信に関する処理を行うための通信モジュールであり、ネットワーク等を介して、外部の情報処理装置等との間で情報の送受信を行う。
【0016】
入力部14は、マウス、キーボード、タッチパネルまたはボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部15は、液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。なお、入力部14は、キーボード、マウスまたは表示部15と一体化したタッチパネルでも良い。
【0017】
読取部16は、CD(Compact Disc)-ROMまたはDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部17に記憶しても良い。また、ネットワーク等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、大容量記憶部17に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
【0018】
大容量記憶部17は、例えばHDD(Hard disk drive)、またはSSD(Solid State Drive)等の記録媒体を備える。大容量記憶部17は、学習モデル171を含む。学習モデル171は、ResNetに基づいて構築された学習モデルである。
【0019】
なお、本実施形態において記憶部12及び大容量記憶部17は一体の記憶装置として構成されていても良い。また、大容量記憶部17は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部17はコンピュータ1に接続された外部記憶装置であっても良い。
【0020】
コンピュータ1は、種々の情報処理及び制御処理等をコンピュータ単体で実行しても良いし、複数のコンピュータで分散して実行しても良い。また、コンピュータ1は、1台のサーバ内に設けられた複数の仮想マシンによって実現されても良いし、クラウドサーバを用いて実現されても良い。
【0021】
図2は、ResNetにおける残差ブロックの構造を説明する説明図である。ResNetにおいて、スキップコネクション(残差接続;スキップ接続)と、加算演算子(+)との2つで構成された残差ブロック10a、10b・・・(以下場合により10で代表する)が直列に複数接続される。スキップコネクションは、1層以上の層をスキップした層同士を迂回経路で接続し、特徴マップを次の層以降の層へとショートカットして伝搬できるようにする残差接続である。
【0022】
残差ブロック10は、畳み込み層(Convolution)11a、バッチ正規化(Batch Normalization)11b、及び活性化関数11c等を複数含む。図示のように、残差ブロック10は、残差ブロック10a及び残差ブロック10b等を含む。
【0023】
畳み込み層11aは、ディープニューラルネットワークにおいて、学習済みフィルタバンクにより畳み込みを行う層である。バッチ正規化11bは、畳み込みニューラルネットワークの隠れ層において、ミニバッチ内のデータ分布を元に、チャンネル毎に特徴を正規化したのち、スケールまたはシフトを行う層である。活性化関数11cは、ディープニューラルネットワークにおいて広く用いられ、主に中間層向けの活性化関数である。
【0024】
活性化関数は、例えば、ReLU(Rectified Linear Units;整流化線形ユニット)関数、ReLU6関数、Swish関数、Mish関数、GELU(Gaussian error linear units)関数、ステップ(step)関数、シグモイド(sigmoid)関数、ソフトサイン(softsign)関数、またはソフトプラス(softplus)関数等を含む。
【0025】
図3は、本実施形態での残差ブロックの構造を説明する説明図である。本実施形態での残差ブロック20a、20b・・・(以下場合により20で代表する)は、第1畳み込み層11a(
図2の畳み込み層11aと同一)、バッチ正規化11b、活性化関数11c、第2畳み込み層12a、及び全結合層12bを含む。図示のように、残差ブロック20は、残差ブロック20a及び残差ブロック20b等を含む。
【0026】
なお、第1畳み込み層11a及び第2畳み込み層12aの詳細は後述の
図4及び
図5で説明する。全結合層12bは、第1畳み込み層11aまたは第2畳み込み層12aに接続される層である。
【0027】
通常の残差ブロック10は、第1畳み込み層11a、第1畳み込み層11a、・・・、第1畳み込み層11a・・・(すなわち、11a→11a→・・・→11a→・・・)により構成される。
【0028】
本実施形態での残差ブロック20において、任意の第1畳み込み層11aを、第2畳み込み層12aまたは全結合層12bで置き換えることができる。すなわち、残差ブロック20は、第1畳み込み層11a、第2畳み込み層12aまたは全結合層12bのいずれかを含んでも良い。または、残差ブロック20は、第1畳み込み層11a、第2畳み込み層12a、及び全結合層12bの任意の組み合わせにより構成されても良い。
【0029】
例えば、残差ブロック20は、第1畳み込み層11a、第2畳み込み層12a、全結合層12b、第1畳み込み層11a、第2畳み込み層12a、・・・、第1畳み込み層11a・・・(11a→12a→12b→11a→12a→・・・→11a→・・・)により構成されても良い。または、残差ブロック20は、第2畳み込み層12a、第1畳み込み層11a、全結合層12b、全結合層12b、第2畳み込み層12a、・・・、第1畳み込み層11a・・・(12a→11a→12b→12b→12a→・・・→11a→・・・)により構成されても良い。
【0030】
図示のように、残差ブロック20aは、第1畳み込み層11a、第2畳み込み層12a及び全結合層12b等により構成される。残差ブロック20bは、第1畳み込み層11a及び第2畳み込み層12a等により構成される。なお、残差ブロック20内に備えられる第1畳み込み層11a、第2畳み込み層12a、全結合層12bの数または順序は、特に限定されない。
【0031】
図4は、第1畳み込み層11aを説明する説明図である。第1畳み込み層11aは、高さ方向及び幅方向に同一の複数ピクセルを有する第1カーネル(Kernel)を適用する層である。カーネル(マスク;フィルタ)は、データの変換時に使用される係数である。
【0032】
Cはチャンネル数を示し、Hは入力されるデータの高さを示し、Wは入力されるデータの幅を示す。第1畳み込み層11aには、カーネル11a_1(第1カーネル)が適用される。カーネル11a_1は、高さ方向(H)にk_Hのピクセル、幅方向(W)にk_Wのピクセルを有し、所定のストライド(例えば、1)で幅方向(W)へ移動させ、また、高さ方向(H)へ移動させるカーネルである。k_Hは、カーネル11a_1の高さを示し、k_Wは、カーネル11a_1の幅を示す。第1畳み込み層11aは、チャンネル毎のカーネル11a_1の要素数がC×k_H×k_Wであり、C×k_H×k_W回乗算した結果を足すことにより、1つの出力値(内積値)を得るための変換を行う。
【0033】
図示のように、カーネル11a_1のサイズは、例えば、「3×3」である。すなわち、カーネル11a_1の高さ(k_H)は3ピクセルであり、幅(k_W)は3ピクセルである。カーネルのサイズ(Kernel_Size)は、畳み込みカーネルのサイズであり、例えば、3×3ピクセル、5×5ピクセル、または7×7ピクセル等であっても良い。
【0034】
カーネルのサイズが3×3ピクセルである場合、パディング(Padding)は1である。カーネルのサイズが5×5ピクセルである場合、パディングは2である。カーネルのサイズが7×7ピクセルである場合、パディングは3である。パディングは、データの出力サイズを調整するために、畳み込み層の処理を行う前に、入力データの周囲に例えば0等の固定のデータを埋めることである。ストライド(Stride)は1である。ストライドは、カーネルを適用する間隔である。ストライドが大きくなるほど、出力サイズは小さくなる。
【0035】
図5は、第2畳み込み層12aを説明する説明図である。
図5Aは、第2カーネルを適用した第2畳み込み層12aを説明する説明図である。
図5Bは、第3カーネルを適用した第2畳み込み層12aを説明する説明図である。
図5Cは、第4カーネルを適用した第2畳み込み層12aを説明する説明図である。Cはチャンネル数を示し、Hは入力されるデータの高さを示し、Wは入力されるデータの幅を示す。
【0036】
カーネル12a_1(第2カーネル)は、入力されるデータの高さ方向(H)と同数のピクセル、幅方向(W)に1ピクセルを有し、所定のストライド(例えば、1)で幅方向(W)へ移動させ高さ方向(H)へ移動させないカーネルである。チャンネル当たりの変換回数は「W」である。第2畳み込み層12aには、チャンネル毎に、高さ方向及び幅方向に「H×1」であるカーネル12a_1が適用される。
【0037】
第2畳み込み層12aは、チャンネル毎のカーネル12a_1の要素数がC×H×1であり、同じサイズである入力値の部分要素に対し、C×H×1回乗算した結果を足すことにより、1つの出力値を得るための変換を行う。
図5Aのように、カーネル12a_1の高さ(H)が9ピクセルであり、幅(W)は1ピクセルである。カーネル12a_1のサイズは「9×1」であり、パディングは0であり、ストライドは1である。
【0038】
カーネル12a_2(第3カーネル)は、入力されるデータの高さ方向(H)に1ピクセル幅方向(W)に当該データの幅方向(W)と同数のピクセルを有し、所定のストライド(例えば、1)で高さ方向(H)に移動させ幅方向(W)移動させないカーネルである。チャンネル当たりの変換回数は「H」である。第2畳み込み層12aには、チャンネル毎に、高さ方向及び幅方向に「1×W」であるカーネル12a_2が適用される。
【0039】
第2畳み込み層12aは、チャンネル毎のカーネル12a_2の要素数がC×1×Wであり、同じサイズである入力値の部分要素に対し、C×1×W回乗算した結果を足すことにより、1つの出力値を得るための変換を行う。
図5Bのように、カーネル12a_2の高さ(H)が1ピクセルであり、幅(W)は9ピクセルである。カーネル12a_2のサイズは「1×9」であり、パディングは0であり、ストライドは1である。
【0040】
カーネル12a_3(第4カーネル)は、入力されるデータの高さ方向(H)及び幅方向(W)と同数のピクセル、チャンネル方向(C)に1ピクセルを有し、当該チャンネル方向(C)にストライドさせるカーネルである。第2畳み込み層12aは、カーネル12a_3の要素数が1×H×Wであり、チャンネル方向(C)にストライドさせる変換を行う。
図5Cのように、第2畳み込み層12aは、カーネル12a_3の要素数が1×9×9であり、チャンネル方向(C)にストライドさせる変換を行う。
【0041】
通常の高さ方向と幅方向と共にストライドする第1畳み込み層11aでの畳み込み処理において、位置に依存する重みパラメータが存在しない。カーネル12a_1、カーネル12a_2及びカーネル12a_3のいずれか、または、これらの組み合わせを適用した第2畳み込み層12aの場合、いずれかの方向にストライドしない畳み込み処理において、位置に依存する重みパラメータが存在するため、1回の畳み込み処理で位置に依存する情報を認識することができる。
【0042】
また、通常の第1畳み込み層11aにおいて、例えば、C×k_H×k_Wの畳み込み処理1回で周辺1ピクセルの情報をしか認識することができない。上述したカーネル12a_1、カーネル12a_2またはカーネル12a_3を適用した第2畳み込み層12aにおいて、C×H×1、C×1×Wまたは1×H×Wの畳み込み処理で、格子方向に離れたピクセルの情報を1回の畳み込み処理で認識することができる。
【0043】
このように、第2畳み込み層12aには、カーネル12a_1、カーネル12a_2及びカーネル12a_3が適用される。なお、
図5では、カーネル12a_1、カーネル12a_2及びカーネル12a_3を第2畳み込み層12aに適用した例を説明したが、これに限るものではない。カーネル12a_1、カーネル12a_2及びカーネル12a_3のいずれかを第2畳み込み層12aに適用しても良い。または、カーネル12a_1、カーネル12a_2及びカーネル12a_3の組み合わせを第2畳み込み層12aに適用しても良い。
【0044】
通常、残差ブロック20において、特徴マップのサイズを示す入力データの形状と、出力データの形状とは同一である。第2畳み込み層12aが利用された場合、特徴マップのサイズは(C,1,W)または(C,H,1)であるため、当該第2畳み込み層12aに適用されたカーネル12a_1(第2カーネル)またはカーネル12a_2(第3カーネル)に対し、(C,H,W)に変換することが必要となる。
【0045】
図6は、特徴マップのサイズの変換処理を説明する説明図である。
図6Aは、特徴マップのサイズを説明する説明図である。
図6Bは、変換処理により得られた特徴マップの一例を示す説明図である。特徴マップのサイズは、第2カーネルにおける高さ方向に有する各データと、第3カーネルにおける幅方向に有する各データとを相互に加算することにより得られる。
【0046】
なお、
図6では、入力データが将棋の盤面データである例を説明するが、他の種類の入力データにも同様に適用することができる。図示のように、第2畳み込み層12aに適用されたカーネル12a_1(第2カーネル)において、高さ方向に有する各盤面データは、y1,y2,y3,y4,y5,y6,y7,y8,y9である。また、当該第2畳み込み層12aに適用されたカーネル12a_2(第3カーネル)において、幅方向に有する各盤面データは、x1,x2,x3,x4,x5,x6,x7,x8,x9である。高さ方向に有する各盤面データと、幅方向に有する各盤面データとを相互に加算する変換処理を行うことにより、チャンネル毎に(H,W)である特徴マップのサイズが得られる。
【0047】
図6Bに示されているように、(y1,y2,y3,y4,y5,y6,y7,y8,y9)と、(x1,x2,x3,x4,x5,x6,x7,x8,x9)とを相互に加算する変換処理を行うことにより、チャンネル毎に(9,9)である特徴マップのサイズが得られる。
【0048】
なお、上述した特徴マップのサイズの変換処理に限るものではない。特徴マップのサイズは、第2カーネルに対し、データの高さ方向と同数で当該データを高さ方向にコピーし、または、第3カーネルに対し、データの幅方向と同数で当該データを幅方向にコピーすることにより得られる。
【0049】
例えば、同じ値を繰り返してコピーすることにより、(C,H,W)である特徴マップのサイズが得られる。具体的には、カーネル12a_1(第2カーネル)に対し、盤面データの高さ方向(H)と同数(例えば、9)で当該盤面データを横方向(W)にコピーする。または、カーネル12a_2(第3カーネル)に対し、盤面データの幅方向(W)と同数(例えば、9)で当該盤面データを高さ方向(H)にコピーする。
【0050】
全結合層12bは、上述した第1畳み込み層11aまたは第2畳み込み層12aに接続される層である。例えば、全結合層12bは、第1畳み込み層11aと、当該第1畳み込み層11aと同数(例えば、256)の第2畳み込み層12aとを結合する層である。または、全結合層12bは、実施形態2で後述するように、チャンネル毎の全結合を行う全結合層である。
【0051】
続いて、残差ブロック20が残差ブロック20aである一例とし、データの畳み込み処理を説明する。
【0052】
コンピュータ1の制御部11は、対象となるデータを取得する。制御部11は、取得したデータを残差ブロック20aの第1畳み込み層11aに入力する。制御部11は、入力されたデータに対し、第1畳み込み層11aで畳み込み処理を実行する。第1畳み込み層11aには、高さ方向及び幅方向に同一の複数ピクセルを有する第1カーネル(カーネル11a_1)が適用される。
【0053】
制御部11は、第1畳み込み層11aから出力されたデータに対し、バッチ正規化11bでチャンネル毎に特徴を正規化する。制御部11は、第1畳み込み層11aでの畳み込み演算の結果を、活性化関数11cに通すことで、活性化関数によって変換する。第1畳み込み層11aの出力データは、入力データの特徴が抽出された特徴マップを表している。
【0054】
制御部11は、第1畳み込み層11aから出力されたデータを第2畳み込み層12aに入力する。制御部11は、当該データに対し、第2畳み込み層12aで畳み込み処理を実行する。第2畳み込み層12aには、第2カーネル(カーネル12a_1)、第3カーネル(カーネル12a_2)及び第4カーネル(カーネル12a_3)が適用される。
【0055】
第2カーネルは、入力されたデータの高さ方向と同数のピクセル、幅方向に1ピクセルを有し所定のストライド(例えば、1)で幅方向へ移動させ高さ方向へ移動させないカーネルである。第3カーネルは、高さ方向に1ピクセル幅方向に当該データの幅方向と同数のピクセルを有し所定のストライド(例えば、1)で高さ方向に移動させ幅方向に移動させないカーネルである。第4カーネルは、入力されるデータの高さ方向及び幅方向と同数のピクセル、チャンネル方向に1ピクセルを有し、当該チャンネル方向にストライドさせるカーネルである。
【0056】
制御部11は、第2カーネル及び第3カーネルに対し、第2畳み込み層12aで特徴マップのサイズの変換処理を行う。具体的には、制御部11は、第2畳み込み層12aで、第2カーネルにおける高さ方向に有する各データと、第3カーネルにおける幅方向に有する各データとを相互に加算するための変換処理を行う。制御部11は、第2畳み込み層12aでの変換処理を行うことにより、チャンネル毎に(H,W)である特徴マップのサイズが得られる。
【0057】
制御部11は、第2畳み込み層12aから出力されたデータに対し、バッチ正規化11bでチャンネル毎に特徴を正規化する。制御部11は、第2畳み込み層12aでの畳み込み演算の結果を、活性化関数11cに通すことで、活性化関数によって変換する。
【0058】
制御部11は、第2畳み込み層12aから出力されたデータを全結合層12bに入力する。制御部11は、当該データに対し、全結合層12bで畳み込み処理を実行する。全結合層12bは、第1畳み込み層11aまたは第2畳み込み層12aに接続された全結合層である。例えば、全結合層12bは、第1畳み込み層11aと、当該第1畳み込み層11aと同数(例えば、256)の第2畳み込み層12aとを結合する層である。この場合、入力データと出力データとが同一であるテンソル(配列)を得ることができる。
【0059】
制御部11は、全結合層12bから出力されたデータに対し、バッチ正規化11bでチャンネル毎に特徴を正規化する。制御部11は、全結合層12bでの畳み込み演算の結果を、活性化関数11cに通すことで、活性化関数によって変換する。
【0060】
本実施形態によると、少ない回数の演算で処理を行うための学習モデル171を提供することが可能となる。
【0061】
(実施形態2)
実施形態2は、チャンネル毎の全結合により得られた全結合層12bと、第1畳み込み層11aとを組み合わせる形態に関する。なお、実施形態1と重複する内容については説明を省略する。
【0062】
全結合層12bは、チャンネル毎の全結合を行う全結合層である。本実施形態での残差ブロック20は、全結合層12bを、第1畳み込み層11aと直列に接続することにより得られる。
【0063】
まず、コンピュータ1の制御部11は、入力データを取得する。入力データは、入力データを3次元テンソル(配列)とし、各次元のサイズを(C,H,W)とする。また、当該入力データにおける変更処理(コピー、移動または変換等)を行わず、当該入力データそのもののサイズは、(G,C//G,H,W)とみなすものである。Gはグループ数(例えば、1)であり、且つ、C(チャンネル数)の約数である。「//」は、整数除算演算子または商演算子であり、除算結果の商(整数部)が得られる。例えば、グループ数が1である場合、入力データのサイズは(1,C,H,W)である。
【0064】
次に、制御部11は、取得した入力データを全結合層12bに入力する。制御部11は、全結合層12bに対する第1畳み込み処理を実行する。具体的には、制御部11は、全結合層12bで、入力のチャンネル数をGとし、出力のチャンネル数を「C×H×W」とし、カーネルのサイズを(1,H,W)とし、グループ数をGをとした畳み込み処理を実行する。制御部11は、第1畳み込む処理により得られた、サイズが(G,H,W,C//G)である出力データを取得する。
【0065】
制御部11は、取得した出力データを第1畳み込み層11aに適用する。具体的には、制御部11は、入力のチャンネル数をGとし、出力のチャンネル数をCとし、カーネルのサイズを(k,k,C//G)、グループ数をGとし、パディングを(k//2,k//2,0)とすることを第1畳み込み層11aに設定する。kは、例えば3である。
【0066】
制御部11は、第1畳み込み層11aに対する第2畳み込み処理を実行する。第2畳み込み処理により得られた出力データのサイズは、(C,H,W,1)である。なお、全結合層12bと第1畳み込み層11aとの間に、バッチ正規化11b及び活性化関数11c等が備えられても良い。上述したチャンネルの方向にストライドする畳み込み処理によって、入力データと出力データとが同一のサイズのテンソルを得ることができる。
【0067】
本実施形態によると、チャンネル毎の全結合により得られた全結合層12bと、第1畳み込み層11aとを組み合わせることが可能となる。
【0068】
(実施形態3)
実施形態3は、学習モデル171を用いて、ボードゲームを実行する形態に関する。なお、実施形態1~2と重複する内容については説明を省略する。
【0069】
ボードゲームは、格子状にオブジェクトが配置されるゲームであり、例えば、将棋またはチェス等である。学習モデル171を用いて、ボードゲームのデータに基づき、少ない回数の演算でボードゲームを実現することができる。
【0070】
図7は、学習モデル171を用いてボードゲームを実行する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、ボードゲームをプレイするプレーヤーにより入力された入力データを入力部14により取得する(ステップS101)。制御部11は、取得した入力データを学習モデル171に入力し(ステップS102)、出力データを出力する(ステップS103)。
【0071】
なお、学習モデル171がサーバまたはクラウドサーバ上に提供されている場合、制御部11は、サーバまたはクラウドサーバを通じて、学習モデル171を利用する。制御部11は、学習モデル171から出力された出力データを表示部15により表示する(ステップS104)。制御部11は、ステップS101の処理に戻る。
【0072】
なお、上述した処理について、ボードゲームの例を説明したが、これに限るものではない。ボードゲームの他に、例えば、音階または曜日等の周期性のあるデータに基づくアプリケーションまたはゲーム等にも同様に適用することができる。
【0073】
本実施形態によると、学習モデル171を用いて、少ない回数の演算でボードゲームを実現することが可能となる。
【0074】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0075】
各実施形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。
【符号の説明】
【0076】
1 情報処理装置(コンピュータ)
11 制御部
12 記憶部
13 通信部
14 入力部
15 表示部
16 読取部
17 大容量記憶部
171 学習モデル
1a 可搬型記憶媒体
1b 半導体メモリ
1P 制御プログラム