(57)【要約】      （修正有）【課題】表意文字は精通していなけらば理解不能なものもあり、その表意文字を理解するために、ＣＮＮベースの集積回路を使用する自然言語処理を提供する。【解決手段】自然言語テキストの文字列は、「スーパーキャラクタ」を表すＫビットデータのＮ×Ｎピクセルの行列を含み、多層二次元シンボルを形成する。行列は、各々（Ｎ／Ｍ）×（Ｎ／Ｍ）ピクセルを含むＭ×Ｍ個の部分行列に分割される。各部分行列は、表意文字集合内で定義された一つの表意文字を表し、「スーパーキャラクタ」は、複数の表意文字の特定の組み合わせから形成される意味を表す。「スーパーキャラクタ」の意味は、セルラニューラルネットワークまたはセルラ非線形ネットワーク（ＣＮＮ）ベースの集積回路において２値３×３フィルタカーネルを有する訓練された畳み込みニューラルネットワークモデルを介して二次元シンボルを分類することによって学習される。【選択図】図５Ａ
2019053723.tif 000002
【特許請求の範囲】
【請求項１】
セルラニューラルネットワークまたはセルラ非線形ネットワーク（ＣＮＮ）ベースの集積回路を使用する自然言語処理の方法であって、
コンピューティングシステムにおいて自然言語の文字列を受信するステップと、
前記コンピューティングシステムにインストールされた二次元シンボル生成モジュールで、前記受信した自然言語の文字列から二次元シンボル生成規則のセットに基づいて多層二次元シンボルを形成するステップであって、前記二次元シンボルは、スーパーキャラクタを含むＫビットデータのＮ×Ｎピクセルの行列であり、前記行列は、各々が（Ｎ／Ｍ）×（Ｎ／Ｍ）個のピクセルを含むＭ×Ｍ個のサブ行列に分割され、前記サブ行列の各々は、表意文字集合内に定義された一つの表意文字を表し、前記スーパーキャラクタは複数の表意文字の特定の組み合わせから形成される意味を表し、ここでＫ、ＮおよびＭは正の整数または整数であり、ＮはＭの倍数であるステップと、
セルラニューラルネットワークまたはセルラ非線形ネットワーク（ＣＮＮ）ベースの集積回路において、２値３×３フィルタカーネルを有する訓練された畳み込みニューラルネットワークモデルを介して前記二次元シンボルを分類することによって前記スーパーキャラクタの前記意味を学習するステップと、
を含む方法。
【請求項２】
前記訓練された畳み込みニューラルネットワークモデルが、
（ａ）複数の多層二次元シンボルを含むラベル付きデータセットの画像分類に基づいて畳み込みニューラルネットワークモデルを訓練することにより畳み込みニューラルネットワークモデルを得る操作であって、前記畳み込みニューラルネットワークモデルは、複数の順序付けられたフィルタグループを含み、前記複数の順序付けられたフィルタグループ内の各フィルタは標準３×３フィルタカーネルを含む操作と、
（ｂ）各前記標準３×３フィルタカーネルを、１セットのカーネル変換スキームに基づいて、前記複数の順序付けられたフィルタグループ内の現在処理されているフィルタグループの対応する２値３×３フィルタカーネルに変換することによって前記畳み込みニューラルネットワークモデルを修正する操作と、
（ｃ）所望の収束基準が満たされるまで前記修正された畳み込みニューラルネットワークモデルを再学習する操作と、
（ｄ）前記複数の順序付けられたフィルタグループのすべてが前記２値３×３フィルタカーネルに変換されるまで、別のフィルタグループに対して（ｂ）〜（ｃ）の操作を繰り返す操作と、
を含む、請求項１に記載の方法。
【請求項３】
前記畳み込みニューラルネットワークモデルを修正する操作は、前記変換操作のために２つ以上の連続するフィルタグループを任意に組み合わせることをさらに含む、
請求項２に記載の方法。
【請求項４】
前記修正された畳み込みニューラルネットワークモデルを再学習する操作は、既に変換された前記フィルタグループを任意に据え置く操作をさらに含む、
請求項２に記載の方法。
【請求項５】
前記カーネル変換スキームのセットでは、対応する前記２値３×３フィルタカーネルの前記９つの係数のそれぞれに、前記標準３×３フィルタカーネルの対応する係数の符号を乗じた絶対係数値の平均に等しい値が割り当てられている、
請求項２に記載の方法。
【請求項６】
前記所望の収束基準は、予め定義された回数の前記再学習動作を完了することを含む、
請求項２に記載の方法。
【請求項７】
前記所望の収束基準は、フィルタカーネル変換による精度損失の収束を含む、
請求項２に記載の方法。
【請求項８】
前記二次元シンボル生成規則のセットは、
前記受信した自然言語の文字列のサイズを決定するステップと、
前記受信した文字列のサイズがＭ×Ｍより大きい場合、前記文字列のサイズがＭ×Ｍに等しくなるように、少なくとも一つの言語テキスト縮小スキームを介して前記受信した文字列を修正し、次いで前記文字列を前記多層二次元シンボルに変換するステップと、
前記受信した前記文字列のサイズがＭ×Ｍに等しい場合、前記受信した文字列を前記多層二次元シンボルに変換するステップと、
前記受信した前記文字列のサイズがＭ×Ｍより小さくパディング操作が望まれる場合、少なくとも一つの言語テキスト増加スキームに従って、前記文字列のサイズがＭ×Ｍと等しくなるよう、前記文字列をパディングするために少なくとも一つのテキストを追加し、前記パディングされた文字列を前記多層二次元シンボルに変換するステップと、
それ以外の場合、前記受信した文字列を、少なくとも一つの空白を含む前記多層二次元シンボルに変換するステップと、を含む、
請求項２に記載の方法。
【請求項９】
前記少なくとも一つの言語テキスト縮小スキームは、少なくとも一つの関連する文法に基づくルールに従って前記受信した文字列から少なくとも一つの重要でないテキストを削除するステップを含む、
請求項８に記載の方法。
【請求項１０】
前記少なくとも一つの関連する文法に基づくルールは、前記受信した自然言語の文字列に関連したものである、
請求項９に記載の方法。
【請求項１１】
前記少なくとも一つの言語テキスト縮小スキームは、ランダム化テキスト縮小スキームを含む、
請求項９に記載の方法。
【請求項１２】
前記ランダム化テキスト縮小スキームは、前記文字列のサイズがＭ×Ｍに縮小されるように前記文字列を切り捨てるステップを含む、
請求項１１に記載の方法。
【請求項１３】
前記ランダム化テキスト縮小スキームは、前記文字列のサイズがＭ×Ｍに縮小されるように、前記文字列内のあるテキストを任意に選択するステップを含む、
請求項１１に記載の方法。
【請求項１４】
前記少なくとも一つの言語テキスト増加スキームは、前記受信した文字列から一つ以上のキーテキストを特定し、次いで前記一つ以上のキーテキストを前記文字列に繰り返し追加するステップを含む、
請求項８に記載の方法。
【請求項１５】
前記少なくとも一つの言語テキスト増加スキームは、前記受信した文字列から一つ以上のテキストを前記文字列に繰り返し付加するステップを含む、
請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、機械学習の分野に関し、特に、セルラニューラルネットワークもしくはセルラノンリニアネットワーク（ＣＮＮ）ベースの集積回路を使用する自然言語処理に関する。
【背景技術】
【０００２】
表意文字は、アイデアもしくは概念を表す図形記号である。表意文字には、事前の取り決めに精通していなければ理解不能なものもあり、一方、物理的物体との画像の類似性によって、その意味を伝達するものもある。
【０００３】
機械学習は、人工知能の応用である。機械学習においては、コンピュータもしくはコンピュータ装置が人間のように思考するようプログラムされ、コンピュータが自分で学習するように教えられる。ニューラルネットワークの開発は、コンピュータが人間のように考えて世界を捉えるよう教えるための鍵であった。
【発明の概要】
【０００４】
セルラニューラルネットワークもしくはセルラノンリニアネットワーク（ＣＮＮ）ベースの集積回路を使用した自然言語処理の方法を開示する。本発明の一つの態様によると、自然言語文の文字列は、少なくとも２−Ｄシンボル作成アプリケーションモジュールがインストールされたコンピューティングシステムにおいて受信され、多層二次元（２−Ｄ）シンボルが形成される。２−Ｄシンボルは、「スーパーキャラクタ」を表すＫビットデータのＮ×Ｎピクセルの行列を含む。行列は、（Ｎ／Ｍ）×（Ｎ／Ｍ）個のピクセルを含む各部分行列を有するＭ×Ｍ個の部分行列に分割される。Ｋ、ＮおよびＭは正の整数であって、Ｎは好ましくはＭの倍数である。各部分行列は、表意文字のコレクションセットにおいて定義された一つの表意文字を表す。「スーパーキャラクタ」は、複数の表意文字の特定の組み合わせから形成された意味を表す。「スーパーキャラクタ」の意味は、セルラニューラルネットワークまたはセルラノンリニアネットワーク（ＣＮＮ）ベースの集積回路において、２値３×３フィルタカーネルを有する学習済みの畳み込みニューラルネットワークモデルを介して、２−Ｄシンボルを分類することによって学習される。
【０００５】
別の態様では、前記学習した畳み込みニューラルネットワークモデルは、次の作業をもって達成される：（ａ）十分に多数の多層２−Ｄシンボルを含むラベル付きデータセットの画像分類に基づいて、畳み込みニューラルネットワークモデルに学習させることによって畳み込みニューラルネットワークモデルを取得する、畳み込みニューラルネットワークモデルは、複数の順序付けられたフィルタグループを含み、複数の順序付けられたフィルタグループ内の各フィルタは、標準３ｘ３フィルタカーネルを含む；（ｂ）各標準３×３フィルタカーネルを、１組のカーネル変換スキームに基づいて、複数の順序付けられたフィルタグループ内の現在処理されているフィルタグループに対応する２値３×３フィルタカーネルに変換することによって畳み込みニューラルネットワークモデルを修正する；（ｃ）所望の収束基準を満たすまで、修正した畳み込みニューラルネットワークモデルを再学習させる；並びに、（ｂ）全ての複数の順序づけられたフィルタグループが２値３×３フィルタカーネルに変換されるまで、別のフィルタグループに対して（ｂ）〜（ｃ）を繰り返す。
【０００６】
表意文字のコレクションセットには、絵文字、アイコン、ロゴ、表語音節文字、句読点、数字、特殊文字が含まれるが、これらに限定されない。
【０００７】
本発明の目的、特徴および利点の一つは、自然言語処理のための画像処理技術（すなわち、畳み込みニューラルネットワーク）がハードウェアで実行されるような同時畳み込みを実行する専用の組み込みロジックを有するＣＮＮベースの集積回路を使用することにある。
【０００８】
本発明の他の目的、特徴および利点は、添付の図面と併せて、その実施形態の以下の詳細な説明を検討することによって明らかになるであろう。
【図面の簡単な説明】
【０００９】
本発明のこれらおよびその他の特徴、態様、および利点は、以下の説明、添付の特許請求の範囲、および添付図面に関して、以下のように、よりよく理解されるであろう。
【図１】本発明の実施形態に係る、含まれる複数の表意文字の結合された意味の機械学習を容易にするための「スーパーキャラクタ」を表すデータのＮ×Ｎピクセルの行列を含む例示的な二次元シンボルを示す図である；
【図２Ａ】本発明の実施形態に係る、図１の二次元シンボルを分割するための例示的な分割方式を示す図である。
【図２Ｂ】本発明の実施形態に係る、図１の二次元シンボルを分割するための例示的な分割方式を示す図である。
【図３Ａ】本発明の一実施形態に係る表意文字の例を示す。
【図３Ｂ】本発明の一実施形態に係る表意文字の例を示す。
【図３Ｃ】本発明の一実施形態に係るラテン文字に基づいた西洋語を含む絵文字の例を示す。
【図３Ｄ】本発明の一実施形態に係る表意文字の例の、各基本色層を示す。
【図３Ｅ】本発明の一実施形態に係る辞書様の定義のための表意文字の例の３つの関連する層を示す。
【図４Ａ】本発明の一実施形態に係る、二次元シンボルに含まれる複数の表意文字の結合された意味の機械学習のための、セルラニューラルネットワークもしくはセルラノンリニアネットワーク（ＣＮＮ）ベースのコンピューティングシステムの例を示すブロック図である。
【図４Ｂ】本発明の一実施形態に係る、畳み込みニューラルネットワークに基づいて画像処理を行う為の、ＣＮＮベース集積回路の例を示すブロック図である。
【図５Ａ】本発明の一実施形態に係る多層二次元シンボルを使用して書かれた自然言語の機械学習のプロセスの例を示すフローチャートである。
【図５Ｂ】本発明の一実施形態に係る画像処理技術を用いた多層二次元シンボルを介する自然言語処理の例を示す概略図である。
【図６Ａ】本発明の一実施形態に係る、自然言語文の文字列から複数の表意文字を含む二次元シンボルを形成する処理の例を集合的に示すフローチャートである。
【図６Ｂ】本発明の一実施形態に係る、自然言語文の文字列から複数の表意文字を含む二次元シンボルを形成する処理の例を集合的に示すフローチャートである。
【図６Ｃ】本発明の一実施形態に係る、自然言語文の文字列から複数の表意文字を含む二次元シンボルを形成する処理の例を集合的に示すフローチャートである。
【図７】本発明の一実施形態に係る、畳み込みニューラルネットワークに基づいた画像処理技術の例を示す概略図である；
【図８】本発明の一実施形態に係る、ＣＮＮベースの集積回路におけるＣＮＮ処理エンジンの例を示す図である。
【図９】本発明の一実施形態に係る、図８の例示的なＣＮＮ処理エンジン内の画像データ領域の例を示す図である。
【図１０Ａ】本発明の一実施形態に係る、図９の例示的な画像データ領域内の３つのピクセル位置の例を示す図である。
【図１０Ｂ】本発明の一実施形態に係る、図９の例示的な画像データ領域内の３つのピクセル位置の例を示す図である。
【図１０Ｃ】本発明の一実施形態に係る、図９の例示的な画像データ領域内の３つのピクセル位置の例を示す図である。
【図１１】本発明の一実施形態に係る、図８の例示的なＣＮＮ処理エンジン内のピクセル位置で３×３畳み込みを実行するためのデータ配置の例を示す図である。
【図１２Ａ】本発明の一実施形態に係る２つの２×２プーリング演算の例を示す図である。
【図１２Ｂ】本発明の一実施形態に係る２つの２×２プーリング演算の例を示す図である。
【図１３】本発明の一実施形態に係る、図８のＣＮＮ処理エンジンの例における画像データの２×２プーリング演算を示す図である。
【図１４Ａ】本発明の一実施形態に係る、入力画像内の画像データ領域の様々な例を示す図である。
【図１４Ｂ】本発明の一実施形態に係る、入力画像内の画像データ領域の様々な例を示す図である。
【図１４Ｃ】本発明の一実施形態に係る、入力画像内の画像データ領域の様々な例を示す図である。
【図１５】本発明の一実施形態に係る、例示的なクロックスキュー回路を介して、ループの様に接続された複数のＣＮＮ処理エンジンを示す図である。
【図１６】本発明の一実施形態に係るＣＮＮベースの集積回路を使用した自然言語処理の処理例を図示したフローチャートである。
【図１７】本発明の一実施形態に係る、２値３×３フィルタカーネルを有する訓練された畳み込みニューラルネットワークモデルを達成する処理例を示すフローチャートである。
【図１８】データ転換スキームの例を示す図である。
【図１９】本発明に係るフィルタカーネル転換スキームの例を示す図である。
【発明を実施するための形態】
【００１０】
本明細書における「一実施形態」または「実施形態」への参照は、実施形態に関連して説明した特定の特徴、構造、または特性を、本発明の少なくとも一つの実施形態に含めることができることを意味する。本明細書の様々な箇所における「一実施形態では」という句の出現は、必ずしもすべてが同じ実施形態を指しているわけではなく、他の実施形態と相互排他的な別のまたは代替の実施形態でもない。本明細書で用いる用語「垂直」「水平」「対角線」「左」「右」「上部」「底部」「列」「行」「対角線上の」は、説明の目的で相対的な位置を提供するよう意図され、参考文献が指定する絶対的な枠を指定することを意図するものではない。さらに、本明細書中で用いた用語「文字」および「スクリプト」は、互換的に使用される。
【００１１】
図１〜１９を参照しながら、本発明の実施形態をここで論じる。しかしながら、当業者であれば、これらの図に関する本明細書中に記載の詳細な説明は、本発明がこれらの限定された実施形態を超えて延在するため、説明目的であることを容易に理解するであろう。
【００１２】
まず図１を参照すると、含まれる複数の表意文字の結合された意味の機械学習を容易にするための二次元シンボル１００の例を示す図が示されている。二次元シンボル１００は、「スーパーキャラクタ」を含むデータのＮ×Ｎピクセル（すなわち、Ｎ列×Ｎ行）の行列を含む。ピクセルは、次のように最初に行、次に列の順序で並べられる：（１，１）、（１，２）、（１，３）、．．．（１，Ｎ）、（２，１）、．．、（Ｎ，１）、．．．（Ｎ，Ｎ）。Ｎは、正の整数、もしくは整数であり、例えば、一実施形態では、Ｎは２２４に等しい。
【００１３】
「スーパーキャラクタ」は、複数個の表意文字の特定の組み合わせによって各々が形成された、少なくとも一つの意味を表す。表意文字は、ピクセルの特定のサイズの行列において表現することができるので、二次元シンボル１００はＭ×Ｍ個の部分行列に分割される。部分行列の各々は、人為的に表意文字のコレクションセットとして定義された、一つの表意文字を表す。「スーパーキャラクタ」には、最小２個、最大Ｍ×Ｍ個の表意文字が含まれる。ＮとＭは双方とも、正の整数もしくは整数であり、Ｎは好ましくはＭの倍数である。
【００１４】
図２Ａに示すのは、二次元シンボルをＭ×Ｍ部分行列に分割する第一の例示的な分割スキーム２１０である。Ｍは、第一の例示的な分割スキームにおいて４に等しい。Ｍ×Ｍ部分行列２１２の各々は、（Ｎ／Ｍ）×（Ｎ／Ｍ）個のピクセルを含む。Ｎが２２４に等しい時、各部分行列は、５６×５６ピクセルを含み、１６個の部分行列が存在する。
【００１５】
二次元シンボルをＭ×Ｍ個の部分行列２２２に分割する第二の例示的な分割スキーム２２０を、図２Ｂに示す。Ｍは、第二の例示的な分割スキームにおいて８に等しい。Ｍ×Ｍ個の部分行列２２２の各々は、（Ｎ／Ｍ）×（Ｎ／Ｍ）ピクセルを含む。Ｎが、２２４に等しい時、各部分行列は、２８×２８ピクセルを含み、６４個の部分行列が存在する。
【００１６】
図３Ａは、部分行列２２２（すなわち、２８×２８ピクセル）で表すことができる例示的な表意文字３０１〜３０４を示す。当業者であれば、５６×５６ピクセルを有する部分行列２１２もまた、これらの表意文字を表すために適合させることができることを理解するであろう。第一の例示的表意文字３０１は、自転車に乗る人のアイコンを表す絵文字である。第二の例示的な表意文字３０２は、例示的な漢字を表す表語音節文字である。第三の例示的表意文字３０３は、日本語の文字の例を表す表語音節文字であり、第４の例示的表意文字３０４は、韓国語の文字の例を表す表語音節文字である。さらに、表意文字は、句読点、数字、もしくは、特殊文字であってもよい。別の実施形態では、絵文字が、その他の画像のアイコンを含んでいてもよい。本文書においてここで用いるアイコンは、その類似性および類推のために、その対象を表す記号や表現として人為的に定義される。
【００１７】
図３Ｂは、句読点３１１、数字３１２、および特殊文字３１３を表すいくつかの表意文字の例を示す。さらに、絵文字は、例えば英語、スペイン語、フランス語、ドイツ語などのラテン文字に基づく西洋言語の一つ以上の単語を含んでもよい。図３Ｃは、ラテン文字に基づく西洋言語を含む例示的な絵文字を示す。第一の例示的な絵文字３２６は、英語の単語「ＭＡＬＬ」を示す。第二の例示的な絵文字３２７は、ラテン文字
2019053723.tif 000003
を示し、第三の例示的な絵文字３２８は、英字「Ｙ」を示す。表意文字は、人為的に定義された表意文字のコレクションセットであれば、これらのいずれでもよい。
【００１８】
表意文字の特徴の限定された数のみを、単一の二次元シンボルを使用して表すことができる。例えば、各ピクセルのデータが１ビットを含むとき、表意文字の特徴を白黒にすることができる。グレースケール色調などの特徴は、複数のビットを含む各ピクセルのデータで表示できる。
【００１９】
付加的な特徴は、表意文字の２つ以上の層を使用して表される。一実施形態では、表意文字の３つのそれぞれの基本色層（すなわち、赤、緑および青）を集合的に使用して、表意文字の異なる色を表す。二次元シンボルの各ピクセル内のデータは、Ｋビットの２進数を含む。Ｋは、正の整数もしくは整数である。一実施形態において、Ｋは５である。
【００２０】
図３Ｄは、三つの例示的な表意文字のそれぞれの基本色層を示す。漢字の表意文字を、赤３３１、緑３３２および青３３３で表示する。３つの基本色の異なる強度を組み合わせることによって、多数の色調を表現することができる。表意文字内に複数の色調が存在してもよい。
【００２１】
別の実施形態では、図３Ｅに示す漢字の辞書的な定義等の他の特徴を表現するために、３つの関連表意文字を用いる。図３Ｅの例示的な表意文字には、３つの層がある。第一の層３４１は、中国語の表語音節文字を示し、第二の層３４２は、中国語の「ピンイン」発音「ワン」として示し、第三の層３４３は英語での意味「王」を示す。
【００２２】
限定するものではないが、表意文字のコレクションセットには、絵文字、アイコン、ロゴ、表語音節文字、句読点、数字、特殊文字が含まれる。表語音節文字は、中国語の文字、日本語の文字、韓国語の文字などを含んでいてもよい。
【００２３】
漢字を体系的に含めるために、標準的な漢字セット（例えばＧＢ１８０３０）を表意文字コレクションセットの開始として使用することができる。日本語と韓国語の文字を含めるために、ＣＪＫ統合漢字を使用することができる。表語音節文字に関するその他の文字セットも使用されてよい。
【００２４】
「スーパーキャラクタ」に含まれる表意文字の特定の結合された意味は、セルラニューラルネットワークまたはセルラ非線形ネットワーク（ＣＮＮ）ベースのコンピューティングシステムにおける画像処理技術の使用の結果である。画像処理技術には、畳み込みニューラルネットワーク、リカレントニューラルネットワークなどが含まれるが、これらに限定されない。
【００２５】
「スーパーキャラクタ」は、最大Ｍ×Ｍ個の表意文字のうちの少なくとも２つの表意文字の結合された意味を表す。一実施形態では、絵文字と漢字が組み合わされて特定の意味を形成する。別の実施形態では、二つかそれ以上の漢字を組み合わせて意味を形成する。さらに別の実施形態では、一つの漢字と韓国語の文字が組み合わされて意味を形成する。どの２つ以上の表意文字を組み合わせるかについての制限はない。
【００２６】
「スーパーキャラクタ」を形成するための二次元シンボルに含まれる表意文字は、任意に配置することができる。二次元シンボル内に特定の順序は必要ない。表意文字は、左から右、右から左、上から下、下から上、または斜めに配置することができる。
【００２７】
文字の中国語を例として用いると、２つ以上の漢字を組み合わせると、限定するものではないが、フレーズ、イディオム、諺、詩、文章、段落、文章、記事（すなわち、書き言葉の作品）を含む「スーパーキャラクタ」を生じさせることができる。特定の例では、「スーパーキャラクタ」は、書き言葉の中国語の特定の領域にあるものであってもよい。特定の領域には、特定の民間説話、歴史的期間、特定の背景などが含まれるが、これらに限定されない。
【００２８】
ここで図４Ａを参照すると、二次元シンボル（例えば、二次元シンボル１００）に含まれる複数の表意文字の結合された意味を機械学習するように構成された例示的なＣＮＮベースのコンピューティングシステム４００を示すブロック図が示されている。
【００２９】
ＣＮＮベースのコンピューティングシステム４００は、デジタル半導体チップ（例えば、シリコン基板）として集積回路上に実装されてもよく、コントローラ４１０と、少なくとも一つの入力／出力（Ｉ／Ｏ）データバス４２０に動作可能に接続された複数のＣＮＮ処理ユニット４０２ａ〜４０２ｂと、を含む。コントローラ４１０は、クロックスキュー回路とループで接続されたＣＮＮ処理ユニット４０２ａ〜４０２ｂの様々な動作を制御するように構成される。
【００３０】
一実施形態では、ＣＮＮ処理ユニット４０２ａ〜４０２ｂの各々は、画像データ、例えば、図１の二次元シンボル１００を処理するように構成される。
【００３１】
表意文字のコレクションセットを格納するために、ＣＮＮベースのコンピューティングシステム４００に動作可能に結合された一つ以上の記憶装置が必要とされる。記憶ユニット（図示せず）は、周知の技術に基づいて、ＣＮＮベースのコンピューティングシステム４００の内部または外部に配置することができる。
【００３２】
「スーパーキャラクタ」は、場合によっては複数の意味を含むことができる。「スーパーキャラクタ」は、誤り訂正技術で訂正できる特定のエラーを許容することができる。換言すれば、表意文字を表すピクセルは正確である必要がない。エラーにはさまざまな原因があり、たとえば、データの取得中にデータが破損するなどである。
【００３３】
別の実施形態では、ＣＮＮベースのコンピューティングシステムは、拡張可能でスケーラブルなデジタル集積回路である。例えば、デジタル集積回路の複数のコピーを、図４Ｂに示すように、単一の半導体チップ上に実装することができる。
【００３４】
全てのＣＮＮ処理エンジンは同一である。図を簡略化するために、わずかな数、すなわちＣＮＮ処理エンジン４２２ａ〜４２２ｈ、４３２ａ〜４３２ｈのみを図４Ｂに示す。本発明は、デジタル半導体チップ上のＣＮＮ処理エンジンの数に制限を設けない。
【００３５】
各ＣＮＮ処理エンジン４２２ａ〜４２２ｈ、４３２ａ〜４３２ｈは、ＣＮＮ処理ブロック４２４と、第一のメモリバッファセット４２６と、第二のメモリバッファセット４２８とを含む。第一のメモリバッファセット４２６は、画像データを受信し、既に受信された画像データをＣＮＮ処理ブロック４２４に供給するように構成される。第二のメモリバッファセット４２８は、フィルタ係数を記憶し、既に受信したフィルタ係数をＣＮＮ処理ブロック４２４に供給するように構成される。一般に、チップ上のＣＮＮ処理エンジンの数は２ｎであり、ｎは整数（すなわち、０，１，２，３、．．．）である。図４Ｂに示すように、ＣＮＮ処理エンジン４２２ａ〜４２２ｈは、第一の入出力データバス４３０ａに動作可能に結合され、ＣＮＮ処理エンジン４３２ａ〜４３２ｈは、第二の入出力データバス４３０ｂに動作可能に結合される。各入力／出力データバス４３０ａ〜４３０ｂは、独立してデータ（すなわち、画像データおよびフィルタ係数）を送信するように構成されている。一実施形態では、第一のおよび第二のメモリバッファセットは、ランダムアクセスメモリ（ＲＡＭ）を含み、ランダムアクセスメモリは、例えば、磁気ランダムアクセスメモリ、静的ランダムアクセスメモリなどのうち一つまたは複数種類の組み合わせであってもよい。第一および第二のセットの各々は、論理的に定義される。換言すれば、第一および第二のセット各々の大きさは、画像データおよびフィルタ係数の各量に対応するように再構成することができる。
【００３６】
第一および第二のＩ／Ｏデータバス４３０ａ〜４３０ｂは、ここでは、ＣＮＮ処理エンジン４２２ａ〜４２２ｈ、４３２ａ〜４３２ｈを逐次スキームで接続するように示されている。別の実施形態では、少なくとも一つのＩ／Ｏデータバスは、パフォーマンスを改善するために並列データ入出力の同じ目的を達成するために、ＣＮＮ処理エンジンとは異なる接続スキームを有していてもよい。
【００３７】
図５Ａは、本発明の一実施形態に係る多層二次元シンボルを使用して書かれた自然言語の機械学習の例示的プロセス５００を示すフローチャートである。プロセス５００は、少なくとも一つのコンピュータシステムにインストールされたアプリケーションモジュールとして、ソフトウェアに実装することができる。プロセス５００はまた、ハードウェア（例えば、集積回路）に実装してもよい。図５Ｂは、本発明の一実施形態に係る、画像処理技術を有する多層二次元シンボルによる自然言語処理の例を示す概略図である。
【００３８】
プロセス５００は、そこにインストールされた少なくとも一つのアプリケーションモジュール５２２を有する第一のコンピューティングシステム５２０において自然言語の文字列５１０を受信することによって、アクション５０２を開始する。第一のコンピューティングシステム５２０は、自然言語の文字列５１０を多層二次元シンボル５３１ａ〜５３１ｃ（すなわち、多層のデータのＮ×Ｎピクセルの行列に含まれる画像）に変換することが可能な一般的なコンピュータであってもよい。
【００３９】
次に、動作５０４において、Ｍ×Ｍの表意文字５３２（例えば、図１の二次元シンボル１００）を含む多層二次元シンボル５３１ａ〜５３１ｃは、受信された文字列５１０から、第一のコンピューティングシステム５２０内の少なくとも一つのアプリケーションモジュール５２２によって形成される。Ｍは正の整数または整数である。各二次元シンボル５３１ａ〜５３１ｃは、「スーパーキャラクタ」を含むデータのＮ×Ｎピクセルの行列である。行列は、それぞれのＭ×Ｍの表意文字を表すＭ×Ｍ部分行列に分割される。「スーパーキャラクタ」は、多層二次元シンボル５３１ａ〜５３１ｃに含まれる複数の表意文字の特定の組み合わせから形成される意味を表す。ＭおよびＮは正の整数または整数であり、Ｎは好ましくはＭの倍数である。多層二次元シンボルを形成するさらなる詳細を、図６および対応する説明に示す。
【００４０】
最後に、動作５０６において、多層二次元シンボル５３１ａ〜５３１ｃに含まれる「スーパーキャラクタ」の意味が、第二のコンピューティングシステム５４０において画像処理技術５３８を用いて学習され、第一のコンピューティングシステム５２０において形成され、第二のコンピューティングシステム５４０に送信される、多層二次元シンボル５３１ａ〜５３１ｃを分類する。第二のコンピューティングシステム５４０は、多層二次元シンボル５３１ａ〜５３１ｃのような画像データの画像処理が可能である。
【００４１】
多層２−Ｄシンボル５３１ａ〜５３１ｃを送信することは、例えば有線または無線のネットワークを介して、多くの周知の方法で行うことができる。
【００４２】
一実施形態では、第一のコンピューティングシステム５２０および第二のコンピューティングシステム５４０は、同じコンピューティングシステム（図示せず）である。
【００４３】
さらに別の実施形態では、第一のコンピューティングシステム５２０は一般的なコンピューティングシステムであり、第二のコンピューティングシステム５４０は、図４Ａに示す半導体チップ上に集積回路として実装されたＣＮＮベースのコンピューティングシステム４００である。
【００４４】
画像処理技術５３８は、１セットのカテゴリ５４２（例えば、図５Ｂに示す「カテゴリ１」、「カテゴリ２」、…「カテゴリＸ」）を事前に定義することを含む。画像処理技術５３８を実行する結果として、カテゴリの各確率５４４が、予め定義されたカテゴリ５４２の各々を「スーパーキャラクタ」の意味に関連付けるために決定される。図５Ｂに示す例では、「カテゴリ２」について８８．０８パーセントの最も高い確率が示されている。言い換えれば、多層二次元シンボル５３１ａ〜５３１ｃは、「スーパーキャラクタ」を含み、その意味は、すべての所定のカテゴリ５４４のうち、「カテゴリ２」と８８．０８パーセントの確率で関連する。
【００４５】
別の実施形態では、予め定義されたカテゴリは、スマート電子デバイス（例えば、コンピューティングデバイス、スマートフォン、スマートアプライアンスなど）上の一連の命令を有効化することが可能なコマンドを含む。例えば、多層二次元シンボルは、１６個の表語音節漢字の文字列から形成される。したがって、多層２−Ｄシンボル内の「スーパーキャラクタ」は、三色（すなわち、赤、緑および青）の１６個の表意文字を含む。画像処理技術を２−Ｄシンボルの画像データに適用した後、画像データを予め定義されたコマンドセットで分類することによって、スマート電子デバイス用の一連のコマンドが得られる。この特定の例では、１６個の表語音節漢字の意味は、「オンライン地図を開いてファーストフード店への最短ルートを見つける」ことである。一連のコマンドは、以下の通りであってもよい。
１）「オンラインマップ」を開く
２）「最寄りのファーストフード」を検索
３）入力する
４）「Ｇｏ」をクリック
【００４６】
一実施形態では、画像処理技術５３８は、図７に示される畳み込みニューラルネットワークの例を含む。別の実施形態では、画像処理技術５３８は、表語音節文字（例えば、漢字）の特定のセットの画像に対する手動の特徴エンジニアリングのサポートベクトルマシン（ＳＶＭ）を含む。
【００４７】
図６Ａ〜６Ｃは、本発明の一実施形態に係る、自然言語の文字列から複数の表意文字を含む二次元（２−Ｄ）シンボルを形成するプロセス６００の例を示すフローチャートである。プロセス６００は、コンピュータシステムにインストールされたアプリケーションモジュールとしてソフトウェアに実装することができる。また、プロセス６００は、ハードウェア（例えば、集積回路）で実施することができる。
【００４８】
プロセス６００は、少なくとも一つのアプリケーションモジュールがインストールされたコンピューティングシステムが自然言語の文字列を受信することによって動作６０２を開始する。例示的なアプリケーションモジュールは、コンピューティングシステムがプロセス６００で説明した動作および決定を実行するための命令を含むソフトウェアである。自然言語の文字列は、表語音節文字、数字、特殊文字、ラテン文字に基づく西洋言語などを含むことができるが、必ずしもこれらに限定されない。自然言語の文字列は、例えば、キーボード、マウス、音声−テキストなどの様々な周知の方法を介してコンピューティングシステムに入力することができる。
【００４９】
次に、動作６０４において、受信された自然言語の文字列のサイズが決定される。次いで、決定６１０において、サイズがＭ×Ｍ（すなわち、二次元シンボル内の表意文字の最大数）より大きいかどうかが判定される。一実施形態では、Ｍは４であり、したがってＭ×Ｍは１６である。別の実施形態では、Ｍは８であり、Ｍ×Ｍは６４である。
【００５０】
決定６１０が真である場合、受信された文字列は大きすぎて２−Ｄシンボルに適合することができず、以下で説明する少なくとも一つの言語テキスト縮小スキームに従ってまず縮小されなければならない。
【００５１】
プロセス６００は、「ｙｅｓ」の分岐に入り、動作６１１に進む。プロセス６００は、少なくとも一つの関連する文法ベースのルールに従って、文字列中の重要でないテキストを識別することを試みる。関連する文法に基づくルールは、受信した自然言語の文字列に関連付けられる。例えば、自然言語が中国語である場合、関連する文法は中国語文法である。次に、決定６１２において、重要でないテキストが識別されたか否かが判定される。「ｙｅｓ」の場合、動作６１３で、識別された重要でないテキストが文字列から削除され、したがって文字列のサイズが１だけ縮小される。決定６１４において、文字列のサイズがＭ×Ｍに等しいかどうか文字列のサイズが決定される。そうでない場合、プロセス６００は戻って、動作６１１、決定６１２、動作６１３および判定６１４のループを繰り返す。決定６１４が真である場合、プロセス６００は、現在の状態の文字列を変換することによって（すなわち、一つまたは複数の重要でない文字列が削除されてもよい）、多層２−Ｄシンボルを形成する動作６１８を実行した後に終了する。
【００５２】
前述のループ６１１〜６１４の間に、受信した文字列中に重要でない文字列がなくなると、決定６１２は「ｎｏ」になる。プロセス６００は、動作６１６に移動して、切り捨てまたは任意の選択であり得るランダム化されたテキスト縮小スキームを介して、文字列のサイズをＭ×Ｍにさらに縮小する。動作６１８では、現在の状態の文字列を変換することによって、多層２−Ｄシンボルが形成される。その後、プロセス６００は終了する。
【００５３】
ランダム化されたテキスト縮小スキームおよび重要でないテキストを削除する前述のスキームは、少なくとも一つの言語テキスト縮小スキームと呼ばれる。
【００５４】
決定６１０を再び参照すると、それが偽である場合、プロセス６００は、「ｎｏ」分岐に入り、決定６２０に進む。受信した文字列のサイズがＭ×Ｍに等しい場合、決定６２０は真である。プロセス６００は、動作６２２に移動し、ここで受信された文字列を変換することによって多層２−Ｄシンボルが形成される。その後、プロセス６００は終了する。
【００５５】
決定６２０が偽である場合（すなわち、受信された文字列のサイズがＭ×Ｍ未満である場合）、プロセス６００は別の決定６３０に進み、ここで２−Ｄシンボルのパディング操作が望ましいかどうかが判定される。「ｙｅｓ」の場合、動作６３２で、少なくとも一つの言語テキスト増加スキームに従って、文字列のサイズをＭ×Ｍに増加させるために、文字列に少なくとも一つのテキストが埋め込まれる。言い換えれば、文字列のサイズがＭ×Ｍに等しくなるように、少なくとも一つのテキストが文字列に追加される。一実施形態では、言語テキスト増加スキームは、最初に受信した文字列から一つ以上のキーテキストを識別することを要求する。次に、一つまたは複数の識別されたキーテキストが、受信した文字列に繰り返し追加される。別の実施形態では、言語テキスト増加スキームは、受信文字列からの一つ以上のテキストが文字列に繰り返し付加されることを要求する。次に、文字の埋め込みがされた文字列（すなわち、受け取った文字列に少なくとも一つの追加のテキストを加えたもの）を変換することによって、多層２−Ｄシンボルを形成するために動作６２２が実行される。その後、プロセス６００は終了する。
【００５６】
決定６３０が偽である場合、処理６００は、動作６３４を実行した後に終了する。受信したＭ×Ｍ未満のサイズの文字列を変換することによって、多層２−Ｄシンボルが形成される。結果として、２−Ｄシンボルは少なくとも一つの空白を含む。一実施形態では、多層二次元シンボル５３１ａ〜５３１ｃは、赤、緑および青の色調の３つの層を含む。二次元シンボルの各層の各ピクセルはＫビットを含む。一実施形態では、真の色をサポートするためにＫ＝８であり、これは赤、緑および青の２５６色調を含む。別の実施形態では、赤、緑および青の３２色調を有する縮小カラーマップについてＫ＝５である。
【００５７】
図７は、本発明の一実施形態に係る畳み込みニューラルネットワークに基づく例示的な画像処理技術を示す概略図である。
【００５８】
畳み込みニューラルネットワークに基づいて、入力画像データとしての多層二次元シンボル７１１ａ〜７１１ｃは、第一のフィルタセットまたは重み７２０を使用して畳み込みを用いて処理される。２−Ｄシンボル７１１ａ〜７１１ｃの画像データはフィルタ７２０よりも大きいので、画像データの各対応するオーバーラップしたサブ領域７１５が処理される。畳み込み結果が得られた後、第一プーリング演算７３０前に有効化が行われてもよい。一実施形態では、正規化線形関数（ＲｅＬＵ）で行われる修正によって有効化を達成する。第一のプーリング演算７３０の結果として、画像データは、画像データ７３１ａ〜７３１ｃの縮小されたセットに縮小される。２ｘ２プーリングの場合、画像データの縮小されたセットは、以前のセットから１／４倍に縮小される。
【００５９】
先の畳み込みからプールへの手順が繰り返される。画像データ７３１ａ〜７３１ｃの縮小されたセットは、第二のフィルタセット７４０を使用して畳み込みで処理される。同様に、各重複サブ領域７３５が処理される。第二のプーリング演算７４０前に別の有効化を行うことができる。畳み込み―プーリング手順は、いくつかの層について繰り返され、最後に、完全接続（ＦＣ）層７６０に接続される。画像分類では、予め定義されたカテゴリ５４２のそれぞれの確率５４４をＦＣ層７６０において計算することができる。
【００６０】
この反復畳み込み―プーリング処理は、既知のデータセットまたはデータベースを用いて訓練される。画像分類の場合、データセットには予め定義されたカテゴリが含まれる。フィルタの種類、フィルタの数、フィルタの順序、プーリングの種類、および／またはアクティブ化をいつ実行するかの特定の組み合わせのような、フィルタ、アクティベーションおよびプーリングの特定のセットを、画像データの分類への使用前に調整および獲得することができる。一実施形態では、画像データは、自然言語テキストの文字列からのフォームである多層二次元シンボル７１１ａ〜７１１ｃである。
【００６１】
一実施形態では、畳み込みニューラルネットワークは、視覚幾何学グループ（ＶＧＧ１６）アーキテクチャのニューラルネットに基づいている。
【００６２】
ＣＮＮベースの集積回路のＣＮＮ処理エンジン８０２のさらなる詳細を、図８に示す。ＣＮＮ処理ブロック８０４は、（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域の画像データおよび各メモリバッファからの対応するフィルタ係数を用いて、Ｚ×Ｚピクセル位置において３×３畳み込みを実行することによって、Ｚ×Ｚ畳み込み演算結果を同時に取得するデジタル回路を含む。（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域は、Ｚピクセル×Ｚピクセル中央部と中央部を取り囲む１ピクセル境界とにより、Ｚ×Ｚピクセル位置で形成される。Ｚは、正の整数である。一実施形態では、Ｚは１４に等しく、したがって（Ｚ＋２）は１６に等しく、Ｚ×Ｚは１４×１４＝１９６に等しく、Ｚ／２は７に等しい。
【００６３】
図９は、ＣＮＮ処理エンジン８０２で使用されるＺ×Ｚピクセル位置９２０の中央部分を有する（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域９１０を表す図を示した図である。
【００６４】
より高速な計算を達成するために、ＣＮＮ処理ブロック８０４において、計算性能改善技術が使用され実装される。一実施形態では、画像データの表現は、実用的なビット数（例えば、５ビット表現）を使用する。別の実施形態では、各フィルタ係数は、基数点を有する整数として表される。同様に、フィルタ係数を表す整数は、実用的なビット数（例えば、１２ビット表現）を使用する。その結果、固定小数点演算を使用して３ｘ３畳み込みを実行し、より高速な計算を行うことができる。
【００６５】
各３×３畳み込みは、以下の式に基づいて一つの畳み込み演算結果Ｏｕｔ（ｍ、ｎ）を生成する。
2019053723.tif 000004
ここで、
ｍ，ｎは、（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域内のどの画像データ（ピクセル）で畳み込みが行われるかを識別するための、対応する行番号および列番号である。
Ｉｎ（ｍ，ｎ，ｉ，ｊ）は、領域内のピクセル位置（ｍ，ｎ）を中心とする３ピクセル×３ピクセル領域である。
Ｃ（ｉ，ｊ）は、９個の重み係数Ｃ（３×３）のうちの一つを表し、それぞれが３ピクセル×３ピクセル領域の一つに対応する。
ｂは、オフセットまたはバイアス係数を表す。
ｉ，ｊは、重み係数Ｃ（ｉ、ｊ）の指数である。
【００６６】
各ＣＮＮ処理ブロック８０４は、Ｚ×Ｚ畳み込み演算結果を同時に生成し、すべてのＣＮＮ処理エンジンは、同時演算を実行する。一実施形態では、３×３の重み係数またはフィルタ係数はそれぞれ１２ビットであり、オフセットまたはバイアス係数は１６ビットまたは１８ビットである。
【００６７】
図１０Ａ〜図１０Ｃは、Ｚ×Ｚピクセル位置の３つの異なる例を示す。図１０Ａに示す第一のピクセル位置１０３１は、左上隅の（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域内の３ピクセル×３ピクセル領域の中央にある。図１０Ｂに示す第二のピクセル位置１０３２は、第一のピクセル位置１０３１の右側への１ピクセルデータシフトである。図１０Ｃに示す第三のピクセル位置１０３３は、ピクセル位置の代表例である。Ｚ×Ｚピクセル位置は、（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域内の複数の重なり合う３ピクセル×３ピクセル領域を含む。
【００６８】
各サンプリング位置で３×３の畳み込みを実行するために、例示的なデータ構成を図１１に示す。画像データ（すなわち、Ｉｎ（３ｘ３））およびフィルタ係数（すなわち、重み係数Ｃ（３ｘ３）およびオフセット係数ｂ）が一例のＣＮＮ３ｘ３回路１１００に供給される。式（１）による３×３畳み込み演算後、一つの出力結果（すなわち、Ｏｕｔ（１×１））が生成される。各サンプリング位置において、画像データＩｎ（３×３）は、８つの直近の隣接ピクセル１１０１〜１１０４，１１０６〜１１０９を有するピクセル座標（ｍ、ｎ）１１０５の中心に位置する。
【００６９】
画像データは第一のメモリバッファセット８０６に記憶され、フィルタ係数は第二のメモリバッファセット８０８に記憶される。画像データおよびフィルタ係数は双方とも、デジタル集積回路の各クロックでＣＮＮブロック８０４に供給される。フィルタ係数（すなわち、Ｃ（３ｘ３）およびｂ）は、第二のメモリバッファセット８０８から直接ＣＮＮ処理ブロック８０４に供給される。しかしながら、画像データは、第一のメモリバッファセット８０６からマルチプレクサＭＵＸ８０５を介してＣＮＮ処理ブロック８０４に供給される。マルチプレクサ８０５は、クロック信号（例えば、パルス８１２）に基づいて、第一のメモリバッファセットから画像データを選択する。
【００７０】
それ以外の場合、マルチプレクサＭＵＸ８０５は、クロックスキュー回路８２０を介して第一の隣接ＣＮＮ処理エンジンから（図示されない図８の左側から）画像データを選択する。
【００７１】
同時に、ＣＮＮ処理ブロック８０４に供給された画像データのコピーは、クロックスキュー回路８２０を介して第二の隣接ＣＮＮ処理エンジンに（図示されない図８の右側に）送られる。クロックスキュー回路８２０は、既知の技術（例えば、Ｄフリップフロップ８２２）によって達成することができる。
【００７２】
画像データの各グループについての３×３畳み込みが所定の数のフィルタ係数に対して実行された後、畳み込み演算結果Ｏｕｔ（ｍ、ｎ）は、別のクロック信号（例えば、パルス８１１）に基づいて別の多重ＭＵＸ８０７を介して第一のメモリバッファセットに送られる。例示的なクロックサイクル８１０が、パルス８１１とパルス８１２との時間関係を示すために描かれている。示されているように、パルス８１１がパルス８１２の１クロック前であるので、画像データの特定のブロックがクロックスキュー回路８２０を介してすべてのＣＮＮ処理エンジンによって処理された後、３ｘ３畳み込み演算結果が第一のメモリバッファセットに格納される。
【００７３】
式（１）から畳み込み演算結果Ｏｕｔ（ｍ、ｎ）を求めた後、有効化処理が行われてもよい。畳み込み演算結果Ｏｕｔ（ｍ、ｎ）のうち０より小さい（すなわち、負の値）ものは、ゼロに設定される。つまり、出力結果の正の値のみが保持される。たとえば、正の出力値１０．５は１０．５を保持し、−２．３は０になる。有効化は、ＣＮＮベースの集積回路において非線形性を引き起こす。
【００７４】
２×２プーリング演算が必要な場合、Ｚ×Ｚ出力結果は（Ｚ／２）×（Ｚ／２）に減少する。（Ｚ／２）ｘ（Ｚ／２）出力結果を第一のメモリバッファセット内の対応する位置に格納するためには、一つのＣＮＮ処理エンジンで４つの（Ｚ／２）×（Ｚ／２）の出力結果を処理できるような、適切なメモリアドレスを追跡するための追加のブックキーピング技術が必要である。
【００７５】
２ｘ２プーリング演算の実演のため、図１２Ａでは、２ピクセル×２ピクセルブロックの第一の出力結果を、４つの出力結果の最大値である単一の値１０．５に縮小した第一の出力の例を示す図である。図１２Ａに示す技術は、「最大プーリング」と呼ばれる。４つの出力結果の平均値４．６が図１２Ｂに示す単一の値として使用される場合、これを「平均プーリング」と呼ぶ。「最大プーリング」と「平均プーリング」の組み合わせである「混合最大平均プーリング」など、その他のプーリング演算が存在する。プーリング演算の主な目的は、処理される画像データのサイズを縮小することである。図１３は、２×２プーリング演算によるＺ×Ｚピクセル位置を、元のサイズの１／４である（Ｚ／２）×（Ｚ／２）位置に縮小した図である。
【００７６】
入力画像は、一般に大量の画像データを含む。画像処理操作を実行するために、一例の入力画像１４００（例えば、図１の二次元シンボル１００）を、図１４Ａに示すようなＺピクセル×Ｚピクセルのブロック１４１１〜１４１２に分割する。これらのＺピクセル×Ｚピクセルのブロックのそれぞれに関連する画像データは、それぞれのＣＮＮ処理エンジンに送られる。特定のＺピクセル×Ｚピクセルのブロック内のＺ×Ｚピクセル位置のそれぞれにおいて、対応するＣＮＮ処理ブロックにおいて３×３畳み込みが同時に実行される。
【００７７】
本発明は、入力画像の特定の特性寸法を必要としないが、入力画像は、ある画像処理手順のための予め定義された特性寸法に適合するようにサイズの変更をする必要があるかもしれない。ある実施形態では、（２Ｌ×Ｚ）ピクセル×（２Ｌ×Ｚ）ピクセルを有する正方形の形状が必要とされる。Ｌは、正の整数（例えば、１，２，３，４など）である。Ｚが１４でＬが４の場合、特性寸法は２２４である。別の実施形態では、入力画像は、（２Ｉ×Ｚ）ピクセルおよび（２Ｊ×Ｚ）ピクセルの寸法を有する長方形であり、ＩおよびＪは正の整数である。
【００７８】
Ｚピクセル×Ｚピクセルのブロックの境界付近のピクセル位置で３×３畳み込みを適切に実行するために、隣接するブロックからの追加の画像データが必要である。図１４Ｂは、（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセルの領域１４３０内の代表的なＺピクセル×Ｚピクセルブロック１４２０（点線で囲んだ部分）を示す。（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセル領域は、現在のブロックからのＺピクセル×Ｚピクセルの中央部分によって形成され、４つの辺（例えば、上、右、下、左）と４つの角（例えば、左上、右上、右下、左下）は、対応する隣接ブロックから形成される。
【００７９】
図１４Ｃは、２つの例示的なＺピクセル×Ｚピクセルのブロック１４２２〜１４２４と、各関連付けられた（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセルの領域１４３２〜１４３４を示す。これらの２つのブロックの例１４２２〜１４２４は、入力画像の周囲に沿って配置されている。第一のＺピクセル×Ｚピクセルのブロック１４２２の例は、左上角に配置されているので、第一のブロック１４２２の例は、２つの縁および１つの角と隣接する。値「０」が、画像データを形成するために関連付けられた（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセルの領域１４３２内の２つの縁および隣接しない３つの角（斜線領域として示す）に使用される。同様に、一例の第二のブロック１４２４の関連付けられた（Ｚ＋２）ピクセル×（Ｚ＋２）ピクセルの領域１４３４は、上縁および２つの上方角に「０」を使用する必要がある。入力画像の周囲に沿った他のブロックも同様に扱われる。言い換えれば、入力画像の各ピクセルで３×３畳み込みを行う目的で、ゼロの層（「０」）が入力画像の外周の外側に追加される。これは、多くの周知の技術によって達成することができる。例えば、第一のメモリバッファセットのデフォルト値をゼロに設定する。隣接するブロックから画像データが入力されない場合、それらの縁および角にはゼロが含まれる。
【００８０】
複数のＣＮＮ処理エンジンが集積回路上に構成されている場合、ＣＮＮ処理エンジンは、クロックスキュー回路を介して第一および第二の隣接ＣＮＮ処理エンジンに接続される。説明を簡単にするために、画像データ用のＣＮＮ処理ブロックおよびメモリバッファのみが示されている。例示的なＣＮＮ処理エンジンのグループのための例示的なクロックスキュー回路１５４０が図１５に示されている。
【００８１】
第二のクロックスキュー回路１５４０を介して接続されたＣＮＮ処理エンジンは、ループを形成する。言い換えれば、各ＣＮＮ処理エンジンは、それ自体の画像データを第一のネイバーに送信し、同時に、第二のネイバーの画像データを受信する。クロックスキュー回路１５４０は、周知の方法で実現することができる。例えば、各ＣＮＮ処理エンジンはＤフリップフロップ１５４２に接続される。
【００８２】
次に参照する図１６は、セルラニューラルネットワークまたはセルラ非線形ネットワーク（ＣＮＮ）ベースの集積回路を使用する自然言語処理の例示的なプロセス１６００を示すフローチャートである。
【００８３】
プロセス１６００は、コンピュータシステム（例えば、複数のプロセッシングユニットを有するコンピュータ）が、書かれた自然言語の文字列を受信することによって、動作１６０２を開始する。動作１６０４において、２−Ｄシンボル生成ルールのセットに従って、受信した文字列から多層二次元（２−Ｄ）シンボルが形成される。２−Ｄシンボルは、２−Ｄシンボルに含まれる複数の表意文字の特定の組み合わせから形成される意味を表す「スーパーキャラクタ」を含む。
【００８４】
例示的な多層２−Ｄシンボル１００の詳細を、図１および図２Ａ〜図２Ｂに記載し、示す。ＣＮＮに基づく集積回路（例えば、図４Ａ−４Ｂに示す例示的なＣＮＮベースの集積回路４００）を収容するために、Ｎ×Ｎピクセルの各々は、Ｋビットのデータを含み、Ｋは正の整数または整数である。一実施形態では、Ｋは５である。
【００８５】
図１８は、画像データ（例えば、２−Ｄシンボル）を１ピクセル当たり８ビット［０−２５５］から５ビット［０−３１］に変換するデータ変換スキームの例を示す図である。例えば、ビット０〜７は０になり、ビット８〜１５は１となる。
【００８６】
次に、動作１６０６において、ＣＮＮベースの集積回路内の２値３×３フィルタカーネルを有する学習させた畳み込みニューラルネットワークモデルを介して二次元シンボルを分類することによって、「スーパーキャラクタ」の意味が学習される。
【００８７】
訓練された畳み込みニューラルネットワークモデルは、図１７に示された例示的な操作セット１７００によって達成される。動作１７０２において、畳み込みニューラルネットワークモデルは、充分な数の多層２−Ｄシンボルを含むラベル付きデータセットの画像分類に基づいて畳み込みニューラルネットワークモデルに学習させることによって、最初に得られる。たとえば、カテゴリごとに少なくとも４０００個の２−Ｄシンボルがある。言い換えると、ラベル付けされたデータセット内の各２−Ｄシンボルは、分類されるべきカテゴリに関連付けられる。畳み込みニューラルネットワークモデルは、複数の順序付けられたフィルタグループを含む（例えば、各フィルタグループは、畳み込みニューラルネットワークモデルにおける畳み込み層に対応する）。複数の順序付けられたフィルタグループ内の各フィルタは、標準３×３フィルタカーネル（すなわち、浮動小数点数形式の９つの係数（例えば、図１８の標準３×３フィルタカーネル１８１０）を含む。９つの係数のそれぞれは、任意の負または正の実数（すなわち、分数を有する数）でよい。最初の畳み込みニューラルネットワークモデルは、限定されるものではないがＭｘｎｅｔ、ｃａｆｆｅ、ｔｅｎｓｏｒｆｌｏｗなどを含む、多くの異なるフレームワークから得ることができる。
【００８８】
次に、動作１７０４において、畳み込みニューラルネットワークモデルは、標準的な３ｘ３フィルタカーネル１８１０を、複数の順序付けられた、カーネル変換スキームのセットに基づくフィルタグループ内の現在処理されているフィルタグループの対応する２値３×３フィルタカーネル１８２０に変換することによって修正される。一実施形態では、対応する２値３×３フィルタカーネル１８２０内の９つの係数Ｃ（ｉ、ｊ）のそれぞれに、以下の式に示す標準的な３×３フィルタカーネル１８１０の対応する係数の符号を乗じた絶対係数値の平均に等しい値「Ａ」が割り当てられる。
2019053723.tif 000005
【００８９】
フィルタグループは、複数の順序付けられたフィルタグループで定義された順序で一度に一つずつ変換される。ある状況では、畳み込みニューラルネットワークモデルの学習がより効率的になるように、２つの連続するフィルタグループが任意に組み合わされる。
【００９０】
次に、動作１７０６において、修正された畳み込みニューラルネットワークモデルを、所望の収束基準が満たされるか達成されるまで再学習させる。予め定義された回数の再学習演算を完了することや、フィルタカーネル変換による精度損失を収束させること等を含む、多数の周知の収束基準が存在するが、これらに限定されない。一実施形態では、以前の再学習演算で既に変換されたものを含むすべてのフィルタグループを、微調整のために変更または修正することができる。別の実施形態では、既に変換されたフィルタグループは、現在処理されているフィルタグループの再学習演算中に据え置かれるか、または最修正されない。
【００９１】
プロセス１７００は決定１７０８に移行し、別の未変換フィルタグループがあるかどうかが判定される。「ｙｅｓ」の場合、プロセス１７００は戻り、すべてのフィルタグループが変換されるまでアクション１７０４〜１７０６を繰り返す。その後、決定１７０８は「ｎｏ」になる。動作１７１０で、ＣＮＮベースの集積回路で必要とされるデータ構造を収容するために、すべてのフィルタグループ内の２値３×３フィルタカーネルの係数が浮動小数点数フォーマットから固定小数点フォーマットに変換される。さらに、固定小数点数は、ＣＮＮベースの集積回路内の再構成可能回路として実装される。一実施形態では、係数は１２ビットの固定小数点数フォーマットを使用して実装される。
【００９２】
本発明は、その特定の実施形態を参照して説明されたが、これらの実施形態は単なる例示であり、本発明を限定するものではない。具体的に開示された例示的実施形態に対する様々な修正または変更が、当業者に示唆されるであろう。例えば、二次元シンボルは、２２４×２２４ピクセルの行列の特定の例を用いて説明され、示されているが、本発明の実質的に同様の目的を達成するために、他のサイズが使用されてもよい。さらに、２つの例示的な分割スキームを説明して示したが、本発明の実質的に同様の目的を達成するために、二次元シンボルを分割する他の適切な分割スキームを使用することもできる。さらに、少数の例示的な表意文字が示され説明されているが、本発明の実質的に同様の目的を達成するために他の表意文字が使用されてもよい。さらに、中国語、日本語、韓国語の表語音節文字が記述され、表意文字であると示されているが、例えばエジプトの象形文字、楔形文字など、他の表語音節文字を表すことができる。最後に、一つの種類の２値３×３フィルタカーネルが示され説明されたが、本発明の実質的に同様の目的を達成するために他の種類が使用されてもよい。要約すると、本発明の範囲は、本明細書に開示される特定の実施形態に限定されるべきではなく、当業者に容易に示唆される全ての改変が、本出願の精神および範囲、および添付の特許請求の範囲内に含まれるべきである。
【図１】
2019053723.tif 000006
【図２Ａ】
2019053723.tif 000007
【図２Ｂ】
2019053723.tif 000008
【図３Ａ】
2019053723.tif 000009
【図３Ｂ】
2019053723.tif 000010
【図３Ｃ】
2019053723.tif 000011
【図３Ｄ】
2019053723.tif 000012
【図３Ｅ】
2019053723.tif 000013
【図４Ａ】
2019053723.tif 000014
【図４Ｂ】
2019053723.tif 000015
【図５Ａ】
2019053723.tif 000016
【図５Ｂ】
2019053723.tif 000017
【図６Ａ】
2019053723.tif 000018
【図６Ｂ】
2019053723.tif 000019
【図６Ｃ】
2019053723.tif 000020
【図７】
2019053723.tif 000021
【図８】
2019053723.tif 000022
【図９】
2019053723.tif 000023
【図１０Ａ】
2019053723.tif 000024
【図１０Ｂ】
2019053723.tif 000025
【図１０Ｃ】
2019053723.tif 000026
【図１１】
2019053723.tif 000027
【図１２Ａ】
2019053723.tif 000028
【図１２Ｂ】
2019053723.tif 000029
【図１３】
2019053723.tif 000030
【図１４Ａ】
2019053723.tif 000031
【図１４Ｂ】
2019053723.tif 000032
【図１４Ｃ】
2019053723.tif 000033
【図１５】
2019053723.tif 000034
【図１６】
2019053723.tif 000035
【図１７】
2019053723.tif 000036
【図１８】
2019053723.tif 000037
【図１９】
2019053723.tif 000038
【外国語明細書】
2019053723000001.pdf