(57)【要約】【課題】  ニューラルネットワークの効率的な学習を可能とする。【解決手段】  複数のDNNを階層的に構成し、第一階層機械学習・認識装置のDNNの隠れ層のデータを、第二階層機械学習・認識装置のDNNの入力データとする。【選択図】  図１Ａ
2020074211.tif 000002
【特許請求の範囲】
【請求項１】
複数のDNNを階層的に構成し、
第一階層機械学習・認識装置のDNNの隠れ層のデータを、
第二階層機械学習・認識装置のDNNの入力データとすることを特徴とする情報処理システム。
【請求項２】
前記第一階層機械学習・認識装置のDNNについて出力層が所望の出力となるように教師有り学習を行った後、
前記第二階層機械学習・認識装置のDNNの教師有り学習を行う、請求項１記載の情報処理システム。
【請求項３】
前記第一階層機械学習・認識装置は、
認識処理を実施すると同時に、前記認識処理の認識結果のスコアを記憶する手段を設け、前記認識結果があらかじめ決められたしきい値１よりも大きくなった場合、もしくは、あらかじめ決められたしきい値２よりも小さくなった場合、もしくは、前記認識結果のヒストグラムを作成した際に分散があらかじめ決められた値より大きくなった場合に、前記第二階層機械学習・認識装置に対して、前記第一階層機械学習・認識装置のDNNのニューラルネットワーク構造および重み係数に対して更新リクエスト信号を送信する更新リクエスト送信手段を設け、
前記第二階層機械学習・認識装置は、
第一階層機械学習・認識装置の前記更新リクエスト信号を受取ると、前記第一階層機械学習・認識装置のDNNのニューラルネットワーク構造および重み係数の更新を実施し、その、更新データを前記第一階層機械学習・認識装置へ送信し、
前記第一階層機械学習・認識装置は、
前記更新データをもとに、新たなニューラルネットワークを構築する、請求項１記載の情報処理システム。
【請求項４】
前記第一階層機械学習・認識装置は、
学習処理を行う学習モジュールと、
前記学習処理の学習結果の重み係数情報、認識結果レーティング情報、中間層データ情報を格納する記憶手段と、
前記第一階層機械学習・認識装置のニューラルネットワークの更新が必要な場合に、更新リクエスト信号を、前記第二階層機械学習・認識装置へ送信する手段を有する、請求項１記載の情報処理システム。
【請求項５】
前記第一階層機械学習・認識装置と、前記第二階層機械学習・認識装置の接続において、
前記第一階層機械学習・認識装置から前記第二階層機械学習・認識装置への入力のみを有する、請求項１記載の情報処理システム。
【請求項６】
前記第一階層機械学習・認識装置は、
前記DNNの隠れ層の値を一時的に保持する記憶装置を有するとともに、前記第二階層機械学習・認識装置において前記記憶装置のデータを入力データデータベースとして保持する機構を有する、請求項１記載の情報処理システム。
【請求項７】
前記第一階層機械学習・認識装置が複数あり、前記複数の第一階層機械学習・認識装置から単一の前記第二階層機械学習・認識装置への前記入力データの送信については、直接もしくは、有線および無線の少なくとも一つを用いたネットワークを介して接続されることを特徴とする、請求項１記載の情報処理システム。
【請求項８】
複数の前記第二階層機械学習・認識装置を備え、
一つの前記第一階層機械学習・認識装置からの前記隠れ層のデータを、複数の前記第二階層機械学習・認識装置で共有する、請求項１記載の情報処理システム。
【請求項９】
前記第二階層機械学習・認識装置には、前記第一階層機械学習・認識装置のDNNの複製を設け、
前記第一階層機械学習・認識装置での学習、もしくは、認識処理とともに、
前記第二階層機械学習・認識装置でも前記第一階層機械学習・認識装置からの入力データをもとに学習を実施し、その結果、前記第二階層機械学習・認識装置での学習結果であるニューラルネットワークの構成情報、並びに、重み係数情報を前記第一階層機械学習・認識装置へ送信し、前記第一階層機械学習・認識装置のニューラルネットワークおよび重み係数を更新する、請求項１記載の情報処理システム。
【請求項１０】
前記第一階層機械学習・認識装置のハードウエア規模よりも、前記第二階層機械学習・認識装置のハードウエア規模を大きく構成した、請求項１記載の情報処理システム。
【請求項１１】
複数のDNNから構成される情報処理システムの運用方法であって、
前記複数のDNNは、第一階層機械学習・認識装置と第二階層機械学習・認識装置を含む多層構造を構成し、
前記第二階層機械学習・認識装置の情報処理能力は、前記第一階層機械学習・認識装置の情報処理能力よりも高いものを用いることとし、
前記第一階層機械学習・認識装置のDNNの隠れ層のデータを、前記第二階層機械学習・認識装置のDNNの入力データとする、情報処理システムの運用方法。
【請求項１２】
前記第二階層機械学習・認識装置の処理結果に基づいて、前記第一階層機械学習・認識装置のDNNのニューラルネットワークの構成を制御する、請求項１１記載の情報処理システムの運用方法。
【請求項１３】
複数の前記第一階層機械学習・認識装置を用いて、ひとつの被検査対象の観察を実施し、
前記観察の過程で得られる、前記第一階層機械学習・認識装置の前記隠れ層のデータを前記第二階層機械学習・認識装置へ伝達し、
前記第二階層機械学習・認識装置では、前記隠れ層のデータをもとに学習を実施するとともに、前記第一階層機械学習・認識装置のニューラルネットワーク構造および重み係数を算出するためのデータベースを構築し、
前記第二階層機械学習・認識装置での前記学習ならびに前記データベースの構築期間を前記第一階層機械学習・認識装置の学習強化期間として定義し、
前記第二階層機械学習・認識装置は、前記学習が完了後に、前記第一階層機械学習・認識装置のニューラルネットワークおよび重み係数を設定し、前記第一階層機械学習・認識装置と前記第二階層機械学習・認識装置とで認識学習の運用を実施する、実運用期間を定義する運用形態を有する、請求項１１記載の情報処理システムの運用方法。
【請求項１４】
複数の前記第一階層機械学習・認識装置の構築に向けて、前期第二階層機械学習・認識装置にて初期のニューラルネットワーク構築のための第一の学習期間を設け、
その後、前記第一の学習期間で会得された学習データを前記第一階層機械学習・認識装置に実装し、前記第一階層機械学習・認識装置を実運用させながら教師あり学習を推進する第二の学習期間を設け、
さらに、前記第二の学習期間が終了後に、前記第一階層機械学習・認識装置を用いた機械学習認識制御を実施し、必要に応じて前期第二階層機械学習・認識装置との連携学習を推進する第三の学習期間を設ける、請求項１１記載の情報処理システムの運用方法。
【請求項１５】
多層からなるニューラルネットワークにおいて、
第一層のデータを用いて第二層のデータを演算し、その逆の、前記第二層のデータを用いて前記第一層のデータを演算する手段を有し、
両方の前記演算において、前記第一層の各データと、前記第二層の各データとの間の関係を決める重みデータを有し、
前記重みデータは、構成するすべての重み係数行列としてひとつの記憶保持部に格納され、
前記重み係数行列の構成要素である、ひとつひとつの行列要素の演算に対して、１対１対応する積和演算器からなる演算ユニットを有し、
前記重み係数行列を構成する行列要素を前記記憶保持部へ格納する際に、行列の行ベクトルを基本単位にして格納され、
前記重み係数行列の演算は、前記記憶保持部に格納された基本単位ごとに演算され、
前記行ベクトルの第一行成分は、元の行列の列ベクトルと構成要素の並び順が同じくして前記記憶保持部へ保持し、
前記行ベクトルの第二行成分は、元の行列の列ベクトルの構成要素を右もしくは左へ一要素ずらして前期記憶保持部に保持し、
前記行ベクトルの第三行成分は、元の行列の列ベクトルの構成要素を前記第二行成分で移動させた方向と同じ方向に、さらに一要素ずらして前期記憶保持部に保持し、
前記行ベクトルの最終行の第N行成分は、元の行列の列ベクトルの構成要素を第N-1行成分で移動させた方向と同じ方向に、さらに一要素ずらして前記記憶保持部へ保持し、
前記第一層のデータを前記第二層のデータから前記重み係数行列を用いて演算する場合は、
前記第二層のデータを行列の列ベクトルのように並べ、各要素を前記積和演算器へ入力し、
同時に、前記重み係数行列の第一行を前記積和演算器へ入力して両データに関する乗算演算を実施し、その演算結果をアキュムレータへ格納し、
前記重み係数行列の第二行以下を計算する際には、前記第二層のデータを左もしくは右へ、重み行列の行演算を実施する毎に前記第二層のデータを一要素ずらした後に、前記重み係数行列の対応する行の要素データと並べ替えられた前記第二層のデータとの乗算演算を実施し、
その後、同じ演算ユニットの前記アキュムレータに格納したデータを加算し、
同様な演算を重み係数行列の第N行まで実施する演算器構成を有し、
前記第二層のデータを前記第一層のデータから前記重み係数行列を用いて演算する場合は、
前記第一層のデータを行列の列ベクトルのように並べ、各要素を前記積和演算器へ入力し、
同時に、前記重み係数行列の第一行を前記積和演算器へ入力して乗算演算を実施し、その結果を前記アキュムレータへ格納し、
前記重み係数行列の第二行以下を計算する際には、前記第一層のデータを左もしくは右へ、前記重み係数行列の行演算を実施する毎に前記第一層のデータを一要素ずらした後に、前記重み係数行列の対応する行の要素データと並べ替えられた前記第一層のデータとの乗算演算を実施し、
その後、前記演算ユニットに格納された前記アキュムレータの情報を隣の演算ユニットの加算部へ入力し、前記乗算演算の結果との加算を実施し、その結果を前記アキュムレータに格納し、
同様な演算を重み行列の第N行まで実施することを特徴とする機械学習演算器。
【発明の詳細な説明】
【技術分野】
【０００１】
機械学習を適用できる技術分野全般、例えば、社会インフラシステム分野に関し、特に階層型ディープニューラルネットワークシステムに関する。
【背景技術】
【０００２】
サーバ等に搭載されるCPUは、微細化に頼った動作処理性能の向上が難しくなってきており、コンピュータアーキテクチャとしてのノイマン型コンピュータの限界が顕在化してきた。そのような背景のもと、非ノイマン型コンピューティングの研究が加速している。非ノイマン型コンピューティングの候補として、ディープラーニングが顕在化している。
【０００３】
ディープラーニング（deep learning）は、多層構造のニューラルネットワーク（ディープニューラルネットワーク:DNN （deep neural network））の機械学習技術として知られている。これはニューラルネットワークに基づく技術であるが、近年、画像認識の分野で畳込み型ニューラルネットワークによる認識率向上をきっかけに、再度見直されている状況になっている。ディープラーニングの適用機器は、自動運転向け画像認識など端末から、ビッグデータ解析などクラウドまで多岐にわたる。
【０００４】
一方で、近年は全ての機器がネットワークにつながるという、IoT （Internet of Things）の可能性が示唆されており、端末の小型・廉価な装置に対して、コストが許される限りの高性能な処理を持たせて、社会インフラ等の効率活用に向けた取り組みも盛んになってきた。これは、上記のように、サーバ等へ搭載されるプロセッサの動作速度は向上が頭打ちになっているものの、半導体技術微細加工技術の進化により、特に組込み型システムにおけるLSIの集積度は増大の余地があり、様々なデバイスの開発が加速されている。特に、GPGPU（General Purpose Graphic Processing Unit）、やFPGA（Field Programmable Gate Array）の発展が著しくなってきたことも一因である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２９２９３４号公報
【特許文献２】特開平５−１９７７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１は、ネットワークの出力値に加え、その微係数を正確かつ短時間で求めることを目的に、第一のネットワークと第二のネットワークを用いて構成し、第一のネットワークはシグモイド関数を演算するが、第二のネットワークはシグモイド関数の導関数演算することで、実質四則演算にすることで計算効率を向上させる技術を開示している。
【０００７】
一方の特許文献２は、パターンや文字の認識、各種制御等の広い応用分野を持つニューラルネットワークの学習方式に係わり、例えば中間層のユニット数が異なる複数のニューラルネットワークを用いて、ハードウエア量の増加を抑えながら学習を効率的、かつ高速に行うことができるニューラルネットワークの学習システムを提供することを目的としている。
【０００８】
しかしながら、上記の特許文献は、ニューラルネットワークがより深く設定される、いわゆるディープラーニングをIoT環境で実施する上での効率的な解決策にはなりがたい。その理由は、上記のシステムはあくまでも、それぞれの出力を各目的に対して用いることを念頭においており、そのため、各階層でのネットワークの再構成や、計算資源を効率的に活用する概念がない。しかしながら、今後、実用化が期待されるIoTの分野においては、端末側に搭載されるハードウエアに対して、背景技術でも述べたように、ハードウエア規模や電力、演算性能に制限がある状況の中で、効率的な演算を実施し、しかも、状況に応じて適切に構成を変更できるシステムが望まれている。
【０００９】
さらに、IoTでは、従来の組み込み装置におかれた環境と決定的に違う点として、ネットワークの介在があり、そのネットワークを介して、違う場所に存在するある程度規模の大きな演算資源を活用できるという点が挙げられる。そのため、このような、IoT時代の組込み装置の高付加価値化は今後急拡大すると想定されるとともに、それを実現させる技術の創出が望まれている。
【００１０】
このような状況の中、今後の技術の方向性を模索した。計算機としては、末端部分については小型で演算性能の限られたものしか使えず、中央部では、計算資源(計算能力、屋情報集積記憶装置)の大型なものが使えるが、IoT時代には、末端部分での効率的な演算処理が求められる。中でもニューラルネットワークをベースとした技術は有望であり、現在使用することができる演算資源を有効に活用しながら、そのニューラルネットワークを構築することが必要になってきている。これは、革新的な情報処理装置になると考えられる。また、末端の制御は、リアルタイム性などの制御対象への高速な追従性や制御レイテンシを守った制御が必要になるので、中央の計算機からの指令だけの制御ではその要件を満たすことができない。中央の計算機と連携した効率的な処理ができるフレームワークも重要になる。さらに、IoT時代はトリリオンセンサによる巨大システムになるとの見方もあり、全てを中央集権的に制御することも困難になる中、端末ごとの自律的な制御が可能なシステムであることも要件となる。
【００１１】
以上、課題をまとめると
（１）組込み装置における各種制限（ハード規模、電力、演算性能）下での革新的な情報制御装置の創出
（２）IoT時代はネットワークによる物理的に離れた演算資源の利活用が可能であるので、その資産を有効に活用する技術であること
（３）IoT時代は、トリリオンセンサによる巨大システムになるとの想定があり、自律した制御が可能なシステムであること
となる。
【課題を解決するための手段】
【００１２】
上記課題を解決するための、本願発明の一側面は、複数のDNNを階層的に構成し、第一階層機械学習・認識装置のDNNの隠れ層のデータを、第二階層機械学習・認識装置のDNNの入力データとすることを特徴とする情報処理システムである。
【００１３】
より具体的な例では、第一階層機械学習・認識装置のDNNについて出力層が所望の出力となるように教師有り学習を行った後、第二階層機械学習・認識装置のDNNの教師有り学習を行う。
【００１４】
別の具体的な例では、第一階層機械学習・認識装置のハードウエア規模よりも、第二階層機械学習・認識装置のハードウエア規模を大きく構成する。
【００１５】
本発明の他の一側面は、複数のDNNから構成される情報処理システムの運用方法であって、複数のDNNは、第一階層機械学習・認識装置と第二階層機械学習・認識装置を含む多層構造を構成し、第二階層機械学習・認識装置の情報処理能力は、第一階層機械学習・認識装置の情報処理能力よりも高いものを用いることとし、第一階層機械学習・認識装置のDNNの隠れ層のデータを、前記第二階層機械学習・認識装置のDNNの入力データとする。
【００１６】
より具体的な好ましい例では、第二階層機械学習・認識装置の処理結果に基づいて、第一階層機械学習・認識装置のDNNのニューラルネットワークの構成を制御する。
【００１７】
本発明の他の一側面は、多層からなるニューラルネットワークにおいて、第一層のデータを用いて第二層のデータを演算し、その逆の、第二層のデータを用いて前記第一層のデータを演算する手段を有するものである。両方のこれら演算において、第一層の各データと、第二層の各データとの間の関係を決める重みデータを有し、重みデータは、構成するすべての重み係数行列としてひとつの記憶保持部に格納される。また、重み係数行列の構成要素である、ひとつひとつの行列要素の演算に対して、１対１対応する積和演算器からなる演算ユニットを有し、重み係数行列を構成する行列要素を記憶保持部へ格納する際に、行列の行ベクトルを基本単位にして格納され、重み係数行列の演算は、記憶保持部に格納された基本単位ごとに演算される。
【００１８】
ここで、行ベクトルの第一行成分は、元の行列の列ベクトルと構成要素の並び順が同じくして記憶保持部へ保持される。また、行ベクトルの第二行成分は、元の行列の列ベクトルの構成要素を右もしくは左へ一要素ずらして記憶保持部に保持される。さらに、行ベクトルの第三行成分は、元の行列の列ベクトルの構成要素を第二行成分で移動させた方向と同じ方向に、さらに一要素ずらして記憶保持部に保持される。さらに、行ベクトルの最終行の第N行成分は、元の行列の列ベクトルの構成要素を第N-1行成分で移動させた方向と同じ方向に、さらに一要素ずらして記憶保持部へ保持される。
【００１９】
また、第一層のデータを第二層のデータから重み係数行列を用いて演算する場合は、第二層のデータを行列の列ベクトルのように並べ、各要素を積和演算器へ入力し、同時に、重み係数行列の第一行を積和演算器へ入力して両データに関する乗算演算を実施し、その演算結果をアキュムレータへ格納し、重み係数行列の第二行以下を計算する際には、前記第二層のデータを左もしくは右へ、重み行列の行演算を実施する毎に第二層のデータを一要素ずらした後に、重み係数行列の対応する行の要素データと並べ替えられた第二層のデータとの乗算演算を実施し、その後、同じ演算ユニットのアキュムレータに格納したデータを加算し、同様な演算を重み係数行列の第N行まで実施する演算器構成を有する。
【００２０】
また、第二層のデータを第一層のデータから重み係数行列を用いて演算する場合は、第一層のデータを行列の列ベクトルのように並べ、各要素を前記積和演算器へ入力し、同時に、重み係数行列の第一行を積和演算器へ入力して乗算演算を実施し、その結果をアキュムレータへ格納し、重み係数行列の第二行以下を計算する際には、第一層のデータを左もしくは右へ、重み係数行列の行演算を実施する毎に第一層のデータを一要素ずらした後に、重み係数行列の対応する行の要素データと並べ替えられた第一層のデータとの乗算演算を実施し、その後、演算ユニットに格納されたアキュムレータの情報を隣の演算ユニットの加算部へ入力し、乗算演算の結果との加算を実施し、その結果をアキュムレータに格納し、同様な演算を重み行列の第N行まで実施することを特徴とする機械学習演算器である。
【００２１】
本発明の他の一側面は、第一階層に設けられる、３層以上のネットワーク層を有するニューラルネットワーク装置において、予め学習により決定した重み関数を用いてニューロン間接続を計算し中間データを生成するシステムである。この中間データは、入力データを分類する上での特徴点を抽出した中間データである。生成された中間データは、第二階層に設けられる、上位階層のニューラルネットワーク装置へ入力される。第二階層のニューラルネットワーク装置は、第一階層の一または複数のニューラルネットワーク装置の中間層からの出力信号を入力としている。そして第二階層のニューラルネットワーク装置は、一または複数の第一階層のニューラルネットワーク装置からの入力を受けて新たな学習を実施する。
【発明の効果】
【００２２】
より多くの情報量がサーバのDNNの入力となることで、全体として効率的な学習が可能になる効果がある。
【図面の簡単な説明】
【００２３】
【図１Ａ】本願発明の実施例の基本概念を説明するためのシステム概念図である。
【図１Ｂ】本発明の第１の実施の形態に係る構成ブロック図である。
【図２】本発明の第１の実施の形態における、（A）第一階層の構成を示す図、（B）各演算ノード間の構成の説明図である。
【図３Ａ】第2図（A）に示した実施例の別の形態を示すブロック図である。
【図３Ｂ】第一階層と第二階層の通信プロトコルを示す図である。
【図４】第一階層のDNN情報を更新するシーケンスを示す流れ図である。
【図５】本願発明の第１階層DNN装置にFPGAを適用する際の説明ブロック図である。
【図６】本願発明の第２の実施の形態に係る構成図である。
【図７】本願発明の第３の実施の形態に係る構成図である。
【図８】本願発明の第４の実施の形態に係る構成図である。
【図９】本願発明の第５の実施の形態に係る構成図である。
【図１０】本願発明の第６の実施の形態に係る構成図である。
【図１１】本願発明の第７の実施の形態に係る構成図である。
【図１２】本願発明の第８の実施の形態に係る構成図である。
【図１３】本願発明の第９の実施の形態に係る構成図である。
【図１４】本願発明の第１０の実施の形態に係る構成図である。
【図１５】本願発明の第１１の実施の形態に係る構成図である。
【図１６】本願発明の第１２の実施の形態に係る構成図である。
【図１７】本願発明の第１３の実施の形態に係る構成図である。
【図１８】本願発明の第１４の実施の形態に係る構成図である。
【発明を実施するための形態】
【００２４】
以下、本発明に係る実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００２５】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００２６】
実施例中、等価とみなせる構成要素が複数個存在する場合には、同一の記号や番号に添え字を付けて区別することがある。ただし、特に区別する必要がない場合は、添え字を省略して記載することがある。
【００２７】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００２８】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【００２９】
図１Ａで本実施例の基本概念を説明する。複数の端末とサーバとの間での階層的なDNNを構成する場合、最もシンプルな例としては、図１Ａ（A）に示すような、サーバ側で学習を実施し、その学習結果を端末側へ送り、端末側で認識を実施するシステムであろう。しかし、本願発明者らがDNNの検討を進めた際、認識部でのDNN演算の中間データを活用することで、上位のサーバ側での学習が効率化することを見出した。
【００３０】
すなわち、図１Ａ（B）に示すように、端末側のデータを活用しながら、端末側の入力データや端末側で認識を実施している際のDNNの中間層データをサーバ側へ送り、サーバ側で学習を実施し、サーバでの学習結果をしかるべきタイミングで、端末側へ送信し端末での認識動作を進めることである。サーバ側のDNNの入力は、端末のDNNの中間層のデータ出力を用い、それぞれの階層においてDNNで学習することである。学習方法としては、端末のDNNの教師有り学習を行った後、サーバのDNNの教師有り学習を行う。
【００３１】
端末側のDNN装置は、小型、小面積、低電力なデバイスで構成し、サーバ側のDNN装置は、高速演算かつ大容量メモリを有する、いわゆるサーバで構成する。
【実施例１】
【００３２】
図１Ｂは本願発明の主たる実施の形態を示す図である。図１Ｂ（ａ）には、複数の機械学習装置（DNN1-1〜2-1）で構成されるシステムを示している。機械学習装置において、nd011 〜 nd014, nd021 〜 nd024, nd031 〜 nd034 で示される経路は各ニューラルネットの階層を接続する経路を示している。
【００３３】
本実施例では、システム構成として、第一の階層(1st  HRCY)の機械学習・認識装置と第二の階層(2nd  HRCY)の機械学習・認識装置が階層的に接続されている。各機械学習・認識装置DNNは、入力層IL,中間層HL,出力層OLを備える。さらに、第一階層機械学習・認識装置と第二階層機械学習・認識装置との接続として、第一階層機械学習・認識装置を構成するディープニューラルネットワークにおいて、認識時の出力層OLのデータではなく、認識処理中に生成される、いわゆる隠れ層と呼ばれる中間層HLのデータ（nd014,nd024）を第二階層機械学習・認識装置の入力としている。
【００３４】
一般に、出力層OLからのデータは、あらかじめ分類されたカテゴリごとに認識結果をヒストグラム等で提示するデータとして出力され、入力データが認識の結果どのように分類されたかを示すデータで構成される。中間層(隠れ層)HLからのデータは、入力データの特徴量を抽出したデータである。本実施例で、この中間層データを活用する理由は、この中間層データは、入力データの特長が抽出されたデータであり、第二階層機械学習・認識装置での学習における質の良い入力データとして利用できるからである。
【００３５】
第二階層学習・認識装置から第一階層学習・認識装置への信号（nd015,nd025）は、第一階層学習・認識装置のネットワークや重み、もしくは、それらの変更を指示する信号等である。これは、第一、第二のそれぞれの階層での学習・認識における処理において、第一階層学習・認識装置の認識ネットワークの変更が必要となった際に、変更信号が発行される。これにより、実運用状況において、第一階層学習・認識装置の認識率を向上させることが可能になる。
【００３６】
深層型ニューラルネットワーク（DNN)は、様々な方式が提案されているが、近年、もっとも活発に研究されているものとして、畳込型ニューラルネットワーク（CNN: Convolutional Neural Network）というものがある。このCNN型ネットワークでは、隠れ層に相当する部分について、元画像の一部を切り出して(カーネルと呼ぶ)、それと同じ画像サイズの重みフィルタとの画素単位の積和演算により、いわゆる画像の畳込みを実施した後、さらにその画像を粗視化するプーリング演算を実施して、より小型の複数のデータを生成することが特徴である。隠れ層には、元画像の特長となる情報が効率的に抽出されていることが特徴である。
【００３７】
発明者らは、機械学習におけるデータの変換を検討していく上で、例えば、CNNの隠れ層に現れる特徴が抽出されたデータをうまく活用することで、学習の効率化ができることを見出した。
【００３８】
例えば、画像認識学習を考える。画像データは、一般的に、人間が見れば、そこに表されているものの意味を理解できるものであっても、機械にとってはなかなか意味をくみ取ることが難しいことが多い。上記の隠れ層のデータは、重みデータとの畳み込み演算や周囲の画素の間との統計処理による粗視化により情報を圧縮すると同時に、その画像の特長を際立たせて示すように処理されることが特徴である。CNNでは、そのような特徴抽出過程を複数持たせることで、特徴量を際立たせることができ、その特徴量を処理することで画像の判断が高確率で正解に近付けられる特徴がある。十分に学習された認識装置であれば、中間層のデータは特徴を際立たせた価値のあるデータとも言える。
【００３９】
学習においては、大量のデータを用いることが重要と言われており、効率的な学習においては、一般的に、
（１）学習を実施するための十分な入力データが揃っていること
（２）ニューラルネット型学習機であれば、ニューロン数に比例した演算が必要であり、計算資源(演算性能、ハード規模等)が潤沢であること
が重要視される。
【００４０】
一方で、IoTへ適用するに当たって、端末側の状況は刻一刻と変化するので、組み込み側システムとの連携を考える上では、
（３）柔軟な適応（低レイテンシ、高速フィードバック）
等の要件も必要である。しかも、IoTとして、多数の端末を考える上では、
（４）いわゆる複雑系としての対応が必要となる。
【００４１】
本実施例にて説明されるように、第一階層1st  HRCYと第二階層2nd  HRCYを設けることによって、例えば末端側の第一階層では、上記（３）の要件を満たすべく、低レイテンシ、高速フィードバックが可能な小型でかつ機能の制限がなされた機械学習・認識装置で構成する。第二階層では、高性能CPU等を具備し、大容量のメモリシステムを使うことができる計算資源を利用することができるので、上記（２）の要件も満たされる。
【００４２】
図１Ｂ（ｂ）には、第一階層と第二階層に用いる４種類のハードウエアの組み合わせ構成例を示している。これらの例では、第二階層側のハードウエア規模を第一階層側より大きくしている。ハードウエア規模が大きい場合には、一般的に、より情報処理能力が高くなる。
【００４３】
また、複数の第一階層機械学習・認識装置の隠れ層のデータを用いて、第二階層機械学習・認装置での学習を実施することで、各第一階層機械学習・認識装置からの情報を使い、それらの最適化を機械学習で実現できるので、上記（４）の要件も満たされる。しかも、複数の第一階層の機械学習装置からの特徴が効率的に抽出されたデータを入力として活用することができるので、第二階層での学習は、従来の、入力データを用いる第一階層での認識と同様な学習と比較して、前出の要件（１）について質的な改善ができる。第一階層機械学習・認識装置の出力層ではなく、隠れ層から値をとることにより、より多くの情報量が第二階層機械学習・認識装置の入力となるからである。
【００４４】
第一階層機械学習・認識装置と第二階層機械学習・認識装置は、それぞれ学習機能を持たせることができる。一例として、第一階層機械学習・認識装置にて教師有り学習を行った後、第二階層機械学習・認識装置の教師有り学習を行う。このようにすることで、全体を一つのDNNとするよりも学習が容易である。しかも、第二階層機械学習・認識装置の学習は、他の第一階層機械学習・認識装置からのデータも入力データとしながら実施できるので、データ量の効率的な積み増しが可能となり、学習効率と学習成果の向上が実現できる。
【００４５】
また、第二階層機械学習・認識装置では、第一階層機械学習・認識装置で演算された隠れ層の値を入力として教師有り学習を行うので、第二階層機械学習・認識装置において学習を繰り返し行う際に、第一階層機械学習・認識装置にて再度演算実行する必要がない。したがって学習時の演算量が小さくできる効果もある。
【００４６】
図２は、第一階層機械学習・認識装置（DNN1）の具体的構成を示したものである。図２（A）に示すように、一般に、ニューラルネットワーク型の機械学習・認識装置は、入力層IL1のノード（ｉ１〜ｉL）、出力層OL1のノード（o１〜oP）、そして、隠れ層HL11〜HL13の各ノード（ｎ２１〜ｎ２M、ｎ３１〜ｎ３N、ｎ４１〜ｎ４O）で構成され、各ノード間の接続は、図２（B）に示すように、ｎijとｎi+1ｋとの接続には、重みｗiｊ、ｋと入力ノードｎijとの算術演算（AU）が入る。
【００４７】
DNNネットワーク構成制御部（DNNCC）はDNNのネットワーク構成を制御する制御回路である。ニューラルネットワーク構成情報データ伝送線（NWCD）や重み係数変更線（WCD）の情報としての、DNNコンフィギュレーションデータを格納し、必要に応じてその情報をDNN装置に反映させる。このコンフィギュレーションデータは、後述するFPGA （Field Programmable Gate Array）を活用する場合には、いわゆるコンフィギュレーションメモリに対応させることができる。
【００４８】
DNNネットワーク構成制御部（DNNCC）は、第二階層機械学習・認識装置（DNN2）と通信がを可能である。DNNコンフィギュレーションデータの内容を第二階層機械学習・認識装置に送信することができ、また、第二階層機械学習・認識装置からDNNコンフィギュレーションデータの内容を受信することができる。通信のためのデータについては、後に図３Ｂで説明する。
【００４９】
また、データ蓄積メモリ（DNN_MIDD）は、ニューラルネットワークの各層のデータを保持し、第二階層機械学習・認識装置へ出力する機能を持つ。図1Ｂの例では、nd014、nd024のデータを第二階層機械学習・認識装置へ送信する形で述べたが、図２（A）の例では、各層のデータnd011〜nd016をデータ蓄積メモリ（DNN_MIDD）に保持できるようにしておくことで、入力層、中間層、出力層のうち任意の層のデータnd011〜nd016を第二階層機械学習・認識装置へ送信することができ、柔軟なシステム設計ができる。
【００５０】
図１Ｂには明に記載しなかったが、学習を実施する上では、学習モジュール（LM）が必要である。これは、一般に教師あり学習と呼ばれる公知技術になるが、DNN1で演算した結果の出力結果が、正解と考えられる、いわゆる教師データ（TDS1）と比較してどれだけずれているかを評価することが重要で、そのずれ量をもとに、ニューラルネットワークの重み係数を変更していくことが学習である。図２では、誤差検出部（DD：Deviation Detection）部にて、DNN1の演算結果と教師データ（TDS1）を突き合わせ誤差量（DDATA）を算出し、必要に応じて正解情報との比較結果情報や認識結果レーティング情報を生成、記憶する。その結果に基づいて、重み係数調整回路（WCU：Weight Change Unit）にて重みを決定、格納し、重み係数を重み係数変更線（WUD）にて設定し、各ニューラルネットワークｎijとｎi+1ｋとに定義される重みｗiｊ、ｋを変更する。
【００５１】
図３Ａは第一階層機械学習・認識装置（DNN1）の他の構成例である。図３Ａに示すように、機械学習の対象によっては、認識処理（Recognition）を進めた最終段出力層OL1のデータを入力として、認識演算の逆演算（Learning）を実施し、入力層IL1まで戻して誤差検出部（DD）で演算する、いわゆる逆プロパゲーション手法も存在する。この場合、教師データが入力データ（i1〜iL）自身で実現できるので、新たに教師データを準備することなく、対象とする入力データと逆プロパゲーションで生成されたデータとを比較することで適宜状況に応じた認識の性能を実現できる効果がある。
【００５２】
これらの学習モジュール（LM）は、敢えて設けない設定も可能である。それは、第一階層機械学習・認識装置は非常に制限された演算資源での運用が必要となる場合が想定されるので、認識処理に特化したハード構成にしておくことが望ましい場合があるからである。その場合でも、教師データとの突き合わせにて誤差の単純評価は可能であり、その結果得られる認識に対する認識結果のスコア情報を、例えばデータ蓄積メモリ（DNN_MIDD）の一部に保持しておくことは効果的である。なぜなら、そのスコア情報が悪いデータ処理に関するデータ（ニューラルネットワーク構成情報、重み係数情報、入力データ、中間データ、スコア情報等）をしかるべきタイミングで第二階層機械学習・認識装置へ送信し、第二階層での効率的な学習によって、第一階層機械学習・認識装置を再構成することも可能である。
【００５３】
構成例としては、第一階層機械学習・認識装置（DNN1）は、認識処理を実施すると同時に、認識処理の認識結果のスコアを記憶する手段を設け、認識結果があらかじめ決められたしきい値１よりも大きくなった場合、もしくは、あらかじめ決められたしきい値２よりも小さくなった場合、もしくは、認識結果のヒストグラムを作成した際に分散があらかじめ決められた値より大きくなった場合に、第二階層機械学習・認識装置に対して、第一階層機械学習・認識装置のDNNのニューラルネットワーク構造および重み係数に対して更新リクエスト信号を送信する更新リクエスト送信手段を設ける。
【００５４】
第二階層機械学習・認識装置（DNN2）は、第一階層機械学習・認識装置の更新リクエスト信号を受取ると、第一階層機械学習・認識装置のDNNのニューラルネットワーク構造および重み係数の更新を実施し、その、更新データを第一階層機械学習・認識装置へ送信する。第一階層機械学習・認識装置（DNN1）では、更新データをもとに、新たなニューラルネットワークを構築する。
【００５５】
図２（A）、図３Ａは第一階層機械学習・認識装置（DNN1）の具体例を示した。第二階層機械学習・認識装置（DNN2）も基本的な構成は同様である。ただし、第二階層機械学習・認識装置（DNN2）の入力としては、第一階層機械学習・認識装置（DNN1）の隠れ層HLからのデータを用い、教師あり学習を行う。また、第一階層機械学習・認識装置（DNN1）のDNNネットワーク構成制御部（DNNCC）や、データ蓄積メモリ（DNN_MIDD）とデータの通信を行うインタフェースを備える。
【００５６】
図３Ｂは、第一階層と第二階層の通信プロトコルを示す図である。第一階層機械学習・認識装置にて学習する場合と、学習をしない場合の両状況において、第一階層に保持するデータの構造を示している。
【００５７】
この図３Ｂには、第一階層機械学習・認識装置の特長を表す情報として、ニューラルネットワークの構成情報（DNN#）、重み係数情報（WPN#）、正解情報との比較結果情報（RES_COMP）、認識結果情報（認識正解率等、Det_rank）、第一階層機械学習・認識装置の構成更新要求信号（更新リクエスト）（UD Req）で構成される。
【００５８】
特に、第一階層機械学習・認識装置の構成更新要求信号は、高々数ビットの構成であり、定期的に第二階層機械学習・認識装置はこの第一階層械学習・認識装置の構成更新要求信号をチェックし、更新が必要かどうかを把握する。この情報が更新必要要求を示す場合は、第二階層機械学習・認識装置で追加学習した最新データを第一階層機械学習・認識装置へ転送する準備を実施し、データ更新情報の転送準備が可能になったら、第一階層機械学習・認識装置のへ要求アップデート準備完了信号データを送信し、第一階層機械学習・認識装置のデータへ格納する。このデータは、UD_Prprdとして格納する。
【００５９】
この構成情報の更新については様々な場合が想定される。第一階層機械学習・認識装置で一定期間の認識処理を経過後、たとえば平均認識率（例えば認識結果レーティング情報）を算出し、あるしきい値を超えた場合に第二階層機械学習・認識装置との通信を確立させる。そして、更新に必要な集積データを第一階層から第二階層へ送信し、第二階層機械学習・認識装置で効率的に学習を実施する。その後、新たなニューラルネットワークや重み係数が決定後に、第一階層機械学習・認識装置の運用状況に応じて、適切な時期に第一階層機械学習・認識装置への更新を実施する。更新時期は、第一階層機械学習・認識装置がシャットダウン後のリブート時に第二階層機械学習・認識装置との通信を確保し、更新データのダウンロードが可能かどうかを問い合わせるプログラムを記述しておけばよい。
【００６０】
第二階層機械学習・認識装置内でDNN学習を実施するが、その学習が所望の認識率を実現できなかった場合には、第一階層機械学習・認識装置での学習を再実行することも考えられる。その場合でも、学習の階層化を実施しているので、全体として効率的な演算が可能になる効果がある。
【００６１】
図４に、第一階層機械学習・認識装置の構成を変更するためのプログラムシーケンスを記載する。この場合、第一階層機械学習・認識装置と第二階層機械学習・認識装置間で、必要最小限のデータを送受信するプロトコルを準備しておくことが都合がよい。例えば、第一階層機械学習・認識装置で認識スコアが著しく低下した場合や、ニューラルネットワークや重み係数の定期更新期限が近付いた場合など、第一階層機械学習・認識装置から第二階層機械学習・認識装置へ第一階層機械学習・認識装置の更新依頼情報を送信しておく。そのようにすることで、第二階層機械学習・認識装置での学習更新作業が始まり更新済データが準備できた段階で、第一階層機械学習・認識装置へデータ準備完了信号、もしくは、更新ビット情報を送信しておく。その結果、第一階層機械学習・認識装置がリブートされる状況において、図４記載のブートシーケンスを走らせる。
【００６２】
データ準備完了信号、もしくは、更新ビット情報を確認することで、第二階層機械学習・認識装置へのデータ更新アクセスが必要かどうかを判定し、必要に応じて、第二階層機械学習・認識装置へのデータダウンロード要求信号を送信し（S401）、アップデートデータが到着を検出後、アップデートデータのダウンロード完了（S402）をまって、データの正常性をパリティやCRC（Cyclic Redundancy Check）を活用して検査する（S403）。その後、FPGAの構成情報を再構成する（S404）。その後、FPGAをブートし（S405）、通常動作に入る（S406）。
【００６３】
図５にDNNをFPGAで構成した際に、FPGA（501）へ適用する場合の構成を示す。FPGAの再構成には、FPGA内部のコンフィグレーションメモリ（CRAM）の動的な書き換え技術を利用する。FPGA内には、ルックアップテーブルユニット（LEU）とスイッチユニット（SWU）および、ハードウエアで構成された積和演算等を実施する演算ユニット（DSP）およびメモリ（RAM）で構成される。
【００６４】
本実施例のDNNネットワーク等の論理回路は、LEU、SEU、DSP、RAMに実装され通常動作を実施する。一方、上記のようにDNNの内容を更新する場合は、第二階層機械学習・認識装置より送信された更新データを、CRAM制御回路（CRAMC）でCRAMへ書き込むことで実現できる。FPGAが再構成された後は、通常通りFPGAを起動させ、第一階層機械学習・認識装置の通常オペレーションを実施する。
【００６５】
本実施例の機械学習装置を用いた場合の、第一階層と第二階層の間のデータとしては、
（１）第一階層機械学習・認識装置で生成された中間層データ
（２）機械学習装置をFPGAで構成した場合のニューラルネットワーク構造
（３）ニューロン間演算の重み係数
（４）第一階層機械学習・認識装置で入力データを弁別する際の識別率および弁別スコア（ヒストグラム）情報
（５）第一階層機械学習・認識装置でOn the Job Trainingを実施する際の教師あり学習による矯正情報、等が考えられる。
【００６６】
特に、FPGAでこの第一階層機械学習・認識装置を構成する場合、メモリ内に格納している中間層のデータ、および、ネットワークの構成情報（FPGAのスイッチ部を記述するコンフギュレーション情報）、重み情報、第一階層学習・認識装置で認識を実施した認識情報の弁別情報等を第二階層学習・認識装置へ送信することが考えられる。
【００６７】
このようにすることで、入力データを全て第二階層学習・認識装置へ送るよりも少ないデータで、第二階層学習・認識装置が学習する上で効率的な、質の良いデータが送れるので、第二階層での学習効率が高まる効果がある。
【００６８】
本実施例の構成によれば、第一階層と第二階層とでニューラルネットワークのタイプを制限することは必然ではない。例えば、第一階層と第二階層で同様のネットワークを組む場合、全体としてより大型のニューラルネットワークが構築できる効果がある。一方で、第一階層で画像認識処理のニューラルネットワークを構成し、第二階層では自然言語処理のニューラルネットワークを組む場合、第一階層と第二階層とで連携した効率学習が可能になる効果がある。
【実施例２】
【００６９】
図６は、第二階層機械学習・認識装置DNN2から第一階層機械学習・認識装置DNN1へデータを送致する手段を設けていないことが特徴の実施例である。実施例では最もシンプルな構成になる。
【００７０】
この方式の利点としては、第二階層機械学習・認識装置DNN2は第一階層機械学習・認識装置DNN1の演算結果を利用して学習および認識演算を実施するが、第二階層機械学習・認識装置DNN2から第一階層機械学習・認識装置DNN1へのフィードバック経路を有せず、したがって、構成として、第一階層機械学習・認識装置DNN1と第二階層機械学習・認識装置DNN2とを独立とすることができる点である。
【００７１】
第二階層機械学習・認識装置DNN2では、第一階層機械学習・認識装置DNN1で演算された隠れ層HL13、HL23の値を入力として教師有り学習を行う。したがって、第二階層機械学習・認識装置DNN2において学習を繰り返し行う際に、第一階層機械学習・認識装置DNN1にて再度演算実行する必要がないので、第二階層機械学習・認識装置DNN2での学習においては、第一階層機械学習・認識装置DNN1で実行する学習を再度実施する必要がなく、全体として演算量を小さくできる効果もある。
【００７２】
また、第二階層機械学習・認識装置DNN2へ入力させる学習時入力データを第一階層機械学習・認識装置DNN1で生成して転送することで、学習演算の場合でも第二階層機械学習・認識装置DNN2へ渡すデータは少なくて済む効果もある。
【実施例３】
【００７３】
図７により、本実施例の階層型DNN方式を効率よく運用する上での、データ運用手法について説明する。図７は、第一階層機械学習・認識装置DNN1にて、認識処理を進める場合を想定したものである。以後の実施例を説明する図では、煩雑さを避けるために、上位階層から下位階層への信号線を設けない図で説明するが、第一の実施例で示したように、上位階層からの信号接続がある場合にも容易に拡張できる。
【００７４】
第一階層機械学習・認識装置DNN1は外部センサデバイス等や、データベースからの入力を受けて、DNN1内部で認識処理を実行する。その際、中間層のデータ、ここでは、nd014 のデータをDNN1に付属するデータストレージSTORAGE 1（HDD、Flashメモリ、DRAM等）に保持する。第一階層機械学習・認識装置DNN1は、ハードウエア規模が制限される場合が多いと想定しており、この階層でのデータ格納には限界があると考えられる。そのため、この階層には、FIFOのような一時メモリ的な構成を実施することが望ましく、そのデータを第二階層機械学習・認識装置DNN2に間欠的に送信することで、第二階層において、データベースClass DATAを構築する。
【００７５】
このとき、DNN1にて認識処理を進める上で得られる認識スコア情報および、DNN1装置のニューラルネットワーク構成情報、重み係数情報を同時に格納しておくと、第二階層機械学習・認識装置DNN2での追加学習に際して効率がよい。例えば、ニューラルネットワーク情報や重み係数情報は、第一階層と第二階層で相互に認識できる情報であればよく、例えば、64 bit単位のデータで共有することが考えられる。また、第一階層は、ネットワークの構成情報や重み係数情報の詳細は理解する必要がなく、実行しているネットワークと重み係数情報を忘れなければよい。一方で、第二階層機械学習・認識装置DNN2は、第一階層機械学習・認識装置DNN1がどのようなネットワークでどのような重み係数のパターンを用いて実行しているかを知る必要があるので、対応する第一階層機械学習・認識装置DNN1との対応テーブルを用意しておく必要がある。
【００７６】
この図には記載していないが、図１Ｂに記載のように第二階層から第一階層への情報伝達手段を設けて構成することも可能である。
【実施例４】
【００７７】
図８は、第一階層機械学習・認識装置DNN1が３つ以上ある場合を示している。本実施例によれば、第一階層機械学習・認識装置DNN1はそれぞれ独立して学習および認識演算を実施するので、数を増やしても、第二階層機械学習・認識装置DNN2にての学習実行に対する拡張も容易である。
【００７８】
前記の実施例１〜３では、第一階層と第二階層の接続について、2つの階層間では単なる情報の接続だけを示した記載としたが、第一階層の数が増えるに従い、効率的な接続方法が重要になる。この実施例では、ネットワークNWを活用してデータの授受を実施する実施例を示した。通常、ネットワークNWでは、パケットを単位としてデータ授受がなされるので、送り手のアドレスや受けてのアドレス、および通信情報等をまとめて、送付することが可能である。このネットワークNWは、無線でも有線でも不問であり、このシステムが設置される場所や状況に応じて適切に接続すればよい。
【実施例５】
【００７９】
図９は、変形の実施例を示した図である。この図での特徴は、第一階層機械学習・認識装置DNN1を異なる第二階層機械学習・認識装置DNN2-1、DNN2-2で共有することも可能であることを示している。
【００８０】
また、この図に示さないが、図８に記載したように、第一階層機械学習・認識装置DNN1と第二階層機械学習・認識装置DNN2間にネットワークNWを設けることで、第一階層機械学習・認識装置DNN1と第二階層機械学習装置DNN2との間の接続が柔軟に実施できる。これは、第一階層と第二階層で独立した演算を実施している特徴を生かした構成である。
【００８１】
このような構成によって、第一階層および第二階層の機械学習・認識装置で全体の機械学習ネットワークを構成することも可能である。
【実施例６】
【００８２】
図１０は、他の変形の実施例を示した図である。この図での特徴は、第一階層機械学習・認識装置DNN1から第二階層機械学習・認識装置DNN2へ入力するデータとして、複数設けられている中間隠れ層の中から、最適な層のデータを送信できることが特徴である。この図では、HL12およびHL22層の出力から取り出している図を示したが、HL11やHL21等の出力からでもかまわない。
【００８３】
この接続の切り替えは、第一階層機械学習・認識装置DNN1が他の第一階層機械学習・認識装置DNN1、および、第二階層機械学習・認識装置DNN2とは独立に設定することができる。
【００８４】
この場合、第二階層機械学習・認識装置DNN2への送信データは、中間層のデータとともに、ネットワーク構造および重み係数情報を送信することが望ましい。データの送受信手段は、実施例１で述べた手段を用いればよい。
【００８５】
また、出力データの切り替えを、他の第一階層機械学習・認識装置DNN1、および、第二階層機械学習・認識装置DNN2と協調して設定することも可能である。その場合は、他の第一階層機械学習・認識装置DNN1、および、第二階層機械学習・認識装置DNN2とのインターフェースとして、他の機械学習・認識装置からの学習・認識精度情報から、第二階層機械学習・認識装置DNN2への送信データの取り出す層を切り替えるか否かの信号授受を設けると効果的である。
【００８６】
さらに、第二階層機械学習・認識装置DNN2にて、データを出力する中間層を変更した場合、当該データに基づく学習を実行した際の認識率の評価を実施し、関連する第一機械学習・認識装置群の出力制御切り替え制御を実行すればよい。
【００８７】
このようにすることで、刻々と変化する環境に対応した柔軟な学習・認識システムが提供できる効果がある。さらに、設計で追い込めない最適化について実際のデータに基づきデータ収集と学習・認識を運用実施中に適切に変更することで、認識・学習を効率化できる効果がある。
【実施例７】
【００８８】
図１１は、演算階層を3階層に設けた実施例である。演算階層を複数設ける理由は、演算能力と効率を考えている。第一階層機械学習・認識装置DNN1は、組込システムへの搭載を念頭においており、非常にコンパクトな実装並びに、電力制約等が大きく、演算量の多さは期待できない。
【００８９】
一方、第二、第三の階層DNN2、DNN3の演算は、演算ハードウエアの制約が緩くなり、大型化、電力制約緩和等のメリットを活かして、大規模・高速演算が可能となる。
【００９０】
ただし、一般的に、クラウドコンピューティングと呼ばれる階層は、設置場所が不明で、場合によっては、地球の裏側に設置された機材を使うことになる。その場合、物理的距離の影響による遅延並びに、クラウドサーバへの接続に対してネットワーク的な関門（各種ゲートウエイやルータ装置）を通過する遅延等により、リアルタイム制御が難しいという課題がある。
【００９１】
そこで、クラウドコンピューティングによる第三階層DNN3の前に、中規模の第二階層DNN2を設けて低レイテンシ、および、ある程度の高速・大容量演算を実現する階層を設けると都合がよいことがある。これによる負荷分散が効率化できる効果がある。
【実施例８】
【００９２】
以下の実施例にて、第一階層機械学習・認識装置での学習機能がない場合の実施例について説明する。
【００９３】
図１２に記載の実施例は、第一階層機械学習・認識装置DNN1のニューラルネットワーク構造、および、重み係数情報の複製DNN1Cを第二階層機械学習・認識装置にもたせ、第二階層機械学習・認識装置にて学習演算を実施させる。
【００９４】
学習結果のニューラルネットワーク構造、および、重み係数情報は、データnd015により第一階層機械学習・認識装置DNN1に適宜反映させる。
【００９５】
本実施例によれば、端末側の機能が少なくて済み、実装するハード物量が削減できる効果がある。また、第二階層の高性能な機械学習・認識装置で学習することで、第一階層機械学習・認識装置DNN1の学習に要する時間が短くできる効果もある。
【００９６】
第二階層機械学習・認識装置DNN1Cにおける学習演算については、第一階層機械学習・認識装置DNN1で隠れ層の値を演算しておき、それの結果nd014を第二階層機械学習・認識装置DNN1Cへ入力し、第二階層機械学習・認識装置DNN1Cにて教師有り学習を行う。
【００９７】
第二階層での学習では、第一階層機械学習・認識装置DNN1の中間層データを用いて繰り返し実施する。第二階層機械学習・認識装置DNN1Cでの学習結果としてえられた、ニューラルネットワークの構造と重み係数等のデータは、しかるべきタイミングで該一階層機械学習・認識装置DNN1へ送信する。第一階層機械学習・認識装置DNN1では、更新された構成情報を反映後、認識処理を実施する。
【００９８】
このように、第二階層機械学習・認識装置の学習を繰り返し行う際に、第一階層機械学習・認識装置DNN1では再度演算をする必要がないので、学習時の演算量が削減できるという省力化および装置小型化が実現できるメリットがある。
【実施例９】
【００９９】
図１３を用いて、学習法の別の変形例について説明する。この実施例では、実施例８で説明したように、第一階層機械学習・認識装置DNN1での学習機能は、通常認識演算時には使用せず、初期化時や更新時等のタイミングで学習することが特徴である。
【０１００】
第二階層機械学習・認識装置内に第一階層機械学習・認識装置の複製を持ち、そこで学習した後に、第一階層機械学習・認識装置にニューラルネットワーク構造や重み係数等を反映させる。
【０１０１】
第一階層機械学習・認識装置へ新しいニューラルネットワーク構造や重み係数情報が更新された後、第一階層機械学習・認識装置にて教師有り学習を行った後、その学習結果のデータを初期値として用いて、実施例1にて示したように、第一階層および第二階層を含めた全体系での教師有り学習を行う。
【０１０２】
このような構成をとることによって、第一階層機械学習・認識装置と第二階層機械学習・認識装置の全体を一つの深層型ニューラルネットワークとして一気に学習するよりも、学習が容易であるとういう効果がある。
【０１０３】
また、上述の他の基本的な実施例と同様に、第一階層機械学習・認識装置の出力層ではなく、隠れ層から値をとることにより、より多くの情報量がサーバのDNNの入力となる。
基本的な実施例と比べた場合、第一階層機械学習・認識装置だけで使うことはできなくなるが、第一階層および第二階層を含めた全体システムとしての最適化が実現できる効果がある。
【実施例１０】
【０１０４】
図１４は、Convolutional Neural network（CNN）に適用した場合の具体的な実施例である。CNNの場合、隠れ層は、畳込み層（Convolution Layer：CL）とプーリング層（Pooling Layer：PL）にて構成され、その組み合わせが複数段設けられている。この場合、隠れ層のデータとしては、nd111乃至、nd115等のデータである。
【０１０５】
この実施例では、同一対象物を複数のカメラでとらえ、映像の認識処理を実施する例を示した。カメラ１でとらえた映像と、カメラ２でとらえた映像は、位置が異なるので、同一被写体をとらえても被写体の形状が異なる。したがって、同一の被写体を入力データとしつつも、撮影角度や光線の当たり具合などの異なる条件下での情報を同時に取得し認識・学習できるので、効率的である。
【０１０６】
さらに、注目被写体と背景被写体の画像情報が位置ずれ等で変化するので、特徴量抽出に関する情報の切り出しにおける重み係数の算出等の学習に対して効率化できる。
【０１０７】
このとき、全結合層FL11、FL21の前の情報を第二階層機械学習・認識装置DNN2に送ることで、位置情報を持った情報を第二階層機械学習・認識装置DNN2に入力でき、複数のカメラおよびCNN認識処理結果を用い、かつ、複数の第一階層機械学習・認識装置DNN1での中間データを相互に組み合わせる演算を実施することで、より高度な学習が実現できる。また、位置情報や時刻同期情報なども同時に持たせることで、対象とする認識物体への解析情報量が増すことで、より正確な認識の実現に向けた学習が実現できる効果がある。
【０１０８】
さて、本実施例では、第一階層機械学習・認識装置DNN1にFPGAを活用し、第二階層機械学習・認識装置にCPUおよびGPUからなる装置で構成することが考えられる。CNNはその構造上、入力画像に関して小型の画素ブロック（カーネルと呼ぶ）に分解し、その単位で元画像をくまなくスキャンしながら、同じ画素数に対応する重み係数行列との内積演算を実施する。この内積演算に関しては、ハードウエアでの並列処理が効果的であり、LSI内部に多数の演算ユニットとメモリを有するFPGAによる実装が低電力化・高性能化で非常に効率的である。一方で、第二階層においては、複数の第一階層からのデータを効率的に複数の演算ユニットにバッチ処理として分散演算させることが効果的であり、ソフトウエア処理による低コストな分散演算システムを利用することが望ましい。この例のように各種のDNNに容易に適用可能である。
【実施例１１】
【０１０９】
図１５は異なるセンサ（たとえばカメラとマイク）を用いた機械学習システムへの適用の実施例である。この場合、画像処理のニューラルネットワークDNN1-11と音声処理のニューラルネットワークDNN1-13処理を融合したシステムである。ロボットなどでの認識を考える場合、画像と音声の両者を併せて特徴づけることが、様々な認識の上で効果が高いと考えられる。人間が物事を理解する上で、視覚情報と聴覚情報が合わさる方がどちらか単一の場合に比べて、飛躍的に情報量が多いため、認識効率が高まるからである。
【０１１０】
また、この例では、画像はCNNで処理を実施し、音声は全結合のニューラルネットワークで構成することも考えられる。このように、画一的でない様々な方式のニューラルネットワークを用いて、それぞれの長所を融合させることで認識率の向上を目指す構成である。なお、この場合は、学習自体は別々に学習できるので、複雑なシステムであっても、学習自体は容易となる効果がある。
【実施例１２】
【０１１１】
図１６に、このようなシステムを適用した物体認識のためのデータベース構築システムを含む、本実施例のシステム適用および運用方法について示す。
【０１１２】
図１４（実施例１０）に記載したように、画像情報については複数の第一階層機械学習・認識装置からの情報を第二階層機械学習・認識装置へ送信し、第二階層機械学習・認識装置での効率的な学習の実施例について述べた。
【０１１３】
その応用として、ある物体についての学習を強化させ、そのデータベースを構築し、第二階層機械学習・認識装置の学習効率および認識効率を向上させることが効果的である。
【０１１４】
その場合、ひとつの対象について同時に複数の第一階層機械学習・認識装置で認識・学習を実施し、その第一階層機械学習・認識装置で演算した隠れ層データを第二階層機械学習・認識装置へ伝達する。
【０１１５】
この実施例では、まず、画像認識の例として、センサとしてのカメラとその出力データを認識解析するための第一階層機械学習・認識装置DNN 1〜DNN 8で構成される複数のシステムで同時観察する構成を示した。本図には、8個の第一階層機械学習・認識装置を記載したが、本願発明に関しては、その数に制約は設けなくても運用は可能である。
【０１１６】
このように、認識対象を多角的に観察しその基本的な動作や特徴を抽出し、第二階層機械学習・認識装置にてさらに解析し、その観察対象の動作や特徴をうまく抽出するためのニューラルネットワーク構造並びに、重み係数を抽出し、データベース化する。
【０１１７】
本願発明によれば、この対象は画像データに制約されることはなく、例えば、音声情報、温度情報、匂い情報、質感情報（硬さや組成）、等の様々な角度からのデータを入力として扱うことが可能であり、第一階層機械学習・認識装置において情報処理を実施後、効率的な情報を第二階層機械学習装置へ伝送し、さらに詳細な多センサ連携の学習・認識を実施する。
【０１１８】
学習強化期間は、このように、実験室レベルで詳細な観察を実施することが特徴である。さらに、その結果を実運用に供する必要がある。その期間を実運用期間と定義する。
この期間には、第二階層機械学習・認識装置から第一階層機械学習・認識装置への再構成データを伝送し、第一階層機械学習・認識装置が単体でも効率的な認識が実現できるように設定される。
【０１１９】
この状況は、常に変化する環境に対する認識結果を適宜第二階層機械学習・認識装置へ伝達するなどの、本願第一の実施例に基づく運用を実施し、効率的な認識に向けた更なるデータ収集を実施する。
【０１２０】
このようなシステムを構築することで、実運用期間に供する際、最初のデータの質（高い認識率や効率的なニューラルネットワーク形態等）を高められるので、市場での不具合の低減等の効果が期待できる。
【実施例１３】
【０１２１】
図１７を用いて商用適用する上での実施形態について、説明する。この実施例では、前提として、第一階層機械学習・認識装置DNN 1〜DNN Nは、小型の学習・弁別機を想定しており、第二階層機械学習・認識装置DNNは大型の学習機を想定している。
【０１２２】
１st ステップとしては、第二階層機械学習・認識装置DNNでの学習を実施する。ここは最初の学習フェーズである（学習Ｉ）そのため、計算資源の潤沢な第二階層機械学習・認識装置DNNでの学習が効率的である。この場合、入力データは2nd STEPで実施する運用状況に即したデータで学習する。例えば、自動運転等を考える場合、自動車に備え付けられたカメラで撮影した動画データ等が考えられる。ある意味、この段階の学習は、限られた状況下のデータを使うことになり、データ量としては制限のある学習になるが、第一階層機械学習・認識装置の基本的なDNNネットワークを構築するための基本的な構成を構築する学習と位置づけられる。
【０１２３】
ついで、２nd ステップについて説明する。弁別機を第一階層機械学習・認識装置DNN 1〜DNN Nに搭載し、実際の運用状況下での実地訓練による認識・学習（教師あり学習）を実施する。この段階での学習は、まさに、自動車運転免許を取得する際の、運転免許取得に向けた実地訓練に相当する。
【０１２４】
この段階では、まずは、認識率向上に向けたデータ収集が主たる目的であり、１ｓｔ ステップで構築したDNNについて、教師データとのかい離状況を把握することが目的である。例えば、自動運転システムに適用する場合、実際の自動車に搭載し、ドライバ（人間）の判断を教師データとし、その乖離をスコア化してデータ収集を実施する。その際、DNN 1〜DNN Nの隠れ層のデータを適宜第二階層機械学習・認識装置DNNへ送信し、第二階層機械学習・認識装置DNNで更なる学習を積み上げ、第一階層機械学習・認識装置DNN 1〜DNN Nへ更新データを反映させ、さらに、第一階層機械学習・認識装置DNN 1〜DNN Nで教師あり学習を推進する。
【０１２５】
このとき、特にスコアがよい状態や、スコアが悪い場合、もしくは、判定にまよいが生じた場合を分別して整理し、第二階層機械学習・認識装置DNNへ送信すると、第二階層機械学習・認識装置DNNでそれらの情報も用いながら多角的な学習が可能となる。
【０１２６】
最後に、３ｒｄステップについて述べる。この段階は、第一階層機械学習・認識装置DNN 1〜DNN Nの弁別機が十分に学習された場合に相当し、制御権を付与される段階である。この段階では、基本的に第一階層機械学習・認識装置では学習はせずに、認識処理を中心に実施する。ただし、基本的な事項について、教師データとの比較を実施し、比較結果のレベルを保持する簡易的なチェック機構を設けて、適宜第二階層機械学習・認識装置DNNへ伝達し、第二階層機械学習・認識装置DNNにて継続学習を実施する。
【０１２７】
このように、継続的に機械学習システムも更新させていくことで、自動運転等の高度な制御を実現することができる。
【実施例１４】
【０１２８】
図１８は、ニューラルネットワークの完全結合層をFPGAで実装するための一実施例である。CNN方式の最終出力層やGRBM(Gaussian Restricted Boltzmann Machine)方式等のニューラルネットワークで使用される接続形態であるが、FPGA化する上で高効率な実装が必要である。特に、下層(可視層)から上層（隠れ層）への接続の演算と、その逆の上層（隠れ層）から下層（可視層）への演算では、重み係数の演算順序が異なる。下層から上層、および、上層から下層の両者を高速に演算するためには、重み係数を両者の読み出しが高速になるように、最適配置しておく必要がある。
【０１２９】
つまり、下層から上層への変換に関する演算では、重み係数行列をWと置くと
H  ＝  W  ・ V      ・・・  （１）
の内積演算が必要になるが、逆に、上層から下層への演算においては、
V  =  WT  ・ H      ・・・  （２）
のWの転置行列との内積演算が必要になる。図１８（A）に示すネットワークを例に演算を具体的に説明する。
【０１３０】
ここでは、下層はVo〜V3の4つのノードで構成され、上層はｈ０〜ｈ２の３つのノードで構成されており、下層のノードはすべて上層のノードと接続され、その接続は、入力側のノードの値に重み関数を掛け合わせて出力側のノードの値を求める演算になっている。
【０１３１】
すなわち、下層4ノード、上層3ノード間を夫々の層間で完全に接続が出来る構成となっているので、重み係数は、４ｘ４＝16通りの値を持っている。この値を行列形式で表現すると、４ｘ４行列で表される。上記（１）式、（２）式より明らかに、両式の間には、W行列を転置する演算が必要になり、ハードウエアで構成する場合、高速化を考えると、演算に最適化したメモリ配置にしておく必要がある。すなわち、式（１）、式（２）を計算する場合には、両者で独立したW行列用のレジスタやメモリを用意しておく必要がある。
【０１３２】
しかしながら、重み係数は、非常に大きな次元を持つ行列になるので、そのような行列を2つ用意して演算することは、特に、第一階層機械学習・認識装置においてはコスト的に不利になる。そこで、演算の高速性を維持しつつ、面積低減が可能なこの重み係数を保持するメモリ構成が重要になる。
【０１３３】
これを実現する手段は、まず、重み係数を格納する際、図１８（B）に示すように、一般的には、下記の行列表現になろう。
【０１３４】
【数１】
2020074211.tif 000003
【０１３５】
とあらわすことになるが、それを、図１８（B）のように、ずらした形で記述する。これと同時に、演算回路としては、図１８（C）に示すような、積和演算回路に、入力セレクタ部に本回路での演算結果をアキュムレータへの入力経路にある乗算部、加算部に入れる経路と、隣の積和演算回路の乗算部、加算部に入れる経路とを有していることが特長である。
【０１３６】
ここでは4つの演算ユニット（ｅｕ０〜ｅｕ３）を示している。各演算ユニットには、乗算部（ｐｄ０〜ｐｄ３）と、加算部（ａｄ０〜ａｄ３）と、アキミュレータ（ａｃ０〜ａｃ３）を有し、加算部の入力は、セレクタによって、第一入力は3入力（ｉ０００,ｉ００１,ｉ００２）、第２入力は、（ｉ０１０,ｉ０１１,ｉ０１２）、加算部の入力は、乗算部の出力を第一入力とし、第二入力は、セレクタで切り替え可能な４入力（ｉ０２０,ｉ０２１,ｉ０２２,ｉ０２３）とする例を示した。ここで、ｉ０２０は“０”、ｉ０２１はレジスタからの入力、ｉ０２２はアキュムレータ出力、ｉ０２３は乗算部入力の一部（i０１２）と入力を共有化する例を示した。
【０１３７】
演算方法としては、
（１）下層から上層の値を求める場合：
Vレジスタに入力されたデータを各加算部に入力し（ｉ０１０,ｉ０２０,ｉ０３０,ｉ０４０）、対応するWアレイの重み係数を乗算部に入力し（ｉ０００,ｉ１００,ｉ２０００,ｉ３００）、乗算を実施後、最初は”０”を”ｉ０２０，  ｉ１２０  ｉ２２０  ｉ３２０  へ入力し加算する。次に、Vレジスタの値を左にシフト（ローテート）し、対応するVレジスタの値を乗算部に入力する。これにより、実質的にWレジスタのアドレスがインクリメントしたアドレスのデータを乗算部へ入力することができる。乗算後、ｓｗ０１、ｓｗ１１、ｓｗ２１、ｓｗ３１をＯＦＦにし、ｓｗ０２、ｓｗ１２、ｓｗ２２、ｓｗ３２をONにして、アキュムレータに格納されているデータを加算部に入力して加算する。これを全てにわたって実行する。その結果、
V0*W00+V1*W10+V2*W20+V3*W30      ・・・  （３）
V0*W01+V1*W11 +V2*W21+V3*W31   ・・・  （４）
V0*W02+V1*W12 +V2*W22+V3*W32   ・・・  （５）
を得る。このモードは隣の演算ユニットの結果を利用しないので、セルフ演算モードとよぶ。
【０１３８】
（２）上層から下層の値を求める場合：
この場合は、アキュムレータに格納されたデータを隣の積和演算回路の加算部に渡すことで、実質的に、Wアレイの斜めシフト演算を実行するものである。
【０１３９】
まず、Wアレイからアドレス＃３の情報を読み出し、乗算部に入力する（ｉ０００,ｉ１００,ｉ２０００,ｉ３００）。Hレジスタの対応するユニットを乗算部に入力し（ｉ０１０,ｉ０２０,ｉ０３０）、その後乗算し、最初は”０”を加算後、アキュムレータ へ格納する。２回目以降は、アキュムレータの格納データを隣の演算ユニットの加算回路に入力するので、ｓｗ０１、ｓｗ１１、ｓｗ２１、ｓｗ３１をＯＮにし、ｓｗ０２、ｓｗ１２、ｓｗ２２、ｓｗ３２をＯＦＦにして演算を実施する。最初の演算でも、アキュムレータをリセットしておけば、隣の積和演算回路のアキュムレータ出力を入力することで、実質的な”０”加算が実施することができる。 
上記の演算を繰り返し、以下を得る。
H2*W32+H1*W31+H0*W30  ・・・  （６）
H0*W00+H2*W02+H1*W01 ・・・  （７）
H1*W11+H0*W10+H2*W12 ・・・  （８）
H2*W22+H1*W21+H0*W20 ・・・  （９）
このモードはとなりの演算ユニットの結果を利用するので、相互演算モードとする。
【０１４０】
このように演算することで、下層から上層の演算を実施する場合でも、その逆で、上層から下層の演算を実施する場合でも省面積でかつ高速な演算が実現できる。
【０１４１】
以上の実施例では、DNN装置を階層化させて、端末側処理部とサーバ側処理部を設ける例を説明した。さらに、端末側の入力データや端末側で認識を実施している際のDNNの中間層データをサーバ側へ送り、サーバ側で学習を実施し、サーバでの学習結果をしかるべきタイミングで、端末側へ送信し端末での認識動作を進める例を説明した。サーバ側のDNNの入力は、端末のDNNの中間層のデータ出力を用い、それぞれの階層においてDNNで学習することである。学習方法としては、端末のDNNの教師有り学習を行った後、サーバのDNNの教師有り学習を行う。端末側のDNN装置は、小型、小面積、低電力なデバイスで構成し、サーバ側のDNN装置は、高速演算かつ大容量メモリを有する、いわゆるサーバで構成した。
【０１４２】
以上詳細に説明した実施例によると、端末のDNNの出力層ではなく、隠れ層から値をとることにより、より多くの情報量がサーバのDNNの入力となることで、全体として効率的な学習が可能になる効果がある。
【０１４３】
また、階層的な学習とすることで、全体を一つのDNNとするよりも、学習時間が短縮、および、学習自体が容易化する効果がある。
【０１４４】
さらに、IoTを活用した複数端末の協調動作を考える場合、設計者が当初考えた制御変数が最適であるとは必ずしも言えないが、このような最適化が困難である複数の端末とサーバ間での階層的なDNN構成することで、全体としての最適化ができる効果もある。
【０１４５】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【０１４６】
機械学習を適用できる技術分野全般、例えば、社会インフラシステム分野に利用することができる。
【符号の説明】
【０１４７】
1st   HRCY   第一階層機械学習・認識装置
2nd   HRCY   第二階層機械学習・認識装置
3rd   HRCY   第三階層機械学習・認識装置
IL   入力層
HL   隠れ層
OL   出力層
DNN  ディープニューラルネット型機械学習・認識部
WUD    重み係数変更線（WUD：Wait coefficient up date）
NWCD   ニューラルネットワーク構成情報データ伝送線
WCD    重み係数変更線
WCU    重み係数調整回路（WCU：Weight Change Unit）
DNNCC  DNNネットワーク構成制御部
DDATA  検出データ
LM      学習モジュール
DD     誤差検出部（DD：Deviation Detection）部
TDS    教師データ
DS    データストレージ部
nij     i層,j番目のノード
nd ij,k  i層,j番目のノードとi+1層,ｋ番目のノードとの接続線
AU    算術演算ユニット
w ij,k    i層,j番目のノードを入力とし、i+1層,ｋ番目のノードの値を計算する際の重み係数
DNN#   第一階層機械学習・認識装置に搭載されいているDNNネットワークの識別番号
WPN#  第一階層機械学習・認識装置に搭載されいているDNNネットワークの重み係数のパターン番号
RES_COMP 
Det_rank  検出結果のランキング情報
UD Req   第一階層機械学習・認識装置のニューラルネットワークの更新リクエスト発行情報
UD Prprd  第一階層機械学習・認識装置のニューラルネットワークの更新完了情報
CRAM  FPGAの構成情報格納メモリ
LEU  ルックアップテーブル格納ユニット
SWU  スイッチ部ユニット
DSP  算術演算ハード演算部
RAM   FPGA内メモリ
IO   データ入出力回路部
IN_DATA  第一階層機械学習・認識装置の入力データ
STORAGE  第一階層機械学習・認識装置から第二階層機械学習・認識装置へのデータ転送一時保管データ蓄積部
CLASS_DATA   第一階層からの複数の第一階層機械学習・認識装置から送信された情報を蓄えるデータベース
NW   ネットワーク
CL11 畳込み層
PL11  プーリング層
FL11   完全結合層
【図１Ａ】
2020074211.tif 000004
【図１Ｂ】
2020074211.tif 000005
【図２】
2020074211.tif 000006
【図３Ａ】
2020074211.tif 000007
【図３Ｂ】
2020074211.tif 000008
【図４】
2020074211.tif 000009
【図５】
2020074211.tif 000010
【図６】
2020074211.tif 000011
【図７】
2020074211.tif 000012
【図８】
2020074211.tif 000013
【図９】
2020074211.tif 000014
【図１０】
2020074211.tif 000015
【図１１】
2020074211.tif 000016
【図１２】
2020074211.tif 000017
【図１３】
2020074211.tif 000018
【図１４】
2020074211.tif 000019
【図１５】
2020074211.tif 000020
【図１６】
2020074211.tif 000021
【図１７】
2020074211.tif 000022
【図１８】
2020074211.tif 000023
【手続補正書】
【提出日】令和2年1月29日(2020.1.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のDNNを階層的に構成し、
第一階層機械学習・認識装置は、入力層、出力層、および隠れ層を備えるDNNにより入力データの特徴抽出を実施し、その特徴から出力値を選択して出力する学習および認識機能を有する装置であり、
第二階層機械学習・認識装置は、入力層、出力層、および隠れ層を備えるDNNにより入力データの特徴抽出を実施し、その特徴から出力値を選択して出力する学習および認識機能を有する装置であり、
前記第一階層機械学習・認識装置のDNNの隠れ層のデータを、前記第二階層機械学習・認識装置へ送信し、前記第二階層機械学習・認識装置のDNNの入力データとして、
前記第一階層機械学習・認識装置と前記第二階層機械学習・認識装置は、それぞれが独立に入力および出力を備え、かつ、それぞれが独立のタイミングで学習および認識の実施が可能であり、前記第一階層機械学習・認識装置が認識を実施している際に得られる隠れ層のデータを用いて、前記第二階層機械学習・認識装置で学習を実施することを特徴とする情報処理システム。
【請求項２】
前記第一階層機械学習・認識装置のDNNについて出力層が所望の出力となるように教師有り学習を行った後、
前記第二階層機械学習・認識装置のDNNの教師有り学習を行う、請求項１記載の情報処理システム。
【請求項３】
前記第一階層機械学習・認識装置は、
認識処理を実施すると同時に、前記認識処理の認識結果のスコアを記憶する手段を設け、前記認識結果があらかじめ決められたしきい値１よりも大きくなった場合、もしくは、あらかじめ決められたしきい値２よりも小さくなった場合、もしくは、前記認識結果のヒストグラムを作成した際に分散があらかじめ決められた値より大きくなった場合に、前記第二階層機械学習・認識装置に対して、前記第一階層機械学習・認識装置のDNNのニューラルネットワーク構造および重み係数に対して更新リクエスト信号を送信する更新リクエスト送信手段を設け、
前記第二階層機械学習・認識装置は、
第一階層機械学習・認識装置の前記更新リクエスト信号を受取ると、前記第一階層機械学習・認識装置のDNNのニューラルネットワーク構造および重み係数の更新を実施し、その、更新データを前記第一階層機械学習・認識装置へ送信し、
前記第一階層機械学習・認識装置は、
前記更新データをもとに、新たなニューラルネットワークを構築する、請求項１記載の情報処理システム。
【請求項４】
前記第一階層機械学習・認識装置は、
学習処理を行う学習モジュールと、
前記学習処理の学習結果の重み係数情報、認識結果レーティング情報、中間層データ情報を格納する記憶手段と、
前記第一階層機械学習・認識装置のニューラルネットワークの更新が必要な場合に、更新リクエスト信号を、前記第二階層機械学習・認識装置へ送信する手段を有する、請求項１記載の情報処理システム。
【請求項５】
前記第一階層機械学習・認識装置と、前記第二階層機械学習・認識装置の接続において、
前記第一階層機械学習・認識装置から前記第二階層機械学習・認識装置への入力のみを有する、請求項１記載の情報処理システム。
【請求項６】
前記第一階層機械学習・認識装置は、
前記DNNの隠れ層の値を一時的に保持する記憶装置を有するとともに、前記第二階層機械学習・認識装置において前記記憶装置のデータを入力データデータベースとして保持する機構を有する、請求項１記載の情報処理システム。
【請求項７】
前記第一階層機械学習・認識装置が複数あり、前記複数の第一階層機械学習・認識装置から単一の前記第二階層機械学習・認識装置への前記入力データの送信については、直接もしくは、有線および無線の少なくとも一つを用いたネットワークを介して接続されることを特徴とする、請求項１記載の情報処理システム。
【請求項８】
複数の前記第二階層機械学習・認識装置を備え、
一つの前記第一階層機械学習・認識装置からの前記隠れ層のデータを、複数の前記第二階層機械学習・認識装置で共有する、請求項１記載の情報処理システム。
【請求項９】
前記第一階層機械学習・認識装置のハードウエア規模よりも、前記第二階層機械学習・認識装置のハードウエア規模を大きく構成した、
請求項１記載の情報処理システム。
【請求項１０】
複数のDNNから構成される情報処理システムの運用方法であって、
前記複数のDNNは、第一階層機械学習・認識装置と第二階層機械学習・認識装置を含む多層構造を構成し、
前記第一階層機械学習・認識装置は、入力層、出力層、および隠れ層を備えるDNNにより入力データの特徴抽出を実施し、その特徴から出力値を選択して出力する学習および認識機能を有する装置であり、
前記第二階層機械学習・認識装置は、入力層、出力層、および隠れ層を備えるDNNにより入力データの特徴抽出を実施し、その特徴から出力値を選択して出力する学習および認識機能を有する装置であり、
前記第二階層機械学習・認識装置の情報処理能力は、前記第一階層機械学習・認識装置の情報処理能力よりも高いものを用いることとし、
前記第一階層機械学習・認識装置のDNNの隠れ層のデータを、前記第二階層機械学習・認識装置のDNNの入力データとし、
前記第一階層機械学習・認識装置と前記第二階層機械学習・認識装置は、それぞれが独立に入力および出力を備え、かつ、それぞれが独立のタイミングで学習および認識の実施が可能であり、前記第一階層機械学習・認識装置が認識を実施している際に得られる隠れ層のデータを用いて、前記第二階層機械学習・認識装置で学習を実施する、情報処理システムの運用方法。
【請求項１１】
前記第二階層機械学習・認識装置の処理結果に基づいて、前記第一階層機械学習・認識装置のDNNのニューラルネットワークの構成を制御する、請求項１０記載の情報処理システムの運用方法。
【請求項１２】
複数の前記第一階層機械学習・認識装置を用いて、ひとつの被検査対象の観察を実施し、
前記観察の過程で得られる、前記第一階層機械学習・認識装置の前記隠れ層のデータを前記第二階層機械学習・認識装置へ伝達し、
前記第二階層機械学習・認識装置では、前記隠れ層のデータをもとに学習を実施するとともに、前記第一階層機械学習・認識装置のニューラルネットワーク構造および重み係数を算出するためのデータベースを構築し、
前記第二階層機械学習・認識装置での前記学習ならびに前記データベースの構築期間を前記第一階層機械学習・認識装置の学習強化期間として定義し、
前記第二階層機械学習・認識装置は、前記学習が完了後に、前記第一階層機械学習・認識装置のニューラルネットワークおよび重み係数を設定し、前記第一階層機械学習・認識装置と前記第二階層機械学習・認識装置とで認識学習の運用を実施する、実運用期間を定義する運用形態を有する、請求項１０記載の情報処理システムの運用方法。
【請求項１３】
複数の前記第一階層機械学習・認識装置の構築に向けて、前記第二階層機械学習・認識装置にて初期のニューラルネットワーク構築のための第一の学習期間を設け、
その後、前記第一の学習期間で会得された学習データを前記第一階層機械学習・認識装置に実装し、前記第一階層機械学習・認識装置を実運用させながら教師あり学習を推進する第二の学習期間を設け、
さらに、前記第二の学習期間が終了後に、前記第一階層機械学習・認識装置を用いた機械学習認識制御を実施し、必要に応じて前記第二階層機械学習・認識装置との連携学習を推進する第三の学習期間を設ける、請求項１０記載の情報処理システムの運用方法。