JP6787444B1 - ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム - Google Patents

ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム Download PDF

Info

Publication number
JP6787444B1
JP6787444B1 JP2019096907A JP2019096907A JP6787444B1 JP 6787444 B1 JP6787444 B1 JP 6787444B1 JP 2019096907 A JP2019096907 A JP 2019096907A JP 2019096907 A JP2019096907 A JP 2019096907A JP 6787444 B1 JP6787444 B1 JP 6787444B1
Authority
JP
Japan
Prior art keywords
neural network
weight
channel
layer
weight reduction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019096907A
Other languages
English (en)
Other versions
JP2020190996A (ja
Inventor
山本 康平
康平 山本
素子 加賀谷
素子 加賀谷
前野 蔵人
蔵人 前野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2019096907A priority Critical patent/JP6787444B1/ja
Priority to US16/878,327 priority patent/US11449734B2/en
Application granted granted Critical
Publication of JP6787444B1 publication Critical patent/JP6787444B1/ja
Publication of JP2020190996A publication Critical patent/JP2020190996A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】軽量化後のニューラルネットワークの性能劣化を抑制しつつ重みフィルタをチャネル単位で軽量化する。【解決手段】少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得し、前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成し、前記第3のニューラルネットワークの訓練を行い、前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択する。【選択図】図3

Description

本発明は、ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラムに関する。
近年、物体検知などの各種の分野においてニューラルネットワークが用いられている。しかし、ニューラルネットワークの高性能化を進めていくほど、ニューラルネットワークを構成するパラメータの数が大きくなってしまう傾向があり、パラメータの数が膨大となってしまと、ニューラルネットワークを用いた学習時および推論時に、メモリおよび演算装置に与える負荷が大きくなってしまう。そのため、ニューラルネットワークを軽量化する技術が研究されている。
例えば、ニューラルネットワークを構成する各層における訓練済みモデルのフィルタ(重みフィルタ)を要素単位ではなくチャネル単位で軽量化する技術(以下、「枝刈り」とも言う。)が開示されている(例えば、非特許文献1および非特許文献2参照)。また、ニューラルネットワークを構成する最小要素の単位で枝刈りを実行する技術が開示されている(例えば、特許文献1参照)。
特開2018−129033号公報
Jian-Hao Luo、他2名、"ThiNet: AFilter Level Pruning Method for Deep Neural Network Compression"、[online]、2017年7月20日、ICCV2017、[平成30年6月4日検索]、インターネット<https://arxiv.org/abs/1707.06342> Yihui He、他2名、"Channel Pruning for AcceleratingVery Deep Neural Networks"、[online]、2017年10月22日、ICCV2017、[平成30年12月18日検索]、インターネット<https://arxiv.org/abs/1707.06168>
かかる枝刈りの技術では、チャネルデータの削除によって、ニューラルネットワークの性能に寄与する情報がチャネルデータに含まれている場合であっても、チャネルデータを活用することができなくなってしまうという問題点を有している。そこで、軽量化後のニューラルネットワークの性能劣化を抑制しつつ重みフィルタをチャネル単位で軽量化することを可能とする技術が提供されることが望まれる。
上記問題を解決するために、本発明のある観点によれば、少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得する入力部と、前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成する生成部と、前記第3のニューラルネットワークの訓練を行う学習部と、前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正する修正部と、前記冗長チャネルの削除後の前記畳み込み層の重みパラメータの修正に基づく前記第3のニューラルネットワークの再訓練を行う再学習部と、再訓練後の前記第3のニューラルネットワークを出力する出力部と、を備え、前記第2のニューラルネットワークは、前記畳み込み層にチャネルデータの単位で接続された全結合ニューラルネットワークである、ニューラルネットワーク軽量化装置が提供される。
前記修正部は、前記第2のニューラルネットワークの少なくとも一部の重みパラメータに特異値分解を適用することに基づいて、前記冗長チャネルの削除後の畳み込み層のチャネル数を削減してもよい。
前記修正部は、前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正するとともに、前記第3のニューラルネットワークから前記第2のニューラルネットワークを削除してもよい。
前記修正部は、前記第2のニューラルネットワークの重みパラメータの少なくとも一部と前記冗長チャネルの削除後の畳み込み層の重みパラメータの少なくとも一部との積和演算に基づいて、前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正してもよい。
前記生成部は、前記第1のニューラルネットワークに複数の畳み込み層が含まれる場合、前記複数の畳み込み層それぞれの後段に前記第2のニューラルネットワークが接続された前記第3のニューラルネットワークを生成してもよい。
前記修正部は、前記複数の畳み込み層それぞれの重みパラメータの修正を、積和演算に基づいて行うか、特異値分解を適用することに基づいて行うかを、前記複数の畳み込み層ごとに判断してもよい。
前記学習部は、前記第2のニューラルネットワークの重みパラメータが疎になるような少なくとも1つの制約が課された上で学習してもよい。
前記学習部は、前記制約の強さを表現するパラメータをエポック単位またはイテレーション単位で大きくしてもよい。
前記修正部は、前記特徴量が前記所定の閾値を下回るチャネルを前記冗長チャネルとして選択してもよい。
前記特徴量は、前記第2のニューラルネットワークの重みパラメータの大きさの和を、前記第2のニューラルネットワークの出力チャネル単位で演算した値であってもよい。
また、本発明の別の観点によれば、ニューラルネットワーク軽量化装置が、少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得することと、前記ニューラルネットワーク軽量化装置が、前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成することと、前記ニューラルネットワーク軽量化装置が、前記第3のニューラルネットワークの訓練を行うことと、前記ニューラルネットワーク軽量化装置が、前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正することと、前記ニューラルネットワーク軽量化装置が、前記重みパラメータの修正後の前記第3のニューラルネットワークの再訓練を行うことと、前記ニューラルネットワーク軽量化装置が、再訓練後の前記第3のニューラルネットワークを出力することと、を含み、前記第2のニューラルネットワークは、前記畳み込み層にチャネルデータの単位で接続された全結合ニューラルネットワークである、ニューラルネットワーク軽量化方法が提供される。
また、本発明の別の観点によれば、コンピュータを、少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得する入力部と、前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成する生成部と、前記第3のニューラルネットワークの訓練を行う学習部と、前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正する修正部と、前記重みパラメータの修正後の前記第3のニューラルネットワークの再訓練を行う再学習部と、再訓練後の前記第3のニューラルネットワークを出力する出力部と、を備え、前記第2のニューラルネットワークは、前記畳み込み層にチャネルデータの単位で接続された全結合ニューラルネットワークである、ニューラルネットワーク軽量化装置として機能させるためのプログラムが提供される。
以上説明したように本発明によれば、軽量化後のニューラルネットワークの性能劣化を抑制しつつ重みフィルタをチャネル単位で軽量化することを可能とする技術が提供される。
枝刈り技術の概要を説明するための図である。 枝刈り技術の概要を説明するための図である。 本発明の第1の実施形態に係るニューラルネットワーク軽量化装置の機能構成例を示す図である。 付加層の接続例を示す図である。 修正部の処理の流れを示すフローチャートである。 重みフィルタの削減処理および統合処理について説明するための図である。 本発明の第2の実施形態に係るニューラルネットワーク軽量化装置の機能構成例を示す図である。 修正部の処理の流れを示すフローチャートである。 本発明の実施形態に係るニューラルネットワーク軽量化装置の例としての情報処理装置のハードウェア構成を示す図である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合がある。ただし、実質的に同一の機能構成を有する複数の構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。また、異なる実施形態の類似する構成要素については、同一の符号の後に異なるアルファベットを付して区別する場合がある。ただし、異なる実施形態の類似する構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。
(0.概要)
まず、本発明の実施形態の概要を説明する。近年、物体検知などの各種の分野においてニューラルネットワークが用いられている。しかし、ニューラルネットワークの高性能化を進めていくほど、ニューラルネットワークを構成するパラメータの数が大きくなってしまう傾向があり、パラメータの数が膨大となってしまと、ニューラルネットワークを用いた学習時および推論時に、メモリおよび演算装置に与える負荷が大きくなってしまう。そのため、ニューラルネットワークを軽量化する技術が研究されている。
例えば、ニューラルネットワークを構成する各層における訓練済みモデルのフィルタ(重みフィルタ)を要素単位ではなくチャネル単位で軽量化する技術(枝刈り技術)が開示されている。ここで、重みフィルタをチャネル単位で軽量化する技術(枝刈り技術)の概要を説明する。
図1および図2は、枝刈り技術の概要を説明するための図である。ここでは、複数段の処理層によって構成されるニューラルネットワークを想定し、複数段の処理層のうちのL層に注目する。図1を参照すると、L層への入力である「L層入力」が示され、「L層(重みフィルタ)」が示され、L層からの出力である「L層出力」が示されている。
図1に示された例では、L層は、2つのフィルタ(フィルタF1およびフィルタF2)から構成されており、L層の各フィルタは、3つのチャネルから構成されている(フィルタF1はチャネルC1〜C3から構成され、フィルタF2はチャネルC4〜C6から構成されている)。L層の各フィルタには、3つのチャネルそれぞれに対応する入力データ(チャネルデータg1〜g3)が入力される。図1には、3つのチャネルそれぞれに対応する入力データの例として、RGB画像データが示されている。
L層の各フィルタは、チャネルデータg1〜g3とパラメータ(重みおよびバイアス)とに基づいて特徴量を算出し、算出した特徴量をL+1層に出力する(フィルタF1は特徴量G1をL+1層に出力し、フィルタF2は特徴量G2をL+1層に出力する)。図1を参照すると、「L層入力」の各次元が、3(=チャネル数)、H(=縦サイズ)、W(=横サイズ)として示されている。一方、図1を参照すると、「L層(重みフィルタ)」の各次元が、2(フィルタ数)、3(=チャネル数)、Kh(=縦サイズ)、Kw(=横サイズ)として示され、「L層出力」の各次元が、2(チャネル数)、H’(=縦サイズ)、W’(=横サイズ)として示されている。
続いて、フィルタF1のチャネルC3が冗長であると判断され、フィルタF2のチャネルC6が冗長であると判断された場合を想定する。かかる場合には、図2に示されるように、冗長であると判断されたチャネルC3およびチャネルC6が削除される。これによって、ニューラルネットワークの軽量化が実現される。
なお、図2を参照すると、L層におけるチャネル削除に伴って、「L層入力」のチャネル数が2に減少し、「L層(重みフィルタ)」のチャネル数が2に減少している。一方、「L層(重みフィルタ)」からの出力チャネル数は2のままである。しかし、仮にL+1層において枝刈りが行われ、L+1層のチャネル数が減少すれば、L+1層のチャネル数の減少に応じて、L層からの出力チャネル数も減少する。
しかし、図1および図2を参照しながら説明した枝刈りの技術は、軽量化後のニューラルネットワークの性能を劣化させてしまう問題点を含んでいる。例えば、図2に示した例では、フィルタF1のチャネルC3が冗長であると判断され、フィルタF2のチャネルC6が冗長であると判断されており、これらのチャネルに出力されるチャネルデータg3が全ての重みフィルタに共通して冗長であると推定され、チャネルデータg3が削除される。
ここで、仮にチャネルデータg3に含まれる情報が完全に冗長であれば、特徴量G1と特徴量G2とに含まれる情報量はチャネルデータg3の削除前後において変化しない。しかし、チャネルデータg3に含まれる情報が完全に冗長である可能性は一般的には低い。したがって、図1および図2を参照しながら説明した枝刈りの技術は、チャネルデータg3の削除によって、ニューラルネットワークの性能に寄与する情報がチャネルデータg3に含まれている場合であっても、チャネルデータg3を活用することができなくなってしまうという問題点を有している。
そこで、本発明の実施形態においては、軽量化後のニューラルネットワークの性能劣化を抑制しつつ重みフィルタをチャネル単位で軽量化することを可能とする技術について主に説明する。
なお、重みフィルタをチャネル単位で軽量化する技術(枝刈り技術)の他、ニューラルネットワークを構成する最小要素の単位で枝刈りを実行する技術が開示されている。しかし、ニューラルネットワークを構成する最小要素の単位で枝刈りを実行する技術は、低性能のニューロン(要素)を特定することが可能である一方、枝刈り技術には適用され得ない。
以上、本発明の実施形態の概要について説明した。
(1.第1の実施形態の詳細)
続いて、本発明の第1の実施形態の詳細について説明する。
(1−1.構成の説明)
図3は、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置の機能構成例を示す図である。図3に示されるように、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置10は、入力部100、生成部101、学習部102、修正部103、再学習部104および出力部105を備える。
ニューラルネットワーク軽量化装置10は、CPU(Central Processing Unit)などの演算装置を含み、図示しないメモリにより記憶されているプログラムがCPUによりRAM(Random Access Memory)に展開されて実行されることにより、その機能が実現され得る。このとき、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。あるいは、ニューラルネットワーク軽量化装置10は、専用のハードウェアにより構成されていてもよいし、複数のハードウェアの組み合わせにより構成されてもよい。
入力部100は、軽量化対象のニューラルネットワーク(第1のニューラルネットワーク。以下、「軽量化対象モデル」とも言う。)を取得する。軽量化対象モデルは、複数段の処理層を含んで構成されており、複数段の処理層には、少なくとも1つの畳み込み層が含まれている。本発明の第1の実施形態では、複数段の処理層に1つの畳み込み層が含まれる場合を主に想定する。しかし、複数段の処理層に複数の畳み込み層が含まれてもよい。入力部100によって取得された軽量化対象モデルは、生成部101に出力される。
生成部101は、所定の重みパラメータを有する1×1畳み込み層(第2のニューラルネットワーク。以下、「付加層」とも言う。)を生成する。そして、生成部101は、軽量化対象モデルに含まれる畳み込み層の後段(直後)に対して付加層を接続して、訓練対象のニューラルネットワーク(第3のニューラルネットワーク。以下、「訓練対象モデル」とも言う。)を生成する。なお、軽量化対象モデルに複数の畳み込み層が含まれる場合、当該複数の畳み込み層の一部の後段に対して付加層が接続されてもよいし、当該複数の畳み込み層の(最終層を除く)全部の後段に対して付加層が接続されてもよい。生成部101によって生成された訓練対象モデルは、学習部102に出力される。
学習部102は、訓練対象モデルの訓練を行う。例えば、学習部102は、誤差逆伝播法(バックプロパゲーション)などを用いて、訓練対象モデルの訓練を行う。これによって、(付加層が接続された畳み込み層を含む)軽量化対象モデルおよび付加層それぞれの重みパラメータが更新される。なお、学習部102による訓練に利用される訓練データは、軽量対象モデルにあらかじめ設定されている重みパラメータを得るために利用された訓練データと同じであるのが望ましい。訓練が終わった訓練対象モデルは、訓練済みモデルとして修正部103に出力される。
修正部103は、訓練済みモデルに含まれる付加層の重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択する。例えば、修正部103は、付加層の重みパラメータに基づいて算出される特徴量が閾値を下回るチャネルを、(重要度(寄与度)がさほど高くないチャネルであるとして)冗長チャネルとして選択する。修正部103は、付加層が接続された畳み込み層から冗長チャネルを削除するとともに、付加層の重みパラメータの少なくとも一部に基づいて、冗長チャネルの削除後の畳み込み層の重みパラメータを修正する。重みパラメータの修正に基づく訓練済みモデルは、修正後モデルとして再学習部104に出力される。
再学習部104は、修正後モデルの再訓練を行う。例えば、再学習部104は、誤差逆伝播法(バックプロパゲーション)などを用いて、修正後モデルの訓練を行う。これによって、修正後モデルの重みパラメータが更新される。なお、再学習部104による再訓練に利用される訓練データは、学習部102による訓練に利用された訓練データと同じであってよい。再訓練が終わった修正後モデルは、再訓練済みモデルとして出力部105に出力される。
出力部105は、再訓練済みモデルを出力する。出力部105による再訓練済みモデルの出力はどのように行われてもよい。例えば、出力部105は、再訓練済みモデルを記録媒体に出力することによって、記録媒体に再訓練済みモデルを記録してもよい。あるいは、出力部105は、再訓練済みモデルを通信装置に出力することによって、通信装置を介して再訓練済みモデルを他の装置に送信してもよい。あるいは、出力部105は、再訓練済みモデルを表示装置に出力することによって、表示装置を介して再訓練済みモデルを表示してもよい。
(1−2.動作の説明)
上記したように、入力部100によって、軽量化対象モデルが取得される。具体的に、軽量化対象モデルは、複数段の処理層それぞれに設定されるパラメータ(重みパラメータおよびバイアス)と複数段の処理層の構造情報とを含んで構成される。重みパラメータは、任意の訓練データを用いてあらかじめ最適化されている。また、構造情報は、ニューラルネットワークの構造を示す情報(例えば、全結合ニューラルネットワークを示す情報、畳み込みニューラルネットワークを示す情報など)である。
続いて、生成部101によって、付加層が生成され、軽量化対象モデルに含まれる畳み込み層の後段に対して付加層が接続されて訓練対象モデルが生成される。図4は、付加層の接続例を示す図である。図4を参照すると、入力データN100は、軽量化対象モデルに含まれる畳み込み層から入力されるデータであり、入力チャネルデータN101〜N103を含んでいる。生成部101は、入力チャネルデータN101〜N103に付加層N110を接続する(畳み込み層にチャネルデータの単位で付加層N110を接続する)。また、本実施形態では、図4に示されたように、付加層N110が全結合ニューラルネットワークである場合を想定する。しかし、付加層N110の具体的な構成は限定されない。なお、図4に示された例では、チャネル数が3つであるが、チャネル数も3つに限定されない。
付加層N110によって、入力チャネルデータN101〜N103が変換されると、変換後データN120として出力される。変換後データN120は、変換後チャネルデータN121〜N123を含んでいる。このように、変換後データN120のチャネルデータ数は、入力データN100のチャネルデータ数と同数である。ここで、i番目の入力チャネルデータをP、付加層の重み行列をwijとしたとき、jチャネル目の変換後チャネルデータN121〜N123をQとすると、以下の数式(1)に示される関係が成立する。
Figure 0006787444
ここで、Pは2次元以上の行列(あるいはテンソル)であり、wijはスカラー値である。したがって、Qはスカラー倍と行列の和によって計算されることになる。wijの初期値には、例えば、単位行列または単位行列の全ての要素に微小なノイズを加えたものが使用される。wijが単位行列である場合には、付加層は恒等写像と等しくなるため、付加層は特に変換後チャネルデータに影響を与えない。
関数σ()には、例えば、恒等写像関数、シグモイド関数、ハイパボリックタンジェント関数などの任意関数が適用され得る。関数σ()にシグモイド関数が適用される場合には、値域が0〜1に制約され、QがPの単純な和によって表現され得る。一方、関数σ()にハイパボリックタンジェント関数が適用される場合には、値域が−1〜+1となり、解に制約が与えられつつ和と差の演算が許容される。
上記した変換後チャネルデータは、付加層の後段に接続された畳み込み層において演算処理される。なお、上記したように、ここでは、1つの畳み込み層の後段に付加層が接続される場合を例として示したが、軽量化対象モデルに複数の畳み込み層が含まれる場合、当該複数の畳み込み層の一部の後段に対して付加層が接続されてもよいし、当該複数の畳み込み層の(最終層を除く)全部の後段に対して付加層が接続されてもよい。このようにして、生成部101によって訓練対象モデルが生成される。
続いて、学習部102によって訓練対象モデルの訓練が行われる。例えば、学習部102による訓練は、誤差逆伝播法(バックプロパゲーション)などを用いて行われる。これによって、(付加層が接続された畳み込み層を含む)軽量化対象モデルおよび付加層それぞれの重みパラメータが更新される。このとき、学習部102は、付加層の重みパラメータが疎になるような少なくとも1つの制約が課された上で学習するのがよい。より具体的に、学習部102による訓練は、以下の数式(2)によって表現される損失関数Ltotalを最小化することによって達成され得る。
Figure 0006787444
ここで、数式(2)の右辺第1項は、軽量化対象モデルの本来の損失関数である。例えば、判別問題が扱われる場合などには、かかる損失関数として交差エントロピー関数などが使用される。重み行列w ij (l)は、第l層の付加層を構成するj番目に属する重みベクトルである。数式(2)の右辺第2項は、一般的なL1ノルム正則化項であり、付加層を構成するそれぞれの重みが0に近づくように最適化される。数式(2)の右辺第3項は、一般的なGroup−LASSO正則化項であり、j番目のチャネルデータQに接続される全ての重みが0に近づくように最適化される。γおよびλは、正則化の強さを決定する任意のスカラー値である。
このように、軽量化対象モデルの本来の損失関数だけでなく、数式(2)の右辺第2項および第3項が付加された損失関数が用いられることによって、付加層は疎な結合を得ることができる(付加層の重みパラメータが疎になるように更新される)。また、j番目のチャネルデータQに関する重みベクトル(重みの結合)w (l)の要素が全て疎である場合、j番目の重みベクトルw (l)の冗長性が高いとみなされ得る。学習部102によって訓練済みモデルが生成される。
続いて、修正部103は、付加層が接続された畳み込み層から冗長チャネルを削除するとともに、付加層の重みパラメータの少なくとも一部に基づいて、冗長チャネルの削除後の畳み込み層の重みパラメータを修正する。図5は、修正部103の処理の流れを示すフローチャートである。図5に示されるように、修正部103は、付加層が接続された重みフィルタの削減処理を行う(S100)。そして、修正部103は、付加層の重みパラメータの少なくとも一部に基づいて、付加層が接続された重みフィルタの統合処理を行う(S101)。
図6は、重みフィルタの削減処理および統合処理について説明するための図である。図6には、2層の畳み込み層(L層およびL+1層)における演算処理が表現されている。まず、3チャネルのL層入力チャネルデータx(x1〜x3)が2つのL層重みフィルタ(FおよびG)で畳み込み処理が実行され、L層出力データh(h1,h2)が得られる。次に、hは、上記した付加層によってh’(h1’,h2’)に変換される。ただし、この例では、付加層の関数σ()に恒等写像関数が使用されている場合を想定する。最後は2つのL+1層重みフィルタ(FL+1,GL+1)で畳み込み処理が実行され、L+1層出力データy(y1,y2)が得られる。
ここで、L層およびL+1層それぞれの重みフィルタと、付加層が有する重みパラメータwijとは、学習部102によって最適化されている。以下では、重みフィルタの削減処理(S100)および統合処理(S101)それぞれについて具体的に説明する。
<重みフィルタの削減処理S100>
修正部103は、訓練済みモデルに含まれる付加層の重みパラメータWijに基づいて算出される特徴量と所定の閾値εとが所定の関係を満たすチャネルを冗長チャネルとして選択し、訓練済みモデルから削除する。例えば、特徴量は、付加層の重みパラメータの大きさの和を、付加層の出力チャネル単位で演算した値であってよい。より具体的に、修正部103は、付加層の重み行列Wの中に、例えば、L1ノルムによる指標cj=||w||が所定の閾値εを下回る列ベクトルwが存在する場合、L層重みフィルタにおいて列ベクトルwに関係する重みフィルタを訓練済みモデルから削除する。
例えば、図6に示された例において、cj=2=||wj=2||が閾値εを下回った場合を想定する。かかる場合には、修正部103は、列ベクトルwj=2(w12およびw22)に関係する重みフィルタGを削除してよい。なお、ここでは、c=||w||が所定の閾値εを下回る列ベクトルwが1つ存在した場合を想定したが、c=||w||が所定の閾値εを下回る列ベクトルwは複数存在してもよい。かかる場合には、c=||w||が所定の閾値εを下回る複数の列ベクトルwそれぞれに関係する重みフィルタが削除されればよい。このようにして、重みフィルタの削減処理(S100)が実行される。
<重みフィルタの統合処理S101>
重みフィルタの統合処理は、畳み込み演算の性質を利用して、付加層を直前に接続された畳み込み層に統合することによって、重みフィルタ削減後の訓練済みモデルから付加層を削除する処理である。具体的に、修正部103は、付加層の重みパラメータWの少なくとも一部と重みフィルタ削減後の畳み込み層の重みパラメータの少なくとも一部との積和演算に基づいて、重みフィルタ削減後の畳み込み層の重みパラメータを修正する。まず、L層の入出力関係は、以下の式(3)および(4)のように表現され得る。
Figure 0006787444
また、L+1層の入力は、以下の数式(5)および(6)のように表現され得る。
Figure 0006787444
数式(5)および(6)を参照すると、付加層を経たh’(h1’,h2’)において、入力チャネルデータxに対して、Wijを用いたfとgとの重み付き和が畳み込み演算される。この重み付き和は、L+1層入力データに依存せずにあらかじめ計算可能であるため、そこで、修正部103は、付加層の重みパラメータに基づいて重みフィルタ削減後の訓練済みモデルのL層重みフィルタを修正する代わりに、このL層重みフィルタの後段に接続された付加層を削除することができる。
ここで、数式(3)において、fが(w11+w12)に置換されれば、数式(3)のhは、数式(5)のh’に置換される。同様に、数式(4)において、gが(w21+w22)に置換されれば、数式(4)のhは、数式(5)のh’に置換される。ただし、列ベクトルwj=2(w12およびw22)が冗長であれば、修正部103は、重みフィルタfをw11に置換し、削除済みの重みフィルタgの代わりにw21を追加すればよい。このように、統合処理後の重みフィルタはfのみとなり、L層出力のチャネル数削減が達成される。
次に、付加層がL+1層における畳み込み処理に与える影響を考える。L+1層出力データyのうち、1番目のL+1層出力データy1を変形すると、以下の数式(7)のように示される。
Figure 0006787444
ここで、付加層を構成する要素wijの重み行列Wは、以下の数式(8)のように示される。
Figure 0006787444
数式(7)の最終行において、第1項および第2項は、付加層を構成する要素wijの重み行列Wの対角成分(数式(8)のw11およびw22)である。一方、数式(7)の最終行において、第3項および第4項は、付加層を構成する要素wijの重み行列Wの非対角成分(数式(8)のw12およびw21)である。
このように、本実施形態では、付加層の追加によって、チャネルデータと重みフィルタとの1対1の関係が崩れ、L+1層重みフィルタf’およびf’の訓練には、自身に対応しないチャネルデータも利用される。このことは、L層重みフィルタのいずれかが削除されたとしても、削除された重みフィルタの情報がL+1層重みフィルタに学習結果として蓄積されることを意味する。このようにして、修正部103によって修正後モデルが生成される。なお、重み行列Wが対角行列である場合には、数式(7)の最終行において、第3項および第4項は、消去されるため、チャネルデータと重みフィルタとの1対1の関係は保たれる。
続いて、再学習部104によって、修正後モデルが訓練される。なお、上記したように、再学習部104による再訓練に利用される訓練データは、学習部102による訓練に利用された訓練データと同じであってよい。ただし、損失関数としては、学習部102による訓練に利用された損失関数Ltotalではなく、損失関数originが再学習部104による訓練に利用される。再訓練が終わった修正後モデルは、再訓練済みモデルとして出力部105に出力される。
続いて、出力部105によって、再訓練済みモデルが出力される。上記したように、出力部105による再訓練済みモデルの出力はどのように行われてもよい。
(1−3.効果の説明)
本発明の第1の実施形態によれば、生成部101によって軽量化対象モデルに付加層が接続された上で、学習部102によって訓練が行われるため、従来の軽量化技術では削除されてしまうチャネルデータに含まれる情報が、他のチャネルの重みフィルタに流れ込んで訓練される。これによって、軽量化対象モデルから重みフィルタの削減が行われたとしても、重みフィルタ削減後のモデルの性能劣化を小さく抑えることが可能となる。
また、本発明の第1の実施形態によれば、修正部103による重みフィルタ統合処理によって、付加層が軽量化対象モデルに取り込まれ得る。これによって、軽量化対象モデルに接続された付加層を除外することができるため、付加層の処理が不要になるという効果が享受される。
また、本発明の第1の実施形態によれば、再学習部104による再訓練によって、重みフィルタ削減によって劣化したモデルの性能を回復させるという効果が享受される。
以上、本発明の第1の実施形態の詳細について説明した。
(2.第2の実施形態の詳細)
続いて、本発明の第2の実施形態の詳細について説明する。
図7は、本発明の第2の実施形態に係るニューラルネットワーク軽量化装置の機能構成例を示す図である。図7に示されるように、本発明の第2の実施形態に係るニューラルネットワーク軽量化装置20は、入力部200、生成部201、学習部202、修正部203、再学習部204および出力部205を備える。ここで、入力部200、生成部201、学習部202、再学習部204および出力部205は、入力部100、生成部101、学習部102、再学習部104および出力部105とそれぞれ同様である。
修正部203は、付加層の少なくとも一部の重みパラメータに特異値分解を適用することに基づいて、冗長チャネルの削除後の畳み込み層のチャネル数を削減する。チャネル数削減に基づく訓練済みモデルは、修正後モデルとして再学習部204に出力される。
(2−2.動作の説明)
本発明の第2の実施形態に係るニューラルネットワーク軽量化装置20は、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置10と比較して、修正部103の代わりに修正部203を有する。したがって、以下では、入力部200、生成部201、学習部202、再学習部204および出力部205の動作の説明は省略し、修正部203の動作について説明する。
図8は、修正部203の処理の流れを示すフローチャートである。図8に示されるように、修正部203は、付加層が接続された重みフィルタの削減処理を行う(S200)。続いて、修正部203は、低ランク近似によって、重みフィルタの削除後の畳み込み層のチャネル数を削減する(S201)。そして、修正部203は、付加層の重みパラメータの少なくとも一部に基づいて、チャネル数が削減された重みフィルタの統合処理を行う(S202)。重みフィルタの削減処理(S200)は、本発明の第1の実施形態に係る重みフィルタの削減処理(S100)と同様に実行され得るため、以下では、低ランク近似(S201)および統合処理(S202)それぞれについて具体的に説明する。
<低ランク近似S201>
重みフィルタの削減処理(S200)によって、付加層の重み行列Wの次元がm×mからm×n(n≦m)に変化したとする(図6に示された例において、h’〜h’がh’〜h’に変化したとする)。このとき、修正部203は、重み行列Wに対して特異値分解を適用することによって、L層重みフィルタにおける演算回数を少なくすることができる。
具体的に、修正部203は、重み行列Wに対して特異値分解を適用することによって、W=USVを得る。ただし、U∈Rm×m、S∈Rm×n、V∈Rn×nである(すなわち、Uは、m×m次元の実数であり、Sは、m×n次元の実数であり、Vは、n×n次元の実数である)。ここで、修正部203は、特異値の大きさに基づいた低ランク近似を行うことによって、低ランク近似後の重み行列W’=U’S’V’を得ることができる。ただし、次元kを任意の自然数として、U’∈Rm×k、S’∈Rk×k、V’∈Rn×kであり、k<n≦mとする。
<重みフィルタの統合処理S202>
本発明の第1の実施形態とは異なり、修正部203は、低ランク近似の結果に基づいて、重みフィルタの統合処理S101における重み付き和の計算(数式(5)および(6))において、重み行列Wの代わりに行列U’S’を用いる。これによって、L層出力チャネルデータの数をm個からk個に減らすことができる(L層重みフィルタ数をk個に削減できる)。しかし、重みフィルタWの次元をL+1層入力チャネルデータの数(n個)に合わせる必要があるため(元に戻す必要があるため)、修正部203は、付加層の重み行列Wを削除せずに、重み行列Wを行列V’に置換する。
したがって、本発明の第1の実施形態では、L層重みフィルタの後段に接続された付加層を軽量化対象モデルから削除することができたのに対し、本発明の第2の実施形態では、L層重みフィルタの後段に接続された付加層の一部が軽量化対象モデルに残ってしまう。しかし、本発明の第2の実施形態では、演算負荷のより大きい畳み込み処理の一部を、演算負荷のより小さい付加層の処理(行列V’を用いた処理)で代替することが可能となる。
(2−3.効果の説明)
本発明の第2の実施形態によれば、重みフィルタ削減処理(S200)によってL層重みフィルタの数を削減するだけでなく、低ランク近似(S201)の結果に基づく重みフィルタ統合処理(S202)によって、L層重みフィルタの数をさらに削減することができる。したがって、本発明の第2の実施形態によれば、L層重みフィルタによる畳み込み処理の演算負荷を低減することが可能になるという効果が享受される。
以上、本発明の第2の実施形態の詳細について説明した。
(3.ハードウェア構成例)
続いて、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置10のハードウェア構成例について説明する。ただし、本発明の第2の実施形態に係るニューラルネットワーク軽量化装置20のハードウェア構成例も同様に実現され得る。
以下では、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置10のハードウェア構成例として、情報処理装置900のハードウェア構成例について説明する。なお、以下に説明する情報処理装置900のハードウェア構成例は、ニューラルネットワーク軽量化装置10のハードウェア構成の一例に過ぎない。したがって、ニューラルネットワーク軽量化装置10のハードウェア構成は、以下に説明する情報処理装置900のハードウェア構成から不要な構成が削除されてもよいし、新たな構成が追加されてもよい。
図9は、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置10の例としての情報処理装置900のハードウェア構成を示す図である。情報処理装置900は、CPU(Central Processing Unit)901と、ROM(Read Only Memory)902と、RAM(Random Access Memory)903と、ホストバス904と、ブリッジ905と、外部バス906と、インタフェース907と、入力装置908と、出力装置909と、ストレージ装置910と、通信装置911と、を備える。
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバス等から構成されるホストバス904により相互に接続されている。
ホストバス904は、ブリッジ905を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス906に接続されている。なお、必ずしもホストバス904、ブリッジ905および外部バス906を分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
入力装置908は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバー等ユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU901に出力する入力制御回路等から構成されている。情報処理装置900を操作するユーザは、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置909は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置、ランプ等の表示装置およびスピーカ等の音声出力装置を含む。
ストレージ装置910は、データ格納用の装置である。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置等を含んでもよい。ストレージ装置910は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置910は、ハードディスクを駆動し、CPU901が実行するプログラムや各種データを格納する。
通信装置911は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置911は、無線通信または有線通信のどちらに対応してもよい。
以上、本発明の第1の実施形態に係るニューラルネットワーク軽量化装置10のハードウェア構成例について説明した。
(4.まとめ)
以上に説明したように、本発明の実施形態によれば、入力部と、生成部と、学習部と、修正部と、再学習部と、出力部と、を備える、ニューラルネットワーク軽量化装置が提供される。入力部は、少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得する。生成部は、前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成する。学習部は、前記第3のニューラルネットワークの訓練を行う。
修正部は、前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正する。再学習部は、前記冗長チャネルの削除後の前記畳み込み層の重みパラメータの修正に基づく前記第3のニューラルネットワークの再訓練を行う。出力部は、再訓練後の前記第3のニューラルネットワークを出力する。
かかる構成によれば、軽量化後のニューラルネットワークの性能劣化を抑制しつつ重みフィルタをチャネル単位で軽量化することが可能となる。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、本発明の第1の実施形態および本発明の第2の実施形態においては、重みフィルタ削減処理(S100、S200)が実行された後に、再学習部104、204による再学習が実行される例について説明した。しかし、学習部102、202による重みパラメータ更新の度に、重要度の判定が行われ、逐次的に重みフィルタが削除されてもよい。このとき、本発明の第1の実施形態では、S100と再学習部104がスキップされてよく、本発明の第2の実施形態では、S200と再学習部204がスキップされてよい。
また、本発明の第1の実施形態および本発明の第2の実施形態においては、学習部102、202による学習に利用される損失関数の中に、制約の強さを表現するパラメータγおよびλが含まれていた。これらの制約の強さを表現するγおよびλの少ないともいずれか一方の値は、固定である必要はなく、訓練中に徐々に上昇させてもよい。
例えば、学習部102、202は、制約の強さを表現するパラメータを、同じデータセットを繰り返し実行するタイミングごとに大きくしてもよい(すなわち、エポック単位で大きくしてもよい)。あるいは、学習部102、202は、制約の強さを表現するパラメータを、データセットを更新するタイミングごとに大きくしてもよい(すなわち、イテレーション単位で大きくしてもよい)。制約の強さを表現するパラメータは、どのように大きくされてもよい。例えば、制約の強さを表現するパラメータは、単調増加されればよく、一次関数的に増加されてもよいし、2次関数的に増加されてもよいし、対数関数的に増加されてもよい。
本発明の第1の実施形態および本発明の第2の実施形態においては、軽量化対象モデルに1つの畳み込み層が含まれる場合を主に想定した。しかし、軽量化対象モデルに複数の畳み込み層が含まれる場合が想定される。かかる場合には、生成部201、202は、当該複数の畳み込み層それぞれの後段に付加層が接続された訓練対象モデルを生成してもよい。このとき、学習部102、202、修正部103、203および再学習部104、204による処理が、当該複数の畳み込み層およびそれぞれに接続される付加層に対しても実行されてよい。
このとき、修正部103、203は、複数の畳み込み層それぞれの重みパラメータの修正を、積和演算に基づいて行うか(本発明の第1の実施形態)、特異値分解を適用することに基づいて行うか(本発明の第2の実施形態)を、畳み込み層ごとに判断してもよい。例えば、修正部103、203は、畳み込み演算における積和回数が閾値以上であれば、積和回数を大幅に減らすべく、特異値分解を適用することに基づいて重みパラメータを修正してもよい。一方、修正部103、203は、畳み込み演算における積和回数が閾値を下回れば、積和演算に基づいて重みパラメータを修正してもよい。このときに使用される閾値は、全ての畳み込み層において同じであってもよいし、畳み込み層ごとに異なっていてもよい。
10 ニューラルネットワーク軽量化装置
100 入力部
101 生成部
102 学習部
103 修正部
104 再学習部
105 出力部
20 ニューラルネットワーク軽量化装置
200 入力部
201 生成部
202 学習部
203 修正部
204 再学習部
205 出力部

Claims (12)

  1. 少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得する入力部と、
    前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成する生成部と、
    前記第3のニューラルネットワークの訓練を行う学習部と、
    前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正する修正部と、
    前記冗長チャネルの削除後の前記畳み込み層の重みパラメータの修正に基づく前記第3のニューラルネットワークの再訓練を行う再学習部と、
    再訓練後の前記第3のニューラルネットワークを出力する出力部と、
    を備え
    前記第2のニューラルネットワークは、前記畳み込み層にチャネルデータの単位で接続された全結合ニューラルネットワークである、
    ニューラルネットワーク軽量化装置。
  2. 前記修正部は、前記第2のニューラルネットワークの少なくとも一部の重みパラメータに特異値分解を適用することに基づいて、前記冗長チャネルの削除後の畳み込み層のチャネル数を削減する、
    請求項に記載のニューラルネットワーク軽量化装置。
  3. 前記修正部は、前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正するとともに、前記第3のニューラルネットワークから前記第2のニューラルネットワークを削除する、
    請求項またはに記載のニューラルネットワーク軽量化装置。
  4. 前記修正部は、前記第2のニューラルネットワークの重みパラメータの少なくとも一部と前記冗長チャネルの削除後の畳み込み層の重みパラメータの少なくとも一部との積和演算に基づいて、前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正する、
    請求項またはに記載のニューラルネットワーク軽量化装置。
  5. 前記生成部は、前記第1のニューラルネットワークに複数の畳み込み層が含まれる場合、前記複数の畳み込み層それぞれの後段に前記第2のニューラルネットワークが接続された前記第3のニューラルネットワークを生成する、
    請求項1〜のいずれか一項に記載のニューラルネットワーク軽量化装置。
  6. 前記修正部は、前記複数の畳み込み層それぞれの重みパラメータの修正を、積和演算に基づいて行うか、特異値分解を適用することに基づいて行うかを、前記複数の畳み込み層ごとに判断する、
    請求項に記載のニューラルネットワーク軽量化装置。
  7. 前記学習部は、前記第2のニューラルネットワークの重みパラメータが疎になるような少なくとも1つの制約が課された上で学習する、
    請求項1〜のいずれか一項に記載のニューラルネットワーク軽量化装置。
  8. 前記学習部は、前記制約の強さを表現するパラメータをエポック単位またはイテレーション単位で大きくする、
    請求項に記載のニューラルネットワーク軽量化装置。
  9. 前記修正部は、前記特徴量が前記所定の閾値を下回るチャネルを前記冗長チャネルとして選択する、
    請求項1〜に記載のニューラルネットワーク軽量化装置。
  10. 前記特徴量は、前記第2のニューラルネットワークの重みパラメータの大きさの和を、前記第2のニューラルネットワークの出力チャネル単位で演算した値である、
    請求項1〜のいずれか一項に記載のニューラルネットワーク軽量化装置。
  11. ニューラルネットワーク軽量化装置が、少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得することと、
    前記ニューラルネットワーク軽量化装置が、前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成することと、
    前記ニューラルネットワーク軽量化装置が、前記第3のニューラルネットワークの訓練を行うことと、
    前記ニューラルネットワーク軽量化装置が、前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正することと、
    前記ニューラルネットワーク軽量化装置が、前記重みパラメータの修正後の前記第3のニューラルネットワークの再訓練を行うことと、
    前記ニューラルネットワーク軽量化装置が、再訓練後の前記第3のニューラルネットワークを出力することと、
    を含み、
    前記第2のニューラルネットワークは、前記畳み込み層にチャネルデータの単位で接続された全結合ニューラルネットワークである、
    ニューラルネットワーク軽量化方法。
  12. コンピュータを、
    少なくとも1つの畳み込み層を含んだ複数の処理層を有する第1のニューラルネットワークを取得する入力部と、
    前記第1のニューラルネットワークに含まれる前記畳み込み層の後段に対して少なくとも1つの第2のニューラルネットワークが付加層として接続された第3のニューラルネットワークを生成する生成部と、
    前記第3のニューラルネットワークの訓練を行う学習部と、
    前記第2のニューラルネットワークの重みパラメータに基づいて算出される特徴量と所定の閾値とが所定の関係を満たすチャネルを冗長チャネルとして選択し、前記畳み込み層から前記冗長チャネルを削除するとともに、前記第2のニューラルネットワークの重みパラメータの少なくとも一部に基づいて前記冗長チャネルの削除後の畳み込み層の重みパラメータを修正する修正部と、
    前記重みパラメータの修正後の前記第3のニューラルネットワークの再訓練を行う再学習部と、
    再訓練後の前記第3のニューラルネットワークを出力する出力部と、
    を備え
    前記第2のニューラルネットワークは、前記畳み込み層にチャネルデータの単位で接続された全結合ニューラルネットワークである、
    ニューラルネットワーク軽量化装置として機能させるためのプログラム。
JP2019096907A 2019-05-23 2019-05-23 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム Active JP6787444B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019096907A JP6787444B1 (ja) 2019-05-23 2019-05-23 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
US16/878,327 US11449734B2 (en) 2019-05-23 2020-05-19 Neural network reduction device, neural network reduction method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019096907A JP6787444B1 (ja) 2019-05-23 2019-05-23 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP6787444B1 true JP6787444B1 (ja) 2020-11-18
JP2020190996A JP2020190996A (ja) 2020-11-26

Family

ID=73220005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019096907A Active JP6787444B1 (ja) 2019-05-23 2019-05-23 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム

Country Status (2)

Country Link
US (1) US11449734B2 (ja)
JP (1) JP6787444B1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
TWI723823B (zh) * 2020-03-30 2021-04-01 聚晶半導體股份有限公司 基於神經網路的物件偵測裝置和物件偵測方法
WO2022113347A1 (ja) * 2020-11-30 2022-06-02 日本電信電話株式会社 統合装置、統合方法、及び統合プログラム
WO2022224330A1 (ja) * 2021-04-20 2022-10-27 日本電気株式会社 ニューラルネットワーク構造探索装置およびニューラルネットワーク構造探索方法
WO2023248454A1 (ja) * 2022-06-24 2023-12-28 日立Astemo株式会社 演算装置及び演算方法
CN118332393B (zh) * 2024-03-15 2024-10-15 沈阳隆基智能技术研究有限公司 基于xrf的矿石元素品位随机权神经网络软测量方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017182319A (ja) * 2016-03-29 2017-10-05 株式会社メガチップス 機械学習装置
EP3340129B1 (en) 2016-12-21 2019-01-30 Axis AB Artificial neural network class-based pruning
JP6844263B2 (ja) * 2017-01-05 2021-03-17 東京エレクトロン株式会社 基板処理装置
JP7043742B2 (ja) * 2017-05-22 2022-03-30 コニカミノルタ株式会社 学習モデル作成装置
WO2019102984A1 (ja) * 2017-11-22 2019-05-31 Necソリューションイノベータ株式会社 学習装置及び学習方法、識別装置及び識別方法、プログラム並びに記録媒体
JP7047612B2 (ja) * 2018-06-08 2022-04-05 沖電気工業株式会社 ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム
CN114580605A (zh) * 2020-11-30 2022-06-03 富泰华工业(深圳)有限公司 卷积神经网络、运算优化方法、装置、电子设备及介质

Also Published As

Publication number Publication date
US11449734B2 (en) 2022-09-20
JP2020190996A (ja) 2020-11-26
US20200372325A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
JP6787444B1 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
JP7047612B2 (ja) ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム
CN108171323B (zh) 一种人工神经网络计算装置和方法
WO2018131259A1 (ja) 文章評価装置、及び文章評価方法
CN112288086B (zh) 一种神经网络的训练方法、装置以及计算机设备
CN113905391B (zh) 集成学习网络流量预测方法、系统、设备、终端、介质
JPWO2019004350A1 (ja) 訓練方法、訓練装置、プログラム及び非一時的コンピュータ可読媒体
JP6856112B1 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
JP6908302B2 (ja) 学習装置、識別装置及びプログラム
WO2021042857A1 (zh) 图像分割模型的处理方法和处理装置
WO2020241356A1 (ja) スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法および記録媒体
JP7287388B2 (ja) 情報処理装置および情報処理方法
KR20200143450A (ko) 화상 처리 방법, 장치, 전자 장치 및 저장 매체
JP6568175B2 (ja) 学習装置、生成装置、分類装置、学習方法、学習プログラム、および動作プログラム
CN113936143A (zh) 基于注意力机制和生成对抗网络的图像识别泛化方法
JP2019040574A (ja) 対話応答システム、モデル学習装置および対話装置
WO2020105341A1 (ja) 情報処理装置および情報処理方法
JP2907486B2 (ja) ニューラルネットワーク装置
CN110222222A (zh) 基于深层主题自编码模型的多模态检索方法
JP5417967B2 (ja) 遺伝的処理装置、遺伝的処理方法およびプログラム
Duggal et al. High performance squeezenext for cifar-10
JP7438544B2 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
JP6992864B1 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
JP2021135683A (ja) 学習装置、推論装置、学習方法及び推論方法
JP6801751B1 (ja) 情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20200728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201012

R150 Certificate of patent or registration of utility model

Ref document number: 6787444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150