JP2021507345A - 畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合 - Google Patents

畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合 Download PDF

Info

Publication number
JP2021507345A
JP2021507345A JP2020530640A JP2020530640A JP2021507345A JP 2021507345 A JP2021507345 A JP 2021507345A JP 2020530640 A JP2020530640 A JP 2020530640A JP 2020530640 A JP2020530640 A JP 2020530640A JP 2021507345 A JP2021507345 A JP 2021507345A
Authority
JP
Japan
Prior art keywords
kernel
sparse
pattern
complementary
computer
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.)
Granted
Application number
JP2020530640A
Other languages
English (en)
Other versions
JP2021507345A5 (ja
JP7179850B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021507345A publication Critical patent/JP2021507345A/ja
Publication of JP2021507345A5 publication Critical patent/JP2021507345A5/ja
Application granted granted Critical
Publication of JP7179850B2 publication Critical patent/JP7179850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2134Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
    • G06F18/21345Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis enforcing sparsity or involving a domain transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/253Fusion techniques of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】畳み込みニューラル・ネットワークの完全なカーネルを近似できる融合されたカーネルの生成を容易にする手法を提供する。【解決手段】1つの例では、コンピュータ実装方法が、第1のサンプル行列のサンプルの第1のパターンおよび第2のサンプル行列のサンプルの第2のパターンを決定することを含む。第1のサンプル行列はスパース・カーネルを代表することができ、第2のサンプル行列は補完カーネルを代表することができる。第1のパターンおよび第2のパターンは、互いに補完することができる。コンピュータ実装方法は、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、融合されたカーネルを生成することと、融合されたカーネルをトレーニングすることとも含む。【選択図】図3

Description

本開示は、スパース・カーネルおよび畳み込みニューラル・ネットワーク(CNN:convolutional neural networks)を融合することに関連している。
CNNは、深層フィードフォワード人工ニューラル・ネットワークを利用できる機械学習の種類を表すことができる。CNNは、画像およびビデオの認識、レコメンダ・システム、自然言語処理などの領域において、大きな成功を示した。通常、CNNアーキテクチャは、クラス・スコアを保持しながら、微分可能関数を介して入力ボリュームを出力ボリュームに変換する個別の積み重なった層によって形成される。CNNは、通常、一般的に使用される複数の個別の種類の層を含む。例えば、畳み込み層は、CNNの中心的構成要素であることができる。畳み込み層のパラメータは、通常、学習可能なフィルタのセット(本明細書では「カーネル」と呼ばれる)を含む。例えば、カーネルは行列によって表され得る。簡単にするために、特定の態様または手法を示すように、本書では3×3行列が採用されているが、開示される対象が、例えば5×5行列、7×7行列などの、実質的に任意の行列サイズを使用して採用され得るということが理解される。
特定のカーネルは、通常、小さい受容野を含んでいるが、入力ボリュームの全深さに広がることができる。CNNのフォワードパスの間に、カーネルのエントリと入力のエントリの間のドット積を計算し、カーネルの2次元活性化マップを生成して、入力ボリュームの幅および高さにわたって各カーネルが畳み込まれ得る。1つの結果として、CNNは、入力内のいずれかの空間位置で何らかの特定の種類の特徴が検出されたときに活性化するフィルタを学習できる。すべてのフィルタの活性化マップを深さの次元に沿って積み重ねることによって、畳み込み層の完全な出力ボリュームを形成できる。したがって、出力ボリューム内のすべてのエントリは、入力の小さい領域を調べ、同じ活性化マップ内のニューロンとパラメータを共有する、「ニューロン」の出力としても解釈され得る。畳み込みニューラル・ネットワークは、通常、計算負荷が非常に重く、モデル・サイズが大きい。精度を向上させるために、深層CNNは、多くの場合、著しく過度にパラメータ化され、例えば、多数の不必要なパラメータを使用して実装される。完全なカーネルに対する計算に関連する重い計算負荷および大きいモデル・サイズのため、完全なカーネルの近似が、完全なカーネルの代わりに使用された場合に、優位性をもたらすことがあるということが観察されてきた。完全なカーネルを近似するための、低ランク近似と呼ばれる1つの方法では、ランクの低い行列(例えば、3×1と1×3)が結合されて、完全な(例えば、3×3)カーネルの近似を表す。そのような手法は、計算負荷およびモデル・サイズを減らすことができるが、受容野を縮小し、モデルの可能な精度を低下させる傾向もある。完全なカーネルを近似するための別の方法は、スパース化されたカーネルを使用することである。スパース化されたカーネルは、何らかの戦略に基づいて空間的位置のうちの1つまたは複数でパラメータを省略またはスキップし、通常は、パラメータ加重が低いサンプル位置を省略する。そのような手法は、やはり、負荷およびモデル・サイズを減らすことと、例えば縮小された受容野に起因するモデルの精度の低下との間で、トレードオフをもたらす。
したがって、当技術分野において、前述の問題に対処する必要がある。
第1の態様から見ると、本発明は、コンピュータ実行可能コンポーネントを格納するメモリと、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えている畳み込みニューラル・ネットワークのためのシステムを提供し、それらのコンピュータ実行可能コンポーネントは、スパース・カーネルの第1のパターンおよび補完カーネルの第2のパターンを決定するパターン・コンポーネントであって、第1のパターンがスパース・カーネルの第1のサンプル行列内の有効なサンプルの位置を表し、第2のパターンが第1のパターンを補完する補完カーネルの第2のサンプル行列内の有効なサンプルの位置を表す、パターン・コンポーネントと、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成する融合コンポーネントと、融合されたカーネルをトレーニングするトレーニング・コンポーネントとを含む。
さらに別の態様から見ると、本発明は、畳み込みニューラル・ネットワークのためのコンピュータ実装方法を提供し、この方法は、プロセッサに動作可能なように結合されたデバイスによって、スパース・カーネルの第1のパターンおよび補完カーネルの第2のパターンを決定することであって、第1のパターンがスパース・カーネルの第1のサンプル行列内の有効なサンプルの位置を表し、第2のパターンが第1のパターンを補完する補完カーネルの第2のサンプル行列内の有効なサンプルの位置を表す、決定することと、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に応答して、デバイスによって、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成することと、デバイスによって、融合されたカーネルをトレーニングすることとを含む。
さらに別の態様から見ると、本発明は、プロセッサに動作可能なように結合されたデバイスによって、スパース・カーネルを代表する第1のサンプル行列のサンプルの第1のパターンを決定することと、デバイスによって、補完カーネルを代表する、第1のパターンを補完する第2のサンプル行列のサンプルの第2のパターンを決定することと、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、デバイスによって、融合されたカーネルを生成することであって、融合されたカーネルが完全なカーネルの近似を表す、生成することと、デバイスによって、融合されたカーネルを含んでいる畳み込みニューラル・ネットワークをトレーニングすることとを含んでいるコンピュータ実装方法を提供する。
さらに別の態様から見ると、本発明は、畳み込みニューラル・ネットワークのためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能な、本発明のステップを実行するための方法を実行するためにこの処理回路によって実行される命令を格納している、コンピュータ可読記憶媒体を備えている。
さらに別の態様から見ると、本発明は、コンピュータ可読媒体に格納された、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、コンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含んでいる。
以下に、本発明の1つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された1つまたは複数の実施形態では、並列深層学習用の処理コンポーネントの同期を容易にするデバイス、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組み合わせが説明される。
本発明の実施形態によれば、システムは、コンピュータ実行可能コンポーネントを格納するメモリ、およびこのメモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。これらのコンピュータ実行可能コンポーネントは、スパース・カーネルの第1のパターンおよび補完カーネルの第2のパターンを決定するパターン・コンポーネントを含むことができる。スパース・カーネルは、スキップされるサンプルおよび有効なサンプルから成る第1のサンプル行列を含むことができ、第1のパターンは、第1のサンプル行列内の有効なサンプルの位置を表すことができる。補完カーネルは、スキップされるサンプルおよび有効なサンプルから成る第2のサンプル行列を含むことができ、第2のパターンは、第1のパターンを補完する第2のサンプル行列内の有効なサンプルの位置を表すことができる。コンピュータ実行可能コンポーネントは、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて融合されたカーネルを生成できる、融合コンポーネントを含むことができる。融合されたカーネルは、畳み込みニューラル・ネットワークの完全なカーネルの近似を表すことができる。コンピュータ実行可能コンポーネントは、融合されたカーネルをトレーニングできるトレーニング・コンポーネントをさらに含むことができる。
一部の実施形態では、システムに関連して説明される要素が、コンピュータ実装方法、コンピュータ・プログラム製品、または別の形態などの、さまざまな形態で具現化され得る。
以下では、以下の図に示された好ましい実施形態を単に例として参照し、本発明が説明される。
本明細書に記載された1つまたは複数の実施形態に従って典型的なトレーニング済みのCNNの加重の視覚化を示す図である。 本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システムのブロック図である。 本明細書に記載された1つまたは複数の実施形態に従って畳み込みニューラル・ネットワークのカーネルのさまざまな例示的な表現を示すブロック図である。 本明細書に記載された1つまたは複数の実施形態に従って第1の例示的な融合方法を示すブロック図である。 本明細書に記載された1つまたは複数の実施形態に従って第2の例示的な融合方法を示すブロック図である。 本明細書に記載された1つまたは複数の実施形態に従って例示的な融合方法をさらに詳細に示すブロック図である。 本明細書に記載された1つまたは複数の実施形態に従って、元の学習されたカーネルの例と、スパース・カーネル、補完カーネル、および融合されたカーネルのさまざまな例との例示的な加重の視覚化の比較を提供する図である。 本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システムのブロック図である。 本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的コンピュータ実装方法のフロー図である。 本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似するための追加の態様または要素を提供できる、例示的な非限定的コンピュータ実装方法のフロー図である。 本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図である。
以下の詳細な説明は、例にすぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を制限するよう意図されていない。
本明細書においてさらに詳細に説明されるように、完全なカーネルを近似するための別の方法は、複数のスパース・カーネルを融合することである。さらに、これらのスパースベースのカーネルが、明らかになる利点を提供できる確定的空間パターンに基づいて、決定または選択され得る。説明するために、完全なカーネルを使用する完全にトレーニングされたCNNについて考え、当技術分野には、そのようなCNNの多数の例が存在する。図1は、典型的なトレーニング済みのCNNの加重の視覚化を示す図100を示している。それに関して、図100は、カーネルの複数の行および列を示している。示されているように、カーネル102が列1の行1にある。カーネル102は3×3行列を代表しており、3×3行列の各要素は異なる空間的位置を表すことができる。これらの位置(例えば、サンプル)の各々に、関連付けられたパラメータ加重に基づいて陰影が付けられており、陰影が明るいほど、より重いパラメータ加重を表している。
観察として、この例示的な完全にトレーニングされたCNN層の多数のカーネルがスパース化されたカーネルの特徴(例えば、一部のサンプルではパラメータ加重が低く、他のサンプルではパラメータ加重が高い)を有しているということに注意する。別の観察として、カーネルのうちの多くのスパース性が、プラス記号(例えば、「+」)パターンまたは「x」パターンあるいはその両方などの、類似するパターンを有している。例えば、カーネル104を参照。
一部の実施形態では、開示される対象が、完全なカーネルを近似する近似されたカーネルを提供することができ、このことが、本明細書においてさらに詳細に説明される。そのような近似されたカーネルは、パラメータの数を減らすことができ、CNNの実行に関連して、計算リソース(例えば、演算、実行時メモリ、ディスク容量など)を減らすことができる。この近似されたカーネルは、複数の(例えば、2つ以上の)スパース・カーネル間の融合の結果であることができる。しかし、可変制約(例えば、パラメータ加重)に基づいてカーネルがスパース化される他の方法とは異なり、一部の実施形態では、1つまたは複数の定義されたパターン(例えば、「+」形状、「x」形状など)に基づいて、開示される対象のスパース・カーネルが確定的に選択され得る。スパース・カーネルを融合して完全なカーネルを近似することは、単にスパース・カーネルを利用して完全なカーネルを近似することを上回る大きな優位性を示すことができる。さらに、融合されるスパース・カーネルに関連付けられたパターンまたは形状を確定的に選択することによって、近似された(例えば、融合された)カーネルの受容野が、完全なカーネルの受容野を近似することができる。それに関して、互いに補完するパターンを有するように、融合されるスパース・カーネルを確定的に選択することができ、このことが下でさらに詳細に説明される。
再び図面を参照すると、図2は、本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システム200のブロック図を示している。システム200またはシステム200のコンポーネントあるいはその両方は、抽象的ではない、人間による一連の精神的活動として実行され得ない本質的に高度に技術的な問題を解決するハードウェアまたはソフトウェアあるいはその両方を使用するために、採用され得る。実際、開示される対象の一部の実施形態は、生物学的プロセスをエミュレートするように深層学習技術を使用してプログラムされた非生物学的アーキテクチャ(例えば、コンピュータ・ハードウェア)を使用することを対象にする。定義によれば、人間によって実行される精神的活動は、例えばニューロンの生物学的プロセスを表すが、非生物学的構造要素によるニューロンのエミュレーションを表さない。ニューロンのエミュレーションは、ニューロン自体が採用されず(そうでなければ、エミュレートする必要がない)、他のアーキテクチャ(例えば、コンピュータ・ハードウェア)が使用されるか、または必然的に必要とされるか、あるいはその両方である場合にのみ、意味がある。さらに、実行されるプロセスの一部は、畳み込みニューラル・ネットワークに関連する定義されたタスクを実行するための特殊なコンピュータによって実行され得る。技術、コンピュータ・ネットワーク、インターネットなどにおける進歩を通じて生じる新しい問題を解決するために、一部の実施形態では、システム200またはシステム200のコンポーネントあるいはその両方、あるいは本明細書に記載された他のシステムが採用され得る。システム200は、一部の実施形態では、例えば計算負荷の削減、モデル・サイズの縮小、必要な演算数の削減、モデルの精度の向上などの、畳み込みニューラル・ネットワークに対する技術的改良を提供できる。
システム200は、プロセッサと、プロセッサによって実行された場合に動作の実行を容易にする実行可能な命令を格納するメモリとを備えることができる。前述のプロセッサおよびメモリ、ならびにその他の適切なコンピュータまたは計算に基づく要素の例は、図11を参照して見つけることができ、本明細書で開示された図2またはその他の図に関連して示され、説明されているシステムまたはコンポーネントのうちの1つまたは複数を実装することに関連して、使用され得る。
この例では、システム200は、パターン・コンポーネント202を含むことができる。パターン・コンポーネント202は、畳み込みニューラル・ネットワークのカーネル(例えば、フィルタ)に関連付けられたさまざまなパターンまたは形状あるいはその両方を決定または選択することができる。そのような決定が、参照番号204で示されている。パターンを前もって決定するか、もしくは知ることができるように、または畳み込みニューラル・ネットワークがトレーニングされる前にパターンを決定するか、もしくは知ることができるように、あるいはその両方が可能なように、パターンの決定または選択が確定的方法で実行され得るということが、理解される。例えば、パターン・コンポーネント202は、第1のパターン206および第2のパターン208を決定できる。第1のパターン206は、スパース・カーネル210に関連付けられたパターンまたは形状を表すことができ、一方、第2のパターン208は、第1のパターン206を補完できる補完カーネル212に関連付けられたパターンまたは形状を表すことができる。
一部の実施形態では、パターン・コンポーネント202は、入力されたか、または格納されたデータに基づいて、第1のパターン206または第2のパターン208あるいはその両方を決定または選択することができる。一部の実施形態では、これらのデータは、確定的パターン選択に関する専門知識、知識、またはポリシーを反映することができる。一部の実施形態では、これらのデータは、トレーニング済みの畳み込みニューラル・ネットワークの元の学習されたカーネルに割り当てられたパラメータ加重の調査に基づくことができる。例えば、パターン・コンポーネント202は、図1に関連して提供される例などの、トレーニング済みのネットワークのパラメータ加重を調べることに基づいて、またはその他のデータに基づいて、第1のパターン206を決定または選択することができる。一部の実施形態では、特定の確定的パターンを決定または選択するために使用されるそのようなデータは、構成データ(示されていないが、図8の構成データ804を参照)の一部として受信され得る。
引き続き図2を参照しながら、ここで図3も参照すると、ブロック図300が示されている。ブロック図300は、本明細書に記載された1つまたは複数の実施形態に従って、畳み込みニューラル・ネットワークのカーネルのさまざまな例示的な表現を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
例えば、例示的な完全なカーネル302が示されている。完全なカーネル302は、すべてのサンプルが有効なサンプルであるカーネルであることができる。この場合も、カーネルは3×3行列を代表しているが、その他の行列サイズが企図されるということが理解される。図に示されているように、3×3行列の9つの空間的位置は、すべて有効なサンプルを含んでいる(例えば、指定されたパラメータ加重を含んでいる、など)。したがって、陰影が付けられたサンプル領域によって、有効なサンプルが示されており、一方、陰影が付けられていない(例えば、白い)サンプル領域によって、スキップされるサンプル(例えば、パラメータを含んでいないサンプルなど)が示されている。この図では、パラメータ加重が示されておらず、サンプル領域の陰影が基になるパラメータ加重に対応している図1とは異なるということに注意する。
有効なサンプルに関連付けられた特定の確定的パターン(例えば、第1のパターン206または第2のパターン208)を含んでいるスパース・カーネル(例えば、スパース・カーネル210または補完カーネル212)の複数の例も示されている。言い換えると、スパース・カーネル210などの特定のスパース・カーネルは、スキップされるサンプルおよび有効なサンプルを含んでいる第1のサンプル行列(例えば、3×3)を含むことができる。第1のパターン206などのスパース・カーネル210に関連付けられた確定的パターンは、有効なサンプルの第1のサンプル行列内の位置を表すことができ、スキップされるサンプルの数に基づいて演算の数およびパラメータの数を減らすことができるということに、注意する。
補完カーネル212は、スパース・カーネルの種類を表すこともできる。すなわち、補完カーネル212は、スキップされるサンプルおよび有効なサンプルを含んでいる第2のサンプル行列を含むことができる。第2のパターン208は、第2のサンプル行列内の有効なサンプルの位置を表すことができる。一部の実施形態では、第2のパターン208は、第1のパターン206によって示された有効なサンプルを補完する有効なサンプルを表すことができる。例えば、スパース・カーネル304aは「x」形状を形成し、一方、スパース・カーネル304bは「+」形状を形成する。スパース・カーネル304aの有効なサンプルが、スパース・カーネル304bの有効なサンプルを補完するか、または代替として、スパース・カーネル304bのスキップされるサンプルと一致するため、スパース・カーネル304bがスパース・カーネル304aの補完カーネル212であることができ、または逆に、スパース・カーネル304aがスパース・カーネル304bの補完カーネル212であることができる。パターンは異なるが、同様の例が、スパース・カーネル306aおよび306bに関して示されている。さらに、3×3行列に関連して多数のその他の例が提供されるが、網羅的ではなく、その他の行列サイズが他の例を実証するであろう。
一部の実施形態では、スパース・カーネル210の第1の行列内のスキップされるサンプルを含んでいる位置に対応する第2の行列内のすべての位置で、補完カーネル212(または複数のスパース・カーネルの組み合わせ)が有効なサンプルを含んでいる場合、補完カーネル212がスパース・カーネル210を「補完」すると言うことができる。一部の実施形態では、スパース・カーネル210の第1の行列内の少なくとも1つのスキップされるサンプルの位置に対応する第2の行列内で、補完カーネル212(または複数のスパース・カーネルの組み合わせ)が少なくとも1つの有効なサンプルを含んでいる場合、補完カーネル212がスパース・カーネル210を補完すると言うことができる。第1のパターン206および第2のパターン208を、互いに補完するように確定的に選択することによって、第1のパターン206の少なくとも一部のスキップされるサンプルを、第2のパターン208の有効なサンプルによって表すことができ、その結果、完全なカーネル302の受容野のより堅牢な近似を得ることができるということが、理解される。
一部の実施形態に関連して、これらおよびその他の利点を実施するために、スパース・カーネル210を補完カーネル212と結合または「融合」することができ、このことが、図2に戻ってさらに詳細に説明される。例えば、この例では、システム200は、融合コンポーネント214を備えることができる。融合コンポーネント214は、スパース・カーネル210の特徴および補完カーネル212の特徴の結合に基づいて、融合されたカーネル218を生成するように構成され得る。図に示されているように、融合コンポーネント214は、融合方法216に基づいて融合されたカーネル218を構築または生成することができ、その例が、図4〜6に関連して説明される。
さらに、システム200は、トレーニング動作222を実行して融合されたカーネル218をトレーニングするように構成され得る、トレーニング・コンポーネント220を備えることができる。例えば、トレーニング済みの融合されたカーネル224は、融合されたカーネル218に対するトレーニング動作222の適用に基づいて構築または生成され得る。一部の実施形態では、トレーニング済みの融合されたカーネル224は、最初からトレーニングされ得る。
ここで図4を参照すると、ブロック図400が示されている。ブロック図400は、本明細書に記載された1つまたは複数の実施形態に従って第1の例示的な融合方法を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。この例では、融合コンポーネント214は、スパース・カーネル210および補完カーネル212を入力として受信することができる。スパース・カーネル210および補完カーネル212が、一部の適切な手順に従ってスパース化され得るか、またはすべての位置で有効なサンプルを含んでいる完全なカーネルではなく、スキップされるサンプルも含んでいるか、あるいはその両方であるということが、理解される。有効なサンプルに関連付けられたパターンが、事前に決定されるか、または確定的に選択もしくは識別されるか、あるいはその両方が行われ得るということ、およびこれらのパターンが互いに補完することができるということが、さらに理解される。したがって、一例として、スパース・カーネル210は、「x」形状のパターンを含んでいるスパース・カーネル304aとして表すことができ、補完カーネル212は、「+」形状のパターンを含んでいるスパース・カーネル304bとして表すことができ、スパース・カーネル304bはスパース・カーネル304aの「x」形状のパターンを完全に補完する。
一部の実施形態では、融合コンポーネント214は、第1のパターン206のスキップされるサンプルを第2のパターン208の有効なサンプルに置き換える空間結合演算(spatial-join operation)を使用して、スパース・カーネル210の特徴および補完カーネルの特徴を結合することができる。そのような結合が、融合方法216の一例を表す第1の例示的な融合方法402によって示されている。一部の実施形態では、融合方法216は、演算子404に従って、スパース・カーネルおよび補完カーネルのペアワイズ連結(pairwise concatenation)に基づいてスパース・カーネル210および補完カーネル212を結合することができる。一部の実施形態では、演算子404は、示されているように加算演算子であることができる。一部の実施形態では、演算子404は、追加または代替として、逆演算子(例えば、−1による乗算)であることができる。
参照番号406に示されているように、スパース・カーネル210および補完カーネル212の結合は、適切な連結に基づくことができ、正規化線形ユニット(ReLU:rectified linear unit)手順が採用され得る。このようにして、融合されたカーネル218を生成することができ、その例が参照番号408によって提供されている。融合されたカーネル218が完全なカーネルの近似になることができるということが、理解される。一部の実施形態では、融合されたカーネル218は、完全なカーネルより少ないパラメータを含むことができ、その結果、計算リソース要件を減らすことができ、ただし、完全なカーネルの受容野を非常に厳密に近似する受容野を含むことができる。
ここで図5を参照すると、ブロック図500が示されている。ブロック図500は、本明細書に記載された1つまたは複数の実施形態に従って第2の例示的な融合方法を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。この例では、融合コンポーネント214は、スパース・カーネル210および補完カーネル212を入力として受信することができる。それに応じて、融合コンポーネントは、第2の例示的な融合方法502を実行することができ、第2の例示的な融合方法502は、図4の第1の例示的な融合方法402に関連して実質的に詳述されたように、演算子404に従って、スパース・カーネルおよび補完カーネルのペアワイズ連結に基づいてスパース・カーネル210および補完カーネル212を結合することを含むことができる。追加的または代替的に、第2の例示的な融合方法502は、チャネルの次元における1×1チャネル行列の適用に基づいて、スパース・カーネル、補完カーネル、および融合されたカーネルの特徴を結合することを含んでいるチャネルワイズ融合手順(channel-wise fusion procedure)を含むことができ、この手順が参照番号504に示されている。このチャネルワイズ・カーネル融合(channel-wise kernel fusion)の結果として、融合されたカーネル218を生成することができる。
ここで図6を参照すると、ブロック図600が示されている。ブロック図600は、本明細書に記載された1つまたは複数の実施形態に従って、例示的な融合方法をさらに詳細に示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。一部の実施形態では、融合コンポーネント214は、1つまたは複数の演算子に従って、スパース・カーネルおよび補完カーネルのペアワイズ・カーネル融合手順(pairwise kernel fusion procedure)602に基づいてスパース・カーネル210および補完カーネル212を結合することができる。一部の実施形態では、ペアワイズ・カーネル融合手順602は、示されているように加算演算子を利用できる。一部の実施形態では、ペアワイズ・カーネル融合手順602は、追加または代替として、逆演算子(例えば、−1による乗算)を利用できる。一部の実施形態では、スパース・カーネル210および補完カーネル212は、ペアワイズ・カーネル融合手順602の間に、選択された演算子によって、または複数の演算子によって、結合され得る。一部の実施形態では、スパース・カーネル210および補完カーネル212の結合は、1つまたは複数のReLU手順を採用できる。
参照番号406に示された連結またはReLU手順あるいはその両方の後に、または一部の実施形態では、参照番号406の前に、図5の第2の例示的な融合方法502に従って詳述されたように、チャネルワイズ融合手順504に従って適切なデータが融合され得る。その結果が、融合されたカーネル218であることができる。
ここで図7を参照すると、図700が示されている。図700は、本明細書に記載された1つまたは複数の実施形態に従って、元の学習されたカーネルの例と、スパース・カーネル、補完カーネル、および融合されたカーネルのさまざまな例との例示的な加重の視覚化の比較を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図700は、加重の視覚化を示している。例えば、さまざまな例示的な3×3カーネルが示されており、図1と同様に、対応する位置のパラメータ加重に従って、個々のカーネルの空間的位置に陰影が付けられている。陰影のグラデーションが明るいほど、より大きいパラメータ加重を反映している。
参照番号702は、元の学習されたカーネルの加重の視覚化を表している。参照番号704および706は、互いに補完しているスパース・カーネルの加重の視覚化を表している。この例では、参照番号704によって示されたカーネルが、x形状のパターンを含んでいるカーネルを表しており、一方、参照番号706によって示されたカーネルが、+形状のパターンを含んでいるカーネルを表している。参照番号708は、上で詳細に説明された手法に従って融合されている、対応する融合されたカーネルを表している。
ここで図8を参照すると、システム800が示されている。システム800は、本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的システム800のブロック図を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。システム800は、システム200にかなり類似することができる。システム800は、受信コンポーネント802をさらに備えることができる。受信コンポーネント802は、システム200または800の動作パラメータを構成するか、または指定するか、あるいはその両方を実行するために採用できる構成データ804を受信するように、構成され得る。すでに詳細に説明されたように、構成データ804は、第1のパターン206または第2のパターン208を指定するか、選択するか、またはその他の方法で決定するために(例えば、パターン・コンポーネント202によって)使用できるデータを含むことができ、このデータは、実装の特性、専門知識、または格納済みのデータの成果であることができ、または他のトレーニングされた畳み込みニューラル・ネットワークの特定の層に関連付けられた観察に基づくことができる。
一部の実施形態では、構成データ804は、複数の種類のスパース・カーネルまたは複数の種類の補完カーネルあるいはその両方をさらに含むことができ、それらが、参照番号806および808によってそれぞれ示されている。スパース・カーネルまたは補完カーネルあるいはその両方の種類の非網羅的かつ非限定的な例が、図3を参照して提供される。一部の実施形態では、構成データ804は、複数のスパース・カーネルまたは複数の補完カーネルあるいはその両方を含むことができ、それらが、参照番号810および812によってそれぞれ示されている。
一部の実施形態では、構成データ804は、参照番号814によって示されているペアワイズ・カーネル融合の演算子を示すか、または指定する、データを含むことができる。例えば、図6のペアワイズ・カーネル融合602を参照すると、加算演算子を示すことができ、逆演算子、または別の適切な演算子、あるいはこれらの組み合わせを指定できる。一部の実施形態では、構成データ804は、参照番号816によって示されているチャネルワイズ融合が使用されるかどうかを示すデータを含むことができる。例えば、チャネルワイズ融合が使用されない場合、図4の第1の例示的な融合方法402が採用され得る。一方、チャネルワイズ融合が使用されない場合、図5の第2の例示的な融合方法502が採用され得る。
図9および10は、開示される対象に従って、さまざまな方法を示している。説明を簡単にするために、一連の動作として方法が示され、説明されているが、一部の動作が、本明細書において示されて説明された順序とは異なる順序で発生するか、または他の動作と同時に発生するか、あるいはその両方が可能であるため、開示される対象が動作の順序によって限定されないということが理解されるべきである。例えば、当業者は、代替として、方法が、状態図などにおいて、一連の相互に関連する状態またはイベントとして表され得るということを理解するであろう。さらに、開示される対象に従って方法を実装するために、示されているすべての動作が必要でなくてもよい。そのような方法をコンピュータに輸送または転送するのを容易にするために、以下および本明細書全体を通じて開示された方法を製品に格納できるということが、さらに理解されるべきである。
図9は、本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似する、例示的な非限定的コンピュータ実装方法のフロー図900を示している。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。参照番号902で、プロセッサに動作可能なように結合されたデバイス(例えば、システム200、800)が、有効なサンプルおよびスキップされるサンプルを含んでいる第1のサンプル行列の第1のパターンを決定できる。第1のサンプル行列はスパース・カーネルを代表することができ、第1のパターンは第1のサンプル行列の有効なサンプルを代表することができる。
参照番号904で、デバイスが、有効なサンプルおよびスキップされるサンプルを含んでいる第2のサンプル行列の第2のパターンを決定できる。第2のサンプル行列は、補完カーネルを代表することができる。第2のパターンは、第2のサンプル行列の有効なサンプルを代表することができる。第2のサンプル行列の有効なサンプルは、第1のサンプル行列の有効なサンプルを補完することができる。
参照番号906で、デバイスは、融合方法に従って結合されたスパース・カーネルの特徴および補完カーネルの特徴の結合に基づいて、融合されたカーネルを生成できる。融合されたカーネルは、完全なカーネルの近似を表すことができる。一部の実施形態では、融合されたカーネルは、完全なカーネルより少ないパラメータを含むことができ、その結果、演算数を少なくし、畳み込みニューラル・ネットワークを動作させるために消費されるリソースを削減し、CNNモデルを縮小することができる。一部の実施形態では、融合されたカーネルは、完全なカーネルの受容野を十分に近似する受容野を含むことができる。
参照番号908で、デバイスは、融合されたカーネルを含んでいる畳み込みニューラル・ネットワークをトレーニングすることができる。
ここで図10を参照すると、本明細書に記載された1つまたは複数の実施形態に従って、複数のスパース・カーネルを融合して畳み込みニューラル・ネットワークの完全なカーネルを近似するための追加の態様または要素を提供できる、例示的な非限定的コンピュータ実装方法のフロー図1000が示されている。本明細書に記載された他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。参照番号1002で、デバイス(例えば、システム200、800)が構成データを受信できる。構成データは、複数の種類のスパース・カーネル、複数の種類の補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子の識別、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータを含むことができる。
参照番号1004で、デバイスは融合されたカーネルを生成できる。融合されたカーネルの生成は、演算子に従って、スパース・カーネルおよび補完カーネルのペアワイズ連結に基づいて、スパース・カーネルおよび補完カーネルを結合することを含むことができる。
参照番号1006で、異なる方法または拡張された方法に従って、デバイスは融合されたカーネルを生成できる。例えば、融合されたカーネルの生成はチャネルワイズ融合手順を含むことができる。チャネルワイズ融合手順は、チャネルの次元における1×1チャネル行列の適用に基づいて、スパース・カーネル、補完カーネル、および融合されたカーネルの特徴を結合することを含むことができる。
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであることができるが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えることができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであることができる。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであることもできる。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれることもでき、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
図10に関連して、以下で説明されるシステムおよびプロセスは、単一の集積回路(IC:integrated circuit)チップ、複数のIC、特定用途向け集積回路(ASIC:application specific integrated circuit)などのハードウェア内で具現化され得る。さらに、プロセスのブロックの一部 または全部が各プロセス内で現れる順序は、制限と見なされるべきではない。プロセスのブロックの一部が、さまざまな順序で実行されることが可能であり、本明細書では、それらの順序のすべてを明示的に示すことができないということが、理解されるべきである。
図10を参照すると、請求される対象のさまざまな態様を実装するための例示的な環境1000は、コンピュータ1002を含む。コンピュータ1002は、処理ユニット1004、システム・メモリ1006、コーデック1035、およびシステム・バス1008を含む。システム・バス1008は、システム・メモリ1006を含むが、これに限定されないシステム・コンポーネントを、処理ユニット1004に結合する。処理ユニット1004は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット1004として採用されてもよい。
システム・バス1008は、ISA(Industry Standard Architecture)、MCA(Micro-Channel Architecture)、EISA(Extended ISA)、IDE(Intelligent Drive Electronics)、VESAローカル・バス(VLB:VESA Local Bus)、PCI(Peripheral Component Interconnects)、カードバス、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)、AGP(Advanced Graphics Port)、PCMCIA(Personal Computer Memory Card International Association)バス、Firewire(IEEE 1394)、および小型コンピュータ・システム ・インターフェイス(SCSI:Small Computer Systems Interface)を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バスを含む、複数の種類のバス構造のいずれかであることができる。
システム・メモリ1006は、さまざまな実施形態において開示されたメモリ・アーキテクチャのうちの1つまたは複数を採用することができる、揮発性メモリ1010および不揮発性メモリ1012を含む。起動中などにコンピュータ1002内の要素間で情報を転送するための基本ルーチンを含んでいる基本入出力システム(BIOS:basic input/output system)が、不揮発性メモリ1012に格納される。加えて、現在の革新技術によれば、コーデック1035は、エンコーダまたはデコーダのうちの少なくとも1つを含むことができ、エンコーダまたはデコーダのうちの少なくとも1つは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせから成ることができる。コーデック1035は分離したコンポーネントとして示されているが、コーデック1035は、不揮発性メモリ1012内に含まれ得る。不揮発性メモリ1012の例としては、読み取り専用メモリ(ROM:read only memory)、プログラマブルROM(PROM:programmable ROM)、電気的プログラマブルROM(EPROM:electrically programmable ROM)、電気的消去可能プログラマブルROM(EEPROM:electrically erasable programmable ROM)、フラッシュ・メモリ、3Dフラッシュ・メモリ、または抵抗性ランダム・アクセス・メモリ(RRAM:resistive random access memory)などの抵抗性メモリが挙げられるが、これらに限定されない。少なくとも一部の実施形態では、不揮発性メモリ1012は、開示されたメモリ・デバイスのうちの1つまたは複数を採用することができる。さらに、不揮発性メモリ1012は、(例えば、コンピュータ1002またはそのメインボードに物理的に統合された)コンピュータ・メモリまたは取り外し可能なメモリであることができる。開示された実施形態が実装され得る適切な取り外し可能なメモリの例としては、セキュア・デジタル(SD:secure digital)カード、コンパクト・フラッシュ(CF:compactFlash)カード、ユニバーサル・シリアル・バス(USB:universal serial bus)メモリ・スティックなどが挙げられる。揮発性メモリ1010は、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ(RAM:random access memory)を含み、さまざまな実施形態において、1つまたは複数の開示されたメモリ・デバイスを採用することもできる。例えばRAMは、スタティックRAM(SRAM:static RAM)、ダイナミックRAM(DRAM:dynamic RAM)、シンクロナスDRAM(SDRAM:synchronous DRAM)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、および拡張SDRAM(ESDRAM:enhanced SDRAM)などの、ただしこれらに限定されない、多くの形態で利用可能である。
コンピュータ1002は、取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。例えば図10は、ディスク・ストレージ1014を示している。ディスク・ストレージ1014は、磁気ディスク・ドライブ、半導体ディスク(SSD:solid state disk)、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスを含むが、これらに限定されない。加えて、ディスク・ストレージ1014は、コンパクト・ディスクROMデバイス(CD−ROM:compact disk ROM device)、記録可能CDドライブ(CD−Rドライブ:CD recordable drive)、再書き込み可能CDドライブ(CD−RWドライブ:CD rewritable drive)、またはデジタル多用途ディスクROMドライブ(DVD−ROM:digital versatile disk ROM drive)などの光ディスク・ドライブを含むが、これらに限定されない記憶媒体を、別々に、または他の記憶媒体と組み合わせて、含むことができる。システム・バス1008へのディスク・ストレージ・デバイス1014の接続を容易にするために、インターフェイス1016などの、取り外し可能または取り外し不可能なインターフェイスが通常は使用される。ストレージ・デバイス1014がユーザに関連する情報を格納できるということが、理解される。そのような情報は、ユーザ・デバイス上で実行されているサーバまたはアプリケーションに格納または提供されてよい。1つの実施形態では、ディスク・ストレージ1014に格納されている情報の種類が、(例えば、出力デバイス1036を経由して)ユーザに通知され得るか、またはサーバもしくはアプリケーションに送信され得る。そのような情報がサーバまたはアプリケーションで収集または共有されることのオプトインまたはオプトアウトの機会が、(例えば、入力デバイス1028からの入力によって)ユーザに提供され得る。
図10が、ユーザと、適切な動作環境1000において説明された基本的なコンピュータ・リソースとの間の仲介として機能するソフトウェアを説明しているということが、理解されるべきである。そのようなソフトウェアは、オペレーティング・システム1018を含む。ディスク・ストレージ1014に格納できるオペレーティング・システム1018は、コンピュータ・システム1002のリソースを制御し、割り当てるように動作する。アプリケーション1020は、プログラム・モジュール1024を介して、オペレーティング・システム1018によるリソースの管理を利用し、システム・メモリ1006またはディスク・ストレージ1014のいずれかに格納されたデータ1026(ブート/シャットダウン・トランザクション・テーブルなど)をプログラムする。さまざまなオペレーティング・システムまたはオペレーティング・システムの組み合わせを使用して、請求される対象が実装され得るということが、理解されるべきである。
ユーザは、1つまたは複数の入力デバイス1028を介して、コマンドまたは情報をコンピュータ1002に入力する。入力デバイス1028は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、TVチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Webカメラなどのポインティング・デバイスを含むが、これらに限定されない。これらおよびその他の入力デバイスは、インターフェイス・ポート1030を介してシステム・バス1008を通り、処理ユニット1004に接続する。インターフェイス・ポート1030は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス1036は、入力デバイス1028と同じ種類のポートの一部を使用する。このようにして、例えば、USBポートを使用して、入力をコンピュータ1002に提供し、コンピュータ1002から出力デバイス1036に情報を出力できる。出力アダプタ1034は、特殊なアダプタを必要とする出力デバイス1036の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス1036が存在することを示すために提供される。出力アダプタ1034の例としては、出力デバイス1036とシステム・バス1008の間の接続の手段を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。リモート・コンピュータ1038などの、その他のデバイスまたはデバイスのシステムが、入力機能および出力機能の両方を提供するということに、注意するべきである。
コンピュータ1002は、リモート・コンピュータ1038などの1つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ1038は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、スマートフォン、タブレット、またはその他のネットワーク・ノードであることができ、通常は、コンピュータ1002に関連して説明された要素の多くを含む。簡潔にするために、メモリ・ストレージ・デバイス1040のみが、リモート・コンピュータ1038と共に示されている。リモート・コンピュータ1038は、ネットワーク・インターフェイス1042を介してコンピュータ1002に論理的に接続されてから、通信接続1044を介して接続される。ネットワーク・インターフェイス1042は、ローカル・エリア・ネットワーク(LAN:local-area networks)および広域ネットワーク(WAN:wide-area networks)、ならびにセルラー・ネットワークなどの、有線通信ネットワークまたは無線通信ネットワークを包含する。LAN技術は、光ファイバ分散データ・インターフェイス(FDDI:Fiber Distributed Data Interface)、銅線分散データ・インターフェイス(CDDI:Copper Distributed Data Interface)、トークン・リングなどを含む。WAN技術は、ポイントツーポイント・リンク、総合デジタル通信網(ISDN:Integrated Services Digital Networks)およびその変形などの回路交換網、パケット交換網、およびデジタル加入者回線(DSL:Digital Subscriber Lines)を含むが、これらに限定されない。
通信接続1044は、ネットワーク・インターフェイス1042をバス1008に接続するために採用されたハードウェア/ソフトウェアのことを指す。通信接続1044は、説明を明確にするために、コンピュータ1002内に示されているが、コンピュータ1002の外部に存在することもできる。ネットワーク・インターフェイス1042への接続に必要なハードウェア/ソフトウェアは、単に例示の目的で、通常の電話の等級のモデム、ケーブル・モデム、およびDSLモデムを含むモデム、ISDNアダプタ、有線および無線イーサネット(R)・カード、ハブ、ならびにルータなどの、内部および外部の技術を含む。
上記では、1つのコンピュータまたは複数のコンピュータあるいはその両方で実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令との一般的な関連において、対象が説明されたが、当業者は、本開示がその他のプログラム・モジュールと組み合わせられるか、またはその他のプログラム・モジュールと組み合わせて実装され得るということを認識するであろう。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明のコンピュータ実装方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話)、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品または産業用電子機器などを含む、その他のコンピュータ・システム構成を使用して実践され得るということを理解するであろう。示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境内で実践されてもよい。ただし、本開示の態様の全部ではないとしても一部は、スタンドアロン・コンピュータ上で実践され得る。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。
本出願において使用されるとき、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェイス」などの用語は、1つまたは複数の特定の機能を含むコンピュータ関連の実体または操作可能なマシンに関連する実体を指すことができるか、またはそれらの実体を含むことができるか、あるいはその両方が可能である。本明細書で開示された実体は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組み合わせであることができるが、これらに限定されない。例として、サーバ上で実行されるアプリケーションおよびサーバの両方が、コンポーネントであることができる。1つまたは複数のコンポーネントが、プロセス内または実行のスレッド内あるいはその両方に存在することができ、コンポーネントは、コンピュータ上に局在するか、または2つ以上のコンピュータ間で分散されるか、あるいはその両方が可能である。別の例では、各コンポーネントは、さまざまなデータ構造が格納されているさまざまなコンピュータ可読媒体から実行できる。コンポーネントは、1つまたは複数のデータ・パケット(例えば、ローカル・システム内または分散システム内の別のコンポーネントと情報をやりとりするか、またはインターネットなどのネットワークを経由して、信号を介して他のシステムと情報をやりとりするか、あるいはその両方によって情報をやりとりする、1つのコンポーネントからのデータ)を含んでいる信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信できる。別の例として、コンポーネントは、電気または電子回路によって操作される機械的部品によって提供される特定の機能を有する装置であることができ、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって操作される。そのような場合、プロセッサは、装置の内部または外部に存在することができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行できる。さらに別の例として、コンポーネントは、機械的部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、電子コンポーネントの機能の少なくとも一部を与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたはその他の手段を含むことができる。1つの態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
加えて、「または」という用語は、排他的論理和ではなく、包含的論理和を意味するよう意図されている。すなわち、特に指定されない限り、または文脈から明らかでない限り、「XがAまたはBを採用する」は、自然な包含的順列のいずれかを意味するよう意図されている。すなわち、XがAを採用するか、XがBを採用するか、またはXがAおよびBの両方を採用する場合、「XがAまたはBを採用する」が、前述の事例のいずれかにおいて満たされる。さらに、本明細書および添付の図面において使用される冠詞「a」および「an」は、単数形を対象にすることが特に指定されない限り、または文脈から明らかでない限り、「1つまたは複数」を意味すると一般に解釈されるべきである。本明細書において使用されるとき、「例」または「例示的」あるいはその両方の用語は、例、事例、または実例となることを意味するために使用され、非限定的であるよう意図されている。誤解を避けるために、本明細書で開示された対象は、そのような例によって制限されない。加えて、「例」または「例示的」あるいはその両方として本明細書に記載された任意の態様または設計は、他の態様または設計よりも好ましいか、または有利であると必ずしも解釈されず、当業者に知られている同等の例示的な構造および技術を除外するよう意図されていない。
本明細書において使用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるシングルプロセッサと、マルチコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるマルチコア・プロセッサと、ハードウェアのマルチスレッド技術を備えるマルチコア・プロセッサと、並列プラットフォームと、分散共有メモリを備える並列プラットフォームとを含むが、これらに限定されない、実質的に任意の計算処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、プログラマブル・ロジック・コントローラ(PLC:programmable logic controller)、複合プログラム可能論理デバイス(CPLD:complex programmable logic device)、個別のゲートまたはトランジスタ論理、個別のハードウェア・コンポーネント、あるいは本明細書に記載された機能を実行するように設計されたこれらの任意の組み合わせを指すことができる。さらに、プロセッサは、空間利用を最適化し、ユーザ機器の性能を向上するために、分子および量子ドットベースのトランジスタ、スイッチ、およびゲートなどの、ただしこれらに限定されない、ナノスケール・アーキテクチャを利用することができる。プロセッサは、計算処理ユニットの組み合わせとして実装されてもよい。本開示では、コンポーネントの動作および機能に関連する「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的に任意のその他の情報格納コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」内に具現化された実体、またはメモリを備えているコンポーネントを指すために使用される。本明細書に記載されたメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリまたは不揮発性メモリのいずれかであることができ、あるいは揮発性メモリおよび不揮発性メモリの両方を含むことができるということが、理解されるべきである。不揮発性メモリの例としては、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電体RAM(FeRAM))が挙げられるが、これらに限定されない。揮発性メモリは、例えば外部キャッシュ・メモリとして機能できる、RAMを含むことができる。例えばRAMは、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ダイレクト・ラムバスRAM(DRRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、およびラムバス・ダイナミックRAM(RDRAM:Rambus dynamic RAM)などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
前述した内容は、システムおよびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本開示を説明する目的で、コンポーネントまたはコンピュータ実装方法の考えられるすべての組み合わせについて説明することは不可能であるが、当業者は、本開示の多くのその他の組み合わせおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。さまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。説明された実施形態の範囲を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。

Claims (27)

  1. 畳み込みニューラル・ネットワークためのシステムであって、前記システムが、
    コンピュータ実行可能コンポーネントを格納するメモリと、
    前記メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサとを備えており、前記コンピュータ実行可能コンポーネントが、
    スパース・カーネルの第1のパターンおよび補完カーネルの第2のパターンを決定するパターン・コンポーネントであって、前記第1のパターンが、前記スパース・カーネルの第1のサンプル行列内の有効なサンプルの位置を表し、前記第2のパターンが、前記第1のパターンを補完する前記補完カーネルの第2のサンプル行列内の有効なサンプルの位置を表す、前記パターン・コンポーネントと、
    融合方法に従って結合された前記スパース・カーネルの特徴および前記補完カーネルの特徴の結合に基づいて、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成する融合コンポーネントと、
    前記融合されたカーネルをトレーニングするトレーニング・コンポーネントとを備えている、システム。
  2. 前記融合方法が、前記第1のパターンのスキップされるサンプルを前記第2のパターンの有効なサンプルに置き換える空間結合演算を使用して、前記スパース・カーネルの前記特徴および前記補完カーネルの前記特徴を結合する、請求項1に記載のシステム。
  3. 前記融合方法が、演算子に従って、前記スパース・カーネルおよび前記補完カーネルのペアワイズ連結に基づいて、前記スパース・カーネルおよび前記補完カーネルを結合する、請求項1に記載のシステム。
  4. 前記演算子が加算演算子である、請求項3に記載のシステム。
  5. 前記演算子が逆演算子である、請求項3に記載のシステム。
  6. 前記融合方法が、チャネルの次元における1×1チャネル行列の適用に基づいて、前記スパース・カーネル、前記補完カーネル、および前記融合されたカーネルの特徴を結合することを含むチャネルワイズ融合手順を含んでいる、請求項1ないし5のいずれかに記載のシステム。
  7. 前記補完カーネルが、前記第1のサンプル行列内の少なくとも1つのスキップされるサンプルの位置に対応する前記第2のサンプル行列内の位置で少なくとも1つの有効なサンプルを含んでいる、請求項1ないし6のいずれかに記載のシステム。
  8. 前記補完カーネルが、前記第1のサンプル行列内のスキップされるサンプルを含んでいる位置に対応する前記第2のサンプル行列内のすべての位置で有効なサンプルを含んでいる、請求項1ないし7のいずれかに記載のシステム。
  9. トレーニング済みの畳み込みニューラル・ネットワークの元の学習された完全なカーネルに割り当てられたパラメータ加重の調査に基づいて、前記パターン・コンポーネントが前記第1のパターンを決定する、請求項1ないし8のいずれかに記載のシステム。
  10. 前記スパース・カーネルの前記第1のサンプル行列が3×3行列であり、前記第1のパターンが「+」形状を有しており、前記補完カーネルの前記第2のサンプル行列が3×3行列であり、前記第2のパターンが「x」形状を有している、請求項1ないし9のいずれかに記載のシステム。
  11. 複数の種類の前記スパース・カーネル、複数の種類の前記補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータのうちの少なくとも1つを含んでいる構成データを受信する受信コンポーネントをさらに備えている、請求項1ないし10のいずれかに記載のシステム。
  12. 畳み込みニューラル・ネットワークのためのコンピュータ実装方法であって、前記方法が、
    プロセッサに動作可能なように結合されたデバイスによって、スパース・カーネルの第1のパターンおよび補完カーネルの第2のパターンを決定することであって、前記第1のパターンが、前記スパース・カーネルの第1のサンプル行列内の有効なサンプルの位置を表し、前記第2のパターンが、前記第1のパターンを補完する前記補完カーネルの第2のサンプル行列内の有効なサンプルの位置を表す、前記決定することと、
    融合方法に従って結合された前記スパース・カーネルの特徴および前記補完カーネルの特徴の結合に応答して、前記デバイスによって、畳み込みニューラル・ネットワークの完全なカーネルの近似を表す融合されたカーネルを生成することと、
    前記デバイスによって、前記融合されたカーネルをトレーニングすることとを含んでいる、コンピュータ実装方法。
  13. 前記融合方法が、前記第1のパターンのスキップされるサンプルを前記第2のパターンの有効なサンプルに置き換える空間結合演算を使用して、前記スパース・カーネルの前記特徴および前記補完カーネルの前記特徴を結合する、請求項12に記載のコンピュータ実装方法。
  14. 前記融合方法が、演算子に従って、前記スパース・カーネルおよび前記補完カーネルのペアワイズ連結に基づいて、前記スパース・カーネルおよび前記補完カーネルを結合する、請求項12または13に記載のコンピュータ実装方法。
  15. 前記演算子が加算演算子である、請求項14に記載のコンピュータ実装方法。
  16. 前記演算子が逆演算子である、請求項14に記載のコンピュータ実装方法。
  17. 前記融合方法が、チャネルの次元における1×1チャネル行列の適用に基づいて、前記スパース・カーネル、前記補完カーネル、および前記融合されたカーネルの特徴を結合することを含むチャネルワイズ融合手順を含んでいる、請求項12ないし16のいずれかに記載のコンピュータ実装方法。
  18. 前記補完カーネルが、前記第1のサンプル行列内の少なくとも1つのスキップされるサンプルの位置に対応する前記第2のサンプル行列内の位置で少なくとも1つの有効なサンプルを含んでいる、請求項12ないし17のいずれかに記載のコンピュータ実装方法。
  19. 前記補完カーネルが、前記第1のサンプル行列内のスキップされるサンプルを含んでいる位置に対応する前記第2のサンプル行列内のすべての位置で有効なサンプルを含んでいる、請求項12ないし18のいずれかに記載のコンピュータ実装方法。
  20. トレーニング済みの畳み込みニューラル・ネットワークの元の学習された完全なカーネルに割り当てられたパラメータ加重の調査に基づいて、前記パターン・コンポーネントが前記第1のパターンを決定する、請求項12ないし19のいずれかに記載のコンピュータ実装方法。
  21. 前記スパース・カーネルの前記第1のサンプル行列が3×3行列であり、前記第1のパターンが「+」形状を有しており、前記補完カーネルの前記第2のサンプル行列が3×3行列であり、前記第2のパターンが「x」形状を有している、請求項12ないし20のいずれかに記載のコンピュータ実装方法。
  22. 複数の種類の前記スパース・カーネル、複数の種類の前記補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータのうちの少なくとも1つを含んでいる構成データを受信することをさらに含んでいる、請求項12ないし21のいずれかに記載のコンピュータ実装方法。
  23. 前記デバイスによって、複数の種類の前記スパース・カーネル、複数の種類の前記補完カーネル、複数のスパース・カーネル、複数の補完カーネル、ペアワイズ・カーネル融合の演算子の識別、またはチャネルワイズ融合が使用されるべきかどうかを示すインジケータを含んでいる構成データを受信することをさらに含んでいる、請求項12ないし22のいずれかに記載のコンピュータ実装方法。
  24. 前記融合されたカーネルを前記生成することが、演算子に従って、前記スパース・カーネルおよび前記補完カーネルのペアワイズ連結に基づいて、前記スパース・カーネルおよび前記補完カーネルを結合することを含んでいる、請求項12ないし23のいずれかに記載のコンピュータ実装方法。
  25. 前記融合されたカーネルを前記生成することが、チャネルの次元における1×1チャネル行列の適用に基づいて、前記スパース・カーネル、前記補完カーネル、および前記融合されたカーネルの特徴を結合することを含むチャネルワイズ融合手順を含んでいる、請求項12ないし24のいずれかに記載のコンピュータ実装方法。
  26. 畳み込みニューラル・ネットワークのためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
    処理回路によって読み取り可能な、請求項12ないし25のいずれかに記載の方法を実行するために前記処理回路によって実行されるための命令を格納しているコンピュータ可読記憶媒体を備えている、コンピュータ・プログラム製品。
  27. コンピュータ可読媒体に格納された、デジタル・コンピュータの前記内部メモリに読み込み可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行された場合に請求項12ないし25のいずれかに記載の前記方法を実行するためのソフトウェア・コード部分を含んでいる、コンピュータ・プログラム。
JP2020530640A 2017-12-14 2018-12-13 畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合 Active JP7179850B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/841,480 2017-12-14
US15/841,480 US10740659B2 (en) 2017-12-14 2017-12-14 Fusing sparse kernels to approximate a full kernel of a convolutional neural network
PCT/IB2018/059993 WO2019116291A1 (en) 2017-12-14 2018-12-13 Fusing sparse kernels to approximate a full kernel of a convolutional neural network

Publications (3)

Publication Number Publication Date
JP2021507345A true JP2021507345A (ja) 2021-02-22
JP2021507345A5 JP2021507345A5 (ja) 2021-07-26
JP7179850B2 JP7179850B2 (ja) 2022-11-29

Family

ID=66814568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020530640A Active JP7179850B2 (ja) 2017-12-14 2018-12-13 畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合

Country Status (6)

Country Link
US (1) US10740659B2 (ja)
JP (1) JP7179850B2 (ja)
CN (1) CN111344720A (ja)
DE (1) DE112018006377T5 (ja)
GB (1) GB2583623A (ja)
WO (1) WO2019116291A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102548718B1 (ko) * 2017-06-07 2023-06-28 삼성전자주식회사 전자 장치 및 그 제어 방법
US11144290B2 (en) 2019-09-13 2021-10-12 Huawei Technologies Co., Ltd. Method and apparatus for enabling autonomous acceleration of dataflow AI applications
US20210256385A1 (en) * 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for dnn weight pruning for real-time execution on mobile devices
US11494875B2 (en) 2020-03-25 2022-11-08 Nintendo Co., Ltd. Systems and methods for machine learned image conversion
US11379951B2 (en) 2020-03-25 2022-07-05 Nintendo Co., Ltd. Systems and methods for machine learned image conversion
CN113344199B (zh) * 2021-06-17 2024-05-03 阿波罗智联(北京)科技有限公司 用于训练可分离卷积网络的方法、路侧设备及云控平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014535118A (ja) * 2011-11-09 2014-12-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated 無監督ニューラルリプレイ、学習改善、関連付け、およびメモリ転送のための方法および装置:ニューラル構成要素メモリ転送
WO2016197026A1 (en) * 2015-06-05 2016-12-08 Sony Corporation Full reference image quality assessment based on convolutional neural network
US20170103308A1 (en) * 2015-10-08 2017-04-13 International Business Machines Corporation Acceleration of convolutional neural network training using stochastic perforation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077612B (zh) * 2014-07-15 2017-09-22 中国科学院合肥物质科学研究院 一种基于多特征稀疏表示技术的害虫图像识别方法
US9652817B2 (en) 2015-03-12 2017-05-16 Samsung Electronics Co., Ltd. Automated compute kernel fusion, resizing, and interleave
CN105046193B (zh) * 2015-06-05 2018-07-10 上海大学 一种基于融合稀疏表示矩阵的人体动作识别方法
US9972063B2 (en) 2015-07-30 2018-05-15 International Business Machines Corporation Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units
US9904874B2 (en) 2015-11-05 2018-02-27 Microsoft Technology Licensing, Llc Hardware-efficient deep convolutional neural networks
WO2017132830A1 (en) 2016-02-02 2017-08-10 Xiaogang Wang Methods and systems for cnn network adaption and object online tracking
US10181188B2 (en) * 2016-02-19 2019-01-15 International Business Machines Corporation Structure-preserving composite model for skin lesion segmentation
US10832136B2 (en) 2016-05-18 2020-11-10 Nec Corporation Passive pruning of filters in a convolutional neural network
CN107330463B (zh) 2017-06-29 2020-12-08 南京信息工程大学 基于cnn多特征联合和多核稀疏表示的车型识别方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014535118A (ja) * 2011-11-09 2014-12-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated 無監督ニューラルリプレイ、学習改善、関連付け、およびメモリ転送のための方法および装置:ニューラル構成要素メモリ転送
WO2016197026A1 (en) * 2015-06-05 2016-12-08 Sony Corporation Full reference image quality assessment based on convolutional neural network
US20170103308A1 (en) * 2015-10-08 2017-04-13 International Business Machines Corporation Acceleration of convolutional neural network training using stochastic perforation

Also Published As

Publication number Publication date
US10740659B2 (en) 2020-08-11
US20190188526A1 (en) 2019-06-20
WO2019116291A1 (en) 2019-06-20
GB202010475D0 (en) 2020-08-19
DE112018006377T5 (de) 2020-08-20
JP7179850B2 (ja) 2022-11-29
CN111344720A (zh) 2020-06-26
GB2583623A (en) 2020-11-04

Similar Documents

Publication Publication Date Title
JP2021507345A (ja) 畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合
US10872290B2 (en) Neural network processor with direct memory access and hardware acceleration circuits
Yuan et al. A comprehensive review of binary neural network
CN110506260B (zh) 用于神经网络环境中的增强数据处理的方法、系统和介质
CN108229655B (zh) 卷积神经网络(cnn)处理方法和设备
US11836610B2 (en) Concurrent training of functional subnetworks of a neural network
EP3289529B1 (en) Reducing image resolution in deep convolutional networks
US20190026626A1 (en) Neural network accelerator and operation method thereof
US11176446B2 (en) Compositional prototypes for scalable neurosynaptic networks
US20180130203A1 (en) Automated skin lesion segmentation using deep side layers
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
WO2020113355A1 (en) A content adaptive attention model for neural network-based image and video encoders
US20200151573A1 (en) Dynamic precision scaling at epoch granularity in neural networks
JP2018535478A (ja) ハードウェア・アクセラレータ全体での行列因数分解の並列化のためのコンピュータ実装方法、システム、コンピュータ・プログラム
KR20190099931A (ko) 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치
CN111783937A (zh) 一种神经网络构建方法以及系统
JP2021506032A (ja) オンチップの計算ネットワーク
US11593002B2 (en) Artificial neural networks in memory
JP2021512387A (ja) 量子コンピューティング・デバイス設計
CN114626503A (zh) 模型的训练方法、目标检测方法、装置、电子设备及介质
CN115223042A (zh) 基于YOLOv5网络模型的目标识别方法及装置
CN114008635A (zh) 神经网络逐层调试
CN117786412A (zh) 大型语言模型的弹性训练方法、集群系统、产品及介质
US20220391572A1 (en) Visualization scheme of noise in a quantum circuit
US20230030287A1 (en) Exploiting fine-grained structured weight sparsity in systolic arrays

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210525

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220818

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: 20221108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221116

R150 Certificate of patent or registration of utility model

Ref document number: 7179850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150