IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許-情報処理装置、情報処理方法 図1
  • 特許-情報処理装置、情報処理方法 図2
  • 特許-情報処理装置、情報処理方法 図3
  • 特許-情報処理装置、情報処理方法 図4
  • 特許-情報処理装置、情報処理方法 図5
  • 特許-情報処理装置、情報処理方法 図6
  • 特許-情報処理装置、情報処理方法 図7
  • 特許-情報処理装置、情報処理方法 図8
  • 特許-情報処理装置、情報処理方法 図9
  • 特許-情報処理装置、情報処理方法 図10
  • 特許-情報処理装置、情報処理方法 図11
  • 特許-情報処理装置、情報処理方法 図12
  • 特許-情報処理装置、情報処理方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-12
(45)【発行日】2024-03-21
(54)【発明の名称】情報処理装置、情報処理方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240313BHJP
   G06N 3/06 20060101ALI20240313BHJP
   G06F 17/10 20060101ALI20240313BHJP
   G06T 7/00 20170101ALI20240313BHJP
【FI】
G06N20/00 130
G06N3/06
G06F17/10 A
G06T7/00 350C
【請求項の数】 11
(21)【出願番号】P 2019174542
(22)【出願日】2019-09-25
(65)【公開番号】P2021051589
(43)【公開日】2021-04-01
【審査請求日】2022-09-26
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】飯尾 裕一郎
(72)【発明者】
【氏名】鈴木 温之
【審査官】円子 英紀
(56)【参考文献】
【文献】国際公開第2016/189675(WO,A1)
【文献】特開2010-009518(JP,A)
【文献】特開2019-159959(JP,A)
【文献】米国特許出願公開第2018/0247107(US,A1)
【文献】特開2014-049118(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
G06T 7/00- 7/90
G06V 10/00-20/90
G06V 30/418
G06V 40/16
G06V 40/20
G06F 17/00-17/18
(57)【特許請求の範囲】
【請求項1】
学習データ群を用いて学習した階層型ニューラルネットワークにおいて誤った結果を出力する学習データに対して困難事例ラベルを設定する設定手段と、
前記困難事例ラベルが設定された学習データであるか否かを分類するための出力層を伴うネットワークを前記階層型ニューラルネットワークに追加した更新階層型ニューラルネットワークを生成する更新手段と、
前記困難事例ラベルが設定された学習データであるか否かを前記出力層が判別するように前記ネットワークを学習するための学習手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記設定手段は、
前記階層型ニューラルネットワークにおいて誤った結果を出力する学習データについて該階層型ニューラルネットワークの中間層から得られる特徴量を取得し、該取得した特徴量間の類似度に基づいて前記設定を行うことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記設定手段は、
前記階層型ニューラルネットワークにおいて誤った結果を出力する学習データのうち、前記類似度が閾値以上となる学習データに対して困難事例ラベルを設定することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記設定手段は、
前記階層型ニューラルネットワークにおいて正解を出力する学習データについて該階層型ニューラルネットワークの中間層から得られる特徴量を取得し、該学習データのうち、前記困難事例ラベルが設定された学習データの特徴量との類似度が閾値以上となる特徴量の学習データに対して困難事例ラベルを設定することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
前記学習手段は、前記出力層における損失に基づいて、前記出力層より前の前記ネットワークの層における重み係数を更新することを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記設定手段は前記困難事例ラベルが設定された学習データをユーザに提示することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
【請求項7】
更に、
前記学習データ群に新たな学習画像を追加する追加手段を備え、
前記設定手段は、前記新たな学習画像のうち前記階層型ニューラルネットワークにおいて誤った結果を出力する学習データに対して困難事例ラベルを設定することを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記誤った結果は、オブジェクトの誤分類であることを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項9】
前記誤った結果は、オブジェクトの未検出もしくは誤検出であることを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項10】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の設定手段が、学習データ群を用いて学習した階層型ニューラルネットワークにおいて誤った結果を出力する学習データに対して困難事例ラベルを設定する設定工程と、
前記情報処理装置の更新手段が、前記困難事例ラベルが設定された学習データであるか否かを分類するための出力層を伴うネットワークを前記階層型ニューラルネットワークに追加した更新階層型ニューラルネットワークを生成する更新工程と、
前記情報処理装置の学習手段が、前記困難事例ラベルが設定された学習データであるか否かを前記出力層が判別するように前記ネットワークを学習するための学習工程と
を備えることを特徴とする情報処理方法。
【請求項11】
コンピュータを、請求項1乃至9の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、階層型ニューラルネットワークにおける学習技術に関するものである。
【背景技術】
【0002】
画像や音声などのデータの内容を学習して認識を行う技術が存在する。認識処理の目的をここでは認識タスクと呼ぶ。例えば、画像から人間の顔の領域を検出する顔認識タスク、画像中の物体(被写体)のカテゴリ(猫・車・建物等)を判別する物体カテゴリ認識タスク、シーンのカテゴリ(都市・山間・海岸等)を判別するシーン種別認識タスク等、多様な認識タスクがある。
【0003】
上記のような認識タスクを学習・実行する技術としては、ニューラルネットワークの技術が知られている。深い(層の数が多い)多層ニューラルネットワークはDeep Neural Networks(DNN)と呼ばれ、性能が高いことで近年注目されている。DNNは、データを入力する入力層、複数の中間層、認識結果を出力する出力層、から構成されている。DNNの学習フェーズでは、予め設定された損失関数に出力層から出力される推定結果と教師情報とを入力して損失(推定結果と教師情報との差異を表す指標)を算出し、誤差逆伝搬法(バックプロパゲーション)などを用いて損失を最小化するように学習を行う。
【0004】
DNNの学習を行う際に、関連のある複数のタスクを同時に学習することでそれぞれのタスクの精度を向上させる、マルチタスク学習の技術が知られている。例えば、特許文献1では、入力画像中に人が存在するか否かの識別タスクと、入力画像における人の位置の回帰タスクと、を同時に学習することで、人の一部が隠れている場合でも精度よく人の位置を検知できる技術が開示されている。特許文献2では、DNNを用いて複数のサブタスクの推定を行い、後段で複数の異なるサブタスクの推定結果を統合することでメインタスクの推定精度の向上を図っている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2016-6626号公報
【文献】特開2019-32773号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ニューラルネットワークによる認識タスクでは、誤った推定結果を出力してしまう場合がある。特に特定事例の学習データが不足している場合等に、該特定事例に対して誤った推定をすることが起こりうる。学習データが不足していなくても、特定事例については、推定の再現率または適合率が低くなるなど推定精度が低いことがある。本発明では、階層型ニューラルネットワークにおいて全体の精度への劣化の影響を軽減しつつ低い精度の事例の精度を向上させるための学習技術を提供する。
【課題を解決するための手段】
【0007】
本発明の一様態は、学習データ群を用いて学習した階層型ニューラルネットワークにおいて誤った結果を出力する学習データに対して困難事例ラベルを設定する設定手段と、
前記困難事例ラベルが設定された学習データであるか否かを分類するための出力層を伴うネットワークを前記階層型ニューラルネットワークに追加した更新階層型ニューラルネットワークを生成する更新手段と、
前記困難事例ラベルが設定された学習データであるか否かを前記出力層が判別するように前記ネットワークを学習するための学習手段と
を備えることを特徴とする。
【発明の効果】
【0008】
本発明の構成によれば、階層型ニューラルネットワークにおいて全体の精度への劣化の影響を軽減しつつ低い精度の事例の精度を向上させることができる。
【図面の簡単な説明】
【0009】
図1】ニューラルネットワーク処理装置の機能構成例を示すブロック図。
図2】ニューラルネットワーク処理装置1000が行う処理のフローチャート。
図3】ステップS202における処理の詳細を示すフローチャート。
図4】ステップS205における学習処理の詳細を示すフローチャート。
図5】分類タスクを行うDNNの一般的な学習処理の流れを示す図。
図6】(a)は分類タスクを行うDNNの中間層におけるCNN特徴量を特徴空間上に可視化した様子を示す図、(b)は誤分類を説明する図。
図7】(a)は初期DNNモデル120の一例を示す図、(b)は更新後の初期DNNモデル120の一例を示す図。
図8】ステップS202における処理の詳細を示すフローチャート。
図9】(a)は初期DNNモデル120の一例を示す図、(b)は更新後の初期DNNモデル120の一例を示す図。
図10】ニューラルネットワーク処理装置3000の機能構成例を示すブロック図。
図11】ニューラルネットワーク処理装置3000が行う処理のフローチャート。
図12】未検出および誤検出を説明する図。
図13】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
[第1の実施形態]
本実施形態では、分類タスクを高精度に行うニューラルネットワーク処理装置について説明する。分類タスクは、入力画像に含まれる対象が、予め定められた複数のクラスのいずれに属するのかを判別するタスクである。本実施形態では、入力画像に含まれているオブジェクトが3つのクラス(「犬」「猫」「豚」)の何れに属するのかを判別する分類タスクをDNN(階層型ニューラルネットワーク)を用いて処理するニューラルネットワーク処理装置について説明する。
【0012】
一般に、分類タスクを行うDNNは、入力画像に対して、各クラスが該入力画像中に存在する尤度(クラス尤度)を表すクラス尤度ベクトルを出力する。例えば、猫が写った画像を入力画像としてDNNに入力した場合、該DNNは、犬クラスの尤度=0.10、猫クラスの尤度=0.85、豚クラスの尤度=0.05、を列挙したクラス尤度ベクトル[犬、猫、豚]=[0.10,0.85,0.05]を出力する。このクラス尤度ベクトルでは、猫クラスの尤度が最も高いため、DNNは、入力画像中の猫は猫クラスに属すると判別したことになる。
【0013】
先ず、分類タスクを行うDNNの一般的な学習処理の流れについて図5を用いて説明する。分類タスクを行うDNNの学習では複数の学習データを用いる。学習データは、学習画像と正解クラスラベルのペアから成る。学習画像はDNNに学習させたいオブジェクトが含まれている画像であり、正解クラスラベルは該オブジェクトが属するクラスを表す文字列である。
【0014】
先ずは、(1)として示す如く、学習画像をDNNの入力層へ入力し、中間層および出力層を動作させて該学習画像におけるオブジェクトに対するクラスの推定結果としてのクラス尤度ベクトルを導出し、該クラス尤度ベクトルを出力層から出力する。DNNの各層は、学習パラメータである重み係数を保持しており、各層では入力に対して重み係数を用いた重みづけを行った結果を次の層へ出力する処理を行っており、これにより、出力層では、学習画像に対するクラス尤度ベクトルが導出される。クラス尤度ベクトルは、各クラスに対応する尤度を要素として有する1次元ベクトルであり、上記の例では、犬クラスの尤度、猫クラスの尤度、豚クラスの尤度、を要素として有する1次元ベクトルである。
【0015】
次に、(2)として示す如く、クラス尤度ベクトルと、教師ベクトルと、の差分を損失関数に入力することで得られる関数値を損失として算出する。教師ベクトルとは、クラス尤度ベクトルと同数の要素を有する1次元ベクトルであり、入力層に入力した学習画像とペアになっている正解クラスラベルに対応する要素の値を1、それ以外の要素の値を0とする1次元ベクトルである。入力層に入力した学習画像とペアになっている正解クラスラベル=「猫」の場合、対応する教師ベクトルは、[犬、猫、豚]=[0,1,0]である。
【0016】
そして最後に、(3)として示す如く、算出した損失に基づいて誤差逆伝搬法(バックプロパゲーション)などを用いてDNNにおける各層の重み係数を更新する。誤差逆伝搬法は周知の技術であるため、説明は省略する。
【0017】
一般に分類タスクを行うDNNは、複数の畳み込み層を連結した中間層において入力画像から特徴量(CNN特徴量)を抽出し、該特徴量をDNNの全結合層で統合することで、入力画像におけるオブジェクトのクラスの分類を行う。
【0018】
そして上記の(1)、(2)、(3)の処理を繰り返してDNNにおける各層の重み係数を更新していくことで、損失を徐々に小さくしていくことにより、DNNの学習処理を達成する。
【0019】
図6(a)に、分類タスクを行うDNNの中間層におけるCNN特徴量を特徴空間上に可視化した様子を示す。正解クラスラベルが「犬」である学習画像のCNN特徴量を○、正解クラスラベルが「豚」である学習画像のCNN特徴量を◇、正解クラスラベルが「猫」である学習画像のCNN特徴量を△で図示している。また、犬クラスに属するブルドッグのCNN特徴量を●、猫クラスに属するペルシャ猫のCNN特徴量を▲で示している。DNNの全結合層はこれらのCNN特徴量に基づいて入力画像中のオブジェクトの分類を行う。
【0020】
分類タスクでは誤分類、すなわちあるクラスに属するオブジェクトを誤って別のクラスに分類してしまうことが発生する。誤分類には、DNNにとって未知(十分に学習できていない)なオブジェクトであるために誤ったクラスへ分類されてしまう誤分類aと、特定のクラスのオブジェクトが系統的に特定のクラスに誤分類されてしまう誤分類bと、がある。
【0021】
誤分類aでは、抽出されたCNN特徴量に十分な性能がないため、DNNにおける全結合層では入力画像がいずれのクラスに属するかの判定が正しくできない。図6(a)におけるペルシャ猫のCNN特徴量の分布は、誤分類aの要因となる状態の一例である。図6(a)に示す如く、同じペルシャ猫であってもCNN特徴量が特徴空間の様々な場所に分布しており、「猫」らしさを表す特徴量が抽出しきれていない(DNNには何の画像なのかわかっていない)状態となっている。このような誤分類aの発生を抑制するためには、中間層の学習を十分に行う必要がある。
【0022】
一方、誤分類bでは、画像の特徴としてCNN特徴量が十分に抽出できているものの、DNNの全結合層における分類時に誤ったクラスに分類されてしまう。図6(a)におけるブルドッグのCNN特徴量の分布は、誤分類bの要因となる状態の一例である。図6(a)に示す如く、特徴空間上ではブルドッグのCNN特徴量同士の距離が近く、ブルドッグらしさを表す特徴を抽出できていると言えるが、他の多くの犬のCNN特徴量とは特徴空間上での距離が遠い。図6(a)の例では、ブルドッグのCNN特徴量の分布は、豚のCNN特徴量の分布に含まれている。このような場合、図6(b)に示す如く、DNNはブルドッグを豚クラスに誤分類してしまう場合がある。特に、ブルドッグのサンプル数が少ない場合やDNNの全結合層が軽量である場合には、誤分類bが発生しやすくなる。本実施形態では、誤分類bを抑制することで分類タスクの精度向上を実現する。
【0023】
次に、DNNを用いて分類タスクを行うニューラルネットワーク処理装置の機能構成例について、図1のブロック図を用いて説明する。学習データ群110は、学習画像と、該学習画像に含まれるオブジェクトが属するクラスを表す文字列である正解クラスラベルと、のペアを複数含むデータセットであり、分類タスクのためのデータセットである。初期DNNモデル120は、予め学習データ群110を用いて学習されたDNNモデルである。分類タスクを行う初期DNNモデル120の一例を図7(a)に示す。図7(a)に示す初期DNNモデル120は、96画素×96画素のRGB画像(Rプレーン、Gブレーン、プレーンの3プレーンを有する)を入力とし、2つの畳み込み層と3つの全結合層を通して3つのクラスのいずれかに分類するDNNモデルである。最後の畳み込み層から出力される9216×1のテンソル(1次元ベクトル)が初期DNNモデル120におけるCNN特徴量となる。なお、本実施形態に適用可能なDNNの構造はこのような構造に限らず、他の構造を採用しても良い。探索部1100は、初期DNNモデル120で誤分類(誤分類b)された学習データを探索する。更新部1200は、探索部1100による探索結果に基づき、困難事例を検出する困難事例検出タスクを実施可能なネットワーク構造を初期DNNモデル120に追加した新しい構造のDNNモデルを生成する。学習処理部1300は、更新部1200によって更新された新しいネットワーク構造を有するDNNモデルの学習処理を行う。
【0024】
なお、本実施形態では、図1の構成を有するニューラルネットワーク処理装置1000を1台の装置で構成する。しかし、図1の構成を有するニューラルネットワーク処理装置1000を複数台の装置で構成しても良い。
【0025】
次に、ニューラルネットワーク処理装置1000が行う処理について、図2のフローチャートに従って説明する。
【0026】
ステップS202では、探索部1100は、学習データ群110を構成するそれぞれの学習データのうち、初期DNNモデル120による分類タスクにおいて誤分類した学習データを困難事例データに設定する処理を行う。ステップS202における処理の詳細について、図3のフローチャートに従って説明する。
【0027】
ステップS301では、探索部1100は学習データ群110に含まれるそれぞれの学習データのうち、初期DNNモデル120による分類タスクにおいて誤分類した学習データを抽出する。
【0028】
例えば、探索部1100は、学習データ群110に含まれるそれぞれの学習データについて、該学習データに含まれている学習画像を初期DNNモデル120に入力することで該初期DNNモデル120から出力されるクラス尤度ベクトルを取得する。そして探索部1100は、学習データ群110に含まれるそれぞれの学習データについて、該学習データに対応するクラス尤度ベクトルにおいて最も高い尤度に対応するクラスと、該学習データに含まれている正解クラスラベルが指すクラスと、が一致している否かを判断する。そして探索部1100は、学習データ群110に含まれるそれぞれの学習データのうち、一致していないと判断した学習データを、学習データ群110から抽出する。ステップS301において探索部1100が学習データ群110から抽出した学習データが困難事例データの候補となる。
【0029】
ステップS302で探索部1100は、ステップS301で困難事例データの候補として抽出したそれぞれの学習データについて、該学習データに含まれている学習画像を入力した初期DNNモデル120の中間層からの出力(CNN特徴量)を取得する。初期DNNモデル120では、複数の畳み込み層を連結した中間層によって学習画像からCNN特徴量を抽出するので、探索部1100は、該中間層の出力をCNN特徴量として取得する。
【0030】
ステップS303で探索部1100は、ステップS301で困難事例データの候補として抽出した学習データ間でCNN特徴量の類似度(CNN特徴量類似度)を求める。例えば、図7(a)に示す初期DNNモデル120のCNN特徴量は9216×1の1次元ベクトルで表現されるので、該1次元ベクトル同士のコサイン類似度でCNN特徴量間の類似度(CNN特徴量類似度)を算出することができる。なお、CNN特徴量類似度はCNN特徴量間のコサイン類似度に限らず、他の算出方法で求めたCNN特徴量間の類似度であっても良い。
【0031】
ステップS304で探索部1100は、ステップS301で困難事例データの候補として抽出した学習データから、「互いの正解クラスラベルが同じであり且つ互いの間のCNN特徴量類似度が閾値以上となる学習データ」を困難事例データとして選択する。
【0032】
互いの間のCNN特徴量類似度が閾値以上となる学習データ群を構成するそれぞれの学習データの正解クラスラベルが互いに異なる場合、現状のCNN特徴量でこれらの学習データを分離することはできず、これは上記の誤分類aに属する誤分類パターンとなる。
【0033】
本実施形態では、CNN特徴量類似度の閾値Tsおよび困難事例データの候補における困難事例データの割合の閾値Tcがハイパーパラメータとして予め設定されているものとする。このハイパーパラメータはユーザがマニュアル操作で設定しても良いし、何らかの処理を介してニューラルネットワーク処理装置1000が設定しても良い。
【0034】
この場合、探索部1100は、ステップS301で困難事例データの候補として抽出した学習データから、互いの正解クラスラベルが同じであり且つ互いの間のCNN特徴量類似度が閾値Ts以上となる学習データを困難事例データとして選択する。そして探索部1100は、「困難事例データの候補として抽出した学習データの数」に対する「困難事例データとして選択した学習データの数」の割合が閾値Tc以上であれば、困難事例データに対し、追加教師情報として分類困難ラベルを付与する。
【0035】
例えば、Ts=0.6、Tc=0.9である場合、探索部1100は、困難事例データの候補として抽出した学習データから、互いの正解クラスラベルが同じ且つ互いの間のCNN特徴量類似度が0.6以上となる学習データを困難事例データとして選択する。そして探索部1100は、「困難事例データの候補として抽出した学習データの数」に対する「困難事例データとして選択した学習データの数」の割合が90%以上であれば、困難事例データに対し、追加教師情報として分類困難ラベルを付与する。
【0036】
分類困難ラベルは、誤分類しやすい学習データ集合のうちCNN特徴空間上で近接している学習データの集合を他の学習データと区別するために用いられる。なお、分類困難ラベルを付与する条件を満たす学習データ集合が複数存在する場合には、それぞれの学習データ集合に、該学習データ集合に対応する分類困難ラベルを付与してもよい。
【0037】
分類困難事例の説明として簡単のため「ブルドッグ」を例に挙げて説明を行ったが、実際はCNN特徴量類似度にのみ基づいてカテゴライズされるため、犬種のようにユーザが明に分類困難事例の区分を設定して分類困難事例が形成されることはない。
【0038】
ステップS305では、探索部1100は、学習データ群110において困難事例データではない学習データ(分類成功学習データ)から、困難事例データとしての学習データとのCNN特徴量類似度が閾値以上となる学習データを探索する。この探索の結果、分類成功学習データのうち、困難事例データとしての学習データとのCNN特徴量類似度が閾値以上となる分類成功学習データがあれば、探索部1100は、該分類成功学習データに分類困難ラベルを付与する。
【0039】
より具体的には、探索部1100は、困難事例データの正解クラスラベルと同じ正解クラスラベルに対応する分類成功学習データのCNN特徴量を上記の如く初期DNNモデル120の中間層から取得する。そして探索部1100は、困難事例データのCNN特徴量と、困難事例データの正解クラスラベルと同じ正解クラスラベルに対応する分類成功学習データのCNN特徴量と、のCNN特徴量類似度が閾値Ts以上であれば、該分類成功学習データに対し、追加教師情報として分類困難ラベルを付与する。
【0040】
以上の処理により、学習データ群110においてCNN特徴量では、他のCNN特徴量と区別できているが、分類が困難だった学習データの集合に対して分類困難ラベルが付与される。なお、ここでは学習データ群110に属する全ての学習画像を対象にして困難事例データの抽出を行ったが、これに限らず、学習データ群110における一部の学習データを対象にして困難事例データの抽出を行っても良い。もしくは学習データとは別途用意したバリデーションデータから困難事例データを抽出しても良い。
【0041】
図2に戻って、次に、ステップS203では、更新部1200は、初期DNNモデル120の中間層に分類困難事例を検出するためのネットワーク構造を追加する。具体的には、更新部1200は、CNN特徴量を入力として分類困難事例か否かを分類する1つ以上の全結合層を初期DNNモデル120に追加し、該追加した全結合層からの出力を従来の全結合層の入力に加算する構造に初期DNNモデル120を更新する。
【0042】
図7(a)に示す構造を有する初期DNNモデル120を更新部1200によって更新した更新後の初期DNNモデル120(更新DNNモデル:更新階層型ニューラルネットワーク)の構造の一例を図7(b)に示す。便宜上、初期DNNモデル120の3つの全結合層をそれぞれFC1層、FC2層、FC3層と称する。FC1層は要素数が9216の1次元ベクトルであるCNN特徴量を入力として、要素数が1000の1次元ベクトルである特徴量を出力する。FC2層はFC1層の出力である「要素数が1000の1次元ベクトルである特徴量」を入力として、要素数が100の1次元ベクトルである特徴量を出力する。FC3層はFC2層の出力である「要素数が100の1次元ベクトルである特徴量」を入力として、要素数が3の1次元ベクトルであるクラス尤度ベクトルを出力する。
【0043】
このとき、更新部1200によって、初期DNNモデル120のネットワーク構造にFC1’層、FC2’層、FC3’-2層が追加される。FC1’層は要素数が9216の1次元ベクトルであるCNN特徴量を入力として、要素数が1000の1次元ベクトルである特徴量を出力する。FC2’層はFC1’層の出力である「要素数が1000の1次元ベクトルである特徴量」を入力として、要素数が100の1次元ベクトルである特徴量を出力する。FC3’-2はFC2’層の出力である「要素数が100の1次元ベクトルである特徴量」を入力として、分類困難事例か否かの2クラス分類に対する推定クラス尤度を推定結果として出力する。更に、FC2’層の出力である「要素数が100の1次元ベクトルである特徴量」を入力として、要素数が1000の1次元ベクトルである特徴量を出力するFC3’-1層を追加する。更に、FC1層の出力である「要素数が1000の1次元ベクトルである特徴量」とFC3’-1層の出力である「要素数が1000の1次元ベクトルである特徴量」とを加算するネットワーク構造に変形する。
【0044】
なお、ステップS304においてN(Nは2以上の整数)パターンの困難事例データが生成された場合(分類困難ラベルを付与する条件を満たす学習データ集合の数がNの場合)には、更新部1200は初期DNNモデル120の構造を以下のように更新する。
【0045】
つまり更新部1200は、分類困難事例か否かを分類する2クラス分類のネットワーク構造を有する層をN個だけ初期DNNモデル120に追加し、該N個の層からの出力であるN個の1次元ベクトル(特徴量)がFC1層の出力と加算される構造に更新する。
【0046】
以上の処理により、初期DNNモデル120の結合層で失われていた分類困難事例特有の特徴量をFC1’層、FC2’層で抽出し、FC3’-1層からの出力を従来の特徴量に加えることで分類困難事例に関する特徴をFC2層に与えることができる。そのため、FC2層およびFC3層は学習データのうち分類成功学習データの分類に重要な特徴をFC1層から、分類困難なデータの分類に重要な特徴をFC3’-1層から受け取る。これにより、最終的な推定結果において分類成功学習データの推定分類精度を維持しつつ分類困難なデータの推定分類精度を向上させることができる。なお、本実施形態においては追加した全結合層の出力を従来の全結合層の1層目(FC1)の出力と結合したが、結合する位置を限定することを意図したものではなく、例えばFC2’の出力とFC2の出力とを結合するような構造にしてもよい。また、追加する1つ以上の全結合層の構成もここでは3つの全結合層からなる構造で説明したが、任意の構造にすることが可能である。
【0047】
次に、ステップS204では、更新部1200は、ステップS203で構造を更新した更新DNNモデルを出力する。ステップS205では、学習処理部1300は、ステップS204において更新部1200から出力された更新DNNモデルに対して、分類タスクを行うネットワークの学習処理を行う。
【0048】
なお、更新DNNモデルにおいて新規に追加された層以外の層の重み係数は、初期DNNモデル120において対応する層の重み係数を引き継いでいる。ステップS205における学習処理の詳細について、図4のフローチャートに従って説明する。
【0049】
ステップS401では、学習処理部1300は、学習データ群110に含まれるそれぞれの学習データについて、該学習データに含まれている学習画像を更新DNNモデルに入力して該更新DNNモデルから出力されるクラス尤度ベクトルを求める。そして学習処理部1300は、学習データ群110に含まれるそれぞれの学習データについて、該学習データについて求めたクラス尤度ベクトルと、該学習データに対応する教師ベクトルと、の差分を第1の損失として求める。さらに学習処理部1300は、分類困難事例か否かの2クラス分類の推定結果と分類困難ラベルに基づく損失を第2の損失として求める。「分類困難事例か否かの2クラス分類の推定結果と分類困難ラベルに基づく損失」は、タスクに応じた任意の損失関数を用いて算出可能であり、一般的には交差エントロピー誤差が多く用いられる。
【0050】
ステップS402では、学習処理部1300は、第1の損失および第2の損失に応じて(例えば、第1の損失および第2の損失に基づいて誤差逆伝搬法(バックプロパゲーション)などを用いて)更新DNNにおける対象層の重み係数を更新する。追加されたネットワークは、分類困難ラベルを教師情報としている。分類困難ラベルが付いたデータに対して1、分類困難ラベルが付いていないデータ(分類成功学習データ)に対して0を出力するように学習されてゆくネットワークである。入力された学習データに対する分類困難事例か否かの推定結果と分類困難ラベルとの差分を第2の損失とし、重み係数を更新していくことで第2の損失を小さくしてゆく。これにより、分類困難事例特有の特徴が、FC1‘層、FC2’層で抽出され、FC2層に与えられるようになる。また、分類成功学習データにも、「分類困難事例ではない」という特徴が抽出されるようになり、FC2層に与えられるようになる。例えば、図6に示す「豚」の特徴が抽出される学習データが入力されたときに、「分類困難事例のブルドッグではない」という特徴が与えられることになるので、より精度良く、「豚」と分類することができるようになる。本実施形態においては、CNN特徴量を抽出する複数の畳み込み層については初期DNNモデル120の学習によって十分に学習できており、分類困難事例に属する画像も含めて分類対象の特徴抽出はできている状態にある。また、全結合層における分類においても分類困難事例以外の分類対象に対して高い分類精度を出せている。そこで、ステップS402では既に分類精度が高い既存の学習データに対しては精度を維持しつつ分類困難事例の精度を向上させるために、CNN特徴量を抽出する中間層については重み係数の更新を行わない。また、CNN特徴量に基づき分類困難事例に属していない学習データを正しく分類するための特徴抽出を行う全結合層、即ち追加した全結合層の出力と結合される全結合層(図7(b)におけるFC1層)も重み係数の更新を行わない。ステップS402では、追加した全結合層(図7(b)におけるFC1’層、FC2’層、FC3’-1層、FC3’-2層)の重み係数および追加した全結合層以降の全結合層(図7(b)におけるFC2層、FC3層)の重み係数を更新する。
【0051】
ステップS402における処理により、更新DNNモデルは、元々分類精度の高かった学習データに対する分類精度を維持しつつ、分類困難事例か否かの2クラス分類に関わる学習および分類困難事例のクラス分類に関する学習を行うことができる。
【0052】
<変形例>
探索部1100は、ステップS202において同一の分類困難ラベルが付与された学習データ集合をユーザに提示しても良い。ユーザへの学習データ集合の提示方法は特定の提示方法に限らない。例えば、表示装置に同一の分類困難ラベルごとに学習データ集合を表示しても良いし、投影装置に同一の分類困難ラベルごとに学習データ集合を投影させても良い。また、ユーザには、同一の分類困難ラベルごとの学習データ集合に加えてもしくは代えて他の情報を提示しても良い。例えば、CNN特徴量類似度や初期DNNモデル120における推定結果等を提示してもよい。このようなユーザへの提示により、例えばユーザはハイパーパラメータであるTs、Tcを設定/修正することができる。
【0053】
このように、本実施形態によれば、分類タスクを行うニューラルネットワークにおいて全体の分類精度を維持しつつ、分類精度の低い特定のクラスの分類精度を向上するように効率よく学習を行うことができる。
【0054】
[第2の実施形態]
本実施形態を含む以下の各実施形態では、第1の実施形態との差分について説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。第1の実施形態では分類タスクを学習対象とした。本実施形態では、入力画像中に特定の物体が含まれていた場合には、該入力画像における該特定の物体の画像領域を検出(推定)するタスクである物体領域検出タスクを学習対象とする。
【0055】
例えば、特定の物体として人体を用いた物体領域検出タスクを学習済みのDNNに図12(a)の画像200(人体の領域21を含む画像)が入力されたとする。DNNが正しく推定できた場合には、図12(b)に示す画像210のように、人体が存在する領域22を出力する。しかし、DNNが推定に失敗した場合には、図12(c)に示す画像220のように、誤って人体が存在しない領域23を出力する事例(誤検出)や、人体が存在する領域24を検出できない事例(未検出)が発生する。本実施形態では、系統的に検出が困難な未検出事例や系統的に誤検出が発生しやすい事例の発生を抑制することで物体領域検出タスクの精度を向上する。
【0056】
はじめに、物体領域検出タスクを行うDNNの学習処理の流れの一例について、分類タスクを行うDNNの学習処理の流れと異なる点を、図5を用いて説明する。ここでは、DNNで検出する物体は1種とする。
【0057】
物体領域検出タスクを行うDNNの学習では、学習画像と教師マップのペアを学習データとして用いる。学習画像はDNNに学習させたいオブジェクトが含まれている画像であり、教師マップは該学習画像における該オブジェクトの領域を構成する画素に対応する画素値を1とし、該領域以外の領域を構成する画素に対応する画素値を0とした2値画像である。
【0058】
先ずは、(1)として示す如く、学習画像をDNNの入力層へ入力し、中間層および出力層を動作させて該学習画像におけるオブジェクトの推定領域を表す推定マップを出力層から出力する。推定マップは、学習画像においてオブジェクトが存在すると推定される推定領域を表す2次元マップであり、該2次元マップにおける各画素の画素値は0以上1以下の値を取る。画素の画素値が1に近いほど、該画素はオブジェクトが存在する領域を構成する画素である確率がより高いと推定されたことになる。なお、複数種のオブジェクトを検出する場合には、推定マップがオブジェクトの種別数だけ出力されることになる。
【0059】
次に、(2)として示す如く、推定マップと教師マップとの差分を損失関数に入力することで得られる関数値を損失として算出する。損失の算出は、推定マップと教師マップとで同位置の画素の画素値の差分に基づいて予め設定された損失関数を用いて算出される。
【0060】
そして最後に、(3)として示す如く、算出した損失に基づいて誤差逆伝搬法(バックプロパゲーション)などを用いてDNNにおける各層の重み係数を更新する。誤差逆伝搬法は周知の技術であるため、説明は省略する。
【0061】
そして上記の(1)、(2)、(3)の処理を繰り返してDNNにおける各層の重み係数を更新していくことで、損失を徐々に小さくしていく(推定マップを教師マップに近づけていく)ことにより、DNNの学習処理を達成する。
【0062】
本実施形態では、学習データ群110は、学習画像と教師マップとのペアを複数含むデータセットであり、物体領域検出タスクのためのデータセットである。初期DNNモデル120は、このような学習データ群110を用いて学習されたDNNモデルである。
【0063】
物体領域検出タスクを行う初期DNNモデル120の一例を図9(a)に示す。図9(a)に示す初期DNNモデル120は、96画素×96画素のRGB画像(Rプレーン、Gブレーン、プレーンの3プレーンを有する)を入力とし、2つの畳み込み層(Conv1、Conv2)と2つの逆畳み込み層(Deconv1、Deconv2)を通して96画素×96画素の1chの推定マップを出力するニューラルネットワークモデルである。なお、本実施形態に適用可能なDNNの構造はこのような構造に限らず、他の構造を採用しても良い。
【0064】
探索部1100は、初期DNNモデル120で物体領域検出を行う際に未検出あるいは誤検出であった推定結果の学習データを探索する。特に、探索部1100は、未検出/誤検出である推定結果のうちCNN特徴空間上で近接している推定結果に対応する学習データを探索する。
【0065】
本実施形態に係るニューラルネットワーク処理装置1000もまた第1の実施形態と同様に、図2のフローチャートに従った処理を行うが、ステップS202において図8のフローチャートに従った処理を行う。
【0066】
ステップS801では、探索部1100は、学習データ群110から、初期DNNモデル120においてオブジェクトが未検出もしくは誤検出であった学習データを抽出する。探索部1100は、学習データ群110におけるそれぞれの学習データについて以下の処理を行うことで、初期DNNモデル120においてオブジェクトが未検出もしくは誤検出であった学習データを学習データ群110から抽出する。
【0067】
先ず探索部1100は、学習データに含まれている学習画像を初期DNNモデル120の入力層へ入力し、中間層および出力層を動作させて該学習画像に対応する推定マップを出力層から出力する。そして探索部1100は、該学習データに含まれている教師マップにおいて画素値が1の画素で構成されている領域に対応する推定マップ中の領域を特定する。そして探索部1100は、該特定した領域が「画素値(尤度)が閾値未満の画素で構成されている領域」であれば、該特定した領域に対応する該学習画像中の領域を「未検出事例データの候補」とする。また探索部1100は、該学習データに含まれている教師マップにおいて画素値が0の画素で構成されている領域に対応する推定マップ中の領域を特定する。そして探索部1100は、該特定した領域が「画素値(尤度)が閾値以上の画素で構成されている領域」であれば、該特定した領域に対応する該学習画像中の領域を「誤検出事例データの候補」とする。そして探索部1100は、「未検出事例データの候補」もしくは「誤検出事例データの候補」のいずれかとされた領域を含む学習画像を含む学習データを学習データ群110から抽出する。
【0068】
ステップS802では、探索部1100は、ステップS801で学習データ群110から抽出されたそれぞれの学習データについて、該学習データに含まれている学習画像を入力した初期DNNモデル120の中間層からの出力(CNN特徴量)を取得する。CNN特徴量は、学習画像の全画像領域から抽出しても良いし、学習画像において「未検出事例データの候補」もしくは「誤検出事例データの候補」のいずれかとされた領域を含む局所領域から抽出してもよい。また、中間層として存在するいずれの層からCNN特徴量を抽出しても良い。
【0069】
ステップS803では、探索部1100は、ステップS802で取得したCNN特徴量間の類似度(CNN特徴量類似度)を、上記のステップS303と同様にして算出する。
【0070】
ステップS804では、探索部1100は、ステップS803で算出したCNN特徴量類似度に基づいて、「未検出事例データの候補」から「未検出事例データ」を選択する、もしくは「誤検出事例データの候補」から「誤検出事例データ」を選択する。
【0071】
探索部1100は、「未検出事例データの候補」を含む学習画像の集合において、CNN特徴量類似度が閾値Ts以上となる学習画像を特定し、該特定した学習画像における「未検出事例データの候補」を「未検出事例データ」として選択する。また探索部1100は、「誤検出事例データの候補」を含む学習画像の集合において、CNN特徴量類似度が閾値Ts以上となる学習画像を特定し、該特定した学習画像における「誤検出事例データの候補」を「誤検出事例データ」として選択する。
【0072】
そして探索部1100は、選択した「未検出事例データ」や「誤検出事例データ」に対し、追加教師情報として新規に困難領域教師マップを作成する。困難領域教師マップは未検出あるいは誤検出であった領域の画素値を1、それ以外の領域の画素値を0とする画像である。更に、探索部1100は、選択した「未検出事例データ」や「誤検出事例データ」に対し、分類困難ラベルを付与する。分類困難ラベルは類似した事例データを判別するためのidが割り当てられた教師情報であり、例えば、ある類似した未検出事例データ集合と、ある類似した誤検出事例データ集合にはそれぞれ異なるidが割り振られる。
【0073】
以上の処理により、探索部1100によって、学習データ群110のうちCNN特徴空間では区別できているがオブジェクトの検出が困難な学習データの集合に対して検出困難ラベルが追加される。
【0074】
図2に戻って、ステップS203では、更新部1200は、初期DNNモデル120の中間層に、未検出事例や誤検出事例を検出するためのネットワーク構造を追加する。具体的には、CNN特徴量を入力として未検出事例や誤検出事例を検出する1つ以上の層を初期DNNモデル120に追加し、更に、追加した層からの出力をCNN特徴量を抽出した層以降の層の出力に加算する構造に初期DNNモデル120を更新する。ここで追加する層は、ステップS202においてCNN特徴量を抽出した中間層と同じ層から分岐して追加する。なお、追加する層は、探索部1100において付与された分類困難ラベルのidの数だけ分岐する。
【0075】
図9(a)に示す構造を有する初期DNNモデル120を更新部1200によって更新した更新後の初期DNNモデル120(更新DNNモデル)の構造の一例を図9(b)に示す。ここで示すのは分類困難な領域の種類が1パターン、すなわち分類困難ラベルが1種類の時の構造である。便宜上、初期DNNモデル120の2つの畳み込み層をそれぞれConv1層、Conv2層、2つの逆畳み込み層をDeconv1層、Deconv2層と称する。Conv1層は96画素×96画素のRGB画像(Rプレーン、Gブレーン、プレーンの3プレーンを有する)を入力とし、48×48×32chの3次元テンソルを出力する。Conv2層はConv1層の出力を入力として24×24×64chの3次元テンソルを出力する。Deconv1層はConv2層の出力を入力として48×48×32chの3次元テンソルを出力し、Deconv2層はDeconv1層の出力を入力として96×96×1chの推定検出マップを出力する。ステップS202における困難事例探索処理に用いたCNN特徴量としてConv2層の出力である24×24×64chの3次元テンソルを用いたとき、ステップS203のネットワーク構造更新処理によって初期DNNモデル120のネットワーク構造にDeconv1’層、Deconv2’層が追加される。Deconv1’層はConv2層の出力である24×24×64chの3次元テンソルを入力として48×48×32chの3次元テンソルを出力する。Deconv2’層はDeconv1’層の出力を入力として「未検出事例を検出した推定マップ」もしくは「誤検出事例を検出した推定マップ」を出力する。更にステップS203では、Deconv1層の出力である3次元テンソルとDeconv1’層の出力である3次元テンソルを加算する構造が初期DNNモデル120のネットワーク構造に追加される。なお、追加する1つ以上の層の構成はこれに限定するものではなく、任意の構造を追加することが可能である。
【0076】
ステップS204では、更新部1200は、ステップS203で構造を更新した更新DNNモデルを出力する。そしてステップS205では、学習処理部1300は、ステップS204において更新部1200から出力された更新DNNモデルに対して、物体領域検出タスクを行うネットワークの学習処理を行う。第1の実施形態と同様、既に物体領域検出精度が高い既存の学習データに対しては精度を維持しつつ検出困難事例の精度を向上させるべく、学習処理では追加した層以降の層(図9(b)の例ではDeconv1’層、Deconv2’層)を学習する。このときの学習は探索部1100で抽出された学習データを用いて行われ、その際の教師マップには、探索部1100で付与された困難領域教師マップが用いられる。
【0077】
このように本実施形態によれば、物体領域検出タスクを行うニューラルネットワークにおいて全体の分類精度を維持しつつ、未検出になりやすい又は誤検出になりやすい特定のクラスに対する物体領域検出精度を向上するように効率よく学習を行うことができる。
【0078】
[第3の実施形態]
本実施形態では、学習済みのDNNモデルに対して新しい学習データが追加されたときに、効率よく学習を行うニューラルネットワーク処理装置を提供する。なお、本実施形態においては物体領域検出タスクを行うDNNモデルを一例として説明するが、分類タスクなどの他のタスクにおいても適用可能である。
【0079】
本実施形態に係るニューラルネットワーク処理装置3000の機能構成例について、図10のブロック図を用いて説明する。学習データ群310、初期DNNモデル320、更新部3300、学習処理部3400のそれぞれは、第2の実施形態の学習データ群110、初期DNNモデル120、更新部1200、学習処理部1300と同様である。
【0080】
初期DNNモデル320は、学習データ群310を用いて学習されたDNNモデルであり、未知の入力画像に対して推定マップを出力するように学習された重み係数を獲得している。ただし、初期DNNモデル320は、既に既存の学習データ群310によって検出困難事例データの推定マップを出力する構成が追加されていても構わない。この場合、既存の学習データ群310には追加の教師情報として検出困難事例ラベルが付与されている。
【0081】
追加部3100は、学習データ群310に新規の学習データを追加する。探索部3200は、新規に追加された学習データに対して初期DNNモデル120で物体領域検出を行う際に未検出あるいは誤検出であった推定結果を含む学習データを探索する。
【0082】
なお、本実施形態では、図10の構成を有するニューラルネットワーク処理装置3000を1台の装置で構成する。しかし、図10の構成を有するニューラルネットワーク処理装置3000を複数台の装置で構成しても良い。
【0083】
本実施形態に係るニューラルネットワーク処理装置3000が行う処理について、図11のフローチャートに従って説明する。
【0084】
ステップS1102では、追加部3100は、新たに追加された学習データの集合を既存の学習データ群310に追加する。新たに追加される学習データの数は一定数以上であることが望ましい。例えば、クラウド上のデータベースに随時学習データがアップロードされる構成である場合、追加された学習データの枚数がユーザの設定した閾値を超えたときに本処理が実行される。
【0085】
ステップS1103では、探索部3200は上記のステップS801~S804の処理を行うことで、新規に追加された学習データのうち、未検出事例データを含む学習画像を含む学習データ、誤検出事例データを含む学習画像を含む学習データを探索する。新たに追加した学習データを探索した結果は、以下の(a)~(d)のいずれかのケースに該当することになる。
(a) 全追加学習データが検出成功(未検出事例データを含む学習画像を含む学習データや誤検出事例データを含む学習画像を含む学習データがない)
(b) 新規の検出困難事例集合が抽出される(未検出事例データを含む学習画像を含む学習データ、誤検出事例データを含む学習画像を含む学習データのいずれかがある)
(c) (既に検出困難事例ラベルの付いた学習データが存在する場合)既存の検出困難事例集合とのCNN特徴量類似度が閾値以上となる学習データが存在する
(d) 未検出事例データを含む学習画像を含む学習データ、誤検出事例データを含む学習画像を含む学習データは存在するが、CNN特徴空間上でCNN特徴量類似度が閾値以上の追加学習データは存在しない
ステップS1104では、探索部3200は、未検出事例データや誤検出事例データを含む学習画像があったか否かを判断する。この判断の結果、未検出事例データや誤検出事例データを含む学習画像があった場合には、処理はステップS1105に進む。一方、未検出事例データや誤検出事例データを含む学習画像が無かった場合(即ちステップS1104における(a)の場合)には、図11のフローチャートに従った処理は終了する。しかし、未検出事例データや誤検出事例データを含む学習画像が無かった場合にステップS1108に処理を進めて追加学習データを用いた学習処理を実施してもよい。
【0086】
ステップS1105では、探索部3200は、検出困難事例集合が新規に抽出されたか否かを判定する。この判断の結果、検出困難事例集合が新規に抽出された場合、即ちステップS1104における(b)の場合には、処理はステップS1106に進む。一方、新規の検出困難事例が存在しない場合、即ちステップS1104における(c)あるいは(d)の場合には、処理はステップS1108に進む。
【0087】
ステップS1106およびステップS1107では、それぞれ第2の実施形態に係るステップS203およびステップS204と同様であるため、その説明を省略する。ステップS1103で新規の検出困難事例が抽出された場合には、本処理によって該検出困難事例を検出するサブネットワークを追加した更新DNNモデルが生成される。
【0088】
ステップS1108では、学習処理部3400は、ステップS1107において更新部3300から出力された更新DNNモデルに対して、物体領域検出タスクを行うネットワークの学習処理を行う。ここでは、追加された学習データに対する困難事例探索処理の結果に応じて学習を行う層を決定する。即ち、ステップS1103における探索結果が(d)である場合にはCNN特徴量を抽出する中間層の性能が十分ではないので、CNN特徴量を抽出した層以前を含む層に対して学習を行う。(b)もしくは(c)である場合は、抽出された検出困難事例を検出するサブネットワーク以降の層を学習する。(a)であり学習を行う場合には更新DNNモデルの任意の層の学習を行ってよい。
【0089】
以上の処理により本実施形態では、未知の学習データが新たに追加された場合に現状の検出精度劣化の影響を軽減しつつ未検出事例および誤検出事例の発生を抑制し、全体の性能を向上する。
【0090】
[第4の実施形態]
図1のニューラルネットワーク処理装置1000において学習データ群110を除く各機能部は、ハードウェアで実装しても良いが、ソフトウェア(コンピュータプログラム)で実装しても良い。同様に、図10のニューラルネットワーク処理装置3000において学習データ群310を除く各機能部は、ハードウェアで実装しても良いが、ソフトウェア(コンピュータプログラム)で実装しても良い。このようなソフトウェアを実行可能な情報処理装置としてのコンピュータは、図1のニューラルネットワーク処理装置1000や図10のニューラルネットワーク処理装置3000に適用可能である。
【0091】
図1のニューラルネットワーク処理装置1000や図10のニューラルネットワーク処理装置3000に適用可能なコンピュータ装置のハードウェア構成例について、図13のブロック図を用いて説明する。
【0092】
CPU1301は、RAM1302やROM1303に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU1301は、コンピュータ装置全体の動作制御を行うと共に、図1のニューラルネットワーク処理装置1000や図10のニューラルネットワーク処理装置3000が行うものとして上述した各処理を実行もしくは制御する。
【0093】
RAM1302は、ROM1303や外部記憶装置1306からロードされたコンピュータプログラムやデータ、I/F1307を介して外部から受信したデータ、を格納するためのエリアを有する。さらにRAM1302は、CPU1301が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM1302は各種のエリアを適宜提供することができる。ROM1303には、コンピュータ装置の設定データや起動プログラムなどが格納されている。
【0094】
操作部1304は、キーボード、マウス、タッチパネル画面などのユーザインターフェースであり、ユーザが操作することで各種の指示や情報(上記の閾値など)をCPU1301に対して入力することができる。
【0095】
表示部1305は、液晶画面やタッチパネル画面等を有し、CPU1301による処理結果を画像や文字などでもって表示することができる。なお、表示部1305は、画像や文字などを投影するプロジェクタなどの投影装置であっても良い。
【0096】
外部記憶装置1306は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置1306には、OS(オペレーティングシステム)が保存されている。また外部記憶装置1306には、ニューラルネットワーク処理装置1000やニューラルネットワーク処理装置3000が行うものとして上述した各処理をCPU1301に実行もしくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置1306に保存されているコンピュータプログラムには、図1のニューラルネットワーク処理装置1000において学習データ群110を除く各機能部の機能をCPU1301に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置1306に保存されているコンピュータプログラムには、図10のニューラルネットワーク処理装置3000において学習データ群310を除く各機能部の機能をCPU1301に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置1306に保存されているデータには、上記の学習データ群110や学習データ群310、上記の説明において既知の情報として取り扱った情報等が含まれている。
【0097】
外部記憶装置1306に保存されているコンピュータプログラムやデータは、CPU1301による制御に従って適宜RAM1302にロードされ、CPU1301による処理対象となる。
【0098】
I/F1307は、コンピュータ装置が外部装置とのデータ通信を行うために用いる通信インターフェースである。例えば、学習データを外部装置からI/F1307を介してコンピュータ装置にダウンロードしても良いし、コンピュータ装置にて行った処理結果をI/F1307を介して外部装置に対して送信しても良い。
【0099】
CPU1301、RAM1302、ROM1303、操作部1304、表示部1305、外部記憶装置1306、I/F1307は何れも、バス1308に接続されている。なお、図1のニューラルネットワーク処理装置1000や図10のニューラルネットワーク処理装置3000に適用可能なコンピュータ装置の構成は図13に示した構成に限らず、適宜変更/変更が可能である。
【0100】
なお、上記の説明において使用した具体的な数値は、具体的な説明を行うために使用したものであって、上記の各実施形態や各変形例がこれらの数値に限定されることを意図したものではない。また、以上説明した各実施形態や各変形例の一部若しくは全部を適宜組み合わせても構わない。また、以上説明した各実施形態や各変形例の一部若しくは全部を選択的に用いても構わない。
【0101】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0102】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0103】
110:学習データ群 120:初期DNNモデル 1000:ニューラルネットワーク処理装置 1100:探索部 1200:更新部 1300:学習処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13