(57)【要約】  本開示の実施形態は、機械学習を行うための方法及びシステムを提供する。方法は、訓練データを受信すること、訓練データに基づいて機械学習モデルを訓練することであって、機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、機械学習モデルの接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、閾値条件を満たさない重みを有する１つ又は複数の接続を機械学習モデルから除去すること、及び接続を除去した後で機械学習モデルを更新することを含み得る。
2021522574.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実施される方法であって、
訓練データを受信すること、
前記訓練データに基づいて機械学習モデルを訓練することであって、前記機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、前記１つ又は複数のノードは、前記機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、
前記機械学習モデルの前記接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、
閾値条件を満たさない重みを有する１つ又は複数の接続を前記機械学習モデルから除去すること、及び
前記接続を除去した後で前記機械学習モデルを更新すること
を含む、方法。
【請求項２】
前記訓練データを受信することが、
前記訓練データの一部を除去することによって前記訓練データを減らすこと
を更に含む、請求項１に記載の方法。
【請求項３】
前記訓練データが複数の次元を含み、前記除去した一部が少なくとも１つの次元に関連する、請求項２に記載の方法。
【請求項４】
前記機械学習モデルの前記層に関連する重みを評価することであって、各層は対応する層重みを有する、評価すること、
層閾値条件を満たさない重みを有する１つ又は複数の層を前記機械学習モデルから除去すること、及び
前記１つ又は複数の層を除去した後で前記機械学習モデルを更新すること
を更に含む、請求項１に記載の方法。
【請求項５】
前記訓練データが、第１の時点に関連する第１のデータ及び第２の時点に関連する第２のデータを含み、前記訓練データの前記一部を除去することによって前記訓練データを減らすことが、
前記第１の時点に関連する前記第１のデータを前記訓練データから除去すること
を更に含む、請求項２に記載の方法。
【請求項６】
前記機械学習モデルに与えられる入力データを評価するためのフィルタを生成すること
を更に含む、請求項１に記載の方法。
【請求項７】
機械学習を行うためのコンピュータによって実施される方法であって、
１つ又は複数のノードをそれぞれ有する複数の層を含む機械学習モデルに与えられる入力データを受信することであって、前記１つ又は複数のノードは、前記機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、受信すること、
前記入力データをフィルタによって処理すること、及び
前記処理済みの入力データを前記機械学習モデルに与えること
を含む、方法。
【請求項８】
前記入力データを処理することが、
前記入力データの一部を除去すること、及び
前記入力データを更新すること
を更に含む、請求項７に記載の方法。
【請求項９】
前記入力データが複数の次元を含み、前記除去した一部が少なくとも１つの次元に関連する、請求項８に記載の方法。
【請求項１０】
前記入力データが、第１の時点に関連する第１のデータ及び第２の時点に関連する第２のデータを含み、前記入力データの前記一部を除去することが、
前記第１の時点に関連する前記第１のデータを前記入力データから除去すること
を更に含む、請求項９に記載の方法。
【請求項１１】
前記処理済みの入力データが、ガイド情報を更に含み、前記処理済みの入力データが、前記ガイド情報に基づいて少なくとも１つの接続をバイパスするように更に構成される、請求項７に記載の方法。
【請求項１２】
前記少なくとも１つの接続が、１つの層に関連する全ての接続を含む、請求項１１に記載の方法。
【請求項１３】
前記フィルタが前記機械学習モデルの訓練に基づいて生成される、請求項７に記載の方法。
【請求項１４】
機械学習モデルを単純化するための方法をコンピュータシステムに行わせるために前記コンピュータシステムの少なくとも１つのプロセッサによって実行可能な１組の命令を記憶する非一時的コンピュータ可読媒体であって、前記方法が、
訓練データを受信すること、
前記訓練データに基づいて機械学習モデルを訓練することであって、前記機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、前記１つ又は複数のノードは、前記機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、
前記機械学習モデルの前記接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、
閾値条件を満たさない重みを有する１つ又は複数の接続を前記機械学習モデルから除去すること、及び
前記接続を除去した後で前記機械学習モデルを更新すること
を含む、
非一時的コンピュータ可読媒体。
【請求項１５】
前記訓練データを受信することが、
前記訓練データの一部を除去することによって前記訓練データを減らすこと
を更に含む、請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記訓練データが複数の次元を含み、前記除去した一部が少なくとも１つの次元に関連する、請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記１組の命令が、
前記機械学習モデルの前記層に関連する重みを評価することであって、各層は対応する層重みを有する、評価すること、
層閾値条件を満たさない重みを有する１つ又は複数の層を前記機械学習モデルから除去すること、及び
前記１つ又は複数の層を除去した後で前記機械学習モデルを更新すること
を前記コンピュータシステムに行わせるために前記コンピュータシステムの前記少なくとも１つのプロセッサによって更に実行される、請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記訓練データが、第１の時点に関連する第１のデータ及び第２の時点に関連する第２のデータを含み、前記訓練データの前記一部を除去することによって前記訓練データを減らすことが、
前記第１の時点に関連する前記第１のデータを前記訓練データから除去すること
を更に含む、請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記１組の命令が、
前記機械学習モデルに与えられる入力データを評価するためのフィルタを生成すること
を前記コンピュータシステムに行わせるために前記コンピュータシステムの前記少なくとも１つのプロセッサによって更に実行される、請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項２０】
機械学習を行うための方法をコンピュータシステムに行わせるために前記コンピュータシステムの少なくとも１つのプロセッサによって実行可能な１組の命令を記憶する非一時的コンピュータ可読媒体であって、前記方法が、
１つ又は複数のノードをそれぞれ有する複数の層を含む機械学習モデルに与えられる入力データを受信することであって、前記１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、受信すること、
前記入力データをフィルタによって処理すること、及び
前記処理済みの入力データを前記機械学習モデルに与えること
を含む、非一時的コンピュータ可読媒体。
【請求項２１】
１組の命令を記憶するメモリと、
１つのプロセッサと、を含むコンピュータシステムであって、
前記１つのプロセッサは、前記１組の命令を実行して、
訓練データを受信すること、
前記訓練データに基づいて機械学習モデルを訓練することであって、前記機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、前記１つ又は複数のノードは、前記機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、
前記機械学習モデルの前記接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、
閾値条件を満たさない重みを有する１つ又は複数の接続を前記機械学習モデルから除去すること、及び
前記接続を除去した後で前記機械学習モデルを更新すること
を前記システムに行わせるように構成される、
コンピュータシステム。
【請求項２２】
機械学習を行うためのシステムであって、
１組の命令を記憶するメモリと、
前記１組の命令を実行して
１つ又は複数のノードをそれぞれ有する複数の層を含む機械学習モデルに与えられる入力データを受信することであって、前記１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、受信すること、
前記入力データをフィルタによって処理すること、及び
前記処理済みの入力データを前記機械学習モデルに与えること
を前記システムに行わせるように構成される少なくとも１つのプロセッサと
を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]  本開示は、参照によりその全体を本明細書に援用する、２０１８年４月２７日に出願された米国仮特許出願第６２／６６３，９５５号の優先権の利益を主張する。
【背景技術】
【０００２】
背景
[0002]  機械学習プログラムの発展と共に、モデルの精度を改善するために機械学習モデルの次元が著しく増加している。しかし深層機械学習モデルは、モデルの訓練又は推論中にかなりの記憶域、メモリ帯域幅、エネルギ消費、及び計算資源を消費する。これらの問題は、深層機械学習モデルをモバイル装置及び埋込装置上に配備することを困難にする。
【０００３】
[0003]  本開示の実施形態は、機械学習を行うための方法及びシステムを提供することによって上記の問題に対処する。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
[0004]  本開示の実施形態は、コンピュータによって実施される方法を提供する。その方法は、訓練データを受信すること、訓練データに基づいて機械学習モデルを訓練することであって、機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、機械学習モデルの接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、閾値条件を満たさない重みを有する１つ又は複数の接続を機械学習モデルから除去すること、及び接続を除去した後で機械学習モデルを更新することを含み得る。
【０００５】
[0005]  本開示の実施形態は、機械学習を行うためのコンピュータによって実施される方法も提供する。その方法は、１つ又は複数のノードをそれぞれ有する複数の層を含む機械学習モデルに与えられる入力データを受信することであって、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、受信すること、入力データをフィルタによって処理すること、及び処理済みの入力データを機械学習モデルに与えることを含み得る。
【０００６】
[0006]  本開示の実施形態は、機械学習モデルを単純化するための方法をコンピュータシステムに行わせるためにコンピュータシステムの少なくとも１つのプロセッサによって実行可能な１組の命令を記憶する非一時的コンピュータ可読媒体を更に提供する。その方法は、訓練データを受信すること、訓練データに基づいて機械学習モデルを訓練することであって、機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、機械学習モデルの接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、閾値条件を満たさない重みを有する１つ又は複数の接続を機械学習モデルから除去すること、及び接続を除去した後で機械学習モデルを更新することを含み得る。
【０００７】
[0007]  本開示の実施形態は、機械学習を行うための方法をコンピュータシステムに行わせるためにコンピュータシステムの少なくとも１つのプロセッサによって実行可能な１組の命令を記憶する非一時的コンピュータ可読媒体を更に提供する。その方法は、１つ又は複数のノードをそれぞれ有する複数の層を含む機械学習モデルに与えられる入力データを受信することであって、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、受信すること、入力データをフィルタによって処理すること、及び処理済みの入力データを機械学習モデルに与えることを含み得る。
【０００８】
[0008]  本開示の実施形態はコンピュータシステムを更に提供する。コンピュータシステムは、１組の命令を記憶するメモリと、１組の命令を実行して、訓練データを受信すること、訓練データに基づいて機械学習モデルを訓練することであって、機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、機械学習モデルの接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、閾値条件を満たさない重みを有する１つ又は複数の接続を機械学習モデルから除去すること、及び接続を除去した後で機械学習モデルを更新すること、をシステムに行わせるように構成される少なくとも１つのプロセッサとを含み得る。
【０００９】
[0009]  本開示の実施形態は、機械学習を行うためのコンピュータシステムを更に提供する。コンピュータシステムは、１組の命令を記憶するメモリと、１組の命令を実行して、１つ又は複数のノードをそれぞれ有する複数の層を含む機械学習モデルに与えられる入力データを受信することであって、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、受信すること、入力データをフィルタによって処理すること、及び処理済みの入力データを機械学習モデルに与えること、をシステムに行わせるように構成される少なくとも１つのプロセッサとを含み得る。
【００１０】
[0010]  開示する実施形態の更なる特徴及び利点は、以下の説明の中で部分的に記載し、説明から部分的に明らかになり、又は実施形態を実践することによって知ることができる。開示する実施形態の特徴及び利点は、特許請求の範囲に記載の要素及び組み合わせによって実現し、成し遂げることができる。
【００１１】
[0011]  上記の全般的な説明及び以下の詳細な説明はどちらも例示的且つ説明的に過ぎず、特許請求の範囲に記載するものとしての開示する実施形態を限定しないことを理解すべきである。
【００１２】
図面の簡単な説明
[0012]  本開示の実施形態及び様々な態様を以下の詳細な説明及び添付図面に示す。図示の様々な特徴は縮尺通りに描かれていない。
【図面の簡単な説明】
【００１３】
【図１】[0013]本開示の実施形態によるニューラルネットワーク処理アーキテクチャを示す。
【図２Ａ】[0014]本開示の実施形態による機械学習モデルの概略図を示す。
【図２Ｂ】[0014]本開示の実施形態による機械学習モデルの概略図を示す。
【図２Ｃ】[0014]本開示の実施形態による機械学習モデルの概略図を示す。
【図２Ｄ】[0014]本開示の実施形態による機械学習モデルの概略図を示す。
【図２Ｅ】[0014]本開示の実施形態による機械学習モデルの概略図を示す。
【図２Ｆ】[0014]本開示の実施形態による機械学習モデルの概略図を示す。
【図３】[0015]本開示の実施形態による入力データに対する単純化の概略図を示す。
【図４】[0016]本開示の実施形態によるコンピュータによって実施される方法を示す。
【図５】[0017]本開示の実施形態による機械学習を行うためのコンピュータによって実施される方法を示す。
【発明を実施するための形態】
【００１４】
詳細な説明
[0018]  本開示の特定の態様を以下でより詳細に説明する。参照により援用する用語又は定義と矛盾する場合は、本明細書で与える用語及び定義が有効である。
【００１５】
[0019]  本開示に記載する技法は、以下の技術的効果の１つ又は複数を有する。一部の実施形態では、本開示に記載する技法が、訓練データを受信すること、訓練データに基づいて機械学習モデルを訓練することであって、機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する、訓練すること、機械学習モデルの接続に関連する重みを評価することであって、各接続は対応する重みを有する、評価すること、閾値条件を満たさない重みを有する１つ又は複数の接続を機械学習モデルから除去すること、及び接続を除去した後で機械学習モデルを更新することを含む、コンピュータによって実施される方法を提供する。一部の実施形態では、本開示に記載する技法は、機械学習モデルの１つ又は複数の接続を除去することによって機械学習モデルを単純化する。単純化することは、機械学習モデルが必要とする記憶空間、計算資源、及び電力消費を減らすことも可能にする。一部の実施形態では、本開示に記載する技法が機械学習モデルに与えられる入力データを評価するためのフィルタも生成する。フィルタは、機械学習モデルのための入力データを、実行時に処理することができる。フィルタは、入力データの一部を除去することによって、入力データを減らすことができる。そのように減らすことは、機械学習モデルが必要とする記憶空間、帯域幅、計算資源、及び電力消費を減らすことを可能にする。一部の実施形態では、推論結果を劣化させることなしにガイド情報に基づいて入力データが機械学習モデルの少なくとも１つの接続をバイパスすることができるように、フィルタが入力データ内にガイド情報を組み込むこともできる。少なくとも１つの接続をバイパスすることは、機械学習モデルが必要とする計算資源及び電力消費を減らすことを可能にする。
【００１６】
[0020]  本明細書で使用するとき、「含む（comprises）」、「含んでいる（comprising）」という用語、又はこれらの用語の他の任意の改変形態は、非排他的包含を範囲に含むことを意図し、そのため要素の一覧を含むプロセス、方法、組成、物、又は機器はそれらの要素だけを含むのではなく、明確に列挙されていない他の要素又はかかるプロセス、方法、組成、物、若しくは機器に固有の他の要素を含み得る。「例示的（exemplary）」という用語は、「理想的（ideal）」ではなく「例（example）」という意味で使用する。
【００１７】
[0021]  図１は、本開示の実施形態による例示的なニューラルネットワーク処理アーキテクチャ１００を示す。図１に示すように、アーキテクチャ１００は、チップ通信システム１０２、ホストメモリ１０４、メモリコントローラ１０６、直接メモリアクセス（ＤＭＡ）ユニット１０８、ジョイントテストアクショングループ（ＪＴＡＧ）／テストアクセスエンド（ＴＡＰ）コントローラ１１０、周辺インタフェース１１２、バス１１４、グローバルメモリ１１６等を含むことができる。チップ通信システム１０２は、伝達されるデータに基づいてアルゴリズム演算（例えば機械学習演算）を実行できることが理解されよう。
【００１８】
[0022]  チップ通信システム１０２は、グローバルマネージャ１０２２及び複数のコア１０２４を含むことができる。グローバルマネージャ１０２２は、１つ又は複数のコア１０２４と連携するための少なくとも１つのタスクマネージャを含むことができる。各タスクマネージャは、ニューラルネットワークのシナプス／ニューロン回路を提供するコア１０２４のアレイに関連することができる。例えば図１の処理要素の最上層はニューラルネットワークへの入力層を表す回路を提供することができる一方、コアの第２の層はニューラルネットワークの隠れ層を表す回路を提供することができる。従って、チップ通信システム１０２は、ニューラルネットワーク処理ユニット（ＮＰＵ）と呼ぶこともできる。図１に示すように、グローバルマネージャ１０２２は、コアの２つのアレイと連携するために２つのタスクマネージャを含むことができる。
【００１９】
[0023]  コア１０２４は、グローバルマネージャ１０２２から受信される命令に基づいて１つ又は複数の演算（例えば乗算、加算、乗累算等）を実行するように構成される１つ又は複数の処理ユニットを含む単一命令多重データ（ＳＩＭＤ）アーキテクチャをそれぞれ含む、１つ又は複数の処理要素を含むことができる。伝達されるデータパケットに対する演算を実行するために、コア１０２４は、データパケット内の情報を処理するための１つ又は複数の処理要素を含むことができる。各処理要素は、任意の数の処理ユニットを含むことができる。一部の実施形態では、コア１０２４をタイル等と見なすことができる。
【００２０】
[0024]  ホストメモリ１０４は、ホストＣＰＵのメモリ等のオフチップメモリとすることができる。例えば、ホストメモリ１０４は、ＤＤＲメモリ（例えばＤＤＲ  ＳＤＲＡＭ）等とすることができる。ホストメモリ１０４は、高レベルキャッシュとして機能する１つ又は複数のプロセッサに組み込まれるオンチップメモリに比べて、遅いアクセス速度で大量のデータを記憶するように構成され得る。
【００２１】
[0025]  メモリコントローラ１０６は、メインメモリの機能を果たすためにオンチップメモリブロック（例えば４ブロックの８ＧＢ第２世代高帯域幅メモリ（ＨＢＭ２））を有するグローバルメモリ１１６内の特定のメモリブロックとの間のデータの読み書きを管理することができる。例えばメモリコントローラ１０６は、チップ通信システム１０２の外から（例えばＤＭＡユニット１０８又は別のＮＰＵに対応するＤＭＡユニットから）来るデータの読み書き、又はチップ通信システム１０２の中から（例えばグローバルマネージャ１０２２のタスクマネージャによって制御される２Ｄメッシュを介してコア１０２４内のローカルメモリから）来るデータの読み書きを管理することができる。更に、図１ではメモリコントローラを１つ示すが、複数のメモリコントローラがアーキテクチャ１００内に設けられ得ることが理解されよう。例えば、グローバルメモリ１１６内のメモリブロック（例えばＨＢＭ２）ごとに１つのメモリコントローラがあり得る。
【００２２】
[0026]  メモリコントローラ１０６は、メモリアドレスを生成し、メモリの読み取り又は書き込みサイクルを開始することができる。メモリコントローラ１０６は、１つ又は複数のプロセッサによって読み書きされ得る幾つかのハードウェアレジスタを含むことができる。レジスタは、メモリアドレスレジスタ、バイトカウントレジスタ、１つ又は複数の制御レジスタ、及び他の種類のレジスタを含み得る。これらのレジスタは、ソース、宛先、転送の方向（入出力（Ｉ／Ｏ）装置からの読み取り又はＩ／Ｏ装置への書き込み）、転送単位のサイズ、１つのバースト内で転送するバイト数、又はメモリコントローラの他の典型的な特徴の幾つかの組み合わせを指定することができる。
【００２３】
[0027]  ＤＭＡユニット１０８は、ホストメモリ１０４とグローバルメモリ１１６との間のデータ転送を支援することができる。加えて、ＤＭＡユニット１０８は、複数のＮＰＵ（例えばＮＰＵ１００）間のデータ転送を支援することができる。ＤＭＡユニット１０８は、ＣＰＵの割り込みを引き起こすことなしにオフチップ装置がオンチップメモリ及びオフチップメモリの両方にアクセスすることを可能にし得る。従って、ＤＭＡユニット１０８もメモリアドレスを生成し、メモリの読み取り又は書き込みサイクルを開始することができる。ＤＭＡユニット１０８も、メモリアドレスレジスタ、バイトカウントレジスタ、１つ又は複数の制御レジスタ、及び他の種類のレジスタを含む、１つ又は複数のプロセッサによって読み書きされ得る幾つかのハードウェアレジスタを含むことができる。これらのレジスタは、ソース、宛先、転送の方向（入出力（Ｉ／Ｏ）装置からの読み取り又はＩ／Ｏ装置への書き込み）、転送単位のサイズ、１つのバースト内で転送するバイト数の幾つかの組み合わせを指定することができる。アーキテクチャ１００は、第２のＤＭＡユニットを含み得ることが理解され、第２のＤＭＡユニットは、ホストＣＰＵを関与させることなしに複数のニューラルネットワーク処理アーキテクチャが直接通信できるようにするために、他のニューラルネットワーク処理アーキテクチャとの間でデータを転送するために使用され得る。
【００２４】
[0028]  ＪＴＡＧ／ＴＡＰコントローラ１１０は、システムアドレス及びデータバスへの直接の外部アクセスを必要とすることなしに、ＮＰＵへの低オーバヘッドアクセスのためのシリアル通信インタフェース（例えばＪＴＡＧインタフェース）を実装する専用デバッグポートを指定することができる。ＪＴＡＧ／ＴＡＰコントローラ１１０は、様々な部分のチップロジックレベル及び装置機能を提示する１組のテストレジスタにアクセスするためのプロトコルを実装するオンチップテストアクセスインタフェース（例えばＴＡＰインタフェース）も有することができる。
【００２５】
[0029]  もし存在する場合、周辺インタフェース１１２（ＰＣＩｅインタフェース等）は、アーキテクチャ１００と他の装置との間の通信を提供するチップ間バスの役割を果たす（典型的にはチップ間バスである）。
【００２６】
[0030]  バス１１４は、チップ内バス及びチップ間バスの両方を含む。チップ内バスは、システムアーキテクチャによって必要とされる全ての内部コンポーネントを互いに接続する。全てのコンポーネントが他の全てのコンポーネントに接続されるわけではないが、全てのコンポーネントは、通信する必要がある他のコンポーネントへの幾らかの接続を有する。チップ間バスは、ＮＰＵをオフチップメモリ又は周辺機器等の他の装置と接続する。典型的には、周辺インタフェース１１２（例えばチップ間バス）がある場合、バス１１４はチップ内バスに専ら携わるが、一部の実施形態では専用のバス間通信に引き続き携わることができる。
【００２７】
[0031]  チップ通信システム１０２は、ニューラルネットワークに基づいて演算を行うように構成され得る。
【００２８】
[0032]  アーキテクチャ１００は、ホストユニット１２０も含むことができる。ホストユニット１２０は、１つ又は複数の処理ユニット（例えばＸ８６中央処理装置）とすることができる。一部の実施形態では、ホストユニット１２０及びホストメモリ１０４を有するホストシステムは、コンパイラ（不図示）を含むことができる。コンパイラは、或るプログラミング言語で書かれたコンピュータコードをＮＰＵ命令に変換して実行可能プログラムを作成するプログラム又はコンピュータソフトウェアである。マシニングの応用では、コンパイラは、様々な演算、例えば前処理、字句解析、構文解析、意味解析、入力プログラムの中間表現への変換、コードの最適化、及びコードの生成、又はそれらのものの組み合わせを実行することができる。プログラムをコンパイルすることに加えて、入力データの特徴を抽出することができるように、ホストシステムは、チップ通信システム１０２によって処理される入力データを解析することもできる。
【００２９】
[0033]  一部の実施形態では、ＮＰＵ命令を生成するコンパイラが、チップ通信システム１０２にコマンドをプッシュするホストシステム上にあり得る。これらのコマンドに基づき、各タスクマネージャは、１つ又は複数のコア（例えばコア１０２４）に任意の数のタスクを割り当てることができる。コマンドの一部は、（コンパイラによって生成される）命令及びデータ（例えば入力データ）をホストメモリ１０４からグローバルメモリ１１６内にロードするように、ＤＭＡユニット１０８に命令することができる。次いで、対応するタスクが割り当てられた各コアに、ロードされた命令を分配することができ、１つ又は複数のコアがそれらの命令を処理することができる。
【００３０】
[0034]  図２Ａ〜図２Ｆは、本開示の実施形態による機械学習モデルの概略図を示す。機械学習モデルの一例として、ニューラルネットワークは複数の層を含むことができ、各層は（人工ニューロンとしても知られる）複数のノードを含むことができる。複数のノード間の接続は、訓練データを用いてニューラルネットワークを訓練することによって確立することができる。図２Ａ〜図２Ｆでは、太い矢印が層間の多くの接続を表し得る。ニューラルネットワークの訓練は機械学習と呼ぶこともでき、訓練済みのニューラルネットワークは機械学習モデルと呼ぶこともできる。接続のそれぞれに、複数のビット（例えば３２ビット）を含む重みを割り当てることができる。接続の重みは、その接続における信号の強さを強める又は弱めることができる。例えば図２Ａに示すように、２つのノード２２１及び２３１間の接続２０１１の重みはゼロであり得る。従って、接続２０１１を通る信号はゼロまで低下させられる。換言すれば、信号は接続２０１１を通ることができず、２つのノード２２１及び２３１は切断されている。
【００３１】
[0035]  図２Ａは、例示的なニューラルネットワーク２０１の概略図を示す。ニューラルネットワーク２０１は、それぞれが複数のノード（例えばノード２１１、２１２、２１３等）を含む４つの層（例えば層２１０、２２０、２３０、及び２４０）を含み得る。本開示の一部の実施形態では、ニューラルネットワーク２０１は、訓練に使用する初期ニューラルネットワークとすることができる。初期ニューラルネットワークとは、既定のパラメータ（例えば接続の重み）を有するニューラルネットワークである。ニューラルネットワークのパラメータは、ノード間の接続及び接続の重みに関係し得る。一部の実施形態では、ニューラルネットワーク２０１は、層の複数のノード間の複数の接続を確立することができるように訓練データに基づいて初期ニューラルネットワークを訓練することによって開発された訓練済みのニューラルネットワークとすることができる。
【００３２】
[0036]  本開示の実施形態によれば、ニューラルネットワーク２０１内の複数の接続は単純化することができる。一部の実施形態では、この単純化は、ニューラルネットワーク２０１に対して訓練中に行うことができる。訓練中の単純化は、静止時における単純化と呼ぶこともできる。
【００３３】
[0037]  一部の実施形態では、単純化によって、訓練中に２つのノード間の接続を除去することができる。図２Ｂは、本開示の実施形態による、一部の接続（シナプスとしても知られる）を除去することを含む、刈り込みの後のニューラルネットワーク２０２の概略図を示す。例えば図２Ｂでは、図２Ａの接続２０１１がニューラルネットワーク２０１から除去されている。上記で論じたように、訓練済みのニューラルネットワークの各接続には接続重みが割り当てられる。次に、接続重みが閾値を満たすかどうかを判定することができる。例えば接続重みが閾値以上である場合、接続重みが閾値を満たし、対応する接続が維持される。そうではなく接続重みが閾値未満である場合、接続重みが閾値を満たさない。接続の接続重みが閾値を満たさない場合、対応する接続を除去することができる。一部の実施形態では、接続の接続重みをゼロに設定することによって、接続を除去することができる。一部の実施形態では、ニューラルネットワークから接続を削除することによって、接続を除去することもできる。
【００３４】
[0038]  一部の実施形態では、訓練済みのニューラルネットワークにおいて、除去しようとする少なくとも１つの接続の接続重みをゼロに設定することができ、訓練済みのニューラルネットワークを精度評価のために更新することができる。更新済みのニューラルネットワークの精度が満足できるものである場合、少なくとも１つの接続をニューラルネットワークから最終的に除去することができる。他方で更新済みのニューラルネットワークの精度が満足できるものではない場合、接続を除去するための閾値を調節することができる。閾値は、様々なニューラルネットワーク及びニューラルネットワークが適用される様々な要因（例えば精度、エネルギ消費等）に従って調節できることが理解されよう。
【００３５】
[0039]  残りの接続に基づき、ニューラルネットワーク２０１を最終ニューラルネットワーク（例えば図２Ｂに示すニューラルネットワーク２０２）へと更新することができる。残りの接続の重みも更新できることが理解されよう。元の重みは複数のビット（例えば３２ビット）であり得るので、更新済みの重みのそれぞれも引き続きこの複数のビットを含み得る。
【００３６】
[0040]  図２Ｃは、本開示の実施形態による、層を除去した後のニューラルネットワーク２０３の概略図を示す。一部の実施形態では、ニューラルネットワークの層を訓練中に除去して、ニューラルネットワークを更に単純化することができる。例えば図２Ｃでは、図２Ａ又は図２Ｂの層２３０がニューラルネットワークから除去されている。
【００３７】
[0041]  一部の実施形態では、ニューラルネットワークの接続に基づいてニューラルネットワークの各層の層重みを決定することができる。層の層重みは、層のノードの接続重みに関係し得る。例えば層重みは、層のノードの接続重みの和とすることができる。次に、層の層重みが閾値を満たすかどうかを判定することができる。例えば層重みが閾値以上である場合、層重みが閾値を満たす。そうではなく層重みが閾値未満である場合、層重みが閾値を満たさない。接続の層重みが閾値を満たさない場合、その層（例えば層２３０）を除去することができる。一部の実施形態では、層に関係する全ての接続の接続重みをゼロに設定することによって層を「除去」することができる。一部の実施形態では、ニューラルネットワーク内の層を削除することによって層を除去することもできる。
【００３８】
[0042]  残りの層に基づき、ニューラルネットワーク２０１を最終ニューラルネットワーク（例えば図２Ｃに示すニューラルネットワーク２０３）へと更新することができる。残りの層の中の接続及び接続の重みは更新できることが理解されよう。
【００３９】
[0043]  ニューラルネットワークを訓練データに基づいて修正する以外に、訓練データは、ニューラルネットワークを訓練するために使用する前に修正することができる。一部の実施形態では、訓練データの一部を除去することができる。例えば訓練データは、複数の次元（例えば１０次元）含むことができる。ニューラルネットワークを訓練するために訓練データを入力する前に、訓練データの少なくとも１つの次元を除去することができる。
【００４０】
[0044]  一部の実施形態では、再帰型ニューラルネットワーク（ＲＮＮ）及び長短期メモリネットワーク（ＬＳＴＭ）等のニューラルネットワークに時間情報が関与することができ、訓練データの除去部分が時間領域に関係し得る。これらのニューラルネットワークはデータシーケンスを処理できることが理解されよう。従って、ニューラルネットワークの刺激は、時点Ｔの新たな入力データだけではなく、時点Ｔ−１の履歴情報からも生じ得る。従って、ニューラルネットワークに訓練データを入力する前に、時点Ｔ１に関連する第１の訓練データを除去できる一方、時点Ｔ２に関連する第２の訓練データを訓練のためにニューラルネットワークに与えることができる。
【００４１】
[0045]  ノード及び層間の接続は、訓練データに関係することが理解されよう。上記で論じたように、接続及び層の重みが所与の閾値を下回ることを理由に、一部の接続又は層を除去することができる。従って、ニューラルネットワークを実行時に使用するとき、それらの接続又は層は入力データによってバイパスされ得る（又は飛ばされ得る）。また、訓練データの一部はニューラルネットワークの結果に対して弱い影響力を有している場合があり、従ってニューラルネットワークによって無視され得る。従って、ニューラルネットワークの訓練に基づいてフィルタを生成することができる。一部の実施形態では、フィルタは学習アルゴリズムによって生成することができる。例えばフィルタは、除去された接続、除去された層、残りの接続及び層、並びにニューラルネットワークの出力のうちの少なくとも１つに基づいて訓練することができる。一部の実施形態では、フィルタは層間のゲート及び／又はゲーティングニューラルネットワークであり得る。例えばフィルタは、次元ベクトルを出力するための、限られた数の畳み込み層、平均プーリング層、及び全結合層を含むことができる。フィルタは前の層の出力だけに依存し、少数の畳み込み演算及びプーリング演算を適用することができる。
【００４２】
[0046]  一部の実施形態では、フィルタリング規則を組み込むように、フィルタを手動でプログラムすることができる。一部の実施形態では、フィルタは、例えばソフトウェアエンジニアによって決定された規則を組み込むこともできる。換言すれば、フィルタはソフトウェアエンジニアによって生成され又は設計され得る。
【００４３】
[0047]  マシニングの応用では、フィルタは、図１のホストシステムに配備することができる。従って、入力データがチップ通信システム１０２に伝送される前に、ニューラルネットワークの少なくとも１つの接続を実行時にバイパスするように、フィルタが入力データを導くことができる。例えばフィルタは入力データ内にガイド情報を組み込むことができ、ガイド情報は、機械学習モデルの少なくとも１つの接続をパススルーするための入力データの経路を含み得る。層の全ての接続がバイパスされる場合、その層はパスされることが理解されよう。ガイド情報に従って特定の接続又は層がバイパスされ得るように、例えばフィルタは入力データ内にガイド情報を組み込むことができる。入力データの一部を除去することにより、フィルタは入力データを減らすこともできる。例えば入力データがフィルタをパススルーするとき、入力データから一部（例えば入力データの少なくとも１つの次元）を除去することができる。従ってニューラルネットワークの処理負荷を下げることに加えて、ホストユニット１２０とチップ通信システム１０２との間のデータトラフィックも減らすことができる。従って、アーキテクチャ１００の電力消費及び帯域幅使用量を減らすことができる。
【００４４】
[0048]  図２Ｄ〜図２Ｆは、本開示の実施形態による、実行時におけるニューラルネットワーク２０４〜２０６の例を示す。一部の実施形態では、ニューラルネットワーク２０１に対して単純化を推論中に行うこともできる。推論中の単純化も実行時における単純化と呼ぶことができる。
【００４５】
[0049]  上記で論じたように、入力データはフィルタによって生成されるガイド情報を組み込むことができる。本開示の一部の実施形態では、ガイド情報は、少なくとも１つの層をバイパスするように、入力データに指示することができる。ガイド情報は、入力データ及びニューラルネットワークの少なくとも１つに基づいて、フィルタによって生成され得る。従って、フィルタによって生成されるガイド情報は、入力データ及びニューラルネットワークに応じて異なり得る。
【００４６】
[0050]  図２Ｄは、実行時におけるニューラルネットワーク２０４の概略図を示す。図２Ｄに示すように、一部の入力データは層２３０をバイパスすることができる。一部の実施形態では、ニューラルネットワーク２０４が層２３０なしに実行時において一部の入力データの正確な結果を生成することができる。例えば、より複雑な入力データはより多くの層を通すことができるのに対し、より複雑ではない入力データはより少ない層を通すことができる。従って入力データに基づき、層２３０は実行時にバイパスすることができる。従ってフィルタは、層２３０をバイパスするように入力データに指示するガイド情報を生成することができる。
【００４７】
[0051]  図２Ｄでは、層２３０に関連する接続がニューラルネットワーク２０４内で依然として提供され、点線矢印として図示されていることが理解されよう。従って、他の一部の入力データがこれらの接続を経由して層２３０を通ることが可能である。
【００４８】
[0052]  層２３０に関連する接続の重みは、ゼロ又は他の任意の値に設定することができる。従って本開示の実施形態では、少なくとも１つの層をバイパスする（例えば層の接続の重みをゼロに設定する）ことにより、入力データを処理するのに必要な計算資源を減らすことができる。
【００４９】
[0053]  少なくとも１つの層をバイパスする以外に、本開示の実施形態は、ノード間の少なくとも１つの接続を実行時にバイパスすることもできる。図２Ｅは、実行時におけるニューラルネットワーク２０５の概略図を示す。図２Ｅに示すように、ニューラルネットワーク２０５は、層２１０と層２２０との間でノード２１３とノード２２２との間の第１の接続、ノード２１２とノード２２２との間の第２の接続、及びノード２１１とノード２２３との間の第３の接続を含む。
【００５０】
[0054]  一部の実施形態では、ニューラルネットワーク２０５が少なくとも１つの接続（例えば図２Ｅに示す第１の接続及び第２の接続）なしに実行時において第１の入力データの正確な結果を生成することができる。従って、ニューラルネットワーク２０５の結果を劣化させることなしに、第１の接続及び第２の接続を実行時にバイパスすることができる。従ってフィルタは、第１の接続及び第２の接続をバイパスするように入力データに指示するガイド情報を生成することができる。
【００５１】
[0055]  このようにして、ニューラルネットワークを修正する（例えばニューラルネットワークから少なくとも１つの接続を永続的に除去する）ことなしに、ニューラルネットワークを実行する計算負荷を減らすことができる。計算負荷を減らす以外に、この形態はニューラルネットワークを実行する更なる柔軟性も可能にする。上記で論じたように、フィルタはソフトウェアエンジニアによって又は訓練に基づいて生成され得る。従って、異なる応用シナリオのそれぞれにおいて異なるフィルタを機械学習モデルに配備することが可能である。
【００５２】
[0056]  実行時にバイパスされる少なくとも１つの接続は、異なる入力データに応じて異なり得ることが理解されよう。例えば図２Ｆに示すように、ガイド情報に基づき、ニューラルネットワーク２０５の第２の接続及び第３の接続が、第１の入力データと異なる第２の入力データによってバイパスされ得る。上記で論じたように、ガイド情報は機械学習モデルの少なくとも１つの接続をパススルーするための入力データの経路を含み得る。一部の実施形態では、図２Ｅ及び図２Ｆに示すように、異なる入力データのための経路は異なり得る。
【００５３】
[0057]  従って本開示の実施形態では、少なくとも１つの接続をバイパスすることにより、入力データを処理するのに必要な計算資源を減らすこともできる。
【００５４】
[0058]  静止時における訓練データの単純化以外に、単純化は入力データに対して実行時に行うこともできる。図３は、本開示の実施形態による入力データに対する単純化の概略図を示す。
【００５５】
[0059]  入力データに対する単純化は、ニューラルネットワークに入力データを送信する前に、入力データの一部を除去することによって行うことができる。
【００５６】
[0060]  一部の実施形態では、実行時における入力データが複数の次元を含むことができる。入力データから次元の少なくとも１つを除去することができる。図３に示すように、入力データ３０１は複数の次元（例えば少なくとも１つの次元３０１１）を含むことができる。入力データ３０１を処理のためにニューラルネットワーク３００に送信する前に、（例えばフィルタによって）入力データ３０１から少なくとも１つの次元３０１１を除去することができる。一部の実施形態では、入力データ３０１及びニューラルネットワーク３００に基づき、除去される少なくとも１つの次元３０１１をフィルタが決定することができる。
【００５７】
[0061]  一部の実施形態では、入力データの除去部分が時間領域に関係し得る。例えば入力データが時間に関係する場合（例えばビデオ）、入力データは各時点に関係する一連のデータを含み得る。例えば、ビデオのデータは或る期間にわたって分布する一連のフレームを含むことができ、各フレームのデータは一つの時点に対応する。一部の実施形態では、最終結果に対する非常に限られた影響を伴って、入力データの或る部分（例えばビデオのフレーム又は所与の期間内の複数のフレーム）がニューラルネットワークによってバイパスされ得る。例えばビデオのデータでは、フィルタが、最終結果に著しく影響を及ぼすことなしに、最初の５秒以内のフレームを入力データから除去できると決定することができる。
【００５８】
[0062]  入力データから除去される部分は、入力データの性質に応じて異なり得ることが理解されよう。
【００５９】
[0063]  入力データの一部を除去することにより、機械学習モデルが占有する帯域幅を減らすことができ、機械学習モデルが必要とする計算資源及び電力消費も減らすことができる。
【００６０】
[0064]  図４は、本開示の実施形態によるコンピュータによって実施される方法４００を示す。方法４００は、図１のニューラルネットワーク処理アーキテクチャ１００等のコンピュータシステムによって実施され得る。コンピュータシステムは、１組の命令を記憶するメモリと、かかる１組の命令を実行してコンピュータシステムに方法４００を行わせるように構成される少なくとも１つのプロセッサとを含み得る。少なくとも１つのプロセッサは、例えば図１のホストユニット１２０及びチップ通信システム１０２を含み得る。コンピュータシステムは、通信インタフェース（例えば図１の周辺インタフェース１１２）も含むことができる。図４を参照し、方法４００は以下に記載のステップを含むことができる。
【００６１】
[0065]  ステップ４０２で、コンピュータシステムが、例えば通信インタフェースによって訓練データを受信することができる。訓練データはコンピュータシステムのデータベース内に記憶することができ、又は別のコンピュータシステム内に記憶することができる。訓練データは、訓練データの一部を除去することによって減らすことができる。
【００６２】
[0066]  一部の実施形態では、訓練が教師あり訓練である場合、訓練データが大量のラベル付きデータを含み得る。一部の実施形態では、訓練データが入力ベクトル及び対応する出力ベクトルの対を含み得る。従って、訓練データは複数の次元を含むことができる。次元のそれぞれは訓練データの特性に関係し得る。一部の実施形態では、除去部分が少なくとも１つの次元に関連し得る。
【００６３】
[0067]  一部の実施形態では、訓練データが時間領域に関係する。例えば、訓練データは第１の時点に関連する第１のデータ及び第２の時点に関連する第２のデータを含み得る。訓練データの一部を除去する場合、第１の時点に関連する第１のデータを除去することができる。
【００６４】
[0068]  ステップ４０４で、コンピュータシステムが訓練データに基づいて機械学習モデルを訓練することができる。機械学習モデルを訓練する前、機械学習モデルのパラメータはまだ決定されていない。パラメータは、例えば機械学習モデルの接続性を含み得る。機械学習モデルの一例として、ニューラルネットワークは複数の層を含むことができ、層のそれぞれは複数のノードを含むことができる。ノード間の接続を生成するために、複数のノードは接続され得る。各接続は対応する接続重みを有することができ、従って接続は重み付けされる。訓練により、機械学習モデルの接続性を訓練データに基づいて決定することができる。例えばノード間の接続を確立し、かかる接続に対して重みを決定して割り当てることができる。
【００６５】
[0069]  同様に、コンピュータシステムは、機械学習モデルの層に関連する層重みも決定することができる。機械学習モデルでは、各層が対応する層重みを有し得る。上記で論じたように、機械学習モデルの各層の層重みは、接続重みに基づいて決定することができる。
【００６６】
[0070]  ステップ４０６で、コンピュータシステムが機械学習モデルの接続に関連する重みを評価することができる。例えばコンピュータシステムは、接続の接続重みが閾値条件を満たすかどうかを判定することができる。一部の実施形態では、機械学習モデルの最終結果に著しく影響を及ぼすことなしに、機械学習モデルから接続を除去することができる。かかる接続は除去可能接続として決定され得る。また、接続を除去することが機械学習モデルの不正確な結果を発生させ得る場合、その接続は除去不能接続として決定され得る。閾値条件は、除去可能接続及び除去不能接続を識別するための接続重み閾値に関連することができる。例えば接続の接続重みが接続重み閾値以上である場合、その接続は閾値条件を満たすことができず、除去不能接続として評価される。また、例えば接続の接続重みが接続重み閾値未満である場合、その接続は閾値条件を満たし、除去可能接続として評価される。
【００６７】
[0071]  同様に、一部の実施形態では、機械学習モデルの最終結果に著しく影響を及ぼすことなしに、機械学習モデルから層全体を除去することができる。かかる層は除去可能層として決定され得る。また、層を除去することが機械学習モデルの不正確な結果を発生させ得る場合、その層は除去不能層として決定され得る。従って層閾値条件は、除去可能層及び除去不能層を識別するための層重み閾値に関連することができ、コンピュータシステムは、層の層重みが層閾値条件を満たすかどうかを更に判定することができる。例えば層の層重みが層重み閾値以上である場合、その層は層閾値条件を満たすことができず、除去不能層として決定される。また、例えば層の層重みが層重み閾値未満である場合、その接続は層閾値条件を満たし、除去可能層として決定される。
【００６８】
[0072]  ステップ４０８で、コンピュータシステムは、閾値条件を満たさない重みを有する１つ又は複数の接続を機械学習モデルから除去することができる。換言すれば、決定した除去可能接続を機械学習モデルから除去することができる。
【００６９】
[0073]  同様に、除去可能層も機械学習モデルから除去することができる。
【００７０】
[0074]  ステップ４１０で、接続の除去後にコンピュータシステムが機械学習モデルを更新することができる。機械学習モデルから除去可能接続が最終的に除去された後、コンピュータシステムはノード間の新たな接続を確立することができ、元の接続は除去されていることが理解されよう。
【００７１】
[0075]  機械学習モデルから少なくとも１つの接続又は層を除去することにより、機械学習モデルの複雑度を下げることができる。従って、機械学習モデルのための記憶空間及び機械学習モデルを実行するための電力消費も減らすことができる。
【００７２】
[0076]  加えてコンピュータシステムは、機械学習モデルに与えられる入力データを評価するためのフィルタを更に生成することができる。フィルタは機械学習を行うために使用することができ、これについては図５に関して以下で更に説明する。
【００７３】
[0077]  図５は、本開示の実施形態による機械学習を行うためのコンピュータによって実施される方法５００を示す。方法５００は、図１のニューラルネットワーク処理アーキテクチャ１００等のコンピュータシステムによって実施され得る。コンピュータシステムは、１組の命令を記憶するメモリと、かかる１組の命令を実行してコンピュータシステムに方法５００を行わせるように構成される少なくとも１つのプロセッサとを含み得る。少なくとも１つのプロセッサは、例えば図１のホストユニット１２０及びチップ通信システム１０２を含み得る。コンピュータシステムは、通信インタフェース（例えば図１の周辺インタフェース１１２）も含むことができる。図５を参照し、方法５００は以下に記載のステップを含むことができる。
【００７４】
[0078]  ステップ５０２で、コンピュータシステムが機械学習モードに与えられる入力データを受信することができる。機械学習モデルは、１つ又は複数のノードをそれぞれ有する複数の層を含み得、かかる１つ又は複数のノードは、機械学習モデルの別の層のノードとの１つ又は複数の接続を有する。機械学習モデルは機械学習の応用において使用することができる。機械学習の応用は、ニューラルネットワーク処理アーキテクチャ１００内で実行することができる。機械学習の応用は複数のタスクに分けることができ、タスクの１つがホストユニット１２０上で実行され得る一方、別のタスクが機械学習タスクとして決定され、チップ通信システム１０２上で機械学習モデルによって実行され得る。入力データは機械学習タスクに関係することができ、処理のために機械学習モデルに与えることができる。
【００７５】
[0079]  ステップ５０４で、コンピュータシステムが入力データをフィルタによって処理することができる。入力データの受信後、入力データを処理するためにフィルタを呼び出すことができる。フィルタは、コンピュータシステムによって実行され得る機械学習の応用の一部とすることができ、又はコンピュータシステムによって与えられる機能であり得る。図１〜図３に関して論じたように、フィルタは機械学習モデルの訓練に基づいて生成することができ、又はソフトウェアエンジニアによって設計され得る。
【００７６】
[0080]  入力データに基づき、入力データの特徴を抽出し、機械学習モデルと比較することができる。一部の実施形態では、入力データのためのガイド情報がフィルタによって生成され得る。処理される入力データがガイド情報に基づいて少なくとも１つの接続をバイパスするよう構成され得るように、ガイド情報は入力データ内に組み込むことができる。例えば接続をバイパスするために、その接続の重みを所与の入力データについてゼロに設定することができる。別の入力データでは接続の重みが変えられなくてもよいことが理解されよう。一部の実施形態では、接続が既定の重みとバイパス重みとを含み得る。既定の重みは訓練に基づいて決定され、バイパス重みはゼロである。ガイド情報に基づき、コンピュータシステムは、接続の重みが既定の重みかバイパス重みかを判定することができる。バイパス重みは別の値であり得ることが理解されよう。
【００７７】
[0081]  一部の実施形態では、入力データによって層がバイパスされ得るように、ガイド情報は、層に関連する接続をバイパスするように入力データに指示することができる。層がバイパスされる場合、上記の少なくとも１つの接続は、その層に関連する全ての接続を含み得ることが理解されよう。
【００７８】
[0082]  一部の実施形態では、フィルタを使用することにより、コンピュータシステムは入力データの一部を除去し、入力データをしかるべく更新することができる。例えば入力データの特徴に基づき、コンピュータシステムは、機械学習モデルの実行結果を劣化させることなしに入力データの一部を除去できると判定し、入力データの一部を除去することができる。入力データを更新し、機械学習モデルに与えることができる。一部の実施形態では、入力データが複数の次元を含むことができ、除去部分が少なくとも１つの次元に関連する。一部の実施形態では、入力データが時間領域に関係し得る。例えば、入力データは第１の時点に関連する第１のデータ及び第２の時点に関連する第２のデータを含み得る。入力データの一部を除去する場合、第１の時点に関連する第１のデータを除去することができる。
【００７９】
[0083]  ステップ５０６で、コンピュータシステムが処理済みの入力データを機械学習モデルに与えることができる。機械学習モデルは、機械学習の結果を生成することができる。例えば推論エンジンとして、チップ通信システム１０２（１つ又は複数のアクセラレータが関与する）は、機械学習モデルを使用して結果を生成し、その結果をホストユニット１２０に送り返すことができる。
【００８０】
[0084]  フィルタは、単純化されていない機械学習モデルに適用できることが理解されよう。単純化されていない機械学習モデルは全結合を含むが、実行時にフィルタを使用して、１つ又は複数の接続が入力データによってバイパスされ得る。１つ又は複数の接続が実行時に入力データによってバイパスされるので、機械学習モデルを実行するための計算資源及び電力消費を減らすことができるが、機械学習モデルは単純化されない。計算資源及び電力消費を減らすことに加えて、入力データの一部を除去することは、ホストユニット１２０とチップ通信システム１０２との間の通信負荷を更に減らすことができる。
【００８１】
[0085]  本開示の実施形態はコンピュータプログラム製品も提供する。コンピュータプログラム製品は、上記で説明した方法をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する非一時的コンピュータ可読記憶媒体を含み得る。
【００８２】
[0086]  コンピュータ可読記憶媒体は、命令実行装置による使用のための命令を記憶することができる有形装置であり得る。コンピュータ可読記憶媒体は、例えばこれだけに限定されないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又は上記のものの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的な一覧は、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去プログラム可能読取専用メモリ（ＥＰＲＯＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリスティック、フロッピー（登録商標）ディスク、命令が記録されている穿孔カード又は溝の中の隆起構造等の機械的に符号化された装置、及び上記のものの任意の適切な組み合わせを含む。
【００８３】
[0087]  上記で説明した方法を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はオブジェクト指向プログラミング言語及び従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード若しくはオブジェクトコードであり得る。コンピュータ可読プログラム命令は、独立型のソフトウェアパッケージとしてコンピュータシステム上で完全に実行することができ、又は一部は第１のコンピュータ上で、一部は第１のコンピュータから離れた第２のコンピュータ上で実行されてもよい。後者のシナリオでは、第２のリモートコンピュータが、ローカルエリアネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークによって、第１のコンピュータに接続され得る。
【００８４】
[0088]  コンピュータ又は他のプログラム可能なデータ処理機器のプロセッサによって実行される命令が、上記で説明した方法を実施するための手段を作り出すように、コンピュータ可読プログラム命令は、汎用コンピュータ若しくは専用コンピュータのプロセッサ又は機械をもたらすための他のプログラム可能なデータ処理機器に与えることができる。
【００８５】
[0089]  図中の流れ図及び図表は、本明細書の様々な実施形態による装置、方法、及びコンピュータプログラム製品のあり得る実施形態のアーキテクチャ、機能、及び動作を示す。この点に関して、流れ図及び図表の中のブロックは、特定の機能を実装するための１つ又は複数の実行可能命令を含むソフトウェアプログラム、セグメント、又はコードの一部を表し得る。一部の代替的実施形態では、ブロック内で示す機能が、図中に示すのと異なる順序で行われ得ることにも留意すべきである。関与する機能にもよるが、例えば連続して示されている２つのブロックが実際にはほぼ同時に実行されてもよく、又は逆の順番で実行されてもよい場合がある。図表又は流れ図の各ブロック並びに図表及び流れ図の中のブロックの組み合わせは、指定の機能若しくは動作を実行する専用ハードウェアベースシステムによって又は専用ハードウェアとコンピュータ命令との組み合わせによって実装され得ることも指摘しておく。
【００８６】
[0090]  明瞭にするために別々の実施形態の脈絡で説明した本明細書の特定の特徴は、単一の実施形態において組み合わせで提供してもよいことが理解されよう。逆に、簡潔にするために単一の実施形態の脈絡で説明した本明細書の様々な特徴も、本明細書に記載した他の任意の実施形態の中で別々に、又は任意の適切な部分的組み合わせで、又は適切なように提供することもできる。様々な実施形態の脈絡で説明した特定の特徴は、実施形態がかかる要素なしでは機能できない場合を除き、それらの実施形態に不可欠な特徴であると解釈すべきではない。
【図１】
2021522574.tif 000003
【図２Ａ】
2021522574.tif 000004
【図２Ｂ】
2021522574.tif 000005
【図２Ｃ】
2021522574.tif 000006
【図２Ｄ】
2021522574.tif 000007
【図２Ｅ】
2021522574.tif 000008
【図２Ｆ】
2021522574.tif 000009
【図３】
2021522574.tif 000010
【図４】
2021522574.tif 000011
【図５】
2021522574.tif 000012
【国際調査報告】
2021522574.tif 000013