(57)【要約】【課題】ニューラルネットワークを用いた演算装置を提供する。【解決手段】Ｋ層の隠れ層の１層分に対応するＮ個の遅延素子の各々は、Ｋ層の隠れ層の各々に対応するＫ個の可変抵抗部を備える。Ｋ個の可変抵抗部の各々は、Ｎ個の可変抵抗素子を備える。Ｙ層目の隠れ層を計算する場合に、Ｙ番目の可変抵抗部が選択されて電源電圧部位と遅延素子の電源入力端子との間に接続される。遅延素子から出力される、Ｙ番目の可変抵抗部の抵抗値に応じた遅延時間を有する時間信号がしきい値と比較され、デジタル信号が生成される。Ｙ番目の可変抵抗部は、Ｎ個の可変抵抗素子の各々の抵抗値を、Ｙ−１層目のＮ個のデジタル値およびＮ個の重み係数に応じた抵抗値に設定する。Ｎ個の遅延素子の各々は、Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行う。【選択図】図３
2020149340.tif 000002
【特許請求の範囲】
【請求項１】
入力層、Ｋ層（Ｋは１以上の自然数）の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置であって、
前記Ｋ層の隠れ層の１層分に対応するＮ個（Ｎは１以上の自然数）の遅延素子を備えており、
前記Ｎ個の遅延素子の各々は、
前記Ｋ層の隠れ層の各々に対応しているＫ個の可変抵抗部であって、
前記Ｋ個の可変抵抗部の各々は、前記Ｎ個の遅延素子の各々に対応するＮ個の可変抵抗素子を備えている、前記可変抵抗部と、
前記Ｋ層の隠れ層のうちのＹ層目（Ｙは１以上Ｋ以下の自然数）を計算する場合に、前記Ｋ個の可変抵抗部のうちから前記Ｙ層目に対応するＹ番目の可変抵抗部を選択して電源電圧部位と前記遅延素子の電源入力端子との間に接続する選択部と、
前記遅延素子から、前記Ｙ番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路と、
を備え、
前記Ｎ個の遅延素子の各々が備えるＮ個の前記時間デジタル変換回路は、Ｙ−１層目の隠れ層の計算によって、Ｙ−１層目のＮ個のデジタル値を出力し、
前記選択部は、Ｙ−１層目の隠れ層の計算後に、Ｙ番目の可変抵抗部を選択し、
前記Ｙ番目の可変抵抗部は、前記Ｎ個の可変抵抗素子の各々の抵抗値を、前記Ｙ−１層目のＮ個のデジタル値および前記Ｙ−１層目のＮ個のデジタル値の各々に対応付けられているＮ個の重み係数に応じた抵抗値に設定し、
前記Ｎ個の遅延素子の各々は、前記Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行うことで、Ｙ層目のＮ個のデジタル値を出力する、演算装置。
【請求項２】
前記可変抵抗部が備える前記Ｎ個の可変抵抗素子の各々は、前記電源電圧部位と前記電源入力端子との間に並列に接続されており、
前記Ｋ層の隠れ層のうちのＹ層目を計算する場合に、前記Ｙ番目の可変抵抗部は、
前記Ｙ−１層目のＮ個のデジタル値のうちＺ個目（Ｚは１以上Ｎ以下の自然数）のデジタル値が０の場合は、Ｚ個目の可変抵抗素子の抵抗値を最大値とし、
前記Ｚ個目のデジタル値が１の場合は、Ｚ個目の可変抵抗素子の抵抗値を、前記Ｚ個目のデジタル値に対応付けられている重み係数に応じた抵抗値とする、請求項１に記載の演算装置。
【請求項３】
前記可変抵抗部が備える前記Ｎ個の可変抵抗素子の各々は、前記電源電圧部位と前記電源入力端子との間に直列に接続されており、
前記Ｋ層の隠れ層のうちのＹ層目を計算する場合に、前記Ｙ番目の可変抵抗部は、
前記Ｙ−１層目のＮ個のデジタル値のうちＺ個目（Ｚは１以上Ｎ以下の自然数）のデジタル値が０の場合は、Ｚ個目の可変抵抗素子の抵抗値を最小値とし、
前記Ｚ個目のデジタル値が１の場合は、Ｚ個目の可変抵抗素子の抵抗値を、前記Ｚ個目のデジタル値に対応付けられている重み係数に応じた抵抗値とする、請求項１に記載の演算装置。
【請求項４】
前記Ｎ個の遅延素子の各々に対応して備えられた前記Ｎ個の時間デジタル変換回路の出力の各々をラッチするＮ個のラッチ回路をさらに備え、
前記Ｎ個のラッチ回路の各々は、Ｙ−１層目の隠れ層の計算によって、Ｙ−１層目のＮ個のデジタル値をラッチし、
前記Ｙ番目の可変抵抗部は、前記Ｎ個のラッチ回路にラッチされた前記Ｙ−１層目のＮ個のデジタル値の各々を用いて、前記Ｎ個の可変抵抗素子の各々の抵抗値を設定する、請求項１〜３の何れか１項に記載の演算装置。
【請求項５】
入力層、Ｋ層（Ｋは１以上の自然数）の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置であって、
前記Ｋ層の隠れ層の１層分に対応するＮ個（Ｎは１以上の自然数）の遅延素子を備えており、
前記Ｎ個の遅延素子の各々は、
前記Ｋ層の隠れ層の各々に対応しているＫ個の可変抵抗部であって、
前記Ｋ個の可変抵抗部の各々は、前記Ｎ個の遅延素子の各々に対応するＮ個の可変抵抗素子を備えている、前記可変抵抗部と、
前記Ｋ層の隠れ層のうちのＹ層目（Ｙは１以上Ｋ以下の自然数）を計算する場合に、前記Ｋ個の可変抵抗部のうちから前記Ｙ層目に対応するＹ番目の可変抵抗部を選択して前記遅延素子の出力端子と時間デジタル変換回路との間に接続する選択部と、
前記Ｙ番目の可変抵抗部から、前記Ｙ番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路と、
を備え、
前記Ｎ個の遅延素子の各々が備えるＮ個の前記時間デジタル変換回路は、Ｙ−１層目の隠れ層の計算によって、Ｙ−１層目のＮ個のデジタル値を出力し、
前記選択部は、Ｙ−１層目の隠れ層の計算後に、Ｙ番目の可変抵抗部を選択し、
前記Ｙ番目の可変抵抗部は、前記Ｎ個の可変抵抗素子の各々の抵抗値を、前記Ｙ−１層目のＮ個のデジタル値および前記Ｙ−１層目のＮ個のデジタル値の各々に対応付けられているＮ個の重み係数に応じた抵抗値に設定し、
前記Ｎ個の遅延素子の各々は、前記Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行うことで、Ｙ層目のＮ個のデジタル値を出力する、演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書が開示する技術は、ニューラルネットワークを用いた演算装置に関する。
【背景技術】
【０００２】
ニューラルネットワークを用いた深層学習用の演算回路が知られている。特許文献１の技術では、縦続接続したデジタル時間変換回路（Digital to Time Converter）を用いて、重みＷおよび入力Ｘに応じた遅延時間を生成する。そして、時間デジタル変換回路（Time to Digital Converter）を用いてしきい値判定する。また抵抗変化型や容量変化型のメモリを用いて、遅延時間を調節可能としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−５３００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、複数の隠れ層の各々が備える複数の演算器の各々において、重みの数だけ遅延素子を縦続接続しなければならない。すなわち、隠れ層の層数と、隠れ層１層あたりの演算器の数と、１演算器あたりの重みＷの数と、を掛け合わせた数だけ、遅延素子を縦続接続しなければならない。回路構成に必要な遅延素子数が膨大となるため、演算時間の長大化や、回路面積の増大化などの問題が発生する。
【課題を解決するための手段】
【０００５】
本明細書が開示する演算装置の一実施形態は、入力層、Ｋ層（Ｋは１以上の自然数）の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置である。演算装置は、Ｋ層の隠れ層の１層分に対応するＮ個（Ｎは１以上の自然数）の遅延素子を備えている。Ｎ個の遅延素子の各々は、Ｋ層の隠れ層の各々に対応しているＫ個の可変抵抗部を備える。Ｋ個の可変抵抗部の各々は、Ｎ個の遅延素子の各々に対応するＮ個の可変抵抗素子を備えている。Ｎ個の遅延素子の各々は、Ｋ層の隠れ層のうちのＹ層目（Ｙは１以上Ｋ以下の自然数）を計算する場合に、Ｋ個の可変抵抗部のうちからＹ層目に対応するＹ番目の可変抵抗部を選択して電源電圧部位と遅延素子の電源入力端子との間に接続する選択部を備える。Ｎ個の遅延素子の各々は、遅延素子から、Ｙ番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路を備える。Ｎ個の遅延素子の各々が備えるＮ個の時間デジタル変換回路は、Ｙ−１層目の隠れ層の計算によって、Ｙ−１層目のＮ個のデジタル値を出力する。選択部は、Ｙ−１層目の隠れ層の計算後に、Ｙ番目の可変抵抗部を選択する。Ｙ番目の可変抵抗部は、Ｎ個の可変抵抗素子の各々の抵抗値を、Ｙ−１層目のＮ個のデジタル値およびＹ−１層目のＮ個のデジタル値の各々に対応付けられているＮ個の重み係数に応じた抵抗値に設定する。Ｎ個の遅延素子の各々は、Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行うことで、Ｙ層目のＮ個のデジタル値を出力する。
【０００６】
本明細書が開示する変換回路は、Ｋ層の隠れ層の１層分に対応するＮ個の遅延素子を備えている。そして、Ｋ層の隠れ層のうちのＹ層目の隠れ層を計算する場合には、Ｙ番目の可変抵抗部が備えるＮ個の可変抵抗素子の各々の抵抗値を、Ｎ個の重み係数に応じた抵抗値に設定する。Ｎ個の遅延素子の各々は、Ｙ番目の可変抵抗部の抵抗値に基づいて、Ｙ層目の隠れ層の計算を行うことができる。これにより、Ｎ個の可変抵抗素子を用いて、Ｎ個の重み係数に応じた計算を行うことが可能となる。よって、Ｎ個の遅延素子を縦続接続することでＮ個の重み係数に応じた計算を行う場合に比して、回路構成に必要な遅延素子数を抑制することができる。回路面積の縮小化が可能となる。
【０００７】
可変抵抗部が備えるＮ個の可変抵抗素子の各々は、電源電圧部位と電源入力端子との間に並列に接続されていてもよい。Ｋ層の隠れ層のうちのＹ層目を計算する場合に、Ｙ番目の可変抵抗部は、Ｙ−１層目のＮ個のデジタル値のうちＺ個目（Ｚは１以上Ｎ以下の自然数）のデジタル値が０の場合は、Ｚ個目の可変抵抗素子の抵抗値を最大値とし、Ｚ個目のデジタル値が１の場合は、Ｚ個目の可変抵抗素子の抵抗値を、Ｚ個目のデジタル値に対応付けられている重み係数に応じた抵抗値としてもよい。効果の詳細は実施例で説明する。
【０００８】
可変抵抗部が備えるＮ個の可変抵抗素子の各々は、電源電圧部位と電源入力端子との間に直列に接続されていてもよい。Ｋ層の隠れ層のうちのＹ層目を計算する場合に、Ｙ番目の可変抵抗部は、Ｙ−１層目のＮ個のデジタル値のうちＺ個目（Ｚは１以上Ｎ以下の自然数）のデジタル値が０の場合は、Ｚ個目の可変抵抗素子の抵抗値を最小値とし、Ｚ個目のデジタル値が１の場合は、Ｚ個目の可変抵抗素子の抵抗値を、Ｚ個目のデジタル値に対応付けられている重み係数に応じた抵抗値としてもよい。効果の詳細は実施例で説明する。
【０００９】
演算装置は、Ｎ個の遅延素子の各々に対応して備えられたＮ個の時間デジタル変換回路の出力の各々をラッチするＮ個のラッチ回路をさらに備えていてもよい。Ｎ個のラッチ回路の各々は、Ｙ−１層目の隠れ層の計算によって、Ｙ−１層目のＮ個のデジタル値をラッチしてもよい。Ｙ番目の可変抵抗部は、Ｎ個のラッチ回路にラッチされたＹ−１層目のＮ個のデジタル値の各々を用いて、Ｎ個の可変抵抗素子の各々の抵抗値を設定してもよい。効果の詳細は実施例で説明する。
【００１０】
本明細書が開示する演算装置の一実施形態は、入力層、Ｋ層（Ｋは１以上の自然数）の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置である。演算装置は、Ｋ層の隠れ層の１層分に対応するＮ個（Ｎは１以上の自然数）の遅延素子を備えている。Ｎ個の遅延素子の各々は、Ｋ層の隠れ層の各々に対応しているＫ個の可変抵抗部を備える。Ｋ個の可変抵抗部の各々は、Ｎ個の遅延素子の各々に対応するＮ個の可変抵抗素子を備えている。Ｎ個の遅延素子の各々は、Ｋ層の隠れ層のうちのＹ層目（Ｙは１以上Ｋ以下の自然数）を計算する場合に、Ｋ個の可変抵抗部のうちからＹ層目に対応するＹ番目の可変抵抗部を選択して遅延素子の出力端子と時間デジタル変換回路との間に接続する選択部を備える。Ｎ個の遅延素子の各々は、Ｙ番目の可変抵抗部から、Ｙ番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路を備える。Ｎ個の遅延素子の各々が備えるＮ個の時間デジタル変換回路は、Ｙ−１層目の隠れ層の計算によって、Ｙ−１層目のＮ個のデジタル値を出力する。選択部は、Ｙ−１層目の隠れ層の計算後に、Ｙ番目の可変抵抗部を選択する。Ｙ番目の可変抵抗部は、Ｎ個の可変抵抗素子の各々の抵抗値を、Ｙ−１層目のＮ個のデジタル値およびＹ−１層目のＮ個のデジタル値の各々に対応付けられているＮ個の重み係数に応じた抵抗値に設定する。Ｎ個の遅延素子の各々は、Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行うことで、Ｙ層目のＮ個のデジタル値を出力する。効果の詳細は実施例で説明する。
【図面の簡単な説明】
【００１１】
【図１】ニューラルネットワーク１００の概略図である。
【図２】演算器ＡＵ２１を説明する図である。
【図３】実施例１に係る演算装置１の回路図である。
【図４】抵抗制御回路ＲＣ１の内部構造を説明する図である。
【図５】演算装置１の動作を説明するフローチャートである。
【図６】遅延時間を説明するタイミングチャートである。
【図７】従来の演算器２００を示す図である。
【図８】実施例２に係る演算装置１ａの回路図である。
【図９】実施例３に係る抵抗制御回路ＲＣ１ａの内部構造を説明する図である。
【発明を実施するための形態】
【実施例１】
【００１２】
図１に、本実施形態に係る演算装置が実現するニューラルネットワーク１００の概略図を示す。ニューラルネットワーク１００は、入力層ＩＬ、Ｋ層（Ｋは１以上の自然数）の隠れ層ＨＬ１〜ＨＬＫ、出力層ＯＬ、を備える。入力層ＩＬは、Ｍ個の入力部ＩＬ１〜ＩＬＭを有する。例えばニューラルネットワーク１００が画像認識のニューラルネットワークである場合には、入力部ＩＬ１〜ＩＬＭには、撮像素子の各ピクセルや色の諧調を示すビット信号の各々が入力される。
【００１３】
１層目の隠れ層ＨＬ１は、Ｎ個（Ｎは１以上の自然数）の演算器ＡＵ１１〜ＡＵ１Ｎを備える。同様にして、Ｋ層目の隠れ層ＨＬＫは、Ｎ個の演算器ＡＵＫ１〜ＡＵＫＮを備える。すなわち隠れ層は、Ｎ×Ｋ個の演算器を備えている。Ｎ×Ｋ個の演算器の動作は、すべて同様である。よって、以下に代表的な演算器ＡＵ２１について、図２を用いて説明する。
【００１４】
隠れ層ＨＬ１の演算器ＡＵ１１〜ＡＵ１Ｎの各々からは、出力Ｘ２１〜Ｘ２Ｎが出力される。出力Ｘ２１〜Ｘ２Ｎは、演算器ＡＵ２１〜ＡＵ２Ｎの各々に入力される。図２に示すように、演算器ＡＵ２１に入力される出力Ｘ２１〜Ｘ２Ｎの各々には、重み係数Ｗ２１１〜Ｗ２Ｎ１が対応付けられている。演算器ＡＵ２１は、出力Ｘ２１〜Ｘ２Ｎと、重み係数Ｗ２１１〜Ｗ２Ｎ１とに基づいて、下式（１）に基づき中間値Ｍを算出する。
Ｍ＝Ｘ２１×Ｗ２１１＋Ｘ２２×Ｗ２２１＋  ・・・  ＋Ｘ２Ｎ×Ｗ２Ｎ１・・・（１）
そして、演算器ＡＵ２１は、中間値Ｍと時間しきい値Ｖｔｈとを比較し、デジタル値である出力Ｘ３１を出力する。中間値Ｍが時間しきい値Ｖｔｈ以下の場合には、出力Ｘ３１は「０」である。中間値Ｍが時間しきい値Ｖｔｈより大きい場合には、出力Ｘ３１は「１」である。同様にして演算器ＡＵ２Ｎは、出力Ｘ２１〜Ｘ２Ｎと重み係数Ｗ２１Ｎ〜Ｗ２ＮＮとに基づいて中間値Ｍを算出し、中間値Ｍと時間しきい値Ｖｔｈとを比較して出力Ｘ３Ｎを出力する。
【００１５】
出力層ＯＬはＪ個（Ｊは１以上の自然数）の出力部ＯＬ１〜ＩＬＪを備えている。Ｊの数は、識別する画像の種類の数に対応している。例えば、出力部ＯＬ１のみが「１」の場合には「Ａ」という画像が撮影されたという識別結果が得られ、出力部ＯＬ２のみが「１」の場合には「Ｂ」という画像が撮影されたという識別結果が得られる。
【００１６】
（演算装置１の回路構成）
図３に、図１のニューラルネットワーク１００に対応する演算装置１の回路図を示す。演算装置１は、Ｎ個（Ｎは１以上の自然数）の遅延素子ＤＥ１〜ＤＥＮ、Ｎ個の抵抗制御回路ＲＣ１〜ＲＣＮ、Ｎ個のＴＤＣ回路ＴＤ１〜ＴＤＮ、Ｎ個のラッチ回路ＬＣ１〜ＬＣＮ、重み係数算出回路ＷＣ、しきい値生成回路ＶＣ、入力パルス生成回路ＩＰを備える。遅延素子ＤＥ１〜ＤＥＮは、インバータである。遅延素子ＤＥ１は、ニューラルネットワーク１００（図１）の隠れ層の１列目の演算器である演算器ＡＵ１１〜ＡＵＫ１に対応する。以下同様にして、遅延素子ＤＥＮは、隠れ層のＮ列目の演算器である演算器ＡＵ１Ｎ〜ＡＵＫＮに対応する。
【００１７】
抵抗制御回路ＲＣ１は、電源電圧ＶＤＤと遅延素子ＤＥ１の電源入力端子ＶＴ１との間に接続されている。以下同様にして、抵抗制御回路ＲＣＮは、電源電圧ＶＤＤと遅延素子ＤＥＮの電源入力端子ＶＴＮとの間に接続されている。
【００１８】
遅延素子ＤＥ１には、入力パルス生成回路ＩＰからパルス信号ＰＳが入力される。遅延素子ＤＥ１からは、抵抗制御回路ＲＣ１によって定まる遅延時間を含んだ時間信号ＴＳ１が出力される。ＴＤＣ回路ＴＤ１には、時間信号ＴＳ１と、しきい値生成回路ＶＣから出力される時間しきい値Ｖｔｈが入力される。ＴＤＣ回路ＴＤ１から出力されるデジタル信号ＤＳ１は、ラッチ回路ＬＣ１に入力される。以下同様にして、遅延素子ＤＥＮにはパルス信号ＰＳが入力され、ＴＤＣ回路ＴＤＮには時間信号ＴＳＮと時間しきい値Ｖｔｈが入力される。ＴＤＣ回路ＴＤＮから出力されるデジタル信号ＤＳＮは、ラッチ回路ＬＣＮに入力される。
【００１９】
図４を用いて、抵抗制御回路ＲＣ１の内部構造を説明する。抵抗制御回路ＲＣ１は、Ｋ層の隠れ層の各々に対応しているＫ個の可変抵抗部ＶＲ１１〜ＶＲ１Ｋを備える。また、可変抵抗部ＶＲ１１〜ＶＲ１Ｋの各々に対応しているＫ個のバイパススイッチＳＷ１１〜ＳＷ１Ｋを備える。
【００２０】
可変抵抗部ＶＲ１１は、Ｍ個の入力部ＩＬ１〜ＩＬＭの各々に対応する、Ｍ個の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍを備えている。可変抵抗素子ＶＥ１１〜ＶＥ１Ｍは、例えば、ＲｅＲＡＭ（resistive random access memory）や、フラッシュメモリであってもよい。またＭ個の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々に対応する、Ｍ個の出力スイッチＸＳ１１〜ＸＳ１Ｍを備えている。Ｍ個の可変抵抗素子ＶＥ１１〜ＶＥ１ＭおよびバイパススイッチＳＷ１１は、電源電圧ＶＤＤと可変抵抗部ＶＲ１２との間に並列に接続されている。また出力スイッチＸＳ１１〜ＸＳ１Ｍの各々は、可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々に直列に接続されている。
【００２１】
同様にして、可変抵抗部ＶＲ１Ｋは、Ｎ個の遅延素子ＤＥ１〜ＤＥＮの各々に対応する、Ｎ個の可変抵抗素子ＶＥＫ１〜ＶＥＫＮを備えている。またＮ個の可変抵抗素子ＶＥＫ１〜ＶＥＫＮの各々に対応する、Ｎ個の出力スイッチＸＳＫ１〜ＸＳＫＮを備えている。
【００２２】
可変抵抗部ＶＲ１１には、重み係数算出回路ＷＣからＭ個の重み情報ＷＩ１１１〜ＷＩ１Ｍ１が入力される。重み情報ＷＩ１１１は、１個目の出力Ｘ１１に対応付けられている重み係数を表す情報である。Ｍ個の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々の抵抗値は、重み情報ＷＩ１１１〜ＷＩ１Ｍ１に基づいて、個別に制御される。
【００２３】
同様にして、可変抵抗部ＶＲ１Ｋには、重み係数算出回路ＷＣからＮ個の重み情報ＷＩＫ１１〜ＷＩＫＮ１が入力される。Ｎ個の可変抵抗素子ＶＥＫ１〜ＶＥＫＮの各々の抵抗値は、重み情報ＷＩＫ１１〜ＷＩＫＮ１に基づいて、個別に制御される。
【００２４】
また、抵抗制御回路ＲＣ２〜ＲＣＮ（図３）の各々の内部構造は、図４の抵抗制御回路ＲＣ１の内部構造と同様である。よって、説明を省略する。
【００２５】
（演算装置１の動作）
図５のフローチャートを用いて、演算装置１の動作を説明する。Ｓ１０において１層目の隠れ層ＨＬ１の計算を行う。計算内容の具体的内容は後述する。隠れ層ＨＬ１の計算により、Ｎ個のＴＤＣ回路ＴＤ１〜ＴＤＮの各々からは、１層目のＮ個のデジタル信号ＤＳ１〜ＤＳＮが出力され、ラッチ回路ＬＣ１〜ＬＣＮにラッチされる。１層目のデジタル信号ＤＳ１〜ＤＳＮの各々は、ニューラルネットワーク１００（図１）の出力Ｘ２１〜Ｘ２Ｎに対応している。Ｓ２０において、層数Ｙが１カウントアップされる。これにより、次の層の計算が開始される。
【００２６】
Ｓ３０において、Ｙ層目の隠れ層に対応するＹ番目の可変抵抗部を選択する。具体例として、２層目の隠れ層ＨＬ２に対応する可変抵抗部を選択する場合を説明する。抵抗制御回路ＲＣ１では、２層目の隠れ層ＨＬ２に対応する２番目の可変抵抗部ＶＲ１２が選択される。すなわち、不図示の選択回路によって、バイパススイッチＳＷ１２のみがオフとされ、バイパススイッチＳＷ１１およびＳＷ１３〜ＳＷ１Ｋがオンとされる。これにより、可変抵抗部ＶＲ１１およびＶＲ１３〜ＶＲ１Ｋがバイパスされる。その結果、可変抵抗部ＶＲ１２のみが、電源電圧ＶＤＤと電源入力端子ＶＴ１との間に接続される。なお、抵抗制御回路ＲＣ２〜ＲＣＮにおいても同様にして、２番目の可変抵抗部ＶＲ２２〜ＶＲＮ２が選択される。
【００２７】
Ｓ４０において、重み係数算出回路ＷＣは、Ｙ番目の可変抵抗部が備えるＮ個の可変抵抗素子の各々の抵抗値を設定するための重み情報を生成する。具体的には、ラッチ回路ＬＣ１〜ＬＣＮから出力されるデジタル信号ＬＳ１〜ＬＳＮに基づいて、所定の演算を行う。そして、抵抗制御回路ＲＣ１で選択されている可変抵抗部ＶＲ１２に対応した、重み情報ＷＩ２１１〜ＷＩ２Ｎ１を生成する。同様にして、抵抗制御回路ＲＣ２で選択されている可変抵抗部ＶＲ２２に対しても、重み情報ＷＩ２１２〜ＷＩ２Ｎ２を生成する。また同様にして、抵抗制御回路ＲＣＮで選択されている可変抵抗部ＶＲＮ２に対しても、重み情報ＷＩ２１Ｎ〜ＷＩ２ＮＮを生成する。
【００２８】
Ｓ５０において、Ｙ番目の可変抵抗部は、Ｎ個の可変抵抗素子の各々の抵抗値を個別に設定する。具体的には、Ｙ−１層目のＮ個のデジタル値、および、Ｙ−１層目のＮ個のデジタル値の各々に対応付けられているＮ個の重み係数に応じて、抵抗値を設定する。
【００２９】
具体例として、２層目の隠れ層ＨＬ２の演算を行う場合を説明する。代表例として、抵抗制御回路ＲＣ１（図４）において、隠れ層ＨＬ２に対応する可変抵抗部ＶＲ１２の抵抗値が設定される場合を説明する。ラッチ回路ＬＣ１には、１層目の演算器ＡＵ１１から出力された出力Ｘ２１がラッチされている。この出力Ｘ２１が「０」の場合は、出力スイッチＸＳ２１を「オフ」にする。これにより、可変抵抗素子ＶＥ２１は２層目の隠れ層ＨＬ２の計算に影響しない。一方、出力Ｘ２１が「１」の場合は、出力スイッチＸＳ２１を「オン」にする。そして、出力スイッチＸＳ２１と直列接続されている可変抵抗素子ＶＥ２１の抵抗値を、重み情報ＷＩ２１１に応じた抵抗値とする。具体的には、重み係数Ｗ２１１が大きいほど、可変抵抗素子ＶＥ２１の抵抗値を高くする。以下同様にして、出力スイッチＸＳ２２〜ＸＳ２Ｎの各々が、ラッチ回路ＬＣ２〜ＬＣＮのデジタル値に基づいてオンまたはオフされる。また、可変抵抗素子ＶＥ２２〜ＶＥ２Ｎの各々が、重み情報ＷＩ２２１〜ＷＩ２Ｎ１に応じた抵抗値に設定される。なお、抵抗制御回路ＲＣ２〜ＲＣＮ（図３）においても同様にして、隠れ層ＨＬ２に対応する可変抵抗部ＶＲ２２〜ＶＲＮ２の抵抗値が設定される。
【００３０】
Ｓ６０において、Ｎ個の遅延素子ＤＥ１〜ＤＥＮの各々は、Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行うことで、遅延時間を含んだ時間信号ＴＳ１〜ＴＳＮを出力する。
【００３１】
具体例として、２層目の隠れ層ＨＬ２の計算を行う場合における、遅延素子ＤＥ１の動作を説明する。なお、遅延素子ＤＥ２〜ＤＥＮの動作は、遅延素子ＤＥ１の動作と同様であるため、説明を省略する。遅延素子ＤＥ１は、電源入力端子ＶＴ１に入力される電圧が低くなるほど動作速度が遅くなり、遅延時間が長くなる特性を有している。そして２層目の隠れ層ＨＬ２の計算を行う場合には、可変抵抗部ＶＲ１２のみが、電源電圧ＶＤＤと電源入力端子ＶＴ１との間に接続されている。すると、可変抵抗部ＶＲ１２の合成抵抗が高くなるほど、電源入力端子ＶＴ１に入力される電圧が低くなるため、遅延素子ＤＥ１の遅延時間を長くすることができる。
【００３２】
可変抵抗部ＶＲ１２の合成抵抗の設定方法を説明する。前述したように、可変抵抗素子ＶＥ２１〜ＶＥ２Ｎの各々が、重み情報ＷＩ２１１〜ＷＩ２Ｎ１に応じた抵抗値に設定される。また、可変抵抗素子ＶＥ２１〜ＶＥ２Ｎのうち、「１」の値を有する出力Ｘ２１〜Ｘ２Ｎに対応する可変抵抗素子のみが、電源電圧ＶＤＤと電源入力端子ＶＴ１との間に接続される。ここで例えば、出力Ｘ２１〜Ｘ２Ｎのうち、出力Ｘ２１、Ｘ２３、Ｘ２Ｎのみが「１」である場合を説明する。この場合、可変抵抗素子ＶＥ２１、ＶＥ２３、ＶＥ２Ｎのみが、電源電圧ＶＤＤと電源入力端子ＶＴ１との間に接続される。すると、可変抵抗部ＶＲ１２の合成抵抗は、可変抵抗素子ＶＥ２１、ＶＥ２３、ＶＥ２Ｎの合成によって求まる。
【００３３】
この場合の遅延素子ＤＥ１の遅延時間を、図６のタイミングチャートを用いて説明する。遅延素子ＤＥ１に入力されるパルス信号ＰＳの立ち上がりエッジＥ１から、遅延素子ＤＥ１から出力される時間信号ＴＳ１の立ち下がりエッジＥ２までの時間を、遅延時間ＤＴとする。遅延時間ＤＴは、遅延素子ＤＥ１自体が備える遅延時間ＤＴ１と、可変抵抗素子ＶＥ２１、ＶＥ２３、ＶＥ２Ｎによって付加された遅延時間ＤＴ２１、ＤＴ２３、ＤＴ２Ｎと、を含んでいる。すなわち、遅延時間ＤＴは、遅延素子ＤＥ１自体が備えている遅延時間ＤＴ１に、可変抵抗素子に応じた遅延がすべて付加された時間となる。これにより、前述した式（１）の中間値Ｍを、遅延時間ＤＴ２１、ＤＴ２３、ＤＴ２Ｎの合計値である中間遅延時間ＤＭで求めることが可能となる。
【００３４】
Ｓ７０において、Ｎ個のＴＤＣ回路ＴＤ１〜ＴＤＮの各々は、入力される時間信号ＴＳ１〜ＴＳＮの各々を、時間しきい値Ｖｔｈと比較する。具体的には、時間しきい値Ｖｔｈが入力された時点よりも時間信号ＴＳＮの立ち上がりエッジが早い場合には、中間値Ｍが時間しきい値Ｖｔｈ以下であると判断され、デジタル信号ＤＳＮは「０」とされる。一方、時間しきい値Ｖｔｈが入力された時点よりも時間信号ＴＳＮの立ち上がりエッジが遅い場合には、中間値Ｍが時間しきい値Ｖｔｈより大きいと判断され、デジタル信号ＤＳＮは「１」とされる。これにより、Ｙ層目の隠れ層の計算が完了する。
【００３５】
図６のタイミングチャートを用いて、具体例を説明する。ＴＤＣ回路ＴＤ１には、遅延素子ＤＥ１から出力される時間信号ＴＳ１と、時間しきい値Ｖｔｈとが入力されている。時間しきい値ＶｔｈのエッジＥ３よりも時間信号ＴＳ１のエッジＥ２の方が早いため、デジタル信号ＤＳ１は「０」とされる（矢印Ｙ１）。
【００３６】
Ｓ８０において、最終層であるＫ層目の隠れ層の計算が完了したか否かが判断される。否定判断される場合（Ｓ８０：ＮＯ）にはＳ２０へ戻り、次の層の計算が開始される。一方、肯定判断される場合（Ｓ８０：ＹＥＳ）にはＳ９０へ進む。Ｓ９０において、出力層ＯＬが計算される。なお、出力層ＯＬでの計算内容や回路構成は、隠れ層ＨＬ１〜ＨＬＫの計算内容や回路構成と同様であるため、説明を省略する。
【００３７】
（効果）
比較例として、図７に示す従来の演算器２００を考える。演算器２００は、図２の演算器ＡＵ２１に対応する回路である。演算器２００では、Ｎ個の重み係数に対応させたＮ個のデジタル時間変換回路ＤＴＣ１〜ＤＴＣＮ、および、ＴＤＣ回路ＴＤ１が縦続接続されている。デジタル時間変換回路ＤＴＣは、１つのインバータと３つのＮＯＲ回路（不図示）を内部に備えるため、トランジスタ数は１４個である。すると、従来技術の演算器２００では、１つの演算器を構成するために１４×Ｎ［個］のトランジスタが必要となる。ニューラルネットワーク１００（図１）に示すように、Ｋ層の隠れ層の各々がＮ［個］の演算器を備える場合には、演算器はＫ×Ｎ［個］必要となる。するとトランジスタ数は、１４×Ｎ×Ｋ×Ｎ［個］となる。例えばＮ＝１０、Ｋ＝１０の場合には、トランジスタ数は１４０００個となる。
【００３８】
一方、実施例１に係る演算装置１では、図４に示すように、演算器ＡＵ２１に対応する回路は、遅延素子ＤＥ１（トランジスタ数＝２）および可変抵抗部ＶＲ１２（トランジスタ数＝Ｎ＋１）で実現できる。１つの演算器を構成するトランジスタ数を、１４×Ｎ［個］からＮ＋３［個］に大幅に低減することが可能となる。
【００３９】
また実施例１に係る演算装置１では、１つの遅延素子ＤＥ１およびＫ個の可変抵抗部ＶＲ１１〜ＶＲ１Ｋによって、Ｋ個の演算器ＡＵ１１〜ＡＵＫ１を実現できる。この場合のトランジスタ数は、Ｋ×（Ｎ＋１）＋２［個］となる。すると、Ｋ層の隠れ層の各々がＮ個の演算器を備える場合には、トランジスタ数は、Ｎ×（Ｋ×（Ｎ＋１）＋２）［個］となる。例えばＮ＝１０、Ｋ＝１０の場合には、トランジスタ数は１１２０個になる。前述した１４０００個から大幅に低減することが可能となる。
【００４０】
従来技術の演算器２００（図７）では、Ｎ個のデジタル時間変換回路ＤＴＣ１〜ＤＴＣＮが縦続接続されているため、Ｎ個の不図示のインバータが縦続接続されていることになる。前述したように、インバータ自身が遅延時間を備えているため、インバータの遅延時間のＮ倍の時間が、待機時間として発生してしまう。一方、実施例１に係る演算装置１では、１つの遅延素子ＤＥ１によって、Ｎ個の重み係数の演算を実現できる。図６に示したように、中間遅延時間ＤＭを演算するための待機時間は、１つのインバータの遅延時間ＤＴ１のみでよい。演算時間の短縮化が可能である。
【００４１】
なお、上述した抵抗制御回路ＲＣ１はアナログ回路である。従って、可変抵抗部ＶＲ１１〜ＶＲ１Ｋの合成抵抗値は、重み情報ＷＩ１１１〜ＷＩ１ＫＮに応じてリニアに変化するとは限らない。すなわち、図６で説明した中間遅延時間ＤＭは、式（１）で説明した中間値Ｍを厳密に表現したものにはならない。しかしながら、ニューラルネットワーク自体がフォールトトレラントなシステムであるため、このことはほとんど問題にならない。なお、抵抗制御回路ＲＣ２〜ＲＣＮについても同様である。
【実施例２】
【００４２】
（演算装置１ａの回路構成）
図８に、実施例２に係る演算装置１ａを示す。演算装置１ａ（図８）は、実施例１に係る演算装置１（図３）に比して、抵抗制御回路ＲＣ１〜ＲＣＮの各々の接続位置が異なっている。演算装置１ａ（図８）において、演算装置１（図３）と同様の部位には同一の符号を付すことで、説明を省略する。
【００４３】
抵抗制御回路ＲＣ１は、遅延素子ＤＥ１の出力端子とＴＤＣ回路ＴＤ１との間に接続されている。以下同様にして、抵抗制御回路ＲＣＮは、遅延素子ＤＥＮの出力端子とＴＤＣ回路ＴＤＮとの間に接続されている。遅延素子ＤＥ１には、パルス信号ＰＳが入力される。遅延素子ＤＥ１からは、遅延素子ＤＥ１自体が備える遅延時間ＤＴ１のみを含んだ反転信号ＩＳ１が出力される。反転信号ＩＳ１は抵抗制御回路ＲＣ１に入力され、抵抗制御回路ＲＣ１からは時間信号ＴＳ１が出力される。時間信号ＴＳ１は、遅延時間ＤＴ１に加えて、抵抗制御回路ＲＣ１によって定まる遅延時間（中間遅延時間ＤＭ）を含んだ時間信号である。以下同様にして、遅延素子ＤＥＮから出力される反転信号ＩＳＮは抵抗制御回路ＲＣＮに入力され、抵抗制御回路ＲＣＮからは時間信号ＴＳＮが出力される。抵抗制御回路ＲＣ１〜ＲＣＮの内部構造および動作は、実施例１で説明した内容と同様であるため、説明を省略する。
【００４４】
（演算装置１ａの動作）
演算装置１ａの動作は、実施例１の演算装置１の動作（図５）と同様である。以下に、異なる部分のみ説明する。Ｓ６０において、遅延素子ＤＥ１は、Ｙ番目の可変抵抗部の抵抗値に基づいてＹ層目の隠れ層の計算を行うことで、遅延時間を含んだ時間信号ＴＳ１を出力する。遅延素子ＤＥ１は、出力端子に接続されている抵抗成分が大きくなるほどＲＣ時定数が大きくなるため、遅延時間が長くなる特性を有している。そして例えば、２層目の隠れ層ＨＬ２の計算を行う場合には、可変抵抗部ＶＲ１２のみが、遅延素子ＤＥ１の出力端子とＴＤＣ回路ＴＤ１との間に接続される（Ｓ３０）。すると、可変抵抗部ＶＲ１２の合成抵抗が高くなるほど、遅延素子ＤＥ１の出力端子のＲＣ時定数が大きくなるため、遅延素子ＤＥ１の遅延時間を長くすることができる。なお、遅延素子ＤＥ２〜ＤＥＮの動作は、遅延素子ＤＥ１の動作と同様であるため、説明を省略する。
【００４５】
演算装置１ａにおいても、実施例１の演算装置１と同様にして、トランジスタ数を削減できる効果や、演算時間を短縮化できる効果が得られる。
【実施例３】
【００４６】
（抵抗制御回路ＲＣ１ａの内部構造）
図９に、実施例３に係る抵抗制御回路ＲＣ１ａの内部構造を示す。抵抗制御回路ＲＣ１ａ（図９）は、実施例１に係る抵抗制御回路ＲＣ１（図４）に比して、可変抵抗素子および出力スイッチの接続形態が異なっている。抵抗制御回路ＲＣ１ａ（図９）において、抵抗制御回路ＲＣ１（図４）と同様の部位には同一の符号を付すことで、説明を省略する。
【００４７】
抵抗制御回路ＲＣ１ａは、Ｋ層の隠れ層の各々に対応しているＫ個の可変抵抗部ＶＲ１１ａ〜ＶＲ１Ｋａを備える。また、可変抵抗部ＶＲ１１ａ〜ＶＲ１Ｋａの各々に対応しているＫ個のバイパススイッチＳＷ１１ａ〜ＳＷ１Ｋａを備える。可変抵抗部ＶＲ１１ａは、Ｍ個の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍを備えている。またＭ個の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々に対応する、Ｍ個の出力スイッチＸＳ１１〜ＸＳ１Ｍを備えている。Ｍ個の可変抵抗素子ＶＥ１１〜ＶＥ１ＭおよびバイパススイッチＳＷ１１ａは、電源電圧ＶＤＤと電源入力端子ＶＴ１との間に直列に接続されている。また出力スイッチＸＳ１１〜ＸＳ１Ｍの各々は、可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々に並列に接続されている。
【００４８】
同様にして、可変抵抗部ＶＲ１Ｋａは、Ｎ個の可変抵抗素子ＶＥＫ１〜ＶＥＫＮを備えている。またＮ個の可変抵抗素子ＶＥＫ１〜ＶＥＫＮの各々に並列に接続される、Ｎ個の出力スイッチＸＳＫ１〜ＸＳＫＮを備えている。
【００４９】
可変抵抗部ＶＲ１１ａには、Ｍ個の重み情報ＷＩ１１１〜ＷＩ１Ｍ１が入力される。Ｍ個の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々の抵抗値は、重み情報ＷＩ１１１〜ＷＩ１Ｍ１に基づいて、個別に制御される。同様にして、可変抵抗部ＶＲ１Ｋａには、Ｎ個の重み情報ＷＩＫ１１〜ＷＩＫＮ１が入力される。Ｎ個の可変抵抗素子ＶＥＫ１〜ＶＥＫＮの各々の抵抗値は、重み情報ＷＩＫ１１〜ＷＩＫＮ１に基づいて、個別に制御される。
【００５０】
なお、実施例１に係る抵抗制御回路ＲＣ２ａ〜ＲＣＮａ（図３）の各々の内部構造も、図９の抵抗制御回路ＲＣ１ａの内部構造と同様に変更すればよい。よって、説明を省略する。
【００５１】
（抵抗制御回路ＲＣ１ａの動作）
抵抗制御回路ＲＣ１ａの動作は、実施例１の抵抗制御回路ＲＣ１の動作（図５）と同様である。以下に、異なる部分のみ説明する。Ｓ５０において、Ｙ番目の可変抵抗部は、Ｎ個の可変抵抗素子の各々の抵抗値を個別に設定する。具体例として、２層目の隠れ層ＨＬ２の演算を行う場合を説明する。代表例として、抵抗制御回路ＲＣ１ａ（図９）において、隠れ層ＨＬ２に対応する可変抵抗部ＶＲ１２ａの抵抗値が設定される場合を説明する。
【００５２】
ラッチ回路ＬＣ１には、１層目の演算器ＡＵ１１から出力された出力Ｘ２１がラッチされている。この出力Ｘ２１が「０」の場合は、出力スイッチＸＳ２１を「オン」にする。これにより、可変抵抗素子ＶＥ２１がバイパスされるため、２層目の隠れ層ＨＬ２の計算に影響しない。一方、出力Ｘ２１が「１」の場合は、出力スイッチＸＳ２１を「オフ」にする。これにより可変抵抗素子ＶＥ２１が、電源電圧ＶＤＤと電源入力端子ＶＴ１との間に直列に接続される。そして、可変抵抗素子ＶＥ２１の抵抗値を、重み情報ＷＩ２１１に応じた抵抗値とする。以下同様にして、出力スイッチＸＳ２２〜ＸＳ２Ｎの各々が、ラッチ回路ＬＣ２〜ＬＣＮのデジタル値に基づいてオフまたはオンされる。また、可変抵抗素子ＶＥ２２〜ＶＥ２Ｎの各々が、重み情報ＷＩ２２１〜ＷＩ２Ｎ１に応じた抵抗値に設定される。
【００５３】
抵抗制御回路ＲＣ１ａ（図９）においても、実施例１の抵抗制御回路ＲＣ１（図４）と同様にして、可変抵抗部ＶＲ１１ａ〜ＶＲ１Ｋａの各々の合成抵抗値を、重み情報ＷＩ１１１〜ＷＩＫＮ１に応じた抵抗値に設定することができる。
【００５４】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【００５５】
（変形例１）
図４に示す抵抗制御回路ＲＣ１の内部構造は一例であり、様々な回路構成が可能である。例えば、可変抵抗部ＶＲ１１のＭ個の出力スイッチＸＳ１１〜ＸＳ１Ｍを省略してもよい。この場合、可変抵抗部ＶＲ１１の可変抵抗素子ＶＥ１１〜ＶＥ１Ｍの各々は、電源電圧ＶＤＤと可変抵抗部ＶＲ１２との間にスイッチを介さずに接続される。以下同様に、可変抵抗部ＶＲ１ＫのＮ個の出力スイッチＸＳＫ１〜ＸＳＫＮを省略してもよい。
【００５６】
変形例１における抵抗制御回路ＲＣ１の、Ｓ５０での動作を説明する。代表例として、隠れ層ＨＬ２に対応する可変抵抗部ＶＲ１２の抵抗値が設定される場合を説明する。ラッチ回路ＬＣ１にラッチされている出力Ｘ２１が「０」の場合は、可変抵抗素子ＶＥ２１を「高抵抗」状態にする。これにより、出力スイッチＸＳ２１を備える場合に、出力スイッチＸＳ２１を「オフ」にすることと同様の効果が得られる。一方、出力Ｘ２１が「１」の場合は、可変抵抗素子ＶＥ２１の抵抗値を、重み情報ＷＩ２１１に応じた抵抗値とする。以下同様にして、可変抵抗素子ＶＥ２２〜ＶＥ２Ｎの各々が、ラッチ回路ＬＣ２〜ＬＣＮのデジタル値に基づいて「高抵抗」状態または「重み情報に応じた抵抗値」状態にされる。なお、抵抗制御回路ＲＣ２〜ＲＣＮにおいても同様にして、出力スイッチを省略することができる。変形例１における抵抗制御回路ＲＣ１〜ＲＣＮでは、出力スイッチを省略することができるため、回路面積をさらに縮小することが可能となる。
【００５７】
また変形例１では、さらに、バイパススイッチＳＷ１１〜ＳＷ１Ｋの各々を可変抵抗素子に置換することができる。この場合、可変抵抗素子を「高抵抗」状態にすることで、バイパススイッチを「オフ」にすることと同様の効果が得られる。また可変抵抗素子を「低抵抗」状態にすることで、バイパススイッチを「オン」にすることと同様の効果が得られる。
【００５８】
（変形例２）
図９に示す抵抗制御回路ＲＣ１ａの内部構造は一例であり、様々な回路構成が可能である。例えば、可変抵抗部ＶＲ１１ａのＭ個の出力スイッチＸＳ１１〜ＸＳ１Ｍを省略してもよい。以下同様に、可変抵抗部ＶＲ１ＫａのＮ個の出力スイッチＸＳＫ１〜ＸＳＫＮを省略してもよい。
【００５９】
変形例２における抵抗制御回路ＲＣ１ａの、Ｓ５０での動作を説明する。代表例として、隠れ層ＨＬ２に対応する可変抵抗部ＶＲ１２ａの抵抗値が設定される場合を説明する。ラッチ回路ＬＣ１にラッチされている出力Ｘ２１が「０」の場合は、可変抵抗素子ＶＥ２１を「低抵抗」状態にする。これにより、出力スイッチＸＳ２１を備える場合に、出力スイッチＸＳ２１を「オン」にすることと同様の効果が得られる。一方、出力Ｘ２１が「１」の場合は、可変抵抗素子ＶＥ２１の抵抗値を、重み情報ＷＩ２１１に応じた抵抗値とする。以下同様にして、可変抵抗素子ＶＥ２２〜ＶＥ２Ｎの各々が、ラッチ回路ＬＣ２〜ＬＣＮのデジタル値に基づいて「低抵抗」状態または「重み情報に応じた抵抗値」状態にされる。なお、抵抗制御回路ＲＣ２ａ〜ＲＣＮａにおいても同様にして、出力スイッチを省略することができる。変形例２における抵抗制御回路ＲＣ１ａ〜ＲＣＮａでは、出力スイッチを省略することができるため、回路面積をさらに縮小することが可能となる。
【００６０】
また変形例２では、さらに、バイパススイッチＳＷ１１ａ〜ＳＷ１Ｋａの各々を可変抵抗素子に置換することができる。この場合、可変抵抗素子を「高抵抗」状態にすることで「オフ」状態とし、可変抵抗素子を「低抵抗」状態にすることで「オン」にすることができる。
【００６１】
（変形例３）
実施例２と３の技術を組み合わせることも可能である。すなわち、実施例２（図８）の抵抗制御回路ＲＣ１〜ＲＣＮの各々の内部構造を、実施例３で説明した抵抗制御回路ＲＣ１ａ（図９）と同様の構造にしてもよい。
【００６２】
（変形例４）
実施例１の抵抗制御回路ＲＣ１（図４）では、１層目の隠れ層に対応する可変抵抗部ＶＲ１１は入力層ＩＬに対応してＭ個の可変抵抗素子を備え、２層目以降の隠れ層に対応する可変抵抗部ＶＲ１２〜ＶＲ１Ｋは遅延素子に対応してＮ個の可変抵抗素子を備える形態を説明した。しかし、可変抵抗素子の数は、自由に設定することができる。例えば、可変抵抗部ＶＲ１１〜ＶＲ１Ｋの各々が、共通のＬ個の可変抵抗素子を備えていてもよい。Ｌの値は、入力部の数および遅延素子の数以上となるように定めればよい。Ｌの値が遅延素子数より大きい場合には、使用しない遅延素子を設定すればよい。これにより、隠れ層の１層あたりの演算器を自由に設定することが可能となる。ニューラルネットワーク１００の構成の自由度を高めることができる。
【００６３】
ＳＷ１１〜ＳＷＮＫは、選択部の一例である。
【符号の説明】
【００６４】
１：演算装置    ＡＵＫ１〜ＡＵＫＮ：演算器    Ｘ１１〜ＸＫＮ：出力    ＤＥ１〜ＤＥＮ：遅延素子    ＲＣ１〜ＲＣＮ：抵抗制御回路    ＴＤ１〜ＴＤＮ：ＴＤＣ回路    ＬＣ１〜ＬＣＮ：ラッチ回路    ＷＣ：重み係数算出回路    ＶＣ：しきい値生成回路    ＩＰ：入力パルス生成回路    ＶＲ１１〜ＶＲ１Ｋ：可変抵抗部    ＳＷ１１〜ＳＷ１Ｋ：バイパススイッチ
【図１】
2020149340.tif 000003
【図２】
2020149340.tif 000004
【図３】
2020149340.tif 000005
【図４】
2020149340.tif 000006
【図５】
2020149340.tif 000007
【図６】
2020149340.tif 000008
【図７】
2020149340.tif 000009
【図８】
2020149340.tif 000010
【図９】
2020149340.tif 000011