(57)【要約】  サイド情報算出部（１１０）が、識別処理または分類処理を補助するサイド情報を算出する。多層ニューラルネットワーク（１２０）は、識別処理または分類処理の処理結果とサイド情報との間に齟齬がある場合に、中間層（２０）の出力値を変更して識別処理または分類処理を再度行う。
2019030895.tif 000002
【特許請求の範囲】
【請求項１】
識別処理または分類処理を補助するサイド情報を算出するサイド情報算出部と、
入力層、中間層、および出力層から構成され、前記入力層に入力されたデータを用いた識別処理または分類処理の処理結果と前記サイド情報との間に齟齬がある場合に、前記中間層の出力値を変更して識別処理または分類処理を再度行う多層ニューラルネットワークと
を備えたことを特徴とする識別分類装置。
【請求項２】
前記サイド情報算出部は、入力データに基づいて前記サイド情報を算出すること
を特徴とする請求項１記載の識別分類装置。
【請求項３】
前記多層ニューラルネットワークは、前記処理結果と前記サイド情報との間に齟齬がある場合、前記中間層を構成する複数のノードのうち、前記出力層における前記処理結果の算出に大きく寄与したノードを特定し、特定したノードの出力値を変更して前記出力層における前記処理結果の算出を再度行うこと
を特徴とする請求項１記載の識別分類装置。
【請求項４】
前記多層ニューラルネットワークは、前記中間層を構成する複数のノードのうち、前記出力層の前段のノードから、前記処理結果の算出に大きく寄与したノードを特定すること
を特徴とする請求項３記載の識別分類装置。
【請求項５】
前記多層ニューラルネットワークは、前記処理結果と前記サイド情報との間に齟齬がある場合、前記中間層を構成する複数のノードのうち、後段のノードの出力値の算出に大きく寄与したノードを順に遡って特定し、特定したノードの出力値を変更して前記処理結果の算出を再度行うこと
を特徴とする請求項１記載の識別分類装置。
【請求項６】
前記サイド情報算出部は、カメラで撮影された画像データを用いた識別処理または分類処理についての前記サイド情報を算出すること
を特徴とする請求項１記載の識別分類装置。
【請求項７】
前記サイド情報算出部は、前記カメラと撮影対象物との間の距離情報を算出すること
を特徴とする請求項６記載の識別分類装置。
【請求項８】
前記サイド情報算出部は、撮影対象物の種別情報を算出すること
を特徴とする請求項６記載の識別分類装置。
【請求項９】
サイド情報算出部が、識別処理または分類処理を補助するサイド情報を算出するステップと、
入力層、中間層、および出力層から構成された多層ニューラルネットワークが、前記入力層に入力されたデータを用いた識別処理または分類処理の処理結果と前記サイド情報との間に齟齬がある場合に、前記中間層の出力値を変更して識別処理または分類処理を再度行うステップと
を備えたことを特徴とする識別分類方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、多層ニューラルネットワークを用いて識別処理または分類処理を行う識別分類装置および識別分類方法に関する。
【背景技術】
【０００２】
近年、ディープラーニングと呼ばれる機械学習技術が急速に発展しており、ディープラーニングによって、高い識別率または分類正解率を有した多層ニューラルネットワークの構築が可能となっている（例えば、非特許文献１参照）。
一方、多層ニューラルネットワークを用いた、画像、音声、言語またはセンサデータの識別または分類の性能は飛躍的に向上しているが、１００％正解する性能を保証するものではない。【０００３】
多層ニューラルネットワークの性能は、学習処理の内容およびこれに用いた学習データの質または量によって左右されるものであり、学習アルゴリズムも発展途上の段階であるため、ディープラーニングによって常に最適な学習結果が得られるとは限らない。
また、ディープラーニングに用いる学習データの質および量に一定の規則があるわけではない。このため、多層ニューラルネットワークを用いて解決すべき問題ごとに、コストおよび従事者の経験を根拠として学習データを収集しているのが現状である。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】Ａ．  Ｋｒｉｚｈｅｖｓｋｙ，  Ｉ．  Ｓｕｔｓｋｅｖｅｒ，  ａｎｄ  Ｇ．  Ｅ．  Ｈｉｎｔｏｎ，  “  ＩｍａｇｅＮｅｔ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｗｉｔｈ  ｄｅｅｐ  ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ”，  ｉｎ  ＮＩＰＳ，  ｐｐ．  １１０６-１１１４，  ２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このようにディープラーニングによる多層ニューラルネットワークの学習処理は、常に成功するとは限らない。このため、学習済みの多層ニューラルネットワークで希望の性能が得られなかった場合、学習アルゴリズムを変更するか、もしくは学習データを収集して再学習する必要があった。【０００６】
例えば、多層ニューラルネットワークを用いて識別または分類を誤ったデータにラベル付けを行って再学習を繰り返せば、多層ニューラルネットワークの性能は向上する。
しかしながら、多層ニューラルネットワークを構築する学習処理は一般に多くの演算が必要であるため、再学習は、計算機の運用コストを上昇させ、さらに、計算機の時間的な拘束も与える。従って、再学習を繰り返すことは、コストと時間の両面で限界がある。【０００７】
この発明は上記課題を解決するものであり、学習済みの多層ニューラルネットワークを再学習することなく、識別処理の識別率または分類処理の分類正解率を向上させることができる識別分類装置および識別分類方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る識別分類装置は、サイド情報算出部および多層ニューラルネットワークを備える。サイド情報算出部は、識別処理または分類処理を補助するサイド情報を算出する。多層ニューラルネットワークは、入力層、中間層、および出力層から構成され、入力層に入力されたデータを用いた識別処理または分類処理の処理結果とサイド情報との間に齟齬がある場合に、中間層の出力値を変更して識別処理または分類処理を再度行う。
【発明の効果】
【０００９】
この発明によれば、識別処理または分類処理の処理結果とサイド情報との間に齟齬がある場合に、中間層の出力値を変更して識別処理または分類処理を再度行う。これにより、学習済みの多層ニューラルネットワークを再学習することなく、識別処理の識別率または分類処理の分類正解率を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１に係る識別分類装置の構成を示すブロック図である。
【図２】実施の形態１における多層ニューラルネットワークの構成例を示す図である。
【図３】図３Ａは、実施の形態１に係る識別分類装置の機能を実現するハードウェア構成を示すブロック図である。図３Ｂは、実施の形態１に係る識別分類装置の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。
【図４】実施の形態１に係る識別分類方法を示すフローチャートである。
【図５】多層ニューラルネットワークの出力値の算出に寄与するノードを特定する処理の概要を示す図である。
【発明を実施するための形態】
【００１１】
以下、この発明をより詳細に説明するため、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１に係る識別分類装置１００の構成を示すブロック図である。識別分類装置１００は、識別処理または分類処理を行う装置であって、図１に示すように、サイド情報算出部１１０および多層ニューラルネットワーク１２０を備える。
識別分類装置１００に入力されたデータの一部または全ては、サイド情報算出部１１０および多層ニューラルネットワーク１２０に同じタイミングで入力される。
【００１２】
サイド情報算出部１１０は、識別分類装置１００に入力されたデータの一部または全てを用いてサイド情報を算出し、算出したサイド情報を多層ニューラルネットワーク１２０に出力する。なお、サイド情報は、入力データの識別処理または分類処理を補助する内容を含む情報である。
【００１３】
例えば、多層ニューラルネットワーク１２０が、カメラによって撮影された画像データを用いて、画像に写った撮影対象物の識別処理または分類処理を行う場合、撮影対象物の実サイズは、撮影対象物を識別または分類する上で有用な情報となる。
また、カメラと撮影対象物との間の距離が分かれば、上記画像データから撮影対象物の実サイズを算出することが可能となる。
【００１４】
撮影対象物の実サイズは、カメラと撮影対象物との間の距離および画像上の撮影対象物のサイズ（画素数）を用いて、次式から算出することができる。
次式において、空間分解能は、１画素あたりの視野の角度を表しており、カメラごとの特性に基づく値である。画素数は画像上での撮影対象物のサイズである。距離はカメラと撮影対象物との間の距離である。
実サイズ（ｍ）＝画素数（ピクセル）×距離（ｋｍ）×空間分解能（ｍｒａｄ）
【００１５】
サイド情報算出部１１０は、撮影対象物の実サイズを求めるパラメータである、カメラと撮影対象物との間の距離を、サイド情報として算出する。
例えば、サイド情報算出部１１０は、視点が異なる複数の画像データに基づいて、三角測量法を用いてカメラと撮影対象物との間の距離を算出する。
また、サイド情報算出部１１０は、視点が異なる複数の画像データに基づいて、ＳｆＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）によってカメラと撮影対象物との間の距離を算出してもよい。
【００１６】
サイド情報算出部１１０は、測距センサの検出データを用いて、カメラと撮影対象物との間の距離を算出してもよい。測距センサは、カメラの周辺に配置されて、例えば、撮影対象物を含む検出範囲の計測点との距離を検出するセンサであり、赤外線深度センサまたはレーザセンサにより実現される。
【００１７】
サイド情報算出部１１０は、撮影対象物が存在する場所についての事前情報、カメラの位置情報、およびカメラ周辺の地図情報を用いて、カメラと撮影対象物との間の距離を算出してもよい。事前情報とは、撮影対象物が存在する建物または地形部分を示す情報である。例えば、サイド情報算出部１１０は、事前情報および地図情報に基づいて撮影対象物が存在する位置情報を特定し、特定した撮影対象物の位置情報とカメラの位置情報から、カメラと撮影対象物との間の距離を算出する。
【００１８】
カメラと撮影対象物との間の距離を算出するための様々な方法を示したが、サイド情報算出部１１０は、これらの方法のうちから、撮影対象物を撮影するカメラシステムの構成あるいは上記距離の許容算出時間に応じて適切な方法を選択してもよい。
例えば、カメラシステムが上記測距センサを備える場合、サイド情報算出部１１０は、測距センサの検出情報を利用して上記距離を算出する方法を選択する。
また、サイド情報算出部１１０は、許容算出時間内に上記距離の算出が可能であれば、画像データから上記距離を算出してもよい。
【００１９】
多層ニューラルネットワーク１２０は、入力データを用いて識別処理または分類処理を行うニューラルネットワークであり、多層パーセプトロンと呼ばれる場合がある。
なお、多層ニューラルネットワーク１２０は、識別処理または分類処理を行うものであればよく、畳み込みニューラルネットワークであってもよい。
【００２０】
また、多層ニューラルネットワーク１２０には、入力データから出力値を算出するときに使用されるパラメータが、識別処理または分類処理に適した値となるように学習処理が施されているものとする。
多層ニューラルネットワーク１２０に学習処理を施す学習部は、識別分類装置１００が備えてもよいが、識別分類装置１００とは別に設けられた外部装置が備えてもよい。
【００２１】
図２は、多層ニューラルネットワーク１２０の構成例を示す図である。多層ニューラルネットワーク１２０は、図２に示すように、入力層１０、中間層２０および出力層３０の３種類の層から構成されたニューラルネットワークである。
【００２２】
入力層１０は、識別処理または分類処理の対象となるデータが入力される複数のノードを備えている。中間層２０は、いわゆる隠れ層と呼ばれる層であり、１段もしくは複数段の層に配置された複数のノードを備えている。出力層３０は、識別処理または分類処理の出力数に対応した数のノードを備える。例えば、識別処理または分類処理で１つの正解を得る場合、出力層３０のノード数は１つとなる。図２に示す出力層３０では、識別する数または分類するクラスの数に対応するｍ個のノードを備えている。
【００２３】
多層ニューラルネットワーク１２０を構成する複数のノードは、エッジと呼ばれる枝によって接続されている。例えば、入力層１０における複数のノードのそれぞれは、エッジによって、中間層２０における１段目の層に配置された複数のノードのそれぞれと接続されている。中間層２０が複数段の層で構成されている場合、前段の層に配置された複数のノードのそれぞれは、エッジによって、後段の層に配置された複数のノードのそれぞれに接続される。出力層３０のノードは、エッジによって、中間層２０における最終段の層（出力層３０の一つ手前の段の層）に配置された複数のノードのそれぞれに接続される。
【００２４】
エッジには、学習処理によって算出された重みｗが付与されている。
また、出力層３０を構成する１または複数のノードには、学習処理によって算出されたバイアスｂが付与されている。
例えば、中間層２０における最終段の層のノード２０ｌ−ｉが、エッジｉｊによって、出力層３０におけるノード３０−ｊと接続されている場合、エッジｉｊには、学習処理によって算出された重みｗｉｊが付与されている。また、ノード３０−ｊには、学習処理によって算出されたバイアスｂｊが付与される。
なお、中間層２０における最終段の層はｎ個のノードを備えるので、ｉは、１，２，・・・，ｎのうちのいずれかの値となる。同様に、出力層３０はｍ個のノードを備えるので、ｊは、１，２，・・・，ｍのうちのいずれかの値となる。
【００２５】
入力層１０の複数のノードのそれぞれに入力された処理対象のデータは、中間層２０の複数のノードのそれぞれに出力される。
中間層２０における最終段の層に配置されたノード２０ｌ−ｉは、前段の層に配置された複数のノードのそれぞれの出力値を用いて演算を行い、演算結果の出力値ｘｉを出力層３０のノード３０−ｊに出力する。
【００２６】
例えば出力層３０の活性化関数がｓｏｆｔｍａｘ関数である場合、ノード３０−ｊは、重みｗｉｊと出力値ｘｉとの積を用いて下記式（１）に示す演算を行うことにより、識別処理または分類処理の結果が得られる確率であるｐｊを算出する。
ただし、下記式（１）において、ｅを底とする指数関数の指数部は、重みｗｉｊと出力値ｘｉとの積にバイアスｂｊを足した値の総和である。Ｒは、下記式（２）で算出される値である。
2019030895.tif 000003
【００２７】
出力層３０は、上記確率ｐｊが最大となるｊ番目のノードを下記式（３）に従って特定する。下記式（３）に従って特定されたノードの出力値が、処理対象物がｃに識別されることを示す出力値または処理対象物がクラスｃに分類されることを示す出力値となる。
2019030895.tif 000004
【００２８】
また、多層ニューラルネットワーク１２０は、出力層３０で算出された処理結果（上記出力値）と上記サイド情報との間に齟齬がある場合、中間層２０の出力値を変更して識別処理または分類処理を再度行う。
【００２９】
例えば、多層ニューラルネットワーク１２０が、カメラによって撮影された撮影画像に写った船の種類を分類する場合に、船の大きさに関する情報は、船の種類を分類する上で補助的な役割を果たす情報となる。
そこで、サイド情報算出部１１０は、撮影画像に写った船がどの程度の大きさであるかという情報を算出して、多層ニューラルネットワーク１２０に出力する。
【００３０】
多層ニューラルネットワーク１２０では、サイド情報算出部１１０によって算出された上記サイド情報と出力層３０で算出された処理結果の出力値との間に齟齬がある場合に、中間層２０の出力値を変更して分類処理を再度行う。これにより、多層ニューラルネットワーク１２０を再学習することなく、分類処理の分類正解率を向上させることができる。
【００３１】
なお、サイド情報算出部１１０は、撮影画像に写った船がどの程度の大きさであるかという情報の代わりに、撮影画像に写った船の大きさに基づいて、分類対象とはなり得ないクラスを示す情報をサイド情報として求めてもよい。例えば、カメラと船との間の距離が数十メール程度であるにも関わらず、撮影画像において船が数十ピクセル程度の大きさで写っていれば、この船は、大型船舶ではない可能性が高い。このとき、サイド情報算出部１１０は、大型船舶が分類対象のクラスになり得ないことを示すサイド情報を算出する。
【００３２】
また、サイド情報算出部１１０は、極めて可能性が高いクラスを１つまたは複数求めてサイド情報としてもよい。
例えば、サイド情報算出部１１０は、撮影画像に写った船の大きさと閾値とを比較して撮影画像における船の大きさが上記閾値よりも小さい場合、船が小型船舶である可能性が高いと判断し、小型船舶を示す情報をサイド情報として出力する。
【００３３】
さらに、サイド情報算出部１１０は、撮影画像に写った船の大きさに基づいて、当該船がクラスに分類される確からしさを数値として算出してもよい。
例えば、サイド情報算出部１１０は、撮影画像に写った船が小型船舶に分類される確からしさを示す数値、上記船が中型船舶に分類される確からしさを示す数値、および上記船が大型船舶に分類される確からしさを示す数値をそれぞれ算出してサイド情報とする。
【００３４】
図３Ａは、識別分類装置１００の機能を実現するハードウェア構成を示すブロック図である。さらに、図３Ｂは、識別分類装置１００の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。識別分類装置１００におけるサイド情報算出部１１０および多層ニューラルネットワーク１２０のそれぞれの機能は、処理回路により実現される。すなわち、識別分類装置１００は、図４に示すフローチャートのそれぞれの処理を実行するための処理回路を備える。
処理回路は、専用のハードウェアであっても、メモリ２０２に記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。
【００３５】
処理回路が図２Ａに示す専用のハードウェアである場合、処理回路２００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）またはこれらを組み合わせたものが該当する。サイド情報算出部１１０および多層ニューラルネットワーク１２０のそれぞれの機能を別々の処理回路で実現してもよいし、これらの機能をまとめて１つの処理回路で実現してもよい。
【００３６】
処理回路が図２Ｂに示すプロセッサ２０１である場合、サイド情報算出部１１０および多層ニューラルネットワーク１２０のそれぞれの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ２０２に記憶される。
【００３７】
プロセッサ２０１は、メモリ２０２に記憶されたプログラムを読み出して実行することで、サイド情報算出部１１０および多層ニューラルネットワーク１２０のそれぞれの機能を実現する。すなわち、識別分類装置１００は、プロセッサ２０１により実行されたときに、図４に示す一連の処理のそれぞれが結果的に実行されるプログラムを記憶するためのメモリ２０２を備える。これらのプログラムは、サイド情報算出部１１０および多層ニューラルネットワーク１２０の手順または方法を、コンピュータに実行させるものである。
【００３８】
メモリ２０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ−ＥＰＲＯＭ）などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどが該当する。
【００３９】
サイド情報算出部１１０および多層ニューラルネットワーク１２０のそれぞれの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。例えば、サイド情報算出部１１０については、専用のハードウェアとしての処理回路２００でその機能を実現し、多層ニューラルネットワーク１２０については、プロセッサ２０１がメモリ２０２に記憶されたプログラムを読み出して実行することによってその機能を実現してもよい。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、または、これらの組み合わせによって上記機能のそれぞれを実現することができる。
【００４０】
次に動作について説明する。
図４は、実施の形態１に係る識別分類方法を示すフローチャートである。
なお、図４に示す一連の処理が行われる前に、多層ニューラルネットワーク１２０は、識別処理または分類処理に関する学習が施されているものとする。
【００４１】
まず、多層ニューラルネットワーク１２０は、サイド情報を用いずに、入力データについての識別処理または分類処理を行い、処理結果である出力値を算出する（ステップＳＴ１２０）。このとき、サイド情報算出部１１０は、上記入力データに基づいて、識別処理または分類処理についてのサイド情報を算出する。
【００４２】
多層ニューラルネットワーク１２０は、サイド情報算出部１１０が算出したサイド情報と出力層３０から出力された上記出力値との間に齟齬があるか否かを判定する（ステップＳＴ１２１）。
例えば、多層ニューラルネットワーク１２０は、撮影対象物が分類されるクラスｃを示す出力値を出力したときに、撮影対象物がクラスｃには分類され得ないというサイド情報をサイド情報算出部１１０から入力した場合、上記出力値と上記サイド情報との間に齟齬があると判定する。
【００４３】
また、多層ニューラルネットワーク１２０は、撮影対象物が分類されるクラスとしてクラスｃ’以外のクラスを示す出力値を出力したときに、撮影対象物がクラスｃ’に属する可能性が極めて高いことを示すサイド情報をサイド情報算出部１１０から入力した場合、上記出力値と上記サイド情報との間には齟齬があると判定する。
【００４４】
さらに、多層ニューラルネットワーク１２０は、複数のクラスのそれぞれに撮影対象物が分類される確からしさを示す数値を、サイド情報として入力した場合、例えば、出力層３０で分類結果のクラスを算出する前の計算値（上記式（３）に代入されるｐｊの値）とクラスに撮影対象物が分類される確からしさを示すサイド情報とを加算する。次に、多層ニューラルネットワーク１２０は、例えば、加算値が一定値よりも小さい場合、上記出力値と上記サイド情報との間に齟齬があると判定する。
【００４５】
多層ニューラルネットワーク１２０は、出力値とサイド情報との間に齟齬がないと判定した場合（ステップＳＴ１２１；ＮＯ）、ステップＳＴ１２０で算出された出力値を識別結果または分類結果として出力する（ステップＳＴ１２２）。この後、図４に示す一連の処理が終了する。
【００４６】
図５は、多層ニューラルネットワーク１２０の出力値の算出に寄与するノードｋを特定する処理の概要を示す図であって、多層ニューラルネットワーク１２０によって撮影対象物のクラス分類が行われた場合を示している。出力層３０の活性化関数がｓｏｆｔｍａｘ関数であり、出力層３０のノードが、上記式（３）に従ってクラスｃを示す出力値を選択したものとする。
【００４７】
多層ニューラルネットワーク１２０は、クラスｃを示す出力値と、サイド情報との間に齟齬があると判定した場合（ステップＳＴ１２１；ＹＥＳ）、図５に示すように、中間層２０を構成する複数のノードのうち、出力層３０の前段にあるノードから、上記出力値の算出に大きく寄与したノードｋを特定する（ステップＳＴ１２３）。
【００４８】
例えば、出力層３０の活性化関数がｓｏｆｔｍａｘ関数であり、撮影対象物がクラスｃに分類される確率ｐｃが最も大きい場合に、クラスｃを示す出力値が出力層３０から出力される。確率ｐｃは、下記式（４）によって算出することができる。
下記式（４）において、出力層３０の前段にある複数のノード（中間層２０の最終段のノード）に関連したパラメータは、ｗｉｃおよびｘｉである。ｗｉｃは、多層ニューラルネットワーク１２０に施された学習処理において算出されたエッジの重みであり、ｘｉは出力層３０の前段にあるノードの出力値である。
2019030895.tif 000005
【００４９】
出力層３０の前段にある複数のノードのうち、確率ｐｃが最大の値になったことに最も寄与したノードｋは、下記式（５）から求めることができる。
下記式（５）における重みｗｉｃと出力値ｘｉとの積は、上記式（４）における指数関数の指数部にあるので、確率ｐｃの決定に大きく寄与していると言える。
2019030895.tif 000006
【００５０】
多層ニューラルネットワーク１２０は、出力層３０の前段にあるノードと出力層３０のノードとを接続するエッジの重みｗｉｃと、出力層３０の前段にあるノードの出力値ｘｉとを特定する。次に、多層ニューラルネットワーク１２０は、確率ｐｃの決定に大きく寄与する重みｗｉｃと出力値ｘｉとの積を上記式（５）に代入することで、クラスｃを示す出力値の算出に大きく寄与したノードｋを特定する。例えば、多層ニューラルネットワーク１２０は、上記式（５）に最大の出力値ｘｉを代入して特定したノードｉをノードｋとしてもよい。
【００５１】
なお、これまでノードｋとして１つのノードを特定する場合を示したが、多層ニューラルネットワーク１２０の出力値への寄与が大きいもの（例えば、閾値以上であるもの）であれば、多層ニューラルネットワーク１２０は、複数のノードをノードｋとして特定してもよい。
【００５２】
また、上記式（４）および上記式（５）は、ノードｋを特定するための計算式の一例であり、実施の形態１における識別分類方法は、この計算式に限定されるものではない。
例えば、出力層３０の活性化関数はｓｏｆｔｍａｘ関数以外であってもよく、ノードｋを特定するための計算式も上記式（４）および上記式（５）以外であってもよい。
【００５３】
図４の説明に戻る。
多層ニューラルネットワーク１２０は、ステップＳＴ１２３で特定したノードｋの出力値ｘｋをより小さな値に変更して、出力層３０で出力値の算出を再度行う（ステップＳＴ１２４）。出力値ｘｋは、従前よりも小さな値であればよいが、以降ではｘｋ＝０とした場合を例に挙げて説明する。
【００５４】
上記式（１）は下記式（６）のように表すことができ、上記式（２）は下記式（７）のように表すことができる。下記式（６）および下記式（７）では、単純にｘｋに０を代入するのではなく、ｉ≠ｋとしてｘｋに関わる計算を省くことで、撮影対象物が、分類対象となる複数のクラスのそれぞれに分類される確率ｐ’ｊを算出することができる。
出力層３０では、下記式（６）および下記式（７）に従って確率ｐ’ｊが算出される。これにより、出力値の再計算における演算量を削減することができる。
2019030895.tif 000007
【００５５】
出力層３０は、確率ｐ’ｊを算出すると、これを下記式（８）に代入することにより、確率ｐ’ｊが最大となるｊ番目のノードを特定する。
例えば、下記式（８）で特定されたノードの出力値が、撮影対象物が新たなクラスｃ’に分類されることを示す出力値となる。
2019030895.tif 000008
【００５６】
ステップＳＴ１２４の処理が完了すると、多層ニューラルネットワーク１２０は、再びステップＳＴ１２１の処理に戻り、新たなクラスｃ’を示す出力値とサイド情報との間に齟齬があるか否かを判定する。
クラスｃ’を示す出力値とサイド情報との間に齟齬がないと判定した場合（ステップＳＴ１２１；ＮＯ）、クラスｃ’を示す出力値を、分類結果として出力する（ステップＳＴ１２２）。
【００５７】
一方、多層ニューラルネットワーク１２０は、クラスｃ’を示す出力値とサイド情報との間に齟齬があると判定した場合（ステップＳＴ１２１；ＹＥＳ）、出力層３０の前段にあるノードのうち、上記出力値の算出に大きく寄与したノードｋ’を特定する（ステップＳＴ１２３）。
【００５８】
例えば、多層ニューラルネットワーク１２０は、クラスｃ’を示す出力値の算出に大きく寄与したノードｋ’と、前述のように特定されたノードｋとの集合をＬ＝｛ｋ，ｋ’｝として、集合Ｌに含まれるノードｋの出力値ｘｋとノードｋ’の出力値ｘｋ’を変更する。出力値ｘｋおよび出力値ｘｋ’は従前よりも小さな値であればよいが、以降では、ｘｋ＝０およびｘｋ’＝０とした場合を例に挙げて説明する。
【００５９】
ｘｋ＝０およびｘｋ’＝０とした場合、上記式（１）は下記式（９）のように表すことができ、上記式（２）は下記式（１０）のように表すことができる。
下記式（９）および下記式（１０）では、単純にｘｋとｘｋ’とのそれぞれに０を代入するのではなく、集合Ｌに含まれるノードの出力値に関わる計算を省くことで、撮影対象物が分類対象となる複数のクラスのそれぞれに分類される確率ｐ’’ｊを算出することができる。出力層３０では、下記式（９）および下記式（１０）に従って、確率ｐ’’ｊが算出される。これにより、出力値の再計算における演算量を削減することができる。
2019030895.tif 000009
【００６０】
出力層３０は、確率ｐ’’ｊを算出すると、これを下記式（１１）に代入することで、確率ｐ’’ｊが最大となるｊ番目のノードを特定する。下記式（１１）で特定されたノードの出力値が、撮影対象物が新たなクラスｃ’’に分類されることを示す出力値となる。以降、ステップＳＴ１２１で出力値とサイド情報との間に齟齬が発生する度に、集合Ｌに出力層３０の前段にあるノードを追加して、前述した一連の処理を繰り返す。
2019030895.tif 000010
【００６１】
なお、これまでの説明では、多層ニューラルネットワーク１２０の出力値とサイド情報との間に齟齬がある場合に、多層ニューラルネットワーク１２０が、出力層３０の前段のノードの出力値を変更して、識別処理または分類処理を再度行う場合を示した。
多層ニューラルネットワーク１２０の出力値とサイド情報との間に齟齬がある場合に、多層ニューラルネットワーク１２０が、中間層２０の複数のノードのうち、後段のノードの出力値の算出に大きく寄与したノードを順に遡って特定し、特定したノードの出力値を変更して識別処理または分類処理を再度行ってもよい。
【００６２】
例えば、多層ニューラルネットワーク１２０の出力値がＡである場合、多層ニューラルネットワーク１２０は、出力層３０の前段のノード（中間層２０の最終段のノード）のうち、出力値Ａの算出に大きく寄与したノードＮ１を特定する。
特定したノードＮ１の出力値がＢである場合、多層ニューラルネットワーク１２０は、出力層３０の前々段のノード（中間層２０の最終段の前段のノード）のうち、出力値Ｂの算出に大きく寄与したノードＮ２を特定する。
特定したノードＮ２の出力値がＣである場合、多層ニューラルネットワーク１２０は、出力層３０の前々々段のノード（中間層２０の最終段の前々段にあるノード）のうち、出力値Ｃの算出に大きく寄与したノードＮ３を特定する。
このように後段のノードの出力値の算出に大きく寄与したノードを順に遡って特定することでも、識別処理の識別率または分類処理の分類正解率を向上させることができる。
【００６３】
以上のように、実施の形態１に係る識別分類装置１００において、サイド情報算出部１１０が、識別処理または分類処理を補助するサイド情報を算出する。多層ニューラルネットワーク１２０は、識別処理または分類処理の処理結果とサイド情報との間に齟齬がある場合に、中間層２０の出力値を変更して識別処理または分類処理を再度行う。
特に、サイド情報算出部１１０は、入力データに基づいてサイド情報を算出する。
このように構成することで、学習済みの多層ニューラルネットワーク１２０を再学習することなく、識別処理の識別率または分類処理の分類正解率を向上させることができる。
【００６４】
実施の形態１に係る識別分類装置１００において、多層ニューラルネットワーク１２０が、中間層２０を構成する複数のノードのうち、処理結果の算出に大きく寄与したノードを特定し、特定したノードの出力値を変更して処理結果の算出を再度行う。
特に、多層ニューラルネットワーク１２０は、中間層２０を構成するノードのうち、出力層３０を構成するノードの前段のノードから、処理結果の算出に大きく寄与したノードを特定する。このように構成することで、識別処理の識別率または分類処理の分類正解率を向上させることができる。
【００６５】
実施の形態１に係る識別分類装置１００において、多層ニューラルネットワーク１２０が、処理結果とサイド情報との間に齟齬がある場合、中間層２０を構成する複数のノードのうち、後段のノードにおける出力値の算出に大きく寄与したノードを順に遡って特定し、特定したノードの出力値を変更して処理結果の算出を再度行う。
このように構成することで、識別処理の識別率または分類処理の分類正解率を向上させることができる。
【００６６】
なお、本発明は上記実施の形態に限定されるものではなく、本発明の範囲内において、実施の形態の任意の構成要素の変形もしくは実施の形態の任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００６７】
この発明に係る識別分類装置は、学習済みの多層ニューラルネットワークを再学習することなく、識別率または分類正解率を向上させるので、例えば、撮影画像に写った対象物を認識する画像認識装置に利用することができる。
【符号の説明】
【００６８】
１０  入力層、２０  中間層、２０ｌ−１，２０ｌ−２，・・・，２０ｌ−ｉ，・・・，２０ｌ−ｎ，３０−１，３０−２，・・・，３０−ｊ，・・・，３０−ｍ  ノード、３０  出力層、１００  識別分類装置、１１０  サイド情報算出部、１２０  多層ニューラルネットワーク、２００  処理回路、２０１  プロセッサ、２０２  メモリ。
【図１】
2019030895.tif 000011
【図２】
2019030895.tif 000012
【図３】
2019030895.tif 000013
【図４】
2019030895.tif 000014
【図５】
2019030895.tif 000015
【国際調査報告】
2019030895.tif 000016
2019030895.tif 000017
2019030895.tif 000018