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

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

▶ 株式会社ソリトンシステムズの特許一覧

特許7274070非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法
<>
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図1
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図2
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図3
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図4
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図5
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図6
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図7
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図8
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図9
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図10
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図11
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図12
  • 特許-非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-05-02
(45)【発行日】2023-05-15
(54)【発明の名称】非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法
(51)【国際特許分類】
   G06G 7/12 20060101AFI20230508BHJP
   G06G 7/24 20060101ALI20230508BHJP
   G06G 7/60 20060101ALI20230508BHJP
   G06N 3/063 20230101ALI20230508BHJP
【FI】
G06G7/12
G06G7/24
G06G7/60
G06N3/063
【請求項の数】 14
(21)【出願番号】P 2023507220
(86)(22)【出願日】2022-12-23
(86)【国際出願番号】 JP2022047733
【審査請求日】2023-01-31
(31)【優先権主張番号】P 2021210012
(32)【優先日】2021-12-23
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】591071230
【氏名又は名称】株式会社ソリトンシステムズ
(74)【代理人】
【識別番号】100115716
【弁理士】
【氏名又は名称】山本 隆雄
(72)【発明者】
【氏名】林 輝彦
(72)【発明者】
【氏名】橋元 謙一
(72)【発明者】
【氏名】梶原 邦弘
(72)【発明者】
【氏名】高村 和久
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2009-187497(JP,A)
【文献】特開2000-57241(JP,A)
【文献】特開2021-185479(JP,A)
【文献】国際公開第2014/041858(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06G7/12-7/60
G06N3/02-3/067
(57)【特許請求の範囲】
【請求項1】
所定の非線形特性に従って内部の物理量が自律的に変化する非線形動作部と、
前記所定の非線形特性を示す定数を用いて入力信号を時間情報に変換する入力変換部と、
前記非線形動作部を初期化後、前記入力変換部に前記入力信号が入力された時点で前記非線形動作部の前記物理量の変化を開始させ、前記時間情報の経過後に前記非線形動作部の前記物理量の変化を停止させる制御を行う制御部と、
前記物理量の変化が停止した時点での前記物理量を所定の非線形関数の演算結果として出力する演算結果出力部と、
を備える非線形関数演算装置。
【請求項2】
前記演算結果出力部は、前記停止した物理量を記憶するレジスタと、前記レジスタに記憶された前記物理量を標本化して前記所定の非線形関数の演算結果として出力する
標本化器と、を備える
請求項1に記載の非線形関数演算装置。
【請求項3】
前記所定の非線形特性は、過渡特性であり、
前記定数は、前記過渡特性の時定数である
請求項1に記載の非線形関数演算装置。
【請求項4】
前記非線形動作部は、蓄積された電荷の放電時に前記過渡特性に従って電圧が変化する第1の電荷蓄積部を有し、
前記入力変換部は、前記第1の電荷蓄積部の静電容量に比例する前記時定数を用いて、前記入力信号を前記時間情報に変換し、
前記制御部は、前記初期化として前記第1の電荷蓄積部に電荷を蓄積させ、前記入力変換部に前記入力信号が入力された時点で前記第1の電荷蓄積部に蓄積された前記電荷を放電させて前記第1の電荷蓄積部の前記電圧の変化を開始させ、前記時間情報の経過後に前記第1の電荷蓄積部の前記電荷の放電を停止させて前記第1の電荷蓄積部の前記電圧の変化を停止させる制御を行い、
前記演算結果出力部は、前記電圧の変化が停止した時点での前記第1の電荷蓄積部の前記電圧を、所定の数を底とする指数関数の逆数の演算結果として出力する
請求項3に記載の非線形関数演算装置。
【請求項5】
前記非線形動作部は、負荷抵抗を更に有し、前記初期化によって前記第1の電荷蓄積部に前記電荷が蓄積され、前記入力変換部に前記入力信号が入力された時点で、前記第1の電荷蓄積部と前記負荷抵抗とを並列に接続して前記第1の電荷蓄積部の前記電圧の変化を開始し、前記時間情報の経過後に前記第1の電荷蓄積部と前記負荷抵抗とを切り離すことで前記第1の電荷蓄積部の前記電圧の変化を停止する
請求項4に記載の非線形関数演算装置。
【請求項6】
前記入力信号の標本化周波数をfs、
前記入力信号の最大値をxmax、
前記第1の電荷蓄積部の静電容量をCm、
前記負荷抵抗の抵抗値をR1、
とした場合に、
fs<1/(Cm・R1・xmax)を満たす
請求項5に記載の非線形関数演算装置。
【請求項7】
前記非線形動作部は、第2の電荷蓄積部を更に有し、前記初期化によって前記第1の電荷蓄積部に前記電荷が蓄積され、前記入力変換部に前記入力信号が入力された時点で、前記第1の電荷蓄積部と前記第2の電荷蓄積部とを並列に接続して前記第1の電荷蓄積部の前記電圧の変化を開始し、前記時間情報に基づく時点に達するまでの間、前記第2の電荷蓄積部を前記第1の電荷蓄積部から切り離して前記第2の電荷蓄積部に蓄積された前記電荷を放電し、前記第1の電荷蓄積部と前記第2の電荷蓄積部とを再び並列に接続する切替操作を繰り返し実行し、前記時間情報に基づく時点に達した段階で前記切替操作の繰り返しを停止することで前記第1の電荷蓄積部の前記電圧の変化を停止する
請求項4に記載の非線形関数演算装置。
【請求項8】
前記入力信号の標本化周波数をfs、
前記入力信号の最大値をxmax、
前記第1の電荷蓄積部の静電容量をCm、
前記第2の電荷蓄積部の静電容量をCs、
前記切替操作の切り替え周波数をfsw、
とした場合に、
fs<Cs・fsw/(Cm・xmax)を満たす
請求項7に記載の非線形関数演算装置。
【請求項9】
請求項1から請求項8のいずれか1項に記載の非線形関数演算装置と、
前記非線形関数演算装置の出力値と自然数1とを加算する加算器と、
前記加算器の出力値の逆数を演算することでシグモイド関数の演算値を得る第1の演算器と、
を備えるシグモイド関数演算装置。
【請求項10】
信号を2倍に演算する第1の演算器と、
前記第1の演算器の演算値を前記入力信号とする請求項1から請求項8のいずれか1項に記載の非線形関数演算装置と、
自然数1から前記非線形関数演算装置の演算値を引いた値を演算する第2の演算器と、
自然数1と前記非線形関数演算装置の演算値とを加算する加算器と、
前記第2の演算器の演算値を前記加算器の演算値で除した値を演算することで双曲線正接関数の演算値を得る第3の演算器と、
を備える双曲線正接関数演算装置。
【請求項11】
m個の信号xk(kは1からmまでの自然数)の中から最大値を検出する最大値検出器と、
前記最大値検出器の検出値からm個の信号xkをそれぞれ引く演算をする第1の演算器と、
前記第1の演算器のm個の演算値をそれぞれ前記入力信号とする請求項1から請求項8のいずれか1項に記載の非線形関数演算装置と、
前記非線形関数演算装置のm個の演算値の総和を演算する総和演算器と、
前記非線形関数演算装置のm個の演算値のそれぞれを前記総和演算器の演算値で除した値を演算することでソフトマックス関数のm個の演算値を得る第2の演算器と、
を備えるソフトマックス関数演算装置。
【請求項12】
前記所定の非線形特性は、振動特性であり、
前記定数は、前記振動特性の固有周波数に関連する値である
請求項1に記載の非線形関数演算装置。
【請求項13】
前記非線形動作部は、インダクタと、スイッチ素子を介して前記インダクタに並列に接続されたキャパシタと、を有し、
前記入力変換部は、前記固有周波数に関連する値を用いて、前記入力信号を前記時間情報に変換し、
前記制御部は、前記初期化として前記スイッチ素子をオフにして前記キャパシタに電荷を蓄積させ、前記入力変換部に前記入力信号が入力された時点で前記スイッチ素子をオンにすることで前記キャパシタの電圧の変化を開始させ、前記時間情報の経過後に前記スイッチ素子をオフにして前記キャパシタの前記電圧の変化を停止させる制御を行い、
前記演算結果出力部は、前記電圧の変化が停止した時点での前記キャパシタの前記電圧を、所定の単振動関数の演算結果として出力する
請求項12に記載の非線形関数演算装置。
【請求項14】
入力変換部が、所定の非線形特性を示す定数を用いて入力信号を時間情報に変換し、
制御部が、前記所定の非線形特性に従って内部の物理量が自律的に変化する非線形動作部を初期化後、前記入力信号が入力された時点で前記非線形動作部の前記物理量の変化を開始させ、前記時間情報の経過後に前記非線形動作部の前記物理量の変化を停止させる制御を行い、
演算結果出力部が、前記物理量の変化が停止した時点での前記物理量を所定の非線形関数の演算結果として出力する
非線形関数演算方法。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、非線形関数演算装置、シグモイド関数演算装置、双曲線正接関数演算装置、ソフトマックス関数演算装置及び非線形関数演算方法に関する。
【背景技術】
【0002】
従来、ニューラルネットワークを構成するニューロン素子は、重み付けされた入力信号の総和を求めて、この総和を入力とした活性化関数を用いて出力信号を演算する。活性化関数とは、各ニューロン素子の出力形式を決定するための関数であって、通常は非線形関数が用いられる。代表的な非線形活性化関数としては、シグモイド関数、双曲線正接関数、ソフトマックス関数がある。
【0003】
シグモイド関数の演算装置については、2個のトランジスタからなる差動増幅器のそれぞれの出力信号を用いて所定の演算を行うことでシグモイド関数を演算する回路が開示されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平9-305687号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、従来技術の問題を解決するために提案されたものである。
【課題を解決するための手段】
【0006】
本発明の一態様である非線形関数演算装置は、所定の非線形特性に従って内部の物理量が自律的に変化する非線形動作部と、前記所定の非線形特性を示す定数を用いて入力信号を時間情報に変換する入力変換部と、前記非線形動作部を初期化後、前記入力変換部に前記入力信号が入力された時点で前記非線形動作部の前記物理量の変化を開始させ、前記時間情報の経過後に前記非線形動作部の前記物理量の変化を停止させる制御を行う制御部と、前記物理量の変化が停止した時点での前記物理量を所定の非線形関数の演算結果として出力する演算結果出力部と、を備える。
【0007】
本発明の一態様である非線形関数演算方法は、入力変換部が、所定の非線形特性を示す定数を用いて入力信号を時間情報に変換し、制御部が、前記所定の非線形特性に従って内部の物理量が自律的に変化する非線形動作部を初期化後、前記入力信号が入力された時点で前記非線形動作部の前記物理量の変化を開始させ、前記時間情報の経過後に前記非線形動作部の前記物理量の変化を停止させる制御を行い、演算結果出力部が、前記物理量の変化が停止した時点での前記物理量を所定の非線形関数の演算結果として出力する。
【発明の効果】
【0008】
本発明によれば、簡易な回路構成で消費電力を抑え、かつ、安定して高い精度の非線形関数演算結果が得られる。
【図面の簡単な説明】
【0009】
図1】非線形関数演算装置の構成を示すブロック図である。
図2】非線形関数演算装置の演算処理を示すフローチャートである。
図3】非線形動作部の一例を示す回路図である。
図4】非線形動作部の過渡特性を示す図である。
図5】非線形関数演算装置に入力信号として余弦波に基づく信号が入力された場合の演算結果を示す図である。
図6】非線形動作部の一例を示す回路図である。
図7】スイッチの切り替え回数nと正規化された出力電圧Vout/Vとの関係を示す図である。
図8】シグモイド関数演算装置を示す図である。
図9】双曲線正接関数演算装置を示す図である。
図10】ソフトマックス関数演算装置を示す図である。
図11】非線形動作部の一例を示す回路図である。
図12】非線形動作部の振動特性を示す図である。
図13】非線形関数演算装置に入力信号として余弦波に基づく信号が入力された場合の演算結果を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
[第1の実施形態]
図1は、第1の実施形態に係る非線形関数演算装置1の構成を示すブロック図である。非線形関数演算装置1は、入力変換部11と、制御部12と、非線形動作部13と、演算結果出力部14と、を備えている。
【0011】
入力変換部11は、標本化器11-1を有する。また演算結果出力部14は、レジスタ14-1及び標本化器14-2を有する。
【0012】
入力変換部11は、入力信号を受信し、当該入力信号を時間情報に変換する。入力信号は、連続的な信号であっても、離散的な信号であってもよい。なお入力信号が連続的な信号である場合は、入力信号は、標本化器11-1を用いて離散的な信号に標本化された後に、当該時間情報に変換される。
【0013】
制御部12は、不図示の内部タイマーを有しており、非線形動作部13の初期化完了後であって、入力変換部11に入力信号が入力された時点から計時を開始する。そして、制御部12は、入力変換部11から供給される時間情報に基づいて、非線形動作部13を制御したり、演算結果出力部14を制御したりする。
【0014】
非線形動作部13は、制御部12の制御に基づき初期化される。非線形動作部13は、初期化後、所定の非線形特性に従って物理量を変化させる。また、非線形動作部13は、当該物理量が変化している際に、制御部12から所定の制御があった時点で、当該物理量の変化を停止する。
【0015】
演算結果出力部14は、制御部12の指示に従い、非線形動作部13の物理量を測定して、測定結果を所定の非線形関数の演算結果として出力する。また、演算結果出力部14は、必要に応じて、レジスタ14-1を用いて測定結果を所定時間保持したり、標本化器14-2を用いてその測定結果を再標本化したりする。
【0016】
図2は、非線形関数演算装置1の演算処理を示すフローチャートである。
ステップS1では、非線形関数演算装置1の制御部12は、非線形動作部13を初期化する。これにより、非線形動作部13は、内部の物理量を初期状態にする。
【0017】
ステップS2では、入力変換部11は、入力信号の有無を確認して、入力信号があるまで待機して、入力信号があるとステップS3へ進む。
【0018】
ステップS3では、入力変換部11は、入力信号に所定の変換処理を行って、当該入力信号を時間情報に変換して、制御部12へ供給する。なお、入力変換部11は、入力信号が連続的に変化するアナログ信号である場合、標本化器11-1を用いて所定の標本化周波数に基づいて標本化して当該所定の変換処理を実行する。
【0019】
ステップS4では、制御部12は、入力変換部11から時間情報が供給されると、非線形動作部13に対して物理量の変化の開始を指示する。これにより、非線形動作部13の物理量は、所定の非線形特性に従って変化する。
【0020】
ステップS5では、制御部12は、入力変換部11から供給された時間情報に基づき、非線形動作部13の動作を停止させるか否かを判定し、肯定判定になるまで待機する。そして、制御部12は、肯定判定になると、非線形動作部13の動作を停止させる。これにより、非線形動作部13の物理量の変化が停止する。
【0021】
ステップS6では、制御部12は、演算結果出力部14に非線形動作部13の物理量を測定させる。演算結果出力部14は、その測定結果を所定の非線形関数の演算結果として出力する。そして、再びステップS1に戻る。
【0022】
なおステップS6においては、演算結果出力部14は、必要に応じて、レジスタ14-1に測定結果を所定時間保持し、非線形動作部13の物理量の変化から独立して、当該保持した測定結果を出力してもよい。さらに、演算結果出力部14は、標本化器14-2を用いて、レジスタ14-1に保持された当該測定結果を再標本化して出力してもよい。
【0023】
図3は、非線形動作部13の一例を示す回路図である。非線形動作部13は、スイッチSW1と、スイッチSW2と、抵抗R,Rと、キャパシタCと、を備えている。なお、抵抗Rは負荷抵抗であり、抵抗Rは電流制限抵抗である。
【0024】
スイッチSW1の一端は、電源Vに接続されている。スイッチSW1の他端は、抵抗Rを介して、出力端子VOUT、スイッチSW2の一端、キャパシタCの正極端子に接続されている。スイッチSW2の他端は、抵抗Rの一端に接続されている。抵抗Rの他端は接地されている。キャパシタCの負極端子は接地されている。スイッチSW1及びスイッチSW2は、図1に示す制御部12によってオン/オフされる。
【0025】
図3に示す非線形動作部13は、RC並列回路として構成されている。非線形動作部13の過渡特性は、式(1)の通りであり、自然指数関数の逆数になっている。
out/V=exp(-t/(C))=exp(-x) (1)
【0026】
ここで、時間情報tは、入力信号xと当該RC並列回路の時定数Cと用いて、式(2)で与えられる。
t=C・x (2)
【0027】
図4は、図3に示す非線形動作部13の過渡特性を示す図である。なお、横軸は式(2)で時間情報tと関連付けられた入力信号xであり、縦軸は電源電圧Vで正規化された出力電圧(Vout/V)である。
【0028】
制御部12は、初期化処理として、スイッチSW1をオンに、スイッチSW2をオフにする。これにより、電源Vsは、抵抗Rを介して、キャパシタCに電荷を供給する。その結果、キャパシタCが電源Vsによって充電される。
入力変換部11は、入力信号xを検出後、式(2)を用いて、入力信号xを時間情報tに変換する。
【0029】
次に、制御部12は、内蔵タイマーをセットして計数を開始した後、スイッチSW1をオフ、スイッチSW2をオンにする。これにより、キャパシタCに蓄積された電荷が抵抗Rを通じて放電される。
制御部12は、内蔵タイマーによる計数が式(2)で得られた時間情報tに到達した時点で、スイッチSW2をオフにする。なお、スイッチSW1はオフのままである。
【0030】
演算結果出力部14は、非線形動作部13の出力電圧Voutを測定し、この測定値を式(1)に基づく非線形関数の演算結果として外部に出力する。なお、演算結果出力部14は、非線形動作部13の状態如何にかかわらず、出力電圧Voutの測定値をレジスタ14-1に保持してもよい。また、演算結果出力部14は、レジスタ14-1で保持した出力電圧Voutの測定値を、標本化器14-2を用いて所定の周波数に基づいて再標本化の上、離散化情報として出力してもよい。
【0031】
なお、ここでは、入力信号xが0以上であることを前提としたが、入力信号xが0未満の場合は、出力電圧Voutの測定値の逆数を求めればよい。
【0032】
いま、入力信号x≧0に対して、非線形関数である自然指数関数の逆数e-xを次のように定義する。
EX(x)=e-x (x≧0) (3)
【0033】
この場合、任意の入力信号xに対して、自然指数関数の逆数e-xは次のようになる。
-x =EX(x) (x≧0)
=1/(EX(-|x|))(x<0) (4)
【0034】
図5は、非線形関数演算装置1に、入力信号xとして余弦波に基づく信号が入力された場合の演算結果を示す図である。具体的には、入力信号xは、-1.0~1.0の範囲に規格化された余弦波(周期T)に基づいて、任意の時間間隔で標本化された信号である。
【0035】
なお、演算結果出力部14は、非線形動作部13から新たな入力信号xに対する演算結果が得られるまでの間、前回の入力信号xに対する演算結果をレジスタ14-1で保持し、標本化器14-2を用いてT/16周期で再標本化した結果を出力信号yとして出力する。また、非線形動作部13の寄生容量などに伴う処理遅延などは無視する。
【0036】
t=0では、入力信号はx=1.0である。これより、入力信号xの入力からC遅れた時点t=Cで、演算結果y=e-1.0が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0037】
t=3T/24では、入力信号はx=1/√2である。これより、入力信号xの入力からC/√2遅れた時点t=3T/24+C/√2で、演算結果y=e-1/√2が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0038】
t=8T/24では、入力信号はx=-0.5である。これより、入力信号xの入力からC/2遅れた時点t=8T/24+C/2で、演算結果y=e0.5が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0039】
t=12T/24では、入力信号はx=-1.0である。これより、入力信号xの入力からC遅れた時点t=12T/24+Cで、演算結果y=e1.0が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0040】
t=15T/24では、入力信号はx=-1/√2である。これより、入力信号xの入力からC/√2遅れた時点t=15T/24+C/√2で、演算結果y=e1/√2が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0041】
t=20T/24では、入力信号はx=0.5である。これより、入力信号xの入力からC/2遅れた時点t=20T/24+C/2で、演算結果y=e-0.5が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0042】
t=24T/24では、入力信号x=1.0である。これより、入力信号xの入力からC遅れた時点t=24T/24+Cで、演算結果y=e-1.0が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0043】
図5から明らかなように、非線形関数演算装置1においては、入力信号が任意の時間間隔で標本化された信号である場合、それらの入力時間間隔は、非線形動作部13が有する時定数Cよりも十分に長くする必要がある。同様に、入力信号が連続したアナログ信号である場合、標本化器11-1を用いてアナログ信号を標本化する際の標本化周期は、非線形動作部13が有する時定数Cよりも十分に長くすることが求められる。
【0044】
具体的には、入力信号xの最大値をxmaxとおくと、入力信号xが任意の時間間隔で標本化された信号である場合、非線形動作部13は、動作開始(放電開始)からC・xmaxの期間では、次の信号入力を受け付けない。よって、それらの入力時間間隔は、C・xmaxよりも長くする必要がある。また、入力信号xが連続したアナログ信号である場合、これは、入力信号xに対する標本化器11-1の標本化周波数fが式(5)を満たす必要があることと等価である。
【0045】
<1/(C・xmax) (5)
【0046】
なお、標本化器14-2を用いた出力時の再標本化において、標本化器14-2の再標本化周波数frsは、入力信号xに対する標本化周波数fよりも十分に大きいことが求められる。例えば、図5の期間t=0~T/8において、t=0の入力信号x=1.0の演算結果が得られるのはt=C以降となる。
【0047】
一方、t=T/8では、新たな入力信号が入力されるが、仮に、この入力信号がx=0.0であった場合、演算結果y=1.0は遅延なく得られることとなる。これより、t=0での入力信号xの演算結果が得られるのは、期間t=C~T/8の範囲に限定される。このことから、t=0での入力信号xの演算結果yを得るためには、この期間内に少なくとも1回の再標本化を実施する必要がある。
【0048】
これを一般化すると次の通りになる。標本化器11-1による入力信号の標本化周期(入力時間間隔)を1/fとした場合、その1周期内において最長C・xmaxの期間は演算中で、信号出力が遅延し、実際に演算結果が得られるのは(1/f)-C・xmaxの期間に限定される。従って、その期間内に少なくとも1回の再標本化が標本化器14-2によって実施されるためには、再標本化周波数frsは式(6)を満たす必要がある。
【0049】
rs>1/((1/f)-C・xmax) (6)
【0050】
なお、ニューラルネットワークにおいては、ある層に含まれる全てのニューロン素子の出力が揃った段階で、次の層のニューロン素子での処理が実施される。換言すれば、各層でのニューロン素子の動作は同期されている。これより式(5)は、各々のニューロン素子で非線形関数演算装置1を利用するための制約条件にもなる。
【0051】
[第2の実施形態]
つぎに、第2の実施形態について説明する。なお、第1の実施形態と同じ部位には同じ符号を付し、その詳細な説明は省略する。第2の実施形態では、図1に示す非線形動作部13の他の一例として、図6に示す非線形動作部13Aが用いられる。
【0052】
図6は、非線形動作部13Aの一例を示す回路図である。非線形動作部13Aは、スイッチド・キャパシタ回路を実装している。非線形動作部13Aは、スイッチSW3,SW4,SW5、抵抗R、キャパシタCs,Cを備えている。なお、抵抗Rは、電流制限抵抗である。
【0053】
スイッチSW3の一端は、電源Vに接続されている。スイッチSW3の他端は、抵抗Rを介して、出力端子Vout、スイッチSW4の一端、キャパシタCの正極端子に接続されている。スイッチSW4の他端は、スイッチSW5の一端、及びキャパシタCsの正極端子に接続されている。キャパシタCs、Cの負極端子及びスイッチSW5の他端は、接地されている。スイッチSW3,SW4,SW5は、図1に示す制御部12によってオン/オフされる。なお、スイッチSW4とスイッチSW5は排他的に動作する。すなわち、スイッチSW4がオンの場合ではスイッチSW5がオフになり、スイッチSW4がオフの場合ではスイッチSW5がオンになる。
【0054】
制御部12は、初期化処理では、非線形動作部13AのスイッチSW3をオンに、スイッチSW4をオフ(スイッチSW5はオン)に制御する。これにより、電源Vsは、抵抗Rを介して、キャパシタCに電荷を供給する。そして、キャパシタCが電源Vsにて充電される。また、キャパシタCsは、完全に放電される。
【0055】
制御部12は、入力変換部11に信号が入力された場合、最初に、スイッチSW4をオフ(スイッチSW5はオン)にした状態でスイッチSW3をオフにして、その後、スイッチSW4及びSW5を連続的に切り替える。
【0056】
スイッチSW4がオン(スイッチSW5がオフ)の場合は、キャパシタCに蓄積された電荷がキャパシタC,Cs間で共有され、キャパシタCの電圧が低下する。次に、スイッチSW4がオフ(スイッチSW5がオン)になると、キャパシタCに蓄積された電荷が排出される。再び、スイッチSW4がオン(スイッチSW5がオフ)になると、キャパシタCに残留していた電荷がキャパシタC,Cs間で共有され、キャパシタCの電圧がさらに低下する。つまり、スイッチSW4とスイッチSW5が排他的に、かつ、連続的に切り替わると、キャパシタCの電圧が階段状に低下する。
【0057】
図7は、スイッチSW4及びスイッチSW5の切り替え回数nと、電源電圧Vで正規化された出力電圧(Vout/V)との関係を示す図である。
【0058】
入力変換部11に信号が入力されて、非線形動作部13が動作を開始すると、スイッチSW4は、オン、オフ、オン、オフ・・・と切り替わる。他方、スイッチSW5は、スイッチSW4に連動して、オフ、オン、オフ、オン・・・と切り替わる。
【0059】
スイッチSW4がn回目にオン(スイッチSW4がn回目にオフ)になる場合、規格化された非線形動作部13の出力電圧Vout/Vは、式(7)の通りになる。
【0060】
out/V=(C/(C+C))
=(1+C/C-n
=e-αn (7)
【0061】
ただし、αは式(8)の通りである。
α=ln(1+C/C) (8)
【0062】
いま、入力信号xが入力されたとすると、スイッチSW4及びSW5の切り替え回数nは式(9)の通りである。
n=[x/α] (9)
なお、[z]は、実数z以下の最大の整数を表すガウス記号である。
【0063】
本実施形態の場合、制御部12は、入力信号の時間情報への変換として式(9)を用いて、スイッチSW4及びSW5の切り替え回数nを算出する。
【0064】
そして、非線形動作部13AにおいてスイッチSW4がn回切り替わった後、演算結果出力部14は、非線形関数演算装置1の演算結果として、非線形動作部13Aの出力電圧Voutを測定すればよい。
【0065】
つぎに、C≫Cの条件でスイッチSW4及びSW5を非常に高速に切り替える場合(n≫1)を考える。
【0066】
このとき、スイッチSW4及びSW5の単位時間当たりのオン/オフの切り替え回数(以下、スイッチング周波数という。)をfswとおくと、α~C/C、n=fsw・tを式(9)に代入することにより、式(10)が得られる。
t~C・(1/(Csw))・x (10)
【0067】
式(2)と式(10)との比較から、スイッチド・キャパシタCsとスイッチング周波数fswの積の逆数は、式(11)を満たす等価抵抗に相当することが分かる。
~1/(Csw) (11)
【0068】
そこで、制御部12は、内蔵タイマーをセット後、スイッチング周波数fswに基づいてスイッチSW4及びSW5を連続的に切り替えることによって、キャパシタCに蓄積された電荷を段階的に排出させる。制御部12は、内蔵タイマーが式(10)で求めた時間情報tに到達した瞬間に、スイッチSW4及びSW5の切り替えを停止して、スイッチSW4をオフ(スイッチSW5はオン)に制御する。
【0069】
以上のように、スイッチSW4及びSW5は、入力変換部11に入力信号が入力された時点(動作開始時点)からオン/オフの切り替えを開始して、動作開始時点から時間情報tに到達した時点で、オン/オフの切り替えを停止する。
【0070】
演算結果出力部14は、スイッチSW4及びSW5の切り替え停止後に、非線形動作部13Aの出力電圧Voutを測定して、測定値を非線形関数の演算結果として外部に出力する。制御部12は、出力電圧Voutの測定値が得られた後、上述した非線形動作部13Aの初期化処理を行い、入力変換部11に入力信号が再び入力されるまで待機する。
【0071】
ここで、第2の実施形態の場合の制約条件として、入力時間間隔、あるいは入力信号の標本化周期1/fに関しては、入力信号の最大値をxmaxとすると、式(5)に式(11)を代入することで、式(12)が得られる。
<(Csw)/(Cmax) (12)
【0072】
また、出力時の再標本化周波数frsに関しては、式(6)に式(11)を代入することで、式(13)が得られる。
rs>1/((1/f)-(Cmax)/(Csw)) (13)
【0073】
[第3の実施形態]
第3の実施形態では、上述した非線形関数演算装置1を用いてシグモイド関数演算装置を実現する。シグモイド関数(Standard sigmoid function)は、ニューラルネットワークの中間層、あるいは二値分類をおこなうニューラルネットワークの出力層に存在するニューロン素子で用いられる活性化関数である。具体的には、シグモイド関数は、次式のように定義される。
Sigmoid(x)=1/(1+e-x) (14)
【0074】
ここで、x≧0にて式(3)を用いると、式(14)は次式の通りになる。
Sigmoid(x)=1/(1+EX(x)) (15)
【0075】
また、シグモイド関数の性質より、x<0では、次式が成り立つ。
Sigmoid(x)=1-Sigmoid(|x|) (16)
【0076】
図8は、入力信号x≧0において非線形関数演算装置1を用いたシグモイド関数演算装置100を示す図である。
シグモイド関数演算装置100は、非線形関数演算装置1と、加算器101と、除算器102と、を備えている。非線形関数演算装置1は、上述した実施形態の通りに構成されており、入力信号x≧0に対して式(3)に示すEX(x)(=e-x)を出力する。
【0077】
加算器101は、非線形関数演算装置1の出力値“e-x“と自然数である数値“1”とを加算して、“1+e-x”を出力する。除算器102は、数値“1”を加算器101の出力値“1+e-x”で除して、“1/(1+e-x)”を出力する。すなわち、除算器102は、加算器101の逆数を演算する。
【0078】
以上のように、非線形関数演算装置1と所定の演算器を用いることで、シグモイド関数演算装置100を容易に実現することができる。
【0079】
[第4の実施形態]
第4の実施形態では、上述した非線形関数演算装置1を用いて双曲線正接関数演算装置を実現する。双曲線正接関数(Hyperbolic tangent function)は、ニューラルネットワークの中間層に存在するニューロン素子で用いられる活性化関数である。具体的には、双曲線正接関数は、次式のように定義される。
tanh(x)=(e-e-x)/(e+e-x) (17)
【0080】
ここで、x≧0にて式(3)を用いると、式(17)は次式の通りになる。
tanh(x)=(e-e-x)/(e+e-x
=(1-e-2x)/(1+e-2x
=(1-EX(2x))/(1+EX(2x)) (18)
【0081】
また、双曲線正接関数の性質より、x<0では、次式が成り立つ。
tanh(x)=-tanh(-x)
=-1・tanh(|x|) (19)
【0082】
図9は、入力信号x≧0において非線形関数演算装置1を用いた双曲線正接関数演算装置200を示す図である。
双曲線正接関数演算装置200は、加算器201と、非線形関数演算装置1と、符号変換器202と、加算器203,204と、除算器205と、を備えている。非線形関数演算装置1は、上述した実施形態の通りに構成されており、入力信号x≧0に対して式(3)に示すEX(x)(=e-x)を出力する。
【0083】
加算器201は、2つの入力端子に入力されるxを加算して“2x”を出力する。非線形関数演算装置1は、加算器201の出力値“2x” に対して“e-2x”を出力する。符号変換器202は、非線形関数演算装置1の出力値“e-2x”の符号を反転させて“-e-2x”を出力する。
【0084】
加算器203は、“1”と符号変換器202の出力値“-e-2x”とを加算して“1-e-2x”を出力する。加算器204は、“1”と非線形関数演算装置1の出力値“e-2x”とを加算して“1+e-2x”を出力する。除算器205は、加算器203の出力値“1-e-2x”を加算器204の出力値“1+e-2x”で除して、“(1-e-2x)/(1+e-2x)”を出力する。
【0085】
以上のように、非線形関数演算装置1と所定の演算器を用いることで、双曲線正接関数演算装置200を容易に実現することができる。
【0086】
[第5の実施形態]
第5の実施形態では、上述した非線形関数演算装置1を用いてソフトマックス関数を実現する。ソフトマックス関数(Softmax function)は、特に多クラス分類をするニューラルネットワークの出力層に存在するニューロン素子で用いられる活性化関数である。具体的には、いま、出力層にm個のニューロン素子が存在する場合、そのi番目のニューロン素子に適用されるソフトマックス関数は、式(20)のように定義される。
【0087】
【数1】
ここで、入力値xの最大値をxmaxとして式(3)を用いると、式(20)は式(21)の通りになる。
【0088】
【数2】
なお、ソフトマックス関数の性質として、式(20)の定義より式(22)が成り立つ。
【0089】
【数3】
図10は、任意の入力信号x(k=1,2,・・・,m)において非線形関数演算装置1を用いたソフトマックス関数演算装置300を示す図である。以下では、kは1からmまでの自然数を表す。
【0090】
ソフトマックス関数演算装置300は、最大値検出器301と、m個の符号変換器302-1,302-2,・・・,302-mと、m個の加算器303-1,303-2,・・・,303-mと、m個の非線形関数演算装置1-1,1-2,・・・,1-mと、総和演算器304と、m個の除算器305-1,305-2,・・・,305-mと、を備えている。なお、非線形関数演算装置1-kは、上述した非線形関数演算装置1と同じものである。また、総和演算器304は、入力端子数に応じた数の加算器を組み合わせることで実現されている。
【0091】
最大値検出器301は、m個の入力信号xの中から最大値xmaxを出力する。符号変換器302-kは、入力信号xの符号を反転させて“-x”を出力する。
【0092】
加算器303-kは、最大値検出器301の出力値xmaxと、符号変換器302―kの出力値“-x”とを加算して、“xmax-x”を出力する。非線形関数演算装置1-kは、加算器303-kの出力値“xmax-x”に対して“e-(xmax-xk)”を出力する。
【0093】
総和演算器304は、非線形関数演算装置1-kのそれぞれの出力値“e-(xmax-xk)”の全ての総和を演算して、“Σe-(xmax-xk)”を出力する。
【0094】
除算器305-kは、非線形関数演算装置1-kの出力値“e-(xmax-xk)”を総和演算器304の出力値“Σe-(xmax-xk)”で除して、ソフトマックス関数演算値Softmax(k,x)を出力する。
【0095】
以上のように、非線形関数演算装置1-kと所定の演算器を用いることで、ソフトマックス関数演算装置300を容易に実現することができる。
【0096】
[第6の実施形態]
つぎに、第6の実施形態について説明する。第6の実施形態では、図1に示す非線形動作部13の他の一例として、図11に示す非線形動作部13Bが用いられる。
【0097】
図11は、非線形動作部13Bの一例を示す回路図である。非線形動作部13Bは、余弦関数を演算するための振動回路である。非線形動作部13Bは、スイッチSW6,SW7、抵抗R、R、キャパシタC、インダクタLを備えている。なお、抵抗Rは電流制限抵抗であり、抵抗Rはシャント抵抗である。
【0098】
スイッチSW7は、3つの端子T1、T2、T3を有している。スイッチSW7は、図1に示す制御部12からの制御(選択信号)に従って、端子T1及び端子T3の間、又は端子T2及び端子T3の間を接続する。
【0099】
スイッチSW6は、図1に示す制御部12によってオン/オフされる。スイッチSW6の一端は、電源Vに接続されている。スイッチSW6の他端は、抵抗Rを介して、出力端子Vout、キャパシタCの一端、スイッチSW7の端子T1にそれぞれ接続されている。キャパシタCの他端は接地されている。スイッチSW7の端子T2は、抵抗Rを介して接地されている。スイッチSW7の端子T3は、インダクタLを介して接地されている。
【0100】
ここで、振動回路である非線形動作部13Bの動作周波数(固有周波数)fLCは、式(23)の通りである。
LC=1/(2π√(LC)) (23)
【0101】
非線形動作部13Bの振動動作は、式(24)の通りである。
out/V=cos(2πfLC・t)=cos(x) (24)
したがって、入力信号xと等価な時間情報tは、式(25)の通りになる。
【数4】
式(25)において、[z]は、実数z以下の最大の整数を表すガウス記号である。
【0102】
つぎに、制御部12の処理フローを説明する。
制御部12は、初期化処理として、非線形動作部13BのスイッチSW6をオンにし、スイッチSW7の端子T2と端子T3とを接続する。これにより、電源Vsは、抵抗Rを介して、キャパシタCに電荷を供給する。その結果、キャパシタCが電源Vsによって完全に充電され、インダクタLの電流がゼロになる。
【0103】
入力変換部11は、入力信号xを検出後、式(25)を用いて、入力信号xを時間情報tに変換する。
【0104】
次に、制御部12は、内蔵タイマーをセットして計数を開始した後、スイッチSW6をオフ、スイッチSW7の端子T1と端子T3とを接続する。その結果、キャパシタCとインダクタLが並列に接続されて、キャパシタCに蓄積されていた電荷がインダクタLへ移動し、その後、インダクタLからキャパシタCに電荷が移動する電気振動が発生する。
【0105】
図12は、図11に示す非線形動作部13Bに電気振動が発生したときの振動特性を示す図である。なお、横軸は式(25)で時間情報tと関連付けられた入力信号xであり、縦軸は電源電圧Vで正規化された出力電圧(Vout/Vs)である。
【0106】
制御部12は、内蔵タイマーによる計数が式(25)で得られた時間情報tに到達した時点で、スイッチSW7の端子T2と端子T3とを接続する。なお、スイッチSW6はオフのままである。この結果、キャパシタCとインダクタLが電気的に切り離され、インダクタLに流れていた電流は、抵抗Rを介してゼロに収束する。そして、時間情報tに到達した時点のキャパシタCの電圧が保持される。
【0107】
演算結果出力部14は、非線形動作部13の出力電圧Voutを測定し、この測定値を式(24)に基づく非線形関数の演算結果として外部に出力する。なお、演算結果出力部14は、非線形動作部13Bの状態如何にかかわらず、出力電圧Voutの測定値をレジスタ14-1に保持してもよい。また、演算結果出力部14は、レジスタ14-1に保持した出力電圧Voutの測定値を、標本化器14-2を用いて所定の周波数に基づいて再標本化の上、離散化情報として出力してもよい。
【0108】
図13は、非線形関数演算装置1に、入力信号xとして余弦波に基づく信号が入力された場合の演算結果を示す図である。具体的には、入力信号xは、-1.0~1.0の範囲に規格化された余弦波(周期T)に基づいて、任意の時間間隔で標本化された信号である。
【0109】
なお、演算結果出力部14は、非線形動作部13から新たな入力信号xに対する演算結果が得られるまでの間、前回の入力信号xに対する演算結果をレジスタ14-1で保持し、標本化器14-2を用いてT/16周期で再標本化した結果を出力信号yとして出力する。また、非線形動作部13の寄生容量などに伴う処理遅延などは無視する。
【0110】
t=0では、入力信号はx=1.0である。これより、入力信号xの入力から1/(2πf)遅れた時点t=1/(2πfLC)で、演算結果y=cos(1.0)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0111】
t=3T/24では、入力信号はx=1/√2である。これより、入力信号xの入力から1/(2√2・πfLC)遅れた時点t=3T/24+1/(2√2・πfLC)で、演算結果y=cos(1/√2)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0112】
t=8T/24では、入力信号はx=-0.5である。これより、入力信号xの入力から1/(4πfLC)遅れた時点t=8T/24+1/(4πfLC)で、演算結果y=cos(0.5)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0113】
t=12T/24では、入力信号はx=-1.0である。これより、入力信号xの入力から1/(2πfLC)遅れた時点t=12T/24+1/(2πfLC)で、演算結果y=cos(1.0)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0114】
t=15T/24では、入力信号はx=-1/√2である。これより、入力信号xの入力から1/(2√2・πfLC)遅れた時点t=15T/24+1/(2√2・πfLC)で、演算結果y=cos(1/√2)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0115】
t=20T/24では、入力信号はx=0.5である。これより、入力信号xの入力から1/(4πfLC)遅れた時点t=20T/24+1/(4πfLC)で、演算結果y=cos(0.5)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0116】
t=24T/24では、入力信号はx=1.0である。これより、入力信号xの入力から1/(2πf)遅れた時点t=24T/24+1/(2πf)で、演算結果y=cos(1.0)が出力される。そして、初期化処理が実行され、キャパシタCが再充電される。
【0117】
図13から明らかなように、非線形関数演算装置1においては、入力信号が任意の時間間隔で標本化された信号である場合、それらの入力時間間隔は、非線形動作部13Bの最長動作時間1/fLCよりも十分に長くする必要がある。同様に、入力信号が連続したアナログ信号である場合、標本化器11-1を用いてアナログ信号を標本化する際の標本化周期は、非線形動作部13Bの最長動作時間1/fLCよりも十分に長くすることが求められる。
【0118】
具体的には、入力信号xが任意の時間間隔で標本化された信号である場合、非線形動作部13Bは、動作開始(振動開始)から最長1/fLCの期間では、次の信号入力を受け付けない場合がある。よって、それらの入力時間間隔は、1/fLCよりも長くする必要がある。また、入力信号xが連続したアナログ信号である場合、これは、入力信号xに対する標本化器11-1の標本化周波数fが式(26)を満たす必要があることと等価である。
【0119】
<fLC (26)
【0120】
なお、標本化器14-2を用いた出力時の再標本化において、標本化器14-2の再標本化周波数frsは、入力信号xに対する標本化周波数fよりも十分に大きいことが求められる。例えば、図13の期間t=0~T/8において、t=0の入力信号x=1.0の演算結果が得られるのはt=1/(2πfLC)以降となる。
【0121】
一方、t=T/8では、新たな入力信号が入力されるが、仮に、この入力信号がx=0.0であった場合、演算結果y=1.0は遅延なく得られることになる。これより、t=0での入力信号xの演算結果が得られるのは、期間t=1/(2πfLC)~T/8の範囲に限定される。このことから、t=0での入力信号xの演算結果yを得るためには、この期間内に少なくとも1回の再標本化を実施する必要がある。
【0122】
これを一般化すると次の通りになる。標本化器11-1による入力信号の標本化周期(入力時間間隔)を1/fとした場合、その1周期内において最長1/fLCの期間は演算中で、信号出力が遅延し、実際に演算結果が得られるのは(1/f)-(1/fLC)の期間に限定される。従って、その期間内に少なくとも1回の再標本化が標本化器14-2によって実施されるためには、再標本化周波数frsは式(27)を満たす必要がある。
【0123】
rs>1/((1/f)-(1/fLC))
=(fLC・f)/(fLC-f) (27)
【0124】
なお、本発明は、先述した実施形態に限定されるものではなく、特許請求の範囲に記載事項の範囲内で設計変更されたものにも適用可能である。
【符号の説明】
【0125】
1 非線形関数演算装置
11 入力変換部
12 制御部
13,13A,13B 非線形動作部
14 演算結果出力部
,C,C キャパシタ
L インダクタ
,R,R 抵抗
SW1,SW2,SW3,SW4,SW5,SW6,SW7 スイッチ

【要約】
本発明の一態様である非線形関数演算装置は、所定の非線形特性に従って内部の物理量が自律的に変化する非線形動作部と、前記所定の非線形特性を示す定数を用いて入力信号を時間情報に変換する入力変換部と、前記非線形動作部を初期化後、前記入力変換部に前記入力信号が入力された時点で前記非線形動作部の前記物理量の変化を開始させ、前記時間情報の経過後に前記非線形動作部の前記物理量の変化を停止させる制御を行う制御部と、前記物理量の変化が停止した時点での前記物理量を所定の非線形関数の演算結果として出力する演算結果出力部と、を備える。



図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13