図面 (/)

技術 ニューラルネットワーク装置、信号生成方法およびプログラム

出願人 TDK株式会社
発明者 寺崎幸夫
出願日 2018年3月6日 (2年3ヶ月経過) 出願番号 2018-040214
公開日 2019年9月12日 (9ヶ月経過) 公開番号 2019-153254
状態 特許登録済
技術分野 学習型計算機
主要キーワード スパイク信号 電流積分回路 アナログ演算器 不等分割 単位パルス幅 閾値取得 立ち下りタイミング 識別クラス
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2019年9月12日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ニューラルネットワークにおける積和演算ニューロモルフィック素子を使用する場合に、演算時間の増加を抑制する。

解決手段

入力信号離散値を、予め定められた閾値に基づいて入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引き部と、間引き部が生成する間引き信号の離散値をパルス幅変調することにより、間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調部と、可変な特性の値に応じた重みを、変調部が生成するパルス幅変調信号に対して乗算することにより、パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子を含む重み付け部と、を備えるニューラルネットワーク装置

概要

背景

従来から、ニューラルネットワークの技術が検討されている。
深層学習をはじめ、ニューラルネット技術を用いた高度な情報の識別技術分類技術が金融マーケティング、認証、セキュリティなどの広い分野で実用化されている。このような技術では、通常、膨大な量の積和演算が必要であり、クラウドサーバあるいは巨大計算機を用いて実行される場合が多い。

近年、アナログ的にコンダクタンス抵抗逆数)が変化するニューロモルフィック(Neuromorphic)素子を利用して、上述の積和演算を低電力高速に実行することが可能な新たな演算機構が研究されている。これらは、人間の脳の認識プロセスにおけるニューロンシナプスの関係を模倣することで低消費電力、高速な信号処理を実現しようとするもので、ニューラルネットワークの構造をスタティックネットワークモデルとして模倣する技術、あるいは、スパイク信号のタイミングからニューロンの発火モデルを実現しようとする技術など、幅広い研究が行われている。

一例として、特許文献1では、スパイク型のニューラルネットワークにおいて、実数値シミュレーションによって求められた重み(結合重み)を、離散値シナプス・デバイスを含むニューラルネットワークの回路チップにロードする手法が開示されており、当該回路チップはニューロモルフィック素子を含む(特許文献1参照。)。

しかしながら、ニューロモルフィック素子をニューラルネットワークに適用する場合、通常、入力信号パルス幅変調(PWM)されるため、課題の一つとして、入力信号の分解能を高くすると、この分解能に応じてニューロモルフィック素子による演算時間が増加するという課題がある。一方、入力信号を電圧電流値変調させるニューロモルフィック素子の場合、一般にニューロモルフィック素子に高い電圧を印加すると素子の抵抗値そのものが変化したり、素子のブレークダウンを起こしたりするため、非常に限られた電圧範囲の中を多くのステップ分圧することが必要になる。その結果、パルス電圧の高精度な制御や電流検出回路の構成分解能化が必要になってしまう課題がある。

概要

ニューラルネットワークにおける積和演算にニューロモルフィック素子を使用する場合に、演算時間の増加を抑制する。入力信号の離散値を、予め定められた閾値に基づいて入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引き部と、間引き部が生成する間引き信号の離散値をパルス幅変調することにより、間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調部と、可変な特性の値に応じた重みを、変調部が生成するパルス幅変調信号に対して乗算することにより、パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子を含む重み付け部と、を備えるニューラルネットワーク装置

目的

本発明は、このような事情を考慮してなされたもので、ニューラルネットワークにおける積和演算にニューロモルフィック素子を使用する場合に、演算時間の増加を抑制することができるニューラルネットワーク装置、信号生成方法およびプログラムを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

入力信号離散値を、予め定められた閾値に基づいて前記入力信号量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引き部と、前記間引き部が生成する前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調部と、可変な特性の値に応じた重みを、前記変調部が生成する前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子を含む重み付け部と、を備えるニューラルネットワーク装置

請求項2

前記閾値が、前記重み付け部が出力する前記重み付け信号の重み付け結果に基づいて定められている請求項1に記載のニューラルネットワーク装置。

請求項3

前記間引き部は、複数の前記入力信号について、それぞれに対応する前記間引き信号を生成し、前記変調部は、前記間引き部が生成する複数の前記間引き信号にそれぞれ対応する前記パルス幅変調信号を、信号波形変化タイミングを互いに異ならせて生成する請求項1又は請求項2に記載のニューラルネットワーク装置。

請求項4

前記閾値は、前記入力信号の量子化段階数を不等幅にして分割する請求項1から請求項3のいずれか一項に記載のニューラルネットワーク装置。

請求項5

前記間引き部は、前記入力信号の量子化段階数を2分割することにより二値の前記間引き信号を生成し、前記変調部は、前記間引き信号に応じた二値の前記パルス幅変調信号を生成し、前記重み付け部は、二値の前記パルス幅変調信号が重み付けられた前記重み付け信号を出力し、前記重み付け部が出力する前記重み付け信号の電流の大きさを検出する電流検出部をさらに備える請求項1から請求項4のいずれか一項に記載のニューラルネットワーク装置。

請求項6

前記間引き部による前記間引き信号の生成に用いられる前記閾値を取得する閾値取得部をさらに備える請求項1から請求項5のいずれか一項に記載のニューラルネットワーク装置。

請求項7

前記閾値が、前記入力信号に基づいて可変にして定められている請求項1から請求項6のいずれか一項に記載のニューラルネットワーク装置。

請求項8

前記間引き部が生成する前記間引き信号の離散値の段階数が、前記入力信号の量子化段階数よりも少ない段階数の範囲において、前記入力信号の値に基づいて可変にして定められている請求項1から請求項7のいずれか一項に記載のニューラルネットワーク装置。

請求項9

入力信号の離散値を、予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引きステップと、前記間引きステップにおいて生成される前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調ステップと、ニューロモルフィック素子が、可変な特性の値に応じた重みを、前記変調ステップにおいて生成される前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力する重み付けステップと、を有する信号生成方法

請求項10

ニューラルネットワーク装置が備えるコンピュータに、入力信号の離散値を、予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引きステップと、前記間引きステップにおいて生成される前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調ステップと、可変な特性の値に応じた重みを、前記変調ステップにおいて生成される前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子に対して、前記パルス幅変調信号を供給することにより前記重み付け信号を出力させる重み付けステップと、を実行させるためのプログラム

技術分野

0001

本発明は、ニューラルネットワーク装置信号生成方法およびプログラムに関する。

背景技術

0002

従来から、ニューラルネットワークの技術が検討されている。
深層学習をはじめ、ニューラルネット技術を用いた高度な情報の識別技術分類技術が金融マーケティング、認証、セキュリティなどの広い分野で実用化されている。このような技術では、通常、膨大な量の積和演算が必要であり、クラウドサーバあるいは巨大計算機を用いて実行される場合が多い。

0003

近年、アナログ的にコンダクタンス抵抗逆数)が変化するニューロモルフィック(Neuromorphic)素子を利用して、上述の積和演算を低電力高速に実行することが可能な新たな演算機構が研究されている。これらは、人間の脳の認識プロセスにおけるニューロンシナプスの関係を模倣することで低消費電力、高速な信号処理を実現しようとするもので、ニューラルネットワークの構造をスタティックネットワークモデルとして模倣する技術、あるいは、スパイク信号のタイミングからニューロンの発火モデルを実現しようとする技術など、幅広い研究が行われている。

0004

一例として、特許文献1では、スパイク型のニューラルネットワークにおいて、実数値シミュレーションによって求められた重み(結合重み)を、離散値シナプス・デバイスを含むニューラルネットワークの回路チップにロードする手法が開示されており、当該回路チップはニューロモルフィック素子を含む(特許文献1参照。)。

0005

しかしながら、ニューロモルフィック素子をニューラルネットワークに適用する場合、通常、入力信号パルス幅変調(PWM)されるため、課題の一つとして、入力信号の分解能を高くすると、この分解能に応じてニューロモルフィック素子による演算時間が増加するという課題がある。一方、入力信号を電圧電流値変調させるニューロモルフィック素子の場合、一般にニューロモルフィック素子に高い電圧を印加すると素子の抵抗値そのものが変化したり、素子のブレークダウンを起こしたりするため、非常に限られた電圧範囲の中を多くのステップ分圧することが必要になる。その結果、パルス電圧の高精度な制御や電流検出回路の構成分解能化が必要になってしまう課題がある。

先行技術

0006

国際公開第2012/055593号

発明が解決しようとする課題

0007

上述のように、ニューラルネットワークにおける積和演算にニューロモルフィック素子を使用する場合、当該ニューロモルフィック素子に対する入力信号の分解能の高さに起因して、演算時間が増加するという課題があった。

0008

本発明は、このような事情を考慮してなされたもので、ニューラルネットワークにおける積和演算にニューロモルフィック素子を使用する場合に、演算時間の増加を抑制することができるニューラルネットワーク装置、信号生成方法およびプログラムを提供することを課題とする。また、本発明は、電圧値や電流値を変調させた入力信号をとるニューロモルフィック素子を使用する場合は、回路の簡素化が期待される。

課題を解決するための手段

0009

本発明の一態様は、入力信号の離散値を、予め定められた閾値に基づいて前記入力信号量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引き部と、前記間引き部が生成する前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調部と、可変な特性の値に応じた重みを、前記変調部が生成する前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子を含む重み付け部と、を備えるニューラルネットワーク装置である。

0010

本発明の一態様は、上述のニューラルネットワーク装置において、前記閾値が、前記重み付け部が出力する前記重み付け信号の重み付け結果に基づいて定められている。

0011

本発明の一態様は、上述のニューラルネットワーク装置において、前記間引き部は、複数の前記入力信号について、それぞれに対応する前記間引き信号を生成し、前記変調部は、前記間引き部が生成する複数の前記間引き信号にそれぞれ対応する前記パルス幅変調信号を、信号波形変化タイミングを互いに異ならせて生成する。

0012

本発明の一態様は、上述のニューラルネットワーク装置において、前記閾値は、前記入力信号の量子化段階数を不等幅にして分割する。

0013

本発明の一態様は、上述のニューラルネットワーク装置において、前記間引き部は、前記入力信号の量子化段階数を2分割することにより二値の前記間引き信号を生成し、前記変調部は、前記間引き信号に応じた二値の前記パルス幅変調信号を生成し、前記重み付け部は、二値の前記パルス幅変調信号が重み付けられた前記重み付け信号を出力し、前記重み付け部が出力する前記重み付け信号の電流の大きさを検出する電流検出部をさらに備える。

0014

本発明の一態様は、上述のニューラルネットワーク装置において、前記間引き部による前記間引き信号の生成に用いられる前記閾値を取得する閾値取得部をさらに備える。

0015

本発明の一態様は、上述のニューラルネットワーク装置において、前記閾値が、前記入力信号に基づいて可変にして定められている。

0016

本発明の一態様は、上述のニューラルネットワーク装置において、前記間引き部が生成する前記間引き信号の離散値の段階数が、前記入力信号の量子化段階数よりも少ない段階数の範囲において、前記入力信号の値に基づいて可変にして定められている。

0017

本発明の一態様は、入力信号の離散値を、予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引きステップと、前記間引きステップにおいて生成される前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調ステップと、ニューロモルフィック素子が、可変な特性の値に応じた重みを、前記変調ステップにおいて生成される前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力する重み付けステップと、を有する信号生成方法である。

0018

本発明の一態様は、ニューラルネットワーク装置が備えるコンピュータに、入力信号の離散値を、予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引きステップと、前記間引きステップにおいて生成される前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調ステップと、可変な特性の値に応じた重みを、前記変調ステップにおいて生成される前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子に対して、前記パルス幅変調信号を供給することにより前記重み付け信号を出力させる重み付けステップと、を実行させるためのプログラムである。

発明の効果

0019

本発明によれば、ニューラルネットワークにおける積和演算にニューロモルフィック素子を使用する場合に、演算時間の増加を抑制することができる。

図面の簡単な説明

0020

本発明の実施形態に係るニューラルネットワークシステムの概略的な構成を示すブロック図である。
本発明の実施形態に係るニューラルネットワーク回路の概略的な構成を示すブロック図である。
本発明の実施形態に係る素子アレイ概念的な構成を示すブロック図である。
本発明の実施形態に係る識別対象の画像の例を示す図である。
本発明の実施形態に係るパラメーターα、βに関する特性の一例を示す図である。
本発明の実施形態に係る重みの学習の結果の一例を示す図である。
本発明の実施形態に係るニューロモルフィック素子に設定されるダイナミックレンジに応じた識別精度の一例を示す図である。
すべての層について同じダイナミックレンジをニューロモルフィック素子に設定した場合における結果の一例を示す図である。
本発明の実施形態に係る各層について異なるダイナミックレンジをニューロモルフィック素子に設定した場合における結果の一例を示す図である。
すべての層について同じダイナミックレンジをニューロモルフィック素子に設定した場合における結果の他の例を示す図である。
本発明の実施形態に係る各層について異なるダイナミックレンジをニューロモルフィック素子に設定した場合における結果の他の例を示す図である。
本発明の実施形態に係るニューロモルフィック素子に設定されるダイナミックレンジのオフセット量に応じた識別精度の一例を示す図である。
本発明の実施形態に係るニューラルネットワーク回路において行われる処理の手順の一例を示す図である。
本発明の第2の実施形態に係るニューラルネットワーク装置の概略的な構成を示す図である。
本実施形態の間引き回路が参照する閾値の一例を示す図である。
本実施形態の間引き回路による離散値変換の一例を示す図である。
本実施形態のPWM変調回路によるパルス幅変調の一例を示す図である。
本実施形態のニューロモルフィックデバイスの構成の一例を示す図である。
本実施形態のニューロモルフィックデバイスに供給されるパルス幅変調信号の一例を示す図である。
本実施形態のニューロモルフィックデバイスに供給されるパルス幅変調信号の変形例を示す図である。
本実施形態の間引き回路が参照する閾値の変形例を示す図である。
本実施形態の間引き回路による離散値変換の変形例を示す図である。
本実施形態の間引き回路が参照する閾値の第2の変形例を示す図である。
本実施形態の間引き回路による離散値変換の第2の変形例を示す図である。
本実施形態のPWM変調回路によるパルス幅変調の変形例を示す図である。
本実施形態のニューロモルフィックデバイスに供給されるパルス幅変調信号の変形例を示す図である。
従来のニューラルネットワーク装置の構成の一例を示す図である。

実施例

0021

[第1の実施形態]
以下、図面を参照し、本発明の第1の実施形態について説明する。

0022

[ニューラルネットワークシステムの概要
図1は、本発明の実施形態に係るニューラルネットワークシステム1の概略的な構成を示すブロック図である。
ニューラルネットワークシステム1は、制御装置11と、素子アレイ部12を備える。
制御装置11は、識別制御部21と、重み演算制御部22と、重み割り当て制御部23と、記憶部24を備える。

0023

素子アレイ部12は、ニューラルネットワークにおける積和演算を行う。素子アレイ部12は、ニューロモルフィック素子を含む。
制御装置11は、素子アレイ部12に関する制御を行う。
識別制御部21は、ニューラルネットワークにおける識別の処理を制御する。
重み演算制御部22は、ニューロモルフィック素子に割り当てられる重みの演算(計算)の処理を制御する。
重み割り当て制御部23は、ニューロモルフィック素子に対して重みを割り当てる。
記憶部24は、情報を記憶する。本実施形態では、説明の便宜上、1個の記憶部24を示したが、他の構成例として、制御装置11が2個以上の記憶部を備えてそれぞれの記憶部を使い分けてもよい。

0024

図2は、本発明の実施形態に係るニューラルネットワーク回路101の概略的な構成を示すブロック図である。
図2に示されるニューラルネットワーク回路101は、図1に示されるニューラルネットワークシステム1の機能を実装した回路の一例である。
ニューラルネットワーク回路101は、識別用制御回路111と、重み演算制御回路112と、重み割り当て制御回路113と、素子アレイ121と、入出力インタフェース回路入出力IF回路)122と、入出力インタフェース回路(入出力IF回路)123を備える。

0025

図1および図2の例では、識別用制御回路111により識別制御部21の機能が実現されており、重み演算制御回路112により重み演算制御部22の機能が実現されており、重み割り当て制御回路113により重み割り当て制御部23の機能が実現されている。なお、記憶部24の機能は、識別用制御回路111と重み演算制御回路112と重み割り当て制御回路113のそれぞれに分散されて実現されている。
図1および図2の例では、素子アレイ121および入出力IF回路122〜123により素子アレイ部12の機能が実現されている。
素子アレイ121は、複数のニューロモルフィック素子を含む。

0026

なお、図2の例では、素子アレイ121の内部に、1個のニューロモルフィック素子131のみを例示してある。ニューロモルフィック素子131は、入力された信号に対して重みの値を乗算し、この乗算の結果の値を持つ信号を出力信号として出力する。当該重みの値は、ニューロモルフィック素子131の可変な特性の値に応じた値である。ニューロモルフィック素子131の特性の値は、外部から制御されることで、変化する。
本実施形態では、素子アレイ121において、このようなニューロモルフィック素子を複数使用して、所望のニューラルネットワークに対応する積和演算を行う回路が構成されている。素子アレイ121への信号の入力および素子アレイ121からの信号の出力は、入出力IF回路122、123を介して行われる。素子アレイ121の回路は、一例として、マトリクス状になっており、マトリクス一辺(例えば、縦の辺)における信号の入出力が入出力IF回路122を介して行われ、マトリクスの他の一辺(例えば、横の辺)における信号の入出力が入出力IF回路123を介して行われる。

0027

ここで、識別用制御回路111は、入出力IF回路122、123と接続されており、入出力IF回路122、123を介して素子アレイ121に識別対象の情報を出力し、当該情報に基づいて素子アレイ121により演算された結果(識別結果)の情報を入出力IF回路122、123を介して入力する。そして、識別用制御回路111は、入力された情報(識別結果の情報)を記憶部24に記憶すること、あるいは、入力された情報(識別結果の情報)に基づいて所定の解析を実行することなどを行う。
また、識別用制御回路111は、例えば、素子アレイ121により実現されるニューラルネットワークについて、学習(機械学習)を行う機能を有する。

0028

重み演算制御回路112は、識別用制御回路111と接続されており、また、重み割り当て制御回路113と接続されている。
また、本実施形態では、重み演算制御回路112は、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能よりも高い精度で、素子アレイ121により実現されるニューラルネットワークにおける重み(結合重み)の値を演算する機能を有する。そして、本実施形態では、重み演算制御回路112は、素子アレイ121に含まれるニューロモルフィック素子に割り当てる適切な重みの値(本実施形態では、誤差あるいは識別精度に関する所定の条件を満たす重みの値)を演算する機能を有する。
また、本実施形態では、重み演算制御回路112は、識別用制御回路111により取得された識別結果の情報(例えば、学習に関する情報)に基づいて、素子アレイ121に含まれるニューロモルフィック素子に割り当てる重みの値を更新(演算)する機能を有する。

0029

重み割り当て制御回路113は、入出力IF回路122、123と接続されており、入出力IF回路122、123を介して素子アレイ121に含まれるニューロモルフィック素子に重みの値を設定する。重み割り当て制御回路113は、当該重みの値として、重み演算制御回路112により演算された値を使用する。
重み割り当て制御回路113は、一例として、素子アレイ121に含まれるニューロモルフィック素子に対して所定の信号を送信することで、当該信号に応じた重みの値を当該ニューロモルフィック素子に設定してもよい。当該所定の信号としては、任意の信号が用いられてもよく、例えば、電圧パルスの信号が用いられてもよい。

0030

ニューロモルフィック素子では、重み割り当て制御回路113により制御されて、当該ニューロモルフィック素子の特性(本実施形態では、コンダクタンス)が変化することで、重みの値が変化する。つまり、当該ニューロモルフィック素子では、当該ニューロモルフィック素子の特性に応じた重み(値)を入力された信号に乗算し、その乗算の結果の信号を出力する。
具体例として、抵抗Rが変化し得るニューロモルフィック素子が乗算器の機能として用いられる場合、当該ニューロモルフィック素子のコンダクタンスG(=1/R)を使用し、当該ニューロモルフィック素子への入力信号として電圧Vを入力し、そのときに当該ニューロモルフィック素子を流れる電流I(=G×V)の大きさを乗算結果として使用する。
なお、素子アレイ121に複数のニューロモルフィック素子が含まれる構成では、例えば、それぞれのニューロモルフィック素子ごとに制御されてもよく、あるいは、すべてのニューロモルフィック素子についてまとめて制御されてもよく、あるいは、2個以上の異なるグループに複数のニューロモルフィック素子が分けられて、それぞれのグループごとにまとめて制御されてもよい。

0031

ここで、特性の変化量が変動するニューロモルフィック素子が用いられる場合には、その点が考慮されて、当該ニューロモルフィック素子が制御されることが好ましい。特性の変化量が変動するとは、例えば、特性の変化が非線形的であるような素子のことを言う。
具体例として、コンダクタンスの変化量(ΔG)が変動するニューロモルフィック素子では、例えば、コンダクタンスの値が低い値から高い値へ変化するにしたがって、当該ニューロモルフィック素子に与えられる電圧Vの一定変化量に対するコンダクタンスの変化量(ΔG)が増加していく場合がある。この場合、一例として、当該ニューロモルフィック素子のコンダクタンスの変化量(ΔG)を一定値間隔ごとに切り替えるために、コンダクタンスの値が低い値から高い値へ変化するにしたがって、当該ニューロモルフィック素子に与えられる電圧Vの変化量(切り替えの段階ごとの変化量)を小さくしていく構成が用いられてもよい。あるいは、コンダクタンスの変化量Δの変動に応じて、割り当てる重みの変化量を変動させるような構成が用いられてもよい。
なお、ニューロモルフィック素子の特性の変化量が他の態様で変動する場合においても、その態様に合わせて制御が行われればよい。このような制御の仕方は、例えば、あらかじめ設定されて記憶部24などに記憶されてもよい。

0032

図3は、本発明の実施形態に係る素子アレイ121の概念的な構成を示すブロック図である。
ここで、図3の例では、素子アレイ121において行われる積和演算の様子を概念的に示してある。素子アレイ121の回路構成としては、このような積和演算が実現される任意の回路構成が用いられてもよい。

0033

図3の例では、3層のパーセプトロンを用いた例を示す。
素子アレイ121は、p(pは1以上の整数)個の値(信号)を入力し、r(rは1以上の整数)個の値(信号)を出力する。
素子アレイ121は、入力層に、p個のユニットA1−1〜A1−pと、1個のバイアス項のユニットA1−0を備える。
素子アレイ121は、隠れ層に、q個のユニットA2−1〜A2−qと、1個のバイアス項のユニットA2−0を備える。
素子アレイ121は、出力層に、r個のユニットA3−1〜A3−rを備える。

0034

本実施形態では、p個のユニットA1−1〜A1−pと、q個のユニットA2−1〜A2−qと、r個のユニットA3−1〜A3−rにより実現される演算を行う回路を、ニューロモルフィック素子を用いて構成した。この演算は、例えば、積和演算である。
なお、本実施形態では、前段の層におけるそれぞれのユニットから後段の層におけるすべてのユニット(バイアス項のユニットを除く。)へ信号を出力するニューラルネットワークの構成を示すが、他の構成が用いられてもよい。図3の例では、入力層におけるそれぞれのユニットA1−0〜A1−pから隠れ層におけるq個のユニットA2−1〜A2−qへ信号を出力しており、また、隠れ層におけるそれぞれのユニットA2−0〜A2−qから出力層におけるr個のユニットA3−1〜A3−rへ信号を出力している。

0035

入力層におけるそれぞれのユニットA1−1〜A1−pは、p個の入力値(信号)のそれぞれを入力して出力する。
また、入力層におけるユニットA1−0は、所定の値(信号)を出力する。

0036

隠れ層におけるそれぞれのユニットA2−1〜A2−qは、入力層における(p+1)個のユニットA1−0〜A1−pからの出力値(信号)について所定の重みを用いて積和演算した結果の値(信号)を、出力層におけるそれぞれのユニットA3−1〜A3−rに出力する。この積和演算は、入力層の出力から隠れ層の出力までの間で行われる。重みは、例えば、入力層におけるそれぞれのユニットA1−1〜A1−pごとに異なってもよく、また、隠れ層におけるそれぞれのユニットA2−1〜A2−qごとに異なってもよい。
また、隠れ層におけるユニットA2−0は、所定の値(信号)を出力する。

0037

出力層におけるそれぞれのユニットA3−1〜A3−qは、隠れ層における(q+1)個のユニットA2−0〜A2−qからの出力値(信号)について所定の重みを用いて積和演算した結果の値(信号)を出力する。この積和演算は、隠れ層の出力から出力層の出力までの間で行われる。重みは、例えば、隠れ層におけるそれぞれのユニットA2−1〜A2−qごとに異なってもよく、また、出力層におけるそれぞれのユニットA3−1〜A3−rごとに異なってもよい。

0038

素子アレイ121は、画像211を入力し、入力された画像211の識別結果の情報を出力する。
一例として、画像211は、784個の画素(0番目〜783番目の画素)を有する画像である。この場合、入力層のユニット数(p)は784個となる。
また、図3の例では、識別結果の情報は、出力層から出力されるr個の情報である。

0039

なお、複数の層を有するニューラルネットワークが構成される場合、それぞれの層間(例えば、1−2層間、2−3層間)に対応する重みは、例えば、それぞれの層間ごとに別々のアレイ(例えば、複数のニューロモルフィック素子の並びを層間ごとに持つアレイ)を用いて構成されてもよく、あるいは、1組のアレイ(例えば、複数のニューロモルフィック素子の並びを持つ1組のアレイ)が、時間差時分割)などによって仮想的に分割されて、2つ以上の層間に対応する重みを実現する構成が用いられてもよい。さらには、1組のアレイを空間的に複数のサブアレイに分割して2つ以上の層間に対応する重みを実現する構成が用いられてもよい。同様に、本実施形態では、1個のニューロモルフィック素子は、例えば、1個の重みに対応して用いられてもよく、あるいは、時間差(時分割)などによって仮想的に分割されて、2個以上の重みに対応して用いられてもよい。

0040

図4は、本発明の実施形態に係る識別対象の画像B1−1〜B1−n、B2−1〜B2−n、・・・、B0−1〜B0−n(nは2以上の整数であり、例えば、十分に多い数)の例を示す図である。
画像B1−1〜B1−nは、数字の「1」を手書きした場合における複数の異なる手書きパターンの画像である。
画像B2−1〜B2−nは、数字の「2」を手書きした場合における複数の異なる手書きパターンの画像である。
画像B0−1〜B0−nは、数字の「0」を手書きした場合における複数の異なる手書きパターンの画像である。
なお、図4の例では、数字の「3」〜「9」については図示を省略してある。
また、図4の例では、数字の「1」〜「9」、「0」のすべてについて同じ数(n個)の画像を示したが、それぞれの数字ごとに異なる数の画像が用いられてもよい。

0041

図3に示される素子アレイ121では、数字の「1」〜「9」、「0」の画像が用いられる場合、例えば、出力層からの出力の数(r個)として10個が用いられる。識別制御部21では、これら10個の出力のそれぞれを10個の数字(「1」〜「9」、「0」)のそれぞれに割り当て、それぞれの出力の値をそれぞれの数字である尤度(尤もらしさ)とみなす。そして、識別制御部21では、入力された画像211の数字は、これら10個の出力のうちで最も値が大きい出力に対応する数字であると識別する。
なお、ここでは、出力の値が大きい方が尤度が大きい構成としているが、逆に、出力の値が大きい方が尤度が小さくなるように構成されてもよい。

0042

本実施形態では、このような画像の一例として、mnist(Mixed National Institute of Standardsand Technology database)の画像が用いられる場合を示す。
なお、図4に示される画像は、mnistの画像そのものではないが、説明の便宜上から、手書きの数字を表す画像を例示したものである。

0043

ここで、ニューロモルフィック素子としては、任意の素子が用いられてもよい。また、ニューロモルフィック素子としては、例えば、1種類のニューロモルフィック素子が複数組み合されて用いられてもよく、あるいは、2種類以上のニューロモルフィック素子が組み合されて用いられてもよい。
一例として、ニューロモルフィック素子として、結晶と非晶質との相変化を段階的に制御するPCM(Phase Change Memory)を使用する素子が用いられてもよい。
他の例として、ニューロモルフィック素子として、電気化学的反応により金属析出イオン化との間のパスの形成および消滅を利用するCBRAM(Conductive Bridge RAM)を使用する素子が用いられてもよい。
他の例として、ニューロモルフィック素子としてスピントロニクス(Spintronics)を使用する素子も用いられている。例えば、磁壁の制御による線形抵抗変化を発生させるドメインウォール型、あるいは、スピン軌道トルク作用による磁化反転を使用したSOT(Spin Orbit Torque)型の素子の研究が進められている。
他の例として、ニューロモルフィック素子として、TaO2等の媒体に金属析出によるフィラメントを形成して抵抗変化を利用するReRAM(Resistive Random Access Memory)を使用する素子が用いられてもよい。

0044

本実施形態では、素子の特性としてコンダクタンスの値を変化させることが可能なニューロモルフィック素子が用いられており、その変化の分解能が有限である。
なお、ニューロモルフィック素子としては、任意の特性を変化させることが可能なものが用いられてもよく、例えば、抵抗、あるいは、光位相などの特性を変化させることが可能なものが用いられてもよい。

0045

[ニューロモルフィック素子の特性の分解能が性能に与える影響]
分解能が有限であるニューロモルフィック素子をニューラルネットワークに適用する場合について、ニューラルネットワークの性能に与える影響を説明する。
ニューロモルフィック素子は、完全なアナログ線形的なコンダクタンス(G)の変化特性を有しておらず、有限な分解能を有している。ニューロモルフィック素子のコンダクタンス変化の分解能(本実施形態では、ビット個数)が決まっている場合、値のダイナミックレンジ(全体的な幅)と量子化ステップサイズ量子化ステップの幅)とは比例関係にある。

0046

ここで、量子化ステップサイズが大きくなると、ニューラルネットワークの性能の劣化が生じることが予想されることから、ニューロモルフィック素子に与えるダイナミックレンジを最適化する問題として考えることができる。
ここでは、分解能を固定した条件を想定する。各層のニューロモルフィック素子に割り当てられるダイナミックレンジ(値域)によって、識別性能への影響が変わり得ると考えられる。

0047

ここでは、倍精度浮動小数点で表された実数を用いて重みの収束推移を考える。それぞれの層における重みを、ニューロモルフィック素子の可変なコンダクタンスを制御することで実現する。
なお、本実施形態において、実数を用いたシミュレーションはコンピュータを用いて実行されることから、当該シミュレーションにおいて「実数」といっているのは、厳密には実数ではなく、コンピュータの演算語長制約によって離散化された値である。
例えば、1層目における重みの最大値最小値平均値、および2層目における重みの最大値、最小値、平均値が表されるグラフを考える(図示は省略。)。

0048

重みをニューロモルフィック素子のモデルへ変換するにあたり、ニューロモルフィック素子の特性の分解能が5(5個のステップ)であるとした。そして、ニューロモルフィック素子のダイナミックレンジとして複数種類の異なる組み合わせを想定して、識別性能を評価した。ニューロモルフィック素子の特性の分解能が固定されている場合、ダイナミックレンジの割り当て方によって識別性能は大きく変化し得る。

0049

実数演算における識別結果は次のようになった。ここで、(±U、±V)は、1層目における重みのダイナミックレンジが±Uであり、2層目における重みのダイナミックレンジが±Vであることを示す。また、W[%]は、識別結果の精度(識別精度)を示す。
(±2、±2) 76.92[%]
(±1、±2) 83.41[%]
(±2、±1) 72.02[%]
(±1、±1) 84.90[%]
(±0.5、±0.5) 94.88[%]
(±0.5、±0.3) 91.45[%]
(±0.3、±0.5) 94.01[%]
(±0.3、±0.3) 89.81[%]
(±0.1、±0.1) 69.46[%]
(±0.05、±0.05) 57.09[%]

0050

この結果から、次のことが推測される。
一つの推測結果として、ニューロモルフィック素子に割り当てられるダイナミックレンジとしては、上限値および下限値の理論値が用いられる場合が最適であるとは限られず、ダイナミックレンジが小さい方が有利となる場合もあり得る。量子化ステップサイズが小さいことが重要であると考えられるが、最適値があると考えられる。
他の一つの推測結果として、1層目における量子化ステップサイズを、2層目における量子化ステップサイズと比べて、小さくする方が有利となり得る。

0051

一般に、M(Mは、2以上の整数であるとする。)層からなるニューラルネットワークにおいて、1層目からN(Nは、1以上でMより小さい整数であるとする。)層目までは特徴抽出に関連し、(N+1)層目からM層までは識別に関連する。識別は、特徴抽出の結果に依存し得る。特徴抽出の性能が良い場合には、それによって、識別の性能をある程度良い性能に維持することができる。上位の層ほど分解能が重要であり、下位の層は大きいダイナミックレンジが必要であると推測された。

0052

上記のことから、本実施形態では、ニューロモルフィック素子の特性の分解能を固定して、当該ニューロモルフィック素子に割り当てられるダイナミックレンジと量子化ステップサイズの最適化の問題として取り扱う。
通常、ニューロモルフィック素子において、量子化ステップサイズが小さくなると、重みの誤差が減少する一方、重みが取り得る値のダイナミックレンジが小さくなる。また、ニューロモルフィック素子において、ダイナミックレンジが小さくなると、本来の重みの値によって演算される値が上限あるいは下限に固着する可能性が増加し、誤識別の原因となる。本実施形態では、以下で説明するように、良好な解(好ましくは、最適解)を求める。

0053

[ニューラルネットワークにおける識別精度の演算の概要]
本実施形態において想定するニューラルネットワークについて説明する。なお、本実施形態では、図3に示されるニューラルネットワークを想定する。
入力層におけるユニット数をp個とし、バイアス項の1個のユニットも設ける。
隠れ層におけるユニット数をq個とし、バイアス項の1個のユニットも設ける。
出力層におけるユニット数をr個とする。
重みw(L)s,tについて、Lは層の番号を表し、sは出力側の層のユニットの番号を表し、tは入力側の層のユニットの番号を表す。ここで、本実施形態では、入力層と隠れ層との間を第1層(L=1)とし、隠れ層と出力層との間を第2層(L=2)とする。

0054

バックプロパゲーションの演算上、バイアス項を、0次項表現した。なお、バイアス項の出力値を常に1とし、バイアス項と各ユニットとの間の重みについても学習対象とした。
以下で、重みの分解能、ダイナミックレンジおよび量子化ステップサイズが識別性能に与える影響について説明する。

0055

重みの誤差が出力に与える影響を示す。
xi(i=0、1、2、・・・、p)は入力層におけるバイアス項および出力値(本実施形態では、入力値と同じ値)であるとし、yj(j=0、1、2、・・・、q)は隠れ層におけるバイアス項および出力値であるとする。
式(1)に示されるように、2層目における重みw(2)k,jの分解能の制約によって生じる量子化誤差(符号Δが付された項)を導入する。
ニューラルネットワークからの出力値zk(k=1、2、・・・、r)は、式(2)のように表される。

0056

0057

0058

次に、yjの誤差を考える。活性化関数としてrelu(Rectified Linear Unit)が用いられる場合、式(3)および式(4)のように表される。

0059

0060

0061

式(1)と同様に、1層目における重みw(1)j,iの分解能の制約によって生じる量子化誤差(符号Δが付された項)を導入する。これにより、式(5)のように表される。

0062

0063

したがって、ニューラルネットワークからの出力値zk(k=1、2、・・・、r)の誤差を考慮した式は、式(6)のように表される。
ここで、uj<0である場合には、出力が0になるため、この式は恒等的に成立する。

0064

0065

ニューラルネットワークからの出力値zk(k=1、2、・・・、r)の誤差の成分(Δzk)のみを抽出すると、式(7)のように表される。

0066

0067

ここで、パラメーターとしてαおよびβを導入して、式(8)に示される変換を行う。
αおよびβは、式(9)に示される条件を満たす一様な確率分布を構成することを想定する。
ニューラルネットワークからの出力値zk(k=1、2、・・・、r)の誤差の成分(Δzk)は、式(10)のように表される。

0068

0069

0070

0071

ここで、式(10)の最後の右辺について、項の評価を行うと、すべての積和演算項の要素は同じであり、式(9)を考慮すると、第三項(αとβの両方が含まれる項)は第一項(αが含まれる項)、第二項(βが含まれる項)に比較して小さい。これを考慮すると、式(11)のように表される。

0072

0073

式(11)により、各層における重みの量子化誤差による出力の変動は、1層目における量子化誤差による影響の総和と2層目における量子化誤差による影響の総和との和として演算されることが示される。これにより、量子化後の誤差(例えば、二乗誤差などでもよい。)を小さくする(好ましくは、最小にする)解を適用することで、出力誤差を小さくすること(好ましくは、最小にすること)が実現されると考えられる。
ここで、識別精度は、例えば、(1/Δzk)の値、あるいは、それに比例などする値で表すことが可能である。

0074

本実施形態では、素子アレイ121では、1層目における重みw(1)j,iについて、それぞれのj、iの組み合わせごとに1個のニューロモルフィック素子を備える。
同様に、本実施形態では、素子アレイ121では、2層目における重みw(2)k,jについて、それぞれのk、jの組み合わせごとに1個のニューロモルフィック素子を備える。
なお、共通化することが可能な2個以上の重み演算がある場合には、これら2個以上の重み演算についてニューロモルフィック素子が、1個のニューロモルフィック素子に共通化されてもよい。

0075

2個のパラメーターα、βの値を求める手法について説明する。
一例として、2個のパラメーターα、βの値を様々に変化させて所定の誤差を表す値を演算し、当該誤差を表す値が小さくなる(好ましくは、最小になる)パラメーターα、βの値を求める手法が用いられてもよい。当該手法では、例えば、2個のパラメーターα、βの値を総当たりで変化させてもよい。適切なパラメーターα、βの値が決定されることで、ニューロモルフィック素子に設定すべき適切なダイナミックレンジが決定される。
なお、所定の誤差を表す値が小さくなる(好ましくは、最小になる)という条件の代わりに、所定の識別精度が大きくなる(好ましくは、最大になる)という条件が用いられてもよい。

0076

他の例として、2個のパラメーターα、βの値を解析的に求めるための手法がある場合には、その解析的手法が用いられてもよい。
ここで、2個のパラメーターα、βの値は、例えば、識別対象の数あるいは内容などによって、変わり得る。

0077

一般に、ニューラルネットワークの構成では、入力層は識別対象の画像データの各ピクセルに相当するユニットを有しており、そして、隠れ層、出力層へ行くにしたがって、ユニットの数が少なくなる。
一例として、mnistのテストセットテストのための画像の組み合わせ)の識別において、入力層の次元を784個のユニットとし、隠れ層の次元を100個のユニットとし、出力層の次元を10個のユニットとすることで、実数演算において97[%]以上の識別性能を達成することができる。

0078

ニューロモルフィック素子に割り当てられる分解能とダイナミックレンジが決定された場合、量子化誤差に関するパラメーターα、βは、次の2つの要素から発生する。
(要素1)量子化ステップサイズによって発生する純量子化誤差という要素がある。これは、(量子化ステップサイズ/2)に相当する分を最小、最大とする分布である。
(要素2)割り当てられるダイナミックレンジが実数演算値によるレンジよりも狭い場合に、割り当てられるダイナミックレンジを超えた値(実数演算値)に発生する切り捨て誤差という要素がある。

0079

したがって、ニューロモルフィック素子の特性の分解能が固定されている場合、各層における誤差に関する和を小さく(好ましくは、最小に)するように、ニューロモルフィック素子に対して割り当てられるダイナミックレンジを決定することで、出力の誤差を抑制することが可能になると考えられる。
なお、所定の誤差を表す値が小さくなる(好ましくは、最小になる)という条件の代わりに、所定の識別精度が大きくなる(好ましくは、最大になる)という条件が用いられてもよい。

0080

[パラメーターα、βの分布]
図5は、本発明の実施形態に係るパラメーターα、βに関する特性1011の一例を示す図である。
図5に示されるグラフでは、横軸にパラメーターaを表し、縦軸関数P(a)を表わしている。そして、図5の例では、特性1011を示してある。特性1011は、Aを所定の正の値として、a=−Aからa=+Aまでの間、一定値となる特性である。ここで、ニューラルネットワークにおける重みは正規乱数等で初期化されることが一般的であり、その重みの値が一様に分布すると仮定し、その場合、量子化誤差もまた一様分布であると想定した。なお、この想定は一例であり、本実施形態では、必ずしも量子化誤差の分布形状に依存するものではない。また、特性1011は、全体の確率が1となる確率密度関数である。
ここで、(2×A)が量子化ステップサイズであり、{(2×A)×分解能=ダイナミックレンジ}という関係がある。
式(8)より、パラメーターαおよびパラメーターβは重みの真値に対する誤差成分の割合を示すものであるため、パラメーターαおよびパラメーターβをそれぞれ正の値とすると、パラメーターαおよびパラメーターβは、それぞれ、(2×A)/ダイナミックレンジ幅に相当する。つまり、パラメーターαおよびパラメーターβは、それぞれ、量子化ステップサイズに対応する値である。
なお、ここでは、説明の便宜上から、2個のパラメーターα、βについて共通の文字Aを用いて説明したが、本実施形態では、2個のパラメーターα、βの値を異ならせる。

0081

[ニューロモルフィック素子にダイナミックレンジを割り当てる手順の第1の例]
ニューロモルフィック素子にダイナミックレンジを割り当てる手順の第1の例として、(第1の例における手順1)〜(第1の例における手順8)を示す。なお、同様な結果が得られれば、手順の順序が異なってもよい。
本例(第1の例)では、演算方法の一例として、各層の重みの量子化誤差に基づいて演算する方法を用いる。
本例では、ユーザーがコンピュータを操作することで、当該コンピュータによって以下の手順の処理を行う。なお、ユーザーにより行われる操作の一部または全部が、コンピュータにより自動で行われてもよい。

0082

ここで、本実施形態では、このようなコンピュータは、例えば、ニューラルネットワーク回路101に備えられたコンピュータであり、一例として、重み演算制御回路112に備えられたコンピュータである。他の例として、このようなコンピュータとして、ニューラルネットワーク回路101とは別のコンピュータが用いられてもよい。なお、コンピュータとしては、例えば、マイクロコンピュータなどであってもよい。
また、本例では、このようなコンピュータが所定の実数シミュレーターの機能を有しており、当該実数シミュレーターが(第1の例における手順1)〜(第1の例における手順8)の処理を実行することを想定して説明する。なお、これらの処理は、例えば、実数シミュレーター以外の機能により行われてもよく、それぞれの処理ごとに任意の機能(総じて2以上の異なる機能)により行われてもよい。また、これらの処理は、例えば、それぞれの処理ごとに任意のコンピュータ(総じて2以上の異なるコンピュータ)により行われてもよい。

0083

(第1の例における手順1)ユーザーは、ニューラルネットワークの構造を実数シミュレーターに定義する。ここで、ニューラルネットワークの構造としては、例えば、種別、層の数、層の構造、ユニットの数などがある。また、本例では、実数シミュレーターは、コンピュータを用いて実現され、定義されたニューラルネットワークにおけるシミュレーションの数値演算を、実数を用いて、実行する。

0084

(第1の例における手順2)ユーザーは、実数シミュレーターにより、学習データを用いて、ニューラルネットワークの学習を行い、重みの真値を求める。ここで、重みの真値は、例えば、所定の誤差を表す関数が収束した際における重みの値である。所定の誤差を表す関数としては、任意の関数が用いられてもよい。また、学習データとしては、任意のデータが用いられてもよい。

0085

(第1の例における手順3)ユーザーは、最適解を探索する量子化ステップサイズの範囲を決めて、当該範囲を実数シミュレーターに設定する。具体例として、重みの真値の範囲が−1〜+1であり、ニューロモルフィック素子の特性の分解能が5である場合、これらの値を使用すると量子化ステップサイズは0.4(=2/5)となり、例えば、探索範囲を0.04〜4などに設定する。

0086

(第1の例における手順4)ユーザーは、実数シミュレーターにより、{(量子化ステップサイズ×分解能)=(ニューロモルフィック素子に割り当てられる重みのダイナミックレンジ)}として、重みの真値に対して、分解能で離散化された重みの値を演算する。

0087

(第1の例における手順5)ユーザーは、実数シミュレーターにより、誤差に関する関数を演算する。一例として、誤差に関する関数として、離散化された重みの値と真値との誤差をすべての重みについて加算した結果を全体的な誤差(以下で、誤差総和ともいう。
)とする関数が用いられてもよい。他の例として、誤差に関する関数として、離散化された重みの値と真値との誤差の二乗値をすべての重みについて加算した結果を全体的な誤差(以下で、誤差二乗総和ともいう。)とする関数が用いられてもよい。

0088

(第1の例における手順6)ユーザーは、実数シミュレーターにより、誤差に関する関数の値(本実施形態では、誤差総和あるいは誤差二乗総和)が最小になる量子化ステップサイズの値を決定する。ここで、量子化ステップサイズの値を決定する手法としては、例えば、複数の値の候補のなかから1つの値を選択することで、当該値を決定する手法が用いられてもよい。

0089

なお、本例では、好ましい態様の一例として、誤差の値(誤差に関する関数の値)が最小になる量子化ステップサイズの値を決定する態様が用いられるが、他の例として、所定の条件に基づいて、誤差の値(誤差に関する関数の値)が小さくなる量子化ステップサイズの値を決定する態様が用いられてもよい。所定の条件としては、任意の条件が用いられてもよく、例えば、誤差の値(誤差に関する関数の値)が所定の閾値以下となる(または、所定の閾値未満となる)条件が用いられてもよい。

0090

(第1の例における手順7)ユーザーは、実数シミュレーターにより、決定された量子化ステップサイズの値を採用して、{(量子化ステップサイズ×分解能)=(ニューロモルフィック素子に割り当てられる重みのダイナミックレンジ)}として、ニューロモルフィック素子にダイナミックレンジを割り当てる。具体例として、量子化ステップサイズが0.25であり、分解能が5である場合、ダイナミックレンジは1.25(=0.25×5)となる。

0091

(第1の例における手順8)ユーザーは、実数シミュレーターにより、ニューロモルフィック素子に割り当てられたダイナミックレンジを、0を中心とする範囲(下限値Wmin〜上限値Wmax)へ変換する。ここで、当該範囲は0を中心とするため、|Wmin|=|Wmax|である。Zを任意の値として、|Z|はZの絶対値を表す。また、ユーザーは、実数シミュレーターにより、ニューロモルフィック素子のコンダクタンスの値として、ダイナミックレンジの範囲の下限値Wminに対応するコンダクタンスの値Gminを設定するとともに、ダイナミックレンジの範囲の上限値Wmaxに対応するコンダクタンスの値Gmaxを設定する。

0092

[ニューロモルフィック素子にダイナミックレンジを割り当てる手順の第2の例]
ニューロモルフィック素子にダイナミックレンジを割り当てる手順の第2の例として、(第2の例における手順1)〜(第2の例における手順5)を示す。なお、同様な結果が得られれば、手順の順序が異なってもよい。
本例(第2の例)では、演算方法の他の例として、識別精度を用いて演算する方法を用いる。なお、別の例として、最終段の出力について誤差の総和あるいは誤差の二乗の総和を用いて演算する方法が用いられてもよい。
本例では、ユーザーがコンピュータを操作することで、当該コンピュータによって以下の手順の処理を行う。なお、ユーザーにより行われる操作の一部または全部が、コンピュータにより自動で行われてもよい。

0093

ここで、本実施形態では、このようなコンピュータは、例えば、ニューラルネットワーク回路101に備えられたコンピュータであり、一例として、重み演算制御回路112に備えられたコンピュータである。他の例として、このようなコンピュータとして、ニューラルネットワーク回路101とは別のコンピュータが用いられてもよい。
また、本例では、このようなコンピュータが所定の実数シミュレーターの機能を有しており、当該実数シミュレーターが(第2の例における手順1)〜(第2の例における手順5)の処理を実行することを想定して説明する。なお、これらの処理は、例えば、実数シミュレーター以外の機能により行われてもよく、それぞれの処理ごとに任意の機能(総じて2以上の異なる機能)により行われてもよい。また、これらの処理は、例えば、それぞれの処理ごとに任意のコンピュータ(総じて2以上の異なるコンピュータ)により行われてもよい。

0094

(第2の例における手順1)は、(第1の例における手順1)と同様である。
(第2の例における手順2)は、(第1の例における手順2)と同様である。

0095

(第2の例における手順3)ユーザーは、実数シミュレーターにより、重みの真値を用いて構成されたニューラルネットワークにデータを入力し、当該ニューラルネットワークからの出力(量子化されていない場合の出力)を演算する。

0096

(第2の例における手順4)ユーザーは、実数シミュレーターにより、重みの真値を使用して、パラメーターα、βを用いた出力を表す関数にデータを入力し、当該出力(量子化された場合の出力)を演算する。当該出力は、例えば、式(6)にパラメーターα、βを導入した式の出力(識別クラスの数rの出力値zk)となる。

0097

(第2の例における手順5)ユーザーは、実数シミュレーターにより、(第2の例における手順3)で求められる出力の値と(第2の例における手順4)で求められる出力の値との誤差に関する値が小さくなる(好ましくは、最小になる)量子化ステップサイズを決定する。誤差に関する値としては、例えば、最終段の出力について誤差の総和あるいは誤差の二乗の総和が用いられてもよい。また、量子化ステップサイズの値を決定する手法としては、例えば、複数の値の候補のなかから1つの値を選択することで、当該値を決定する手法が用いられてもよい。
ここで、他の例として、誤差に関する値として、式(11)に示されるΔzkが用いられてもよい。

0098

また、他の例として、上記した(第2の例における手順5)において、ユーザーは、実数シミュレーターにより、量子化された場合における識別精度が大きくなる(好ましくは、最大になる)量子化ステップサイズを決定してもよい。

0099

なお、誤差に関する値が小さくなる条件としては、例えば、誤差に関する値が所定の閾値以下となる(または、所定の閾値未満となる)条件が用いられてもよい。
また、識別精度が大きくなる条件としては、例えば、識別精度が所定の閾値以上となる(または、所定の閾値を超える)条件が用いられてもよい。

0100

[誤差を用いた条件と、識別精度を用いた条件]
誤差を用いた条件が設定されたシミュレーションの結果の例と、識別精度を用いた条件が設定されたシミュレーションの結果の例を示す。
誤差を用いた条件が設定されたシミュレーションとして、誤差の二乗の総和が最小となるダイナミックレンジを探索するシミュレーションを行った。その結果、1層目における最適なダイナミックレンジは0.42となり、2層目における最適なダイナミックレンジは0.96となり、識別精度は95.64[%]となった。
一方、識別精度を用いた条件が設定されたシミュレーションとして、識別精度が最大となるダイナミックレンジを探索するシミュレーションを行った。その結果、1層目における最適なダイナミックレンジは0.42となり、2層目における最適なダイナミックレンジは0.96となり、識別精度は95.64[%]となった。
ここで、両者は一致した。このため、誤差を用いた条件が満たされるダイナミックレンジを採用することで、良好な識別精度が実現されることが推測される。

0101

[ニューロモルフィック素子に対するダイナミックレンジの割り当ての具体例]
図6は、本発明の実施形態に係る重みの学習の結果の一例を示す図である。
図6に示されるグラフにおいて、横軸は学習サイクル(本実施形態では、エポック回数)を表わしており、縦軸は重みの値を表わしている。
なお、エポックは、トレーニング用の1個の識別対象(例えば、1枚の画像)についてニューラルネットワークの誤差を最小にする処理の単位を表す。

0102

図6の例では、実数を用いたシミュレーションにより取得された真値の特性として、1層目における重みの最大値の特性1111と、1層目における重みの最小値の特性1112と、2層目における重みの最大値の特性1121と、2層目における重みの最小値の特性1122を示してある。
また、図6の例では、1層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−0.5以上で+0.5以下の範囲」に設定しており、2層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−1.0以上で+1.0以下の範囲」に設定している。図6の例では、1層目におけるニューロモルフィック素子に設定するダイナミックレンジに相当する範囲1131と、2層目におけるニューロモルフィック素子に設定するダイナミックレンジに相当する範囲1132を示してある。

0103

図7は、本発明の実施形態に係るニューロモルフィック素子に設定されるダイナミックレンジに応じた識別精度の一例を示す図である。
図7に示されるグラフにおいて、2種類の横軸のうち、一方の軸は1層目におけるニューロモルフィック素子に設定されるダイナミックレンジ(1層目のレンジ)を表わしており、他方の軸は2層目におけるニューロモルフィック素子に設定されるダイナミックレンジ(2層目のレンジ)を表わしている。また、縦軸は、このようなダイナミックレンジの設定により得られる識別精度[%]を表わしている。
図7の例では、これら三者の関係を表す特性1211を示してあり、識別精度が最大となる位置に矢印1221(なお、図7の例では、矢印1221は縦軸と平行ではない。)を示してある。
図7の例では、識別精度が最大となる位置で、1層目のダイナミックレンジが「−0.42以上で+0.42以下の範囲」であり、2層目のダイナミックレンジが「−0.96以上で+0.96以下の範囲」であり、識別精度が「95.64[%]」である。

0104

次に、図8図11を参照して、複数の層のそれぞれごとにダイナミックレンジが異なる場合にニューラルネットワーク回路の性能が良好になることを説明する。
まず、図8および図9について説明する。
図8および図9の例では、ニューロモルフィック素子の特性の分解能が100ステップである場合を想定している。
図8は、すべての層(本実施形態では、1層目〜2層目)について同じダイナミックレンジをニューロモルフィック素子に設定した場合における結果の一例を示す図である。
図9は、本発明の実施形態に係る各層(本実施形態では、1層目、2層目)について異なるダイナミックレンジをニューロモルフィック素子に設定した場合における結果の一例を示す図である。
図8および図9に示されるグラフにおいて、横軸は学習サイクル(本実施形態では、エポックの回数)を表わしており、縦軸は重みの値を表わしている。

0105

図8の例では、1層目および2層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−2.0以上で+2.0以下の範囲」に設定している。
図8の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1311と、1層目における重みの最小値の特性1312と、1層目における重みの平均値の特性1313と、2層目における重みの最大値の特性1321と、2層目における重みの最小値の特性1322と、2層目における重みの平均値の特性1323を示してある。
図8の例では、識別精度は「92.6[%]」である。

0106

図9の例では、1層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−1.0以上で+1.0以下の範囲」に設定しており、2層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−2.0以上で+2.0以下の範囲」に設定している。
図9の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1411と、1層目における重みの最小値の特性1412と、1層目における重みの平均値の特性1413と、2層目における重みの最大値の特性1421と、2層目における重みの最小値の特性1422と、2層目における重みの平均値の特性1423を示してある。
図9の例では、識別精度は「96.6[%]」である。

0107

続いて、図10および図11について説明する。
図10および図11の例では、ニューロモルフィック素子の特性の分解能が50ステップである場合を想定している。
図10は、すべての層(本実施形態では、1層目〜2層目)について同じダイナミックレンジをニューロモルフィック素子に設定した場合における結果の他の例を示す図である。
図11は、本発明の実施形態に係る各層(本実施形態では、1層目、2層目)について異なるダイナミックレンジをニューロモルフィック素子に設定した場合における結果の他の例を示す図である。
図10および図11に示されるグラフにおいて、横軸は学習サイクル(本実施形態では、エポックの回数)を表わしており、縦軸は重みの値を表わしている。

0108

図10の例では、1層目および2層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−2.0以上で+2.0以下の範囲」に設定している。
図10の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1511と、1層目における重みの最小値の特性1512と、1層目における重みの平均値の特性1513と、2層目における重みの最大値の特性1521と、2層目における重みの最小値の特性1522と、2層目における重みの平均値の特性1523を示してある。
図10の例では、識別精度は「65.3[%]」である。

0109

図11の例では、1層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−1.0以上で+1.0以下の範囲」に設定しており、2層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−2.0以上で+2.0以下の範囲」に設定している。
図11の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1611と、1層目における重みの最小値の特性1612と、1層目における重みの平均値の特性1613と、2層目における重みの最大値の特性1621と、2層目における重みの最小値の特性1622と、2層目における重みの平均値の特性1623を示してある。
図11の例では、識別精度は「90.8[%]」である。

0110

ここで、図8図11は、シミュレーションの結果を示すものであるが、当該シミュレーションの条件の都合により、1回分の重み更新が余計に発生している。このため、図8図11の例では、設定されたダイナミックレンジ(本例では、「−2.0以上で+2.0以下の範囲」あるいは「−1.0以上で+1.0以下の範囲」)の外側に特性がはみ出しているところがあるが、これは単にシミュレーションの事情によるもので、正確な値を示唆するものではない。このように本シミュレーションの結果では、一部で正確な値ではないところもあるが、全体としては特性の傾向を表わしている。
ここで、図8図11の例に示されるように、すべての層(本実施形態では、1層目〜2層目)について同じダイナミックレンジをニューロモルフィック素子に設定した場合と比べて、各層(本実施形態では、1層目、2層目)について異なるダイナミックレンジをニューロモルフィック素子に設定した場合の方が識別性能が良好になることが生じ得る。

0111

[ダイナミックレンジのオフセット量]
上記では、ニューロモルフィック素子に設定されるダイナミックレンジが「−B以上で+B以下の範囲」(Bは任意の正の値であるとする。)であり、当該ダイナミックレンジの中央値が0である場合を示した。この場合におけるダイナミックレンジのオフセット量を0とする。

0112

これに対して、ニューロモルフィック素子に設定されるダイナミックレンジについて、オフセット量が設定されてもよい。この場合、ダイナミックレンジの中央値が0からオフセット量だけずれる。
なお、本実施形態では、オフセット量の大きさにかかわらず、ダイナミックレンジの幅は一定であるとする。

0113

例えば、オフセット量が0である場合にダイナミックレンジが「−B以上で+B以下の範囲」であるとき、オフセット量が0ではないC(Cは正の値または負の値)である場合には、ダイナミックレンジは「(−B+C)以上で(+B+C)以下の範囲」となる。
ダイナミックレンジのオフセット量が0であるときと比べて、ダイナミックレンジのオフセット量が0ではないときの方が、識別精度が高くなる場合が生じ得る。

0114

図12は、本発明の実施形態に係るニューロモルフィック素子に設定されるダイナミックレンジのオフセット量に応じた識別精度の一例を示す図である。
図12に示されるグラフにおいて、2種類の横軸のうち、一方の軸は1層目におけるニューロモルフィック素子に設定されるダイナミックレンジのオフセット量(1層目のオフセット量)を表わしており、他方の軸は2層目におけるニューロモルフィック素子に設定されるダイナミックレンジのオフセット量(2層目のオフセット量)を表わしている。また、縦軸は、このようなオフセット量の設定により得られる識別精度[%]を表わしている。
図12の例では、これら三者の関係を表す特性1711を示してあり、識別精度が最大となる位置に矢印1721(なお、図12の例では、矢印1721は縦軸と平行ではない。)を示してある。
図12の例では、識別精度が最大となる位置で、1層目のオフセット量が「0.0038」であり、2層目のオフセット量が「0.1196」であり、識別精度が「87.98[%]」である。

0115

ここで、本実施形態では、コンピュータにより、ニューロモルフィック素子に設定されるダイナミックレンジのオフセット量を演算する。このようなオフセット量を演算する機能は、例えば、実数シミュレーターにより実現される機能であってもよい。なお、このようなコンピュータは、例えば、ニューラルネットワーク回路101(例えば、重み演算制御回路112)に備えられるコンピュータであってもよく、あるいは、他のコンピュータであってもよい。

0116

本実施形態では、コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能よりも高い精度で、素子アレイ121により実現されるニューラルネットワークにおける重みの値(真値)を演算した結果に基づいて、当該重みの値(真値)の平均値と一致する値をオフセット量として設定する。
他の例として、コンピュータにより、各層におけるダイナミックレンジのオフセット量を様々に変化させて所定の誤差を表す値を演算し、当該誤差を表す値が小さくなる(好ましくは、最小になる)オフセット量を求める手法が用いられてもよい。なお、誤差を表す値が小さくなる(好ましくは、最小になる)オフセット量の代わりに、識別精度が大きくなる(好ましくは、最大になる)オフセット量が求められてもよい。

0117

[事後学習]
ニューラルネットワーク回路101では、素子アレイ121に含まれるニューロモルフィック素子について、ダイナミックレンジが割り当てられた後に、事後学習を行うことで、重みのチューニングを行ってもよい。
ここで、チューニングを行う手法としては、任意の手法が用いられてもよい。

0118

[情報の記憶]
ニューラルネットワーク回路101では、素子アレイ121に含まれるニューロモルフィック素子について、割り当てられたダイナミックレンジ(ダイナミックレンジの幅、オフセット量)、量子化ステップサイズ、分解能、各ニューロモルフィック素子に設定されたステップ番号などの情報を記憶部(記憶部24に相当するメモリなど)に記憶してもよい。

0119

[複数のニューロモルフィック素子に対するダイナミックレンジの設定]
素子アレイ121では、例えば、複数の層があり、それぞれの層ごとに複数(複数のユニット)のニューロモルフィック素子を備える。
一例として、複数の層を有するニューラルネットワークに含まれるニューロモルフィック素子について、それぞれの層ごとに、共通の離散化ステップサイズを使用して、共通のダイナミックレンジ(例えば、ダイナミックレンジの幅、オフセット量)が求められて設定されてもよい。
他の例として、それぞれの層ごとに含まれる複数のニューロモルフィック素子を2個以上のグループに分けて、それぞれのグループごとに、共通の離散化ステップサイズを使用して、共通のダイナミックレンジ(例えば、ダイナミックレンジの幅、オフセット量)が求められて設定されてもよい。この場合、同一の層において、当該層に含まれる複数のニューロモルフィック素子が2個以上のグループにグループ分けされる。これにより、例えば、それぞれのユニットの重要度寄与度)などに応じて、異なるダイナミックレンジを設定することが可能である。
他の例として、それぞれのニューロモルフィック素子ごとに、任意の異なり得る離散化ステップサイズを使用して、任意の異なり得るダイナミックレンジ(例えば、ダイナミックレンジの幅、オフセット量)が求められて設定されてもよい。これにより、例えば、それぞれのニューロモルフィック素子の重要度(寄与度)などに応じて、異なるダイナミックレンジを設定することが可能である。

0120

[ニューラルネットワーク回路において行われる処理の手順の一例]
図13は、本発明の実施形態に係るニューラルネットワーク回路101において行われる処理の手順の一例を示す図である。

0121

(ステップS1)
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能よりも高い精度で、素子アレイ121により実現されるニューラルネットワークにおける重みの値(真値)を演算する。

0122

(ステップS2)
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能を想定した演算を行う。これにより、例えば、コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能を想定した場合について、誤差に関する関数、あるいは、識別精度に関する関数を演算する。

0123

(ステップS3)
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子について、所定の条件を満たす量子化ステップサイズを演算する。当該所定の条件としては、例えば、誤差に関する条件、あるいは、識別精度に関する条件のうちの一方または両方が用いられてもよい。

0124

(ステップS4)
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子について、ダイナミックレンジのオフセット量を演算する。
ここで、あらかじめオフセット量が所定値(例えば、0)に設定されている場合には、ステップS4の処理は省略されてもよい。

0125

(ステップS5)
コンピュータにより、重みのダイナミックレンジを演算する。この場合、例えば、分解能、量子化ステップサイズおよびオフセット量に基づいて、ダイナミックレンジが演算される。

0126

(ステップS6)
演算されたダイナミックレンジがニューラルネットワーク回路101に設定される。そして、ニューラルネットワーク回路101により、素子アレイ121により実現されるニューラルネットワークについて、所定の事後学習を行う。
なお、事後学習が不要である場合には、ステップS6の処理は省略されてもよい。

0127

ここで、ニューラルネットワーク回路101とは別のコンピュータによりダイナミックレンジの演算結果が得られる場合には、ユーザーまたは当該コンピュータなどにより、演算されたダイナミックレンジがニューラルネットワーク回路101に設定される。この場合、例えば、オフチップラーニング(Off Chip Learning)が行われてもよく、つまり、ニューラルネットワーク回路101とは別に設けられた実数等の高精度計算機(コンピュータ)により学習などの演算が実行されて、その演算の結果がニューラルネットワーク回路101に設定されてもよい。

0128

[第1の実施形態のまとめ]
以上のように、本実施形態に係るニューラルネットワークシステム1では、分解能が有限であるニューロモルフィック素子により重み(結合重み)を実現する構成において、当該分解能より高い精度で実数シミュレーターなどにより求められた結合重みの真値を用いた場合と、当該ニューロモルフィック素子の特性に設定する離散化ステップサイズを用いた場合に基づいて、適した離散化ステップサイズが決定される。また、決定された離散化ステップサイズと、当該分解能に基づいて、ダイナミックレンジ(ダイナミックレンジの幅)が決定される。また、ダイナミックレンジのオフセット量(0、または、0以外の値)に基づいて、ダイナミックレンジ(ダイナミックレンジの幅およびオフセット量であり、上限値と下限値)が決定される。

0129

そして、本実施形態に係るニューラルネットワークシステム1では、決定されたダイナミックレンジ(上限値と下限値)に基づいて、ニューロモルフィック素子の特性(本実施形態では、コンダクタンス)の値を制御する。当該ニューロモルフィック素子では、当該ニューロモルフィック素子の特性の範囲(本実施形態では、コンダクタンスの上限値と下限値の間の範囲)において、制御された特性の値に応じた重みを信号に与える。これにより、素子アレイ部12(素子アレイ121)では、当該素子アレイ部12により構成されるニューラルネットワークの処理(例えば、入力される識別対象を識別する処理)が実現される。

0130

本実施形態に係るニューラルネットワークシステム1では、ニューラルネットワークにおける積和演算にニューロモルフィック素子を使用する場合に、結果の精度を向上させることができる。

0131

例えば、ニューロモルフィック素子を用いてニューラルネットワークが実現される場合、学習で得られた結合重みを規格化してニューロモルフィック素子の出力レンジ(ダイナミックレンジ)に割り当てることが想定される。その際、ニューロモルフィック素子の特性の変化はステップ状であるため、量子化誤差が発生する。
また、例えば、ニューラルネットワークにおける重みの更新に使用される誤差逆伝搬法では、重みの更新量は入力データあるいは教師データの絶対値に依存し、層ごとに重みの取り得るダイナミックレンジが異なる。さらに、重みの更新量は、重みの更新に使用されるアルゴリズムに依存する。
そこで、本実施形態に係るニューラルネットワークシステム1では、量子化誤差がニューラルネットワークの識別性能に与える影響を考慮し、ニューロモルフィック素子に割り当てる重みの値を適切に設定する。これにより、本実施形態に係るニューラルネットワークシステム1では、ニューロモルフィック素子を用いたニューラルネットワークにおける識別性能の低下を抑制することができる。

0132

ここで、実数を用いたシミュレーションなどによる演算結果で得られるダイナミックレンジよりも狭いダイナミックレンジをニューロモルフィック素子に設定しても、当該ニューロモルフィック素子を用いたニューラルネットワークにおける識別精度が改善し得る。

0133

また、本実施形態に係るニューラルネットワークシステム1では、多層のニューラルネットワークにおいて、入力に近い層(本実施形態では、入力層から隠れ層の出力までの1層目)に対して、それよりも後段の層(本実施形態では、隠れ層の出力から出力層の出力までの2層目)と比べて、小さい(狭い)ダイナミックレンジを設定する。本実施形態では、ユニット数が大きい入力層の側の精度の方が後段の層と比べて重要であると考えられるため、入力層の側では量子化ステップサイズが小さくなるように(つまり、高演算精度に)設定する。

0134

ここで、本実施形態では、ニューラルネットワークにより識別する対象(識別対象)として、数字の画像のデータが用いられたが、識別対象としては任意のデータが用いられてもよい。
また、ニューラルネットワークとしては、任意の種類のニューラルネットワークが用いられてもよく、例えば、全結合型のニューラルネットワーク、畳み込みニューラルネットワーク、あるいは、再帰型ニューラルネットワークなどが用いられてもよい。

0135

また、本実施形態では、ニューラルネットワークを実現するための積和演算で使用されるニューロモルフィック素子のダイナミックレンジを設定する場合について説明したが、本実施形態と同様な構成はニューラルネットワーク以外の分野に適用されてもよい。
例えば、任意の分野における積和演算を行うアレイ(積和演算アレイ)、あるいは、任意の分野における積和演算を含むアナログ演算器などに、本実施形態と同様な構成が適用されてもよい。
また、アレイに備えられるニューロモルフィック素子の分解能としては、様々な分解能が用いられてもよい。例えば、アレイがニューロモルフィック素子を含む複数の層を有する場合に、それぞれの層ごとに共通の分解能(同じ分解能)を有するニューロモルフィック素子を備えてもよい。また、このような場合に、異なる層におけるニューロモルフィック素子の分解能は異なる、構成が用いられてもよい。つまり、同一の層に含まれる複数のニューロモルフィック素子の分解能が同じである構成が用いられてもよく、また、ニューロモルフィック素子が含まれる層が異なると分解能も異なる構成が用いられてもよく、また、これら両方の構成が用いられてもよい。

0136

[第2の実施形態]
以下、図14から図27を参照して、本発明の第2の実施形態について説明する。

0137

[ニューラルネットワーク装置の概要]
図14は、本発明の第2の実施形態に係るニューラルネットワーク装置300の概略的な構成を示す図である。
ニューラルネットワーク装置300は、センシングデバイス310と、ADコンバータ320と、間引き回路330と、閾値取得部340と、PWM変調回路350と、ニューロモルフィック(Neuromorphic)デバイス360と、電流積分回路370とを備える。

0138

センシングデバイス310は、種々のセンサによって構成され得る。一例として、センシングデバイス310は、例えば、CCD(Charge-Coupled Device)イメージセンサやCMOS(Complementary MOS)イメージセンサなどの撮像素子を備えており、入射する光の光量に応じた画像信号を出力する。この一例では、センシングデバイス310は、画像を定められた画素数フレーム周期サンプリングし、サンプリングした画像の画素値アナログ信号として出力する。
ADコンバータ320は、センシングデバイス310が出力するアナログ信号を所定の量子化段階数(量子化ビット数)によってデジタル信号に変換する。なお、デジタル信号の量子化段階数のことを、デジタル信号の分解能ともいう。
この一例では、ADコンバータ320は、8ビットの量子化段階数(すなわち、0〜255の256段階)によって変換する。この場合、ADコンバータ320から出力されるデジタル信号の量子化段階数は、256段階である。ADコンバータ320は、変換後のデジタル信号を間引き回路330に対して出力する。

0139

なお、この一例では、ニューラルネットワーク装置300がセンシングデバイス310とADコンバータ320とを含むとして説明するが、これに限られない。ニューラルネットワーク装置300は、センシングデバイス310とADコンバータ320とを含まない構成であってもよい。この場合には、ニューラルネットワーク装置300は、ADコンバータ320が出力するデジタル信号を取得する。

0140

間引き回路330は、ADコンバータ320が出力するデジタル信号を入力信号ISとして取得する。上述したように、入力信号ISは、8ビット量子化されている。つまり、この一例において、入力信号ISの量子化段階数は、256段階である。

0141

この間引き回路330(間引き部)は、予め定められた閾値thに基づいて入力信号ISの量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号DSを生成する。以下の説明において、入力信号ISの大きさを示すデジタル値(離散値)を入力離散値IDVとも記載する。また、間引き信号DSの大きさを示すデジタル値(離散値)を間引き後離散値DDVとも記載する。

0142

閾値取得部340は、間引き回路330が参照する閾値thを外部回路(又は、外部装置)から取得する。
この閾値取得部340が取得する閾値thは、ニューロモルフィックデバイス360が出力する出力電流OC(重み付け信号)の重み付け結果に基づいて予め定められている。

0143

この閾値取得部340が取得する閾値th、及びこの閾値thと、間引き回路330による変換前後の離散値との関係について、図15及び図16を参照して説明する。

0144

図15は、本実施形態の間引き回路330が参照する閾値thの一例を示す図である。
図16は、本実施形態の間引き回路330による離散値変換の一例を示す図である。
この一例では、入力信号ISの量子化段階数(256段階)を4分割する閾値th1〜閾値th3が設定されている。より具体的には、閾値th1は、値64に設定されている。この場合、間引き回路330は、入力離散値IDVが閾値th1以下(すなわち、値64以下)である場合には、間引き後離散値DDVを0(ゼロ)として、離散値を変換する。同様にして、間引き回路330は、閾値th2の値(例えば、値128)、閾値th3の値(例えば、値192)を判定閾値にして、入力離散値IDVを間引き後離散値DDVに変換する。
すなわち、間引き回路330は、入力離散値IDVが0〜64である場合には、間引き後離散値DDVを0(ゼロ)とする。間引き回路330は、入力離散値IDVが65〜128である場合には、間引き後離散値DDVを1とする。間引き回路330は、入力離散値IDVが129〜192である場合には、間引き後離散値DDVを2とする。間引き回路330は、入力離散値IDVが193〜255である場合には、間引き後離散値DDVを3とする。

0145

図14戻り、間引き回路330は、離散値を変換した後のデジタル信号を間引き信号DSとしてPWM変調回路350に出力する。

0146

PWM変調回路350(変調部)は、間引き回路330が出力する間引き信号DSを取得する。PWM変調回路350は、間引き回路330が生成する間引き信号DSの離散値をパルス幅変調することにより、間引き信号DSの離散値をパルス幅によって示すパルス幅変調信号PMSを生成する。このPWM変調回路350によるパルス幅変調の一例について、図17を参照して説明する。

0147

図17は、本実施形態のPWM変調回路350によるパルス幅変調の一例を示す図である。PWM変調回路350は、間引き後離散値DDVの値の大きさに応じたパルス幅のパルス幅変調信号PMSを生成する。
具体的には、間引き信号DSの間引き後離散値DDVが3である場合には、PWM変調回路350は、パルス幅3(時刻t0〜時刻t3)のパルス幅変調信号PMSを生成する(図17(A))。間引き信号DSの間引き後離散値DDVが2である場合には、PWM変調回路350は、パルス幅2(時刻t0〜時刻t2)のパルス幅変調信号PMSを生成する(図17(B))。間引き信号DSの間引き後離散値DDVが1である場合には、PWM変調回路350は、パルス幅1(時刻t0〜時刻t1)のパルス幅変調信号PMSを生成する(図17(C))。間引き信号DSの間引き後離散値DDVが0(ゼロ)である場合には、PWM変調回路350は、パルス幅0(ゼロ)のパルス幅変調信号PMSを生成する(図17(D))。
図14に戻り、PWM変調回路350は、生成したパルス幅変調信号PMSをニューロモルフィックデバイス360に対して出力する。
ニューロモルフィックデバイス360は、パルス幅変調信号PMSと、予め設定されている重みとに基づいて、重みづけ信号である出力電流OCを出力する。

0148

図18は、本実施形態のニューロモルフィックデバイス360の構成の一例を示す図である。ニューロモルフィックデバイス360は、ニューロモルフィック素子を備えている。ニューロモルフィックデバイス360は、可変な特性の値に応じた重みを、PWM変調回路350(変調部)が生成するパルス幅変調信号PMSに対して乗算することにより、パルス幅変調信号PMSが重み付けされた出力電流OC(重み付け信号)を出力する。

0149

電流積分回路370は、ニューロモルフィックデバイス360(重み付け部)が出力する出力電流OC(重み付け信号)の電流の大きさを積算(時間積分)する。電流積分回路370は、出力信号線のそれぞれに備えられる。この図18には、複数の入力信号X[0]〜X[n]のうちのX[0]〜X[2]の3本、及び複数の出力信号線のうちの3本を模式的に示している。この一例の場合、電流積分回路370は、電流積分回路370−1〜−3を含む。

0150

図19は、本実施形態のニューロモルフィックデバイス360に供給されるパルス幅変調信号PMSの一例を示す図である。この一例の場合、ニューロモルフィックデバイス360には、パルス幅2のパルス幅変調信号PMS2が入力信号X[0]として、パルス幅1のパルス幅変調信号PMS1が入力信号X[1]として、パルス幅0のパルス幅変調信号PMS0が入力信号X[2]として、それぞれ供給される。
ニューロモルフィックデバイス360は、入力信号X[0]に対して、重みw[0,1]、重みw[0,2]、及び重みw[0,3]をそれぞれ乗算して、出力電流OCとして出力する。同様にして、ニューロモルフィックデバイス360は、入力信号X[1]に対して、重みw[1,1]、重みw[1,2]、及び重みw[1,3]をそれぞれ乗算して、出力電流OCとして出力する。ニューロモルフィックデバイス360は、入力信号X[2]に対して、重みw[2,1]、重みw[2,2]、及び重みw[2,3]をそれぞれ乗算して、出力電流OCとして出力する。
電流積分回路370−1は、出力電流OC1の電流の大きさを積算する。電流積分回路370−2は、出力電流OC2の電流の大きさを積算する。電流積分回路370−3は、出力電流OC3の電流の大きさを積算する。

0151

以上説明したように、本実施形態のニューラルネットワーク装置300は、入力信号ISの入力離散値IDVを、入力信号ISの量子化段階数よりも少ない段階数の離散値に変換する。ここで、本実施形態のニューラルネットワーク装置300と、従来のニューラルネットワーク装置との比較について説明する。

0152

図27は、従来のニューラルネットワーク装置の構成の一例を示す図である。この従来のニューラルネットワーク装置は、本実施形態の間引き回路330を備えておらず、入力信号ISの入力離散値IDVをそのままパルス幅変調信号PMSに変換する。ここで、入力信号ISの量子化段階数が256段階である場合、パルス幅変調信号PMSのパルス幅は、0〜255の256段階になる。ここで、電流積分回路370における出力電流OCの積算に要する時間(積算時間)は、ニューロモルフィックデバイス360に供給されるパルス幅変調信号PMSのパルス幅の段階数に依存する。例えば、この従来のニューラルネットワーク装置のように、256段階のパルス幅のパルス幅変調信号PMSがニューロモルフィックデバイス360に供給される場合、電流積分回路370における出力電流OCの積算時間は、256段階に応じた時間を要する。
つまり、入力信号ISの入力離散値IDVの量子化段階数が多いほど、電流積分回路370における出力電流OCの積算時間が長くなり、演算時間が長くなる(例えば、スループットが低下する)という問題が生じる。
また、電流積分回路370における積算結果は、電源電圧変動外乱などにより出力電流OCに含まれるノイズ成分の影響を受ける。電流積分回路370における出力電流OCの積算時間が長くなるほど、出力電流OCに含まれるノイズ成分の影響を受けやすくなる。
このノイズ成分の影響を低減して、電流積分回路370における積算結果の精度を高めるためには、例えば、パルス幅変調信号PMSの1離散値あたりのパルス幅(単位パルス幅)を長くすることにより、出力電流OCのS/N比を大きくすることが考えられる。しかしながら、パルス幅変調信号PMSの単位パルス幅を長くすると、電流積分回路370における積算時間がさらに長くなるという問題が生じる。

0153

一方、本実施形態のニューラルネットワーク装置300は、間引き回路330を備えている。上述したように、間引き回路330は、ニューロモルフィックデバイス360に供給されるパルス幅変調信号PMSのパルス幅の段階数を削減する。このため、本実施形態のニューラルネットワーク装置300によれば、入力信号ISの量子化段階数(量子化ビット数)が比較的大きい場合であっても、電流積分回路370における出力電流OCの積算時間を低減することができる。このため、ニューラルネットワーク装置300によれば、演算時間を低減できる。また、ニューラルネットワーク装置300によれば、電流積分回路370における出力電流OCの積算時間が低減されるため、出力電流OCに含まれるノイズ成分の影響を受けにくくなり、電流積分回路370における積算結果の精度を、上述した従来技術に比べて高めることができる。

0154

[変形例(その1)]
図20は、本実施形態のニューロモルフィックデバイス360に供給されるパルス幅変調信号PMSの変形例を示す図である。本変形例においては、PWM変調回路350が出力するパルス幅変調信号PMSの立ち上がりタイミング及び立下りタイミングを調整する機能を有している点において、上述した実施形態と相違する。

0155

具体的には、間引き回路330は、複数の間引き信号DSを生成する。PWM変調回路350は、間引き回路330が生成する複数の間引き信号DSにそれぞれ対応するパルス幅変調信号PMSを生成する。
この一例では、間引き回路330は、間引き信号DS0〜間引き信号DS2を生成する。同図に示す一例では、間引き信号DS0は値0(ゼロ)を、間引き信号DS1は値1を、間引き信号DS2は値2をそれぞれ示している。PWM変調回路350は、間引き信号DS0に対応するパルス幅変調信号PMSとしてのパルス幅変調信号PMS10を生成する。同様に、PWM変調回路350は、間引き信号DS1に対応するパルス幅変調信号PMSとしてのパルス幅変調信号PMS11を、間引き信号DS2に対応するパルス幅変調信号PMSとしてのパルス幅変調信号PMS12をそれぞれ生成する。同図に示す一例では、パルス幅変調信号PMS10のパルス幅は0(ゼロ)である。パルス幅変調信号PMS11のパルス幅はΔt1である。また、パルス幅変調信号PMS12のパルス幅はΔt2である。

0156

ここで、PWM変調回路350は、パルス幅変調信号PMS11のパルスの変化タイミングと、パルス幅変調信号PMS12のパルスの変化タイミングとを互いに異ならせて、パルス幅変調信号PMS10〜パルス幅変調信号PMS12を生成する。具体的には、PWM変調回路350は、パルス幅変調信号PMS11のパルスの立ち上がりタイミングから遅れ時間tdだけ遅延したタイミングを、パルス幅変調信号PMS12のパルスの立ち上がりタイミングにして、それぞれの信号を生成する。

0157

すなわち、この変形例のPWM変調回路350は、パルス幅変調信号PMSの信号波形が変化するパルスの立ち上がりタイミング及び立ち下りタイミングを、複数のパルス幅変調信号PMS間において互いにずらす。このように構成することにより、ニューラルネットワーク装置300は、複数のパルス幅変調信号PMS間において同時に信号波形が変化する場合に比べて、パルス幅変調信号PMSの信号波形が変化する際の電源電圧の変動(例えば、スパイクノイズの発生)を低減することができる。このため、ニューラルネットワーク装置300は、電流積分回路370による出力電流OCの積算結果に悪影響を及ぼすノイズの発生を低減することができ、出力電流OCの積算結果の精度を向上させることができる。

0158

[変形例(その2)]
図21は、本実施形態の間引き回路330が参照する閾値thの変形例を示す図である。
図22は、本実施形態の間引き回路330による離散値変換の変形例を示す図である。
上述した実施形態においては、閾値thが入力離散値IDVを等分割(例えば、4等分)していた(図15及び図16を参照。)。本変形例においては、閾値thが入力離散値IDVを不等分割する点において、上述した実施形態と相違する。

0159

この一例では、入力信号ISの量子化段階数(256段階)を4分割する閾値th1〜閾値th3が設定されている。より具体的には、閾値th11は、値96に設定されている。この場合、間引き回路330は、入力離散値IDVが閾値th1以下(すなわち、値96以下)である場合には、間引き後離散値DDVを0(ゼロ)として、離散値を変換する。同様にして、間引き回路330は、閾値th12の値(例えば、値128)、閾値th13の値(例えば、値160)を判定閾値にして、入力離散値IDVを間引き後離散値DDVに変換する。
すなわち、間引き回路330は、入力離散値IDVが0〜96である場合には、間引き後離散値DDVを0(ゼロ)とする。間引き回路330は、入力離散値IDVが97〜128である場合には、間引き後離散値DDVを1とする。間引き回路330は、入力離散値IDVが129〜160である場合には、間引き後離散値DDVを2とする。間引き回路330は、入力離散値IDVが161〜255である場合には、間引き後離散値DDVを3とする。

0160

ここで、センシングデバイス310によるセンシング対象の情報を、入力信号ISに変換した場合において、情報量が比較的多い入力離散値IDVの範囲と、情報量が比較的少ない入力離散値IDVの範囲とが生じる場合がある。
例えば、センシングデバイス310によるセンシング対象の情報が、画像である場合、イメージセンサの画素が出力する画素値(例えば、画素の明るさ)が入力離散値IDVに変換される。具体的には、センシング対象の情報が、図4に示したような画像である場合、画像の明るさが255階調グレースケールによって変換される。例えば、画像の明るさが0(例えば、完全な黒)である部分は、入力離散値IDVが0(ゼロ)に、画像の明るさが255(例えば、完全な白)である部分は、入力離散値IDVが255にそれぞれ変換される。このとき、ニューラルネットワーク装置300において、例えば、画像に示されている文字(数字)の形状やその意味を解釈する場合には、画像の白と黒とが切り替わる輪郭部分の情報が比較的重要であって、他の部分(例えば、黒い背景の部分や、文字(数字)内の白の部分)の明度の変化のような情報は比較的重要でない場合がある。この一例のように画像の白と黒とが切り替わる部分の情報が重要であるとすると、256段階の入力離散値IDVの範囲のうち、白と黒とが切り替わる97〜160の範囲(例えば、明るい灰色〜暗い灰色)の部分の情報は比較的重要であって、その情報量は多いといえる。また、この一例の場合、256段階の入力離散値IDVの範囲のうち、0〜96の範囲(例えば、完全な白〜明るい灰色)、及び161〜255の範囲(例えば、暗い灰色〜完全な黒)の部分の情報は比較的重要ではなく、その情報量は少ないといえる。

0161

本変形例の閾値thは、入力信号ISの量子化段階数を不等幅にして分割する。上述の一例では、入力離散値IDVの範囲のうち比較的重要な範囲(例えば、97〜160の範囲)は閾値thどうしの間の幅が比較的狭く、比較的重要でない範囲(例えば、0〜96の範囲、及び161〜255の範囲)は閾値thどうしの間の幅が比較的広く設定されている。したがって、本変形例のニューラルネットワーク装置300によれば、入力信号ISに含まれる情報のうち、より重要な情報を間引き信号DSに含ませることができる。

0162

ここで、例えば、閾値thの数を増加させ閾値thどうしの間隔を狭めれば、入力信号ISに含まれる情報のうち、より重要な情報を間引き信号DSに含ませることができる。しかしながら、閾値thの数を増加させると、間引き信号DSの量子化段階数が増加し、パルス幅変調信号PMSのパルス幅が増加することにより、演算時間の増加やノイズの影響を受けやすくなるといった上述した問題が生じてしまう。

0163

本変形例のニューラルネットワーク装置300によれば、閾値thの数を増加させずに、入力信号ISに含まれる情報のうち、より重要な情報を間引き信号DSに含ませることができる。すなわち、ニューラルネットワーク装置300は、間引き信号DSの量子化段階数の増加を抑えつつ、より重要な情報を間引き信号DSに含ませることができる。

0164

[変形例(その3)]
図23は、本実施形態の間引き回路330が参照する閾値thの第2の変形例を示す図である。
図24は、本実施形態の間引き回路330による離散値変換の第2の変形例を示す図である。
上述した実施形態においては、複数の閾値thによって入力離散値IDVを分割(例えば、4分割)していた(図15及び図16を参照。)。本変形例においては、単一の閾値thによって入力離散値IDVを2分割する点において、上述した実施形態と相違する。

0165

すなわち、本変形例の間引き回路330は、入力信号ISの量子化段階数を2分割することにより二値の間引き信号DSを生成する。同図に示す具体例では、入力信号ISの量子化段階数(256段階)を2分割する閾値th21が設定されている。この場合、間引き回路330は、入力離散値IDVが閾値th21以下(すなわち、値128以下)である場合には間引き後離散値DDVを0(ゼロ)として、閾値th21を超える(すなわち、値129以上)である場合には間引き後離散値DDVを1として、離散値を変換する。

0166

図25は、本実施形態のPWM変調回路350によるパルス幅変調の変形例を示す図である。PWM変調回路350は、間引き後離散値DDVの値の大きさに応じたパルス幅のパルス幅変調信号PMSを生成する。この変形例の場合、PWM変調回路350は、間引き信号DSに応じた2値のパルス幅変調信号PMS、すなわちパルス幅0(ゼロ)のパルス幅変調信号PMS20と、パルス幅がΔt1のパルス幅変調信号PMS21とを生成する。PWM変調回路350は、生成したパルス幅変調信号PMSをニューロモルフィックデバイス360に供給する。

0167

図26は、本実施形態のニューロモルフィックデバイス360に供給されるパルス幅変調信号PMSの変形例を示す図である。この一例の場合、ニューロモルフィックデバイス360には、パルス幅1のパルス幅変調信号PMS31が入力信号X[0]及び入力信号X[1]として、パルス幅0のパルス幅変調信号PMS30が入力信号X[2]として、それぞれ供給される。
図19を参照して説明した場合と同様に、ニューロモルフィックデバイス360は、入力信号X[0]に対して、重みw[0,1]、重みw[0,2]、及び重みw[0,3]をそれぞれ乗算して、出力電流OCとして出力する。同様にして、ニューロモルフィックデバイス360は、入力信号X[1]に対して、重みw[1,1]、重みw[1,2]、及び重みw[1,3]をそれぞれ乗算して、出力電流OCとして出力する。ニューロモルフィックデバイス360は、入力信号X[2]に対して、重みw[2,1]、重みw[2,2]、及び重みw[2,3]をそれぞれ乗算して、出力電流OCとして出力する。

0168

ここで、本変形例のニューロモルフィックデバイス360には、図19を参照して説明した場合と異なり、供給されるパルス幅変調信号PMSのパルス幅が2値(例えば、パルス幅0(ゼロ)及びΔt1)のみである。したがって、電流積分回路370は、パルス幅を積算(時間積分)することなく、パルスの有無(すなわち、出力電流OCの電流値の大小)を検出すればよい。

0169

すなわち、本変形例においては、ニューラルネットワーク装置300は、電流積分回路370に代えて、電流検出回路370aを備える。この電流検出回路370aは、出力電流OCの電流値の大小を検出する。具体的には、図26に示すように、電流検出回路370a−1は、出力電流OC31の電流の大きさを検出する。電流検出回路370aは、出力電流OC32の電流の大きさを検出する。電流検出回路370aは、出力電流OC3の電流の大きさを検出する。

0170

一般に電流の大きさの検出は、電流の積算よりも簡易な回路(又は、より簡易なソフトウェアとの組み合わせ)によって実現可能である。すなわち、本変形例のニューラルネットワーク装置300は、より簡易な構成により、ニューロモルフィックデバイス360の出力結果を検出することができる。
また、上述したように、電流積分回路370において出力電流OCの積算時間が長くなると、ノイズ成分の影響により積算結果の精度が低下しやすい。本変形例のニューラルネットワーク装置300によれば、出力電流OCの積算をする必要がないため、出力電流OCに含まれるノイズ成分の影響を受けにくくすることができる。さらにノイズ低減を図る場合は、複数回の電流検出値を平均化するなどの手法も適用可能である。したがって、本変形例のニューラルネットワーク装置300によれば、積算結果の精度が低下してしまうことを抑止することができる。

0171

なお、上述したように閾値thが、入力離散値IDVを「0(ゼロ)」と「1」とに二分した間引き後離散値DDVを出力するように定められている場合には、ニューロモルフィックデバイス360は、いわゆるバイライズド・ニューラルネットワーク(以下、二値化NNとも記載する。)として構成されていてもよい。
ニューロモルフィックデバイス360は、二値化NNとして構成されている場合であっても、学習段階において、ニューロモルフィックデバイス360が出力する出力電流OCに基づいて、重みw及び分解能を調整することにより、多値ニューラルネットワークと同程度の識別性能を得ることができる。

0172

また、閾値thが入力信号ISの値に基づいて可変にして定められていてもよい。上述したように、センシングデバイス310によるセンシング対象の情報が、例えば、画像である場合、イメージセンサの画素が出力する画素値(例えば、画素の明るさ)が入力離散値IDVに変換される。ここで、イメージセンサで撮像された画像の明るさは、例えば、画像の種類や撮像条件などによって変動することがある。したがって、入力離散値IDVの範囲のうち、画像の意味をより多く含んでいる範囲、すなわち比較的重要な範囲も変動することがある。このような場合においても、閾値thが入力信号ISの値に基づいて可変にして定められていることにより、本変形例のニューラルネットワーク装置300によれば、入力信号ISに含まれる情報のうち、より重要な情報を間引き信号DSに含ませることができる。

0173

また、間引き回路330が生成する間引き信号DSの離散値の段階数が、入力信号ISに基づいて可変にして定められていてもよい。ここで、入力離散値IDVの範囲のうち、画像の意味をより多く含んでいる範囲、すなわち比較的重要な範囲が、入力信号ISの値や種類によって変動することがある。このような場合においても、閾値thが入力信号ISの値に基づいて可変にして定められていることにより、本変形例のニューラルネットワーク装置300によれば、入力信号ISに含まれる情報のうち、より重要な情報を間引き信号DSに含ませることができる。
なお、上述したように、間引き回路330が生成する間引き信号DSの離散値の段階数は、入力信号ISの量子化段階数よりも少ない段階数の範囲にして定められている。つまり、この一例の場合には、間引き回路330が生成する間引き信号DSの離散値の段階数が、入力信号ISの量子化段階数よりも少ない段階数の範囲において、入力信号の値に基づいて可変にして定められている。

0174

また、上述したように、本実施形態のニューロモルフィックデバイス360のニューロモルフィック素子は、完全なアナログ線形的なコンダクタンス(G)の変化特性を有しておらず、有限な分解能(換言すれば、離散値の段階数)を有している。間引き回路330は、このニューロモルフィック素子の離散値の段階数に基づいて、間引き信号DSの離散値の段階数を定めてもよい。例えば、間引き回路330は、間引き信号DSの離散値の段階数を、ニューロモルフィック素子の離散値の段階数よりも少ない段階数にしてもよい。このように構成することにより、本実施形態のニューラルネットワーク装置300によれば、入力信号ISの量子化段階数(量子化ビット数)が比較的大きい場合であっても、電流積分回路370における出力電流OCの積算時間を低減することができる。

0175

なお、以上に示した実施形態に係る各装置(例えば、制御装置11及びニューラルネットワーク装置300)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。

0176

さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル差分プログラム)であってもよい。

0177

<構成例>
一構成例として、可変な特性(例えば、コンダクタンスなど)の値に応じた重みを信号に乗算するニューロモルフィック素子を含むアレイ(本実施形態では、素子アレイ121)の制御装置(本実施形態では、制御装置11)であって、ニューロモルフィック素子の特性の分解能よりも高い精度で求められた重みの真値(本実施形態では、実数シミュレーターにより演算された真値)を用いた場合とニューロモルフィック素子の特性について設定される離散化ステップサイズ(本実施形態では、離散化ステップサイズに対応するパラメーターα、β)を用いた場合に基づいて所定の条件(誤差を小さくする所定の条件、あるいは、精度を大きくする所定の条件)が満たされるように求められた離散化ステップサイズを使用して、ニューロモルフィック素子の特性を制御する制御部(本実施形態では、制御装置11の機能であり、例えば、重み割り当て制御部23)を備える、制御装置である。
一構成例として、制御装置において、制御部は、離散化ステップサイズと分解能と所定のオフセット量に応じたニューロモルフィック素子のダイナミックレンジを使用して、ニューロモルフィック素子の特性を制御する。
一構成例として、制御装置において、制御部は、アレイがニューロモルフィック素子を含む複数の層を有する場合に、それぞれの層ごとに共通の離散化ステップサイズを使用して、ニューロモルフィック素子の特性を制御する。
一構成例として、制御装置において、制御部は、アレイが複数のニューロモルフィック素子を含む層を有する場合に、同一の層に含まれる複数のニューロモルフィック素子がグループ分けされたグループごとに共通の離散化ステップサイズを使用して、ニューロモルフィック素子の特性を制御する。
一構成例として、制御装置において、アレイがニューロモルフィック素子を含む複数の層を有しており、それぞれの層ごとに共通の分解能を有するニューロモルフィック素子を備え、異なる層におけるニューロモルフィック素子の分解能は異なる。
一構成例として、制御装置において、制御部(本実施形態では、制御装置11の機能であり、例えば、識別制御部21、重み演算制御部22および重み割り当て制御部23)は、離散化ステップサイズを使用して、アレイについて学習を行う。
一構成例として、制御装置において、アレイは、ニューロモルフィック素子を用いてニューラルネットワークにおける積和演算を行う回路を有する。

0178

一構成例として、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含むアレイについて、ニューロモルフィック素子の特性の離散化ステップサイズを演算する演算方法(例えば、制御装置11の重み演算制御部22あるいは他のコンピュータにより行われる演算の方法)であって、ニューロモルフィック素子の特性の分解能よりも高い精度で重みの真値を演算するステップと、重みの真値を用いた場合とニューロモルフィック素子の特性について設定される離散化ステップサイズを用いた場合に基づいて、所定の条件(誤差を小さくする所定の条件、あるいは、精度を大きくする所定の条件)が満たされるように、離散化ステップサイズを演算するステップと、を備える、離散化ステップサイズの演算方法である。

0179

一構成例として、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含むアレイについて、ニューロモルフィック素子の特性の離散化ステップサイズを演算するプログラム(例えば、制御装置11の重み演算制御部22を構成するコンピュータあるいは他のコンピュータにおいて実行されるプログラム)であって、ニューロモルフィック素子の特性の分解能よりも高い精度で重みの真値を演算するステップと、重みの真値を用いた場合とニューロモルフィック素子の特性について設定される離散化ステップサイズを用いた場合に基づいて、所定の条件(誤差を小さくする所定の条件、あるいは、精度を大きくする所定の条件)が満たされるように、離散化ステップサイズを演算するステップと、をコンピュータに実行させるためのプログラムである。
ここで、コンピュータでは、例えば、CPU(Central Processing
Unit)などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。

0180

以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。

0181

1…ニューラルネットワークシステム、11…制御装置、12…素子アレイ部、21…識
別制御部、22…重み演算制御部、23…重み割り当て制御部、24…記憶部、101…
ニューラルネットワーク回路、111…識別用制御回路、112…重み演算制御回路、1
13…重み割り当て制御回路、121…素子アレイ、122、123…入出力IF回路、
211…画像(画像のデータ)、1011、1111〜1113、1121〜1123、
1211、1311〜1313、1321〜1323、1411〜1413、1421〜
1423、1511〜1513、1521〜1523、1611〜1613、1621〜
1623、1711…特性、1131、1132…範囲、1221、1721…矢印、A
1−0〜A1−p、A1−i、A2−0〜A2−q、A2−j、A3−1〜A3−r、A
3−k…ユニット、B1−1〜B1−n、B2−1〜B2−n、B0−1〜B0−n…画
像、
300…ニューラルネットワーク装置、310…センシングデバイス、320…ADコンバータ、330…間引き回路(間引き部)、340…閾値取得部、350…PWM変調回路(変調部)、360…ニューロモルフィックデバイス(重み付け部)、370…電流積分(電流積分部)、370a…電流検出回路(電流検出部)IS…入力信号、DS…間引き信号、IDV…入力離散値(入力信号の離散値)、DDV…間引き後離散値(間引き信号の離散値)、PMS…パルス幅変調信号、OC…出力電流(重み付け信号)、th…閾値

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ