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

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

▶ 三星電子株式会社の特許一覧

特許7273489神経網及びそのウェートをプルーニングする方法
<>
  • 特許-神経網及びそのウェートをプルーニングする方法 図1
  • 特許-神経網及びそのウェートをプルーニングする方法 図2
  • 特許-神経網及びそのウェートをプルーニングする方法 図3
  • 特許-神経網及びそのウェートをプルーニングする方法 図4
  • 特許-神経網及びそのウェートをプルーニングする方法 図5
  • 特許-神経網及びそのウェートをプルーニングする方法 図6
  • 特許-神経網及びそのウェートをプルーニングする方法 図7
  • 特許-神経網及びそのウェートをプルーニングする方法 図8
  • 特許-神経網及びそのウェートをプルーニングする方法 図9
  • 特許-神経網及びそのウェートをプルーニングする方法 図10
  • 特許-神経網及びそのウェートをプルーニングする方法 図11
  • 特許-神経網及びそのウェートをプルーニングする方法 図12
  • 特許-神経網及びそのウェートをプルーニングする方法 図13
  • 特許-神経網及びそのウェートをプルーニングする方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-02
(45)【発行日】2023-05-15
(54)【発明の名称】神経網及びそのウェートをプルーニングする方法
(51)【国際特許分類】
   G06N 3/084 20230101AFI20230508BHJP
【FI】
G06N3/084
【請求項の数】 18
(21)【出願番号】P 2018229414
(22)【出願日】2018-12-06
(65)【公開番号】P2019106181
(43)【公開日】2019-06-27
【審査請求日】2021-10-29
(31)【優先権主張番号】62/597,908
(32)【優先日】2017-12-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/894,921
(32)【優先日】2018-02-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】110000051
【氏名又は名称】弁理士法人共生国際特許事務所
(72)【発明者】
【氏名】デング,ウェイラン
(72)【発明者】
【氏名】ゲオルギアディス,ゲオルギオス
【審査官】赤穂 州一郎
(56)【参考文献】
【文献】特表2000-507376(JP,A)
【文献】特開2006-236345(JP,A)
【文献】Franco Manessi et al.,Automated Pruning for Deep Neural Network Compression,arXivLabs,2017年12月05日,[2022年12月13日検索],インターネット<URL:https://arxiv.org/abs/1712.01721v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/084
(57)【特許請求の範囲】
【請求項1】
プロセッサ及びメモリを含むデータ処理装置によって構成された神経網において、
前記神経網は、複数の階層を包含し、
前記複数の階層のうちの少なくとも一つはコンボルーション(convolution)階層であり、
前記複数の階層の各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート(w)のセットを包含し、
前記ウェート(w)の各セットは、入力された訓練データに応答して、前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数(c)、分析的閾値関数(h(w))の第1パラメータについての前記費用関数(c)の1次偏微分導関数、及び前記分析的閾値関数(h(w))の第2パラメータについての前記費用関数(c)の1次偏微分導関数に基づき、
前記分析的閾値関数は、0を中心とした連続的なウェート値の第1セットに対しては0の値を、そして連続的なウェート値の第2セット及び連続的なウェート値の第3セットに対しては1の値を包含し、
前記連続的なウェート値の第2セットは、前記連続的なウェート値の第1セットと異なり、より大きく、そして前記連続的なウェート値の第3セットは、前記連続的なウェート値の第1セットと異なり、より小さく、
前記分析的閾値関数(h(w))は、前記連続的なウェート値の第1セットと前記連続的なウェート値の第2セットとの間の第1エッジ、及び前記連続的なウェート値の第1セットと前記連続的なウェート値の第3セットとの間の第2エッジをさらに包含し、
前記第1及び第2エッジの各々の、0と1との間の遷移のシャープネスは、前記分析的閾値関数(h(w))の前記第1パラメータの値に基づき、そして前記第1及び第2エッジの間の距離(幅)は、前記分析的閾値関数(h(w))の前記第2パラメータの値に基づく、ことを特徴とするデータ処理装置によって構成された神経網。
【請求項2】
前記分析的閾値関数(h(w))は、βの増加関数であり、そしてαの増加関数であり、ここで、
αは前記第1パラメータであり、βは前記第2パラメータである、ことを特徴とする請求項に記載のデータ処理装置によって構成された神経網。
【請求項3】
前記第1パラメータ(α)に対する初期値及び前記第2パラメータ(β)に対する初期値は、前記分析的閾値関数((h(w))のウェート(w)についての2次偏微分導関数値が0に等しい場合に基づく、ことを特徴とする請求項に記載のデータ処理装置によって構成された神経網。
【請求項4】
前記費用関数(c)は、階層の数、最終階層のウェートのインデックス、そして単数又は複数の正規化パラメータに基づく、ことを特徴とする請求項に記載のデータ処理装置によって構成された神経網。
【請求項5】
前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第1パラメータ(α)を更新することにより、前記費用関数(c)は、前記費用関数(c)の前記第1パラメータ(α)についての1次偏微分導関数に基づいて最小化され、
前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第2パラメータ(β)を更新することにより、前記費用関数(c)は、前記費用関数(c)の前記第2パラメータ(β)についての1次偏微分導関数に基づいて最小化される、ことを特徴とする請求項に記載のデータ処理装置によって構成された神経網。
【請求項6】
前記費用関数(c)は、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記ウェート(w)についての値を更新することによりさらに最小化される、ことを特徴とする請求項に記載のデータ処理装置によって構成された神経網。
【請求項7】
前記神経網は、深層神経網を包含する、ことを特徴とする請求項1に記載のデータ処理装置によって構成された神経網。
【請求項8】
プロセッサ及びメモリを含み、神経網を構成するデータ処理装置において、前記神経網のウェート(w)をプルーニングする方法であって、
分析的閾値関数(h(w))に基づいて、前記神経網に包含された複数の階層の各階層と関連されたウェート(w)についてのウェート関数(f(w))を形成するステップと、ここで、
前記分析的閾値関数は、0を中心とした連続的なウェート値の第1セットに対しては0の値を、そして連続的なウェート値の第2セット及び連続的なウェート値の第3セットに対しては1の値を包含し、
前記連続的なウェート値の第2セットは、前記連続的な値の第1セットと異なり、より大きく、そして前記連続的なウェート値の第3セットは、前記連続的なウェート値の第1セットと異なり、より小さく、
前記分析的閾値関数(h(w))は、前記連続的なウェート値の第1セットと前記連続的なウェート値の第2セットとの間の第1エッジ、及び前記連続的なウェート値の第1セットと前記連続的なウェート値の第3セットとの間の第2エッジをさらに包含し、
前記第1及び第2エッジの各々の、0と1との間の遷移のシャープネスは、前記分析的閾値関数(h(w))の第1パラメータの値に基づき、そして前記第1及び第2エッジの間の距離(幅)は、前記分析的閾値関数(h(w))の第2パラメータの値に基づき、
訓練データを前記神経網に入力して前記訓練データに基づいて出力を生成するステップと、
前記神経網を通じて前記出力をバックプロパゲーションするステップと、
費用関数(c)の前記第1パラメータについての1次偏微分導関数に基づいて前記費用関数(c)を最小化し、及び前記費用関数(c)の前記第2パラメータについての1次偏微分導関数に基づいて前記費用関数(c)を最小化することにより、
前記出力及び前記訓練データの間の差を最小化して、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上するウェート(w)のセットを決定するステップと、を包含する、ことを特徴とする方法。
【請求項9】
前記分析的閾値関数(h(w))は、βの増加関数であり、そしてαの増加関数であり、ここで、
αは前記第1パラメータであり、βは前記第2パラメータである、ことを特徴とする請求項に記載の方法。
【請求項10】
前記分析的閾値関数(h(w))のウェート(w)についての2次偏微分導関数値が0に等しい場合に基づいて、前記第1パラメータ(α)及び前記第2パラメータ(β)を初期化するステップと、をさらに包含する、ことを特徴とする請求項に記載の方法。
【請求項11】
前記ウェート関数(f(w))は、前記分析的閾値関数(h(w))により乗算された前記神経網のウェート(w)を包含する、ことを特徴とする請求項に記載の方法。
【請求項12】
前記費用関数(c)は、階層の数、最終階層のウェートのインデックス、そして単数又は複数の正規化パラメータに基づく、ことを特徴とする請求項11に記載の方法。
【請求項13】
前記費用関数(c)の前記第1パラメータ(α)についての1次偏微分導関数に基づいて前記費用関数(c)を最小化することは、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第1パラメータ(α)を更新することを包含し、
前記費用関数(c)の前記第2パラメータ(β)についての1次偏微分導関数に基づいて前記費用関数(c)を最小化することは、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第2パラメータ(β)を更新することを包含する、ことを特徴とする請求項12に記載の方法。
【請求項14】
前記費用関数(c)を最小化することは、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記ウェート(w)についての値を更新することを包含する、ことを特徴とする請求項13に記載の方法。
【請求項15】
前記訓練データを前記神経網に入力して、前記訓練データに基づいて出力を生成するステップと、
前記神経網を通じて前記出力をバックプロパゲーションするステップと、
前記費用関数(c)の前記第1パラメータについての1次偏微分導関数に基づいて前記費用関数(c)を最小化し、及び前記費用関数(c)の前記第2パラメータについての1次偏微分導関数に基づいて前記費用関数(c)を最小化することにより、前記出力及び前記訓練データの間の差を最小化して前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上するウェート(w)のセットを決定するステップは、反復的に遂行されて前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを最適化する前記ウェート(w)の各セットを決定する、ことを特徴とする請求項14に記載の方法。
【請求項16】
前記神経網は、深層神経網を包含する、ことを特徴とする請求項に記載の方法。
【請求項17】
プロセッサ及びメモリを含むデータ処理装置によって構成された神経網において、
前記神経網は、複数の階層を包含し、
前記複数の階層の各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート(w)のセットを包含し、
前記ウェート(w)の各セットは、入力された訓練データに応答して、前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数(c)、分析的閾値関数(h(w))の第1パラメータについての前記費用関数(c)の1次偏微分導関数、及び前記分析的閾値関数(h(w))の第2パラメータについての前記費用関数(c)の1次偏微分導関数に基づき、
前記分析的閾値関数(h(w))は、0を中心とした連続的なウェート値の第1セットに対しては0の値を、そして連続的なウェート値の第2セット及び連続的なウェート値の第3セットに対しては1の値を包含し、
前記連続的なウェート値の第2セットは、前記連続的なウェート値の第1セットと異なり、より大きく、そして前記連続的なウェート値の第3セットは、前記連続的なウェート値の第1セットと異なり、より小さく、
前記分析的閾値関数(h(w))は、前記連続的なウェート値の第1セットと前記連続的なウェート値の第2セットとの間の第1エッジ、及び前記連続的なウェート値の第1セットと前記連続的なウェート値の第3セットとの間の第2エッジをさらに包含し、
前記第1及び第2エッジの各々の、0と1との間の遷移のシャープネスは、前記分析的閾値関数(h(w))の前記第1パラメータの値に基づき、そして前記第1及び第2エッジの間の距離は、前記分析的閾値関数(h(w))の前記第2パラメータの値に基づく、ことを特徴とするデータ処理装置によって構成された神経網。
【請求項18】
前記分析的閾値関数(h(w))は、βの増加関数であり、そしてαの増加関数であり、ここで、
αは前記第1パラメータであり、βは前記第2パラメータであり、
前記第1パラメータ(α)に対する初期値及び前記第2パラメータ(β)に対する初期値は、前記分析的閾値関数(h(w))のウェート(w)についての2次偏微分導関数値が0に等しい場合に基づき、
前記費用関数(c)は、階層の数、最終階層のウェートのインデックス、そして単数又は複数の正規化パラメータに基づく、ことを特徴とする請求項17に記載のデータ処理装置によって構成された神経網。
【発明の詳細な説明】
【技術分野】
【0001】
ここに記載された主題は、神経網及びそのウェートをプルーニングする方法に係り、一般的に神経網のウェートをプルーニング(pruning、剪り込み)する際に閾値関数(Threshold function)を活用する神経網装置及びその方法に関し、より具体的には、バックプロパゲーション(back-propagation)の最中に、ウェートを最適にプルーニング(pruning)する分析的閾値関数を用いて神経網のウェートをプルーニング(pruning)することにより、神経網の速度性能、神経網の精度、又はこれらの組み合わせを向上する神経網装置及びその方法に関する。
【背景技術】
【0002】
深層学習神経網(DNN:Deep-Learning Neural Networks)は、例えば、イメージ分類及び対象検出などの(但し、これらに限定されない)コンピュータビジョン関連問題(computer-vision-related problems)を解決するために使用される技術である。DNNは、自律走行、モバイル装置及びAIソフトウェアのアプリケーションのようなアプリケーションについて商業的潜在能力を有する。DNNは高い演算性能を要求するので、例えば、スマートフォンなどのハンドヘルド(Handheld、携帯)装置にDNNを配置するのに障害となる。
【0003】
多様な階層は、網内の他の階層に依存するので、通常のDNN内の膨大な数の階層に対して各階層のための最適のウェート値の決定には、複雑さが深刻な作業を必要とする。即ち、一つの階層内のニューロンのウェートの値は他の階層のウェート値に依存するので、例えば、各階層においてウェートをプルーニングする階層単位の閾値処理(thresholding)という力づく(greedy)アプローチは、非効率な場合が多く、また全体的なシステム精度の相当な損失を惹起しかねない。
【0004】
従って、研究は、DNNと関連された高い演算要求を克服し、そしてDNNのウェート値を最適にプルーニング(pruning)する方法を提供するのに集中してきた。ウェートをプルーニングするための一つのアプローチは、予め訓練されたカーネルウエイト(kernel weight)をプルーニングし、そして、カーネルウェートをプルーニングすることにより逸失損失された精度を復元するために網を再訓練するという反復的な技術に集中してきた。しかしながら、反復プロセスは、精度損失の許容可能な明白な閾値及びウェートが経験的に見つけ出されるまで持続するので、反復的なプルーニングは退屈で時間の消耗が大きい。
【先行技術文献】
【特許文献】
【0005】
【文献】米国登録特許 第6408227 B1号 公報
【文献】米国公開特許 第20160143543 A1号 公報
【非特許文献】
【0006】
【文献】:SMITH,“Neural Network Architecture”,The Scientist and Engineer’s Guide to Digital Signal Processing,chapter 26,pages 1-4。
【文献】:STEPHNIEWSKI et al.,“Pruning backpropagation neural networks using modern stochastic optimisation techniques”,Neural Computing & Applications (1997) 5:76-98。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、速度性能及び精度を最適化するウェートを生成する神経網及び神経網の方法を提供することにある。
【課題を解決するための手段】
【0008】
例示的な実施例は、複数の階層を包含できる神経網を提供し、各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート(w)のセットを包含し、前記ウェートのセットは、入力された訓練データに応答して前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数(c)、分析的閾値関数(h(w))の第1パラメータについての前記費用関数(c)の1次偏微分導関数、及び前記分析的閾値関数(h(w))の第2パラメータについての前記費用関数(c)の1次偏微分導関数に基づく。
好ましくは、前記分析的閾値関数は、0を中心とした連続的なウェート値の第1セットに対しては0の値を、そして連続的なウェート値の第2セット及び連続的なウェート値の第3セットに対しては1の値を包含し、
好ましくは、前記連続的なウェート値の第2セットは、前記連続的な値の第1セットと異なり、より大きく、そして前記連続的なウェート値の第3セットは、前記連続的なウェート値の前記第1セットと異なり、より小さい。
【0009】
好ましくは、前記分析的閾値関数(h(w))は、前記連続的なウェート値の第1セットと前記連続的なウェート値の第2セットとの間の第1エッジ、及び前記連続的なウェート値の第1セットと前記連続的なウェート値の第3セットとの間の第2エッジをさらに包含し、
好ましくは、前記第1及び第2エッジの各々の、0と1との間の遷移のシャープネスは、前記分析的閾値関数(h(w))の前記第1パラメータの値に基づき、そして前記第1及び第2エッジの間の距離(幅)は、前記分析的閾値関数(h(w))の前記第2パラメータの値に基づく。
【0010】
他の例示的な実施例は、神経網のウェートをプルーニングする方法を提供し、前記方法は、
分析的閾値関数(h(w))に基づいて、神経網の複数の階層の各階層と関連されたウェート(w)についてのウェート関数(f(w))を形成するステップを包含し、ここで、
前記分析的閾値関数は、0を中心とした連続的なウェート値の第1セットに対しては0の値を、そして連続的なウェート値の第2セット及び連続的なウェート値の第3セットに対しては1の値を包含し、
前記連続的なウェート値の第2セットは、前記連続的な値の第1セットと異なり、より大きく、そして前記連続的なウェート値の第3セットは、前記連続的なウェート値の第1セットと異なり、より小さく、
前記分析的閾値関数(h(w))は、前記連続的なウェート値の第1セットと前記連続的なウェート値の第2セットとの間の第1エッジ、及び前記連続的なウェート値の第1セットと前記連続的なウェート値の第3セットとの間の第2エッジをさらに包含し、
前記第1及び第2エッジの各々の、0と1との間の遷移のシャープネスは、前記分析的閾値関数(h(w))の第1パラメータの値に基づき、そして前記第1及び第2エッジの間の距離(幅)は、前記分析的閾値関数(h(w))の第2パラメータの値に基づき、
前記方法は更に、
訓練データを前記神経網に入力して前記訓練データに基づいて出力を生成するステップと、
前記神経網を通じて前記出力をバックプロパゲーションするステップと、
費用関数(c)の前記第1パラメータについての1次偏微分導関数に基づいて、前記費用関数(c)を最小化し、及び前記費用関数(c)の前記第2パラメータについての1次偏微分導関数に基づいて前記費用関数(c)を最小化することにより、
前記出力及び前記訓練データの間の差を最小化して、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上するウェート(w)のセットを決定するステップと、を包含する。
【0011】
もう一つの例示的な実施例は、複数の階層を包含する神経網を提供し、各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート(w)のセットを包含し、
前記ウェート(w)の各セットは、入力された訓練データに応答して前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数(c)と、分析的閾値関数(h(w))の第1パラメータについての前記費用関数(c)の1次偏微分導関数と、前記分析的閾値関数(h(w))の第2パラメータについての前記費用関数(c)の1次偏微分導関数に基づき、
前記分析的閾値関数(h(w))は、0を中心とした連続的なウェート値の第1セットに対しては0の値を、そして連続的なウェート値の第2セット及び連続的なウェート値の第3セットに対しては1の値を包含し、
前記連続的なウェート値の第2セットは、前記連続的なウェート値の第1セットと異なり、より大きく、そして前記連続的なウェート値の第3セットは、前記連続的なウェート値の第1セットと異なり、より小さく、
前記分析的閾値関数(hw))は、前記連続的なウェート値の第1セットと前記連続的なウェート値の第2セットと間の第1エッジ、及び前記連続的なウェート値の第1セットと前記連続的なウェート値の第3セットとの間の第2エッジをさらに包含し、
前記第1及び第2エッジの各々の、0と1との間の遷移のシャープネスは、前記分析的閾値関数(h(w))の前記第1パラメータの値に基づき、そして前記第1及び第2エッジの間の距離(幅)は、前記分析的閾値関数(h(w))の前記第2パラメータの値に基づく。
【発明の効果】
【0012】
本発明によると、分析的閾値関数を用いてウェートの値がプルーニングされ、分析的閾値関数のパラメータは訓練を通じて学習される。従って、速度性能及び精度を最適化する神経網及び神経網の方法が提供される。
【図面の簡単な説明】
【0013】
以下のセクションにおいて、ここに開示された主題の側面が、図面に図示された模範的な実施例を参照して説明されるであろう。
【0014】
図1図1は、ここに開示された主題により例示的な階層のウェートを最適にプルーニングするための分析的ウェート関数(f(w))を形成する、分析的閾値関数の神経網及びアプリケーション内の例示的な階層を示す。
図2図2は、VGG 16 DNNの構造を示す。
図3図3(A)は、ここに開示された主題による例示的な閾値関数のグラフを示し、図3(B)は、ここに開示された主題による例示的なウェート関数(f(w))のグラフを示す。
図4図4は、ここに開示された主題によるパラメータ(α,β)に対し、相異なる値を有する例示的な閾値関数(h(w))の6個の内の1つの例示的なグラフを示す。
図5図5は、ここに開示された主題によるパラメータ(α,β)に対し、相異なる値を有する例示的な閾値関数(h(w))の6個の内の1つの例示的なグラフを示す。
図6図6は、ここに開示された主題によるパラメータ(α,β)に対し、相異なる値を有する例示的な閾値関数(h(w))の6個の内の1つの例示的なグラフを示す。
図7図7は、ここに開示された主題によるパラメータ(α,β)に対し、相異なる値を有する例示的な閾値関数(h(w))の6個の内の1つの例示的なグラフを示す。
図8図8は、ここに開示された主題によるパラメータ(α,β)に対し、相異なる値を有する例示的な閾値関数(h(w))の6個の内の1つの例示的なグラフを示す。
図9図9は、ここに開示された主題によるパラメータ(α,β)に対し、相異なる値を有する例示的な閾値関数(h(w))の6個の内の1つの例示的なグラフを示す。
図10図10は、ここに開示された主題により訓練及び繰り返されたバックプロパゲーションが、パラメータ(β)をどのように最適化されるか、を示す。
図11図11は、ここに開示された主題により訓練及び繰り返されたバックプロパゲーションにより、パラメータ(β)が最適化されることによる閾値関数(h(w))の収束を示す。
図12図12は、ここに開示された主題による例示的な閾値関数(h(w))及び例示的な閾値関数(h(w))の2次導関数を示す。
図13図13は、ここに開示された主題により神経網のウェートをプルーニングする例示的な方法の順序図を示す。
図14図14は、ここに開示された主題により閾値関数(h(w))を用いてプルーニングされたウェートを有する神経網を包含する電子デバイスを示す。
【発明を実施するための形態】
【0015】
以下の詳細な説明において、多数の具体的な詳細が、本発明の開示に対する充分な理解を提供するために提示される。しかしながら、この分野における熟練された者ならば、開示された側面がこのような具体的な詳細が無くとも実施できることを理解されるであろう。他の例において、よく知られた方法、手順、構成要素及び回路は、ここに開示された主題を曖昧にしないように、詳細な説明を省く。
【0016】
この明細書の全体にわたって「一実施例」又は「実施例」についての参照は、該当実施例と関連して記述された特定の特性、構造又は特徴が、ここに開示された少なくとも一つの実施例に包含されることを意味する。従って、この明細書の全体にわたって多様な位置において「一実施例において」又は「実施例において」又は「一実施例による」との文言の出現は、同一の実施例のみを参照するとは限らない。なお、特定の特性、構造又は特徴は、単数又は複数の実施例において任意の適切な方法で組み合わせられる。この点において、ここで使用されるように、「模範的な」という単語は、「例、事例又は実例の役割を果たす」ことを意味する。ここで「模範的な」ものと記述される任意の実施例は、他の実施例より選好されるか、又は有益なものと理解されない。
なお、ここで論議の脈絡に依存して、単数の用語は、対応する複数の形態を包含し、また複数の用語は、対応する単数の形態を包含する。ここで示されて論議される多様な図面(構成要素の図面を包含する)は、説明の目的のみのためのものであり、一定の比率で描かれたものではないことに留意されたい。同様に、多様な波形及びタイミング図面は、説明の目的のみのために示される。例えば、要素(element)の一部の次元は、明瞭さのために他の元素より相対的に強調される場合がある。なお、適切であると見なされると、同一の参照番号は、図面にて繰り返されて対応する、及び/又は類似した元素を示す。
【0017】
ここで使用される用語は、特定の模範的な実施例を説明する目的のみのためであり、請求された主題の限定を意図しない。ここで使用されるように、文脈上明白に別途示さなければ、単数の形態は、複数の形態もまた包含すると意図される。この明細書において使用される時、「~包含する」及び/又は「包含する~」という用語は、言及された特性、整数、ステップ、動作、元素、及び/又は構成要素の存在を記述し、単数又は複数の他の特性、整数、ステップ、動作、元素、構成要素、及び/又はこれらのグループの存在又は追加を排除しないことがもっと理解されるであろう。
ここで使用されるように、「第1」、「第2」などの用語は、これらが先行する名詞のためのラベルとして使用され、明示的に定義されない限り、任意の形態の手順(例えば、空間的、時間的、論理的など)を暗示しない。なお、同一の参照番号は、二つ又はそれより多い図面にわたって同一又は類似した機能を有する部分、構成要素、ブロック、回路、ユニット、又はモジュールを参照するのに使用できる。しかしながら、このような使用は、説明の単純化及び論議の容易化だけのためであって、このような構成要素又はユニットの構造的又は構成的詳細が、全ての実施例にわたって同一であるか、又は共通に参照される部分/モジュールが、ここで論議される特定の実施例の教示を具現する唯一の方法であるのを暗示しない。
【0018】
別途定義されない限り、ここで使用される全ての用語(技術的及び科学的用語を包含して)は、この主題が属する技術の分野における通常的な技術を有する者(当業者)により共通的に理解されるのと同一の意味を有する。共通に使用される辞書において定義されたような用語は、関連された分野の脈絡においてそれらの意味と一致する意味を有すると解釈されなければならず、ここで明確にそれと定義されない限り、理想化されるか、又は過度に形式的な意味に解釈されてはならない。
【0019】
一実施例において、ウェートプルーニング(weight-pruning)技術は、ウェートの数を最適に減らして神経網の性能を高める分析的閾値関数を使用する。分析的閾値関数は、神経網の多様な階層のウェートに適用され、或る閾値より小さいサイズ(magnitude)を有するウェートは0に設定され、その閾値より大きいウェートはそのまま使用される。追加的に、閾値関数は微分可能で、そして閾値関数のパラメータはバックプロパゲーションの最中に最適化される。分析的閾値関数は、バックプロパゲーションの最中に神経網ウェートと同時に訓練され、従って、時間を消耗する反復プロセスが回避される。
【0020】
一実施例において、費用関数の最小化は、また閾値関数を最適化して相対的に広い幅及び相対的に急なエッジを有する閾値関数を生成し、また零ではない(ノンゼロ、non-zero)ウェートの数が最小である神経網を提供する。費用関数は、相対的に広い幅及び相対的に急なエッジを有する閾値関数の特定のパラメータを最適に最小化できる正規化項(regularization terms)を包含する。閾値関数の入力値の代わりに、出力値が推論(inference)のために使用される。
【0021】
ここに開示された技術により生成された、最適化されたウェート値は、他のプルーニング技術を利用して獲得された相対的により少ない数のノンゼロパラメータを有し、従って、推論の最中により少ない数の乗算及び加算(MAC)動作が使用されるので、メモリの使用量がより少なくなる。
【0022】
図1は、ここに開示された主題により、例示的な階層100のウェートを最適にプルーニングするための分析的ウェート関数(f(w))を形成する、分析的閾値関数の神経網及びアプリケーションの例示的な階層100を示す。例示的な階層100を包含できる神経網の複雑度水準に関係無しに、図1の左側に示されるように、階層100の出力ニューロン(y)は、入力ニューロン(x)と出力ニューロン(y)に対する連結ウェート(w)の積の和から形成される。
【0023】
一実施例において、例示的な階層100は、例えば、図2に図示されたVGG16_DNNの構造200を有するDNNの一部であり得る。VGG16の構造200は、具体的に13個のコンボルーション(CONV)階層、3個の完全連結(FC)階層、そして5個のプーリング(pooling)階層(PL)を包含する。VGG16構造200への入力は、コンボルーション階層(CONV1_1)に適用され、そしてその出力は分類に提供される。
【0024】
再度図1を参照すると、ここに記述されたように、分析的閾値関数(h(w))は、101において階層100のウェート(w)に適用されて、ウェート(w)を置き換えて階層100′を形成するウェート関数(f(w))を形成する。一実施例において、各ウェート(w)は、分析的閾値関数(h(w))により乗算されて(multiplyed、)、その結果、ウェート関数(f(w))が得られる。例示的なウェート関数(f(w))のグラフが図1の上部中央に示される。
【0025】
閾値関数(h(w))は、一般的に或る閾値より大きなサイズを有するウェートの値に影響を与えずに、閾値より小さいサイズを有するウェートの値を零に設定する特性を有すると特徴付けられる。一実施例において、閾値関数(h(w))は、数学式1に示される。
【0026】
[数1]

h(w)=1/(1+(e^(-β・w))/α) ・・・ (数学式1)

数学式1において、αは、閾値関数(h(w))のシャープネスを制御するパラメータであり、βは、第1及び第2エッジの間の距離を制御するパラメータである。
【0027】
図3(A)は、数学式1の例示的な閾値関数のグラフを示す。数学式1において、パラメータ(α)は、閾値関数(h(w))のエッジ(301a,301b)のシャープネスを制御する。即ち、パラメータ(α)は、閾値関数(h(w))が0であるものと、1であるものとの間のエッジ(301a,301b)の変化率を制御する。数学式1のパラメータ(β)は、閾値関数(h(w))が、0.5であるところで2つのエッジ(301a,301b)の間の幅302を制御する。
【0028】
図3(A)に示されたように、閾値関数(h(w))は、0の周辺に中心がある連続的なウェート値の第1セット303について、0の値を有する。追加的に、閾値関数(h(w))は、連続したウェート値の第1セット303より大きい連続的なウェート値の第2セット304について1の値を有し、そしてウェート値の第1セット303より小さい連続的なウェート値の第3セット305について1の値を有する。閾値関数(h(w))の第1エッジ301aは、連続的なウェート値の第1セット303と連続的なウェート値の第2セット304の間である。第2エッジ301bは、連続的なウェート値の第1セット303及び連続的なウェート値の第3セット305の間である。閾値関数(h(w))の値は、第1及び第2エッジ(301a,301b)の領域において0及び1の間を遷移する。閾値関数(h(w))が0及び1の間を遷移することによる、第1及び第2エッジ(301a,301b)の各々のシャープネス(即ち、閾値関数(h(w))のエッジ(301a,301b)のシャープネス)は、パラメータ(α)の値に基づき、そして閾値関数(h(w))が0.5の時に第1及び第2エッジ(301a,301b)の間の距離302は、パラメータ(β)の値に基づく。
【0029】
一実施例において、階層のウェートの各々は、数学式2に示されるように閾値関数(h(w))により乗算されて、ウェート関数(f(w))を形成する。
【0030】
[数2]

f(w)=w/(1+(e^(-β・w))/α) ・・・ (数学式2)

図3(B)は、数学式2のウェート関数(f(w))のグラフを示す。ウェート関数(f(w))は、また図1の上部中央に図示される。ウェート値の第1セット303について、ウェート関数(f(w))は0の値を有する。ウェート関数(f(w))は、連続的なウェート値の第1セット303より大きい連続的なウェート値の第2セット304についてウェート(w)の値を有し、ウェート値の第1セット303より小さい連続的値の第3セット305についてウェート(w)の値を有する。ウェート関数(f(w))は、第1エッジ301a及び第2エッジ301bに各々対応する遷移領域(306a,306b)を包含する。パラメータ(α)の値が小さくなるほど、第1及び第2エッジ(301a,301b)は、より急になり、遷移領域(306a,306b)はウェート(w)方向で小さくなる。
【0031】
図4乃至図9は、パラメータ(α、β)に対して相異なる値を有する数学式1の閾値関数(h(w))の6個の例示的なグラフを示し、パラメータ(α、β)が閾値関数(h(w))及びウェート関数(f(w))にどのように影響を与えるかについての視覚的な感じを提供する。図4乃至図6において、パラメータ(α)は、0.0001(図4)から0.1(図6)に変化し、パラメータ(β)は4で変化しない。図4乃至図6において示されるように、パラメータ(α)の値が小さくなるほど、閾値関数(h(w))は、0及び1の間をより急激に遷移する。図7乃至図9において、パラメータ(β)は、2(図7)から4(図9)に変化し、パラメータ(α)は、0.0001で変化しない。図7乃至図9から、パラメータ(β)が小さくなるほど、閾値関数(h(w))が0.5の時に閾値関数(h(w))のエッジの間の幅がより大きくなることが示される。従って、パラメータ(α、β)のより小さな値は、閾値関数(h(w))に対して、より堅固な閾値及びより広い幅を提供し、結果的に相対的により多数の零のウェート、又は言い換えると、相対的により少数の零ではないウェートを提供する。
【0032】
閾値関数(h(w))のパラメータ(α,β)は訓練可能であり、DNNの出力の入力へのバックプロパゲーションの間に、最適化される。図10及び図11は、ここに開示された主題により、訓練及び繰り返されたバックプロパゲーションがパラメータ(β)をどのように最適化するか、そしてパラメータ(β)が最適化されることによる閾値関数(h(w))の収束を各々示す。図10の曲線は、最適値に向かって収束するパラメータ(β)を示す。パラメータ(β)は、スケーリング(scaling)値であるので、単位を有しない。図11において、訓練及びバックプロパゲーションの繰り返しが増加することにより、そしてパラメータ(β)が最適化されることにより、閾値関数(h(w))の形態が収斂して最適に急激なエッジ及び閾値関数(h(w))=0.5の時の最適の間隔を有する。
【0033】
従って、閾値関数(h(w))の使用が、経験的に閾値を選択してDNNの相異なる階層で収容可能な数の零ではないウェートに結局到達する代わりに、バックプロパゲーションの最中に自動的に零ではないウェートの数の最適化をもたらすので、パラメータ(α、β)の訓練可能なことは、反復的なプルーニング及び再訓練に依存する他のプルーニング技術よりも顕著な利点を提供する。
零ではないウェートの数を最適に減らすことは、結局DNNを実行する装置に対する演算負担を最適に減らす。演算負担を減らすことにより、ここに開示された訓練可能なプルーニング技術により最適化されたDNNを実行する装置は、他のウェートプルーニング技術が、DNNを最適化するのに使用された場合よりも、少数の乗算及び加算(MAC)動作を包含するので、より速く実行し、また、より少ない電力しか消費しない。
【0034】
バックプロパゲーション動作の最中に、パラメータ(α、β)の更新を包含するために、DNNを最適化するように最小化される全体費用関数は、数学式3に示される。
【0035】
【数3】
数学式3において、Cは最小化される総費用であり、Lは階層の数であり、jは最終階層(L)のウェートのインデックスであり、λ1及びλ2はパラメータ(α、β)の値を最小化するための正規化(regularization)パラメータであり、zは予測であり、そしてyはグラウンドトゥルース(ground truth)である。
【0036】
数学式3、即ち、全体費用関数を最小化することの目的の中の一つは、予測(z)(出力)とグラウンドトゥルース(y)との間の差(i)を最小化し、且つ、パラメータ(α,β)の各々の値(ii),(iii)を最小化する、即ち、閾値関数(f(w))がなるべく急激なエッジ及びなるべく広い幅を有するように、(i)(ii)(iii)の重み付き合計を最小化するウェートwのセットを見つけることである。
【0037】
ウェート関数f(w)のパラメータ(α,β)は、勾配降下法(Gradient Descent)技術を利用して最適化される。ウェートは、数学式4に基づき更新される。
【0038】
【数4】
数学式4において、Δwは、ウェート(w)の現在値における変化を表す。
【0039】
ウェート関数(f(w))におけるパラメータ(α,β)は各々、数学式5及び数学式6に基づき更新される。
【0040】
【数5】
及び、
【0041】
【数6】
数学式5及び数学式6において、Δαは、パラメータ(α)の現在値における変化を表し、Δβは、パラメータ(β)の現在値における変化を表す。
【0042】
ウェート(w)及び関数パラメータ(α,β)に対する値は、費用関数(c)が局所的最小値(local minimum)にあるように発見されることが示される。パラメータ(α,β)のための正規化項は、パラメータ(α,β)が小さい値を有するようにソフト制約(soft constraint)を適用する。パラメータ(α,β)のための正規化項は経験的に選択される。なお、パラメータ(α,β)を正(positive)の値に限定するために、コンベックスプロジェクション(convex projection、凸射影)を用いてハードポジティビティ制約(hard positivity constraint)が提供されることができる。
【0043】
一旦、訓練が完了されると、ウェート関数(f(w))の値が、ウェート(w)の値の代わりに保存され、従って、ウェート関数(f(w))が計算される必要がなく、そしてウェート関数(f(w))の値はウェート(w)の値よりも、ノンゼロ値が少ない、即ち、スパーシティ(sparisty)が高いので、推論(inference)における時間及び演算費用が節約される。
【0044】
パラメータ(α,β)の初期値は、パラメータ(α,β)の訓練及びバックプロパゲーション訓練を向上するように選択される。一実施例において、パラメータ(α,β)の初期値は数学式7を解くことにより選択される。
【数7】
【0045】
図12は、601において例示的な閾値関数(h(w))を示し、602において閾値関数(h(w))の1次導関数(first derivative)を示す。図12において灰色の陰影のある領域は、図3(A)に示された0を中心とする連続的なウェート値の第1セット303に対応する。
【0046】
図13は、ここに開示された主題による、神経網をプルーニングする例示的な方法700の順序図を示す。701において本方法が始まる。702において、分析的閾値関数(h(w))に基づいて、神経網の複数の階層の各階層と関連されたウェート(w)についてのウェート関数(f(w))が形成される。一実施例において、各ウェート(w)は、分析的閾値関数(h(w))に乗算されてウェート関数(f(w))を形成する。703において、訓練データが神経網に入力されて訓練データに基づいて出力を生成する。704において、出力が神経網を通じてバックプロパゲーションされる。
705において、閾値関数(h(w))の第1パラメータ(α)に対する費用関数(c)の導関数に基づいて、そして閾値関数(h(w))の第2パラメータ(β)に対する費用関数(c)の導関数に基づいて、費用関数(c)を最小化することにより、出力と訓練データとの差を最小化して神経網の速度性能、神経網の精度、又はこれらの組み合わせを向上するウェート(w)のセットが決定される。
706において、訓練データを神経網に入力して訓練データに基づいて出力を生成すること、神経網を通じて出力をバックプロパゲーションすること、そして出力及び訓練データの間の差異を最小化することを繰り返して神経網の速度性能、神経網の精度、又はこれらの組み合わせを最適化するウェート(w)のセットが決定される。707において、プロセスが終了される。
【0047】
図14は、ここに開示された主題により閾値関数(h(w))を用いてプルーニングされたウェートを有する、神経網を包含する電子デバイス800を示す。電子デバイス800は、コンピューティング装置、個人デジタル、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、モバイルコンピュータ、ウェブタブレット、無線電話、携帯電話、スマートフォン、デジタル音楽再生機、或いは、有線又は無線電子デバイス内で使用できるが、これらに限定されない。
電子デバイス800は、バス850を介して互いに結合される制御器810、キーパッド、キーボード、ディスプレイ、タッチスクリーンディスプレイ、カメラ、及び/又はイメージセンサなどの、しかしこれらに限定されない入力/出力デバイス820、メモリ830、そしてインタフェース840を包含する。制御器810は、例えば、少なくとも一つのマイクロプロセッサ、少なくとも一つのデジタル信号プロセッサ、少なくとも一つのマイクロコントローラ、又はこれと類似したものを包含する。メモリ830は、制御器810により使用される命令コード又はユーザデータを格納するように構成される。電子デバイス800及び電子デバイス800の多様なシステム構成要素は、ここに開示された主題により閾値関数(h(w))を用いてプルーニングされたウェートを有する神経網を提供するシステムを形成する。インタフェース840は、RF信号を用いて無線通信網にデータを伝送するか、又は無線通信網からデータを受信するように構成される、無線インタフェースを包含するように構成される。無線インタフェース840は、例えば、アンテナ、無線送受信機などを包含する。
電子システム800は、またCDMA(Code Division Multiple Access)、GSM(登録商標)(Global System for Mobile Communications)、NADC(North American Digital Communications)、E-TDMA(Extended Time Division Multiple Access)、WCDMA(登録商標)(Wideband CDMA)、CDMA2000、ワイファイ(Wi-Fi)、地方自治体の(Municipal)ワイファイ、ブルートゥース(登録商標)、DECT(Digital Enhanced Cordless Telecommunications)、無線USB(Universal Serial Bus)、Flash-OFDM(Fast Low-latency Access with Seamless Handoff Orthogonal Frequency Division Multiplexing)、IEEE 802.20、GPRS(General Packet Radio Service)、iBurst、無線ブロードバンド(ワイブロ、WiBro)、ワイマックス(WiMAX)、ワイマックスアドバンスド、UMTS-TDD(Universal Mobile Telecommunication Service - Time Division Duplex)、HSPA(High Speed Packet Access), EVDO(Evolution Data Optimized)、LTE-アドバンスド(Long Term Evolution - Advanced)、MMDS(Multichannel Multipoint Distribution Service)などの、しかしこれらに限定されない通信システム向け通信インタフェースプロトコルにおいて使用される。
【0048】
この明細書において開示された主題の実施例及び動作は、この明細書において開示された構造、そしてそれらの構造的等価物、又はそれらの中で、単数又は複数の組み合わせを包含する、デジタル電子回路において又はコンピュータソフトウェア、ファームウェア又はハードウェアにおいて具現できる。この明細書で記述された主題の実施例は、単数又は複数のコンピュータプログラムとして、即ち、データ処理装置が実行する、又はデータ処理装置の動作を制御する、コンピュータ格納媒体にエンコードされたコンピュータプログラム命令の単数又は複数のモジュールとして具現される。
選択的に又は追加的に、プログラム命令は、人為的に生成された伝播信号上に、例えば、データ処理装置が実行するために適切な受信機装置へ伝送する情報をエンコードするように生成されたマシン生成の電気的、光学的又は電磁気信号上に、エンコードされる。コンピュータ格納媒体は、コンピュータ読み出し可能な格納デバイス、コンピュータ読み出し可能な格納基板、ランダム又は順次アクセスメモリアレイ又はデバイス、又はこれらの組み合わせであり得るか、又はこれらに包含されることができる。なお、コンピュータ格納媒体は、伝播された信号自身ではないが、人為的に生成された伝播信号にエンコードされたコンピュータプログラム命令のソース又は目的地であり得る。コンピュータ格納媒体は、また単数又は複数の別途の物理的構成要素又は媒体(例えば、多重のCD、ディスク、又はその他の格納デバイス)であるか、又はこれらに包含される。
【0049】
この明細書に記述された動作は、単数又は複数のコンピュータ読み出し可能な格納媒体に格納された、又は他のソースから受信されたデータについてデータ処理装置により遂行される動作として具現できる。
【0050】
「データ処理装置」の用語は、例示すると、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、或いはそれらの多重又は組み合わせを包含する、データを処理するための全ての種類の装置、デバイス及び機械を包含する。該データ処理装置は、専用(特定目的)ロジック回路、例えばFPGA(field programmable gate array)又はASIC(application-specific integrated circuit)を包含できる。該データ処理装置は、またハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、OS(オペレーティングシステム)、クロスプラットフォームランタイム(cross-platform_runtime)環境、仮想マシン、又はこれらの組み合わせを構成するコードを包含できる。該データ処理装置及び実行環境は、ウェブサービス、分散コンピューティング及びグリッドコンピューティングインフラストラクチャのような、多様且つ相異なるコンピューティングモデルインフラストラクチャ上で具現できる。
【0051】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェア応用、スクリプト又はコードとしても知られている)は、コンパイラ型(compiled)或いはインタプリタ型(interpreted)言語、宣言型又は手続き型言語を包含する任意のプログラミング言語の形態で記述でき、これはスタンドアローンプログラム(stand-alone program)として、又はモジュールとしてコンポーネント(component)、サブルーチン(subroutine)、オブジェクト(object)又はコンピューティング環境における使用に適した他のユニットを包含する、任意の形態で展開配置できる。
コンピュータプログラムは、ファイルシステムのファイルに対応できるが、必ずそうする必要はない。プログラムは、問題のプログラムに指定された単一のファイル又は多重調整されたファイル(例えば、単数又は複数のモジュール、サブプログラム又はコードの部分を保存するファイル)に、他のプログラム又はデータ(例えば、マークアップ言語(markup language)の文書に保存された単数又は複数のスクリプト)を有するファイルの一部に保存される。コンピュータプログラムは、一つのコンピュータ上において、或いは一つのサイトに位置するか、又は多重サイトに分散されて通信網により互いに連結された多数のコンピュータ上において、実行されるように展開配置できる。
【0052】
この明細書において記述されたプロセス及び論理の流れは、単数又は複数のコンピュータプログラムを実行して入力データに対して動作し、そして出力を生成することにより活動を遂行する単数又は複数のプログラム可能なプロセッサにより遂行できる。プロセス及び論理の流れは、また専用(特定目的)論理回路、例えばFPGA(field programmable gate array)又はASIC(application-specific integrated circuit)により遂行でき、装置もまたこれらとして具現できる。
【0053】
コンピュータプログラムの実行のために適したプロセッサは、例えば、汎用及び専用(特定目的の)マイクロプロセッサ、そして任意の種類のデジタルコンピュータの単数又は複数の任意のプロセッサを包含できる。一般的に、プロセッサは、リード(read)専用メモリ又はランダムアクセスメモリ、又は双方から命令及びデータを受信できる。コンピュータの本質的要素は、命令に応じて活動を遂行するためのプロセッサ及び命令及びデータを格納するための単数又は複数のメモリデバイスである。一般的に、コンピュータは、またデータを格納するための単数又は複数の大容量格納デバイス、例えば磁気的、磁気光学的ディスク又は光学ディスクを包含する場合があり、又はこれらからデータを受信し、これらへデータを伝送するように有効に結合される場合がある。しかしながら、コンピュータは、このようなデバイスを有するとは限らない。
なお、コンピュータは、もう一つのデバイス、幾つかの例を挙げるならば、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオ又はビデオプレーヤ、ゲームコンソール、GPS(Global Positioning System)受信機、又はポータブル格納デバイス(例えば、USB(universal serial bus)フラッシュドライブ)にエンベッド(組み込み,embed)される場合がある。コンピュータプログラム命令及びデータを格納するのに適したデバイスは、例えば半導体メモリデバイス、例えばEPROM,EEPROM、そしてフラッシュメモリデバイスを包含する、全ての形態の不揮発性メモリ、媒体及びメモリデバイス、磁気ディスク(例えば、内蔵ハードディスク又はリムーバブル(取り出し可能な)ディスク)、磁気光学ディスク、CD-ROM及びDVD-ROMディスクを包含する。プロセッサ及びメモリは、専用(特定目的)論理回路により補強されるか、又はそれに取り込まれる(incorporated)場合がある。
【0054】
ユーザとの相互作用を提供するために、この明細書に記述された主題の実施例は、ユーザに情報を表示するための表示装置(例えば、CRT(cathode ray tube)又はLCD(liquid crystal display)モニタ)、キーボード、そしてポインティング装置(例えば、ユーザがコンピュータに入力を提供できるマウス又はトラックボール)を有するコンピュータ上で具現される。他の種類の装置もまたユーザとの相互作用を提供するように使用できる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック又は触覚フィードバックであリ得るし、ユーザからの入力は、音声、言語又は触覚を包含する任意の形態で受信される。
【0055】
この明細書に記述された主題の実施例は、バックエンド(back-end、ユーザから直接見えない側)コンポーネント(例えば、データサーバとして)を包含するか、ミドルウェアコンポーネント(例えば、応用サーバ)を包含するか、又はフロントエンド(front-end、ユーザに近い側)コンポーネント(例えば、ユーザがこの明細書において記述された主題の具現と相互作用できるグラフィックユーザインタフェース又はウェブブラウザを備えたユーザコンピュータ)を包含するか、又はこのようなバックエンド、ミドルウェア又はフロントエンドコンポーネントの単数又は複数の任意の組み合わせを包含する、コンピューティングシステムにおいて具現される。システムの構成要素は、デジタルデータ通信(例えば、通信網)の任意の形態又は媒体により互いに連結される。通信網の例は、近距離通信網(LAN)及び広域通信網(WAN)、インタ-ネットワーク(例えば、インタネット)、そしてピアツーピア(peer to peer)ネットワーク(例えば、アドホック(adhoc)ピアツーピアネットワーク)を包含する。
【0056】
コンピューティングシステムは、ユーザ及びサーバを包含できる。ユーザ及びサーバは、一般的に互いに離れており、そして通常、通信網を通じて相互作用する。ユーザ及びサーバの関係は、各々のコンピュータから実行されるコンピュータプログラムにより発生し、互いにユーザ-サーバ関係を有する。
【0057】
この明細書が、多数の具体的な具現例の詳細を包含するが、これらは、如何なる発明の範囲又は請求の範囲を制限すると見なされてはならず、特定の発明の、特定の実施例に特化された特性の説明と見なされなければならない。別々の実施例の文脈においてこの明細書に記述された特定の複数の技術的特徴(features)はまた、単一の実施例において組み合わせで具現できる。逆に、単一の実施例の文脈において記述された多様な技術的特徴はまた、多数の実施例において別々に、又は任意の適切な部分を組み合わせて具現できる。なお、技術的特徴は、特定の組み合わせで動作すると上述され、そして当初はそのように特許請求されるが、単数又は複数の技術的特徴は、一部の事例において特許請求された組み合わせから切除でき、そして特許請求された組み合わせは、部分的組み合わせ又は部分的組み合わせの変形に向けたものであり得る。
【0058】
同様に、動作が図面において特定の手順として示されるが、これは、必要な結果を達成するために動作が図示された特定の手順又は順次的な手順として遂行されるか、又は、図示された全ての動作が遂行される、ことを要求すると理解されてはならない。特定の状況において、マルチタスキング又は並列プロセシングが有利であり得る。なお、上述された実施例の多様なシステム構成要素の分離は、全ての実施例においてそのような分離を必要とすると理解されてはならず、記述されたプログラムコンポーネント及びシステムは、単一のソフトウェア製品に統合されるか、又は多重のソフトウェア製品として一括(package)される、と理解されるはずでる。
【0059】
斯くして、本主題の特定の実施例が説明された。他の実施例は、別途の特許請求の範囲の範囲内にある。一部の事例において、請求の範囲において引用された動作は、他の手順でも遂行でき、依然として必要な結果を達成できる場合がある。なお、添付された図面に図示されたプロセスは、必要な結果を達成するために図示された特定の手順又は順次的な手順を必ずしも必要としない。特定の具現において、マルチタスキング及び並列プロセッシングが有利であり得る。
【0060】
この分野における熟練された者ならば理解できるように、ここに記述された革新的な思想は、応用の広い範囲により修正又は変形できる。従って、請求された主題の範囲は、上で論議された具体的で模範的な教示の何れかに限定されてはならず、代わりに別途の特許請求の範囲により定義される。
【産業上の利用可能性】
【0061】
本発明は分析的閾値関数を用いた神経網のウェートをプルーニングすることにより、神経網の速度と精度を向上させるニューラルシステムに有用である。
【符号の説明】
【0062】
CONV: コンボルーション階層
FC: 完全連結階層
f(w): ウェート関数
h(w): 閾値関数
PL: プーリング階層
w: ウェート
100,100′:階層
101:閾値関数
200: VGG16_DNNの構造
301a,301b:閾値関数の第1、第2エッジ
302:閾値関数の幅
303:ウェート値の第1セット
304:ウェート値の第2セット
305:ウェート値の第3セット
306a、306b:ウェート関数の第1、第2遷移領域
601:閾値関数
602:閾値関数の1次導関数
700:神経網プルーニング方法
800:電子デバイス
810:制御器
820:入力/出力デバイス
830:メモリデバイス
840:インタフェース
850:バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14