(57)【要約】      （修正有）【課題】２−Ｄシンボルを介した機械学習を容易にする方法を提供する。【解決手段】２−Ｄシンボルを介した機械学習を容易にする方法は、２−Ｄシンボル作成アプリケーションモジュールがインストールされた第一演算システムにおいて対象物の複数の特徴を受信する工程５０２と、シンボル作成ルールに基づいて、受信した特徴から多層２−Ｄシンボルを形成する工程５０４であって、２−ＤシンボルがＮ×Ｎ画素データ（Ｎは正の整数）の行列であり、行列が部分行列に分割され、各部分行列が対応する一つの特徴を備える工程と、第一演算システムで形成された２−Ｄシンボルを分類するために、２−Ｄシンボル内に含まれる複合特徴の意味を、第二演算システム内で画像処理技術を用いて学習する工程５０６を備える。シンボル作成ルールは、２−Ｄシンボル内の部分行列の重要性の順序、サイズ、及び位置を決定する。【選択図】図５Ａ
2020091831.tif 000002
【特許請求の範囲】
【請求項１】
二次元（２−Ｄ）シンボルを介した機械学習を容易にする方法であって、
２−Ｄシンボル作成アプリケーションモジュールがインストールされている第一演算システムにおいて対象物の複数の特徴を受信する工程と、
前記第一演算システム内の前記２−Ｄシンボル作成アプリケーションモジュールを用いて、シンボル作成ルールセットに基づいて前記複数の特徴から多層２−Ｄシンボルを形成する工程であって、前記２−Ｄシンボルは複数の部分行列に区分されるＮ×Ｎ画素行列（Ｎは正の整数）であって、各部分行列が前記特徴のうちの一つを含む、工程と、
前記第一演算システムで形成され、第二演算システムに送信された前記２−Ｄシンボルを分類するため、前記２−Ｄシンボル内に含まれる複合特徴の意味を前記第二演算システムで画像処理技術を用いて学習する工程と、
を備え、
前記シンボル作成ルールセットは、
機械学習技術の一つに基づいて、前記複数の特徴の重要性の順序を決定する工程と、
前記重要性の順序に応じて対応する特徴と各前記部分行列とを関連付ける工程と、
前記対応する特徴に応じて各前記部分行列のサイズを決定する工程と、
前記サイズと前記重要性の順序に応じて、各前記部分行列を前記２−Ｄシンボル内の特定の位置に配置する工程と、
を有する、
方法。
【請求項２】
前記複数の特徴は、数字グリフによって表される数値特徴を含む、
請求項１に記載の方法。
【請求項３】
前記複数の特徴は、特定の言語の単語又は略語によって表されるカテゴリ特徴を含む、
請求項１に記載の方法。
【請求項４】
各前記部分行列が正方形形状を有する、
請求項１に記載の方法。
【請求項５】
各前記部分行列が矩形形状を有する、
請求項１に記載の方法。
【請求項６】
前記複数の部分行列は、同じサイズの部分行列を含む、
請求項１に記載の方法。
【請求項７】
前記複数の部分行列は、複数のサイズの部分行列を含む、
請求項１に記載の方法。
【請求項８】
前記機械学習技術は、ロジスティック回帰を含む、
請求項１に記載の方法。
【請求項９】
前記機械学習技術は、サポートベクターマシンを含む、
請求項１に記載の方法。
【請求項１０】
前記機械学習技術は、勾配ブースティングマシンを含む、
請求項１に記載の方法。
【請求項１１】
二次元（２−Ｄ）シンボルを介した機械学習を容易にする方法であって、
２−Ｄシンボル作成アプリケーションモジュールがインストールされた第一演算システムにおいて、自然言語の文字列と前記文字に関連する複数の特徴を受信する工程と、
前記第一演算システム内の前記２−Ｄシンボル作成アプリケーションモジュールを用いて、シンボル作成ルールセットに基づいて前記自然言語の文字列と前記複数の特徴から多層２−Ｄシンボルを形成する工程であって、前記２−Ｄシンボルは、第一部分と第二部分とに分割されるＮ×Ｎ画素行列（Ｎは正の整数）であって、前記第一部分は前記自然言語の文字列を備えるよう構成され、前記第二部分は複数の部分行列に区分され、各部分行列は前記特徴のうちの一つを備える、工程と、
前記第一演算システムで形成され、第二演算システムに送信された前記２−Ｄシンボルを分類するために、前記２−Ｄシンボル内に含まれる前記自然言語の文字列と前記関連する特徴との意味を前記第二演算システム内で画像処理技術を用いて学習する工程と、
を備え、
前記シンボル作成ルールセットは、
機械学習技術の一つに基づいて、前記複数の特徴の重要性の順序を決定する工程と、
前記重要性の順序に応じて対応する特徴と各前記部分行列とを関連付ける工程と、
前記対応する特徴に応じて各前記部分行列のサイズを決定する工程と、
前記自然言語の文字列を前記２−Ｄシンボルの前記第一部分の特定の位置に配置する工程と、
前記サイズと前記重要性の順序に応じて、各前記部分行列を前記２−Ｄシンボル内の前記第二部分の特定の位置に配置する工程と、
を有する、
方法。
【請求項１２】
前記第一部分及び前記第二部分は、それぞれ、前記２−Ｄシンボルの半分を占める、
請求項１１に記載の方法。
【請求項１３】
前記第一部分は前記２−Ｄシンボルの外周部分を占め、前記第二部分は前記２−Ｄシンボルの中央部を占める、
請求項１２に記載の方法。
【請求項１４】
前記機械学習技術は、ロジスティック回帰、サポートベクターマシン、又は勾配ブースティングマシンを含む、
請求項１１に記載の方法。
【請求項１５】
前記意味は、前記文字についてのセンチメントを含む、
請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、機械学習の分野に関し、特に、二次元（２−Ｄ）シンボルを介した機械学習に関する。
【背景技術】
【０００２】
機械学習は、人工知能の応用である。機械学習においては、コンピュータ即ち演算装置は人間のように思考するようプログラムされ、コンピュータはそれ自体で学習するよう教える。ニューラルネットワークの発展は、人間が行うようにコンピュータが思考し世界を理解するよう教えるための鍵であった。
【０００３】
機械学習は、１９５０年代に始まって、これまでに多くの画期的な発見や業績がなされてきた。注目すべき発見や業績としては、ロジスティック回帰、サポートベクターマシン（ＳＶＭ）、勾配ブースティングマシン（ＧＢＭ）等が挙げられるがこれらに限定されない。その後２０１０年代に入ると深層学習の実現可能性が高まってきた。注目すべき実装の一つは、セルラーニューラルネットワーク又はセルラー非線形ネットワーク（ＣＮＮ）ベース演算装置と呼ばれる。ＣＮＮベース演算装置は、画像処理を含むがこれに限定されない多くの様々な分野や課題において使用されている。
【発明の概要】
【０００４】
本明細書のこの節は、本発明の幾つかの態様を要約し、幾つかの好適な実施形態を簡潔に紹介することを目的とする。この節や更には要約や発明の名称において、その目的が不明瞭にならないようにするために、単純化または省略が行われることがある。このような単純化または省略には、本発明の範囲を限定するという意図はない。
【０００５】
２−Ｄシンボルを介した機械学習を容易にする方法が開示される。本開示の一態様によれば、２−Ｄシンボル作成アプリケーションモジュールがインストールされた第一演算システムにおいてある対象物の複数の特徴が受信される。シンボル生成ルールセットに基づいて、受信した特徴から多層２−Ｄシンボルが形成される。２−Ｄシンボルは、Ｎ×Ｎ画素（Ｎは正の整数）の行列であって幾つかの部分行列に分割される。各部分行列は対応する一つの特徴を備える。２−Ｄシンボル内に含まれる複合特徴の意味が第二演算システムで画像処理技術を用いて学習され、第一演算システムから送信された２−Ｄシンボルが分類される。
【０００６】
本開示の一態様によれば、シンボル作成ルールセットには、以下の動作が含まれる。機械学習技術の一つに基づいて、複数の特徴の重要性の順序を決定する工程と、重要性の順序に応じて対応する特徴と各部分行列とを関連付ける工程と、対応する特徴に応じて各部分行列のサイズを決定する工程と、サイズと重要性の順序に応じて、各部分行列を２−Ｄシンボル内の特定の位置に配置する工程と、を備える。
【０００７】
本開示の更なる態様によれば、２−Ｄシンボル作成アプリケーションモジュールがインストールされた第一演算システムにおいて、自然言語の文字列と文字に関連する複数の特徴が受信される。シンボル生成ルールセットに基づいて、文字と特徴とから多層２−Ｄシンボルが形成される。２−Ｄシンボルは、第一部分と第二部分とに分割されたＮ×Ｎ画素データの行列である。第一部分は、文字を含むよう構成され、第二部分は、複数の部分行列に分割され、各部分行列は関連する特徴のうちの一つを含む。Ｎは、正の整数である。２−Ｄシンボル内に含まれる自然言語の文字列と関連する特徴との意味は、第二演算システムで画像処理技術を用いて学習され、第一演算システムから送られてきた２−Ｄシンボルが分類される。シンボル作成ルールは、２−Ｄシンボル内の部分行列の重要性の順序、サイズ、位置を決定する。
【０００８】
本発明の目的、特徴及び利点については、添付の図面を共に参照しながら、本発明の実施形態についての以下の詳細な説明によって明らかとなるであろう。
【図面の簡単な説明】
【０００９】
これらの及び他の本発明の特徴、態様、及び利点は、以下の説明、添付の請求項並びに次のような添付の図面によってより良く理解されるであろう。
【図１】本発明の一実施態様に係る、含まれる複合特徴（ｃｏｍｂｉｎｅｄ  ｆｅａｔｕｒｅｓ）の意味についての機械学習を容易にするための、Ｎ×Ｎ画素データ行列を含む二次元（２−Ｄ）シンボルの例を示す図である。
【図２Ａ】本発明の一実施形態に係る、図１の２−Ｄシンボルの例におけるある対象物の特徴を含む２つの例示的スキームを示す図である。
【図２Ｂ】本発明の一実施形態に係る、図１の２−Ｄシンボルの例におけるある対象物の特徴を含む２つの例示的スキームを示す図である。
【図２Ｃ】本発明の一実施形態に係る、ある対象物の特徴を含む２−Ｄシンボルの例を示す図である。
【図３Ａ】本発明の一実施形態に係る、図１の２−Ｄシンボルの自然言語の文字列と関連する特徴とを保存するための例示的スキームを示す図である。
【図３Ｂ】本発明の一実施形態に係る、図１の２−Ｄシンボルの自然言語の文字列と関連する特徴とを保存するための例示的スキームを示す図である。
【図４Ａ】本発明の一実施形態に係る、二次元シンボルに含まれる複合特徴の意味を機械学習するための、例示的なセルラーニューラルネットワーク又はセルラー非線形ネットワーク（ＣＮＮ）ベース演算システムの例を示すブロック図である。
【図４Ｂ】本発明の一実施形態に係る、畳み込ニューラルネットワークに基づいて画像処理を行うためのＣＮＮベース集積回路の例を示すブロック図である。
【図５Ａ】本発明の一実施形態に係る、２−Ｄシンボルを介した機械学習を容易にするプロセスの例を示すフローチャートである。
【図５Ｂ】本発明の一実施形態に係る、２−Ｄシンボルを介した機械学習を容易にするプロセスの例を示すフローチャートである。
【図５Ｃ】本発明の一実施形態に係る、２−Ｄシンボル作成ルールの例示的なプロセスを示すフローチャートである。
【図６】本発明の一実施形態に係る、画像処理技術を用いた多層二次元シンボルを介した自然言語処理の例を示す概略図である。
【図７】本発明の一実施形態に係る畳み込みニューラルネットワークに基づく例示的な画像処理技術を示す概略図である。
【図８】本発明の一実施形態に係る、ＣＮＮベース集積回路でのＣＮＮ処理エンジンの例を示す図である。
【図９】本発明の一実施形態に係る、図８の例示的なＣＮＮ処理エンジン内での画像データ領域の例を示す図である。
【図１０Ａ】本発明の一実施形態に係る、図９の例示的な画像データ領域内の画素位置の例を示す図である。
【図１０Ｂ】本発明の一実施形態に係る、図９の例示的な画像データ領域内の画素位置の例を示す図である。
【図１０Ｃ】本発明の一実施形態に係る、図９の例示的な画像データ領域内の画素位置の例を示す図である。
【図１１】本発明の一実施形態に係る、図８の例示的なＣＮＮ処理エンジンでのある画素位置で３×３畳み込みを行うためのデータ配列の例を示す図である。
【図１２Ａ】本発明の一実施形態に係る、２×２プーリング演算の例を示す図である。
【図１２Ｂ】本発明の一実施形態に係る、２×２プーリング演算の例を示す図である。
【図１３】本発明の一実施形態に係る、図８の例示的なＣＮＮ処理エンジンでの画像データの２×２プーリング演算を示す図である。
【図１４Ａ】本発明の一実施形態に係る、入力画像内の画像データ領域の幾つかの例を示す図である。
【図１４Ｂ】本発明の一実施形態に係る、入力画像内の画像データ領域の幾つかの例を示す図である。
【図１４Ｃ】本発明の一実施形態に係る、入力画像内の画像データ領域の幾つかの例を示す図である。
【図１５】本発明の一実施形態に係る、例示的なクロックスキュー回路を介してループ状に接続した複数のＣＮＮ処理エンジンを示す図である。
【発明を実施するための形態】
【００１０】
以下の記載では、本発明を詳しく理解するための細部にわたる詳細な説明を行っている。しかしながら、それらの細部を用いなくとも発明の実施が可能であることは当業者にとって明らかであろう。本明細書での記載及び表現は、当該技術で経験のある者即ち当業者が最も効果的にその作業の本質を他の当業者に伝えるために用いる通常の手段である。他の例では、本発明の態様を不必要に曖昧にすることを回避するために、周知の方法、手順及び部品類について詳細には説明しない。
【００１１】
本明細書における、「一実施形態」、「ある実施形態」という表現は、その実施形態に関連して記載した特定の特徴、構造又は特性が、本発明の少なくとも一つの実施形態において含まれ得ることを示している。本明細書において「一実施形態において」という表現が様々な箇所で使われているが、これは必ずしも同じ一つの実施形態を指すというわけではなく、必ずしも別々の実施形態の相互に排他的な、異なる即ち代替的な実施形態というわけでもない。本明細書で用いる用語「垂直」、「水平」、「対角線」、「左」、「右」、「上部」、「底部」、
「列」、「行」、及び「対角線上の」は、記載上の目的で相対的な位置を示すためのものであって、絶対的な座標系を示すことを意図するものではない。さらに、本明細書中で用いた用語「文字」および「スクリプト」は、互換的に使用される。
【００１２】
本発明の実施形態について、図１〜図１５を参照して以下に述べる。但し、これらの図面に関して以下に述べる詳細な記載が説明を目的とするものであり、本発明がこれらの限定された実施形態を超えた範囲に及ぶことを、当業者であれば容易に理解するであろう。
【００１３】
まず図１を参照すると、含まれる複合特徴の意味の機械学習を容易にするための二次元（２−Ｄ）シンボル１００の例を示す図が示されている。二次元シンボル１００は、Ｎ×Ｎ画素（すなわち、Ｎ列×Ｎ行）のデータの行列を含む。画素は、次のように最初に行、次に列の順序で並べられる：（１，１），（１，２），（１，３），．．．（１，Ｎ），（２，１），．．，（Ｎ，１），．．．（Ｎ，Ｎ）。例えば、Ｎは正の整数であって、一実施形態では２２４である。
【００１４】
図２Ａは、図１の２−Ｄシンボル１００の例において、ある対象物の特徴２１２を保存するための第一スキーム２１０を示す図である。第一の例示的なスキーム２１０では、各特徴２１２は同じサイズを有して均等に配置される。第二の例示的なスキーム２２０では、第一群の特徴２２２は大きく、第二群の特徴２２４は小さい。特徴の総数は正の数又は整数である。
【００１５】
第一の例示的なスキーム２１０では、全ての特徴２１２は同じ重要度を有する。第二の例示的なスキーム２２０では、第一群の特徴２２２が第二群の特徴２２４より重要である。特徴群の数やある特定の群における特徴の数には制限がない。即ち、図示しない他のスキームが想定される。
【００１６】
特徴には、数字及びカテゴリの二種類がある。特徴の一つの要件は、各サンプル対象物についての一意の（ユニークな）表現であることである。
【００１７】
数値特徴は、整数、分数を有する数等の様々な形式を取り得る。確実に一意の表現とするために、２−Ｄシンボルにおいて数値カテゴリを表すために幾つかの技術を使用可能である。一実施形態において、数値特徴は、対応する数字グリフ（例えば、図２Ｃの年齢）によって表される。別の実施形態において、数値特徴は、２−Ｄシンボルの各画素で、データで表現し得る色強度（例えば０から２５５の範囲）に量子化（クォンタイズ）される。更に別の実施形態において、数値特徴は、確実に特徴を一意の表現とするために、特定の数値レベルに量子化される。
【００１８】
カテゴリ特徴に関して確実に一意の表現とするために、更に幾つかの技術がある。一実施形態において、語の最初の文字が使用される（例えば、図２Ｃにおいてｍａｌｅ（男性）のｍ）。別の実施形態において、語全体が使用される（例えば、正方形のフォーマット内に配置したＵＳＡ）。別の実施形態において、略語が使用される。更に、特徴に未知数（ｕｎｋｎｏｗｎ）が含まれる場合（例えば、「回答拒否」、「該当なし、ＮＡ、Ｎ／Ａ」）、このような場合には特殊なシンボルが使用される。
【００１９】
図２Ｃに実用的な２−Ｄシンボル２３０の例を示す。５つの特徴が含まれており、年齢−３０、国籍−ＵＳＡ、婚姻状態−ｓｉｎｇｌｅ（独身，ｓ）、性別−ｍａｌｅ（男性，ｍ）、親であるかどうか−ｎｏ（いいえ，ｎ）が示される。年齢は数値特徴であるが、その他はカテゴリ特徴である。
【００２０】
対象物に自然言語の文字列が含まれる場合には、文字と関連する特徴の両方を保存するよう別々のスキームで２−Ｄシンボル１００が構成される。一実施形態において、２−Ｄシンボル１００は、文字部分と関連する特徴部分の２つの部分に分割される。２−Ｄシンボル１００を分割する多くのスキームがある。図３Ａ、図３Ｂに２つの例示的なスキームを示す。自然言語として、英語、フランス語、ドイツ語、スペイン語、イタリア語、中国語、日本語、韓国語等が含まれるが、これらに限定されない。自然言語の文字列は、フレーズ、文章、節、段落、記事（ａｒｔｉｃｌｅ）等であってよい。
【００２１】
図３Ａに示す第一の例示的なスキーム３１０において、２−Ｄシンボル１００は、第一部分３１１と第二部分３１２とに分割される。第一部分３１１は、自然言語の文字列を含むよう構成される。第二部分３１２は、この文字に関連する特徴３１３を含むよう構成される。関連する特徴３１３を保存するために多くのスキームがある。一実施形態において、図２Ａに示し説明したスキームと略同様に、関連する特徴３１３が同じサイズで第二の部分に均等に配置される。別の実施形態において、図２Ｂに示し説明したスキームと略同様に、関連する特徴３１３を重要性の異なる複数の群に分割する。
【００２２】
自然言語の文字列は、左から右、上から下等の様々な手法で第一部分３１１に含まれる。
【００２３】
図３Ｂに示す第二の例示的なスキーム３２０において、第二部分３２２が２−Ｄシンボル１００の中央にあって、第一部分３２１が２−Ｄシンボル１００の外周を囲んでいる。ここでも、第二部分３２２に保存する関連する特徴を、図２Ａ〜図２Ｂに示して説明したスキームと同様の様々なスキームで構成可能である。
【００２４】
別の実施形態において、第二部分３２２をキーワード、ヘッドライン、文字の最初の数語等をより目立たせる表現を含むように構成して、アテンションメカニズム（ａｔｔｅｎｔｉｏｎ  ｍｅｃｈａｎｉｓｍ）が実現される。より目立たせる表現とは、より大きなフォントや太字のフォントを含んでもよい。
【００２５】
ここで図４Ａを参照すると、二次元シンボルに含まれる複合特徴の意味を機械学習するよう構成された例示的なＣＮＮベース演算システム４００を示すブロック図が示されている。
【００２６】
ＣＮＮベース演算システム４００は、デジタル半導体チップ（例えば、単一半導体ウェハ内のシリコン基板）として集積回路上に実装されてもよく、制御装置４１０と、少なくとも一つの入力／出力（Ｉ／Ｏ）データバス４２０に動作可能に連結した複数のＣＮＮ処理ユニット４０２ａ〜４０２ｂと、を含む。制御装置４１０は、クロックスキュー回路（例えば図１５のクロックスキュー回路１５４０）でループ状に接続されたＣＮＮ処理ユニット４０２ａ〜４０２ｂの様々な動作を制御するように構成される。
【００２７】
一実施形態では、各ＣＮＮ処理ユニット４０２ａ〜４０２ｂは、画像データ、例えば、図１の二次元シンボル１００を処理するように構成される。
【００２８】
別の実施形態では、ＣＮＮベース演算システムは、拡張可能（ｅｘｔｅｎｄａｂｌｅ）かつスケーラブルであるデジタル集積回路である。例えば、デジタル集積回路の複数のコピーを、図４Ｂに示すように、単一の半導体チップ上に実装することができる。一実施形態において、単一の半導体チップは、単一の半導体ウェハ内に製造される。
【００２９】
ＣＮＮ処理エンジンは全て同じものである。説明を簡略化するために、図４Ｂには少数のＣＮＮ処理エンジンのみ（即ち、ＣＮＮ処理エンジン４２２ａ−４２２ｈ、４３２ａ−４３２ｈ）を示している。本発明において、デジタル半導体チップ上のＣＮＮ処理エンジンの数に制限はない。
【００３０】
各ＣＮＮ処理エンジン４２２ａ−４２２ｈ、４３２ａ−４３２ｈは、ＣＮＮ処理ブロック４２４と、第一メモリバッファセット４２６と、第二メモリバッファセット４２８とを備える。第一メモリバッファセット４２６は、画像データを受け取って、受取済みの画像データをＣＮＮ処理ブロック４２４に供給するよう構成される。第二メモリバッファセット４２８は、フィルタ係数を保存して、受取済みのフィルタ係数をＣＮＮ処理ブロック４２４に供給するよう構成される。一般に、一つのチップ上のＣＮＮ処理エンジンの数は、２ｎである（ｎは整数（即ち、０、１、２、３，．．．））。図４Ｂに示すように、ＣＮＮ処理エンジン４２２ａ〜４２２ｈは、第一入力／出力データバス４３０ａに動作可能に連結されており、一方、ＣＮＮ処理エンジン４３２ａ〜４３２ｈは、第二入力／出力データバス４３０ｂに動作可能に連結されている。各入力／出力データバス４３０ａ〜４３０ｂは、独立してデータ（即ち、画像データとフィルタ係数と）を送信するよう構成する。一実施形態では、第一及び第二のメモリバッファセットは、ランダムアクセスメモリ（ＲＡＭ）を含む。ランダムアクセスメモリは、例えば、磁気ランダムアクセスメモリ、静的ランダムアクセスメモリなどのうち一つまたは複数種類の組み合わせであってもよい。第一および第二のセットの各々は、論理的に定義される。換言すれば、第一および第二のセット各々のサイズは、画像データおよびフィルタ係数の各量を収容するように再構成することができる。
【００３１】
ここで示した第一及び第二Ｉ／Ｏデータバス４３０ａ〜４３０ｂは、ＣＮＮ処理エンジン４２２ａ〜４２２ｈ、４３２ａ〜４３２ｈを逐次スキーム（ｓｅｑｕｅｎｔｉａｌ  ｓｃｈｅｍｅ）で接続されている。別の実施形態では、性能向上のためにデータを並列入力及び出力するという同じ目的を達成するために、少なくとも一つのＩ／Ｏデータバスは、ＣＮＮ処理エンジンに対する他の接続スキームを有してもよい。
【００３２】
図５Ａは、２−Ｄシンボルを介した機械学習を容易にする第一の例示的なプロセス５００を示すフローチャートである。プロセス５００は、動作５０２で始まり、２−Ｄシンボル作成アプリケーションモジュールがインストールされた第一演算システムにおいてある対象物の複数の特徴を受信する。
【００３３】
次に、動作５０４において、シンボル生成ルールセットに基づき、２−Ｄシンボル作成アプリケーションモジュールを用いて、受信した特徴から多層２−Ｄシンボルが形成される。２−Ｄシンボルは、Ｎ×Ｎ画素データの行列であって、部分行列に分割される。各部分行列は対応する一つの特徴を備える。
【００３４】
次に、動作５０６において、２−Ｄシンボルを分類するために画像処理技術を用いて第二演算システム（例えば、ＣＮＮベース演算システム４００）において複合特徴の意味が学習される。
【００３５】
図５Ｂは、２−Ｄシンボルを介した機械学習を容易にする第二の例示的なプロセス５１０を示すフローチャートである。プロセス５１０は、動作５１２で始まり、２−Ｄシンボル作成アプリケーションモジュールがインストールされた第一演算システムにおいて、自然言語の文字列とその文字に関連する特徴とを受信する。
【００３６】
次に、動作５１４において、２−Ｄシンボル作成アプリケーションモジュールを用いて、自然言語の文字列と関連する特徴から多層２−Ｄシンボルが形成される。シンボルは、Ｎ×Ｎ画素データの行列であって、行列は第一部分と第二部分とに分割される。第一部分は、自然言語の文字列を含むよう構成され、第二部分は、更に複数の部分行列に分割され、各部分行列が関連する特徴のうちの一つを含む。
【００３７】
次に、動作５１６において、２−Ｄシンボルを分類するため、画像処理技術を用いて、第二演算システム（例えば、ＣＮＮベース演算システム４００）において、２−Ｄシンボルに含まれる自然言語の文字列と関連する特徴との意味が学習される。
【００３８】
図５Ｃは、２−Ｄシンボル作成ルールの例示的なプロセス５５０を示すフローチャートである。プロセス５５０は動作５５２で始まり、機械学習技術の一つに基づいて、複数の特徴の重要性の順序を決定する。機械学習技術としては、ロジスティック回帰、サポートベクターマシン（ＳＶＭ）、勾配ブースティングマシン（ＧＢＭ）等が含まれるが、これらに限定されない。
【００３９】
次に、動作５５４において、重要性の順序に応じて対応する特徴と部分行列とが関連付けられる。次に、動作５５６において、対応する特徴に応じて、各部分行列のサイズが決定される。一実施形態において、部分行列のサイズは、正方形形状に基づく。別の実施形態において、部分行列のサイズは、矩形形状に基づく。
【００４０】
次に、動作５５８において、サイズと重要性の順序に応じて、各部分行列が２−Ｄシンボル内の特定の位置に配置される。
【００４１】
図６は、画像処理技術を用いて多層二次元シンボルを介した自然言語処理を行う例を示す概略図である。
【００４２】
ある対象物の特徴即ち自然言語の文字列とそれに関連する特徴が、第一の演算システム６２０にインストールされた２−Ｄシンボル作成アプリケーションモジュール６２２への入力６１０である。多層二次元シンボル６３１ａ〜６３１ｃが入力６１０から形成される。二次元シンボル６３１ａ〜６３１ｃは、それぞれ、Ｎ×Ｎ画素データの行列（例えば、３つの異なる色、赤、緑、青）である。
【００４３】
第一の演算システム６２０において形成され第二の演算システム６４０に送信される多層二次元シンボル６３１ａ〜６３１ｃを分類するために、多層二次元シンボル６３１ａ〜６３１ｃに含まれる複合特徴の意味が、第二の演算システム６４０において画像処理技術６３８を用いて学習される。
【００４４】
多層２−Ｄシンボル６３１ａ〜６３１ｃの送信は、例えば有線または無線のネットワークを介して、多くの周知の方法で行うことができる。
【００４５】
一実施形態では、第一の演算システム６２０および第二の演算システム６４０は、（図示しない）同じ演算システムである。
【００４６】
さらに別の実施形態では、第一の演算システム６２０は汎用演算システムであって、一方第二の演算システム６４０は、図４Ａに示す半導体チップ上に集積回路として実装されたＣＮＮベース演算システム４００である。
【００４７】
画像処理技術６３８は、カテゴリ６４２の集合（例えば、図６に示す「カテゴリ１」、「カテゴリ２」、…「カテゴリＸ」）の事前定義を含む。画像処理技術６３８を実行すると、予め定義したカテゴリ６４２の各々をスーパーキャラクタの意味に関連付ける際のカテゴリの各確率６４４が決定される。図６に示す例では、「カテゴリ２」について８８．０８パーセントの最も高い確率が示されている。言い換えれば、多層二次元シンボル６３１ａ〜６３１ｃは、すべての事前定義カテゴリ６４２の中で「カテゴリ２」と８８．０８パーセントの確率で関連する意味を有するスーパーキャラクタを含んでいる。一実施形態では、画像処理技術６３８は、図７に示される例示的な畳み込みニューラルネットワークを含む。
【００４８】
図７は、本発明の一実施形態に係る畳み込みニューラルネットワークに基づく例示的な画像処理技術を示す概略図である。
【００４９】
畳み込みニューラルネットワークに基づいて、第一のフィルタ又は重み７２０のセットを用いる畳み込みにより、入力画像データである多層二次元シンボル７１１ａ〜７１１ｃが処理される。２−Ｄシンボル７１１ａ〜７１１ｃの画像データは、フィルタ７２０より大きいので、画像データの対応する重複サブ領域７１５がそれぞれ処理される。畳み込み結果が得られた後、第一プーリング演算７３０の前にアクティベーション（ａｃｔｉｖａｔｉｏｎ）を行ってもよい。一実施形態において、アクティベーションは、正規化線形ユニット（ｒｅｃｔｉｆｉｅｄ  ｌｉｎｅａｒ  ｕｎｉｔ  （ＲｅＬＵ））で実行されるレクティフィケーションで実現される。第一プーリング演算７３０の結果、画像データが縮小され、縮小画像データ７３１ａ〜７３１ｃのセットとなる。２×２プーリングの場合、縮小画像データセットは、縮小前のセットの４分の１になる。
【００５０】
先の畳み込み−プーリング手続きが繰り返される。縮小画像データ７３１ａ〜７３１ｃのセットは、次に、第二フィルタセット７４０を用いて畳み込みにより処理される。同様に、重複サブ領域７３５がそれぞれ処理される。第二プーリング演算７４０の前に別のアクティベーションを行うことができる。幾つかの層について畳み込み−プーリング手続きが繰り返され、最終的に全結合（ＦＣ）層７６０に接続される。画像分類の際、事前定義カテゴリ５４２の各確率５４４をＦＣ層７６０にて演算することができる。
【００５１】
このように繰り返した畳み込み−プーリング手続きは、既知のデータセット又はデータベースを用いて訓練（ｔｒａｉｎ）される。画像分類に関して、データセットには事前定義カテゴリが含まれる。画像データを分類するために使用する前に、フィルタ、アクティベーション、及びプーリングの特定のセット、例えば、特定のフィルタ種類の組み合わせ、フィルタの数、フィルタの順序、プーリングの種類、及び／又はいつアクティベーションを行うか等を調整し取得しておくことが可能である。一実施形態では、画像データは、ラテンアルファベットを用いた言語文字列のフォームである多層二次元シンボル７１１ａ〜７１１ｃである。
【００５２】
一実施形態において、畳み込みニューラルネットワークは、ビジュアルジオメトリーグループ（Ｖｉｓｕａｌ  Ｇｅｏｍｅｔｒｙ  Ｇｒｏｕｐ）（ＶＧＧ１６）アーキテクチャニューラルネットに基づく。
【００５３】
ＣＮＮベースの集積回路内のＣＮＮ処理エンジン８０２の更なる詳細について図８に示す。ＣＮＮ処理ブロック８０４は、各メモリバッファからの（Ｚ＋２）−画素×（Ｚ＋２）−画素領域の画像データと対応するフィルタ係数とを用いてＺ×Ｚ画素位置で３×３畳み込みを行うことによって、Ｚ×Ｚ畳み込み演算結果を同時に得るデジタル回路を備える。この（Ｚ＋２）−画素×（Ｚ＋２）−画素領域は、Ｚ−画素×Ｚ−画素の中央部分であるＺｘＺ画素位置と、この中央部分を囲む一画素境界部とで形成される。Ｚは正の整数である。一実施形態において、Ｚは１４であり、従って（Ｚ＋２）は１６であり、ＺｘＺは１４ｘ１４＝１９６であり、Ｚ／２は７である。
【００５４】
図９は、ＣＮＮ処理エンジン８０２で使用する、ＺｘＺ画素位置の中央部分９２０を備える（Ｚ＋２）−画素×（Ｚ＋２）−画素領域９１０を表す図である。
【００５５】
より速く演算するために、ＣＮＮ処理ブロック８０４では、少ない数の計算性能向上技術が用いられ実装されてきた。一実施形態において、画像データの表現は、実用上できる限り少ないビット数を用いる（例えば、５ビット表現）。別の実施形態において、各フィルタ係数は、基数点を有する整数として表される。同様に、フィルタ係数を表す整数は、実用上できる限り少ないビット数を用いる（例えば、１２ビット表現）。結果として、固定小数点数演算を用いて３×３畳み込みが実行され、より高速な演算を行うことができる。
【００５６】
各３ｘ３畳み込み手続きによって、以下の式に基づく一つの畳み込み演算結果Ｏｕｔ（ｍ，ｎ）が得られる。
2020091831.tif 000003
ここで、ｍ、ｎは、（Ｚ＋２）−画素×（Ｚ＋２）−画素領域の内部のどの画像データ（画素）で畳み込み演算が行われるかを同定するための対応する行及び列番号である。
Ｉｎ（ｍ，ｎ，ｉ，ｊ）は、領域内の画素位置（ｍ，ｎ）を中心とする３−画素×３−画素エリアである。
Ｃ（ｉ，ｊ）は、９つの重み係数（ｗｅｉｇｈｔ  ｃｏｅｆｆｉｃｉｅｎｔ）Ｃ（３ｘ３）のうちの一つを表しており、各重み係数は、３−画素×３−画素エリアのうちの一つに対応する。
ｂはオフセット係数を表す。
ｉ，ｊは、重み係数Ｃ（ｉ，ｊ）の添え字（ｉｎｄｉｃｅｓ）である。
【００５７】
各ＣＮＮ処理ブロック８０４は、Ｚ×Ｚの畳み込み演算結果を同時に生成し、全てのＣＮＮ処理エンジンが同時演算を行う。一実施形態では、３×３の重み係数またはフィルタ係数は、それぞれ１２ビットであり、オフセットまたはバイアス係数は１６ビットまたは１８ビットである。
【００５８】
図１０Ａ〜図１０Ｃは、ＺｘＺ画素位置の３つの異なる例を示す図である。図１０Ａに示す第一画素位置１０３１は、（Ｚ＋２）−画素×（Ｚ＋２）−画素領域内の左上角部の３−画素×３−画素エリアの中心にある。図１０Ｂに示す第二画素位置１０３２は、第一画素位置１０３１の右側に一画素分シフトさせたものである。図１０Ｃに示す第三画素位置１０３３は、典型的な画素位置の例である。ＺｘＺ画素位置として、この（Ｚ＋２）−画素×（Ｚ＋２）−画素領域内部の複数の重複する３−画素×３−画素エリアを含む。
【００５９】
各サンプリング位置で３×３の畳み込み演算を行うための、データ配列の例を図１１に示す。画像データ（即ち、Ｉｎ（３ｘ３））とフィルタ係数（即ち、重み係数Ｃ（３ｘ３）とオフセット係数ｂ）とを例示的なＣＮＮ３ｘ３回路１１００に供給する。式（１）に従って３×３畳み込み演算を行った後、一つの出力結果（即ち、Ｏｕｔ（１×１））が生成される。各サンプリング位置において、画像データＩｎ（３×３）は、画素座標（ｍ，ｎ）１１０５を中心として８つの直接隣接画素１１０１〜１１０４、１１０６〜１１０９を有する。
【００６０】
画像データは第一メモリバッファセット８０６に保存され、一方フィルタ係数は第二メモリバッファセット８０８に保存される。画像データとフィルタ係数とは共に、デジタル集積回路の各クロックで、ＣＮＮ処理ブロック８０４に供給される。フィルタ係数（即ち、Ｃ（３×３）とｂ）は、第二メモリバッファセット８０８からＣＮＮ処理ブロック８０４へと直接供給される。しかしながら、画像データは、第一メモリバッファセット８０６からマルチプレクサＭＵＸ８０５を介してＣＮＮ処理ブロック８０４へと供給される。マルチプレクサ８０５は、クロック信号（例えば、パルス８１２）に基づいて第一メモリバッファセットから画像データを選択する。
【００６１】
別な方法では、マルチプレクサＭＵＸ８０５は、クロックスキュー回路８２０を介して第一隣接ＣＮＮ処理エンジンから（図示しない図８の左側から）画像データを選択する。
【００６２】
同時に、ＣＮＮ処理ブロック８０４に供給された画像データのコピーが、クロックスキュー回路８２０を介して第二隣接ＣＮＮ処理エンジンに（図示しない図８の右側に）送られる。クロックスキュー回路８２０は、公知の技術（例えば、Ｄフリップフロップ８２２）によって実現可能である。
【００６３】
各画像データグループの３×３畳み込みを事前に定義したフィルタ係数の数について行った後、畳み込み演算結果Ｏｕｔ（ｍ，ｎ）は、別のクロック信号（例えば、パルス８１１）に基づいて、別のマルチプレクサＭＵＸ８０７を介して第一メモリバッファセットに送られる。パルス８１１と８１２との時間関係を明示するためにクロック周期の例８１０を示す。図示するようにパルス８１１はパルス８１２の一つ前のクロックであり、結果として、特定の画像データブロックがクロックスキュー回路８２０を介して全てのＣＮＮ処理エンジンによって処理された後に、３×３畳み込み演算結果が第一メモリバッファセット内に保存される。
【００６４】
畳み込み演算結果Ｏｕｔ（ｍ，ｎ）が式（１）より得られた後に、アクティベーション処理が行われてもよい。畳み込み演算結果Ｏｕｔ（ｍ，ｎ）がゼロ未満（即ち負の値）であればゼロと設定される。言い換えると、正の値の出力結果のみが維持される。例えば、正の出力値１０．５は１０．５のままとし、一方−２．３は０になる。アクティベーションによって、ＣＮＮベース集積回路に非線形性が生じる。
【００６５】
２ｘ２プーリング演算が必要ならば、ＺｘＺ出力結果は（Ｚ／２）ｘ（Ｚ／２）に縮小される。（Ｚ／２）ｘ（Ｚ／２）出力結果を第一メモリバッファセットの対応する位置に保存するために、適切なメモリアドレスをたどって４つの（Ｚ／２）ｘ（Ｚ／２）出力結果を一つのＣＮＮ処理エンジン内で処理できるようにするような追加的なブックキーピング（ｂｏｏｋｋｅｅｐｉｎｇ）技術が必要である。
【００６６】
２×２プーリング演算について説明するために、２−画素×２−画素のブロックの出力結果を、４つの出力結果のうちの最も大きい値である単一の値１０．５に減じる第一の例を図１２Ａに図示する。図１２Ａに示す技術を「最大プーリング（ｍａｘ  ｐｏｏｌｉｎｇ）」と呼ぶ。図１２Ｂに示す、４つの出力結果の平均値４．６を単一値として使用する場合、これを「平均プーリング（ａｖｅｒａｇｅ  ｐｏｏｌｉｎｇ）」と呼ぶ。プーリング演算には、例えば、「最大プーリング」と「平均プーリング」とを組み合わせた「最大平均混合プーリング（ｍｉｘｅｄ  ｍａｘ  ａｖｅｒａｇｅ  ｐｏｏｌｉｎｇ）」のような他の例がある。プーリング演算の主な目的は、処理する画像データのサイズを縮小することである。図１３に、Ｚ×Ｚ画素位置を、２×２プーリング演算によって、（Ｚ／２）×（Ｚ／２）位置に縮小する例を示すが、これによって元のサイズの１／４になる。
【００６７】
入力画像は、通常大量の画像データを含む。画像処理操作を実行するために、例示的な入力画像１４００（例えば、図１の二次元シンボル１００）が、図１４Ａに示すようなＺ画素×Ｚ画素のブロック１４１１〜１４１２に分割される。これらのＺ画素×Ｚ画素のブロックのそれぞれに関連する画像データは、次に、各ＣＮＮ処理エンジンに送られる。特定のＺ−画素×Ｚ−画素ブロック内の各ＺｘＺ画素位置において、対応するＣＮＮ処理ブロック内で３ｘ３畳み込みが同時に行われる。
【００６８】
本発明において、入力画像が特定の特徴寸法を有する必要はないが、所定の画像処理手順に関して事前に定義した特徴寸法に合うように入力画像のサイズを変更する必要があるかもしれない。ある実施形態では、（２ＬｘＺ）−画素×（２ＬｘＺ）−画素の正方形が必要となる。Ｌは正の整数（１、２、３、４等）である。Ｚが１４でＬが４であれば、特徴寸法は２２４である。別の実施形態において、入力画像は（２ＩｘＺ）−画素及び（２ＪｘＺ）−画素の寸法の矩形である。ＩとＪとは正の整数である。
【００６９】
Ｚ−画素×Ｚ−画素ブロックの境界部周辺の画素位置において３×３畳み込みを適切に行うには、隣接ブロックからの追加の画像データが必要である。図１４Ｂは、（Ｚ＋２）−画素×（Ｚ＋２）−画素領域１４３０内の（破線で囲んだ）典型的なＺ−画素×Ｚ−画素ブロック１４２０を示す。この（Ｚ＋２）−画素×（Ｚ＋２）−画素領域は、現在のブロックからのＺ−画素×Ｚ−画素ブロックの中央部と、対応する隣接ブロックからの４つの端部（即ち、上、右、下及び左）と４つの角部（即ち、左上、右上、右下及び左下）とによって形成される。
【００７０】
図１４Ｃは、Ｚ−画素×Ｚ−画素ブロック１４２２〜１４２４及びこれらに関連付けた（Ｚ＋２）−画素×（Ｚ＋２）−画素領域１４３２〜１４３４の２つの例を示す図である。これら２つの例示的なブロック１４２２〜１４２４は、入力画像の周辺に沿って位置している。第一の例であるＺ−画素×Ｚ−画素ブロック１４２２は、左上角部に位置しているので、この第一例のブロック１４２２は、２つの端部と１つの角部とに隣接部を有する。画像データを形成するために関連付けた（Ｚ＋２）−画素×（Ｚ＋２）−画素領域１４３２において、（斜線部で示す）隣接部がない２つの端部と３つの角部には、値「０」が用いられる。同様に、第二例であるブロック１４２４の関連付けた（Ｚ＋２）−画素×（Ｚ＋２）−画素領域１４３４では、上側端部と二つの上側角部に「０」を使用する必要がある。入力画像の周辺に沿った他のブロックも同様に処理される。言い換えると、入力画像の各画素において３×３畳み込みを行うために、入力画像の周辺の外側にゼロ（０）の層を追加する。多くの周知の技術を用いてこれを実現可能である。例えば、第一メモリバッファセットのデフォルト値がゼロに設定される。隣接ブロックから画像データが埋められない場合には、そのような端部や角部の値はゼロとなる。
【００７１】
集積回路上で複数のＣＮＮ処理エンジンを構成する場合は、ＣＮＮ処理エンジンは、クロックスキュー回路を介して第一及び第二隣接ＣＮＮ処理エンジンと接続される。説明を簡略化するために、画像データ用のＣＮＮ処理ブロックとメモリバッファのみを示す。図１５に例示的なＣＮＮ処理エンジングループ用のクロックスキュー回路１５４０の例を示す。
【００７２】
ＣＮＮ処理エンジンは、第二の例示的なクロックスキュー回路１５４０を介して接続され、ループを形成する。言い換えると、各ＣＮＮ処理エンジンは、自身の画像データを第一隣接部に送ると同時に、第二隣接部の画像データを受け取る。クロックスキュー回路１５４０は、周知の方法で実現可能である。例えば、各ＣＮＮ処理エンジンは、Ｄフリップフロップ１５４２で接続される。
【００７３】
本発明についてその具体的な実施形態を参照して記載してきたが、これらの実施形態は単に例示的なものであって本発明を限定するものではない。このように具体的に開示した例示的な実施形態についての様々な修正や変更が当業者には示唆されるであろう。例えば、二次元シンボルについて、２２４×２２４ピクセルの行列である具体的な例を用いて説明及び示したが、本発明と略同様の目的を達成するために、８９６×８９６等の他のサイズが使用されてもよい。さらに、自然言語の文字列を左から右、上から下のように配置する場合について説明して示したが、下から上、右から左、或いは任意の一貫した組み合わせ等のその他の順序を用いて同じことを実現してもよい。つまり、本発明の範囲は、本明細書に開示した具体的な例としての実施形態に限定されず、当業者にとって容易に示唆される全ての修正が、本出願及び添付の特許請求の範囲の精神及び範囲内に含まれるものである。
【図１】
2020091831.tif 000004
【図２Ａ】
2020091831.tif 000005
【図２Ｂ】
2020091831.tif 000006
【図２Ｃ】
2020091831.tif 000007
【図３Ａ】
2020091831.tif 000008
【図３Ｂ】
2020091831.tif 000009
【図４Ａ】
2020091831.tif 000010
【図４Ｂ】
2020091831.tif 000011
【図５Ａ】
2020091831.tif 000012
【図５Ｂ】
2020091831.tif 000013
【図５Ｃ】
2020091831.tif 000014
【図６】
2020091831.tif 000015
【図７】
2020091831.tif 000016
【図８】
2020091831.tif 000017
【図９】
2020091831.tif 000018
【図１０Ａ】
2020091831.tif 000019
【図１０Ｂ】
2020091831.tif 000020
【図１０Ｃ】
2020091831.tif 000021
【図１１】
2020091831.tif 000022
【図１２Ａ】
2020091831.tif 000023
【図１２Ｂ】
2020091831.tif 000024
【図１３】
2020091831.tif 000025
【図１４Ａ】
2020091831.tif 000026
【図１４Ｂ】
2020091831.tif 000027
【図１４Ｃ】
2020091831.tif 000028
【図１５】
2020091831.tif 000029