(57)【要約】      （修正有）【課題】線形空間データだけでなく、非線形空間データを学習可能にするパターン認識装置、パターン認識方法及びプログラムを提供する。【解決手段】パターン認識装置２００は、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部２１０と、非線形変換された学習パターンをカプセルネットワークの活性化関数に入力するとともに、活性化関数からの出力データに基づいて識別関数を学習する学習部２２０と、を備える。【選択図】図９
2020077073.tif 000002
【特許請求の範囲】
【請求項１】
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部と、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習する学習部と、
を備えるパターン認識装置。
【請求項２】
前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、
請求項１記載のパターン認識装置。
【請求項３】
前記識別関数は、式（１）によって表される、
請求項２記載のパターン認識装置。
【数１】
2020077073.tif 000013
ただし、ｕｊは前記学習パターン、ｗｉｊは前記１次変換行列、ｖｉｊは前記２次変換行列、Ｔは転置をそれぞれ表す。
【請求項４】
前記学習部は、前記出力データと前記学習パターン群に対応する正解データとの誤差が所定の閾値以下になるまで、前記識別関数における前記１次変換行列及び前記２次変換行列の更新を繰り返す、
請求項２又は３記載のパターン認識装置。
【請求項５】
前記識別関数に基づいて、入力された未知パターンが属する前記学習パターン群を識別する識別部、
をさらに備える請求項１乃至４のいずれか一項に記載のパターン認識装置。
【請求項６】
前記識別部は、前記識別関数に前記未知パターンを入力したときに、前記カプセルネットワークを構成するカプセルの中で前記活性化関数からの前記出力データが最大となる前記カプセルに対応する前記学習パターン群を、前記未知パターンが属する前記学習パターン群として識別する、
請求項５記載のパターン認識装置。
【請求項７】
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、
を備えることを特徴とするパターン認識方法。
【請求項８】
コンピュータに、
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターン認識装置、パターン認識方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、畳み込みニューラルネットワーク（Convolutional Neural Network：CNN）を用いた画像認識装置が開示されている。畳み込みニューラルネットワークは、畳み込み層、プーリング層及び全結合層から構成された多層ニューラルネットワークであり、特に画像認識の分野で広く用いられている。畳み込み層は、フィルタにより画像データの特徴量を抽出して特徴マップを生成する。プーリング層は、特徴マップを次元圧縮することによって、特徴マップから不要な情報を除去する。全結合層は、畳み込み層及びプーリング層で得られた特徴マップに基づいてデータを処理する。プーリング層の役割により、特徴マップは画像の局所的なゆがみや平行移動等の影響を受けにくくなる。その反面、プーリング層では、空間上における特徴間の位置関係を示す情報が欠落してしまう場合がある。
一方、非特許文献１には、上述した畳み込みニューラルネットワークにおける問題点を解決するためのニューラルネットワークとして「カプセルネットワーク」が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−０１８３５０号公報
【非特許文献】
【０００４】
【非特許文献１】Sara Sabour, Nicholas Frosst, Geoffrey E Hinton, "Dynamic Routing Between Capsules", NIPS(2017), 2017, Available at https://arxiv.org/pdf/1710.09829.pdf.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に開示されているカプセルネットワークを用いたパターン認識装置は、入力パターンをアフィン変換により変形し、学習処理及び認識処理を実行する。アフィン変換は、線形変換の一種であり、線形空間データに対して伸縮、回転及び平行移動による変形が可能である。しかし、例えば、非線形変換された文字をアフィン変換によって元の文字に復元することはできない。また、気象予想や地震予知等の分野で扱われる高次元データ等、非線形空間の複雑なデータを扱う場合には、線形変換前の学習パターンの特徴が変換後に欠落する可能性がある。
【０００６】
そこで、本発明は、上述の課題に鑑み、非線形空間データを学習できるパターン認識装置、パターン認識方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一つの観点によれば、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部と、非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習する学習部と、を備えるパターン認識装置が提供される。
【０００８】
本発明の他の観点によれば、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、を備えるパターン認識方法が提供される。
【０００９】
本発明のさらに他の観点によれば、コンピュータに、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、を実行させるプログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、非線形空間データを学習できるパターン認識装置、パターン認識方法及びプログラムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態におけるパターン認識装置の全体構成例を示す機能ブロック図である。
【図２】第１実施形態において学習パターン群を分離する識別曲線を示す模式図である。
【図３】第１実施形態における識別曲線に基づく未知パターンの識別例を示す模式図である。
【図４】第１実施形態におけるパターン認識装置のハードウェア構成を示すブロック図である。
【図５】第１実施形態における画像データの変換例を示す図である。
【図６】第１実施形態における画像データの変換例を示す図である。
【図７】第１実施形態におけるパターン認識装置の学習処理の一例を示すフローチャートである。
【図８】第１実施形態におけるパターン認識装置の認識処理の一例を示すフローチャートである。
【図９】第２実施形態におけるパターン認識装置を示す機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施形態を説明する。なお、以下で説明する図面においては、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明を省略する。
【００１３】
［第１実施形態］
本実施形態におけるパターン認識装置１００は、画像認識、音声認識及びテキスト認識等の各種のパターン認識を行う情報処理装置である。図１は、パターン認識装置１００の全体構成例を示す機能ブロック図である。パターン認識装置１００は、入力部１１０、制御部１２０、出力部１３０及び記憶部１４０を備える。
【００１４】
入力部１１０は、制御部１２０における学習処理や認識処理の対象となるデータを入力し、制御部１２０へ入力データを出力する。入力データは、必要に応じて各種パラメータやその他のデータを含んでよい。入力データは、パターン認識装置１００の外部又は内部（記憶部１４０）から取得され得る。
【００１５】
制御部１２０は、パターン学習部１２１及びパターン認識部１２２を備える。パターン学習部１２１は、ニューラルネットワークに複数の学習パターン群を入力することで、複数の学習パターン群にそれぞれ対応する複数の識別関数を学習する。具体的には、パターン学習部（変換部）１２１は、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する。そして、パターン学習部（学習部）１２１は、非線形変換された学習パターンをニューラルネットワークの活性化関数に入力するとともに、活性化関数からの出力データと学習パターン群に対応する正解データとの誤差に基づいて識別関数を学習する。識別関数は、複数のパターンからなる一つの学習パターン群を他の学習パターン群から分離する。分離された領域に存在するパターンは、当該学習パターン群に属するパターンとみなされる。
【００１６】
本実施形態では、識別関数が２次関数である場合を例示する。識別関数が与える識別境界は、２次元平面上で曲線（以下、「識別曲線」という。）で表される。識別曲線の形状は、楕円状に限られない。また、本実施形態では、識別関数と識別曲線の語句を同義として用いるものとする。なお、識別関数は、非線形変換及び微分が可能な関数であれば、２次関数に限られない。対象パターンがｎ（ｎ≧３）次元で表される場合には、識別関数が与える識別境界は、識別ｎ次平面（識別高次平面）である。
【００１７】
また、本実施形態では、画像データの学習処理及び認識処理を行うためのニューラルネットワークとしてカプセルネットワークを用いるものとする。従来のニューラルネットワークに対するカプセルネットワークの主な相違点は、以下の通りである。
（１）入力及び出力データの形式が異なる。従来のニューラルネットワークの入力及び出力データは、スカラーである。これに対し、カプセルネットワークの入力及び出力データは、ベクトルである。
（２）カプセルネットワークは、入力データ（入力ベクトル）をアフィン変換するステップをさらに備える。
（３）カプセルネットワークは、ｓｑｕａｓｈ関数を用いることで、ベクトルデータを圧縮する。
これらの相違点により、カプセルネットワークは、従来の畳み込みニューラルネットワークとは異なり、空間上における特徴間の位置関係を保持できる。なお、本実施形態におけるカプセルネットワークは、上述した一般的なカプセルネットワークと異なる構成を備えるが、その詳細については後述する。
【００１８】
図２は、学習パターン群を分離する識別曲線を示す模式図である。ここでは、学習済みの３つの学習パターン群Ａ（図中、三角形“△”）、学習パターン群Ｂ（図中、バツ印“×”）、学習パターン群Ｃ（図中、丸印“○”）が、２次元平面上に配置されている。学習パターン群Ａ、Ｂ、Ｃは、対応する識別曲線によって他の学習パターン群から分離されている。すなわち、識別曲線の内側の領域には、同一の学習パターン群に属するパターンのみが存在する。
【００１９】
パターン認識部１２２は、パターン学習部１２１における学習処理によって得られた識別関数に基づいて、未知パターンが属する学習パターン群を識別する。すなわち、パターン認識の対象となる未知パターンを示す入力データが入力部１１０から入力されたとき、パターン認識部１２２は、未知パターンがパターン空間上で学習パターン群に対応する所定の領域内に存在するか否かを判定する。パターン認識部１２２は、未知パターンが当該領域内に存在すると判定した場合には、未知パターンを当該領域における学習パターン群に属するパターンとして識別する。逆に、パターン認識部１２２は、未知パターンが当該領域内に存在しないと判定した場合には、未知パターンを当該領域における学習パターン群に属さないパターンとして識別する。
【００２０】
図３は、識別曲線に基づく未知パターンＵの識別例を示す模式図である。ここでは、図２に示した２次元平面に対して、新たに入力された未知パターンＵ（図中、黒塗り三角形“▲”）が配置されている。未知パターンＵは、学習パターン群Ａの識別曲線の領域内に存在している。このため、パターン認識部１２２は、学習パターン群Ａに属するパターンとして未知パターンＵを識別する。
【００２１】
出力部１３０は、制御部１２０における学習結果又は認識結果を出力する。出力部１３０は、記憶部１４０に出力データを記憶する。また、出力部１３０は、パターン認識装置１００に接続された表示装置１５０に出力データを出力する。
【００２２】
記憶部１４０は、入力部１１０から入力されるデータ及び出力部１３０から出力されるデータをそれぞれ記憶する。具体的には、記憶部１４０は、パターン学習部１２１における学習処理に用いられる学習パターンのデータ、後述する各種の関数に基づく演算プログラム、カプセルネットワークにおけるカプセル間の結合係数、閾値、演算プログラムの出力データ、及び学習パターンに対応する所定の正解データ（教師信号）等の各種データを記憶する。表示装置１５０は、液晶ディスプレイ、ＯＬＥＤ（Organic Light Emitting Diode）ディスプレイ等であって、画像、文字、インターフェース等の表示に用いられる。
【００２３】
図４は、パターン認識装置１００のハードウェア構成例を示すブロック図である。パターン認識装置１００は、演算、制御及び記憶を行うコンピュータとして、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＲＯＭ（Read Only Memory）１０３及びＨＤＤ（Hard Disk Drive）１０４を備える。また、パターン認識装置１００は、通信Ｉ／Ｆ（インターフェース）１０５及び入力装置１０６を備える。ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、通信Ｉ／Ｆ１０５及び入力装置１０６は、バス１０７を介して相互に接続される。
【００２４】
ＣＰＵ１０１は、ＲＯＭ１０３、ＨＤＤ１０４等に記憶されたプログラムをＲＡＭ１０２にロードして実行するとともに、パターン認識装置１００の各部を制御する機能を有するプロセッサである。すなわち、ＣＰＵ１０１は、入力部１１０、パターン学習部１２１、パターン認識部１２２、出力部１３０の機能を実現する。これらの各部で行われる処理については後述する。ＲＡＭ１０２は、揮発性記憶媒体から構成され、ＣＰＵ１０１の動作に必要な一時的なメモリ領域を提供する。ＲＯＭ１０３は、不揮発性記憶媒体から構成され、パターン認識装置１００の動作に用いられるプログラム等の必要な情報を記憶する。ＨＤＤ１０４は、不揮発性記憶媒体から構成され、処理に必要なデータ、パターン認識装置１００の動作用プログラム等を記憶する記憶装置である。ＣＰＵ１０１は、ＲＯＭ１０３、ＨＤＤ１０４を制御することにより記憶部１４０の機能を実現する。
【００２５】
通信Ｉ／Ｆ１０５は、イーサネット（登録商標）、Ｗｉ−Ｆｉ（登録商標）、４Ｇ等の規格に基づく通信インターフェースであり、他の装置との通信を行うためのモジュールである。入力装置１０６は、キーボード、ポインティングデバイス等であって、ユーザがパターン認識装置１００を操作するために用いられる。ポインティングデバイスの例としては、マウス、トラックボール、タッチパネル、ペンタブレット等が挙げられる。表示装置１５０及び入力装置１０６は、タッチパネルとして一体に形成されていてもよい。
【００２６】
また、図４に示すハードウェア構成は例示であり、これら以外の装置（例えば表示装置１５０）が追加されていてもよく、一部の装置が設けられていなくてもよい。また、一部の装置が同様の機能を有する別の装置に置換されていてもよい。さらに、本実施形態の一部の機能がネットワークを介して他の装置により提供されてもよく、本実施形態の機能が複数の装置に分散されて実現されるものであってもよい。例えば、ＨＤＤ１０４は、半導体メモリを用いたＳＳＤ（Solid State Drive）に置換されていてもよく、クラウドストレージに置換されていてもよい。また、入力装置１０６やＨＤＤ１０４は、ＣＰＵ１０１等を含むコンピュータの機能を構成する部分とは別の外付け装置であってもよい。
【００２７】
続いて、学習パターン群に属する学習パターンｕｊ（ｊ＝１，２，...,Ｊ）を学習パターン群毎に学習する課題を例として、本実施形態におけるパターン学習部１２１の処理を説明する。本実施形態におけるパターン学習部１２１は、各学習パターン群を分離する識別関数を、ニューラルネットワークの一種であるカプセルネットワークを用いて学習する。なお、以下では、カプセル層における計算について説明する。カプセル層以外の層とルーティング処理の計算については、一般的なカプセルネットワークと同様の処理を行うため、説明を省略する。
【００２８】
学習パターンｕｊは、式（１）のようなＩ次元のベクトルとする。
【数１】
2020077073.tif 000003
【００２９】
カプセルネットワークのカプセルｊのニューロン出力値ｖｊは、下記の式（２）〜（５）を順に計算していくことで求められる。
【数２】
2020077073.tif 000004
ここで、ｗｉｊは、学習パターンｕｊをアフィン変換するＩ行×Ｊ列のアフィン変換行列（１次変換行列）である。
【００３０】
【数３】
2020077073.tif 000005
Ｓｊは、重み付けされたベクトルの総和である。Ｃｉｊは、重みであり、ｊに関して和をとると、合計が１となる。Ｃｉｊは、以下の式（４）より求められる。
【００３１】
【数４】
2020077073.tif 000006
ｂｉｊは、初期値が０であり、学習によって更新されるカプセル間の結合度である。
【００３２】
ニューロン出力値ｖｊは、式（１）〜（４）によって計算されたベクトルｓｊと以下の式（５）によって計算される。式（５）は、ｓｑｕａｓｈ関数であり、非線形の活性化関数である。
【数５】
2020077073.tif 000007
式（５）の右辺の右側部分は、ベクトルｓｊを大きさ１の単位ベクトルにする。これに対し、右辺の左側部分は、単位ベクトルを０と１の間の値に非線形スケーリングする。すなわち、ベクトルｓｊのノルムが０に近付く程、ニューロン出力値ｖｊは、０に近付く。逆に、ベクトルｓｊのノルムが大きくなる程、ニューロン出力値ｖｊは、１に近付く。
【００３３】
誤差関数は、以下の式（６）で表される。ここで、Ｔｋは、学習パターンがカテゴリｋに属する場合に１となる値である。なお、ｍ＋、ｍ−、λの値は、それぞれ０．９、０．１、０．５とする。
【数６】
2020077073.tif 000008
【００３４】
式（６）の左辺の値（誤差Ｌｋ）を最小化するように、下記の式（７）に従ってアフィン変換行列ｗｉｊを更新していくことにより、カプセルネットワークは学習パターン群を学習する。
【数７】
2020077073.tif 000009
【００３５】
図５及び図６は、本実施形態における画像データの変換処理の一例を示す図である。図５（Ａ）は、変換前の元画像を示している。これに対して、図５（Ｂ）〜（Ｅ）では、図５（Ａ）に示す元画像に対して線形変換による平行移動、拡大、縮小及び回転の変形を行った場合をそれぞれ示している。また、図６（Ａ）は、変換前の元画像を示している。これに対して、図６（Ｂ）〜（Ｅ）では、図６（Ａ）に示す元画像に対して、非線形変換による４種類の変形を行った場合を示している。
【００３６】
上述した一般的なカプセルネットワークを用いた従来のパターン認識装置は、入力された学習パターンをアフィン変換（線形変換）によって、平行移動、拡大、縮小及び回転の変形を行い、学習処理を実行する。従来のパターン認識装置は、ある学習パターン群に属する学習パターンとして、図５（Ａ）〜（Ｅ）のような画像データを学習できる。しかし、図６（Ｂ）〜（Ｅ）のような画像データは、アフィン変換を実行しても図６（Ａ）に示す元画像のような画像にはならないため、従来のパターン認識装置では学習が困難である。
【００３７】
そこで、本実施形態におけるパターン認識装置１００では、式（２）の代わりに以下の式（８）を用いて非線形変換を行う。
【数８】
2020077073.tif 000010
【００３８】
式（８）に示す識別関数は、学習パターンを非線形変換する２次変換行列ｖｉｊを含む第１項と、学習パターンをアフィン変換する１次変換行列ｗｉｊを含む第２項との和により定義されている。これにより、線形データだけでなく、非線形データを学習できる。すなわち、画像データの変形の自由度が増し、図６（Ｂ）〜（Ｅ）のような画像データも、図６（Ａ）に示す元画像のような画像データに近付けることができる。
【００３９】
また、識別関数として式（８）を使用する場合、学習計算式（更新式）としては、式（７）に加えて以下の式（９）を用いる。誤差逆伝播法により、式（７）及び式（９）に従って１次変換行列ｗｉｊと２次変換行列ｖｉｊをそれぞれ更新することによって、学習パターン群のパターンデータを学習できる。
【数９】
2020077073.tif 000011
ここで、εは、更新量を調整する係数である。
【００４０】
すべての学習パターン群を学習するには、各学習パターン群に対して、式（３）〜（５）及び式（８）を用いて、ニューロン出力値を計算する。次に、式（７）、（９）によって、式（８）に含まれる１次変換行列ｗｉｊと２次変換行列ｖｉｊを更新する。これらの処理は、誤差関数（式（６））で計算した誤差が十分小さくなるまで繰り返す。これにより、パターン学習部１２１における学習処理が完了する。
【００４１】
以下、パターン認識装置１００における学習処理及び認識処理を図７及び図８に基づいて詳細に説明する。
【００４２】
＜学習処理＞
図７は、パターン認識装置１００の学習処理の一例を示すフローチャートである。この処理は、例えばユーザがパターン認識装置１００に対してパターン学習を実行するために所定の操作を行うことで開始される。
【００４３】
まず、入力部１１０は、学習対象の学習パターン群の入力を受け付ける（ステップＳ１０１）。このとき、入力部１１０は、入力データを制御部１２０へ出力する。また、入力された学習パターン群は、記憶部１４０に記憶される。
【００４４】
次に、パターン学習部１２１は、式（８）に示される識別関数における１次変換行列ｗｉｊと２次変換行列ｖｉｊを初期化する（ステップＳ１０２）。
【００４５】
次に、パターン学習部１２１は、ステップＳ１０２で入力された学習パターン群に属する学習パターン（入力ベクトル）を記憶部１４０から読み出すとともに、学習パターンを式（８）に示す識別関数に入力して非線形変換を行う（ステップＳ１０３）。
【００４６】
次に、パターン学習部１２１は、識別関数から出力されるベクトルを式（３）、式（４）に入力し、重み付けされたベクトルの総和Ｓｊを計算する。そして、パターン学習部１２１は、計算された総和Ｓｊを式（５）に示すｓｑｕａｓｈ関数に入力し、ニューロン出力値ｖｊを計算する（ステップＳ１０４）。
【００４７】
次に、パターン学習部１２１は、ステップＳ１０３で算出されたニューロン出力値ｖｊを、式（６）に示す誤差関数に入力し、誤差Ｌｋを計算する（ステップＳ１０５）。
【００４８】
次に、パターン学習部１２１は、誤差Ｌｋが所定の閾値以下であるか否かを判定する（ステップＳ１０６）。ここで、パターン学習部１２１が、ステップＳ１０４で計算された誤差Ｌｋは所定の閾値以下であると判定した場合（ステップＳ１０６：ＹＥＳ）には、学習処理は終了する。そして、学習により得られた識別関数は、記憶部１４０に記憶される。
【００４９】
これに対し、パターン学習部１２１が、誤差Ｌｋは所定の閾値を超えると判定した場合（ステップＳ１０６：ＮＯ）には、処理はステップＳ１０７に移行する。
【００５０】
ステップＳ１０７において、パターン学習部１２１は、式（７）及び式（９）に基づいて識別関数の１次変換行列ｗｉｊと２次変換行列ｖｉｊを更新する。更新後、処理はステップＳ１０３に戻る。ステップＳ１０７、ステップＳ１０３〜ステップＳ１０５の処理は、誤差Ｌｋが所定の閾値以下になる（ステップＳ１０６：ＹＥＳ）まで繰り返される。
【００５１】
＜認識処理＞
図８は、パターン認識装置１００の認識処理の一例を示すフローチャートである。この処理は、例えばユーザがパターン認識装置１００に対してパターン認識を実行するために所定の操作を行うことで開始される。
【００５２】
まず、入力部１１０は、認識対象の未知パターンを示す入力データを受け取る（ステップＳ２０１）。このとき、入力部１１０は、入力データをパターン認識部１２２へ出力する。入力データは、記憶部１４０にも記憶される。
【００５３】
パターン認識部１２２は、ステップＳ２０１で入力された未知パターンを式（８）に示す識別関数に入力して非線形変換を行う（ステップＳ２０２）。そして、パターン認識部１２２は、非線形変換された未知パターンのデータと式（３）〜（５）に基づいてニューロン出力値ｖｊを計算する（ステップＳ２０３）。ニューロン出力値ｖｊは、各カプセルについて算出される。
【００５４】
次に、パターン認識部１２２は、ステップＳ２０２で算出されたニューロン出力値ｖｊを用いて、すべてのカプセルの中で最大のニューロン出力値ｖｊを有するカプセルを特定する。次に、パターン認識部１２２は、特定されたカプセルに対応する学習パターン群を選択する（ステップＳ２０４）。そして、パターン認識部１２２は、ステップＳ２０３で選択された学習パターン群を、未知パターンが属するパターン群として決定する（ステップＳ２０５）。
【００５５】
本実施形態におけるパターン認識装置１００は、学習パターン群に属する学習パターンを非線形変換した上で学習処理を行う。このため、従来のカプセルネットワークでは、学習が難しいパターンも学習可能となる。すなわち、線形変換によって学習パターン群を類似する学習パターンへ変換不能な状態の場合でも、非線形変換によって学習パターン群を類似する学習パターンに変換可能になる。これにより、本実施形態におけるパターン認識装置１００は、線形変換よりも制約が少ない非線形変換によって学習パターン群を類似のパターン（例えば、学習に適した、より自然な学習パターン）に変形できるため、汎化能力の高い状態でパターン空間を学習できる。さらに、学習により得られた識別関数を用いることで、従来よりも柔軟性の高いパターン認識が可能になる。本実施形態におけるパターン認識装置１００は、様々な分野において利用できるものであり、例えば、ＰＯＳ（point of sales）装置やロボットの視覚処理においても利用できる。
【００５６】
［第２実施形態］
図９は、本実施形態におけるパターン認識装置２００を示す機能ブロック図である。パターン認識装置２００は、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部２１０と、非線形変換された学習パターンをカプセルネットワークの活性化関数に入力するとともに、活性化関数からの出力データに基づいて識別関数を学習する学習部２２０と、を備える。パターン認識装置２００は、非線形空間データを学習できる。
【００５７】
［変形実施形態］
以上、実施形態を参照して本発明を説明したが、本発明は上述の実施形態に限定されるものではない。本願発明の構成及び詳細には本発明の要旨を逸脱しない範囲で、当業者が理解し得る様々な変形をできる。例えば、いずれかの実施形態の一部の構成を、他の実施形態に追加した実施形態、あるいは他の実施形態の一部の構成と置換した実施形態も本発明を適用し得る実施形態であると理解されるべきである。
【００５８】
また、上述の各実施形態の機能を実現するように該実施形態の構成を動作させるプログラムを記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のコンピュータプログラムが記録された記録媒体はもちろん、そのコンピュータプログラム自体も各実施形態に含まれる。
【００５９】
該記録媒体としては、例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ（Operating  System）上で動作するものも各実施形態の範疇に含まれる。
【００６０】
また、パターン認識装置１００の少なくとも一部がＳａａＳ（Software as a Service）形式で提供されてもよい。すなわち、パターン認識装置１００を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてもよい。
【００６１】
上述の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下の内容に限定されない。
【００６２】
（付記１）
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部と、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習する学習部と、
を備えるパターン認識装置。
【００６３】
（付記２）
前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、
付記１記載のパターン認識装置。
【００６４】
（付記３）
前記識別関数は、式（１）によって表される、
付記２記載のパターン認識装置。
【数１０】
2020077073.tif 000012
ただし、ｕｊは前記学習パターン、ｗｉｊは前記１次変換行列、ｖｉｊは前記２次変換行列、Ｔは転置をそれぞれ表す。
【００６５】
（付記４）
前記学習部は、前記出力データと前記学習パターン群に対応する正解データとの誤差が所定の閾値以下になるまで、前記識別関数における前記１次変換行列及び前記２次変換行列の更新を繰り返す、
付記２又は３記載のパターン認識装置。
【００６６】
（付記５）
前記識別関数に基づいて、入力された未知パターンが属する前記学習パターン群を識別する識別部、
をさらに備える付記１乃至４のいずれかに記載のパターン認識装置。
【００６７】
（付記６）
前記識別部は、前記識別関数に前記未知パターンを入力したときに、前記カプセルネットワークを構成するカプセルの中で前記活性化関数からの前記出力データが最大となる前記カプセルに対応する前記学習パターン群を、前記未知パターンが属する前記学習パターン群として識別する、
付記５記載のパターン認識装置。
【００６８】
（付記７）
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、
を備えることを特徴とするパターン認識方法。
【００６９】
（付記８）
コンピュータに、
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、
を実行させるプログラム。
【符号の説明】
【００７０】
１００・・・パターン認識装置
１０１・・・ＣＰＵ
１０２・・・ＲＡＭ
１０３・・・ＲＯＭ
１０４・・・ＨＤＤ
１０５・・・通信Ｉ／Ｆ
１０６・・・入力装置
１０７・・・バス
１１０・・・入力部
１２０・・・制御部
１２１・・・パターン学習部
１２２・・・パターン認識部
１３０・・・出力部
１４０・・・記憶部
１５０・・・表示装置
２００・・・パターン認識装置
２１０・・・変換部
２２０・・・学習部
【図１】
2020077073.tif 000014
【図２】
2020077073.tif 000015
【図３】
2020077073.tif 000016
【図４】
2020077073.tif 000017
【図５】
2020077073.tif 000018
【図６】
2020077073.tif 000019
【図７】
2020077073.tif 000020
【図８】
2020077073.tif 000021
【図９】
2020077073.tif 000022
【手続補正書】
【提出日】令和2年1月20日(2020.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部と、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習する学習部と、
を備え、
前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、
パターン認識装置。
【請求項２】
前記識別関数は、式（１）によって表される、
請求項１に記載のパターン認識装置。
【数１】
2020077073.tif 000023
ただし、ｕｊは前記学習パターン、ｗｉｊは前記１次変換行列、ｖｉｊは前記２次変換行列、Ｔは転置をそれぞれ表す。
【請求項３】
前記学習部は、前記出力データと前記学習パターン群に対応する正解データとの誤差が所定の閾値以下になるまで、前記識別関数における前記１次変換行列及び前記２次変換行列の更新を繰り返す、
請求項１又は２に記載のパターン認識装置。
【請求項４】
前記識別関数に基づいて、入力された未知パターンが属する前記学習パターン群を識別する識別部、
をさらに備える請求項１乃至３のいずれか一項に記載のパターン認識装置。
【請求項５】
前記識別部は、前記識別関数に前記未知パターンを入力したときに、前記カプセルネットワークを構成するカプセルの中で前記活性化関数からの前記出力データが最大となる前記カプセルに対応する前記学習パターン群を、前記未知パターンが属する前記学習パターン群として識別する、
請求項４に記載のパターン認識装置。
【請求項６】
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、
を備え、
前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、
パターン認識方法。
【請求項７】
コンピュータに、
識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、
非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、
を実行させ、
前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、
プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の一つの観点によれば、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換する変換部と、非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習する学習部と、を備え、前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、パターン認識装置が提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の他の観点によれば、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、を備え、前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、パターン認識方法が提供される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明のさらに他の観点によれば、コンピュータに、識別関数に基づいて、学習パターン群に属する学習パターンを非線形変換するステップと、非線形変換された前記学習パターンをカプセルネットワークの活性化関数に入力するとともに、前記活性化関数からの出力データに基づいて前記識別関数を学習するステップと、を実行させ、前記識別関数は、前記学習パターンを非線形変換する２次変換行列を含む第１項と、前記学習パターンを線形変換する１次変換行列を含む第２項との和により定義される、プログラムが提供される。