JPH07248841A - 非線形関数発生装置およびフォーマット変換装置 - Google Patents

非線形関数発生装置およびフォーマット変換装置

Info

Publication number
JPH07248841A
JPH07248841A JP6038589A JP3858994A JPH07248841A JP H07248841 A JPH07248841 A JP H07248841A JP 6038589 A JP6038589 A JP 6038589A JP 3858994 A JP3858994 A JP 3858994A JP H07248841 A JPH07248841 A JP H07248841A
Authority
JP
Japan
Prior art keywords
value
output
range
data
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP6038589A
Other languages
English (en)
Inventor
Yuichi Koshiba
優一 小柴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6038589A priority Critical patent/JPH07248841A/ja
Priority to US08/345,693 priority patent/US5506797A/en
Publication of JPH07248841A publication Critical patent/JPH07248841A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02—Digital function generators
    • G06F1/03—Digital function generators working, at least partly, by table look-up
    • G06F1/0307—Logarithmic or exponential functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 ディジタル電子回路における非線形変換処理
を効率的かつ高速に実現することのできる非線形関数発
生装置を提供する。 【構成】 浮動小数点表示された入力値xは、指数部が
一定となる領域に平行移動されるために浮動小数点加算
器(12)により入力値オフセットと加算される。この
浮動小数点加算器の出力に基づいてアドレスデコーダ
(14)がルックアップテーブル(11)に対するアド
レスを生成する。ルックアップテーブルには、必要とさ
れる非線形関数の関数値が必要な精度で仮数部データの
みが格納される。ビット拡張回路(15)はこのルック
アップテーブルから読出された関数値を対応の浮動小数
点表示の数値データに変換する。浮動小数点加算器(1
3)はこのビット拡張回路から与えられた数値データを
元の領域に平行移動させるために出力値オフセットを減
算して浮動小数点表示の非線形関数値を出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は非線形関数を電子回路
により表現する非線形関数発生装置に関し、特に、パタ
ーン認識・分類および信号解析などにおいて用いられる
非線形関数を電子回路により表現する半導体非線形関数
発生装置に関する。より特定的には、神経回路網の神経
細胞の非線形しきい値処理を電子回路により実現するた
めの非線形関数発生装置に関する。
【0002】
【従来の技術】非線形関数は、後に説明するように、パ
ターン認識および信号解析など種々の情報処理分野にお
いて利用されている。このような非線形関数を利用する
情報処理手法の1つに、ニューラルネットワークを用い
る手法がある。ニューラルネットワークは、生体細胞
(ニューロン)をモデルとして構築されており、そこで
利用される計算処理手法としては種々のものが提案され
ている。このような処理手法に共通に用いられるニュー
ロンモデルの特徴の1つとしてしきい値処理機能が挙げ
られる。このしきい値処理機能は簡単に言えば、入力か
ら出力への非線形変換であり、ニューラルネットワーク
の情報処理において重要な役割を果たすことが知られて
いる。まず、このしきい値処理機能について以下に説明
する。
【0003】まず、以下の説明で必要となる用語の定義
をする。 Wij:j番目のニューロンからi番目のニューロンへ
の結合(シナプス結合)の強度を示す結合荷重値(シナ
プス荷重値)。
【0004】Si:i番目のニューロンの出力。 Uj:j番目のニューロンへの入力の荷重総和値。膜電
位とも呼ばれる。
【0005】f():ニューロンにおいて膜電位から出
力を生成するために利用される非線形変換関数。
【0006】図34は、一般的なニューロンモデルの構
成および動作原理を示す図である。図34において、ニ
ューロンユニットiは、他のニューロンユニットj、
k、…、mからの出力(状態信号)Sj、Sk、…、S
mを受ける入力部Aと、入力部Aから与えられた信号を
予め定められた規則に従って変換する変換部B(しきい
値機能に対応する)と、変換部Bから与えられた信号を
出力する出力部Cとを含む。
【0007】入力部Aは、ニューロンユニットj、k、
…、mに対して所定のシナプス荷重W(以下、シナプス
荷重を総称的に示す場合、符号Wを用いる)を有し、ニ
ューロンユニットの出力信号に対応のシナプス荷重で重
み付けをして変換部Bへ伝達する。たとえば、ニューロ
ンユニットkからの出力信号Skは、入力部Aでシナプ
ス荷重値Wikを積算されてWik・Skに変換された
後変換部Bへ伝達される。
【0008】変換部Bは、入力部Aから与えられた信号
の総和を求め、この総和がある条件を満足すると発火し
て出力部Cへ信号を伝達する。このニューロンユニット
のモデルを生体細胞に対応させると、入力部Aは樹状突
起に対応し、変換部Bは細胞本体に対応し、かつ出力部
Cは軸索に対応する。
【0009】このニューロンモデルにおいて各ニューロ
ンが取り得る出力状態は適用されるモデルにより異な
る。ホップフィールド(Hopfield) モデルまたはボルツ
マンマシン(Boltzmann machine )においては、ニュー
ロンユニットは2つの状態、すなわちSi=0(非発火
状態)およびSi=1(発火状態)をとると仮定され
る。またパーセプトロン(Perceptron)モデルなどにお
いては、ニューロンユニットの出力は一般に、0から1
の範囲の連続値をとると仮定される。
【0010】一つのニューロンユニットにおける信号の
入出力関係は一般に次式で表される。
【0011】
【数1】
【0012】ここで、Θiは自己結合係数を示し、また
総和Σはi番目のニューロンユニットへの入力すべてに
ついて行なわれる。したがって、1つのニューロンユニ
ットの機能は、そのニューロンユニットへの入力すべて
に対して対応のシナプス荷重値との積和演算を行ない、
その結果得られた膜電位Uiをしきい値処理すなわち非
線形変換処理して出力を生成すると解釈される。すなわ
ち、ニューロンユニットは、多入力1出力のしきい値処
理機能を有する演算ユニットである。このニューロンユ
ニットにおける非線形的なしきい値処理がニューラルネ
ットワークが高度かつ柔軟な情報処理機能を実現する理
由の1つであると考えられている。
【0013】従来のニューラルネットワークで用いられ
る非線形変換の種類は多様であるが、大半のものが飽和
型非線形関数を用いていることを特徴としている。ここ
で、飽和型非線形関数とは、入力xに対する非線形変換
の出力f(x)が、この入力xの全変域にわたってa<
f(x)<b(ただしaおよびbは一定値)となる変換
を実現する関数をいう。ニューラルネットワークにおい
て使用される非線形関数としては、単調非減少関数が利
用されており、このような単調非減少関数の典型的な例
として次式で表わされるシグモイド(sigmoid )関数が
ある。
【0014】
【数2】
【0015】ただしTはネットワークの温度であり、ま
た1/Tは関数のスロープとも呼ばれる。
【0016】図35に温度Tが1の場合のシグモイド関
数の形状を示す。この温度Tが大きくなれば、シグモイ
ド関数の立上がりが緩やかとなる。上述のシグモイド関
数の式および図35に示す形状から明らかなように、シ
グモイド関数(変換)f(x)は、0.0<f(x)<
1.0という値域を持つ飽和型非線形関数(変換)であ
る。このシグモイド関数の関数値はごく限られた変域に
おいて大きく変化する。
【0017】上述のようなニューロンユニットにおける
しきい値処理機能を電子回路を用いて実現する方法は、
これまで種々提案されている。これらの従来の方法は、
大別して、アナログ電子回路を用いるものとディジタル
電子回路を用いるものが存在する。以下に、本発明に関
連するディジタル電子回路を用いるしきい値処理機能の
実現方法について説明する。
【0018】ディジタル電子回路を用いる非線形変換の
実現手法には、大別して2種類ある。1つは級数(関
数)展開を用いて非線形関数を近似する手法であり、も
う1つはメモリに関数値を格納してメモリをルックアッ
プテーブルとして用いる関数テーブル参照法(ルックア
ップテーブル法)である。まず級数展開を用いる近似手
法について説明する。
【0019】級数展開を用いる近似手法は、級数展開可
能な非線形関数を近似する手法としては最も汎用的であ
りかつ精度が高い演算手法である。前述のシグモイド関
数f(x)は0の近傍(h)においてたとえば以下のよ
うに近似される。
【0020】
【数3】
【0021】この手法の長所は、近似の項数を増加すれ
ば非常に高い精度の近似を実現することができることお
よび入力データの表現形式(整数表示、固定小数点表
示、および浮動小数点表示など)に関わりなく積和演算
機能のみを用いて演算を行なうことができることであ
る。
【0022】この級数展開を用いる近似手法は、一方に
おいて、演算に必要な処理ステップ数が多いという欠点
がある。たとえば、N項を用いる近似に必要な演算ステ
ップ数は、各項の値の算出および各項の値の総和(2項
ずつの加算を繰返す)の演算ステップが必要とされるた
め、最低限(2N+1)の演算ステップが必要とされ
る。したがって、この近似手法に従って非線形変換回路
を構成した場合、非線形変換処理のために大量のクロッ
クサイクルが必要とされ、高速で変換処理(しきい値変
換処理)を実行することができなくなる。
【0023】級数展開を用いてシグモイド変換(シグモ
イド関数を用いた出力値の計算)を電子回路により実現
する構成は、たとえば電子情報通信学会技術研究報告、
ICD92−17、1992年、第39頁ないし第46
頁において広瀬等が「バックプロパゲーション専用プロ
セッサのアーキテクチャ」において示している。この先
行技術文献においては、シグモイド関数f(Ui)とし
て次式が用いられる。
【0024】
【数4】
【0025】このシグモイド関数f(Ui)を次式を用
いて近似する。
【0026】
【数5】
【0027】ここで、係数Bnはベルヌイ数である。上
述の近似式において膜電位Uiの正負に従って次式に示
すように出力f(Ui)が決定される。
【0028】
【数6】
【0029】級数展開の場合、その近似が実効的に有効
となる変域(入力変数値がとる範囲)は極めて限定され
る。このため、上述のように、変域に従って別々の近似
式が利用される。したがって、1つのシグモイド関数を
近似するために複数の近似式が必要とされ、変域に応じ
て別々の計算を実行する必要があり、計算コストが増大
するという問題が生じる。
【0030】次にルックアップテーブル法について説明
する。図36は、ルックアップテーブル法を実現するた
めの構成を概略的に示す図である。図36において、ル
ックアップテーブル982は、メモリで構成され、参照
されるデータをすべて格納する。アドレスデコーダ98
1は、入力値に必要な加工を施してルックアップテーブ
ル982に対するアドレスを生成してルックアップテー
ブル982へ与える。ルックアップテーブル982のア
ドレス指定された位置から読出されたデータは出力バッ
ファ983を介して出力される。
【0031】非線形変換を入力値に対して実行する場
合、非線形関数値が、入力値に対応する数値をアドレス
として、メモリ内の対応の位置に格納される。アドレス
デコーダ981が、この入力値にたとえば下位ビットの
切捨てなどの必要な加工を施してアドレスを生成する。
ルックアップテーブル982からは入力値に対応する非
線形関数値が出力され、出力バッファ983を介して出
力される。このルックアップテーブル法は、基本的には
メモリからのデータの読出時間で非線形変換処理を行な
うことができるため、先に述べた級数展開に基づく方法
に比べて処理の高速化が容易であるという特徴を持つ。
【0032】図37は上述のルックアップテーブル法を
用いる従来のニューラルネットワークの構成を示す図で
ある。図37に示す構成は、たとえば電子情報通信学会
技術研究報告、ICD90−127、1990年、第4
9頁ないし第56頁の柴田らの「高速学習型ニューロン
WSIのシステム設計」に示されている。
【0033】図37においては、4つのニューロンユニ
ット990を含むニューラルネットの構成が一例として
示される。ニューロンユニット990は、シナプス荷重
値を格納するメモリを含み、入力値に対応のシナプス荷
重値を乗算するシナプス回路992と、シナプス回路9
92の出力の総和を求めて膜電位を算出するニューロン
回路991を含む。ニューロンユニット990の各々の
ニューロン回路992は、時分割入力データバス993
を介して変換テーブル994の入力部に共通に結合され
る。変換テーブル994の出力部は時分割出力データバ
ス996を介してニューロンユニット990の各々のシ
ナプス回路992に結合される。ニューロンユニット9
90における演算タイミングおよびシナプス回路992
に含まれるメモリに対するアドレスを発生するために制
御回路997が設けられる。
【0034】変換テーブル994は、しきい値変換処理
に用いられる関数をその入力値をアドレスとして出力値
を格納する。
【0035】動作時においては、まず時分割出力データ
バス996上に下位層のニューロンユニットの出力が順
次伝達される。ニューロンユニット990の各々は、制
御回路997から制御信号バス995を介して与えられ
るアドレス信号および制御信号に従って、この出力デー
タバス996上に与えられた出力データに対し積和演算
を実行する。積和演算が完了し、ニューロンユニット9
90各々が膜電位を算出すると、今度は制御回路997
の制御の下に、時分割入力データバス993上に順次ニ
ューロンユニット990の出力が伝達され、変換テーブ
ル994へ与えられる。変換テーブル994はこの時分
割入力データバス993上に与えられた出力をアドレス
信号として、対応の位置に格納された値を時分割出力デ
ータバス996上に伝達する。変換テーブル994に
は、前述のごとく変換関数値が格納されている。したが
って高速で時分割入力データバス993上に与えられた
膜電位データに従って各ニューロンユニット990の出
力が時分割出力データバス996上に順次出力される。
この図37に示すニューラルネットワークにおいてニュ
ーロンユニット990が別の層のニューロンユニットを
も表現する場合、この変換テーブル994から出力され
たデータは再びデータバス996を介して直列に時分割
出力データバス996上に伝達される。これにより次の
層における演算が実行される。
【0036】図37に示すように、しきい値変換処理に
おいては、変換テーブル994は、時分割入力データバ
ス993上に与えられた膜電位データをアドレスとして
対応の関数値を出力データバス996上に出力してい
る。したがってこの構成の場合、変換テーブル994に
対するアドレスの生成が極めて容易であり、この変換テ
ーブル994からのデータ読出に必要とされる時間のみ
で非線形変換を実行することができる。
【0037】
【発明が解決しようとする課題】ルックアップテーブル
法を用いる場合、上述のように高速で非線形変換処理を
実行することができるものの、基本的に必要なデータを
すべてメモリ内に格納しておく必要があり、この変換テ
ーブル994の占有面積が大きくなり、集積化に対する
1つの障害となるという欠点が生じる。集積回路を用い
たニューラルネットワークを構築する場合、この変換テ
ーブル994を集積回路内に配置するためには、占有面
積の観点から記憶容量をそれ程大きくすることができ
ず、変換データをすべて格納するのは困難であり、この
ため級数展開による方法に比べて変換精度が劣るという
欠点があった。
【0038】またこのような変換テーブルを利用するル
ックアップテーブル法において、使用される数値データ
の表現形式には様々なものがあり、通常高い演算精度を
必要とする場合には浮動小数点表示された数値データが
用いられる。この浮動小数点表示された数値データに対
してこのルックアップテーブル法を適用する際の問題に
ついて以下に述べる。この問題点を具体的に説明する前
に、数値データの表示形式、すなわち浮動小数点表示お
よび固定小数点表示について説明する。
【0039】浮動小数点表示の数値は、IEEEの正規
化フォーマットで、 (−1)S ・(1.00+F)・2E と表わされる。ここで、Sは符号フラグ、Eは指数、お
よびFは仮数である。仮数Fは、Σai ・(1/2)i
の形で表現される。ここで係数ai は0または1の数値
である。
【0040】図38は標準的な32ビット(単精度)の
浮動小数点数値データの構成を示す図である。図38に
示すように、IEEEのフォーマットにおいては、符号
部191は、1ビットの符号フラグで構成され、指数部
192は、8ビットで指数Eを表現し、仮数部193は
23ビットで仮数Fを表現する。
【0041】図39は、標準的な16ビットの固定小数
点数値データの構成を示す図である。図39に示すよう
に、固定小数点数値データは、符号部201を構成する
1ビットの符号フラグと、残りの15ビットによる仮数
部202とから構成される。小数点Pの位置は任意であ
る。しかしながらこの小数点Pの位置は一旦設定された
後は固定される。今ある数値を具体的に浮動小数点表示
および固定小数点表示両者で表現する。
【0042】3=(−1)0 ・(1.00+0.50)
・21 であるため、32ビット浮動小数点表示において
は、 3=0 10000000 100000000000
00000000000 となる。一方、16ビット固定小数点表示の場合には、
例えば 3=000011.0000000000 と表現される。ここで、浮動小数点表示において指数部
の最小値−127を“00000000”に対応させて
おり最大値128を“11111111”に対応させて
いる。別の表現形式が利用されてもよい。浮動小数点表
示においては、1ビットの符号部、8ビットの指数部、
および23ビットの仮数部という3つの変数が1つの数
値を表現するために必要とされる。それに対して固定小
数点表示においては、1ビットの符号部と15ビットの
仮数部という2つの変数が必要とされる。
【0043】浮動小数点表示の場合、表現することので
きる数値の範囲は広い。32ビットの場合、指数部は8
ビットで構成されるため、絶対値で2-127から2128 の
範囲となる。この範囲で表現される数値の精度はこの指
数部の値により大きく異なる。今具体的に上に述べたフ
ォーマットを有する32ビット数値データについて考え
る。指数部の8ビットが一定値E0の場合に表現するこ
とのできる数値Z0は、 1.00・2E0≦Z0≦(1.00+2-1+2-2+…+
2-23 )・2E0 である。この値域に含まれる数値の数は223であり、表
現精度(レゾリューション)は2E0/223である。すな
わち、この値域においては、2E0から2E0+1までの値を
仮数部の23ビットで均等に分割してこの値域内の数値
を表現していることになる。
【0044】すなわち、浮動小数点表示の場合、指数部
の値E0に従ってそのレゾリューションが変化し、この
値E0が小さければ小さいほどレゾリューションは向上
する。したがって、E0が小さい数値の場合、適用する
システムが必要とする精度に比べて必要以上に細かく数
値が表現される場合が存在する。また、この浮動小数点
表示においては、指数部の値に応じて数値の表現が変化
するため、数値演算が極めて複雑になる欠点がある(こ
れについては後に再度詳しく説明する)。
【0045】固定小数点表示の場合、数値の表現方法
は、表現することのできる最大値を決定することにより
一意的に決定される。たとえば16ビットの場合、最大
値および最小値を±M0とすると、この最大値M0と最
小値−M0の間を16ビットで均等に分割して数値を表
現することになる。したがってレゾリューションは2・
M0/216=M0/215となる。この場合、表現するこ
とのできる数値Z0の範囲は(正数の範囲で)、 M0/215≦Z0≦M0 となる。この固定小数点表示は、表現することのできる
数値の範囲が非常に限定されるという欠点がある反面、
数値は数直線上に規則的に配置され(間隔M0/215を
おいて等間隔に配置される)、算術演算(加算、減算、
乗算、除算)が非常に行ないやすいという長所がある。
【0046】次に、先に述べたシグモイド関数に対する
ルックアップテーブルを構成する方法について説明す
る。
【0047】シグモイド関数などの非線形関数を用いた
変換をルックアップテーブルを用いて実現する方法は、
シグモイド関数の飽和特性を利用して実現することがで
きる。すなわち、関数値が大きく変化する範囲を限定
し、この範囲内における関数値を入力変数値をアドレス
としてメモリに記憶し、必要な値をこのメモリから随時
読出して使用する構成とすることによりルックアップテ
ーブルを実現することができる。
【0048】たとえば、図35に見られるように、シグ
モイド関数f(x)の関数値が大きく変化する変域は狭
く、ほぼ−8≦x≦8の範囲であり、それ以外の範囲に
おいては、この関数値は0または1と近似することがで
きる。したがってこの−8≦x≦8の範囲の関数値をメ
モリに記憶すればよいことになる。この場合、範囲外の
入力値に対する関数値の誤差は3・10-4以下であり、
仮に入力変数値の変域を−16≦x≦16とした場合、
関数値の誤差は1・10-7以下となる。したがって、変
域を限定しても非線形変換処理に対し大きな影響がない
ことがわかる。このように変域を限定することのできる
のがシグモイド関数などの飽和型非線形関数の特徴であ
る。
【0049】次にこのルックアップテーブル法における
メモリのアドレスの生成について説明する。まず、固定
小数点表示を用いる場合について説明する。
【0050】固定小数点表示においては、数値は最大値
と最小値の範囲内で、仮数部のビット数により決定され
る間隔で均等に配置される。したがって、入力変数値そ
のものをアドレスとみなすことができ、先の図37に示
す変換テーブルにおいても入力データバス上の膜電位デ
ータは固定小数点表示で表現されて変換テーブルへ与え
られている。
【0051】今、16ビットの固定小数点表示された数
値を考える。非線形関数の入力値の変域を−8≦x≦8
とし、この範囲16が14ビットで表現されているとす
れば(14ビットの精度)、16/214より、約0.0
009765の間隔で入力値が変化し、214(=163
84)個のアドレスを生成することができる。したがっ
て関数値を16ビットで表現する場合、1ワード16ビ
ットとして24 ・210ワード(16Kワード)格納する
ことのできるメモリを用いれば非線形変換用のルックア
ップテーブルを実現することができる。仮数部のビット
数を増加すれば、応じてアドレスの数も増加し、変換精
度も向上する。この固定小数点表示を用いる方法は、入
力値を均等に離散化してアドレスとして用いているた
め、アドレスの生成が非常に容易であるという特徴を持
つ。しかしながらアドレス間の入力値に対応する出力値
は、その入力値の両側のアドレスのいずれかに対応する
出力値に丸められることになる。
【0052】次に浮動小数点表示を用いてルックアップ
テーブルを構成する場合のアドレス生成について説明す
る。浮動小数点表示された入力値からルックアップテー
ブルのアドレスを生成する方法では、上で説明した固定
小数点表示の場合に比べて注意が必要とされる。
【0053】まず、入力値がどのように表現されるかを
説明する。上で固定小数点表示の場合において説明した
入力値の範囲−8≦x≦8は、浮動小数点表示において
は固定小数点表示の場合のように均等には分割されず、
以下のようになる。 (1) 4≦x≦8 指数部E=2で一定、仮数部の23ビットでこの範囲を
均等に分割する。 (2) 2≦x≦4 指数部E=1で一定、仮数部の23ビットでこの範囲を
均等に分割する。 (3) 1≦x≦2 指数部E=0で一定、仮数部の23ビットでこの範囲を
均等に分割する。 (4) 0.5≦x≦1 指数部E=−1で一定、仮数部の23ビットでこの範囲
を均等に分割する。 (5) 0.25≦x≦0.5 指数部E=−2で一定、仮数部の23ビットでこの範囲
を均等に分割する。 (6) 0.125≦x≦0.25 指数部E=−3で一定、仮数部の23ビットでこの範囲
を均等に分割する。 (7) 0.0625≦x≦0.125 指数部E=−4で一定、仮数部の23ビットでこの範囲
を均等に分割する。 (8) …(以下同様に続く) 上に示すように、指数部Eの値が一定の領域は、仮数部
の23ビットで均等に分割されているのが浮動小数点表
示の特徴である。この範囲は2n-1 ≦x≦2n(nは整
数)である。したがって入力値の絶対値が大きくなれば
なるほどこの範囲の幅が大きくなり、応じてその範囲に
おける数値の間隔も広くなり、精度が粗くなり、逆に入
力値の絶対値が小さくなればなるほど精度は細かくな
る。すなわち、入力値をアドレスとしてそのまま利用し
た場合、入力値の値に応じてその精度が異なり、正確な
変換を行なうことができなくなる。
【0054】今、16ビット固定小数点表示の数値に従
ってメモリのアドレスを生成した場合との比較のために
32ビット浮動小数点表示の数値のうち符号部1ビッ
ト、指数部8ビット、および仮数部9ビットの合計16
ビットからメモリのアドレスを直接生成することを考え
る。ただし、仮数部の9ビットとしては、上位9ビット
を選択するものとする。入力変数値の範囲を−8≦x≦
8とする。固定小数点表示の場合、この変域を固定小数
点の16ビットのうち14ビットで表現する場合、その
精度は先に述べたように約0.0009765である。
【0055】浮動小数点表示の場合、4≦x≦8の範囲
では、仮数部9ビットでこの範囲の数値が表現されるた
め、4/29 =1/27 であり、精度は、約0.007
8125である。0.125≦x≦0.25の範囲で
は、0.125/29 であり、精度は約0.00024
41となる。
【0056】このように浮動小数点表示の場合、数値の
大きいところでは、仮数部の精度はビット数を制限した
ことにより、固定小数点表示の場合よりも精度が悪くな
る。一方、入力変数値の絶対値が小さいところでは、固
定小数点表示の場合よりも精度が向上し、これは入力値
の絶対値が小さければ小さいほど顕著となる。すなわ
ち、浮動小数点表示の数値データから直接アドレスを生
成する場合、メモリの容量の制限により仮数部のビット
数を制限すると、その変域によっては固定小数点表示の
場合よりも精度が悪くなり、高精度であるという浮動小
数点表示の利点を生かすことができなくなるという問題
が生じる。
【0057】次に、浮動小数点表示の数値データから直
接アドレスを生成する際に、入力値の絶対値が極めて小
さい場合を考える。浮動小数点表示の場合、絶対値2
-127までの小さな数を表現することができるが、このよ
うな小さな値は現実的には不要である場合が多い。たと
えば、シグモイド関数f(x)が図35に示す形状を有
する場合、x=2-15 とx=2-16 に対する関数値の差
は約0.0000038程度である。このような微小な
値は、応用例にも依存するが特に神経回路網などへの応
用上必要な非線形変換の出力値としては不要である場合
が圧倒的に多い。したがって、浮動小数点表示で表現さ
れた入力値の大半(この例では、2-15 から2-127まで
の値)は不必要に精度が細かく、ルックアップテーブル
の入力値として使用することは不要な関数値の増加をも
たらすだけであり、極めて非効率的であると言える。
【0058】上述のように、浮動小数点表示を用いる演
算系において、非線形関数の入力値をルックアップテー
ブルのメモリのアドレスとして用いる場合には、メモリ
の容量に集積化の観点から制限が生じるため仮数部の精
度が制限されることとなり、入力値の精度に著しい不均
一が生じるとともに、不必要な関数値をメモリ内に格納
するため、メモリの利用効率が低下するとともに、変換
テーブルのデータ格納時に不必要な関数値をもロードす
ることになり、効率の良い非線形変換用ルックアップテ
ーブルを構成することができなくなるという問題が生じ
る。また入力値の変域によっては十分精度を保証するこ
とができなくなり、正確に非線形変換を行なうことがで
きなくなるという問題も生じる。
【0059】また、応用用途においては浮動小数点表示
の数値データを固定小数点表示の数値データに変換して
処理を行なうかまたは逆に固定小数点表示の数値データ
を浮動小数点表示の数値データに切換えて処理を行なう
方が効率的にまたは高精度に処理を行なうことができる
場合もある。この場合、従来の装置においてはこのよう
な数値データの表現形式を効率的に変換する構成は開示
されていなかった。このような異なる表現形式の数値デ
ータを相互に変換する調整は、たとえばそれぞれ異なる
表現形式の数値データを取扱う複数のプロセッサが共存
するマルチプロセッサシステムなどにおいてこのような
必要性が生じる。
【0060】それゆえ、この発明の目的は、浮動小数点
表示された数値データを用いる演算系において非線形変
換をルックアップテーブルを用いて効率的に行なうこと
のできる非線形関数発生装置を提供することである。
【0061】この発明の他の目的は、非線形変換関数の
拡大、縮小および平行移動などの操作を容易に行なう機
能を備える非線形関数発生装置を提供することである。
【0062】この発明のさらに他の目的は、特にニュー
ラルネットワークにおいて用いられるしきい値変換処理
を高速かつ効率的に行なうことのできる非線形関数発生
装置を提供することである。
【0063】この発明のさらに他の目的は、数値データ
の表現形式を相互に変換することのできるフォーマット
変換装置を提供することである。
【0064】この発明のさらに他の目的は、ニューラル
ネットワークにおいて利用されるノイズの発生およびニ
ューラルネットワークの温度の変化を容易に実現するこ
とのできる機能を備える非線形関数発生装置を提供する
ことである。
【0065】
【課題を解決するための手段】請求項1に係る発明は、
第1の一定の精度を有する変数値域の各変数値に対する
非線形関数の値を、各変数値をアドレスとして格納する
記憶手段を含む。非線形関数値域における非線形関数値
は第2の一定の精度を有する出力値域を形成する。
【0066】請求項1に係る発明は、さらに、入力変数
値を前記変数値域に含まれるように変換して記憶手段に
対するアドレスを発生する入力変換手段と、記憶手段か
ら読出された出力値を入力変数値に対応する値域および
表示形式の出力値に変換する出力変換手段を備える。
【0067】請求項2に係る発明は、請求項1の発明に
おいて、変数値域の変数値は浮動小数点表示において同
じ値の指数部を有し、かつ出力値域の出力値は浮動小数
点表示において同じ値の指数部を有する。
【0068】請求項3の発明は、請求項2において記憶
手段が非線形関数値の浮動小数点表示における仮数部の
値を格納する。
【0069】請求項4に係る発明は、請求項1に係る発
明における入力変換手段が、その振幅が可変なノイズデ
ータを発生する手段と、このノイズ発生手段からのノイ
ズデータと予め定められたオフセット値とを加算する第
1の加算手段と、この第1の加算手段の出力と入力変数
値とを加算する第2の加算手段と、この第2の加算手段
の出力値に従って記憶手段に対するアドレスを発生する
手段とを備える。
【0070】請求項5に係る発明は、請求項1に係る発
明の入力変換手段が、入力変数値と予め定められた係数
とを乗算する乗算手段と、この乗算手段の出力と所定の
オフセット値とを加算する加算手段と、この加算手段の
出力に従って記憶手段に対するアドレスを生成するアド
レス発生手段とを備える。
【0071】請求項6に係る発明は、請求項1ないし5
の発明において、記憶手段が複数の非線形関数各々の関
数値を格納する。
【0072】請求項7に係る発明は、入力変数値域の所
定の変域および対応の非線形関数値それぞれの浮動小数
点表示における指数部の値が一定となるように平行移動
された非線形関数の関数値の浮動小数点表示における仮
数部の値を入力変数の平行移動後の変数値をアドレスと
して格納するメモリと、浮動小数点表示された入力変数
値を上記平行移動に対応する値だけ平行移動する入力変
換手段と、この入力変換手段の出力値に従ってメモリに
対するアドレスを発生するアドレス発生手段と、メモリ
から読出された非線形関数値を上記一定の指数部の値に
従って浮動小数点表示の出力値に変換する出力変換手段
と、この出力変換手段からの出力値を上記平行移動と逆
方向に平行移動して最終出力値を生成する出力手段とを
備える。
【0073】請求項8に係る発明は、第1の値域内の固
定小数点表示の入力変数値に少なくとも予め定められた
値の指数部を付加して第2の値域に含まれる浮動小数点
表示の数値データを作成する変換手段と、この変換手段
が作成した数値データから予め定められたオフセット値
を減算する手段とを備える。予め定められた値の指数部
を有する第2の値域が、第1の値域内の数値と1対1対
応で対応する数値を含む。また、減算手段において用い
られる予め定められたオフセット値は第2の値域内の数
値と第1の値域内の対応の数値との差に等しい。
【0074】請求項9に係る発明は、第1の値域内の浮
動小数点表示された入力変数値に予め定められたオフセ
ット値を浮動小数点加算する加算手段と、この加算手段
の出力値に含まれる仮数部の数値データを抽出する抽出
手段とを備える。オフセット値は第1の値域内の各数値
を第2の値域内に平行移動させたときの移動量を示す。
また第2の値域内の浮動小数点表示された数値は同じ値
の指数部を有する。
【0075】
【作用】請求項1の発明においては、一定の精度を有す
る変数値域の変数値をアドレスとして対応の非線形関数
値の記憶手段に格納される。非線形関数値の値域はまた
一定の精度を有する。したがって、必要な精度で必要な
関数値のみが記憶手段に格納されるだけであり、効率的
な非線形変換テーブルを形成することができる。また、
入力変換手段は入力変数値を記憶手段に格納された各数
値に対応する変数値域内に含まれるように変換して記憶
手段に対するアドレスを発生しており、出力変換手段は
記憶手段から読出された関数値を入力変数値に対応する
値域および表示形式に変換しており、容易に任意の入力
変数値に対する非線形関数値を生成することができる。
【0076】請求項2の発明においては、記憶手段に格
納された関数値の変数値域および関数値域それぞれは、
浮動小数点表示における指数部が同じ値を有しており、
非線形関数値を固定された精度で効率的に記憶手段に格
納することができ、浮動小数点表示の数値データに対す
る非線形変換テーブルを効率的に作成することができ
る。
【0077】請求項3の発明においては、記憶手段は浮
動小数点表示の非線形関数値の仮数部の値のみを格納し
ており、記憶手段に格納する数値データのビット数を低
減することができ、非線形変換テーブルのためのメモリ
容量を低減することができる。
【0078】請求項4に係る発明においては、入力変換
手段は振幅が可変なノイズデータを発生するノイズ発生
手段を含んでおり、ボルツマンマシンのようなニューロ
ンユニットの出力状態が確率論的に決定されるニューラ
ルネットワークにおいて系のエネルギーが極小値(ロー
カルミニマ)に補獲されるのを防止するためのノイズを
容易に発生することができる。また、このノイズ発生手
段からのノイズデータをその振幅が減衰するように発生
していけば、確率論的にニューロンの出力状態が決定さ
れるニューラルネットワークのしきい値変換処理を容易
に実現することができる。
【0079】請求項5の発明においては、入力変換手段
が乗算手段を含んでおり、非線形関数の拡大、縮小を容
易に実現することができる。また、ニューラルネットワ
ークのしきい値変換処理に用いた場合、乗算係数を温度
Tとすれば、ニューラルネットワークのシステムの温度
を容易に変更することができる。
【0080】請求項6の発明においては、記憶手段には
複数の非線形関数各々の関数値が格納されており、1つ
の記憶手段で複数の非線形変換処理を実現することがで
き、装置占有面積を低減することができる。
【0081】請求項7の発明においては、メモリには入
力変数値域の所定の変域および対応の非線形関数値それ
ぞれの浮動小数点表示における指数部の値が一定となる
ように平行移動された非線形関数の各関数値の浮動小数
点表示の仮数部の値が、平行移動後の変数値をアドレス
として格納されており、一定の精度で非線形関数値をメ
モリ内に格納することができ、効率的に非線形変換テー
ブルを形成することができる。また、メモリには仮数部
の値のみが格納されるため、メモリの記憶容量を低減す
ることができる。また入力変換手段および出力変換手段
は、この平行移動に対応するように入力変数値および出
力値を平行移動しているだけであり、容易に入力変数値
および出力値の変換を行なうことができ、複雑な操作を
施すことなく浮動小数点表示された入力変数値の非線形
変換を行なうことができる。
【0082】請求項8に係る発明においては、入力され
た固定小数点表示の変数値に指数部を付加して第2の値
域に含まれる浮動小数点表示の数値データを作成し、こ
の作成された数値データから所定のオフセット値を減算
して入力変数値の値域内へ戻しており、容易に固定小数
点表示の数値を浮動小数点表示の数値に変換することが
できる。
【0083】請求項9に係る発明においては、入力され
た浮動小数点表示の変数値にオフセット値を加算した後
仮数部の数値データを抽出している。加算手段により、
入力変数値は指数部が一定となる値域内に移動される。
この指数部の値の一定の領域においては、変数値は仮数
部のビット数により決定される精度で配置される。した
がってこの仮数部の値を抽出することにより固定小数点
表示の数値を得ることができる。
【0084】
【実施例】
[発明の原理]本発明の具体的実施例について説明する
前に、本発明における非線形変換処理の原理的操作につ
いて説明する。
【0085】本発明においては、浮動小数点表示の数値
データを用いる演算系において、ルックアップテーブル
を用いた非線形変換回路を効率的に実現する。この非線
形変換回路においては以下に述べるような操作が行なわ
れる。
【0086】所望の非線形関数y=f(x)(yは出力
値、xは入力値を示す)において、浮動小数点表示の入
力値xおよび出力値yの値にそれぞれオフセット値を加
え、これらの値xおよびyの指数部の値が一定となる領
域に非線形関数を平行移動する。たとえば、図35に示
すシグモイド関数を例にして、入力値xの範囲を−8≦
x≦8とし、出力値yの範囲が0≦y≦1の領域を考え
る。入力値xの範囲の幅は16であり、この範囲幅にお
いて指数部の値が一定となるのは16=24 より、24
ないし25 の範囲である。すなわち、16≦x≦32の
範囲を考えれば、この範囲において指数部の値は一定で
ある。同様に、出力値yについても、幅が1であり、1
=20 より、20 ないし21 の領域を考えれば、この範
囲において数値の指数部の値は一定である。したがって
出力値yの範囲は1≦y≦2に設定する。すなわち、図
1に示すように、領域VがX方向に24だけ平行移動さ
れ、y方向に1だけ平行移動されて領域Wが得られる。
メモリには、この図1に示す領域W内の関数値を格納す
る。メモリに格納する関数値としては、関数値の仮数部
の値のみを必要なビット精度(たとえば16ビット)で
格納する。メモリのアドレスのビット数は非線形変換処
理の精度に応じて決定される。指数部の値が一定の範囲
においては、浮動小数点表示であっても数値は一定間隔
をおいて配置される。したがって、入力値が一定の精度
で均等に分割配置される。メモリへのアクセスは以下の
ようにして行なわれる。
【0087】図2に示すように、入力値xに対しオフセ
ット値を浮動小数点加算をする。このオフセット値は領
域Wと領域Vの入力値についての変位量であり、図示の
例では24である。オフセットされた入力値x′がこの
領域W内にあれば、このオフセット後の入力値x′の仮
数部から必要な上位ビットを抽出してメモリのアドレス
として利用する。オフセット後の入力値x′の仮数部か
ら取出されるビットの数は非線形変換処理に要求される
精度により決定される。もしオフセット後の入力値x′
が領域Wに存在しない場合、このメモリの最下位アドレ
スまたは最上位アドレスをメモリへ与えて対応の関数値
を読出す。たとえば、オフセット後の入力値x′が32
よりも大きい場合には、関数値1が格納された最上位ア
ドレスが発生される。一方、オフセット後の入力値x′
が16よりも小さい場合には、関数値0が格納された最
下位アドレスが発生される。
【0088】メモリから読出された出力値は仮数部の値
のみを有している。この場合、領域Wの指数部の値およ
び符号は一定であるため、この一定の符号および指数部
を読出した関数値に付加し、また仮数部には下位ビット
に0を付け加えてビット拡張して浮動小数点表現に修正
する。仮数部に付加される0の数は、メモリに格納され
た関数値のビット数とこの出力値yのフォーマットによ
り要求される仮数部のビット数とにより決定される。ビ
ット拡張操作により、図3に示すように、浮動小数点表
示された出力値y′が得られる。この出力値y′は領域
Wに含まれており、領域Vの対応の値に変換するため
に、図4に示す様にこの出力値y′から出力値オフセッ
ト(1)を減算する。これにより最終の出力値yが得ら
れる。
【0089】本発明の典型的な応用例である神経回路網
回路などにおいて必要とされる非線形変換においては、
16ビット程度の固定小数点表現程度の精度があれば必
要十分であることが大部分である。ただし、このこと
は、神経回路網回路全体が、固定小数点表示された数値
データを用いて演算を行なえば必要十分であることを意
味しない。非線形変換処理において浮動小数点表現です
べて処理を行なうことは、不必要に精度を高くしている
ことに対応し、また演算処理に時間もかかり、非効率的
である。そこで、上述のように、非線形変換処理のため
の入出力操作は、浮動小数点表示で行なえ、非線形変換
のみは固定小数点表現で扱えることにより、必要十分な
精度で高速で変換処理を行なうことができる。
【0090】次に、シグモイド関数の値域0≦f(x)
≦1において、実効的に関数値が変化する変域を−8≦
x≦8と設定した場合の精度について考える。この範囲
外の入力値に対して、x≦−8の場合にはf(x)=
0、8≦xの場合にはf(x)=1とする。この場合、
変域を制限したことに起因する出力値の打切り誤差は、
約0.0004以下(約12ビット精度)であり、誤差
の点からみてこの変域制限は妥当である。
【0091】この関数の変域および値域を浮動小数点数
値で表現すると、先に説明したように、数値の絶対値が
小さくなるにつれて指数部が変化し、精度が向上する。
しかしながら、極端に高い精度は大半の応用例において
は不必要であり、また演算効率も悪く、前述のごとく、
ほぼ16ビット程度の精度があれば十分である。したが
って、図1に示すように、この関数の変域および値域を
その指数部が一定となる領域Wに平行移動すれば、非線
形関数の表現精度は変域および値域の仮数部の精度のみ
で決定される。
【0092】平行移動後の領域Wにおいては、変域は1
6(=24 )≦x≦32(25 )に移動し、また値域が
1(=20 )≦f(x)≦2(21 )に移動する。変域
および値域いずれにおいても仮数部のみその値が変化
し、指数部の値は一定である。したがって、変域および
値域ともに、仮数部の値のみが線形に変化し、浮動小数
点表現を保ったまま実質的に固定小数点表現が実現され
ている。指数部の値が一定であるため、有意な情報は仮
数部の値のみである。ルックアップテーブルを構成する
場合には、オフセット後の入力値を直接アドレスとし
て、メモリ内に出力値の仮数部の値のみを必要とされる
精度に応じて格納する。入力値および出力値ともに16
ビットであれば、16・216=1Mビットの記憶容量の
メモリで必要とされる関数値をすべて格納することがで
き、現実的な規模のメモリを用いて非線形変換用のルッ
クアップテーブルを構成することができる。
【0093】このようなルックアップテーブルを用いる
ことにより、浮動小数点表現を損なうことなく非線形変
換用のテーブルを構成することができる。またこの方法
は、原理的に任意の形状の非線形関数に適用することが
できる。飽和型非線形関数であれば、本発明はすべてに
適用することができる。また、出力値が0および1をと
るステップ関数に対しても本発明は適用することができ
る。
【0094】また、近年信号解析、画像符号化などの分
野で用いられるウェーブレット(wavelet)変換に用いら
れるマザーウェーブレット(またはアナライジングウェ
ーブレット)と呼ばれる関数、細胞の受容野の光刺激の
応答特性をモデルとするニューロンモデルにおいて用い
られるガボール(Gabor)関数(変換)などに用いられる
局在型非線形関数であっても適用することができる。確
率的パターン分類器などに用いられる荷電粒子のポテン
シャル関数に類似するラジアルベーシスファンクション
(radial basis function)に対しても同様に適用するこ
とができる。すなわち、本発明は、入力値のある有限範
囲内において有意な出力値が生成される任意の関数に対
して適用することができる。
【0095】[実施例1]図5は、この発明の第1の実
施例である非線形変換回路の構成を示す図である。図5
において、非線形変換回路1は、必要な非線形関数値を
格納するルックアップテーブル11と、浮動小数点表示
の入力値xと所定の入力値オフセットuとを浮動小数点
加算する浮動小数点加算器12と、浮動小数点加算器1
2の出力に従ってルックアップテーブル11に対するア
ドレスを生成するアドレスデコーダ14と、ルックアッ
プテーブル11の出力値をビット拡張して所定のフォー
マットの浮動小数点表示のデータを生成するビット拡張
回路15と、ビット拡張回路15の出力値と所定の出力
値オフセットvとを浮動小数点加算(減算)する浮動小
数点加算器13を含む。
【0096】ルックアップテーブル11に格納される非
線形関数値については、予め入出力値に所定のオフセッ
ト値が加えられている。このルックアップテーブル11
に格納される非線形関数の関数値が実質的に変化する領
域を浮動小数点表示した場合、その指数部はその領域全
体にわたって一定とされている。また同様にその変域も
浮動小数点表示した場合その指数部が変域全体にわたっ
て一定である。以後、オフセット値は簡単のため正の値
を考えるが、負の場合も同様に考えることが可能であ
る。ルックアップテーブル11を構成するメモリには、
その出力値(関数値)の仮数部の必要な精度を満たす数
のビットが1ワードとして格納される。ワードの数は、
関数の変域に対して要求される精度により決定される。
たとえば、出力値が8ビットの精度(レゾリューション
は1/28 )を有し、入力値の仮数部の上位10ビット
に対応するデータ(1024ワード)を格納する場合に
は、8ビット・1Kワードの記憶容量を有するメモリで
必要な関数値をすべて格納することができる。
【0097】浮動小数点加算器12は、入力値xに対し
オフセット値を加えて指数部の値が一定の領域への平行
移動の操作を実現する。すなわち、この浮動小数点加算
器12の加算操作により、非線形関数の関数値が実質的
に変化する変域が指数部一定の領域に変換される。この
変換後の領域に含まれる入力値はその仮数部の値のみが
変化する。すなわち、変換後の領域においては、数値は
一定の間隔を有して線形に変化する。
【0098】アドレスデコーダ14は、その構成は後に
詳細に説明するが、浮動小数点加算器12により変換さ
れた入力値XCの指数部の値をルックアップテーブル1
1に格納されているデータの変域の指数部の値と比較
し、この比較結果に従ってルックアップテーブル11に
対するアドレスを生成する。比較結果が一致を示す場
合、アドレスデコーダ14は、浮動小数点加算器12か
ら与えられた数値データXCの仮数部の最上位からルッ
クアップテーブル11に格納されたワードの数に対応す
る数のビットだけ切出してルックアップテーブル11に
対するアドレスADを生成する。比較結果が不一致を示
す場合、ルックアップテーブル11に対するアドレスの
最大値または最小値を出力する。最大アドレス位置には
たとえば最大値の“1”を格納し、最小アドレス位置に
はたとえば最小値の“0”を格納する。浮動小数点加算
器12の出力する数値の指数部の値とルックアップテー
ブルに格納されているデータの変域の指数部の値の大小
に従ってこの最大アドレスおよび最小アドレスのいずれ
かが選択される。
【0099】ルックアップテーブル11から読出された
データ(関数値)は、その関数値を浮動小数点表示した
ときの仮数部のデータのみを含む。また、要求される精
度に応じて仮数部の下位ビットは切捨てられている。ビ
ット拡張回路15は、このルックアップテーブル11か
ら読出されたデータに符号データ(フラグ)、指数部デ
ータおよび仮数部の下位ビットを付加して入力値xと同
様のフォーマットの浮動小数点表示の関数値を生成す
る。ビット拡張回路15においてビット拡張される指数
部は、ルックアップテーブル11にデータ(関数値)を
格納する際に加えられた出力のオフセット値の指数部の
値に等しい。仮数部の下位ビットのビット拡張では、単
に下位ビットにデータ“0”が付加される。符号フラグ
は関数値は全て同じ符号を持ち、一定である。
【0100】浮動小数点加算器13は、ビット拡張回路
15によりビット拡張されたデータからルックアップテ
ーブル11へ格納されている関数値に加えられていたオ
フセット値を減算する。この浮動小数点加算器13によ
る浮動小数点減算操作により、ビット拡張回路15の出
力が、求める非線形関数の真の値に変換される。浮動小
数点加算器13から最終的な浮動小数点表示の出力値y
が出力される。
【0101】浮動小数点加算器12とアドレスデコーダ
14の間に設けられているラッチ16a、アドレスデコ
ーダ14とルックアップテーブル11の間に設けられて
いるラッチ16b、およびビット拡張回路15と浮動小
数点加算器23の間に設けられているラッチ16cは、
それぞれクロック信号(たとえばシステムクロック)に
同期してラッチ動作を行ない、この非線形変換回路1に
おける処理をパイプライン的に行なうために設けられ
る。パイプライン的に処理を実行することにより、高速
で変換処理を実行することができる。
【0102】図6は、図5に示すアドレスデコーダの構
成の一例を示す図である。図6において、アドレスデコ
ーダ14は、入力値オフセットuの指数部データueと
浮動小数点加算器12の出力XCの指数部データXCE
を比較し、その比較結果に従って大小を示す信号φgお
よび等しいことを示す信号φqを出力するコンパレータ
21と、コンパレータ21の出力信号φgおよびφqと
浮動小数点加算器12の出力XCの符号部データXCS
に従ってレジスタファイル23に格納された最大アドレ
スおよび最小アドレスのいずれを選択するかを示す信号
を生成する選択信号出力回路22と、コンパレータ21
の出力信号φqを選択信号φsとして受けて浮動小数点
加算器12の出力XCの仮数部データXCFとレジスタ
ファイル23から出力されたアドレスの一方を選択する
セレクタ24を含む。
【0103】入力値オフセットuの指数部データue
は、浮動小数点加算器12へ与えられる入力値オフセッ
トuから生成される。この入力値オフセットuは外部に
設けられた制御回路(図示せず)から変換動作時に与え
られる構成が用いられてもよく、またこの非線形変換回
路に含まれるレジスタに予め書込まれており、このレジ
スタに格納された入力値オフセットデータが必要に応じ
て図示しない外部のコントローラの制御の下に出力され
る構成が利用されてもよい。この構成は、出力値オフセ
ットvを発生する場合についても同様である。
【0104】コンパレータ21は、入力値オフセットu
の指数部データueが浮動小数点加算器12の出力XC
の指数部データXCEと等しい場合には出力信号φqを
活性状態(“1”)とする。コンパレータ21は、入力
値オフセットの指数部データueが浮動小数点加算器1
2の出力XCの指数部データXCEよりも大きい場合に
は出力信号φgを“1”とする。
【0105】選択信号出力回路22は、符号部データX
CSが正を示すときコンパレータ21の出力信号φgお
よびφqが入力値オフセットの指数部データueが大き
いことを示すときレジスタファイル23に対し最小アド
レスを選択する信号を発生する。選択信号出力回路22
は、またコンパレータ21の出力信号φqが等しいこと
を示すときにはレジスタファイル23の任意の一方のア
ドレスを選択する信号を発生する(本実施例においては
最小アドレスを選択する)。選択信号出力回路22は、
また、コンパレータ21の出力信号φgおよびφqが入
力値オフセットの指数部データueが小さいことを示す
とき(ともに“0”)、レジスタファイル23に対し最
大アドレスを選択する信号を発生する(符号部データX
CSが正を示すとき)。符号部データXCSが負を示す
ときには上述の大小関係が逆にされた選択信号が発生さ
れる。選択信号出力回路22に対し符号部データXCS
を与えるのは、ルックアップテーブル11に格納される
関数値の変域が負の場合をも考慮しているためである。
【0106】セレクタ24は、コンパレータ21から発
生される信号φq(φs)が等しいことを示すとき、浮
動小数点加算器12から与えられた仮数部データXCF
を選択してルックアップテーブル11に対するアドレス
ADを出力する。セレクタ24は、このコンパレータ2
1の出力信号φq(φs)が不等を示すときにはレジス
タファイル23から読出されたアドレスを選択する。こ
こで、たとえば、最大アドレスは(11…1)であり、
最小アドレスは(00…0)である。
【0107】セレクタ24から出力されるアドレスAD
は、ビット数が入力値xの仮数部のビット数よりも少な
くされてもよい(下位ビットの切捨て)。この仮数部の
ビットの切捨ては、初段の浮動小数点加算器12におい
て実行されてもよく、また図6に示すセレクタ24にお
いて行なわれてもよい。浮動小数点加算器における仮数
部のビットの切捨ての場合、その入力部において行なわ
れてもよく、またその出力部において行なわれてもよ
い。
【0108】図7は、図6に示す選択信号出力回路の構
成の一例を示す図である。図7において、選択信号出力
回路22は、符号部データXCSを受けるインバータ回
路22aと、コンパレータ21の出力信号φqを受ける
インバータ22bと、インバータ22aおよび22bの
出力とコンパレータ21の出力信号φgを受ける3入力
AND回路22cを含む。
【0109】符号部データXCSは、負の場合には1で
あり、正の場合には0である。信号φgが“1”のとき
にはオフセット後の入力変数値の指数部データXCEが
入力値オフセットの指数部データueよりも大きい。こ
のときには等しいことを示す信号φqは“0”である。
したがって符号部データXCSが正を示す“0”の場合
には、AND回路22cからは“1”の信号が出力さ
れ、レジスタファイル23に格納された最大アドレスを
選択する。信号φgおよびφqがともに“0”の場合に
は、オフセット後の入力変数値の指数部データXCEは
入力値オフセットの指数部データueよりも小さい。こ
の場合には、AND回路22cは“0”を出力し、レジ
スタファイル23に格納された最小アドレスを選択する
(ただし符号部データXCSが正を示す“0”のと
き)。符号部データXCSが“1”で負を示すときには
インバータ22aの出力は“0”となる。
【0110】この符号部データXCSの正負に応じてレ
ジスタファイル23へ伝達される信号の論理を反転する
構成は、たとえば信号φgを一方入力に受けかつ信号φ
qを反転して他方入力に受けるAND回路と、このAN
D回路の出力と符号部データXCSを受ける2入力EX
OR回路により実現することができる。EXOR回路は
この場合、符号部データXCSが正を示す“0”のとき
にはバッファとして動作し、符号部データXCSが負を
示す“1”の場合にはインバータ回路として機能する。
したがってこの場合には選択されるアドレスを変更する
ことができる。
【0111】図8は、図5に示すビット拡張回路の構成
の一例を示す図である。図8において、ビット拡張回路
15は、ルックアップテーブル11に格納されたデータ
(関数値)に加算されているオフセット値の符号部およ
び指数部のデータを格納する指数部レジスタ31と、仮
数部の下位ビットを拡張するための零発生回路32を含
む。図8においては、ルックアップテーブル11からは
16ビットのデータが出力され、仮数部Fが23ビッ
ト、指数部Eが8ビット、および符号部Sが1ビットの
32ビットフォーマットにビット拡張する構成が一例と
して示される。零発生回路32は、接地電位(論理
“0”に対応)を発生して仮数部Fの最下位7ビットを
“0”に設定する。
【0112】ビット拡張回路15においてビット拡張処
理は、一旦、図示しないラッチ回路に指数部レジスタ3
1および零発生回路32の出力値がルックアップテーブ
ル11の出力データとともに格納された後に次段のラッ
チ16cへ伝達される構成が利用されてもよい。また単
にデータバス幅を拡張する構成のみが利用されてもよ
い。
【0113】指数部レジスタ31へ与えられるオフセッ
ト値は、外部の図示しないコントローラから与えられて
もよく、また非線形変換回路内に設けられた出力値オフ
セットを格納するレジスタから与えられる構成が利用さ
れてもよい。符号部Sのデータが“0”に設定されてい
るのは、関数値域が正の領域に平行移動されているため
である。
【0114】ビット拡張回路15から出力される浮動小
数点表示のデータは、最終的に求める非線形関数値とこ
の関数値をルックアップテーブルに格納するために加え
られたオフセット値とを加算した値を持つ。
【0115】図8に示すように、容易にルックアップテ
ーブル11から読出された関数値を複雑な処理を伴うこ
となく浮動小数点表示の数値データに変換することがで
きる。
【0116】図9は図5に示すラッチ回路を利用する処
理の流れを示す図である。図5に示すラッチ16a、1
6bおよび16cはたとえばシステムクロックであるク
ロック信号に同期して動作し、与えられたデータをラッ
チし出力している。したがってこの図5に示す非線形変
換回路は4段のパイプラインステージを含む。すなわ
ち、入力値を平行移動するためのオフセット演算を行な
うステージ1と、オフセットされた入力値からアドレス
を発生するステージ2と、発生されたアドレスに従って
ルックアップテーブルから対応の関数値を読出してかつ
ビット拡張を行なうステージ3と、ビット拡張されたデ
ータを再びオフセット処理して最終の求める関数値を生
成するステージ4である。図9においては各ステージに
おいて行なわれる演算をFADD、ADec、およびM
EMで示す。FADDは、浮動小数点加算演算を示す
(これはオフセット値の減算操作も含む)。ADec
は、ルックアップテーブルに対するアドレスを発生する
ためのアドレスデコード操作である。MEMはルックア
ップテーブルから対応のデータを読出してビット幅拡張
を行なう操作である。
【0117】図9においては、4つの入力値U1、U
2、U3およびU4に対する処理の流れを一例として示
している。入力値U4が与えられると、以後の処理手続
においてはすべてのステージが動作して処理が行なわれ
ており、高速で非線形変換を実行することができる。ま
たこのパイプライン処理においては、各パイプラインス
テージは互いに独立しており、ステージ間にデータの依
存性は存在しない。したがってパイプラインハザードは
生じず、パイプラインに空きが生じることなく高速でパ
イプライン処理を実行することができる。
【0118】以上のように、この第1の実施例において
は、非線形関数をその変域および値域の指数部の値が一
定となるように平行移動して関数値をメモリに格納して
いる。したがって、入力変数値をアドレスとしてメモリ
内に関数値を格納してルックアップテーブルを構成する
ことができ、浮動小数点表示を保ったまま実質的に固定
小数点表示と同様のルックアップテーブルを実現するこ
とができ、効率的なルックアップテーブルを得ることが
できる。また、変換処理において行なわれる操作は、入
出力値を関数の平行移動に対応して平行移動する際に必
要とされる浮動小数点加減演算操作のみであり、高速か
つ効率的に非線形変換を実行することができる。また各
段においてラッチを設けることにより、非線形変換をパ
イプライン化することができ、高速で処理を実行するこ
とができる。
【0119】[実施例2]図10は、この発明の第2の
実施例である非線形変換回路の構成を概略的に示す図で
ある。この第2の実施例の非線形変換回路の基本的構成
は図5に示す第1の実施例の構成と同様である。
【0120】この図10に示す第2の実施例の非線形変
換回路の1つの大きな特徴は、ルックアップテーブル8
1のメモリ領域が複数のパーティションに分割され、各
パーティションに異なった非線形関数の関数値が格納さ
れることである。複数の非線形関数各々に対するオフセ
ット値(平行移動量)を生成するために、入力値xに対
するオフセット値を発生するためのレジスタファイル8
2およびビット拡張回路85の出力に対するオフセット
値を発生するためのレジスタファイル83が設けられ
る。ルックアップテーブル81に対するアドレスを発生
するアドレスデコーダ84の構成は、複数の非線形関数
の各々の変域に対応するアドレスを発生するために、そ
の構成は、後に説明するが、第1の実施例のものとは少
し異なる。また同様に、ビット拡張回路85も、この構
成は後に説明するが、複数の非線形関数の各値域に対応
してビット拡張を行なうために、その構成は第1の実施
例のものと少し異なる。本実施例のおいても簡単のた
め、オフセット値は全て正の値として考えるが、負の値
の場合も全く同様にして考えることが出来る。
【0121】レジスタファイル82および83は外部か
ら与えられるオフセット値を所定の位置に格納する。動
作時においては外部からの制御信号の下に必要なオフセ
ット値がレジスタファイル82および83から読出さ
れ、対応の浮動小数点加算器12および13へそれぞれ
与える。このレジスタファイル82および83から読出
されたオフセット値の指数部の値はアドレスデコーダ8
4およびビット拡張回路85へそれぞれ与えられる。
【0122】非線形変換処理動作時においては、外部コ
ントローラからの制御信号により非線形関数が指定さ
れ、この指定された非線形関数に対するオフセット値が
発生されて非線形変換処理操作が行なわれる。この非線
形変換処理操作は、実質的に図5に示す第1の実施例の
非線形変換回路のそれと同じである。第2の実施例にお
いては、処理対象となる非線形関数を変更することがで
きる点が第1の実施例と大きく異なっているだけであ
る。
【0123】図11は、ルックアップテーブルに格納さ
れる非線形関数の例を示す図である。図11において
は、シグモイド関数f(x)とその微分係数f′(x)
を関数のスロープを考慮した形態で示す。シグモイド関
数f(x)は、前述のごとく神経回路網においてニュー
ロンの出力状態を決定するために頻繁に使用される。微
分係数f′(x)は、ニューラルネットワークにおいて
誤差逆伝搬学習時に頻繁に用いられる。この誤差逆伝搬
学習時においては、一般に以下の式に従ってシナプス荷
重値の修正が行なわれる。
【0124】
【数7】
【0125】ここで、δiはニューロンiの伝搬誤差を
示し、tiはニューロンiの教師信号を示す。係数αお
よびηは慣性係数および学習係数と呼ばれる定数であ
る。また、Wij(n−1)およびΔWij(n−1)
は前の学習サイクルにおけるシナプス荷重値および荷重
値修正量を示す。
【0126】用いられるシグモイド関数f(x)は、 f(x)=1.0/(1.0+exp(−x/T)) で示される。Tはニューラルネットワークの温度と呼ば
れ、関数のスロープは係数1/Tで表わされる。温度T
は、シミュレーティッドアニーリング時において重要な
役割を果たす。
【0127】図11においては、シグモイド関数f
(x)および微分係数f′(x)は変域の幅が2となる
場合には、入力値xに対するオフセット値が3となり、
入力変数値Xが2ないし4の領域に平行移動される。出
力値Yに対しては、スロープ(または温度)に関わりな
く、シグモイド関数f(x)はその値域が0から1であ
り、ルックアップテーブルには、出力値Yは1ないし2
の値をとるように平行移動されたデータ(関数値)が格
納される。微分係数f′(x)は、その値域は0ないし
0.25であり、指数部が一定となる0.25ないし
0.5の範囲に平行移動される。
【0128】図11に明らかに見られるように、ルック
アップテーブルに格納される非線形関数の形状は任意で
ある。飽和型非線形関数および局在型非線形関数などの
変域および出力値域がともに有限である任意の関数の関
数値をルックアップテーブルに格納することができる。
【0129】図12はルックアップテーブルの構成の一
例を示す図である。図12においては、ルックアップテ
ーブル81のメモリ領域は4つのパーティション♯1〜
♯4に分割される。アドレス(00…0)ないし(01
…1)の領域にパーティション♯3および♯4が配置さ
れ、アドレス(10…0)ないし(11…1)の領域に
パーティション♯1および♯2が配置される。アドレス
のビットの数は非線形変換に要求される精度により決定
される。パーティション♯1〜♯4は、同じ〜大きさ
(記憶容量)を有する。たとえば、ルックアップテーブ
ルのメモリとして16ビット・4Kワードのメモリを用
いる場合、パーティション♯1〜♯4の各々は8ビット
・2Kワードの構成を有する。したがって、この場合、
関数値は8ビットの精度で格納される。
【0130】図12に示す4分割構成ではなく、メモリ
領域を2分割することもできる。この場合、たとえば、
パーティション♯1および♯3を1つのパーティション
とし、パーティション♯2およびパーティション♯4を
1つのパーティションとして利用することもできる。こ
の構成の場合には、たとえば16ビット・4Kワードの
メモリを2つのパーティションに分割すると、1つのパ
ーティションは8ビット・4Kワードの構成となる。
【0131】またパーティション♯1および♯2を1つ
のパーティションとして利用しパーティション♯3およ
び♯4を1つのパーティションとして利用することもで
きる。この場合には、1つのパーティションは、16ビ
ット・4Kワードのメモリを用いる場合、16ビット・
2Kワードの構成を備える。
【0132】図13は、図10に示すアドレスデコーダ
の構成の一例を示す図である。図13においては、ルッ
クアップテーブル81が図12に示すように4つのパー
ティションに分割された場合のアドレスを発生するため
の構成を示す。
【0133】図13において、アドレスデコーダ84
は、ルックアップテーブル81に格納された非線形関数
各々に対する入力値オフセットの指数部の値を格納する
オフセット値レジスタファイル101と、浮動小数点加
算器12(図10参照)から出力される数値データのう
ち指数部データXCEとオフセット値レジスタファイル
101から読出された対応の指数部データの大小を比較
し、その比較結果に従って信号φgおよびφqを出力す
るコンパレータ21と、ルックアップテーブルの各パー
ティションの最大アドレスおよび最小アドレスを格納す
るアドレスレジスタファイル103と、浮動小数点加算
器12の出力する数値データの仮数部の上位ビットXC
Fをルックアップテーブル内の各パーティションのアド
レスに修正するためのアドレス切換回路104と、コン
パレータ21の出力信号φgおよびφqならびに浮動小
数点加算器12の出力する数値データの符号部データX
CSとに従ってアドレスレジスタファイル103に格納
されたアドレスを選択するための2ビット選択信号se
l[1:0]を生成する選択信号出力回路102と、コ
ンパレータ21の出力する信号φqを選択信号φsとし
て受けてアドレス切換回路104の出力とアドレスレジ
スタファイル103から読出されたアドレスの一方を選
択するセレクタ24を含む。セレクタ24からルックア
ップテーブル81に対するアドレスADが出力される。
【0134】オフセット値レジスタファイル101は、
外部から与えられる2ビットの領域指定信号SW[1:
0]に従って外部から与えられるオフセット値(指数部
データ)を所定の領域に格納する。アドレスレジスタフ
ァイル103も同様に領域指定信号SW[1:0]に従
って各パーティションのアドレスの最大アドレスおよび
最小アドレスを示す外部から与えられるオフセット値入
力(アドレスデータ)を格納する。このオフセット値は
前にも述べたようにこの実施例では正の値を考えるが、
これは負の値であってもよく、原理的には変わらない。
【0135】アドレス領域は2つの領域に分割されてお
り上位の領域指定信号SW[1]は上位アドレス領域
(パーティション♯1および♯2の領域)または下位ア
ドレス領域(パーティション♯3および♯4の領域)を
指定する。オフセット値レジスタファイル101には、
ルックアップテーブルが16ビットの精度で関数値を格
納する場合、すなわち2種類の非線形関数の関数値を格
納する場合には2つの入力オフセット値の指数部データ
が格納される。パーティション♯1〜♯4各々に異なる
非線形関数の関数値が格納される場合、それぞれに対応
して合計4つの入力オフセット値の指数部データが格納
される。アドレスレジスタファイル103においては、
アドレス領域は2分割されているだけであり、各アドレ
ス領域に対する最大アドレスおよび最小アドレスが格納
される。すなわちアドレスレジスタファイル103には
合計4つのアドレスが格納される。これらの4つのアド
レスのうち1つのアドレスが2ビット選択信号sel
[1:0]により選択される。本実施例では、4つのパ
ーティションを用いているため、領域選択信号SWは2
ビットであるが、これはさらに多ビットであってもまた
1ビットであってもよい。
【0136】コンパレータ21は、浮動小数点加算器1
2から与えられる指数部データXCEがオフセット値レ
ジスタファイル101から出力されるオフセット値指数
部データよりも大きいときに信号φgを“1”、両指数
部データが等しいときには信号φqを“1”とする。指
数部データXCEがレジスタファイル1からの指数部デ
ータよりも小さいときには信号φgおよびφqがともに
“0”となる。
【0137】選択信号出力回路102は、上位の領域指
定信号SW[1]と浮動小数点加算器12からの符号部
データ(符号フラグ)XCSとコンパレータ21の出力
信号φgおよびφqに従って選択信号sel[1:0]
を生成する。符号部データXCSが正を示すとき、以下
のような選択信号を発生する。信号φgが“1”のとき
には領域指定信号swが指定する領域の最大アドレスを
選択する。信号φgが“0”のときには、指数部データ
XCEの方が小さいため、選択信号出力回路102はレ
ジスタファイル103における対応の領域の最小アドレ
スを選択するように選択信号sel[1:0]を発生す
る。信号φqが“1”にあるときには、最大アドレスお
よび最小アドレスいずれが選択されてもよい(セレクタ
24によりレジスタファイル103の出力は無視される
ためである)。
【0138】符号部データXCSが負を示す“1”の場
合には、レジスタファイル103における対応する領域
の最小アドレスが選択される。
【0139】図14は、選択信号出力回路から出力され
る選択信号とアドレスレジスタファイルに格納されたア
ドレスとの対応関係を示す図である。図14に示すよう
に、アドレスレジスタファイルにおいては、4つのアド
レスが格納される(図12に示すルックアップテーブル
の構成に対応している)。ルックアップテーブルのメモ
リ領域のパーティション♯1および♯2に対応して、最
小アドレスとして(100…0)が格納され、最大アド
レスとして(111…1)が格納される。パーティショ
ン♯3および♯4に対しては、最大アドレスとして(0
11…1)が格納され、最小アドレスとして(000…
0)が格納される。これら4つのアドレスが選択信号s
el[1]およびsel[0]により選択される。図1
4には選択信号sel[1]によりパーティションの選
択が行なわれ、選択信号sel[0]により最大アドレ
スおよび最小アドレスの選択を行なう構成が一例として
示される。この選択信号sel[1]およびsel
[0]と各アドレスとの対応関係は単に一例であり、別
の対応関係が用いられてもよい。
【0140】図15は、この図13に示す選択信号出力
回路の具体的構成の一例を示す図である。図15におい
て、選択信号出力回路102は、領域指定信号SW
[1]を受けるバッファ91と、符号部データXCSを
受けるインバータ92と、信号φgおよびφqを受ける
OR回路93と、インバータ92の出力とOR回路93
の出力を受ける2入力AND回路94を含む。バッファ
91から選択信号sel[1]が出力され、AND回路
94から選択信号sel[0]が出力される。図16に
この図15に示す選択信号出力回路の論理を一覧にして
示す。
【0141】図16に示すように、符号部データXCS
の値が一定の場合には、領域指定信号SW[1]の値に
従って選択信号sel[1]の値が変化し、選択された
領域において、選択信号sel[0]の値に従って最大
アドレスまたは最小アドレスが選択される。
【0142】本実施例では、オフセット値が常に正であ
ると仮定されているので、選択信号sel[1]は領域
指定信号SWのみに従って発生される構成が利用されて
いるが、オフセット値が負であるならば、それを考慮し
て選択信号sel[1]を構成する必要がある。原理的
にオフセット値を負にするメリットは少ないと考えられ
るが、負の場合も勿論利用可能である。
【0143】なお、図15に示す選択信号出力回路の構
成は単なる一例であり、オフセット値が加えられた入力
値(変換された入力値)がルックアップテーブルの対応
の非線形関数の変域内にあるか否かおよびこの変換入力
値が変域内のときには数直線においてその変域の右側に
存在するか左側に存在するかを判別する機能を有し、か
つこの判別結果に従って2ビット選択信号sel[1:
0]を発生する構成である限り、いずれの構成でも選択
信号出力回路として利用することができる。また選択信
号出力回路は、ルックアップテーブルの構成に応じてそ
の選択信号selのビット数が増減されてもよい。
【0144】図17は、図13に示すアドレス切換回路
の構成の一例を示す図である。図17において、アドレ
ス切換回路104は、浮動小数点加算器12(図10参
照)から出力された仮数部のデータのうちの必要な数の
上位ビットで構成される仮数部データXCFからルック
アップテーブルに対するアドレスを生成するアドレス形
成器104aおよび104bと、これらのアドレス形成
器104aおよび104bの出力の一方を領域指定信号
SW[1]に応じて選択するセレクタ104cを含む。
アドレス形成器104aは、仮数部データXCFにさら
にデータ“0”を最上位ビット位置に付加する。アドレ
ス形成器104bは、仮数部データXCFに対しさらに
最上位ビット位置に“1”を付加する。
【0145】ルックアップテーブルのメモリ領域が8ビ
ット・2Kワードのパーティションに分割される場合、
仮数部データXCFは10ビットで構成され、アドレス
形成器104aおよび104bからは11ビットのアド
レスが出力される。セレクタ104cは、領域指定信号
SW[1]がルックアップテーブルメモリの上位アドレ
ス領域を指定する場合にはアドレス形成器104bの出
力を選択し、領域指定信号SW[1]がルックアップテ
ーブルの下位アドレス領域を指定する場合にはアドレス
形成器104aの出力を選択する。より多くの関数各々
に対する関数値がルックアップテーブルに格納されてい
る場合であっても、単に仮数部データのさらに最上位ビ
ット(複数ビットであってもよい)位置に所定のアドレ
スビットを付加することにより容易にルックアップテー
ブルに対し処理対象となる非線形関数に対するアドレス
を形成することができる。
【0146】図18は、アドレス切換回路の他の構成を
示す図である。図18に示すアドレス切換回路104
は、1ビットデータ“1”および“0”の一方を領域指
定信号SW[1]に従って選択するセレクタ104d
と、セレクタ104dの出力するアドレスビットと仮数
部データXCFとから、このセレクタ104dの出力を
最上位ビットとするアドレスを生成するアドレス形成器
104eを含む。この図18に示す構成の場合、セレク
タ104dとしては、2つの1ビットデータの一方を選
択するだけでよく、その装置規模を低減することができ
る。アドレス形成器104eは単なる信号バスであって
もよい。
【0147】図19は、図10に示すビット拡張回路の
具体的構成の一例を示す図である。図19において、ビ
ット拡張回路85は、ルックアップテーブル81(図1
0参照)から出力される関数値の上位ビットUDBおよ
び下位ビットLDBの一方を選択信号SW[0]に従っ
て選択するセレクタ133と、ルックアップテーブルに
格納された複数の非線形関数各々に対する出力オフセッ
ト値の符号部および指数部のデータを格納する指数部レ
ジスタファイル131と、仮数部の下位ビットを拡張す
るための発生器132を含む。
【0148】指数部レジスタファイル131は、(多ビ
ットでもよい)選択信号SWに従って1つの関数に対応
する符号部データおよび指数部データを出力する。図1
2に示すように、ルックアップテーブルのメモリ領域が
4つのパーティションに分割されており、各パーティシ
ョンそれぞれに異なる関数の関数値が格納されている場
合、この指数部レジスタファイル131には4つの関数
値に対応する符号部および指数部データが格納される。
これらの種類のデータのうち指数部レジスタファイル1
31は選択信号SWに従って1つの符号部データおよび
指数部データを出力する。したがって、この指数部レジ
スタファイル131に与えられる選択信号SWは2ビッ
トで構成される。指数部レジスタファイル131からは
1ビットの符号部データと8ビットの指数部データが出
力される。
【0149】ルックアップテーブル81からは、並列に
2つの非線形関数の関数値が出力される。一方の非線形
関数の関数値は上位ビットUDBで表現され、他方の非
線形関数の関数値は下位ビットデータLDBで表現され
る。セレクタ133は、選択信号SW[0]に従って上
位ビットUDBおよび下位ビットLDBの一方を出力す
る。このセレクタ133により、図12に示す様にルッ
クアップテーブルメモリの同じアドレス領域に2つの関
数値が格納されていても必要な関数値のみを選択するこ
とができる。
【0150】零発生器132は15ビットの“0”を発
生し、仮数部の下位ビット位置に付加する。このビット
拡張回路85からは符号部1ビット、指数部8ビット、
および仮数部23ビットの32ビットの浮動小数点表示
された数値データが出力される。このビット拡張回路8
5が出力する数値データは図10に示すラッチ16cへ
伝達される。このビット拡張領域は、単に指数部レジス
タファイル131、セレクタ133および零発生器13
2の出力を伝達する信号線のみであってもよく、またレ
ジスタで構成されてもよく、また32ビットのバッファ
回路で構成されてもよい。
【0151】この図19に示すビット拡張回路85か
ら、指数部の値が一定の領域に平行移動された浮動小数
点表示の関数値が出力される。このビット拡張回路85
の出力する数値データは図10に示す浮動小数点加算器
13へ与えられる。図10に示す浮動小数点加算器13
は、オフセット値レジスタファイル83からのオフセッ
ト値をこのビット拡張回路85の出力する数値データか
ら減算し、最終的に求める浮動小数点表示された関数値
を出力する。図10に示すオフセット値レジスタファイ
ル83は、図19に示す出力レジスタファイル131と
同様の構成を備えており、非線形関数それぞれに対応す
る出力オフセット値を格納しており、選択信号に従って
対応のオフセット値(浮動小数点表示されたオフセット
値)を出力する。この図10に示すオフセット値レジス
タファイル83へのオフセット値の入力は、図19に示
す指数部レジスタファイル131への符号部データおよ
び指数部データ入力時に並行に実行される。
【0152】図10に示す構成において、ラッチ16
a、16bおよび16cは、第1の実施例の場合と同
様、この非線形変換回路における処理をパイプライン的
に実行するために設けられる。処理の流れは図9に示す
パイプラインステージにおける実行操作の流れと同じで
ある。
【0153】以上のように、この第2の実施例において
は、複数の非線形関数の関数値をルックアップテーブル
に格納するように構成したため、1つのルックアップテ
ーブルで複数の非線形変換処理を実行することができ、
非線形変換処理それぞれに対して非線形変換回路を設け
る必要がなく、装置規模を低減することができる。
【0154】[実施例3]図20はこの発明の第3の実
施例である非線形変換回路の構成を概略的に示す図であ
る。図20に示す非線形変換回路においては、入力値x
に対するオフセット値を生成するために、ノイズデータ
を発生するためのノイズ発生器141と、ノイズ発生器
141の出力するノイズデータの振幅を変更するバレル
シフタ142と、バレルシフタ142の出力と入力値オ
フセットの仮数部データとを加算する加算器143が新
たに設けられる。加算器143の出力が浮動小数点加算
器12において入力値xと浮動小数点加算される。この
浮動小数点加算器12の出力はラッチ16aを介してア
ドレスデコーダへ与えられて第1の実施例または第2の
実施例と同様の変換処理が実行される。この非線形変換
部500は図5または図10に示す非線形変換回路と同
じ構成を備える。
【0155】ノイズ発生器141は、シフトレジスタを
基本とするM系列の擬似乱数を発生させる。
【0156】バレルシフタ142は、たとえば外部から
の桁移動指定信号(これは図示せず)に従って予め定め
られた桁数だけノイズ発生器141の出力を右方向にシ
フトさせる。バレルシフタ142において桁移動されて
空となった最上位ビット位置にはノイズ発生器141の
出力の最上位ビット(符号ビット)が挿入される。すな
わちバレルシフタ142は右算術桁移動(算術右シフ
ト)の機能を実現しており、ノイズ発生器141の発生
するノイズデータを2-mで除算している。ここで、mは
バレルシフタ142における移動桁数である。
【0157】加算器143はこのバレルシフタ142の
出力と入力値オフセットの仮数部データとを加算する。
この加算器143の入力される数値はともに仮数部のデ
ータであり、通常の固定小数点表示の加算が実行され
る。この加算器143の出力はノイズが重畳された入力
値オフセットの仮数部のデータを示しており、ラッチ1
6dにおいて入力値オフセットの符号部および指数部が
付加され、浮動小数点表示の入力値オフセットが生成さ
れる。ラッチ16dにおける浮動小数点表示の入力値オ
フセットの生成操作は、単にラッチ16dの上位ビット
位置に符号部データおよび指数部データを格納するだけ
であり、第1の実施例および第2の実施例のビット拡張
操作と同様の操作である。
【0158】ノイズ発生器141は、擬似乱数によりノ
イズデータを生成している。ニューラルネットワークに
おいては、たとえば確率分布を用いるボルツマンマシン
などにおいては、学習時にはその振幅が徐々に低減され
るノイズ信号が生成される。このノイズ信号は学習フェ
ーズ(プラスフェーズおよびマイナスフェーズ)の初期
の間隠れ層のニューロンの出力状態をその前のサイクル
の出力状態の影響を受けることなく変更させることを可
能にする。またノイズ信号の振幅が徐々に減少すると、
ニューロンの出力状態が最小値(グローバルミニマム)
にアニールされて固定されることが可能となる。また通
常の想起動作時においても、ニューロンの出力状態が確
率論的に決定される場合、ニューラルネットワークがロ
ーカルミニマムに補獲されるのを防止するためにノイズ
が用いられる。この場合、振幅減衰振動するノイズ信号
がニューロンのしきい値に付加される。入力値にノイズ
データを重畳することによりこの操作が実現される。
【0159】この第3の実施例のようなノイズ発生器を
利用することにより、ボルツマンマシンなどの確率分布
に従うニューラルネットワークにおいてしきい値変換処
理部にノイズ発生機能を持たせることができる。またこ
のノイズデータは入力値オフセットの仮数部データと整
数加算されるだけであり、ノイズが加えられた入力デー
タ(ニューロン出力値)を容易に生成することができ
る。ノイズデータの浮動小数点表示も単にラッチ16d
において入力値オフセットの符号部および指数部データ
を付け加えるだけで実現されており、容易に浮動小数点
表示されたノイズ重畳データを生成することができる。
【0160】ノイズ発生器141が発生するノイズはシ
ステムクロックなどのクロック信号に同期して発生さ
れ、またラッチ16dもこのシステムクロックのような
クロック信号に同期してラッチ動作を行なっている。し
たがって、このノイズデータの発生、および入力値に対
するノイズを付加してオフセットをかける操作をパイプ
ライン的に実行することができる。バレルシフタ142
は、予め定められた桁数だけノイズ発生器141の出力
データをシフトさせる。これは外部から1クロックサイ
クル内において複数回連続的に桁移動を行なう構成が利
用されてもよい。時間の経過とともに確実に減衰振動す
るノイズ信号をシミュレートするノイズデータを生成す
ることができる。
【0161】図21は図20に示すノイズ発生器の構成
の一例を示す図である。図21において、ノイズ発生器
141は、39段の直列に接続される1ビットレジスタ
151−1〜151−39を含むシフトレジスタと、最
終段の1ビットレジスタ151−39の出力と任意の1
ビットレジスタ(図21においては第4段目の1ビット
レジスタ151−4)の出力を受ける2入力EXOR回
路152と、EXOR回路152の出力と外部から与え
られるノイズの種入力NSの一方を選択するセレクタ1
53を含む。
【0162】セレクタ153の出力は初段の1ビットレ
ジスタ151−1の入力(D)へ与えられる。種入力N
Sは39ビットを有し、初期動作時に1ビットレジスタ
151−1〜151−39に1ビットずつ格納される。
1ビットレジスタ151−1〜151−39はたとえば
システムクロックであるクロック信号CLKに同期して
与えられたデータをラッチし、次いで次段の1ビットレ
ジスタへ伝達する。
【0163】この図21に示すノイズ発生器141は、
一般にM系列の擬似乱数と呼ばれる数値データを出力す
る。M系列は、「最も長い周期の乱数系列」の意味であ
る。この乱数発生器141の動作は、先に示したよう
に、種入力NSが各1ビットレジスタ(シフトレジス
タ)に格納された後、セレクタ153をレジスタ151
−39の出力を選択する状態とする。EXOR回路15
2は、レジスタ151−4および151−39の出力の
論理値が同じ場合には“0”の信号を出力し、違う場合
には“1”の信号を出力する。クロック信号CLKに従
って、このEXOR回路152の出力はセレクタ153
を介して初段の1ビットレジスタ151−1にフィード
バックされ、クロックサイクルごとに先のサイクルにお
いてこのノイズ発生器141から出力される数値データ
と何ら依存性のない新たな数値データが出力される。ノ
イズ発生器141の出力は1ビットレジスタ151−1
〜151−39のうち入力値オフセットの仮数部のデー
タのビット数と同じビット数だけ切出されてバレルシフ
タ142へ与えられる。
【0164】図22にバレルシフタの動作を模式的に示
す。図22に示すように、バレルシフタ142は、ノイ
ズ発生器141からのノイズデータa0〜anを受け、
所定ビット数図の右方向にシフトさせる。図22におい
ては、2ビットだけ右方向にシフトさせる動作を一例と
して示す。バレルシフタ142のシフト後の最上位ビッ
ト位置部にはノイズ発生器141から与えられたノイズ
データの最上位ビットMSB(符号ビット)が格納され
る。このバレルシフタ142の出力の最上位ビットが
“1”のときにはノイズデータが負であり、“0”の場
合には正の数である(2の補数表示の場合)。これによ
り任意のノイズデータから正および負に変化するノイズ
データを生成するとともに、その振幅を変更することが
できる。振幅を徐々に小さくする場合には、このバレル
シフタにおける移動桁数を大きくすればよい。
【0165】以上のように、この第3の実施例において
は、入力値オフセットにノイズデータを加算するように
構成したため、簡易な回路構成でノイズが付加された入
力値を生成することができる。特に仮数部のデータを用
いてノイズを加算するため、浮動小数点表示された数値
データに対しても容易にノイズデータを重畳することが
できる。
【0166】[実施例4]図23はこの発明の第4の実
施例である非線形変換回路の構成を示す図である。図2
3において、非線形変換回路は、入力値xと関数のスロ
ープ1/Tとを乗算する浮動小数点乗算器161と、浮
動小数点乗算器161の出力をシステムクロックなどの
クロック信号に同期してラッチするラッチ16fと、ラ
ッチ16fの出力を非線形変換する非線形変換部500
を含む。非線形変換部500の構成は、先の図5または
図10に示す構成と同じである。
【0167】非線形関数のスロープを示すデータ1/T
は外部から与えられる。この関数のスロープデータ1/
Tは連続的に変更される。これにより、シミュレーティ
ッドアニーリングのような、ボルツマンマシンなどのニ
ューラルネットワークにおいて用いられる操作を実現す
る。浮動小数点乗算器161からは、t=x・(1/
T)が出力される。非線形変換部500は、このtを入
力値として非線形変換を実行する。したがって非線形変
換部500におけるルックアップテーブルに関数とし
て、 f(x)=1.0/(1.0+exp(−x)) が格納されている場合には、以下の2つの処理が実行さ
れている。
【0168】t=x・(1.0/T) f(t)=1.0/(1.0+exp(−t)) 図24に、この処理操作を示す。温度Tが1より大きい
温度T0のとき、入力値xに非線形関数のスロープ1/
T0を乗算すると、|x/T0|<|x|となり、入力
値オフセットを加算しても、変数x/T0は指数部一定
の領域内の変数値に変換される。温度Tが1より小さな
温度T1の場合、|x/T1|>|x|となり、入力値
オフセットを加算した場合、指数部一定の領域外にこの
オフセット後の変数値が存在する場合が生じる。しかし
ながら、この場合においても、非線形変換部500内に
設けられたアドレスデコーダより、最大アドレスまたは
最小アドレスにこの範囲外の変数値は変換される。した
がって、関数のスロープ1/Tの値がどのような値であ
っても、第1および第2の実施例において説明した処理
操作と同様にして非線形変換を確実に行なうことができ
る。
【0169】この場合、非線形変換部において1つの非
線形関数が格納されていても、図11に示すように様々
なスロープの非線形関数を用いて非線形変換を行なって
いるのと等価である。したがって、外部から非線形変換
関数のスロープ1/Tのデータを与えて、浮動小数点乗
算器161において入力値xと乗算する構成とすること
により、この関数のスロープ1/Tを連続的に変化させ
ることができ、確率分布に基づくボルツマンマシンにお
けるシミュレーティッドアニーリング操作を容易に実現
することができる。
【0170】また一般に、入力値xにある値kを乗算し
て、この乗算結果k・xを非線形変換部500に入力す
る〜操作は、非線形関数の拡大または縮小(入力値に関
して)操作を施しているのと等価である。すなわち関数
F(x)に対してF(k・x)を計算しているのに対応
する(kは拡大または縮小を表わすパラメータ)。した
がって、関数F(x)をルックアップテーブルに格納さ
れた非線形関数とすれば、この関数を拡大または縮小し
た関数を計算していることに対応する。また係数kが負
の数であれば、鏡映操作をも合わせて行なうことができ
る。
【0171】次に、指数部一定領域に非線形関数を平行
移動するための入力値オフセットOFよりも値αだけ小
さい値OF−αを入力値xに加算した場合を考える。
【0172】この場合、図25に示すように、オフセッ
ト後の入力値Xは、 X=x+OF−α=(x−α)+OF と表わされる。したがって、このオフセット後の入力値
Xを非線形変換処理すれば、関数値f(x−α)が得ら
れる。これは、図25に示すように、非線形関数150
を入力値に関して正の方向にα平行移動した非線形関数
151(破線で示す)を用いた非線形変換処理に対応す
る。すなわち、入力値オフセットOFにある定数αを減
算した値を入力値xに加算する操作は、入力値の原点を
平行移動する操作、すなわち、関数f(x)を関数f
(x−α)に平行移動する操作に対応する。
【0173】この原点の平行移動操作は、図26に示す
ように、変換部初段の浮動小数点加算器12において入
力値xとオフセット値OF−αを浮動小数点加算するこ
とにより実現される。オフセット値OF−αは、レジス
タへの入力値オフセットデータ格納時に予め値αだけ小
さくして格納しておけばよい。
【0174】図27は、この図23および図26に示す
構成を組合わせた構成を示す図である。図27におい
て、浮動小数点乗算器161は、入力値xと所定の係数
1/aを浮動小数点乗算する。浮動小数点加算器162
は、入力値オフセットOFと所定の係数−b/aの浮動
小数点加算を行なう。ラッチ16fおよび16gは、こ
の浮動小数点乗算器161および浮動小数点加算器16
2の出力動作を同期させるためおよび変換操作のパイプ
ライン化のために設けられる。浮動小数点加算器12
は、この浮動小数点乗算器161および浮動小数点加算
器162が生成した出力を浮動小数点加算する。浮動小
数点加算器12の出力は、ラッチ16aへ伝達され、非
線形変換処理が第1または第2の実施例と同様にして実
行される。この図27に示す構成の場合、ルックアップ
テーブルに格納された非線形変換関数をf(x)とする
と、入力値xに対して次式に示す出力値yが得られる。
【0175】 y=f(x/a−b/a)=f((x−b)/a) すなわち、非線形関数f(x)を拡大または縮小して、
また原点をb負方向に移動させた操作に対応する(また
は関数f(x)をbだけ正方向に平行移動させた操作に
対応する)。この図27に示す構成は、入力値xに対す
るウェーブレット変換を計算するために利用することが
できる。ウェーブレット変換では、基本ウェーブレット
(マザーウェーブレット関数またはアナライジングウェ
ーブレット関数)に相似変換と平行移動操作を施して、
様々なスケールのウェーブレットが用いられる。信号s
(t)のウェーブレット変換S(a,b)は以下のよう
に定義される(離散ウェーブレット変換の場合)。
【0176】
【数8】
【0177】基本ウェーブレットは、平均値が0であり
かつ原点から離れると急激にその振幅が小さくなる形状
を有する典型的な局在型非線形関数である。ウェーブレ
ット関数の一例としては、次式で示されるガウス型ウェ
ーブレットと呼ばれる関数がある。
【0178】
【数9】
【0179】ウェーブレット変換を用いて時間周波数分
析を行なう場合には、基本的には以下の処理操作が行な
われている。時間軸上で基本ウェーブレットをa倍に拡
大して基底関数として信号の緩やかな変動を調べる。次
いで基本ウェーブレットを1/a縮小(圧縮)して信号
の急激な変動または突発的な変化を検出する。次いでウ
ェーブレットをbずらして変化の発生時刻を検出する。
このようなウェーブレット変換は、乱流の分析、信号の
解析、画像の符号化およびパターン認識など種々の分野
において利用されている。
【0180】なお図27においては、浮動小数点加算器
162を用いて入力値オフセットOFと値−b/aの浮
動小数点加算を行なっている。値−b/aが固定値であ
り、変化しない場合には、レジスタ回路に予め入力値オ
フセットOFとこの値−b/aとを加算した値を格納し
ておき、非線形変換処理部に含まれる浮動小数点加算器
12へこの値OF−b/aへ直接与える構成が利用され
てもよい。
【0181】以上のように、第4の実施例の構成に従え
ば、入力値とある係数の乗算を行なう乗算器を用いたた
め、非線形変換関数の拡大および縮小操作を合わせて実
行することができる。この乗算器へ与える係数データを
関数のスロープを示すデータとすれば、外部からこの関
数のスロープを変更することにより、確率分布に従うボ
ルツマンマシンなどのニューラルネットワークに対して
も適用することができる。
【0182】また入力値に対して入力値オフセットの値
をシフトさせることにより、非線形関数の原点の平行移
動の操作を実現することができる。また乗算機能とこの
入力値オフセットのシフト操作とを組合わせることによ
り、ルックアップテーブルにウェーブレット関数を格納
すれば、この非線形変換回路をウェーブレット変換に適
用することができる。
【0183】[実施例5]図28は、この発明の第5の
実施例である非線形変換回路の構成を示す図である。図
28においては、2つの非線形変換回路1aおよび1b
がカスケード接続される。非線形変換回路1aのルック
アップテーブルには非線形関数f(x)の関数値が格納
され、非線形変換回路1bのルックアップテーブルには
非線形関数g(x)の関数値が格納される。非線形変換
回路1aおよび1bそれぞれの構成は第1ないし第4の
実施例において説明したものと同様である。非線形変換
回路1aおよび1bそれぞれにおいて複数の非線形関数
の関数値が格納されてもよい。
【0184】この図28に示す構成の場合、入力値xに
対し、非線形変換回路1aから関数値f(x)が出力さ
れ、非線形変換回路1bから関数値g(f(x))が出
力される。したがって、連続的に2つの非線形変換を高
速で実行することができる。
【0185】なお、第5の実施例において、カスケード
接続される非線形変換回路の数は3以上であってもよ
い。
【0186】以上のように、この第5の実施例に従え
ば、複数の非線形変換を連続して高速で実行することが
できる。
【0187】[実施例6] (a) 浮動小数点表示から固定小数点表示へのフォー
マット変換 図29に示すように、固定小数点表示における最大値M
axと最小値Minの領域[Min,Max]は、浮動
小数点表示における指数部の値が一定の領域[2E0,2
E0+1]の領域に対応させることができる。固定小数点表
示においては、そのレゾリューションは(Max−Mi
n)/2n で表わされる。一方、浮動小数点表示におい
ても、この指数部の値が一定の領域においてはレゾリュ
ーションは2E0/2m で表わされる。(Max−Mi
n)=2E0でありかつM=Nである場合には、浮動小数
点表示の数値を固定小数点表示の数値に1対1に対応さ
せることができる。以下にこの浮動小数点表示の数値を
固定小数点表示の数値に変換する手法について説明す
る。
【0188】図30は、浮動小数点表示を固定小数点表
示に変換するためのフォーマット変換装置の構成を示す
図である。図30において、フォーマット変換装置は、
浮動小数点表示の入力値xと所定の入力値オフセットO
Fとを浮動小数点加算する浮動小数点加算器171と、
浮動小数点加算器171の出力から仮数部データを抽出
する仮数部抽出器172と、この仮数部抽出器172が
抽出した出力データのうちの最上位ビットのみを反転す
る最上位ビット反転器173を含む。
【0189】浮動小数点加算器171は、入力値xが含
まれる所定の領域を、指数部の値が一定となる領域に移
動させる機能を備える。この操作は先に説明した非線形
変換装置における関数変域の平行移動操作と同様であ
る。仮数部抽出器172は、浮動小数点加算器171か
ら与えられた仮数部データのうち必要な数の上位ビット
を抽出する。この仮数部抽出器172の操作は、たとえ
ば図8に示すビット拡張回路の操作と反対である。最上
位ビット反転器173は、たとえば、仮数部抽出器17
2の出力のうち最上位ビットに対して設けられるインバ
ータバッファと、残りのビットに対して設けられる非反
転バッファとで構成される。最上位ビット反転器173
の出力yは入力値xを固定小数点表示した数値データで
ある。次にこの図30に示すフォーマット変換回路の動
作を図31を参照して説明する。
【0190】浮動小数点加算器171の操作により、あ
る固定小数点表示の領域(最大値2 s 、最小値−2s の
領域)は、浮動小数点表示において指数部の値Eが一定
の領域に変換される。すなわち、固定小数点表示におけ
る原点0は浮動小数点表示の2E +(1/2)・2E に
平行移動される。浮動小数点表示の数値データは、符号
部を除いて、 2E +F・2E F=Σai ・(1/2)i と表わされる。一方、固定小数点表示の数値データy
は、符号部を除くと、
【0191】
【数10】
【0192】と表わされる。この固定小数点表示の数値
データに対し、原点の平行移動を考慮すると、次式が得
られる。
【0193】
【数11】
【0194】各領域の幅が等しいとき、2・2S =2
E+1 −2E よりE=s+1であるから、上式の括弧の中
は次式で表わすことができる。
【0195】
【数12】
【0196】この式から明らかなように、浮動小数点表
示の仮数部のビット数と固定小数点表示の数値データの
ビット数(符号ビットを含む)を同じとしたとき、浮動
小数点表示の仮数部のデータは固定小数点表示の数値を
示していることがわかる。ただし、最上位ビットは、係
数(1/2)が加算されるため、符号ビットbs の値が
反転する。
【0197】上の式を用いた説明は、直観的に以下のよ
うに説明することもできる。領域[−2s ,2s ]内の
数値のデータは精度が同じであれば、領域[2E ,2
E+1 ]内の数値に1対1に対応させることができる。浮
動小数点表示の場合、仮数部の最小値は(000…0)
であり、最大値が(111…1)である。したがって、
浮動小数点表示の数値データの仮数部においては最上位
ビットMSBは、領域[2E ,2E +(1/2)・
2E ]においては0であり、残りの領域においては1と
なる。これは、2E +(1/2)・2E を原点とする2
の補数表示の数値データの最上位ビットを反転したもの
と同じである。したがって、この浮動小数点表示の領域
[2E ,2E+1 ]における仮数部の値は対応の固定小数
点表示の領域[−2s ,2s ]内の数値を固定小数点表
示したものと等しくなる。固定小数点表示においては
(2の補数表示のとき)、最小値(100…0)であ
り、最大値が(011…1)である。
【0198】したがって、図30に示す構成を利用する
ことにより浮動小数点表示の数値データを固定小数点表
示の数値データに変換することができる。この場合、固
定小数点表示の数値データにおける小数点の位置は、原
点が移動された値により自動的に決定される。すなわ
ち、小数点の位置は仮数部の最上位ビットから第Eビッ
ト目である。以下に具体的例を示す。
【0199】固定小数点表示の領域[−8,8]は、浮
動小数点表示の領域[16,32]に対応させることが
できる。入力値オフセットは24である。今、入力値x
として3を考える。
【0200】 3=(−1)0 ・(1+(1/2))・21 である。この数値3に入力値オフセット24を加算する
と、 27=(−1)0 ・(1+(1/2)+(1/2)-3+
(1/2)-4)・24 である。したがって仮数部は、 101100…0 となる。最上位ビットを反転すると、 0011.00…0 となり、3の固定小数点表示が得られる。小数点の位置
は16=24 より、最上位から第4番目のビットと第5
番目のビットの間である。
【0201】以上のように、固定小数点表示の領域を指
数部が一定の浮動小数点表示領域に対応させる平行移動
操作を行なうことにより、容易に浮動小数点表示された
数値データを固定小数点表示された数値データに変換す
ることができる。
【0202】(b) 固定小数点表示から浮動小数点表
示への変換 図32は、固定小数点表示の数値データを浮動小数点表
示の数値データに変換するためのフォーマット変換装置
の構成を示す図である。図32において、フォーマット
変換装置は、固定小数点表示の数値データzの最上位ビ
ットのビット値を反転する最上位ビット反転回路181
と、最上位ビット反転回路181の出力のビット拡張を
行なって浮動小数点表示の数値データを形成するビット
拡張回路182と、ビット拡張回路182から出力され
る浮動小数点表示された数値データと浮動小数点表示の
入力値オフセット(−OF)の加算を行なう浮動小数点
加算器183を含む。ビット拡張回路182は、図19
に示す構成と同様の構成を備え、符号部データ、および
指数部データ、ならびに必要な仮数部の下位ビットデー
タを付加して浮動小数点表示の数値データを形成する。
仮数部に付加される下位ビットの値は“0”である。浮
動小数点加算器183は、ビット拡張回路182から出
力された数値データから所定の入力値オフセットOFを
減算する。次にこの図32に示すフォーマット変換回路
の動作を図33を参照して説明する。
【0203】図33に示すように、領域[−M0,M
0]は指数部の値が一定の領域[2E,2E+1 ]に対応
する。最上位ビット反転回路181は、入力された固定
小数点表示の数値データzの最上位ビットのビット値を
反転する。これにより浮動小数点表示の仮数部の上位ビ
ットデータが形成される。ビット拡張回路182は、領
域[−M0,M0]と領域[2E ,2E+1 ]との間のオ
フセット値OFに従って最上位ビット反転回路181の
出力に符号部データ、指数部データ、および仮数部下位
データを追加する。この動作は図19に示すビット拡張
回路と同じである。これらの操作により、領域[2E ,
2E+1 ]に含まれる浮動小数点表示の数値データが形成
される。このビット拡張回路182により形成された浮
動小数点表示の数値データは、図31に示すフォーマッ
ト変換装置で説明したように、固定小数点表示の数値デ
ータzに対応する浮動小数点表示の数値データがオフセ
ット(平行移動)された数値データである。したがって
このビット拡張回路182の出力する数値データから入
力値オフセットOFを減算すれば対応の浮動小数点数値
データxが得られる。図32に示す装置のフォーマット
変換操作は図30に示す装置のフォーマット変換操作と
逆の操作である。以下に固定小数点表示の3を浮動小数
点表示の3に変換する例を示す。
【0204】固定小数点表示の3は、 0011.000…0 と表現される。最上位ビットのビット値を反転すると、 1011.000…0 が得られる。これに符号部データおよび指数部データを
付加すると、 (−1)0 ・(1+(1/2)+(1/2)-3+(1/
2)-4)・24 が得られる。次いでオフセット値24を減算すると、 (−1)0 ・((1/2)-3+(1/2)-4)・24 =(−1)0 ・(1+(1/2))・21 が得られる。これは浮動小数点表示した3である。
【0205】以上のように、この第6の実施例に従え
ば、容易に数値データの表現形式を変換することがで
き、処理用途に適した数値データを生成して効率的に演
算処理を実行することができる。またそれぞれが異なる
表現形式の数値データを用いて処理動作を行なう複数の
プロセッサが存在するマルチプロセッサシステムにおい
ても相互にデータの表現形式を変換してデータ通信を行
なうことができる。
【0206】
【発明の効果】以上のように、この発明に従えば、浮動
小数点表示された数値データを処理するディジタル電子
回路において、極めて高速で効率的かつ汎用性の高い非
線形変換(関数およびフィルタ)機能を実現することが
でき、情報処理および信号処理の分野に対する寄与の極
めて大きい装置を実現することができる。
【0207】すなわち、請求項1の発明に従えば、一定
の精度を有する変数値域の変数値をアドレスとして対応
の非線形関数値を記憶手段に格納している。非線形関数
値の値域も一定の精度を有している。したがって、必要
な精度で必要な関数値を記憶手段に格納するだけで非線
形変換用のルックアップテーブルを形成することがで
き、効率的に変換操作を行なうことができるとともに、
記憶容量を低減することができる。
【0208】請求項2に係る発明においては、記憶手段
に格納された関数値の変数値域および関数値域それぞれ
は浮動小数点表示における指数部が同じ値を有してお
り、非線形関数値を固定された精度で効率的に記憶手段
に格納することができ、浮動小数点表示の数値データに
対する効率的な非線形変換テーブルを容易に作成するこ
とができる。
【0209】請求項3に係る発明に従えば、記憶手段に
は浮動小数点表示の非線形関数値の仮数部の値のみを格
納しているため、記憶手段が格納する数値データのビッ
ト数を低減することができ、非線形変換テーブルのため
のメモリ容量を低減することができ、装置規模を低減す
ることができる。
【0210】請求項4に係る発明に従えば、入力変換手
段はノイズ発生手段を含んでおり、確率分布に従うボル
ツマンマシンのようなニューラルネットワークに必要と
されるしきい値変換処理を効率的に行なうことのできる
非線形変換回路を得ることができる。
【0211】請求項5に係る発明に従えば、入力変換手
段が乗算手段を含んでおり、非線形関数の拡大および縮
小を容易に実行することができ、ニューラルネットワー
クにおける温度Tを連続的に変化させるシミュレーティ
ッドアニーリングを容易に実現することができるととも
に、基本ウェーブレットのスケール変換および移動など
を行なうウェーブレット変換をも容易に実現することの
できる汎用性の高い非線形変換回路を実現することがで
きる。
【0212】請求項6に係る発明に従えば、記憶手段に
は複数の非線形変換関数が格納されており、1つの記憶
手段で複数の非線形変換処理を実現することができ、装
置占有面積を大幅に低減することができる。
【0213】請求項7に係る発明に従えば、入力変換手
段および出力変換手段は数値データの平行移動のみでメ
モリに対するアドレスの作成およびメモリから読出され
たデータからの最終出力値を形成しており、高速かつ効
率的に非線形変換処理を実現することのできる非線形関
数発生装置を得ることができる。
【0214】請求項8に係る発明に従えば、固定小数点
表示の入力変数値を所定の指数部データを付加して浮動
小数点表示の数値データに作成して所定数のオフセット
値の加算を行なって入力変数値に対応する浮動小数点表
示の数値データを作成しているため、容易に数値データ
のフォーマットの変換を行なうことができる。
【0215】請求項9に係る発明に従えば、浮動小数点
表示の入力変数値に予め定められたオフセット値を加算
した後、仮数部の数値データを抽出して入力変数値に対
応する固定小数点表示の数値データを生成しているた
め、容易に浮動小数点表示の数値データを固定小数点表
示の数値データに変換することができる。
【図面の簡単な説明】
【図1】本発明の非線形関数発生装置の動作原理を説明
するための図である。
【図2】本発明の非線形関数発生装置の動作原理を説明
するための図である。
【図3】この発明の非線形関数発生装置の動作原理を説
明するための図である。
【図4】この発明の非線形関数発生装置の動作原理を説
明するための図である。
【図5】この発明の第1の実施例である非線形変換回路
の構成を示す図である。
【図6】図5に示すアドレスデコーダの構成を概略的に
示す図である。
【図7】図6に示す選択信号出力回路の構成の一例を示
す図である。
【図8】図5に示すビット拡張回路の構成の一例を示す
図である。
【図9】図5に示す非線形変換回路のパイプライン動作
を説明するための図である。
【図10】この発明の第2の実施例である非線形変換回
路の構成を示す図である。
【図11】図10に示すルックアップテーブルに格納さ
れる非線形関数の形状の一例を示す図である。
【図12】図10に示すルックアップテーブルの構成を
概略的に示す図である。
【図13】図10に示すアドレスデコーダの構成を概略
的に示す図である。
【図14】図13に示すアドレスレジスタファイルの格
納データと選択信号との対応関係を示す図である。
【図15】図13に示す選択信号出力回路の構成の一例
を示す図である。
【図16】図15に示す選択信号出力回路の入出力信号
の真理値を示す図である。
【図17】図13に示すアドレス切換回路の構成を示す
図である。
【図18】図13に示すアドレス切換回路の他の構成を
示す図である。
【図19】図10に示すビット拡張回路の構成を示す図
である。
【図20】この発明の第3の実施例である非線形変換回
路の構成を概略的に示す図である。
【図21】図20に示すノイズ発生器の構成の一例を示
す図である。
【図22】図20に示すバレルシフタの動作を説明する
ための図である。
【図23】この発明の第4の実施例である非線形変換回
路の構成を概略的に示す図である。
【図24】図23に示す非線形変換回路の動作を説明す
るための図である。
【図25】図23に示す非線形変換回路の変更例の動作
を説明するための図である。
【図26】図25に示す処理操作を実現するための構成
を概略的に示す図である。
【図27】図23および図25に示す構成を組合せた構
成を示す図である。
【図28】この発明の第5の実施例である非線形変換回
路の構成を概略的に示す図である。
【図29】この発明の第6の実施例であるフォーマット
変換操作を説明するための図である。
【図30】浮動小数点表示の数値データを固定小数点表
示データに変換するための装置の構成を示す図である。
【図31】図30に示すフォーマット変換装置の動作を
説明するための図である。
【図32】固定小数点表示の数値データを浮動小数点表
示の数値データに変換するための装置の構成を概略的に
示す図である。
【図33】図32に示すフォーマット変換装置の動作を
説明するための図である。
【図34】ニューラルネットワークにおいて用いられる
ニューロンのモデルを説明するための図である。
【図35】ニューロンのしきい値変換処理に用いられる
非線形関数の一例を示す図である。
【図36】従来のルックアップテーブルを説明するため
の図である。
【図37】ルックアップテーブル方式に従って非線形変
換処理を行なう従来のニューラルネットワークの構成の
一例を示す図である。
【図38】浮動小数点表示の数値データのフォーマット
を示す図である。
【図39】固定小数点表示の数値データのフォーマット
を示す図である。
【符号の説明】
1 非線形変換回路 11 ルックアップテーブル 12 浮動小数点加算器 13 浮動小数点加算器 14 アドレスデコーダ 15 ビット拡張回路 16a,16b,16c ラッチ 21 コンパレータ 22 選択信号出力回路 23 レジスタファイル 24 セレクタ 81 ルックアップテーブル 82 オフセット値レジスタファイル 83 オフセット値レジスタファイル 84 アドレスデコーダ 85 ビット拡張回路 101 オフセット値レジスタファイル 102 選択信号出力回路 103 アドレスレジスタファイル 104 アドレス切換回路 131 指数部レジスタファイル 132 零発生器 133 セレクタ 141 ノイズ発生器 142 バレルシフタ 143 加算器 500 非線形変換部 161 浮動小数点乗算器 162 浮動小数点加算器 171 浮動小数点加算器 172 仮数部抽出器 173 最上位ビット反転器 181 最上位ビット反転器 182 ビット拡張回路 183 浮動小数点加算器

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 第1の一定の精度を有する変数値域の各
    変数値に対する非線形関数の値を各変数値をアドレスと
    して格納する記憶手段を備え、前記変数値域に対する前
    記非線形関数の値は第2の一定の精度を有する出力値域
    を構成し、 入力変数値を前記変数値域に含まれるように変換して前
    記記憶手段へのアドレスを発生する入力変換手段と、 前記記憶手段から読出された出力値を前記入力変数値に
    対応する値域および表示形式の出力値に変換する出力変
    換手段とを備える、非線形関数発生装置。
  2. 【請求項2】 前記変数値域の変数値は浮動小数点表示
    において同じ値の指数部を有し、かつ前記出力値域の数
    値は浮動小数点表示において同じ値の指数部を有する、
    請求項1記載の非線形関数発生装置。
  3. 【請求項3】 前記記憶手段は、前記非線形関数値の浮
    動小数点表示における仮数部の値を格納する、請求項2
    記載の非線形関数発生装置。
  4. 【請求項4】 前記入力変換手段は、 振幅が変更可能なノイズデータを発生するノイズ発生手
    段と、 前記ノイズ発生手段の出力と予め定められたオフセット
    値を加算する第1の加算手段と、 前記第1の加算手段の出力値と前記入力変数値とを加算
    する第2の加算手段と、 前記第2の加算手段の出力値に従って前記記憶手段に対
    するアドレスを生成する手段とを備える、請求項1記載
    の非線形関数発生装置。
  5. 【請求項5】 前記入力変換手段は、 前記入力変数値と予め定められた係数とを乗算する乗算
    手段と、 前記乗算手段の出力値と所定のオフセット値とを加算す
    る加算手段と、 前記加算手段の出力値に従って前記記憶手段に対するア
    ドレスを生成する手段とを備える、請求項1記載の非線
    形関数発生装置。
  6. 【請求項6】 前記記憶手段は複数の非線形関数各々の
    関数値を格納する、請求項1ないし5のいずれかに記載
    の非線形関数発生装置。
  7. 【請求項7】 入力変数値域の所定の変域および前記所
    定の変域に対応する非線形関数値域それぞれの値の浮動
    小数点表示における指数部の値が一定となるように平行
    移動された非線形関数の各関数値の浮動小数点表示の仮
    数部の値を平行移動後の入力変数値をアドレスとして格
    納する記憶手段と、 浮動小数点表示された入力変数値を前記平行移動に対応
    する値だけ平行移動する入力変換手段と、 前記入力変換手段の出力値に従って前記記憶手段に対す
    るアドレスを発生するアドレス発生手段と、 前記記憶手段から読出された非線形関数値を前記一定の
    指数部の値に従って浮動小数点表示の出力値に変換する
    出力変換手段と、 前記出力変換手段からの出力値を前記平行移動と逆方向
    に平行移動して最終出力値を生成する出力手段とを備え
    る、非線形関数発生装置。
  8. 【請求項8】 第1の値域内の固定小数点表示の入力変
    数値に少なくとも予め定められた値の指数部データを付
    加して第2の値域に含まれる浮動小数点表示の数値デー
    タを作成する変換手段を備え、前記第2の値域は前記第
    1の値域内の数値と1対1対応で対応する数値を含み、 前記変換手段が作成した数値データから予め定められた
    オフセット値を減算する手段を備え、前記オフセット値
    は前記第2の値域内の数値と前記第1の値域内の対応の
    数値との差に等しい、フォーマット変換装置。
  9. 【請求項9】 第1の値域内の浮動小数点表示された入
    力変数値に予め定められたオフセット値を加算する加算
    手段と、 前記加算手段の出力値に含まれる浮動小数点表示におけ
    る仮数部の数値データを抽出する抽出手段とを備え、 前記オフセット値は前記第1の値域内の各数値を第2の
    値域内に含まれるように平行移動させたときの移動量を
    示し、前記第2の値域内の浮動小数点表示された数値は
    すべて同じ値の指数部を有する、フォーマット変換装
    置。
JP6038589A 1994-03-09 1994-03-09 非線形関数発生装置およびフォーマット変換装置 Withdrawn JPH07248841A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6038589A JPH07248841A (ja) 1994-03-09 1994-03-09 非線形関数発生装置およびフォーマット変換装置
US08/345,693 US5506797A (en) 1994-03-09 1994-11-21 Nonlinear function generator having efficient nonlinear conversion table and format converter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6038589A JPH07248841A (ja) 1994-03-09 1994-03-09 非線形関数発生装置およびフォーマット変換装置

Publications (1)

Publication Number Publication Date
JPH07248841A true JPH07248841A (ja) 1995-09-26

Family

ID=12529491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6038589A Withdrawn JPH07248841A (ja) 1994-03-09 1994-03-09 非線形関数発生装置およびフォーマット変換装置

Country Status (2)

Country Link
US (1) US5506797A (ja)
JP (1) JPH07248841A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063633A (ja) * 1996-08-26 1998-03-06 Denso Corp ニューラルネットワークの演算装置及び車両用空調装置
JP2001500337A (ja) * 1996-09-13 2001-01-09 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) 光増幅器を備えたシステム
JP2004178021A (ja) * 2002-11-22 2004-06-24 Hiroshima Industrial Promotion Organization デジタル情報処理回路
JP2006065633A (ja) * 2004-08-27 2006-03-09 Sony Computer Entertainment Inc 演算方法および装置
JP2017016302A (ja) * 2015-06-30 2017-01-19 富士通株式会社 ボルツマンマシン回路
JP2017138760A (ja) * 2016-02-03 2017-08-10 富士通株式会社 ボルツマンマシン、ボルツマンマシンの制御方法及びボルツマンマシンを有する情報処理装置
JP2018022212A (ja) * 2016-08-01 2018-02-08 株式会社日立製作所 情報処理装置
JP2018025920A (ja) * 2016-08-09 2018-02-15 国立大学法人九州工業大学 乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワーク
CN109685198A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 用于量化神经网络的参数的方法和装置
JP2019117628A (ja) * 2017-12-26 2019-07-18 三星電子株式会社Samsung Electronics Co., Ltd. 高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ
JP2020091853A (ja) * 2018-12-07 2020-06-11 三星電子株式会社Samsung Electronics Co.,Ltd. Gemmデータフロー加速器半導体回路
US10755164B2 (en) 2014-09-30 2020-08-25 International Business Machines Corporation Apparatus and method for learning a model corresponding to time-series input data
JPWO2020075433A1 (ja) * 2018-10-10 2021-02-15 LeapMind株式会社 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム
CN112734023A (zh) * 2021-02-02 2021-04-30 中国科学院半导体研究所 应用于循环神经网络的激活函数的可重构电路

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144977A (en) * 1995-07-10 2000-11-07 Motorola, Inc. Circuit and method of converting a floating point number to a programmable fixed point number
US5943248A (en) * 1997-01-17 1999-08-24 Picturetel Corporation w-bit non-linear combiner for pseudo-random number generation
US5905663A (en) * 1997-06-02 1999-05-18 Hewlett-Packard Company Minimal circuit for detecting loss of precision in floating point numbers
JP3029812B2 (ja) * 1997-06-03 2000-04-10 株式会社ジャストシステム 演算エラー復旧方法およびその装置,並びにその方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6370265B1 (en) * 1999-11-24 2002-04-09 Direct Radiography Corp. Method for generating gray scale transfer functions for use in displaying a digital radiogram
US9189744B2 (en) * 2010-10-04 2015-11-17 Mind Over Matter Ai, Llc. Coupling of rational agents to quantum processes
US9411756B2 (en) * 2012-06-18 2016-08-09 Blackberry Limited Function approximation circuitry
JP6036228B2 (ja) * 2012-11-30 2016-11-30 株式会社デンソー 車両用映像処理装置および車両用映像処理システム
US9811503B1 (en) 2015-01-28 2017-11-07 Altera Corporation Methods for implementing arithmetic functions with user-defined input and output formats
US10283032B2 (en) 2015-10-07 2019-05-07 Samsung Display Co., Ltd. Integrated circuit for nonlinear data encoding
US10592208B2 (en) * 2018-05-07 2020-03-17 International Business Machines Corporation Very low precision floating point representation for deep learning acceleration
US10963219B2 (en) 2019-02-06 2021-03-30 International Business Machines Corporation Hybrid floating point representation for deep learning acceleration
US11327923B2 (en) 2019-09-04 2022-05-10 SambaNova Systems, Inc. Sigmoid function in hardware and a reconfigurable data processor including same
US11327713B2 (en) 2019-10-01 2022-05-10 SambaNova Systems, Inc. Computation units for functions based on lookup tables
US11327717B2 (en) * 2019-11-19 2022-05-10 SambaNova Systems, Inc. Look-up table with input offsetting
US11328038B2 (en) 2019-11-25 2022-05-10 SambaNova Systems, Inc. Computational units for batch normalization
US11836629B2 (en) 2020-01-15 2023-12-05 SambaNova Systems, Inc. Computationally efficient softmax loss gradient backpropagation
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
KR20220102824A (ko) * 2021-01-14 2022-07-21 에스케이하이닉스 주식회사 룩업 테이블을 이용하여 비선형 함수를 연산하는 반도체 장치
GB2607364B (en) 2021-11-18 2023-05-24 Imagination Tech Ltd Floating point adder
CN114491167B (zh) * 2021-12-31 2026-01-02 安谋科技(中国)有限公司 神经网络模型的运行方法、可读介质和电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4125898A (en) * 1977-01-05 1978-11-14 The Singer Company Digitally shaped noise generating system
JP2605916B2 (ja) * 1990-03-19 1997-04-30 ヤマハ株式会社 波形信号発生装置
JP2818345B2 (ja) * 1992-12-25 1998-10-30 株式会社東芝 ディジタル正弦波発生回路

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063633A (ja) * 1996-08-26 1998-03-06 Denso Corp ニューラルネットワークの演算装置及び車両用空調装置
JP2001500337A (ja) * 1996-09-13 2001-01-09 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) 光増幅器を備えたシステム
JP2004178021A (ja) * 2002-11-22 2004-06-24 Hiroshima Industrial Promotion Organization デジタル情報処理回路
JP2006065633A (ja) * 2004-08-27 2006-03-09 Sony Computer Entertainment Inc 演算方法および装置
US8694567B2 (en) 2004-08-27 2014-04-08 Sony Corporation Method and apparatus for arithmetic operation on a value represented in a floating-point format
US10755164B2 (en) 2014-09-30 2020-08-25 International Business Machines Corporation Apparatus and method for learning a model corresponding to time-series input data
JP2017016302A (ja) * 2015-06-30 2017-01-19 富士通株式会社 ボルツマンマシン回路
JP2017138760A (ja) * 2016-02-03 2017-08-10 富士通株式会社 ボルツマンマシン、ボルツマンマシンの制御方法及びボルツマンマシンを有する情報処理装置
JP2018022212A (ja) * 2016-08-01 2018-02-08 株式会社日立製作所 情報処理装置
JP2018025920A (ja) * 2016-08-09 2018-02-15 国立大学法人九州工業大学 乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワーク
JP2019079531A (ja) * 2017-10-19 2019-05-23 三星電子株式会社Samsung Electronics Co., Ltd. ニューラルネットワークのパラメータを量子化する装置及びその方法
CN109685198B (zh) * 2017-10-19 2024-04-05 三星电子株式会社 用于量化神经网络的参数的方法和装置
CN109685198A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 用于量化神经网络的参数的方法和装置
US11593625B2 (en) 2017-10-19 2023-02-28 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
JP2019117628A (ja) * 2017-12-26 2019-07-18 三星電子株式会社Samsung Electronics Co., Ltd. 高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ
US12663988B2 (en) 2017-12-26 2026-06-23 Samsung Electronics Co., Ltd. Memory lookup computing mechanisms
US11775294B2 (en) 2017-12-26 2023-10-03 Samsung Electronics Co., Ltd. Memory lookup computing mechanisms
US11947961B2 (en) 2017-12-26 2024-04-02 Samsung Electronics Co., Ltd. Memory lookup computing mechanisms
JPWO2020075433A1 (ja) * 2018-10-10 2021-02-15 LeapMind株式会社 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム
US12430533B2 (en) 2018-10-10 2025-09-30 Maxwell, Inc. Neural network processing apparatus, neural network processing method, and neural network processing program
JP2020091853A (ja) * 2018-12-07 2020-06-11 三星電子株式会社Samsung Electronics Co.,Ltd. Gemmデータフロー加速器半導体回路
US12164593B2 (en) 2018-12-07 2024-12-10 Samsung Electronics Co., Ltd. Dataflow accelerator architecture for general matrix-matrix multiplication and tensor computation in deep learning
CN112734023B (zh) * 2021-02-02 2023-10-13 中国科学院半导体研究所 应用于循环神经网络的激活函数的可重构电路
CN112734023A (zh) * 2021-02-02 2021-04-30 中国科学院半导体研究所 应用于循环神经网络的激活函数的可重构电路

Also Published As

Publication number Publication date
US5506797A (en) 1996-04-09

Similar Documents

Publication Publication Date Title
US5506797A (en) Nonlinear function generator having efficient nonlinear conversion table and format converter
CN112162723B (zh) 一种量子减法运算方法、装置、电子装置及存储介质
CN112740171B (zh) 乘法和累加电路
CN112114776B (zh) 一种量子乘法运算方法、装置、电子装置及存储介质
Wang et al. A high-speed and low-complexity architecture for softmax function in deep learning
Yang et al. Design space exploration of neural network activation function circuits
Zamanlooy et al. Efficient VLSI implementation of neural networks with hyperbolic tangent activation function
KR102841627B1 (ko) 확률 적응적 자원 할당을 통한 신경망 하드웨어 가속
CN112651496A (zh) 一种处理激活函数的硬件电路及芯片
US11341400B1 (en) Systems and methods for high-throughput computations in a deep neural network
Rajput et al. VLSI implementation of transcendental function hyperbolic tangent for deep neural network accelerators
JP7586604B2 (ja) 大規模並列ニューラル推論エンジン用のマルチモード低精度内積計算回路
CN113168310B (zh) 用于转换数字的硬件模块
Lin et al. Fpga-based reservoir computing with optimized reservoir node architecture
JPH05216627A (ja) 乗算器および乗算方法
Kouretas et al. Logarithmic number system for deep learning
JP2024506441A (ja) 正規化関数のためのデジタル回路機構
Barik et al. Efficient ASIC and FPGA implementation of cube architecture
Temenos et al. A stochastic computing sigma-delta adder architecture for efficient neural network design
Trinh et al. Efficient data encoding for convolutional neural network application
George et al. IEEE 754 floating-point addition for neuromorphic architecture
JP6918358B2 (ja) 近似計算装置、近似計算方法及びプログラム
CN112214200B (zh) 一种量子减法运算方法、装置、电子装置及存储介质
Chen et al. Neural network implementation on a FPGA
Aizaz et al. State-of-art analysis of multiplier designs for image processing and convolutional neural network applications

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010605