(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】モデル生成方法、モデル生成プログラム、モデル生成装置、データ処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241210BHJP
G06N 3/08 20230101ALI20241210BHJP
【FI】
G06N20/00
G06N3/08
(21)【出願番号】P 2021198049
(22)【出願日】2021-12-06
【審査請求日】2024-01-09
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】浅田 祐樹
【審査官】新井 則和
(56)【参考文献】
【文献】特開2020-190996(JP,A)
【文献】特表2017-525038(JP,A)
【文献】山下 隆義,畳み込みニューラルネットワークの研究動向,画像ラボ 第31巻 第9号,2020年09月10日,技術雑誌(国内)202000540003
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
プロセッサ(12)により実行され、畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することにより、機械学習モデルを生成するモデル生成方法であって、
置換前の前記畳み込みレイヤに定義される元レイヤを構成する重みパラメータを、前記分解レイヤを構成する重みパラメータの行列積である重み行列積と等価な等価重み行列を構成するように、並び替えることと、
前記等価重み行列を行列分解し、複数のランクを抽出することと、
少なくとも一つの前記ランクを選別し、当該選別ランクに対応する前記重み行列積での畳み込みに基づき、前記分解レイヤを構築することとを、含むモデル生成方法。
【請求項2】
前記分解レイヤを構築することは、
前記ランクの全数よりも少数の前記選別ランクに対応する前記重み行列積での畳み込みに基づき、前記分解レイヤを構築することを、含む請求項1に記載のモデル生成方法。
【請求項3】
前記分解レイヤを構築することは、
少なくとも二つの前記選別ランクに対応する前記重み行列積での、畳み込み結果同士での要素加算により、前記分解レイヤを生成することを、含む請求項1又は2に記載のモデル生成方法。
【請求項4】
前記元レイヤの重みパラメータを並び替えることは、
デプスワイズ畳み込みフィルタとポイントワイズ畳み込みフィルタとに行列分解した前記分解レイヤの前記重み行列積と等価な前記等価重み行列を、並び替えにより取得することを、含む請求項1に記載のモデル生成方法。
【請求項5】
前記元レイヤの重みパラメータを並び替えることは、
重み共有型デプスワイズ畳み込みフィルタとポイントワイズ畳み込みフィルタとに行列分解した前記分解レイヤの前記重み行列積と等価な前記等価重み行列を、並び替えにより取得することを、含む請求項1に記載のモデル生成方法。
【請求項6】
前記元レイヤの重みパラメータを並び替えることは、
一対の一次元デプスワイズ畳み込みフィルタに行列分解した前記分解レイヤの前記重み行列積と等価な前記等価重み行列を、並び替えにより取得することを、含む請求項1に記載のモデル生成方法。
【請求項7】
前記元レイヤの重みパラメータを並び替えることは、
前回の前記元レイヤから置換された前記分解レイヤを、次回の前記元レイヤに再定義することを、含む請求項1~6のいずれか一項に記載のモデル生成方法。
【請求項8】
畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することにより、機械学習モデルを生成するために記憶媒体(10)に記憶され、プロセッサ(12)に実行させる命令を含むモデル生成プログラムであって、
前記命令は、
置換前の前記畳み込みレイヤに定義される元レイヤを構成する重みパラメータを、前記分解レイヤを構成する重みパラメータの行列積である重み行列積と等価な等価重み行列を構成するように、並び替えさせることと、
前記等価重み行列を行列分解し、複数のランクを抽出させることと、
少なくとも一つの前記ランクを選別し、当該選別ランクに対応する前記重み行列積での畳み込みに基づき、前記分解レイヤを構築させることとを、含むモデル生成プログラム。
【請求項9】
プロセッサ(12)を備え、畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することにより、機械学習モデルを生成するモデル生成装置であって、
前記プロセッサは、
置換前の前記畳み込みレイヤに定義される元レイヤを構成する重みパラメータを、前記分解レイヤを構成する重みパラメータの行列積である重み行列積と等価な等価重み行列を構成するように、並び替えることと、
前記等価重み行列を行列分解し、複数のランクを抽出することと、
少なくとも一つの前記ランクを選別し、当該選別ランクに対応する前記重み行列積での畳み込みに基づき、前記分解レイヤを構築することとを、実行するように構成されるモデル生成装置。
【請求項10】
請求項1~7のいずれか一項に記載のモデル生成方法により生成された、前記畳み込みニューラルネットワークの前記機械学習モデルを記憶する記憶媒体(10)と、
前記記憶媒体に記憶された前記機械学習モデルに基づくデータ処理を実行するプロセッサ(12)とを、備えるデータ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、畳み込みニューラルネットワークの機械学習モデルを生成するモデル生成技術に、関する。
【背景技術】
【0002】
特許文献1に開示のモデル生成技術は、畳み込みニューラルネットワークの畳み込みレイヤにおいて重みパラメータにより構成される重み行列を、行列分解してから低ランク化することで、機械学習モデルを縮約している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に開示のモデル生成技術は、元の畳み込みレイヤのレイヤ構造を維持したまま、行列分解及び低ランク化を実行している。この場合、機械学習モデルの複雑化する畳み込みニューラルネットワークの処理速度を高めることに、限界が生じてしまう。
【0005】
本開示の課題は、畳み込みニューラルネットワークの処理速度を高めるモデル生成方法を、提供することにある。本開示の別の課題は、畳み込みニューラルネットワークの処理速度を高めるモデル生成プログラムを、提供することにある。本開示の別の課題は、畳み込みニューラルネットワークの処理速度を高めるモデル生成装置を、提供することにある。開示の別の課題は、畳み込みニューラルネットワークの処理速度が高いデータ処理装置を、提供することにある。
【課題を解決するための手段】
【0006】
以下、課題を解決するための本開示の技術的手段について、説明する。尚、特許請求の範囲及び本欄に記載された括弧内の符号は、後に詳述する実施形態に記載された具体的手段との対応関係を示すものであり、本開示の技術的範囲を限定するものではない。
【0007】
本開示の第一態様は、
プロセッサ(12)により実行され、畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することにより、機械学習モデルを生成するモデル生成方法であって、
置換前の畳み込みレイヤに定義される元レイヤを構成する重みパラメータを、分解レイヤを構成する重みパラメータの行列積である重み行列積と等価な等価重み行列を構成するように、並び替えることと、
等価重み行列を行列分解し、複数のランクを抽出することと、
少なくとも一つのランクを選別し、当該選別ランクに対応する重み行列積での畳み込みに基づき、分解レイヤを構築することとを、含む。
【0008】
本開示の第二態様は、
畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することにより、機械学習モデルを生成するために記憶媒体(10)に記憶され、プロセッサ(12)に実行させる命令を含むモデル生成プログラムであって、
命令は、
置換前の畳み込みレイヤに定義される元レイヤを構成する重みパラメータを、分解レイヤを構成する重みパラメータの行列積である重み行列積と等価な等価重み行列を構成するように、並び替えさせることと、
等価重み行列を行列分解し、複数のランクを抽出させることと、
少なくとも一つのランクを選別し、当該選別ランクに対応する重み行列積での畳み込みに基づき、分解レイヤを構築させることとを、含む。
【0009】
本開示の第三態様は、
プロセッサ(12)を備え、畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することにより、機械学習モデルを生成するモデル生成装置であって、
プロセッサは、
置換前の畳み込みレイヤに定義される元レイヤを構成する重みパラメータを、分解レイヤを構成する重みパラメータの行列積である重み行列積と等価な等価重み行列を構成するように、並び替えることと、
等価重み行列を行列分解し、複数のランクを抽出することと、
少なくとも一つのランクを選別し、当該選別ランクに対応する重み行列積での畳み込みに基づき、分解レイヤを構築することとを、実行するように構成される。
【0010】
これら第一~第三態様によると、置換前の畳み込みレイヤに定義される元レイヤを構成する重みパラメータは、置換後の分解レイヤを構成する重みパラメータの重み行列積と等価な等価重み行列を構成するように、並び替えられる。これによれば、等価重み行列の行列分解で抽出された複数ランクから、少なくとも一つ選別される選別ランクに対応した重み行列積での畳み込みに基づき分解レイヤを構築することで、当該分解レイヤにおける重みパラメータ数を可及的に低減することができる。故に、畳み込みニューラルネットワークの処理速度を高めることが可能となる。
【0011】
本開示の第四態様は、データ処理装置であって、
第一態様のモデル生成方法により生成された畳み込みニューラルネットワークの機械学習モデルを記憶する記憶媒体(10)と、
記憶媒体に記憶された機械学習モデルに基づくデータ処理を実行するプロセッサ(12)とを、備える。
【0012】
このような第四態様によると、第一態様のモデル生成方法により生成された畳み込みニューラルネットワークの機械学習モデルに基づくデータ処理では、重みパラメータ数が可及的に低減され得た分解レイヤを通して、高い処理速度を実現することが可能となる。
【図面の簡単な説明】
【0013】
【
図1】第一実施形態の全体構成を示すブロック図である。
【
図2】第一実施形態による機械学習モデルを説明するための模式図である。
【
図3】第一実施形態による初期レイヤを説明するための模式図である。
【
図4】第一実施形態による分解レイヤを説明するための模式図である。
【
図5】第一実施形態による初期レイヤを説明するための模式図である。
【
図6】第一実施形態による分解レイヤを説明するための模式図である。
【
図7】第一実施形態によるモデル生成装置の機能構成を示すブロック図である。
【
図8】第一実施形態によるモデル生成フローを示すフローチャートである。
【
図9】第一実施形態による並び替え処理を説明するための模式図である。
【
図10】第一実施形態による並び替え処理を説明するための模式図である。
【
図11】第一実施形態による並び替え処理を説明するための模式図である。
【
図12】第一実施形態による並び替え処理を説明するための模式図である。
【
図13】第一実施形態によるランク抽出処理を説明するための模式図である。
【
図14】第一実施形態によるレイヤ構築処理を説明するための模式図である。
【
図15】第一実施形態によるレイヤ構築処理を説明するための模式図である。
【
図16】第二実施形態による分解レイヤを説明するための模式図である。
【
図17】第二実施形態による分解レイヤを説明するための模式図である。
【
図18】第二実施形態によるモデル生成フローを示すフローチャートである。
【
図19】第二実施形態による並び替え処理を説明するための模式図である。
【
図20】第二実施形態によるレイヤ構築処理を説明するための模式図である。
【
図21】第二実施形態によるレイヤ構築処理を説明するための模式図である。
【
図22】第三実施形態による二次分解レイヤを説明するための模式図である。
【
図23】第三実施形態による一次分解レイヤを説明するための模式図である。
【
図24】第三実施形態による二次分解レイヤを説明するための模式図である。
【
図25】第三実施形態によるモデル生成フローを示すフローチャートである。
【
図26】第三実施形態による並び替え処理を説明するための模式図である。
【
図27】第三実施形態によるレイヤ構築処理を説明するための模式図である。
【
図28】第三実施形態によるレイヤ構築処理を説明するための模式図である。
【発明を実施するための形態】
【0014】
以下、本開示の実施形態を図面に基づき複数説明する。尚、各実施形態において対応する構成要素には同一の符号を付すことで、重複する説明を省略する場合がある。また、各実施形態において構成の一部分のみを説明している場合、当該構成の他の部分については、先行して説明した他の実施形態の構成を適用することができる。さらに、各実施形態の説明において明示している構成の組み合わせばかりではなく、特に組み合わせに支障が生じなければ、明示していなくても複数の実施形態の構成同士を部分的に組み合わせることができる。
【0015】
(第一実施形態)
図1に示す第一実施形態のモデル生成装置1は、畳み込みニューラルネットワークにおける畳み込みレイヤを行列分解した分解レイヤへ置換することで、機械学習モデルMLを生成する。そのためにモデル生成装置1は少なくとも一つの専用コンピュータを含んで構成される。モデル生成装置1を構成する専用コンピュータは、メモリ10とプロセッサ12とを、少なくとも一つずつ備えている。
【0016】
メモリ10は、コンピュータにより読み取り可能なプログラム又はデータ等を非一時的に記憶する、例えば半導体メモリ、磁気媒体、及び光学媒体等のうち、少なくとも一種類の非遷移的実体的記憶媒体(non-transitory tangible storage medium)である。プロセッサ12は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、及びRISC(Reduced Instruction Set Computer)-CPU等のうち、少なくとも一種類をコアとして含む。
【0017】
図2に示すように機械学習モデルMLは、入力レイヤLiと出力レイヤLoとの間の中間層として畳み込みレイヤLmを複数有する畳み込みニューラルネットワークを、提供する。
図3,4に示すように畳み込みレイヤLmは、チャンネル数cの特徴マップnに対して畳み込み演算を遂行することで、チャンネル数oの特徴マップn+1を出力する。
【0018】
図3に示すように、畳み込みレイヤLmの初期構造である初期レイヤLm0は、h×w×cサイズの三次元テンソルをノーマル畳み込みフィルタ(即ち、カーネル)Fとして、出力チャンネル数o分の当該畳み込みフィルタFから構築される。ここで、初期レイヤLm0においてチャンネル数oの各出力チャンネル毎での畳み込みフィルタFは、
図5に示すh×w×c個の重みパラメータw
ochwを行列成分とした重み行列により、それぞれ規定される。そこで初期レイヤLm0のレイヤ構造は、
図5の示す結合式により表現可能となっている。尚、
図5の結合式におけるb
oは、各出力チャンネル毎のバイアスパラメータである。
【0019】
図4に示すように、畳み込みレイヤLmの行列分解により初期レイヤLm0から置換される分解レイヤLmdは、同レイヤLmdを構成する重みパラメータの行列積である重み行列積での、畳み込みに基づき構築される。特に第一実施形態の分解レイヤLmdは、デプスワイズ(DW:Depth-Wise)畳み込みフィルタFdwとポイントワイズ(PW:Point-Wise)畳み込みフィルタFpwとに初期レイヤLm0(
図3参照)を行列分解した重み行列積での、畳み込みに基づき構築される。
【0020】
ここで、分解レイヤLmdにおいて入力チャンネル数c分のDW畳み込みフィルタFdwは、それぞれ
図4に示すh×w×1サイズの二次元テンソルであって、
図6に示すh×w個の重みパラメータw’
chwを行列成分とした重み行列により、規定される。一方、分解レイヤLmdにおいて出力チャンネル数o分のPW畳み込みフィルタFpwは、それぞれ
図4に示す1×1×cサイズの一次元テンソルであって、
図6に示す重みパラメータw”
ocを行列成分とした重み行列により、規定される。これらのことから分解レイヤLmdは、
図6の示す結合式により表現可能となっている。尚、
図6の結合式におけるb
oは、各出力チャンネル毎のバイアスパラメータである。
【0021】
各畳み込みレイヤLm毎に初期レイヤLm0から置換された分解レイヤLmdを含む機械学習モデルMLは、
図1に示すようにメモリ10に記憶される。そこでモデル生成装置1のプロセッサ12は、メモリ10に記憶された機械学習モデルMLに基づくデータ処理を実行することで、データ処理装置としても機能する。ここで、モデル生成装置1によるデータ処理は、例えば教師データを用いた機械学習モデルMLの機械学習処理、及び機械学習モデルMLに通した入力データの分析処理等のうち、少なくとも一種類である。尚、そうした教師データ及び入力データは、例えば画像データ、音声データ、文章データ、センシングデータ、車両運動データ、車両走行データ、及び環境データ等のデジタルデータのうち、少なくとも一種類に関するデータである。
【0022】
モデル生成装置1においてプロセッサ12は、このように利用される機械学習モデルMLを生成するために、メモリ10に記憶されたモデル生成プログラムに含まれる複数の命令を、実行する。これによりモデル生成装置1は、畳み込みレイヤLmを初期レイヤLm0から分解レイヤLmdへと置換することで、機械学習モデルMLを生成するための複数の機能ブロックを、構築する。このようにモデル生成装置1では、メモリ10に記憶のマッチングプログラムが複数命令をプロセッサ12に実行させることで、複数機能ブロックの各機能が実現される。こうした複数機能ブロックには、
図7に示すように並び替えブロック100、ランク抽出ブロック200、及びレイヤ構築ブロック300が含まれる。
【0023】
これらのブロック100,200,300の共同により、モデル生成装置1が畳み込みレイヤLmを初期レイヤLm0から分解レイヤLmdへと置換することで、機械学習モデルMLを生成するためのモデル生成方法は、
図8のモデル生成フローに従って実行される。尚、モデル生成フローにおける各「S」は、生成プログラムに含まれた複数命令によって実行される複数ステップを、それぞれ意味している。
【0024】
第一実施形態のモデル生成フローでは、
図8に示すようにS101~S103が実行される。具体的に、S101において並び替えブロック100は、置換前の畳み込みレイヤLmとしてモデル生成装置1へ入力された初期レイヤLm0を元レイヤと定義し、当該元レイヤを構成する重みパラメータw
ochwを並び替える。このとき並び替えブロック100は、置換後の分解レイヤLmdを構成する重みパラメータw’
chw,w”
oc同士の行列積である重み行列積に対して、
図9の如く等価となる等価重み行列WMeを構成するように、初期レイヤLm0の重みパラメータw
ochwを並び替える。
【0025】
具体的に並び替えブロック100は、元レイヤとしての初期レイヤLm0を構成するノーマル畳み込みフィルタFの重みパラメータw
ochwを、
図10に示すようにチャンネル数cの入力チャンネル毎に振り分ける。それと共に並び替えブロック100は、初期レイヤLm0から置換される分解レイヤLmdを構成する、DW畳み込みフィルタFdwの重みパラメータw’
chwと、PW畳み込みフィルタFpwの重みパラメータw”
ocとを、それぞれ
図11,12に示すように入力チャンネル毎に振り分ける。
【0026】
こうした振り分けの下で並び替えブロック100は、
図9の右辺に示す重みパラメータw’
chw,w”
oc同士の重み行列積に対して等式が成立するように、
図9の左辺に示す重みパラメータw
ochwを入力チャンネル毎に並び替えて等価重み行列WMeを生成する。このとき特に第一実施形態では、一列の一次元テンソルとなるDW重み行列が、DW畳み込みフィルタFdwの重みパラメータw’
chwに関して想定される。それと共に第一実施形態では、DW重み行列との重み行列積を形成する一行の一次元テンソルとなるPW重み行列が、PW畳み込みフィルタFpwの重みパラメータw”
ocに関して想定される。これらの想定から第一実施形態では、(h×w)×oサイズの二次元テンソルとなる重み行列が、等価重み行列WMeとして規定される。
【0027】
図8に示すS102においてランク抽出ブロック200は、S101の並び替えブロック100により取得された等価重み行列WMeを行列分解することで、複数のランクrを抽出する。このとき特に第一実施形態のランク抽出ブロック200は、
図13に示すように、重みパラメータw’
chwのDW重み行列に関連した分解行列Uと、特異値対角行列Σと、重みパラメータw”
ocのPW重み行列に関連した分解行列Vとの、行列積に入力チャンネル毎の等価重み行列WMeを分解する。そこで、こうした入力チャンネル毎の特異値分解においてランク抽出ブロック200は、特異値対角行列Σの固有値成分である各特異値ω
rを識別するためのインデックス(
図13の例では、符号ωの下付サフィックス0,1,2)を、それぞれランクrとして抽出する。それと共にランク抽出ブロック200は、各ランクrにそれぞれ対応する行列要素として、分解行列Uの列及び分解行列Vの行を、抽出する。さらに、これらの抽出結果に基づきランク抽出ブロック200は、各ランクr毎に、DW重み行列を分解行列Uの列と特異値ω
rとの行列積から且つPW重み行列を分解行列Vの行自体からそれぞれ取得、又はDW重み行列を分解行列Uの列自体から且つPW重み行列を分解行列Vの行と特異値ω
rとの行列積からそれぞれ取得する。
【0028】
図8に示すS103においてレイヤ構築ブロック300は、S102のランク抽出ブロック200により抽出された複数ランクrから少なくとも一つのランクrsを選別し、当該選別ランクrsに対応する重み行列積での畳み込みに基づき、分解レイヤLmdを構築する。このとき特に第一実施形態のレイヤ構築ブロック300は、
図14に示すチャンネル数cの入力チャンネル毎に等価重み行列WMeを分解したDW重み行列及びPW重み行列の行列積として、ランクrの全数(即ち、特異値対角行列Σのランク数)よりも少数となる少なくとも二つの選別ランクrsにそれぞれ対応した重み行列積も、選別する。ここで選別ランクrsは、特異値対角行列Σにおいて特異値ω
rの大きいランクrから、選別されるとよい。換言すれば、特異値対角行列Σにおいて特異値ω
rの小さいランクrは、選別ランクrsからは除外されるとよい。
【0029】
こうした選別の下でレイヤ構築ブロック300は、
図14,15に示すように各選別ランクrsに対応するDW重み行列とPW重み行列とでの畳み込み結果として得られる特徴マップ同士を、選別ランクrsに亘って要素加算することで、分解レイヤLmdを取得する。具体的にレイヤ構築ブロック300は、各選別ランクrs毎に、特徴マップnをDW重み行と畳み込み演算して得られるhxwxcの特徴マップをさらに、PW重み行列と畳み込み演算してhxwxoの特徴マップを得てから、全ての要素毎の加算を実行してhxwxoの特徴マップn+1を出力する。ここで
図14は、各選別ランクrsに応じた行列成分である重みパラメータw’
chw,w”
oc同士の結合を、入力チャンネル毎での分解レイヤLmdの構造として表現している。但し、
図14では、選別ランクrsとの対応関係を明確にするため、説明の便宜上、各重みパラメータw’
chw,w”
ocに付した上付サフィックスにより、対応する選別ランクrsを表している。
【0030】
以上によりレイヤ構築ブロック300は、入力に応じてメモリ10に記憶された元レイヤの初期レイヤLm0を、選別ランクrsに基づき構築した分解レイヤLmdへと置換する。このとき、例えば機械学習が必要となるようなDW畳み込みとPW畳み込みとの組み合わせであっても、畳み込みレイヤLmからの置換が、機械学習なしに劣化を抑制且つ精度を保持して実現可能となる。
【0031】
(作用効果)
以上説明した第一実施形態の作用効果を、以下に説明する。
【0032】
第一実施形態によると、置換前の畳み込みレイヤLmに定義される元レイヤとして初期レイヤLm0を構成する重みパラメータwochwは、置換後の分解レイヤLmdを構成する重みパラメータw’chw,w”ocの重み行列積と等価な等価重み行列WMeを構成するように、並び替えられる。これによれば、等価重み行列WMeの行列分解で抽出された複数ランクrから、少なくとも一つ選別される選別ランクrsに対応した重み行列積での畳み込みに基づき分解レイヤLmdを構築することで、当該分解レイヤLmdにおける重みパラメータ数を可及的に低減することができる。故に、畳み込みニューラルネットワークの処理速度を高めることが可能となる。また、畳み込みニューラルネットワークでの演算量を低減すると共に、置換後のレイヤ構造を統一させて、ハードウェアとしてのモデル生成装置1の小型化を図ることも可能となる。
【0033】
第一実施形態によると、ランクrの全数よりも少数の選別ランクrsに対応する重み行列積での畳み込みに基づき、分解レイヤLmdを構築するので、重みパラメータ数の低減効果を高めることができる。故に第一実施形態は、畳み込みニューラルネットワークの処理速度を高める上で、有利となる。また第一実施形態は、モデル生成装置1の小型化を図る上でも有利となる。
【0034】
第一実施形態によると、少なくとも二つの選別ランクrsに対応する重み行列積での、畳み込み結果同士での要素加算により、分解レイヤLmdを生成するので、置換精度を高めることができる。ここで特に第一実施形態では、選別ランクrsがランクrの全数よりも少数であることとも相俟って、低ランク近似による置換精度を高めることができる。故に第一実施形態は、畳み込みニューラルネットワークの処理速度と共に、処理精度を高める上で有利となる。また第一実施形態は、処理精度の高いモデル生成装置1の小型化を図る上でも有利となる。
【0035】
第一実施形態によると、DW畳み込みフィルタFdwとPW畳み込みフィルタFpwとに行列分解した分解レイヤLmdの重み行列積と等価となるように、等価重み行列WMeが初期レイヤLm0での重みパラメータwochwの並び替えによって取得される。このようなDW畳み込み及びPW畳み込みの組み合わせによれば、選別ランクrsに対応する重み行列積での畳み込みに基づくレイヤ構築と相俟って、分解レイヤLmdにおける重みパラメータ数の低減効果を高めることができる。故に第一実施形態は、畳み込みニューラルネットワークの処理速度を高める上で、有利となる。また第一実施形態は、モデル生成装置1の小型化を図る上でも有利となる。
【0036】
第一実施形態によると、モデル生成方法により生成された畳み込みニューラルネットワークの機械学習モデルMLに基づくデータ処理では、重みパラメータ数が可及的に低減され得た分解レイヤLmdを通して、高い処理速度を実現することが可能となる。また、畳み込みニューラルネットワークでのデータ処理の演算量が低減されると共に、レイヤ構造が統一されることから、データ処理装置として機能するハードウェアでもあるモデル生成装置1の小型化を図ることが可能となる。
【0037】
(第二実施形態)
第二実施形態は、第一実施形態の変形例である。
【0038】
第二実施形態において
図16に示すように分解レイヤLmdは、重み共有型のDW畳み込みフィルタFdwsとPW畳み込みフィルタFpwとに初期レイヤLm0を行列分解した重み行列積での、畳み込みに基づき構築される。特に第二実施形態の分解レイヤLmdでは、第一実施形態に準じて規定される出力チャンネル数o分のPW畳み込みフィルタFpwに対して、単一のDW畳み込みフィルタFdwsが共有化される。
【0039】
ここで重み共有型DW畳み込みフィルタFdwsは、
図16に示すh×w×1サイズの二次元テンソルであって、
図17に示すh×w個の重みパラメータw’
hwを行列成分とした重み行列により、規定される。そこで第二実施形態の分解レイヤLmdは、
図17の示す結合式により表現可能となっている。尚、
図17の結合式におけるb
oは、各出力チャンネル毎のバイアスパラメータである。
【0040】
こうした第二実施形態の
図18に示すモデル生成フローでは、第一実施形態のS101~S103に代えて、S201~S203が実行される。具体的にS201において並び替えブロック100は、分解レイヤLmdを構成する重みパラメータw’
hw,w”
oc同士の重み行列積に対して、元レイヤである初期レイヤLm0の重みパラメータw
ochwを並び替える。このとき特に第二実施形態の並び替えブロック100は、
図19の右辺に示す重みパラメータw’
hw,w”
oc同士の重み行列積に対して等式が成立するように、
図19の左辺に示す重みパラメータw
ochwを並び替えて等価重み行列WMeを生成する。
【0041】
ここで、PW畳み込みフィルタFpwの重みパラメータw”ocに関して第一実施形態に準じて一行の一次元テンソルに想定されるPW重み行列に対し、DW畳み込みフィルタFdwsの重みパラメータw’hwに関しては、一列の一次元テンソルとなるDW重み行列が想定される。そこで第二実施形態では、(h×w)×(o×c)サイズの二次元テンソルとなる重み行列が、DW重み行列及びPW重み行列の行列積と等価な等価重み行列WMeとして、規定される。
【0042】
図18に示す第二実施形態のモデル生成フローでは、S202においてランク抽出ブロック200が、S201の並び替えブロック100により取得された等価重み行列WMeを行列分解することで、複数のランクrを抽出する。このとき特に第二実施形態のランク抽出ブロック200は、重みパラメータw’
hwのDW重み行列に関連した分解行列Uと、特異値対角行列Σと、重みパラメータw”
ocのPW重み行列に関連した分解行列Vとの、行列積に等価重み行列WMeを分解する。そこで第二実施形態のランク抽出ブロック200は、特異値対角行列Σにおける各特異値ω
rのランクrと、それぞれ対応する分解行列Uの列及び分解行列Vの行を、抽出する。さらに、これらの抽出結果に基づき第二実施形態のランク抽出ブロック200は、各ランクr毎に、DW重み行列を分解行列Uの列と特異値ω
rとの行列積から且つPW重み行列を分解行列Vの行自体からそれぞれ取得、又はDW重み行列を分解行列Uの列自体から且つPW重み行列を分解行列Vの行と特異値ω
rとの行列積からそれぞれ取得する。
【0043】
さらに第二実施形態のモデル生成フローでは、S203においてレイヤ構築ブロック300が、S202のランク抽出ブロック200により抽出された複数ランクrから選別した選別ランクrsに対応する重み行列積での畳み込みに基づき、分解レイヤLmdを構築する。このとき特に第二実施形態のレイヤ構築ブロック300は、
図20に示すように等価重み行列WMeを分解したDW重み行列及びPW重み行列の行列積として、ランクrの全数よりも少数となる少なくとも二つの選別ランクrsにそれぞれ対応した重み行列積も、選別する。
【0044】
こうした選別の下で第二実施形態のレイヤ構築ブロック300は、
図20,21に示すように各選別ランクrsに対応する重み共有型DW重み行列とPW重み行列とでの畳み込み結果として得られる特徴マップを、選別ランクrsに亘って要素加算することで、分解レイヤLmdを取得する。ここで
図20は、各選別ランクrsに応じた行列成分である重みパラメータw’
hw,w”
oc同士の結合を、分解レイヤLmdの構造として表現している。但し、
図20では、選別ランクrsとの対応関係を明確にするため、説明の便宜上、各重みパラメータw’
hw,w”
ocに付した上付サフィックスにより、対応する選別ランクrsを表している。以上により第二実施形態のレイヤ構築ブロック300も、入力に応じてメモリ10に記憶された元レイヤの初期レイヤLm0を、選別ランクrsに基づき構築した分解レイヤLmdへと置換する。
【0045】
以上説明した第二実施形態によると、置換前の畳み込みレイヤLmに定義される元レイヤとして初期レイヤLm0を構成する重みパラメータwochwは、置換後の分解レイヤLmdを構成する重みパラメータw’hw,w”ocの重み行列積と等価な等価重み行列WMeを構成するように、並び替えられる。これによれば、第一実施形態と同様の原理から、分解レイヤLmdにおける重みパラメータ数を可及的に低減して、畳み込みニューラルネットワークの処理速度を高めることが可能となる。また、畳み込みニューラルネットワークでの演算量を低減すると共に、置換後のレイヤ構造を統一させて、モデル生成装置1の小型化を図ることも可能となる。
【0046】
さらに第二実施形態によると、重み共有型DW畳み込みフィルタFdwsとPW畳み込みフィルタFpwとに行列分解した分解レイヤLmdの重み行列積と等価となるように、等価重み行列WMeが初期レイヤLm0での重みパラメータwochwの並び替えによって取得される。このようにPW畳み込みに対して重みパラメータw’hwを共有化したDW畳み込みによれば、選別ランクrsに対応する重み行列積での畳み込みに基づくレイヤ構築と相俟って、分解レイヤLmdにおける重みパラメータ数の低減効果を高めることができる。故に第二実施形態は、畳み込みニューラルネットワークの処理速度を高める上で、有利となる。また第二実施形態は、モデル生成装置1の小型化を図る上でも有利となる。
【0047】
(第三実施形態)
第三実施形態は、第二実施形態の変形例である。
【0048】
第三実施形態の畳み込みレイヤLmとしては、前回の元レイヤである初期レイヤLm0から第二実施形態に従って置換された一次分解レイヤLmdが、次回の元レイヤに再定義されることで、さらに行列分解された二次分解レイヤLmd2へと置換される。そこで
図22に示すように二次分解レイヤLmd2は、一次分解レイヤLmdのうち重み共有型DW畳み込みフィルタFdwsを一対の一次元DW畳み込みフィルタFdw2へとさらに行列分解した重み行列積での、畳み込みに基づき構築される。
【0049】
以下の説明では、再定義後の元レイヤとなる一次分解レイヤLmdのうち重み共有型DW畳み込みフィルタFdwsに関して、
図23の結合式にて示すように便宜上、第二実施形態で説明の重みパラメータw’
hwが重みパラメータw
hwと再定義されているものとする。尚、
図23の結合式におけるbは、バイアスパラメータである。
【0050】
一対のDW畳み込みフィルタFdw2のうち一方は、
図22に示す1×w×1サイズの一次元テンソルであって、
図24に示すw個の重みパラメータw’
wを行列成分とした重み行列により、規定される。これに対して他方のDW畳み込みフィルタFdw2は、
図22に示すh×1×1サイズの一次元テンソルであって、
図24に示すh個の重みパラメータw”
hを行列成分とした重み行列により、規定される。これらのことから第三実施形態の二次分解レイヤLmd2は、
図24の示す結合式により表現可能となっている。尚、
図24の結合式におけるbは、バイアスパラメータである。
【0051】
こうした第三実施形態の
図25に示すモデル生成フローでは、S201~S203の実行後に、S301~S303が実行される。具体的にS301において並び替えブロック100は、二次分解レイヤLmd2を構成する重みパラメータw’
w,w”
h同士の重み行列積に対して、元レイヤに再定義の一次分解レイヤLmdのうちDW畳み込みフィルタFdwsの重みパラメータw
hwを並び替える。このとき特に第三実施形態の並び替えブロック100は、
図26の右辺に示す重みパラメータw’
w,w”
h同士の重み行列積に対して等式が成立するように、
図26の左辺に示す重みパラメータw
hwを並び替えて等価重み行列WMeを生成する。
【0052】
ここで、各DW畳み込みフィルタFdwsのうち、一方の重みパラメータw’wに関しては一列の一次元テンソルとなるDW重み行列が、また他方の重みパラメータw”hに関しては一行の一次元テンソルとなるDW重み行列が、それぞれ想定される。そこで第三実施形態では、h×wサイズの二次元テンソルとなる重み行列が、等価重み行列WMeとして規定される。
【0053】
図25に示す第三実施形態のモデル生成フローでは、S302においてランク抽出ブロック200が、S301の並び替えブロック100により取得された等価重み行列WMeを行列分解することで、複数のランクrを再抽出する。このとき特に第三実施形態のランク抽出ブロック200は、一方の重みパラメータw’
wのDW重み行列に関連した分解行列Uと、特異値対角行列Σと、他方の重みパラメータw”
hのDW重み行列に関連した分解行列Vとの、行列積に等価重み行列WMeを分解する。そこで第三実施形態のランク抽出ブロック200は、特異値対角行列Σにおける各特異値ω
rのランクrと、それぞれ対応する分解行列Uの列及び分解行列Vの行を、抽出する。さらに、これらの抽出結果に基づき第三実施形態のランク抽出ブロック200は、各ランクr毎に、一方のDW重み行列を分解行列Uの列と特異値ω
rとの行列積から且つ他方のDW重み行列を分解行列Vの行自体からそれぞれ取得、又は一方のDW重み行列を分解行列Uの列自体から且つ他方のDW重み行列を分解行列Vの行と特異値ω
rとの行列積自体からそれぞれ取得する。
【0054】
さらに第三実施形態のモデル生成フローでは、S303においてレイヤ構築ブロック300が、S302のランク抽出ブロック200により抽出された複数ランクrから選別した選別ランクrsに対応する重み行列積での畳み込みに基づき、二次分解レイヤLmd2を構築する。このとき特に第三実施形態のレイヤ構築ブロック300は、
図27に示すように等価重み行列WMeを分解した一対のDW重み行列の行列積として、ランクrの全数よりも少数となる少なくとも二つの選別ランクrsにそれぞれ対応した重み行列積も、選別する。
【0055】
こうした選別の下で第三実施形態のレイヤ構築ブロック300は、
図27,28に示すように各選別ランクrsに対応する一対の一次元DW重み行列での畳み込み結果として得られる特徴マップ同士を、選別ランクrsに亘って要素加算することで、二次分解レイヤLmd2を取得する。ここで
図27は、各選別ランクrsに応じた行列成分である重みパラメータw’
w,w”
h同士の結合を、二次分解レイヤLmd2の構造として表現している。但し、
図27では、選別ランクrsとの対応関係を明確にするため、説明の便宜上、各重みパラメータw’
w,w”
hに付した上付サフィックスにより、対応する選別ランクrsを表している。以上により第三実施形態のレイヤ構築ブロック300は、S201~S203によりメモリ10に記憶された元レイヤとしての一次分解レイヤLmdのうち重み共有型DW畳み込みフィルタFdwsに関するレイヤ構造を、選別ランクrsに基づき構築した二次分解レイヤLmd2へと置換する。
【0056】
以上説明した第三実施形態によると、前回の元レイヤである一次分解レイヤLmdから置換された二次分解レイヤLmd2が、次回の元レイヤに再定義される。その結果、一次分解レイヤLmdを構成する重みパラメータwhwは、置換後の二次分解レイヤLmd2を構成する重みパラメータw’w,w”hの重み行列積と等価な等価重み行列WMeを構成するように、並び替えられる。これによれば、第一実施形態と同様の原理から、前回置換の一次分解レイヤLmdからさらに重みパラメータ数の可及的に低減された二次分解レイヤLmd2を、前回に続く次回の置換によって構築することができる。故に第三実施形態は、畳み込みニューラルネットワークの処理速度を高める上で、有利となる。また第三実施形態は、畳み込みニューラルネットワークでの演算量を低減すると共に、置換後のレイヤ構造を統一させて、モデル生成装置1の小型化を図る上でも有利となる。
【0057】
ここで第三実施形態によると、一対の一次元DW畳み込みフィルタFdw2に行列分解した二次分解レイヤLmd2の重み行列積と等価な等価重み行列WMeが、一次分解レイヤLmdでの重みパラメータwhwの並び替えによって取得される。このような一次元DW畳み込みの組み合わせによれば、選別ランクrsに対応する重み行列積での畳み込みに基づくレイヤ構築と相俟って、二次分解レイヤLmd2における重みパラメータ数の低減効果を高めることができる。故に第三実施形態は、畳み込みニューラルネットワークの処理速度を高める上で、有利となる。また第三実施形態は、モデル生成装置1の小型化を図る上でも有利となる。
【0058】
(他の実施形態)
以上、複数の実施形態について説明したが、本開示は、それらの実施形態に限定して解釈されるものではなく、本開示の要旨を逸脱しない範囲内において種々の実施形態及び組み合わせに適用することができる。
【0059】
変形例においてモデル生成装置1を構成する専用コンピュータは、デジタル回路及びアナログ回路のうち、少なくとも一方をプロセッサとして有していてもよい。ここでデジタル回路とは、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、SOC(System on a Chip)、PGA(Programmable Gate Array)、及びCPLD(Complex Programmable Logic Device)等のうち、少なくとも一種類である。またこうしたデジタル回路は、プログラムを記憶したメモリを、有していてもよい。
【0060】
変形例では、重み行列積をなすフィルタFdw,Fpwの順番が、第一実施形態において説明の順番とは入れ替えられていてもよい。変形例では、重み行列積をなすフィルタFdws,Fpwの順番が、第二実施形態において説明の順番とは入れ替えられていてもよい。変形例では、重み行列積をなす一対のフィルタFdw2,Fdw2の順番が、第三実施形態において説明の順番とは入れ替えられていてもよい。
【0061】
変形例では、特異値分解以外の分解手法、例えば主成分分析、又は固有値分解等により行列分解が実現されてもよい。変形例では、処理速度と処理精度とのトレードオフにより選別ランクrsの数が調整されてもよい。変形例では、選別ランクrsの数が可及的に減らされることで、分解レイヤLmd,Lmd2の重みパラメータが置換後に機械学習されてもよい。
【0062】
変形例の選別ランクrsには、全数よりも少数となる単一のランクr、好適には最大特異値ω
r(
図13ではω
0)に対応するランクr(
図13では0)が、選別されてもよい。この場合、単一の選別ランクrsに対応した重み行列積のみでの畳み込みに基づき、分解レイヤLmd,Lmd2が構築されるとよい。変形例の選別ランクrsには、全数のランクrが選別されてもよい。この場合、全数の選別ランクrsに対応した重み行列積での、畳み込み結果同士での要素加算により、分解レイヤLmd,Lmd2が構築されるとよい。
【0063】
変形例では、第三実施形態の分解レイヤLmdが畳み込みレイヤLmの初期レイヤLm0であってもよい。この場合、第三実施形態のモデル生成フローにおいてS201~S203の実行が省かれて、S301~S303のみが実行されることで、元レイヤとしてのレイヤLmdが、行列分解されたレイヤLmd2へと置換されてもよい。
【0064】
変形例においてモデル生成装置1は、データ処理装置としての機能を備えていなくてもよい。以上の他、説明した各実施形態及び変形例は、モデル生成装置1のプロセッサ12及びメモリ10を少なくとも一つずつ有した半導体装置(例えば半導体チップ等)として、実施されてもよい。
【符号の説明】
【0065】
1:モデル生成装置、10:メモリ、12:プロセッサ