(57)【要約】【課題】分析的閾値関数（ｈ（ｗ））を用いて神経網のウェートをプルーニング技術は、最適にプルーニングされたウェートを有する神経網を提供する。【解決手段】神経網は、各階層が神経網の速度性能、神経網の精度、又はこれらの組み合わせを向上する対応する階層と関連されたウェート（ｗ）のセットを包含する、複数の階層を包含する。ウェート（ｗ）の各セットは、入力された訓練データに応答して神経網の出力をバックプロパゲーションすることにより最小化された費用関数（ｃ）、分析的閾値関数（ｈ（ｗ））の第１パラメータについての費用関数（ｃ）の１次偏微分導関数、及び分析的閾値関数（ｈ（ｗ））の第２パラメータについての前記費用関数（ｃ）の１次偏微分導関数に基づく。【選択図】図１
2019106181.tif 000002
【特許請求の範囲】
【請求項１】
神経網において、
複数の階層を包含し、
各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート（ｗ）のセットを包含し、
前記ウェート（ｗ）の各セットは、入力された訓練データに応答して、前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数（ｃ）、分析的閾値関数（ｈ（ｗ））の第１パラメータについての前記費用関数（ｃ）の１次偏微分導関数、及び前記分析的閾値関数（ｈ（ｗ））の第２パラメータについての前記費用関数（ｃ）の１次偏微分導関数に基づく、ことを特徴とする神経網。
【請求項２】
前記神経網は、少なくとも一つのコンボルーション（ｃｏｎｖｏｌｕｔｉｏｎ）階層を包含する、ことを特徴とする請求項１に記載の神経網。
【請求項３】
前記分析的閾値関数は、０を中心とした連続的なウェート値の第１セットに対しては０の値を、そして連続的なウェート値の第２セット及び連続的なウェート値の第３セットに対しては１の値を包含し、
前記連続的なウェート値の第２セットは、前記連続的なウェート値の第１セットと異なり、より大きく、そして前記連続的なウェート値の第３セットは、前記連続的なウェート値の第１セットと異なり、より小さく、
前記分析的閾値関数（ｈ（ｗ））は、前記連続的なウェート値の第１セットと前記連続的なウェート値の第２セットとの間の第１エッジ、及び前記連続的なウェート値の第１セットと前記連続的なウェート値の第３セットとの間の第２エッジをさらに包含し、
前記第１及び第２エッジの各々の、０と１との間の遷移のシャープネスは、前記分析的閾値関数（ｈ（ｗ））の前記第１パラメータの値に基づき、そして前記第１及び第２エッジの間の距離（幅）は、前記分析的閾値関数（ｈ（ｗ））の前記第２パラメータの値に基づく、ことを特徴とする請求項１に記載の神経網。
【請求項４】
前記分析的閾値関数（ｈ（ｗ））は、β２の増加関数であり、そしてα２の増加関数であり、ここで、
αは前記第１パラメータであり、βは前記第２パラメータである、ことを特徴とする請求項３に記載の神経網。
【請求項５】
前記第１パラメータ（α）に対する初期値及び前記第２パラメータ（β）に対する初期値は、前記分析的閾値関数（（ｈ（ｗ））のウェート（ｗ）についての２次偏微分導関数値が０に等しい場合に基づく、ことを特徴とする請求項４に記載の神経網。
【請求項６】
前記費用関数（ｃ）は、階層の数、最終階層のウェートのインデックス、そして単数又は複数の正規化パラメータに基づく、ことを特徴とする請求項５に記載の神経網。
【請求項７】
前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第１パラメータ（α）を更新することにより、前記費用関数（ｃ）は、前記費用関数（ｃ）の前記第１パラメータ（α）についての１次偏微分導関数に基づいて最小化され、
前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第２パラメータ（β）を更新することにより、前記費用関数（ｃ）は、前記費用関数（ｃ）の前記第２パラメータ（β）についての１次偏微分導関数に基づいて最小化される、ことを特徴とする請求項６に記載の神経網。
【請求項８】
前記費用関数（ｃ）は、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記ウェート（ｗ）についての値を更新することによりさらに最小化される、ことを特徴とする請求項７に記載の神経網。
【請求項９】
前記神経網は、深層神経網を包含する、ことを特徴とする請求項１に記載の神経網。
【請求項１０】
神経網のウェート（ｗ）をプルーニングする方法において、
分析的閾値関数（ｈ（ｗ））に基づいて、神経網の複数の階層の各階層と関連されたウェート（ｗ）についてのウェート関数（ｆ（ｗ））を形成するステップと、ここで、
前記分析的閾値関数は、０を中心とした連続的なウェート値の第１セットに対しては０の値を、そして連続的なウェート値の第２セット及び連続的なウェート値の第３セットに対しては１の値を包含し、
前記連続的なウェート値の第２セットは、前記連続的な値の第１セットと異なり、より大きく、そして前記連続的なウェート値の第３セットは、前記連続的なウェート値の第１セットと異なり、より小さく、
前記分析的閾値関数（ｈ（ｗ））は、前記連続的なウェート値の第１セットと前記連続的なウェート値の第２セットとの間の第１エッジ、及び前記連続的なウェート値の第１セットと前記連続的なウェート値の第３セットとの間の第２エッジをさらに包含し、
前記第１及び第２エッジの各々の、０と１との間の遷移のシャープネスは、前記分析的閾値関数（ｈ（ｗ））の第１パラメータの値に基づき、そして前記第１及び第２エッジの間の距離（幅）は、前記分析的閾値関数（ｈ（ｗ））の第２パラメータの値に基づき、
訓練データを前記神経網に入力して前記訓練データに基づいて出力を生成するステップと、
前記神経網を通じて前記出力をバックプロパゲーションするステップと、
費用関数（ｃ）の前記第１パラメータについての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化し、及び前記費用関数（ｃ）の前記第２パラメータについての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化することにより、
前記出力及び前記訓練データの間の差を最小化して、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上するウェート（ｗ）のセットを決定するステップと、を包含する、ことを特徴とする方法。
【請求項１１】
前記分析的閾値関数（ｈ（ｗ））は、β２の増加関数であり、そしてα２の増加関数であり、ここで、
αは前記第１パラメータであり、βは前記第２パラメータである、ことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記分析的閾値関数（ｈ（ｗ））のウェート（ｗ）についての２次偏微分導関数値が０に等しい場合に基づいて、前記第１パラメータ（α）及び前記第２パラメータ（β）を初期化するステップと、をさらに包含する、ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ウェート関数（ｆ（ｗ））は、前記分析的閾値関数（ｈ（ｗ））により乗算された前記神経網のウェート（ｗ）を包含する、ことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記費用関数（ｃ）は、階層の数、最終階層のウェートのインデックス、そして単数又は複数の正規化パラメータに基づく、ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記費用関数（ｃ）の前記第１パラメータ（α）についての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化することは、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第１パラメータ（α）を更新することを包含し、
前記費用関数（ｃ）の前記第２パラメータ（β）についての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化することは、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記第２パラメータ（β）を更新することを包含する、ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記費用関数（ｃ）を最小化することは、前記神経網を通じて前記出力をバックプロパゲーションする最中に、前記ウェート（ｗ）についての値を更新することを包含する、ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記訓練データを前記神経網に入力して、前記訓練データに基づいて出力を生成するステップと、
前記神経網を通じて前記出力をバックプロパゲーションするステップと、
前記費用関数（ｃ）の前記第１パラメータについての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化し、及び前記費用関数（ｃ）の前記第２パラメータについての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化することにより、前記出力及び前記訓練データの間の差を最小化して前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上するウェート（ｗ）のセットを決定するステップは、反復的に遂行されて前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを最適化する前記ウェート（ｗ）の各セットを決定する、ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記神経網は、深層神経網を包含する、ことを特徴とする請求項１０に記載の方法。
【請求項１９】
神経網において、
複数の階層を包含し、
各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート（ｗ）のセットを包含し、
前記ウェート（ｗ）の各セットは、入力された訓練データに応答して、前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数（ｃ）、分析的閾値関数（ｈ（ｗ））の第１パラメータについての前記費用関数（ｃ）の１次偏微分導関数、及び前記分析的閾値関数（ｈ（ｗ））の第２パラメータについての前記費用関数（ｃ）の１次偏微分導関数に基づき、
前記分析的閾値関数（ｈ（ｗ））は、０を中心とした連続的なウェート値の第１セットに対しては０の値を、そして連続的なウェート値の第２セット及び連続的なウェート値の第３セットに対しては１の値を包含し、
前記連続的なウェート値の第２セットは、前記連続的なウェート値の第１セットと異なり、より大きく、そして前記連続的なウェート値の第３セットは、前記連続的なウェート値の第１セットと異なり、より小さく、
前記分析的閾値関数（ｈ（ｗ））は、前記連続的なウェート値の第１セットと前記連続的なウェート値の第２セットとの間の第１エッジ、及び前記連続的なウェート値の第１セットと前記連続的なウェート値の第３セットとの間の第２エッジをさらに包含し、
前記第１及び第２エッジの各々の、０と１との間の遷移のシャープネスは、前記分析的閾値関数（ｈ（ｗ））の前記第１パラメータの値に基づき、そして前記第１及び第２エッジの間の距離は、前記分析的閾値関数（ｈ（ｗ））の前記第２パラメータの値に基づく、ことを特徴とする神経網。
【請求項２０】
前記分析的閾値関数（ｈ（ｗ））は、β２の増加関数であり、そしてα２の増加関数であり、ここで、
αは前記第１パラメータであり、βは前記第２パラメータであり、
前記第１パラメータ（α）に対する初期値及び前記第２パラメータ（β）に対する初期値は、前記分析的閾値関数（ｈ（ｗ））のウェート（ｗ）についての２次偏微分導関数値が０に等しい場合に基づき、
前記費用関数（ｃ）は、階層の数、最終階層のウェートのインデックス、そして単数又は複数の正規化パラメータに基づく、ことを特徴とする請求項１９に記載の神経網。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記載された主題は、神経網及びそのウェートをプルーニングする方法に係り、一般的に神経網のウェートをプルーニング（ｐｒｕｎｉｎｇ、剪り込み）する際に閾値関数（Ｔｈｒｅｓｈｏｌｄ  ｆｕｎｃｔｉｏｎ）を活用する神経網装置及びその方法に関し、より具体的には、バックプロパゲーション（ｂａｃｋ−ｐｒｏｐａｇａｔｉｏｎ）の最中に、ウェートを最適にプルーニング（ｐｒｕｎｉｎｇ）する分析的閾値関数を用いて神経網のウェートをプルーニング（ｐｒｕｎｉｎｇ）することにより、神経網の速度性能、神経網の精度、又はこれらの組み合わせを向上する神経網装置及びその方法に関する。
【背景技術】
【０００２】
深層学習神経網（ＤＮＮ：Ｄｅｅｐ−Ｌｅａｒｎｉｎｇ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ）は、例えば、イメージ分類及び対象検出などの（但し、これらに限定されない）コンピュータビジョン関連問題（ｃｏｍｐｕｔｅｒ−ｖｉｓｉｏｎ−ｒｅｌａｔｅｄ  ｐｒｏｂｌｅｍｓ）を解決するために使用される技術である。ＤＮＮは、自律走行、モバイル装置及びＡＩソフトウェアのアプリケーションのようなアプリケーションについて商業的潜在能力を有する。ＤＮＮは高い演算性能を要求するので、例えば、スマートフォンなどのハンドヘルド（Ｈａｎｄｈｅｌｄ、携帯）装置にＤＮＮを配置するのに障害となる。
【０００３】
多様な階層は、網内の他の階層に依存するので、通常のＤＮＮ内の膨大な数の階層に対して各階層のための最適のウェート値の決定には、複雑さが深刻な作業を必要とする。即ち、一つの階層内のニューロンのウェートの値は他の階層のウェート値に依存するので、例えば、各階層においてウェートをプルーニングする階層単位の閾値処理（ｔｈｒｅｓｈｏｌｄｉｎｇ）という力づく（ｇｒｅｅｄｙ）アプローチは、非効率な場合が多く、また全体的なシステム精度の相当な損失を惹起しかねない。
【０００４】
従って、研究は、ＤＮＮと関連された高い演算要求を克服し、そしてＤＮＮのウェート値を最適にプルーニング（ｐｒｕｎｉｎｇ）する方法を提供するのに集中してきた。ウェートをプルーニングするための一つのアプローチは、予め訓練されたカーネルウエイト（ｋｅｒｎｅｌ  ｗｅｉｇｈｔ）をプルーニングし、そして、カーネルウェートをプルーニングすることにより逸失損失された精度を復元するために網を再訓練するという反復的な技術に集中してきた。しかしながら、反復プロセスは、精度損失の許容可能な明白な閾値及びウェートが経験的に見つけ出されるまで持続するので、反復的なプルーニングは退屈で時間の消耗が大きい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国登録特許  第６４０８２２７  Ｂ１号  公報
【特許文献２】米国公開特許  第２０１６０１４３５４３  Ａ１号  公報
【非特許文献】
【０００６】
【非特許文献１】：ＳＭＩＴＨ，“Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ”，Ｔｈｅ  Ｓｃｉｅｎｔｉｓｔ  ａｎｄ  Ｅｎｇｉｎｅｅｒ’ｓ  Ｇｕｉｄｅ  ｔｏ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ，ｃｈａｐｔｅｒ  ２６，ｐａｇｅｓ  １−４。
【非特許文献２】：ＳＴＥＰＨＮＩＥＷＳＫＩ  ｅｔ  ａｌ．，“Ｐｒｕｎｉｎｇ  ｂａｃｋｐｒｏｐａｇａｔｉｏｎ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ｕｓｉｎｇ  ｍｏｄｅｒｎ  ｓｔｏｃｈａｓｔｉｃ  ｏｐｔｉｍｉｓａｔｉｏｎ  ｔｅｃｈｎｉｑｕｅｓ”，Ｎｅｕｒａｌ  Ｃｏｍｐｕｔｉｎｇ  ＆  Ａｐｐｌｉｃａｔｉｏｎｓ  （１９９７）  ５：７６−９８。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、速度性能及び精度を最適化するウェートを生成する神経網及び神経網の方法を提供することにある。
【課題を解決するための手段】
【０００８】
例示的な実施例は、複数の階層を包含できる神経網を提供し、各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート（ｗ）のセットを包含し、前記ウェートのセットは、入力された訓練データに応答して前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数（ｃ）、分析的閾値関数（ｈ（ｗ））の第１パラメータについての前記費用関数（ｃ）の１次偏微分導関数、及び前記分析的閾値関数（ｈ（ｗ））の第２パラメータについての前記費用関数（ｃ）の１次偏微分導関数に基づく。
好ましくは、前記分析的閾値関数は、０を中心とした連続的なウェート値の第１セットに対しては０の値を、そして連続的なウェート値の第２セット及び連続的なウェート値の第３セットに対しては１の値を包含し、
好ましくは、前記連続的なウェート値の第２セットは、前記連続的な値の第１セットと異なり、より大きく、そして前記連続的なウェート値の第３セットは、前記連続的なウェート値の前記第１セットと異なり、より小さい。
【０００９】
好ましくは、前記分析的閾値関数（ｈ（ｗ））は、前記連続的なウェート値の第１セットと前記連続的なウェート値の第２セットとの間の第１エッジ、及び前記連続的なウェート値の第１セットと前記連続的なウェート値の第３セットとの間の第２エッジをさらに包含し、
好ましくは、前記第１及び第２エッジの各々の、０と１との間の遷移のシャープネスは、前記分析的閾値関数（ｈ（ｗ））の前記第１パラメータの値に基づき、そして前記第１及び第２エッジの間の距離（幅）は、前記分析的閾値関数（ｈ（ｗ））の前記第２パラメータの値に基づく。
【００１０】
他の例示的な実施例は、神経網のウェートをプルーニングする方法を提供し、前記方法は、
分析的閾値関数（ｈ（ｗ））に基づいて、神経網の複数の階層の各階層と関連されたウェート（ｗ）についてのウェート関数（ｆ（ｗ））を形成するステップを包含し、ここで、
前記分析的閾値関数は、０を中心とした連続的なウェート値の第１セットに対しては０の値を、そして連続的なウェート値の第２セット及び連続的なウェート値の第３セットに対しては１の値を包含し、
前記連続的なウェート値の第２セットは、前記連続的な値の第１セットと異なり、より大きく、そして前記連続的なウェート値の第３セットは、前記連続的なウェート値の第１セットと異なり、より小さく、
前記分析的閾値関数（ｈ（ｗ））は、前記連続的なウェート値の第１セットと前記連続的なウェート値の第２セットとの間の第１エッジ、及び前記連続的なウェート値の第１セットと前記連続的なウェート値の第３セットとの間の第２エッジをさらに包含し、
前記第１及び第２エッジの各々の、０と１との間の遷移のシャープネスは、前記分析的閾値関数（ｈ（ｗ））の第１パラメータの値に基づき、そして前記第１及び第２エッジの間の距離（幅）は、前記分析的閾値関数（ｈ（ｗ））の第２パラメータの値に基づき、
前記方法は更に、
訓練データを前記神経網に入力して前記訓練データに基づいて出力を生成するステップと、
前記神経網を通じて前記出力をバックプロパゲーションするステップと、
費用関数（ｃ）の前記第１パラメータについての１次偏微分導関数に基づいて、前記費用関数（ｃ）を最小化し、及び前記費用関数（ｃ）の前記第２パラメータについての１次偏微分導関数に基づいて前記費用関数（ｃ）を最小化することにより、
前記出力及び前記訓練データの間の差を最小化して、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上するウェート（ｗ）のセットを決定するステップと、を包含する。
【００１１】
もう一つの例示的な実施例は、複数の階層を包含する神経網を提供し、各階層は、前記神経網の速度性能、前記神経網の精度、又はこれらの組み合わせを向上する、対応する前記階層と関連されたウェート（ｗ）のセットを包含し、
前記ウェート（ｗ）の各セットは、入力された訓練データに応答して前記神経網の出力をバックプロパゲーションすることにより最小化される費用関数（ｃ）と、分析的閾値関数（ｈ（ｗ））の第１パラメータについての前記費用関数（ｃ）の１次偏微分導関数と、前記分析的閾値関数（ｈ（ｗ））の第２パラメータについての前記費用関数（ｃ）の１次偏微分導関数に基づき、
前記分析的閾値関数（ｈ（ｗ））は、０を中心とした連続的なウェート値の第１セットに対しては０の値を、そして連続的なウェート値の第２セット及び連続的なウェート値の第３セットに対しては１の値を包含し、
前記連続的なウェート値の第２セットは、前記連続的なウェート値の第１セットと異なり、より大きく、そして前記連続的なウェート値の第３セットは、前記連続的なウェート値の第１セットと異なり、より小さく、
前記分析的閾値関数（ｈｗ））は、前記連続的なウェート値の第１セットと前記連続的なウェート値の第２セットと間の第１エッジ、及び前記連続的なウェート値の第１セットと前記連続的なウェート値の第３セットとの間の第２エッジをさらに包含し、
前記第１及び第２エッジの各々の、０と１との間の遷移のシャープネスは、前記分析的閾値関数（ｈ（ｗ））の前記第１パラメータの値に基づき、そして前記第１及び第２エッジの間の距離（幅）は、前記分析的閾値関数（ｈ（ｗ））の前記第２パラメータの値に基づく。
【発明の効果】
【００１２】
本発明によると、分析的閾値関数を用いてウェートの値がプルーニングされ、分析的閾値関数のパラメータは訓練を通じて学習される。従って、速度性能及び精度を最適化する神経網及び神経網の方法が提供される。
【図面の簡単な説明】
【００１３】
以下のセクションにおいて、ここに開示された主題の側面が、図面に図示された模範的な実施例を参照して説明されるであろう。
【００１４】
【図１】図１は、ここに開示された主題により例示的な階層のウェートを最適にプルーニングするための分析的ウェート関数（ｆ（ｗ））を形成する、分析的閾値関数の神経網及びアプリケーション内の例示的な階層を示す。
【図２】図２は、ＶＧＧ  １６  ＤＮＮの構造を示す。
【図３】図３（Ａ）は、ここに開示された主題による例示的な閾値関数のグラフを示し、図３（Ｂ）は、ここに開示された主題による例示的なウェート関数（ｆ（ｗ））のグラフを示す。
【図４】図４は、ここに開示された主題によるパラメータ（α，β）に対し、相異なる値を有する例示的な閾値関数（ｈ（ｗ））の６個の内の１つの例示的なグラフを示す。
【図５】図５は、ここに開示された主題によるパラメータ（α，β）に対し、相異なる値を有する例示的な閾値関数（ｈ（ｗ））の６個の内の１つの例示的なグラフを示す。
【図６】図６は、ここに開示された主題によるパラメータ（α，β）に対し、相異なる値を有する例示的な閾値関数（ｈ（ｗ））の６個の内の１つの例示的なグラフを示す。
【図７】図７は、ここに開示された主題によるパラメータ（α，β）に対し、相異なる値を有する例示的な閾値関数（ｈ（ｗ））の６個の内の１つの例示的なグラフを示す。
【図８】図８は、ここに開示された主題によるパラメータ（α，β）に対し、相異なる値を有する例示的な閾値関数（ｈ（ｗ））の６個の内の１つの例示的なグラフを示す。
【図９】図９は、ここに開示された主題によるパラメータ（α，β）に対し、相異なる値を有する例示的な閾値関数（ｈ（ｗ））の６個の内の１つの例示的なグラフを示す。
【図１０】図１０は、ここに開示された主題により訓練及び繰り返されたバックプロパゲーションが、パラメータ（β）をどのように最適化されるか、を示す。
【図１１】図１１は、ここに開示された主題により訓練及び繰り返されたバックプロパゲーションにより、パラメータ（β）が最適化されることによる閾値関数（ｈ（ｗ））の収束を示す。
【図１２】図１２は、ここに開示された主題による例示的な閾値関数（ｈ（ｗ））及び例示的な閾値関数（ｈ（ｗ））の２次導関数を示す。
【図１３】図１３は、ここに開示された主題により神経網のウェートをプルーニングする例示的な方法の順序図を示す。
【図１４】図１４は、ここに開示された主題により閾値関数（ｈ（ｗ））を用いてプルーニングされたウェートを有する神経網を包含する電子デバイスを示す。
【発明を実施するための形態】
【００１５】
以下の詳細な説明において、多数の具体的な詳細が、本発明の開示に対する充分な理解を提供するために提示される。しかしながら、この分野における熟練された者ならば、開示された側面がこのような具体的な詳細が無くとも実施できることを理解されるであろう。他の例において、よく知られた方法、手順、構成要素及び回路は、ここに開示された主題を曖昧にしないように、詳細な説明を省く。
【００１６】
この明細書の全体にわたって「一実施例」又は「実施例」についての参照は、該当実施例と関連して記述された特定の特性、構造又は特徴が、ここに開示された少なくとも一つの実施例に包含されることを意味する。従って、この明細書の全体にわたって多様な位置において「一実施例において」又は「実施例において」又は「一実施例による」との文言の出現は、同一の実施例のみを参照するとは限らない。なお、特定の特性、構造又は特徴は、単数又は複数の実施例において任意の適切な方法で組み合わせられる。この点において、ここで使用されるように、「模範的な」という単語は、「例、事例又は実例の役割を果たす」ことを意味する。ここで「模範的な」ものと記述される任意の実施例は、他の実施例より選好されるか、又は有益なものと理解されない。
なお、ここで論議の脈絡に依存して、単数の用語は、対応する複数の形態を包含し、また複数の用語は、対応する単数の形態を包含する。ここで示されて論議される多様な図面（構成要素の図面を包含する）は、説明の目的のみのためのものであり、一定の比率で描かれたものではないことに留意されたい。同様に、多様な波形及びタイミング図面は、説明の目的のみのために示される。例えば、要素（ｅｌｅｍｅｎｔ）の一部の次元は、明瞭さのために他の元素より相対的に強調される場合がある。なお、適切であると見なされると、同一の参照番号は、図面にて繰り返されて対応する、及び／又は類似した元素を示す。
【００１７】
ここで使用される用語は、特定の模範的な実施例を説明する目的のみのためであり、請求された主題の限定を意図しない。ここで使用されるように、文脈上明白に別途示さなければ、単数の形態は、複数の形態もまた包含すると意図される。この明細書において使用される時、「〜包含する」及び／又は「包含する〜」という用語は、言及された特性、整数、ステップ、動作、元素、及び／又は構成要素の存在を記述し、単数又は複数の他の特性、整数、ステップ、動作、元素、構成要素、及び／又はこれらのグループの存在又は追加を排除しないことがもっと理解されるであろう。
ここで使用されるように、「第１」、「第２」などの用語は、これらが先行する名詞のためのラベルとして使用され、明示的に定義されない限り、任意の形態の手順（例えば、空間的、時間的、論理的など）を暗示しない。なお、同一の参照番号は、二つ又はそれより多い図面にわたって同一又は類似した機能を有する部分、構成要素、ブロック、回路、ユニット、又はモジュールを参照するのに使用できる。しかしながら、このような使用は、説明の単純化及び論議の容易化だけのためであって、このような構成要素又はユニットの構造的又は構成的詳細が、全ての実施例にわたって同一であるか、又は共通に参照される部分／モジュールが、ここで論議される特定の実施例の教示を具現する唯一の方法であるのを暗示しない。
【００１８】
別途定義されない限り、ここで使用される全ての用語（技術的及び科学的用語を包含して）は、この主題が属する技術の分野における通常的な技術を有する者（当業者）により共通的に理解されるのと同一の意味を有する。共通に使用される辞書において定義されたような用語は、関連された分野の脈絡においてそれらの意味と一致する意味を有すると解釈されなければならず、ここで明確にそれと定義されない限り、理想化されるか、又は過度に形式的な意味に解釈されてはならない。
【００１９】
一実施例において、ウェートプルーニング（ｗｅｉｇｈｔ−ｐｒｕｎｉｎｇ）技術は、ウェートの数を最適に減らして神経網の性能を高める分析的閾値関数を使用する。分析的閾値関数は、神経網の多様な階層のウェートに適用され、或る閾値より小さいサイズ（ｍａｇｎｉｔｕｄｅ）を有するウェートは０に設定され、その閾値より大きいウェートはそのまま使用される。追加的に、閾値関数は微分可能で、そして閾値関数のパラメータはバックプロパゲーションの最中に最適化される。分析的閾値関数は、バックプロパゲーションの最中に神経網ウェートと同時に訓練され、従って、時間を消耗する反復プロセスが回避される。
【００２０】
一実施例において、費用関数の最小化は、また閾値関数を最適化して相対的に広い幅及び相対的に急なエッジを有する閾値関数を生成し、また零ではない（ノンゼロ、ｎｏｎ−ｚｅｒｏ）ウェートの数が最小である神経網を提供する。費用関数は、相対的に広い幅及び相対的に急なエッジを有する閾値関数の特定のパラメータを最適に最小化できる正規化項（ｒｅｇｕｌａｒｉｚａｔｉｏｎ  ｔｅｒｍｓ）を包含する。閾値関数の入力値の代わりに、出力値が推論（ｉｎｆｅｒｅｎｃｅ）のために使用される。
【００２１】
ここに開示された技術により生成された、最適化されたウェート値は、他のプルーニング技術を利用して獲得された相対的により少ない数のノンゼロパラメータを有し、従って、推論の最中により少ない数の乗算及び加算（ＭＡＣ）動作が使用されるので、メモリの使用量がより少なくなる。
【００２２】
図１は、ここに開示された主題により、例示的な階層１００のウェートを最適にプルーニングするための分析的ウェート関数（ｆ（ｗ））を形成する、分析的閾値関数の神経網及びアプリケーションの例示的な階層１００を示す。例示的な階層１００を包含できる神経網の複雑度水準に関係無しに、図１の左側に示されるように、階層１００の出力ニューロン（ｙ）は、入力ニューロン（ｘ）と出力ニューロン（ｙ）に対する連結ウェート（ｗ）の積の和から形成される。
【００２３】
一実施例において、例示的な階層１００は、例えば、図２に図示されたＶＧＧ１６＿ＤＮＮの構造２００を有するＤＮＮの一部であり得る。ＶＧＧ１６の構造２００は、具体的に１３個のコンボルーション（ＣＯＮＶ）階層、３個の完全連結（ＦＣ）階層、そして５個のプーリング（ｐｏｏｌｉｎｇ）階層（ＰＬ）を包含する。ＶＧＧ１６構造２００への入力は、コンボルーション階層（ＣＯＮＶ１＿１）に適用され、そしてその出力は分類に提供される。
【００２４】
再度図１を参照すると、ここに記述されたように、分析的閾値関数（ｈ（ｗ））は、１０１において階層１００のウェート（ｗ）に適用されて、ウェート（ｗ）を置き換えて階層１００′を形成するウェート関数（ｆ（ｗ））を形成する。一実施例において、各ウェート（ｗ）は、分析的閾値関数（ｈ（ｗ））により乗算されて（ｍｕｌｔｉｐｌｙｅｄ、）、その結果、ウェート関数（ｆ（ｗ））が得られる。例示的なウェート関数（ｆ（ｗ））のグラフが図１の上部中央に示される。
【００２５】
閾値関数（ｈ（ｗ））は、一般的に或る閾値より大きなサイズを有するウェートの値に影響を与えずに、閾値より小さいサイズを有するウェートの値を零に設定する特性を有すると特徴付けられる。一実施例において、閾値関数（ｈ（ｗ））は、数学式１に示される。
【００２６】
［数１］
ｈ（ｗ）＝１／（１＋（ｅ＾（−β２・ｗ２））／α２）    ・・・  （数学式１）
数学式１において、αは、閾値関数（ｈ（ｗ））のシャープネスを制御するパラメータであり、βは、第１及び第２エッジの間の距離を制御するパラメータである。
【００２７】
図３（Ａ）は、数学式１の例示的な閾値関数のグラフを示す。数学式１において、パラメータ（α）は、閾値関数（ｈ（ｗ））のエッジ（３０１ａ，３０１ｂ）のシャープネスを制御する。即ち、パラメータ（α）は、閾値関数（ｈ（ｗ））が０であるものと、１であるものとの間のエッジ（３０１ａ，３０１ｂ）の変化率を制御する。数学式１のパラメータ（β）は、閾値関数（ｈ（ｗ））が、０．５であるところで２つのエッジ（３０１ａ，３０１ｂ）の間の幅３０２を制御する。
【００２８】
図３（Ａ）に示されたように、閾値関数（ｈ（ｗ））は、０の周辺に中心がある連続的なウェート値の第１セット３０３について、０の値を有する。追加的に、閾値関数（ｈ（ｗ））は、連続したウェート値の第１セット３０３より大きい連続的なウェート値の第２セット３０４について１の値を有し、そしてウェート値の第１セット３０３より小さい連続的なウェート値の第３セット３０５について１の値を有する。閾値関数（ｈ（ｗ））の第１エッジ３０１ａは、連続的なウェート値の第１セット３０３と連続的なウェート値の第２セット３０４の間である。第２エッジ３０１ｂは、連続的なウェート値の第１セット３０３及び連続的なウェート値の第３セット３０５の間である。閾値関数（ｈ（ｗ））の値は、第１及び第２エッジ（３０１ａ，３０１ｂ）の領域において０及び１の間を遷移する。閾値関数（ｈ（ｗ））が０及び１の間を遷移することによる、第１及び第２エッジ（３０１ａ，３０１ｂ）の各々のシャープネス（即ち、閾値関数（ｈ（ｗ））のエッジ（３０１ａ，３０１ｂ）のシャープネス）は、パラメータ（α）の値に基づき、そして閾値関数（ｈ（ｗ））が０．５の時に第１及び第２エッジ（３０１ａ，３０１ｂ）の間の距離３０２は、パラメータ（β）の値に基づく。
【００２９】
一実施例において、階層のウェートの各々は、数学式２に示されるように閾値関数（ｈ（ｗ））により乗算されて、ウェート関数（ｆ（ｗ））を形成する。
【００３０】
［数２］
ｆ（ｗ）＝ｗ／（１＋（ｅ＾（−β２・ｗ２））／α２）    ・・・  （数学式２）
図３（Ｂ）は、数学式２のウェート関数（ｆ（ｗ））のグラフを示す。ウェート関数（ｆ（ｗ））は、また図１の上部中央に図示される。ウェート値の第１セット３０３について、ウェート関数（ｆ（ｗ））は０の値を有する。ウェート関数（ｆ（ｗ））は、連続的なウェート値の第１セット３０３より大きい連続的なウェート値の第２セット３０４についてウェート（ｗ）の値を有し、ウェート値の第１セット３０３より小さい連続的値の第３セット３０５についてウェート（ｗ）の値を有する。ウェート関数（ｆ（ｗ））は、第１エッジ３０１ａ及び第２エッジ３０１ｂに各々対応する遷移領域（３０６ａ，３０６ｂ）を包含する。パラメータ（α）の値が小さくなるほど、第１及び第２エッジ（３０１ａ，３０１ｂ）は、より急になり、遷移領域（３０６ａ，３０６ｂ）はウェート（ｗ）方向で小さくなる。
【００３１】
図４乃至図９は、パラメータ（α、β）に対して相異なる値を有する数学式１の閾値関数（ｈ（ｗ））の６個の例示的なグラフを示し、パラメータ（α、β）が閾値関数（ｈ（ｗ））及びウェート関数（ｆ（ｗ））にどのように影響を与えるかについての視覚的な感じを提供する。図４乃至図６において、パラメータ（α）は、０．０００１（図４）から０．１（図６）に変化し、パラメータ（β）は４で変化しない。図４乃至図６において示されるように、パラメータ（α）の値が小さくなるほど、閾値関数（ｈ（ｗ））は、０及び１の間をより急激に遷移する。図７乃至図９において、パラメータ（β）は、２（図７）から４（図９）に変化し、パラメータ（α）は、０．０００１で変化しない。図７乃至図９から、パラメータ（β）が小さくなるほど、閾値関数（ｈ（ｗ））が０．５の時に閾値関数（ｈ（ｗ））のエッジの間の幅がより大きくなることが示される。従って、パラメータ（α、β）のより小さな値は、閾値関数（ｈ（ｗ））に対して、より堅固な閾値及びより広い幅を提供し、結果的に相対的により多数の零のウェート、又は言い換えると、相対的により少数の零ではないウェートを提供する。
【００３２】
閾値関数（ｈ（ｗ））のパラメータ（α，β）は訓練可能であり、ＤＮＮの出力の入力へのバックプロパゲーションの間に、最適化される。図１０及び図１１は、ここに開示された主題により、訓練及び繰り返されたバックプロパゲーションがパラメータ（β）をどのように最適化するか、そしてパラメータ（β）が最適化されることによる閾値関数（ｈ（ｗ））の収束を各々示す。図１０の曲線は、最適値に向かって収束するパラメータ（β）を示す。パラメータ（β）は、スケーリング（ｓｃａｌｉｎｇ）値であるので、単位を有しない。図１１において、訓練及びバックプロパゲーションの繰り返しが増加することにより、そしてパラメータ（β）が最適化されることにより、閾値関数（ｈ（ｗ））の形態が収斂して最適に急激なエッジ及び閾値関数（ｈ（ｗ））＝０．５の時の最適の間隔を有する。
【００３３】
従って、閾値関数（ｈ（ｗ））の使用が、経験的に閾値を選択してＤＮＮの相異なる階層で収容可能な数の零ではないウェートに結局到達する代わりに、バックプロパゲーションの最中に自動的に零ではないウェートの数の最適化をもたらすので、パラメータ（α、β）の訓練可能なことは、反復的なプルーニング及び再訓練に依存する他のプルーニング技術よりも顕著な利点を提供する。
零ではないウェートの数を最適に減らすことは、結局ＤＮＮを実行する装置に対する演算負担を最適に減らす。演算負担を減らすことにより、ここに開示された訓練可能なプルーニング技術により最適化されたＤＮＮを実行する装置は、他のウェートプルーニング技術が、ＤＮＮを最適化するのに使用された場合よりも、少数の乗算及び加算（ＭＡＣ）動作を包含するので、より速く実行し、また、より少ない電力しか消費しない。
【００３４】
バックプロパゲーション動作の最中に、パラメータ（α、β）の更新を包含するために、ＤＮＮを最適化するように最小化される全体費用関数は、数学式３に示される。
【００３５】
【数３】
2019106181.tif 000003
数学式３において、Ｃは最小化される総費用であり、Ｌは階層の数であり、ｊは最終階層（Ｌ）のウェートのインデックスであり、λ１及びλ２はパラメータ（α、β）の値を最小化するための正規化（ｒｅｇｕｌａｒｉｚａｔｉｏｎ）パラメータであり、ｚは予測であり、そしてｙはグラウンドトゥルース（ｇｒｏｕｎｄ  ｔｒｕｔｈ）である。
【００３６】
数学式３、即ち、全体費用関数を最小化することの目的の中の一つは、予測（ｚ）（出力）とグラウンドトゥルース（ｙ）との間の差（ｉ）を最小化し、且つ、パラメータ（α，β）の各々の値（ｉｉ），（ｉｉｉ）を最小化する、即ち、閾値関数（ｆ（ｗ））がなるべく急激なエッジ及びなるべく広い幅を有するように、（ｉ）（ｉｉ）（ｉｉｉ）の重み付き合計を最小化するウェートｗのセットを見つけることである。
【００３７】
ウェート関数ｆ（ｗ）のパラメータ（α，β）は、勾配降下法（Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）技術を利用して最適化される。ウェートは、数学式４に基づき更新される。
【００３８】
【数４】
2019106181.tif 000004
数学式４において、Δｗは、ウェート（ｗ）の現在値における変化を表す。
【００３９】
ウェート関数（ｆ（ｗ））におけるパラメータ（α，β）は各々、数学式５及び数学式６に基づき更新される。
【００４０】
【数５】
2019106181.tif 000005
及び、
【００４１】
【数６】
2019106181.tif 000006
数学式５及び数学式６において、Δαは、パラメータ（α）の現在値における変化を表し、Δβは、パラメータ（β）の現在値における変化を表す。
【００４２】
ウェート（ｗ）及び関数パラメータ（α，β）に対する値は、費用関数（ｃ）が局所的最小値（ｌｏｃａｌ  ｍｉｎｉｍｕｍ）にあるように発見されることが示される。パラメータ（α，β）のための正規化項は、パラメータ（α，β）が小さい値を有するようにソフト制約（ｓｏｆｔ  ｃｏｎｓｔｒａｉｎｔ）を適用する。パラメータ（α，β）のための正規化項は経験的に選択される。なお、パラメータ（α，β）を正（ｐｏｓｉｔｉｖｅ）の値に限定するために、コンベックスプロジェクション（ｃｏｎｖｅｘ  ｐｒｏｊｅｃｔｉｏｎ、凸射影）を用いてハードポジティビティ制約（ｈａｒｄ  ｐｏｓｉｔｉｖｉｔｙ  ｃｏｎｓｔｒａｉｎｔ）が提供されることができる。
【００４３】
一旦、訓練が完了されると、ウェート関数（ｆ（ｗ））の値が、ウェート（ｗ）の値の代わりに保存され、従って、ウェート関数（ｆ（ｗ））が計算される必要がなく、そしてウェート関数（ｆ（ｗ））の値はウェート（ｗ）の値よりも、ノンゼロ値が少ない、即ち、スパーシティ（ｓｐａｒｉｓｔｙ）が高いので、推論（ｉｎｆｅｒｅｎｃｅ）における時間及び演算費用が節約される。
【００４４】
パラメータ（α，β）の初期値は、パラメータ（α，β）の訓練及びバックプロパゲーション訓練を向上するように選択される。一実施例において、パラメータ（α，β）の初期値は数学式７を解くことにより選択される。
【数７】
2019106181.tif 000007
【００４５】
図１２は、６０１において例示的な閾値関数（ｈ（ｗ））を示し、６０２において閾値関数（ｈ（ｗ））の１次導関数（ｆｉｒｓｔ  ｄｅｒｉｖａｔｉｖｅ）を示す。図１２において灰色の陰影のある領域は、図３（Ａ）に示された０を中心とする連続的なウェート値の第１セット３０３に対応する。
【００４６】
図１３は、ここに開示された主題による、神経網をプルーニングする例示的な方法７００の順序図を示す。７０１において本方法が始まる。７０２において、分析的閾値関数（ｈ（ｗ））に基づいて、神経網の複数の階層の各階層と関連されたウェート（ｗ）についてのウェート関数（ｆ（ｗ））が形成される。一実施例において、各ウェート（ｗ）は、分析的閾値関数（ｈ（ｗ））に乗算されてウェート関数（ｆ（ｗ））を形成する。７０３において、訓練データが神経網に入力されて訓練データに基づいて出力を生成する。７０４において、出力が神経網を通じてバックプロパゲーションされる。
７０５において、閾値関数（ｈ（ｗ））の第１パラメータ（α）に対する費用関数（ｃ）の導関数に基づいて、そして閾値関数（ｈ（ｗ））の第２パラメータ（β）に対する費用関数（ｃ）の導関数に基づいて、費用関数（ｃ）を最小化することにより、出力と訓練データとの差を最小化して神経網の速度性能、神経網の精度、又はこれらの組み合わせを向上するウェート（ｗ）のセットが決定される。
７０６において、訓練データを神経網に入力して訓練データに基づいて出力を生成すること、神経網を通じて出力をバックプロパゲーションすること、そして出力及び訓練データの間の差異を最小化することを繰り返して神経網の速度性能、神経網の精度、又はこれらの組み合わせを最適化するウェート（ｗ）のセットが決定される。７０７において、プロセスが終了される。
【００４７】
図１４は、ここに開示された主題により閾値関数（ｈ（ｗ））を用いてプルーニングされたウェートを有する、神経網を包含する電子デバイス８００を示す。電子デバイス８００は、コンピューティング装置、個人デジタル、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、モバイルコンピュータ、ウェブタブレット、無線電話、携帯電話、スマートフォン、デジタル音楽再生機、或いは、有線又は無線電子デバイス内で使用できるが、これらに限定されない。
電子デバイス８００は、バス８５０を介して互いに結合される制御器８１０、キーパッド、キーボード、ディスプレイ、タッチスクリーンディスプレイ、カメラ、及び／又はイメージセンサなどの、しかしこれらに限定されない入力／出力デバイス８２０、メモリ８３０、そしてインタフェース８４０を包含する。制御器８１０は、例えば、少なくとも一つのマイクロプロセッサ、少なくとも一つのデジタル信号プロセッサ、少なくとも一つのマイクロコントローラ、又はこれと類似したものを包含する。メモリ８３０は、制御器８１０により使用される命令コード又はユーザデータを格納するように構成される。電子デバイス８００及び電子デバイス８００の多様なシステム構成要素は、ここに開示された主題により閾値関数（ｈ（ｗ））を用いてプルーニングされたウェートを有する神経網を提供するシステムを形成する。インタフェース８４０は、ＲＦ信号を用いて無線通信網にデータを伝送するか、又は無線通信網からデータを受信するように構成される、無線インタフェースを包含するように構成される。無線インタフェース８４０は、例えば、アンテナ、無線送受信機などを包含する。
電子システム８００は、またＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＮＡＤＣ（Ｎｏｒｔｈ  Ａｍｅｒｉｃａｎ  Ｄｉｇｉｔａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、Ｅ−ＴＤＭＡ（Ｅｘｔｅｎｄｅｄ  Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＷＣＤＭＡ（登録商標）（Ｗｉｄｅｂａｎｄ  ＣＤＭＡ）、ＣＤＭＡ２０００、ワイファイ（Ｗｉ−Ｆｉ）、地方自治体の（Ｍｕｎｉｃｉｐａｌ）ワイファイ、ブルートゥース（登録商標）、ＤＥＣＴ（Ｄｉｇｉｔａｌ  Ｅｎｈａｎｃｅｄ  Ｃｏｒｄｌｅｓｓ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、無線ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、Ｆｌａｓｈ−ＯＦＤＭ（Ｆａｓｔ  Ｌｏｗ−ｌａｔｅｎｃｙ  Ａｃｃｅｓｓ  ｗｉｔｈ  Ｓｅａｍｌｅｓｓ  Ｈａｎｄｏｆｆ  Ｏｒｔｈｏｇｏｎａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ）、ＩＥＥＥ  ８０２．２０、ＧＰＲＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）、ｉＢｕｒｓｔ、無線ブロードバンド（ワイブロ、ＷｉＢｒｏ）、ワイマックス（ＷｉＭＡＸ）、ワイマックスアドバンスド、ＵＭＴＳ−ＴＤＤ（Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  −  Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｄｕｐｌｅｘ）、ＨＳＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ），  ＥＶＤＯ（Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ  Ｏｐｔｉｍｉｚｅｄ）、ＬＴＥ−アドバンスド（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ  −  Ａｄｖａｎｃｅｄ）、ＭＭＤＳ（Ｍｕｌｔｉｃｈａｎｎｅｌ  Ｍｕｌｔｉｐｏｉｎｔ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｅｒｖｉｃｅ）などの、しかしこれらに限定されない通信システム向け通信インタフェースプロトコルにおいて使用される。
【００４８】
この明細書において開示された主題の実施例及び動作は、この明細書において開示された構造、そしてそれらの構造的等価物、又はそれらの中で、単数又は複数の組み合わせを包含する、デジタル電子回路において又はコンピュータソフトウェア、ファームウェア又はハードウェアにおいて具現できる。この明細書で記述された主題の実施例は、単数又は複数のコンピュータプログラムとして、即ち、データ処理装置が実行する、又はデータ処理装置の動作を制御する、コンピュータ格納媒体にエンコードされたコンピュータプログラム命令の単数又は複数のモジュールとして具現される。
選択的に又は追加的に、プログラム命令は、人為的に生成された伝播信号上に、例えば、データ処理装置が実行するために適切な受信機装置へ伝送する情報をエンコードするように生成されたマシン生成の電気的、光学的又は電磁気信号上に、エンコードされる。コンピュータ格納媒体は、コンピュータ読み出し可能な格納デバイス、コンピュータ読み出し可能な格納基板、ランダム又は順次アクセスメモリアレイ又はデバイス、又はこれらの組み合わせであり得るか、又はこれらに包含されることができる。なお、コンピュータ格納媒体は、伝播された信号自身ではないが、人為的に生成された伝播信号にエンコードされたコンピュータプログラム命令のソース又は目的地であり得る。コンピュータ格納媒体は、また単数又は複数の別途の物理的構成要素又は媒体（例えば、多重のＣＤ、ディスク、又はその他の格納デバイス）であるか、又はこれらに包含される。
【００４９】
この明細書に記述された動作は、単数又は複数のコンピュータ読み出し可能な格納媒体に格納された、又は他のソースから受信されたデータについてデータ処理装置により遂行される動作として具現できる。
【００５０】
「データ処理装置」の用語は、例示すると、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、或いはそれらの多重又は組み合わせを包含する、データを処理するための全ての種類の装置、デバイス及び機械を包含する。該データ処理装置は、専用（特定目的）ロジック回路、例えばＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）又はＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）を包含できる。該データ処理装置は、またハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、ＯＳ（オペレーティングシステム）、クロスプラットフォームランタイム（ｃｒｏｓｓ−ｐｌａｔｆｏｒｍ＿ｒｕｎｔｉｍｅ）環境、仮想マシン、又はこれらの組み合わせを構成するコードを包含できる。該データ処理装置及び実行環境は、ウェブサービス、分散コンピューティング及びグリッドコンピューティングインフラストラクチャのような、多様且つ相異なるコンピューティングモデルインフラストラクチャ上で具現できる。
【００５１】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェア応用、スクリプト又はコードとしても知られている）は、コンパイラ型（ｃｏｍｐｉｌｅｄ）或いはインタプリタ型（ｉｎｔｅｒｐｒｅｔｅｄ）言語、宣言型又は手続き型言語を包含する任意のプログラミング言語の形態で記述でき、これはスタンドアローンプログラム（ｓｔａｎｄ−ａｌｏｎｅ  ｐｒｏｇｒａｍ）として、又はモジュールとしてコンポーネント（ｃｏｍｐｏｎｅｎｔ）、サブルーチン（ｓｕｂｒｏｕｔｉｎｅ）、オブジェクト（ｏｂｊｅｃｔ）又はコンピューティング環境における使用に適した他のユニットを包含する、任意の形態で展開配置できる。
コンピュータプログラムは、ファイルシステムのファイルに対応できるが、必ずそうする必要はない。プログラムは、問題のプログラムに指定された単一のファイル又は多重調整されたファイル（例えば、単数又は複数のモジュール、サブプログラム又はコードの部分を保存するファイル）に、他のプログラム又はデータ（例えば、マークアップ言語（ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）の文書に保存された単数又は複数のスクリプト）を有するファイルの一部に保存される。コンピュータプログラムは、一つのコンピュータ上において、或いは一つのサイトに位置するか、又は多重サイトに分散されて通信網により互いに連結された多数のコンピュータ上において、実行されるように展開配置できる。
【００５２】
この明細書において記述されたプロセス及び論理の流れは、単数又は複数のコンピュータプログラムを実行して入力データに対して動作し、そして出力を生成することにより活動を遂行する単数又は複数のプログラム可能なプロセッサにより遂行できる。プロセス及び論理の流れは、また専用（特定目的）論理回路、例えばＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）又はＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）により遂行でき、装置もまたこれらとして具現できる。
【００５３】
コンピュータプログラムの実行のために適したプロセッサは、例えば、汎用及び専用（特定目的の）マイクロプロセッサ、そして任意の種類のデジタルコンピュータの単数又は複数の任意のプロセッサを包含できる。一般的に、プロセッサは、リード（ｒｅａｄ）専用メモリ又はランダムアクセスメモリ、又は双方から命令及びデータを受信できる。コンピュータの本質的要素は、命令に応じて活動を遂行するためのプロセッサ及び命令及びデータを格納するための単数又は複数のメモリデバイスである。一般的に、コンピュータは、またデータを格納するための単数又は複数の大容量格納デバイス、例えば磁気的、磁気光学的ディスク又は光学ディスクを包含する場合があり、又はこれらからデータを受信し、これらへデータを伝送するように有効に結合される場合がある。しかしながら、コンピュータは、このようなデバイスを有するとは限らない。
なお、コンピュータは、もう一つのデバイス、幾つかの例を挙げるならば、モバイル電話、パーソナルデジタルアシスタント（ＰＤＡ）、モバイルオーディオ又はビデオプレーヤ、ゲームコンソール、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信機、又はポータブル格納デバイス（例えば、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）フラッシュドライブ）にエンベッド（組み込み，ｅｍｂｅｄ）される場合がある。コンピュータプログラム命令及びデータを格納するのに適したデバイスは、例えば半導体メモリデバイス、例えばＥＰＲＯＭ，ＥＥＰＲＯＭ、そしてフラッシュメモリデバイスを包含する、全ての形態の不揮発性メモリ、媒体及びメモリデバイス、磁気ディスク（例えば、内蔵ハードディスク又はリムーバブル（取り出し可能な）ディスク）、磁気光学ディスク、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを包含する。プロセッサ及びメモリは、専用（特定目的）論理回路により補強されるか、又はそれに取り込まれる（ｉｎｃｏｒｐｏｒａｔｅｄ）場合がある。
【００５４】
ユーザとの相互作用を提供するために、この明細書に記述された主題の実施例は、ユーザに情報を表示するための表示装置（例えば、ＣＲＴ（ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ）又はＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）モニタ）、キーボード、そしてポインティング装置（例えば、ユーザがコンピュータに入力を提供できるマウス又はトラックボール）を有するコンピュータ上で具現される。他の種類の装置もまたユーザとの相互作用を提供するように使用できる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック又は触覚フィードバックであリ得るし、ユーザからの入力は、音声、言語又は触覚を包含する任意の形態で受信される。
【００５５】
この明細書に記述された主題の実施例は、バックエンド（ｂａｃｋ−ｅｎｄ、ユーザから直接見えない側）コンポーネント（例えば、データサーバとして）を包含するか、ミドルウェアコンポーネント（例えば、応用サーバ）を包含するか、又はフロントエンド（ｆｒｏｎｔ−ｅｎｄ、ユーザに近い側）コンポーネント（例えば、ユーザがこの明細書において記述された主題の具現と相互作用できるグラフィックユーザインタフェース又はウェブブラウザを備えたユーザコンピュータ）を包含するか、又はこのようなバックエンド、ミドルウェア又はフロントエンドコンポーネントの単数又は複数の任意の組み合わせを包含する、コンピューティングシステムにおいて具現される。システムの構成要素は、デジタルデータ通信（例えば、通信網）の任意の形態又は媒体により互いに連結される。通信網の例は、近距離通信網（ＬＡＮ）及び広域通信網（ＷＡＮ）、インタ−ネットワーク（例えば、インタネット）、そしてピアツーピア（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）ネットワーク（例えば、アドホック（ａｄｈｏｃ）ピアツーピアネットワーク）を包含する。
【００５６】
コンピューティングシステムは、ユーザ及びサーバを包含できる。ユーザ及びサーバは、一般的に互いに離れており、そして通常、通信網を通じて相互作用する。ユーザ及びサーバの関係は、各々のコンピュータから実行されるコンピュータプログラムにより発生し、互いにユーザ−サーバ関係を有する。
【００５７】
この明細書が、多数の具体的な具現例の詳細を包含するが、これらは、如何なる発明の範囲又は請求の範囲を制限すると見なされてはならず、特定の発明の、特定の実施例に特化された特性の説明と見なされなければならない。別々の実施例の文脈においてこの明細書に記述された特定の複数の技術的特徴（ｆｅａｔｕｒｅｓ）はまた、単一の実施例において組み合わせで具現できる。逆に、単一の実施例の文脈において記述された多様な技術的特徴はまた、多数の実施例において別々に、又は任意の適切な部分を組み合わせて具現できる。なお、技術的特徴は、特定の組み合わせで動作すると上述され、そして当初はそのように特許請求されるが、単数又は複数の技術的特徴は、一部の事例において特許請求された組み合わせから切除でき、そして特許請求された組み合わせは、部分的組み合わせ又は部分的組み合わせの変形に向けたものであり得る。
【００５８】
同様に、動作が図面において特定の手順として示されるが、これは、必要な結果を達成するために動作が図示された特定の手順又は順次的な手順として遂行されるか、又は、図示された全ての動作が遂行される、ことを要求すると理解されてはならない。特定の状況において、マルチタスキング又は並列プロセシングが有利であり得る。なお、上述された実施例の多様なシステム構成要素の分離は、全ての実施例においてそのような分離を必要とすると理解されてはならず、記述されたプログラムコンポーネント及びシステムは、単一のソフトウェア製品に統合されるか、又は多重のソフトウェア製品として一括（ｐａｃｋａｇｅ）される、と理解されるはずでる。
【００５９】
斯くして、本主題の特定の実施例が説明された。他の実施例は、別途の特許請求の範囲の範囲内にある。一部の事例において、請求の範囲において引用された動作は、他の手順でも遂行でき、依然として必要な結果を達成できる場合がある。なお、添付された図面に図示されたプロセスは、必要な結果を達成するために図示された特定の手順又は順次的な手順を必ずしも必要としない。特定の具現において、マルチタスキング及び並列プロセッシングが有利であり得る。
【００６０】
この分野における熟練された者ならば理解できるように、ここに記述された革新的な思想は、応用の広い範囲により修正又は変形できる。従って、請求された主題の範囲は、上で論議された具体的で模範的な教示の何れかに限定されてはならず、代わりに別途の特許請求の範囲により定義される。
【産業上の利用可能性】
【００６１】
本発明は分析的閾値関数を用いた神経網のウェートをプルーニングすることにより、神経網の速度と精度を向上させるニューラルシステムに有用である。
【符号の説明】
【００６２】
ＣＯＮＶ：  コンボルーション階層
ＦＣ：  完全連結階層
ｆ（ｗ）：  ウェート関数
ｈ（ｗ）：  閾値関数
ＰＬ：  プーリング階層
ｗ：  ウェート
１００，１００′：階層
１０１：閾値関数
２００：  ＶＧＧ１６＿ＤＮＮの構造
３０１ａ，３０１ｂ：閾値関数の第１、第２エッジ
３０２：閾値関数の幅
３０３：ウェート値の第１セット
３０４：ウェート値の第２セット
３０５：ウェート値の第３セット
３０６ａ、３０６ｂ：ウェート関数の第１、第２遷移領域
６０１：閾値関数
６０２：閾値関数の１次導関数
７００：神経網プルーニング方法
８００：電子デバイス
８１０：制御器
８２０：入力／出力デバイス
８３０：メモリデバイス
８４０：インタフェース
８５０：バス
【図１】
2019106181.tif 000008
【図２】
2019106181.tif 000009
【図３】
2019106181.tif 000010
【図４】
2019106181.tif 000011
【図５】
2019106181.tif 000012
【図６】
2019106181.tif 000013
【図７】
2019106181.tif 000014
【図８】
2019106181.tif 000015
【図９】
2019106181.tif 000016
【図１０】
2019106181.tif 000017
【図１１】
2019106181.tif 000018
【図１２】
2019106181.tif 000019
【図１３】
2019106181.tif 000020
【図１４】
2019106181.tif 000021