JPH0784975A - 情報処理装置および学習演算処理方法 - Google Patents
情報処理装置および学習演算処理方法Info
- Publication number
- JPH0784975A JPH0784975A JP5225450A JP22545093A JPH0784975A JP H0784975 A JPH0784975 A JP H0784975A JP 5225450 A JP5225450 A JP 5225450A JP 22545093 A JP22545093 A JP 22545093A JP H0784975 A JPH0784975 A JP H0784975A
- Authority
- JP
- Japan
- Prior art keywords
- learning
- bits
- value
- weight value
- predetermined number
- 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.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 固定小数点で且つ単精度演算を行なうニュー
ロコンピュータにおいて,重み値や逆伝搬誤差のビット
数が少ないために,学習が進行するに従って桁落ちが生
じて学習が停滞することを防止し,高速で且つ高精度な
学習を実現する。 【構成】 ニューロコンピュータの学習において,重み
値を倍精度で保存しておき,ニューロンの出力値,逆伝
搬誤差を計算するときには,単精度演算を行ない,重み
値を修正するときの加算では倍精度演算を行なう。ま
た,学習の進行に伴い,一定の条件を満たしたら逆伝搬
誤差の小数点位置をずらす。あるいは,小数点位置の違
う逆伝搬誤差を持つ複数のマイクロプログラムを用意し
ておき,学習させる問題に応じて適当なプログラムを選
択して実行する。
ロコンピュータにおいて,重み値や逆伝搬誤差のビット
数が少ないために,学習が進行するに従って桁落ちが生
じて学習が停滞することを防止し,高速で且つ高精度な
学習を実現する。 【構成】 ニューロコンピュータの学習において,重み
値を倍精度で保存しておき,ニューロンの出力値,逆伝
搬誤差を計算するときには,単精度演算を行ない,重み
値を修正するときの加算では倍精度演算を行なう。ま
た,学習の進行に伴い,一定の条件を満たしたら逆伝搬
誤差の小数点位置をずらす。あるいは,小数点位置の違
う逆伝搬誤差を持つ複数のマイクロプログラムを用意し
ておき,学習させる問題に応じて適当なプログラムを選
択して実行する。
Description
【0001】
【産業上の利用分野】本発明は,音声認識,画像処理,
制御などに利用するニューロコンピュータにおいて,ニ
ューラルネットワーク動作を固定小数点且つ単精度演算
処理で行うニューロコンピュータ内のニューロンにおけ
る演算処理に係り,更に詳しくは,該単精度演算処理に
用いる各演算器を用いて,より高精度な学習演算処理を
可能とする情報処理装置および高精度学習演算処理方法
に関する。
制御などに利用するニューロコンピュータにおいて,ニ
ューラルネットワーク動作を固定小数点且つ単精度演算
処理で行うニューロコンピュータ内のニューロンにおけ
る演算処理に係り,更に詳しくは,該単精度演算処理に
用いる各演算器を用いて,より高精度な学習演算処理を
可能とする情報処理装置および高精度学習演算処理方法
に関する。
【0002】
【従来の技術】ニューラルネットワークは認識,知識処
理などの情報処理に応用されている。ニューラルネット
ワークは入力と期待する出力値を与えれば,学習により
自己組織化が可能である。そのため,プログラムを必要
とせず,その応用が期待されている。
理などの情報処理に応用されている。ニューラルネット
ワークは入力と期待する出力値を与えれば,学習により
自己組織化が可能である。そのため,プログラムを必要
とせず,その応用が期待されている。
【0003】学習アルゴリズムの一つに日経エレクトロ
ニクス1987.8.10(NO.427)115〜121頁において紹介され
ている”バックプロパゲーション”が知られている。以
下に,バックプロパゲーションを説明する。
ニクス1987.8.10(NO.427)115〜121頁において紹介され
ている”バックプロパゲーション”が知られている。以
下に,バックプロパゲーションを説明する。
【0004】図2にニューラルネットを構成するニュー
ロンのモデルを示す。ニューロンは他のニューロンから
入力xiを入力する。そして,それぞれの入力xiに対
し,重み値wijで重み付けを行い,その総和である内部
エネルギーuiを計算する。この値を例えばシグモイド
関数fによって変換し,出力xiを出力する。ここで,
重み値wijは,ニューロンjにおいて,入力するニュー
ロンiに対する重み値である。
ロンのモデルを示す。ニューロンは他のニューロンから
入力xiを入力する。そして,それぞれの入力xiに対
し,重み値wijで重み付けを行い,その総和である内部
エネルギーuiを計算する。この値を例えばシグモイド
関数fによって変換し,出力xiを出力する。ここで,
重み値wijは,ニューロンjにおいて,入力するニュー
ロンiに対する重み値である。
【0005】
【数1】
【0006】
【数2】
【0007】複数のニューロンを結合することによっ
て,ニューラルネットを構成できる。そして,重み値w
ijを変えることによって,様々な情報処理を行うことが
可能である。
て,ニューラルネットを構成できる。そして,重み値w
ijを変えることによって,様々な情報処理を行うことが
可能である。
【0008】図3に階層型ニューラルネットを示す。本
図は,入力層,中間層,出力層の3階層から構成されて
いるが,中間層を複数とする構成にしてもよい。入力に
対し,情報処理を行い出力する順方向に動作するモード
と,与えた入力に対して期待する出力値を外部から与
え,出力層側から入力層側へ向かって,重み値wijを修
正していく逆方向に動作するモードを持つ。その時の重
み値wijの修正値Δwijをニューロンjでは
図は,入力層,中間層,出力層の3階層から構成されて
いるが,中間層を複数とする構成にしてもよい。入力に
対し,情報処理を行い出力する順方向に動作するモード
と,与えた入力に対して期待する出力値を外部から与
え,出力層側から入力層側へ向かって,重み値wijを修
正していく逆方向に動作するモードを持つ。その時の重
み値wijの修正値Δwijをニューロンjでは
【0009】
【数3】
【0010】とする。ここで,nは学習の回数,η,α
は定数であり,それぞれ学習係数,モーメント係数と呼
ばれる。また,関数δを以下のように決定する。
は定数であり,それぞれ学習係数,モーメント係数と呼
ばれる。また,関数δを以下のように決定する。
【0011】出力層のニューロンkでは,期待する出力
値をtkとすると,
値をtkとすると,
【0012】
【数4】
【0013】で与えられ,中間層のニューロンjでは,
【0014】
【数5】
【0015】と決める。ここで,関数f’は関数fの導
関数である。
関数である。
【0016】以上のように修正値Δwを決定し,重み値
wを修正していく。そして,出力層の出力値が期待する
値となるまで,以上の学習を繰り返す。
wを修正していく。そして,出力層の出力値が期待する
値となるまで,以上の学習を繰り返す。
【0017】一般に,ニューラルネットの解明及びその
応用の研究は,逐次計算機上でソフトウェアによるシミ
ュレーションによって行われている。しかし,非常に多
くの,例えば数千,数万ニューロンで構成する大規模な
ニューラルネットの学習を行うには,膨大な計算時間が
必要となる。また,一般に学習には非常に多くの反復を
必要とする場合が多い。そのため,大規模なニューラル
ネットの能力は良く分かっていないのが現状である。
応用の研究は,逐次計算機上でソフトウェアによるシミ
ュレーションによって行われている。しかし,非常に多
くの,例えば数千,数万ニューロンで構成する大規模な
ニューラルネットの学習を行うには,膨大な計算時間が
必要となる。また,一般に学習には非常に多くの反復を
必要とする場合が多い。そのため,大規模なニューラル
ネットの能力は良く分かっていないのが現状である。
【0018】一方,専用のハードウェアによってニュー
ラルネットを高速に計算させる試みがある。その一つで
ある,”完全ディジタルニューロWSIの基本設計”,
1989年電子情報通信学会春季全国大会講演論文集7
分冊SD-1-5,291〜292ページで発表された方式を図4に
示す。図4において,8はニューロン計算ユニット,9
はバスである。各ニューロン計算ユニット8はバスによ
って結合している。
ラルネットを高速に計算させる試みがある。その一つで
ある,”完全ディジタルニューロWSIの基本設計”,
1989年電子情報通信学会春季全国大会講演論文集7
分冊SD-1-5,291〜292ページで発表された方式を図4に
示す。図4において,8はニューロン計算ユニット,9
はバスである。各ニューロン計算ユニット8はバスによ
って結合している。
【0019】各ニューロン計算ユニット8のうち一つが
選択され,その出力値をバス9へ次々と出力する。各ニ
ューロン計算ユニット8は,出力しているニューロンに
対する重み値をメモリから読みだして重み付けし,その
積を累積加算する。バス9へ出力するときは,その値を
数1のシグモイド関数によって変換し出力する。重み付
け回路は時分割で動作させる。各ニューロン計算ユニッ
ト8が一通りバス9へ出力すれば,すべてが数2の計算
を行うことができる。以下,これを時分割バス結合方式
と呼ぶ。
選択され,その出力値をバス9へ次々と出力する。各ニ
ューロン計算ユニット8は,出力しているニューロンに
対する重み値をメモリから読みだして重み付けし,その
積を累積加算する。バス9へ出力するときは,その値を
数1のシグモイド関数によって変換し出力する。重み付
け回路は時分割で動作させる。各ニューロン計算ユニッ
ト8が一通りバス9へ出力すれば,すべてが数2の計算
を行うことができる。以下,これを時分割バス結合方式
と呼ぶ。
【0020】このような時分割バスを用いた汎用学習型
ニューロコンピュータの構成図を図5に示す。ニューロ
コンピュータ10は,ニューラルネット動作を行う複数
のニューロボード12と制御ボード11から構成され
る。また,制御ボード11はニューラルネットワーク制
御装置13とコントロールストレッジ15,グローバル
メモリ16から構成される。
ニューロコンピュータの構成図を図5に示す。ニューロ
コンピュータ10は,ニューラルネット動作を行う複数
のニューロボード12と制御ボード11から構成され
る。また,制御ボード11はニューラルネットワーク制
御装置13とコントロールストレッジ15,グローバル
メモリ16から構成される。
【0021】ニューラルネットワーク制御装置13は,
コントロールストレッジ15に格納されるマイクロプロ
グラムコードをデコード,実行することでニューロコン
ピュータ10を制御する。なお,ニューラルネットワー
ク制御装置13は,コントロールストレッジ制御回路1
4a,ワークステーション18とニューロコンピュータ
10の通信手段として外部バスを設け,この外部バスを
制御するニューロン制御回路14cと,入力層ニューロ
ンの値や学習係数などを格納するグローバルメモリ制御
回路14dから構成される。更に,外部バスはメモリ,
CPU,SCSIボードに接続され,SCSIボードは
マイクロプログラムコードを発生させるマイクロジェネ
レータを持つワークステーション18に接続される。
コントロールストレッジ15に格納されるマイクロプロ
グラムコードをデコード,実行することでニューロコン
ピュータ10を制御する。なお,ニューラルネットワー
ク制御装置13は,コントロールストレッジ制御回路1
4a,ワークステーション18とニューロコンピュータ
10の通信手段として外部バスを設け,この外部バスを
制御するニューロン制御回路14cと,入力層ニューロ
ンの値や学習係数などを格納するグローバルメモリ制御
回路14dから構成される。更に,外部バスはメモリ,
CPU,SCSIボードに接続され,SCSIボードは
マイクロプログラムコードを発生させるマイクロジェネ
レータを持つワークステーション18に接続される。
【0022】図5のニューロチップ17は生物の脳細胞
に相当する複数のニューロンから構成される。ニューロ
チップ17内の1個のニューロンのブロック図を図1に
示す。ニューロン1へのデータの入出力は入出力バスを
介して行なわれる。また,ニューロン1に対する命令
は,命令バスによりニューロン1に入力され,制御回路
を介して各論理回路へ伝達される。各データの記憶装置
としては,レジスタファイル2,RAM3a,RAM3
bがある。
に相当する複数のニューロンから構成される。ニューロ
チップ17内の1個のニューロンのブロック図を図1に
示す。ニューロン1へのデータの入出力は入出力バスを
介して行なわれる。また,ニューロン1に対する命令
は,命令バスによりニューロン1に入力され,制御回路
を介して各論理回路へ伝達される。各データの記憶装置
としては,レジスタファイル2,RAM3a,RAM3
bがある。
【0023】多段のパイプライン処理を行なうためのフ
リップフロップ(FF)群は,FF4a,FF4b,F
F4c,FF4d,FF4eの5個から構成される。ニ
ューロン1内のバスはA,B,C,D,E,F,Gの7
本のバスから構成される。
リップフロップ(FF)群は,FF4a,FF4b,F
F4c,FF4d,FF4eの5個から構成される。ニ
ューロン1内のバスはA,B,C,D,E,F,Gの7
本のバスから構成される。
【0024】ニューラルネットの専用ハードウェアで
は,時分割バス結合方式に加えて,高速に演算を行なう
ため,固定小数点演算方式を採用している。また,上述
したようにハードウェアでは,他のニューロンの出力と
重み値との累積加算が重要である。これに関わる演算器
の内,乗算器5はチップの中でも大きな面積を占める回
路の一つである。そこで,チップのコスト低減や,1チ
ップの中に多くのニューロン計算ユニットを入れて並列
度を上げるために,乗算器5の入力ビット数を制限し
て,チップ面積を小さくする必要がある。これに伴いハ
ードウェアでは乗算器5の入力をそれぞれ16ビットと
10ビットに制限している。ALU6は入力ビット数を
増やしても,チップ面積は乗算器ほど大きくならないの
で,32ビットに設定している。
は,時分割バス結合方式に加えて,高速に演算を行なう
ため,固定小数点演算方式を採用している。また,上述
したようにハードウェアでは,他のニューロンの出力と
重み値との累積加算が重要である。これに関わる演算器
の内,乗算器5はチップの中でも大きな面積を占める回
路の一つである。そこで,チップのコスト低減や,1チ
ップの中に多くのニューロン計算ユニットを入れて並列
度を上げるために,乗算器5の入力ビット数を制限し
て,チップ面積を小さくする必要がある。これに伴いハ
ードウェアでは乗算器5の入力をそれぞれ16ビットと
10ビットに制限している。ALU6は入力ビット数を
増やしても,チップ面積は乗算器ほど大きくならないの
で,32ビットに設定している。
【0025】ハードウェアにおける各変数のビット数
は,乗算器5の入力に合わせて,重み値16ビット,ブ
ロードキャストされるニューロンの出力値や逆伝搬誤
差,学習係数等は10ビットである。重み値,出力値,
逆伝搬誤差のフォーマットは図6のようになっている。
は,乗算器5の入力に合わせて,重み値16ビット,ブ
ロードキャストされるニューロンの出力値や逆伝搬誤
差,学習係数等は10ビットである。重み値,出力値,
逆伝搬誤差のフォーマットは図6のようになっている。
【0026】次に,ニューロコンピュータ10を用いた
バックプロパゲーション学習の動作を,図1を用いて図
7の処理フローに対応させながら説明する。
バックプロパゲーション学習の動作を,図1を用いて図
7の処理フローに対応させながら説明する。
【0027】ステップ30では,各層のニューロンの出
力値を計算する。図8にステップ30の詳細を示す。ス
テップ33では,前層の各ニューロンの出力値とそのニ
ューロンにつながるシナプスの重み値とを掛け合わせ
て,累積加算をとり内部エネルギーを計算する。すなわ
ち,前層の各ニューロンがマシンサイクル毎に出力値を
ブロードキャストする。該層の各ニューロンは,パイプ
ライン処理によりブロードキャストされた出力値を取り
込み,RAM3a,RAM3bに格納してある重み値を
読みだし,出力値との累積加算を行なう。ステップ34
では,内部エネルギーをシグモイド変換により変換して
出力値を計算する。ここで,シグモイド変換はチェビシ
ェフ近似などの多項式近似により計算を行なう。計算さ
れた出力値は各ニューロンのレジスタファイル2に格納
される。以上のステップ30の処理の結果,各層のニュ
ーロンの出力値が計算される。
力値を計算する。図8にステップ30の詳細を示す。ス
テップ33では,前層の各ニューロンの出力値とそのニ
ューロンにつながるシナプスの重み値とを掛け合わせ
て,累積加算をとり内部エネルギーを計算する。すなわ
ち,前層の各ニューロンがマシンサイクル毎に出力値を
ブロードキャストする。該層の各ニューロンは,パイプ
ライン処理によりブロードキャストされた出力値を取り
込み,RAM3a,RAM3bに格納してある重み値を
読みだし,出力値との累積加算を行なう。ステップ34
では,内部エネルギーをシグモイド変換により変換して
出力値を計算する。ここで,シグモイド変換はチェビシ
ェフ近似などの多項式近似により計算を行なう。計算さ
れた出力値は各ニューロンのレジスタファイル2に格納
される。以上のステップ30の処理の結果,各層のニュ
ーロンの出力値が計算される。
【0028】ステップ31では,各層のニューロンの逆
伝搬誤差を計算する。図9にステップ31の詳細フロー
を示す。ステップ35では,出力層ニューロンの逆伝搬
誤差を計算する。図10にステップ35の詳細フローを
示す。ステップ37では,レジスタファイル2から出力
値を読みだし,出力層ニューロンの出力値の微分値を計
算する。ステップ38では,レジスタファイル2から出
力値を読みだし,入力バスより教師信号を取り込み,各
出力層ニューロンの出力値と教師信号の誤差を計算す
る。ステップ39では,ステップ37で計算した出力値
の微分値とステップ38で計算した誤差を掛け合わせて
逆伝搬誤差を計算する。ステップ40では,ステップ3
9で計算した逆伝搬誤差をレジスタファイル2に格納す
る。以上のステップ35の処理の結果,出力層の逆伝搬
誤差が計算されレジスタファイル2に格納される。
伝搬誤差を計算する。図9にステップ31の詳細フロー
を示す。ステップ35では,出力層ニューロンの逆伝搬
誤差を計算する。図10にステップ35の詳細フローを
示す。ステップ37では,レジスタファイル2から出力
値を読みだし,出力層ニューロンの出力値の微分値を計
算する。ステップ38では,レジスタファイル2から出
力値を読みだし,入力バスより教師信号を取り込み,各
出力層ニューロンの出力値と教師信号の誤差を計算す
る。ステップ39では,ステップ37で計算した出力値
の微分値とステップ38で計算した誤差を掛け合わせて
逆伝搬誤差を計算する。ステップ40では,ステップ3
9で計算した逆伝搬誤差をレジスタファイル2に格納す
る。以上のステップ35の処理の結果,出力層の逆伝搬
誤差が計算されレジスタファイル2に格納される。
【0029】ステップ36では,中間層ニューロンの逆
伝搬誤差を計算する。図11にステップ36の詳細フロ
ーを示す。ステップ41では,レジスタファイル2から
出力値を読みだし,中間層ニューロンの出力値の微分値
を計算する。ステップ42では,出力層側の各ニューロ
ンの逆伝搬誤差と,そのニューロンにつながるシナプス
の重み値とを掛け合わせて累積加算をとる。すなわち,
出力層側の各ニューロンが,マシンサイクル毎に逆伝搬
誤差をブロードキャストする。該層の各ニューロンは,
パイプライン処理によりブロードキャストされた逆伝搬
誤差を取り込み,RAM3a,RAM3bに格納してあ
る重み値を読みだし,逆伝搬誤差との累積加算を行な
う。ステップ43では,ステップ41で計算した出力値
の微分値と,ステップ42で計算した重み値と逆伝搬誤
差の累積加算を掛け合わせ,逆伝搬誤差を計算する。ス
テップ44では,ステップ43で計算した逆伝搬誤差を
レジスタファイル2に格納する。以上のステップ36の
処理の結果,中間層の逆伝搬誤差が計算されレジスタフ
ァイル2に格納される。中間層が複数ある場合は,ステ
ップ36の処理を中間層の数だけ繰り返す。
伝搬誤差を計算する。図11にステップ36の詳細フロ
ーを示す。ステップ41では,レジスタファイル2から
出力値を読みだし,中間層ニューロンの出力値の微分値
を計算する。ステップ42では,出力層側の各ニューロ
ンの逆伝搬誤差と,そのニューロンにつながるシナプス
の重み値とを掛け合わせて累積加算をとる。すなわち,
出力層側の各ニューロンが,マシンサイクル毎に逆伝搬
誤差をブロードキャストする。該層の各ニューロンは,
パイプライン処理によりブロードキャストされた逆伝搬
誤差を取り込み,RAM3a,RAM3bに格納してあ
る重み値を読みだし,逆伝搬誤差との累積加算を行な
う。ステップ43では,ステップ41で計算した出力値
の微分値と,ステップ42で計算した重み値と逆伝搬誤
差の累積加算を掛け合わせ,逆伝搬誤差を計算する。ス
テップ44では,ステップ43で計算した逆伝搬誤差を
レジスタファイル2に格納する。以上のステップ36の
処理の結果,中間層の逆伝搬誤差が計算されレジスタフ
ァイル2に格納される。中間層が複数ある場合は,ステ
ップ36の処理を中間層の数だけ繰り返す。
【0030】以上のステップ31の処理の結果,各ニュ
ーロンの逆伝搬誤差が計算される。
ーロンの逆伝搬誤差が計算される。
【0031】ステップ32では,ステップ30で計算し
た出力値とステップ31で計算した逆伝搬誤差を用い
て,各ニューロンのRAM3a,RAM3bに格納して
ある重み値を修正する。簡単のためにモーメント係数は
0であるとする。図12にステップ32の詳細フローを
示す。ステップ45では,まずレジスタファイル2から
逆伝搬誤差を読みだし,入力バスより前の層のニューロ
ンの出力値を取り込む。そして,それらを掛けて数3に
基づき重み値の修正値を計算する。ステップ46では,
RAM3a,RAM3bに格納してある重み値を読みだ
し,ステップ45で計算した修正値を加えて,重み値を
修正する。ステップ47では,ステップ46で修正した
重み値を,RAM3a,RAM3b再度格納する。以上
のステップ32の処理により,RAM3a,RAM3b
に格納してある重み値の修正が行なわれる。各層毎にス
テップ32を繰り返し,全ての層について重み値を修正
する。
た出力値とステップ31で計算した逆伝搬誤差を用い
て,各ニューロンのRAM3a,RAM3bに格納して
ある重み値を修正する。簡単のためにモーメント係数は
0であるとする。図12にステップ32の詳細フローを
示す。ステップ45では,まずレジスタファイル2から
逆伝搬誤差を読みだし,入力バスより前の層のニューロ
ンの出力値を取り込む。そして,それらを掛けて数3に
基づき重み値の修正値を計算する。ステップ46では,
RAM3a,RAM3bに格納してある重み値を読みだ
し,ステップ45で計算した修正値を加えて,重み値を
修正する。ステップ47では,ステップ46で修正した
重み値を,RAM3a,RAM3b再度格納する。以上
のステップ32の処理により,RAM3a,RAM3b
に格納してある重み値の修正が行なわれる。各層毎にス
テップ32を繰り返し,全ての層について重み値を修正
する。
【0032】図1のニューロンブロック図を用いて,学
習処理をマシンサイクル毎の動作に区切って説明する。
出力層,中間層の逆伝搬誤差の計算については,それぞ
れ図10,図11のPADに対応させて,重み値修正に
ついては図12のPADに対応させて詳細に説明する。
なお,データなどの流れは,図1を基に説明する。ま
た,以下個条書された文は,マイクロプログラムコード
に対応したもので,文頭の数字はスタートした時点から
の,マシンサイクル数を表す。
習処理をマシンサイクル毎の動作に区切って説明する。
出力層,中間層の逆伝搬誤差の計算については,それぞ
れ図10,図11のPADに対応させて,重み値修正に
ついては図12のPADに対応させて詳細に説明する。
なお,データなどの流れは,図1を基に説明する。ま
た,以下個条書された文は,マイクロプログラムコード
に対応したもので,文頭の数字はスタートした時点から
の,マシンサイクル数を表す。
【0033】まず図10の出力層の逆伝搬誤差の計算に
ついて説明する。ステップ37では,出力値の微分値を
計算する。これをマシンサイクル0から3までの処理に
より行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP(NO OPERATION:ニューロン1
に何も命令を与えない状態)。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
ついて説明する。ステップ37では,出力値の微分値を
計算する。これをマシンサイクル0から3までの処理に
より行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP(NO OPERATION:ニューロン1
に何も命令を与えない状態)。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
【0034】ステップ38では,出力値と教師信号の誤
差を計算する。これをマシンサイクル4から5の処理に
より行なう。 4.FF4bに教師信号を格納。レジスタファイル2か
ら出力値を読み出し,FF4cに格納。 5.ALU6にてFF4bの値からFF4c値の減算を
実行。減算結果をレジスタファイル30に格納。 以上のマシンサイクル4から5の処理の結果,出力値の
微分値が計算される。
差を計算する。これをマシンサイクル4から5の処理に
より行なう。 4.FF4bに教師信号を格納。レジスタファイル2か
ら出力値を読み出し,FF4cに格納。 5.ALU6にてFF4bの値からFF4c値の減算を
実行。減算結果をレジスタファイル30に格納。 以上のマシンサイクル4から5の処理の結果,出力値の
微分値が計算される。
【0035】ステップ39では,ステップ37で計算し
た微分値と,ステップ38で計算した誤差を掛け合わせ
て逆伝搬誤差を計算する。但し,図6の逆伝搬誤差のビ
ットフォーマットにあわせるため,逆伝搬誤差を計算し
た後は3ビットシフトする。以上をマシンサイクル6か
ら9の処理により行なう。 6.レジスタファイル2から出力値の微分値をFF4b
に格納。レジスタファイル2から出力値の誤差をFF4
cに格納。 7.NOP。 8.シフタ7にてFF4eの値を左に3ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル6から9の処理の結果,逆伝搬誤
差が計算される。
た微分値と,ステップ38で計算した誤差を掛け合わせ
て逆伝搬誤差を計算する。但し,図6の逆伝搬誤差のビ
ットフォーマットにあわせるため,逆伝搬誤差を計算し
た後は3ビットシフトする。以上をマシンサイクル6か
ら9の処理により行なう。 6.レジスタファイル2から出力値の微分値をFF4b
に格納。レジスタファイル2から出力値の誤差をFF4
cに格納。 7.NOP。 8.シフタ7にてFF4eの値を左に3ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル6から9の処理の結果,逆伝搬誤
差が計算される。
【0036】ステップ40では,ステップ39で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル9の処理により行なう。 9.ALU6にてFF4bの値とFF4c値のANDを
実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から9の結果,出力層の逆伝搬
誤差が計算されて格納される。
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル9の処理により行なう。 9.ALU6にてFF4bの値とFF4c値のANDを
実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から9の結果,出力層の逆伝搬
誤差が計算されて格納される。
【0037】次に図11の中間層の逆伝搬誤差の計算に
ついて説明する。ステップ41では,出力値の微分値を
計算する。これをマシンサイクル0から3までの処理に
より行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
ついて説明する。ステップ41では,出力値の微分値を
計算する。これをマシンサイクル0から3までの処理に
より行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
【0038】ステップ42では,出力層側ニューロンの
逆伝搬誤差と重み値との積和を計算する。 4.FF4bに逆伝搬誤差を格納。RAM3a,RAM
3bから重み値を16ビット読み出し,FF4cに格
納。 5.FF4dをリセット。 6.ALU6にてFF4dとFF4eを加算。加算結果
をFF4dに格納。 以上のマシンサイクル4から6の結果,出力層側ニュー
ロンの逆伝搬誤差と重み値との積和が計算される。出力
層側ニューロンが複数ある場合は,マシンサイクル4及
び6の処理をパイプラインにより繰り返す。
逆伝搬誤差と重み値との積和を計算する。 4.FF4bに逆伝搬誤差を格納。RAM3a,RAM
3bから重み値を16ビット読み出し,FF4cに格
納。 5.FF4dをリセット。 6.ALU6にてFF4dとFF4eを加算。加算結果
をFF4dに格納。 以上のマシンサイクル4から6の結果,出力層側ニュー
ロンの逆伝搬誤差と重み値との積和が計算される。出力
層側ニューロンが複数ある場合は,マシンサイクル4及
び6の処理をパイプラインにより繰り返す。
【0039】ステップ43では,ステップ41で計算し
た出力値の微分値と,ステップ42で計算した逆伝搬誤
差と重み値の積和を掛けて,中間層の逆伝搬誤差を計算
する。但し,積和の計算ではFF4eからALU6への
入力は26ビット下詰めとなるので,小数点の位置を合
わせるため7ビットシフトする。更に,図6の逆伝搬誤
差のビットフォーマットにあわせるため,逆伝搬誤差を
計算した後は3ビットシフトする。以上をマシンサイク
ル4から6の処理により行なう。 7.シフタ7にてFF4dの値を左に7ビットシフト。
シフト結果をFF4bに格納。レジスタファイル2から
出力値の微分値を読み出し,FF4cに格納。 8.NOP。 9.シフタ7にてFF4eの値を左に3ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル7から9の処理により逆伝搬誤差
が計算される。
た出力値の微分値と,ステップ42で計算した逆伝搬誤
差と重み値の積和を掛けて,中間層の逆伝搬誤差を計算
する。但し,積和の計算ではFF4eからALU6への
入力は26ビット下詰めとなるので,小数点の位置を合
わせるため7ビットシフトする。更に,図6の逆伝搬誤
差のビットフォーマットにあわせるため,逆伝搬誤差を
計算した後は3ビットシフトする。以上をマシンサイク
ル4から6の処理により行なう。 7.シフタ7にてFF4dの値を左に7ビットシフト。
シフト結果をFF4bに格納。レジスタファイル2から
出力値の微分値を読み出し,FF4cに格納。 8.NOP。 9.シフタ7にてFF4eの値を左に3ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル7から9の処理により逆伝搬誤差
が計算される。
【0040】ステップ44では,ステップ43で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル10の処理により行なう。 10.ALU6にてFF4bの値とFF4c値のAND
を実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から10の結果,中間力層の逆
伝搬誤差が計算されて格納される。
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル10の処理により行なう。 10.ALU6にてFF4bの値とFF4c値のAND
を実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から10の結果,中間力層の逆
伝搬誤差が計算されて格納される。
【0041】次に図12の重み値の修正について説明す
る。ステップ45では,重み値の修正値を計算する。こ
れをマシンサイクル0から4までの処理により行なう。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。 1.NOP。 2.FF4bに学習係数を格納。シフタ7にてFF4e
の値を左に0ビットシフト。シフト結果をFF4cに格
納。 3.NOP。 4.FF4eの結果を0ビットシフト。シフト結果をレ
ジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
る。ステップ45では,重み値の修正値を計算する。こ
れをマシンサイクル0から4までの処理により行なう。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。 1.NOP。 2.FF4bに学習係数を格納。シフタ7にてFF4e
の値を左に0ビットシフト。シフト結果をFF4cに格
納。 3.NOP。 4.FF4eの結果を0ビットシフト。シフト結果をレ
ジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
【0042】ステップ46では,16ビットの重み値を
読みだし,それを修正する。これをマシンサイクル5か
ら6までの処理により行なう。 5.RAM3a,RAM3bから重み値16ビットを読
みだし,FF4cに格納。レジスタファイル2から重み
値修正値を読みだし,FF4bに格納。 6.ALU6にてFF4bとFF4cの値を加算。その
結果をFF4aに格納。 以上のマシンサイクル5から6までの処理により,重み
値修正が行なわれる。
読みだし,それを修正する。これをマシンサイクル5か
ら6までの処理により行なう。 5.RAM3a,RAM3bから重み値16ビットを読
みだし,FF4cに格納。レジスタファイル2から重み
値修正値を読みだし,FF4bに格納。 6.ALU6にてFF4bとFF4cの値を加算。その
結果をFF4aに格納。 以上のマシンサイクル5から6までの処理により,重み
値修正が行なわれる。
【0043】ステップ47では,修正した重み値を格納
する。これをマシンサイクル7の処理により行なわれ
る。 7.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル0から7の処理により,16ビッ
トの重み値読みだしと,その修正,そして修正された重
み値の格納が行なわれる。このように固定小数点かつパ
イプライン処理を行なうニューロコンピュータによっ
て,高速な学習が可能になる。
する。これをマシンサイクル7の処理により行なわれ
る。 7.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル0から7の処理により,16ビッ
トの重み値読みだしと,その修正,そして修正された重
み値の格納が行なわれる。このように固定小数点かつパ
イプライン処理を行なうニューロコンピュータによっ
て,高速な学習が可能になる。
【0044】
【発明が解決しようとする課題】ハードウェアで実現さ
れたニューロコンピュータでは,チップの中で大きな面
積を占める乗算器の回路規模が拡大するのを防ぐため
に,乗算器の入力ビット幅を16ビットと10ビットに
制限している。これに伴い,重み値や逆伝搬誤差のビッ
ト数がそれぞれ16ビット,10ビットに制限されてい
る。このビット数制限の結果,高精度な学習が困難であ
るという問題が生じる。
れたニューロコンピュータでは,チップの中で大きな面
積を占める乗算器の回路規模が拡大するのを防ぐため
に,乗算器の入力ビット幅を16ビットと10ビットに
制限している。これに伴い,重み値や逆伝搬誤差のビッ
ト数がそれぞれ16ビット,10ビットに制限されてい
る。このビット数制限の結果,高精度な学習が困難であ
るという問題が生じる。
【0045】すなわち,ニューラルネットワークの学習
では,学習が進むにつれて逆伝搬誤差が次第に小さくな
る。学習が進行すると出力層の出力値が教師信号に近づ
くため,出力値と教師信号の誤差が小さくなる。さら
に,学習が進行すると一般的に出力値が0や1に近づく
ニューロンが増えるため,出力値の微分値が小さくなる
傾向がある。結果として,数4に示す出力層の逆伝搬誤
差や,数5に示す中間層の逆伝搬誤差が小さくなる。
では,学習が進むにつれて逆伝搬誤差が次第に小さくな
る。学習が進行すると出力層の出力値が教師信号に近づ
くため,出力値と教師信号の誤差が小さくなる。さら
に,学習が進行すると一般的に出力値が0や1に近づく
ニューロンが増えるため,出力値の微分値が小さくなる
傾向がある。結果として,数4に示す出力層の逆伝搬誤
差や,数5に示す中間層の逆伝搬誤差が小さくなる。
【0046】逆伝搬誤差が非常に小さくなった場合,数
3で示す重み値の修正値も非常に小さくなる。そのた
め,たとえ修正値がゼロでない値を取ったとしても,図
6で示す16ビットの重み値に修正値を加算したときに
は,小数点以下のビット数が足りないために,修正後の
重み値が全く変わらない状況が生じる。
3で示す重み値の修正値も非常に小さくなる。そのた
め,たとえ修正値がゼロでない値を取ったとしても,図
6で示す16ビットの重み値に修正値を加算したときに
は,小数点以下のビット数が足りないために,修正後の
重み値が全く変わらない状況が生じる。
【0047】図6で示す逆伝搬誤差の最小値は,2のマ
イナス12乗であり,出力値の最小値は2のマイナス9
乗である。伝搬誤差と出力値を掛けた値は2のマイナス
21乗であり,これに対して重み値の最小値は2のマイ
ナス11乗である。これは2の10乗の開き、すなわ
ち、約1000倍も大きさに開きがある。学習係数をか
けて修正値を計算しても,学習係数の最大値は高々9程
度であるので,重み値の最小値よりも小さくなる。その
結果,重み値に修正値を加算しても,16ビットに丸め
た後は修正前と変わらないという状況が生じる。
イナス12乗であり,出力値の最小値は2のマイナス9
乗である。伝搬誤差と出力値を掛けた値は2のマイナス
21乗であり,これに対して重み値の最小値は2のマイ
ナス11乗である。これは2の10乗の開き、すなわ
ち、約1000倍も大きさに開きがある。学習係数をか
けて修正値を計算しても,学習係数の最大値は高々9程
度であるので,重み値の最小値よりも小さくなる。その
結果,重み値に修正値を加算しても,16ビットに丸め
た後は修正前と変わらないという状況が生じる。
【0048】一方,逆伝搬誤差そのものも,上述した理
由により学習が進むと2のマイナス12乗よりも小さく
なり,桁落ちが生じるようになる。
由により学習が進むと2のマイナス12乗よりも小さく
なり,桁落ちが生じるようになる。
【0049】仮に,重み値の桁落ちや逆伝搬誤差の桁落
ちを防ぐために,それぞれのビット数を増やして演算を
行なおうとすると,乗算器等の回路規模が拡大してチッ
プ面積が広がり,チップコストの増大が考えられる。ま
たは,図1で示す回路を用いてビット数を増やした重み
値や逆伝搬誤差の乗算などの演算を行なった場合,例え
ば,1回の重み値と逆伝搬誤差の乗算は,複数回の乗算
に分けて行なう必要がある。このため,パイプライン処
理に基づくハードウェアの高速性が生かされなくなる。
ちを防ぐために,それぞれのビット数を増やして演算を
行なおうとすると,乗算器等の回路規模が拡大してチッ
プ面積が広がり,チップコストの増大が考えられる。ま
たは,図1で示す回路を用いてビット数を増やした重み
値や逆伝搬誤差の乗算などの演算を行なった場合,例え
ば,1回の重み値と逆伝搬誤差の乗算は,複数回の乗算
に分けて行なう必要がある。このため,パイプライン処
理に基づくハードウェアの高速性が生かされなくなる。
【0050】本発明は,このように回路規模を拡張する
ことなく,高速高精度な学習のための演算処理を行なう
ことができる高精度学習演算処理方法と,この演算処理
方法が実現できる情報処理装置を提供することである。
ことなく,高速高精度な学習のための演算処理を行なう
ことができる高精度学習演算処理方法と,この演算処理
方法が実現できる情報処理装置を提供することである。
【0051】
【課題を解決するための手段】重み値を単精度の16ビ
ットから倍精度の32ビットに増やした場合に,図1の
回路で演算に非常に時間を必要とする演算器は乗算器で
ある。一方,学習が進行した時に,桁落ちのために修正
しても重み値が変わらなくなるのは,修正後に重み値を
16ビットに丸めるためである。
ットから倍精度の32ビットに増やした場合に,図1の
回路で演算に非常に時間を必要とする演算器は乗算器で
ある。一方,学習が進行した時に,桁落ちのために修正
しても重み値が変わらなくなるのは,修正後に重み値を
16ビットに丸めるためである。
【0052】これらのことを考慮し,一つの重み値は3
2ビットで保存しておき,ニューロンの出力値の計算に
おける重み値と他のニューロンの出力値の累積加算,及
び,逆伝搬誤差の計算における重み値と他のニューロン
の逆伝搬誤差の累積加算の場合には,重み値の上位16
ビットを用いて演算を行なう。一方,重み値の修正時に
は倍精度の32ビット全体を読み出し,修正を行なう。
すなわち,第1の発明として,所定のビット数を用いて
固定小数点の乗算を行なう乗算器,及び加算器を備え,
所定のビット数の重み値,出力値,逆伝搬誤差を用いて
所望のニューラルネット演算を行なうニューロコンピュ
ータにおいて,重み値の学習時に上記所定のビット数よ
りも多いビット数の重み値を格納しておき,ニューロン
出力値計算時,及び逆伝搬誤差計算時には格納された重
み値から所定のビット数分を読み出して演算に用いるス
テップと,重み値の修正時には,上記所定のビット数よ
りも多いビット数を読み出して演算に用いるステップに
より実現できる。
2ビットで保存しておき,ニューロンの出力値の計算に
おける重み値と他のニューロンの出力値の累積加算,及
び,逆伝搬誤差の計算における重み値と他のニューロン
の逆伝搬誤差の累積加算の場合には,重み値の上位16
ビットを用いて演算を行なう。一方,重み値の修正時に
は倍精度の32ビット全体を読み出し,修正を行なう。
すなわち,第1の発明として,所定のビット数を用いて
固定小数点の乗算を行なう乗算器,及び加算器を備え,
所定のビット数の重み値,出力値,逆伝搬誤差を用いて
所望のニューラルネット演算を行なうニューロコンピュ
ータにおいて,重み値の学習時に上記所定のビット数よ
りも多いビット数の重み値を格納しておき,ニューロン
出力値計算時,及び逆伝搬誤差計算時には格納された重
み値から所定のビット数分を読み出して演算に用いるス
テップと,重み値の修正時には,上記所定のビット数よ
りも多いビット数を読み出して演算に用いるステップに
より実現できる。
【0053】更に,学習がある程度進行した状態では,
逆伝搬誤差が非常に小さくなり,桁落ちが生じる。そこ
で,第2の発明として,所定のビット数を用いて固定小
数点の乗算を行なう乗算器,及び加算器を備え,所定の
ビット数の重み値,出力値,逆伝搬誤差を用いて所望の
ニューラルネット演算を行なうニューロコンピュータに
おいて,小数点位置が違う複数の学習用マイクロプログ
ラムを格納するステップと,学習に用いるマイクロプロ
グラムを学習の過程で切り替えるための条件を格納する
ステップと,学習の過程で上記切り替える条件が満たさ
れた場合には,複数のマイクロプログラムの中から一つ
を選択し,それを学習に用いるステップにより実現でき
る。
逆伝搬誤差が非常に小さくなり,桁落ちが生じる。そこ
で,第2の発明として,所定のビット数を用いて固定小
数点の乗算を行なう乗算器,及び加算器を備え,所定の
ビット数の重み値,出力値,逆伝搬誤差を用いて所望の
ニューラルネット演算を行なうニューロコンピュータに
おいて,小数点位置が違う複数の学習用マイクロプログ
ラムを格納するステップと,学習に用いるマイクロプロ
グラムを学習の過程で切り替えるための条件を格納する
ステップと,学習の過程で上記切り替える条件が満たさ
れた場合には,複数のマイクロプログラムの中から一つ
を選択し,それを学習に用いるステップにより実現でき
る。
【0054】さらに,第3の発明として,所定のビット
数を用いて固定小数点の乗算を行なう乗算器,及び加算
器を備え,所定のビット数の重み値,出力値,逆伝搬誤
差を用いて所望のニューラルネット演算を行なうニュー
ロコンピュータにおいて,小数点位置が違う複数の学習
用マイクロプログラムを用意するステップと,学習を開
始する前に,ユーザが複数のマイクロプログラムの中か
ら,学習させる問題に合わせて一つを選択するステップ
と,選択したプログラムをニューロコンピュータに格納
し,学習を行なうステップにより実現できる。
数を用いて固定小数点の乗算を行なう乗算器,及び加算
器を備え,所定のビット数の重み値,出力値,逆伝搬誤
差を用いて所望のニューラルネット演算を行なうニュー
ロコンピュータにおいて,小数点位置が違う複数の学習
用マイクロプログラムを用意するステップと,学習を開
始する前に,ユーザが複数のマイクロプログラムの中か
ら,学習させる問題に合わせて一つを選択するステップ
と,選択したプログラムをニューロコンピュータに格納
し,学習を行なうステップにより実現できる。
【0055】
【作用】第1の発明により,以下の4つの作用がある。
まず第1に,重み値を倍精度の32ビットにするので,
その修正において桁落ちが防げるようになり,修正前と
修正後の重み値が同じ値になることがなくなる。第2
に,重み値の桁落ちのために学習が進行しなくなること
を防ぐことができる。すなわち,ニューロンの出力値の
計算における重み値と他のニューロンの出力値の累積加
算,及び,逆伝搬誤差の計算における重み値と他のニュ
ーロンの逆伝搬誤差の累積加算の場合には,重み値の上
位16ビットを用いて演算を行なう。しかし,学習の過
程で何度も重み値を修正するので,一回の修正が上位1
6ビットよりも小さいとしても,いずれは累積されその
結果が上位16ビットにも影響を与えるようになる。こ
れらの結果,重み値の桁落ちのために学習が進行しなく
なることを防ぐことができる。第3に,高精度な重み値
修正の学習が行なわれるにも関わらず,高速な演算が可
能になる。乗算器を用いる重み値と他のニューロンの出
力値の累積加算や,他のニューロンの逆伝搬誤差の累積
加算では,従来通り重み値は単精度の16ビットしか使
用しないので,1回の乗算を複数回に分ける必要がな
い。その結果,従来と同様な高速演算を行なうことが可
能である。第4に,回路規模が大きくなる乗算器のチッ
プ面積の増加を防ぐことができる。従来通り,乗算では
単精度演算を行なうので,入力ビット数を増やす必要が
なく,チップで大きな面積を占める乗算器の回路規模
を,縮小することが可能になる。結果として,チップコ
ストの増大を防ぐこともできるようになる。
まず第1に,重み値を倍精度の32ビットにするので,
その修正において桁落ちが防げるようになり,修正前と
修正後の重み値が同じ値になることがなくなる。第2
に,重み値の桁落ちのために学習が進行しなくなること
を防ぐことができる。すなわち,ニューロンの出力値の
計算における重み値と他のニューロンの出力値の累積加
算,及び,逆伝搬誤差の計算における重み値と他のニュ
ーロンの逆伝搬誤差の累積加算の場合には,重み値の上
位16ビットを用いて演算を行なう。しかし,学習の過
程で何度も重み値を修正するので,一回の修正が上位1
6ビットよりも小さいとしても,いずれは累積されその
結果が上位16ビットにも影響を与えるようになる。こ
れらの結果,重み値の桁落ちのために学習が進行しなく
なることを防ぐことができる。第3に,高精度な重み値
修正の学習が行なわれるにも関わらず,高速な演算が可
能になる。乗算器を用いる重み値と他のニューロンの出
力値の累積加算や,他のニューロンの逆伝搬誤差の累積
加算では,従来通り重み値は単精度の16ビットしか使
用しないので,1回の乗算を複数回に分ける必要がな
い。その結果,従来と同様な高速演算を行なうことが可
能である。第4に,回路規模が大きくなる乗算器のチッ
プ面積の増加を防ぐことができる。従来通り,乗算では
単精度演算を行なうので,入力ビット数を増やす必要が
なく,チップで大きな面積を占める乗算器の回路規模
を,縮小することが可能になる。結果として,チップコ
ストの増大を防ぐこともできるようになる。
【0056】第2の発明により次の作用がある。学習が
進行すると逆伝搬誤差が小さくなる。しかし,学習の進
行に合わせて逆伝搬誤差の小数点位置をずらすので,限
られたビット数にも関わらず,逆伝搬誤差の桁落ちを防
ぐことができる。結果として学習の進行が停滞すること
なく,高速な学習が行なわれるようになる。
進行すると逆伝搬誤差が小さくなる。しかし,学習の進
行に合わせて逆伝搬誤差の小数点位置をずらすので,限
られたビット数にも関わらず,逆伝搬誤差の桁落ちを防
ぐことができる。結果として学習の進行が停滞すること
なく,高速な学習が行なわれるようになる。
【0057】第3の発明により,次の作用がある。ユー
ザは学習させる問題に応じて,逆伝搬誤差の小数点位置
が違うマイクロプログラムを選択することができる。そ
のため,高精度な学習が必要な場合には,小数点位置が
小さい逆伝搬誤差を使ったマイクロプログラムを使うこ
とができる。そのため,学習が途中で停滞することがな
くなり,高速な学習と高精度な学習を両立することが可
能になる。
ザは学習させる問題に応じて,逆伝搬誤差の小数点位置
が違うマイクロプログラムを選択することができる。そ
のため,高精度な学習が必要な場合には,小数点位置が
小さい逆伝搬誤差を使ったマイクロプログラムを使うこ
とができる。そのため,学習が途中で停滞することがな
くなり,高速な学習と高精度な学習を両立することが可
能になる。
【0058】
【実施例】本発明の第1の実施例を図1,図7,図1
2,図13を用いて説明する。図1はニューロンのブロ
ック図を示しており、図7はバックプロパゲーション学
習のPADを示しており、図12は図7のステップ32
の詳細を示すPADであり、図13は本発明の実施例の
重み値と逆伝搬誤差のビットのフォーマットである。
2,図13を用いて説明する。図1はニューロンのブロ
ック図を示しており、図7はバックプロパゲーション学
習のPADを示しており、図12は図7のステップ32
の詳細を示すPADであり、図13は本発明の実施例の
重み値と逆伝搬誤差のビットのフォーマットである。
【0059】本発明の第1の実施例における図1のニュ
ーロンの動作を,図7を用いて説明する。本実施例で
は,重み値のビットのフォーマットは図13に示すよう
に32ビットであり,それを上位16ビット,下位16
ビットに分けて,RAM3a,RAM3bに格納する。
図7においてステップ32が本発明の特徴である。
ーロンの動作を,図7を用いて説明する。本実施例で
は,重み値のビットのフォーマットは図13に示すよう
に32ビットであり,それを上位16ビット,下位16
ビットに分けて,RAM3a,RAM3bに格納する。
図7においてステップ32が本発明の特徴である。
【0060】ステップ30では,従来技術で説明したこ
とと同様な処理により,RAM3a,RAM3bから重
み値の上位16ビットを読み出し,各ニューロンの出力
値を計算する。ステップ31では,従来技術で説明した
ことと同様な処理により,RAM3a,RAM3bから
重み値の上位16ビットを読み出し,各ニューロンの逆
伝搬誤差を計算する。ステップ32では,ステップ30
で計算した出力値と,ステップ31で計算した逆伝搬誤
差を用いて,各ニューロンのRAM3a,RAM3bに
格納されている重み値を修正する。簡単のためにモーメ
ント係数は0であるとする。
とと同様な処理により,RAM3a,RAM3bから重
み値の上位16ビットを読み出し,各ニューロンの出力
値を計算する。ステップ31では,従来技術で説明した
ことと同様な処理により,RAM3a,RAM3bから
重み値の上位16ビットを読み出し,各ニューロンの逆
伝搬誤差を計算する。ステップ32では,ステップ30
で計算した出力値と,ステップ31で計算した逆伝搬誤
差を用いて,各ニューロンのRAM3a,RAM3bに
格納されている重み値を修正する。簡単のためにモーメ
ント係数は0であるとする。
【0061】図12にステップ32の詳細を示す。ステ
ップ45では,まずレジスタファイル2から逆伝搬誤差
を読み出し,入力バスより前層のニューロンの出力値を
取り込む。そして,それらを掛けて数3の重み値修正値
を計算する。ステップ46では,RAM3a,RAM3
bに格納されている重み値を,16ビットずつ読み出
し,ステップ45で計算した修正値を加えて,重み値を
修正する。ステップ47では,ステップ46で修正した
32ビットの重み値を,RAM3a,RAM3bに16
ビットずつ再度格納する。以上ステップ32の処理によ
り,RAM3a,RAM3bに格納されている32ビッ
トの重み値が修正される。ステップ32を各層毎に繰り
返すことで,全ての層について重み値が修正される。
ップ45では,まずレジスタファイル2から逆伝搬誤差
を読み出し,入力バスより前層のニューロンの出力値を
取り込む。そして,それらを掛けて数3の重み値修正値
を計算する。ステップ46では,RAM3a,RAM3
bに格納されている重み値を,16ビットずつ読み出
し,ステップ45で計算した修正値を加えて,重み値を
修正する。ステップ47では,ステップ46で修正した
32ビットの重み値を,RAM3a,RAM3bに16
ビットずつ再度格納する。以上ステップ32の処理によ
り,RAM3a,RAM3bに格納されている32ビッ
トの重み値が修正される。ステップ32を各層毎に繰り
返すことで,全ての層について重み値が修正される。
【0062】次に,図1のニューロンのブロック図を用
いて,ステップ47の倍精度の重み値修正の処理をマシ
ンサイクル毎の動作に区切り,図12の重み値修正のP
ADに対応させて詳細に説明する。なお,データなどの
流れは,図1を基に説明する。また,以下個条書された
文は,マイクロプログラムコードに対応したもので,文
頭の数字は高精度学習処理がスタートした時点からの,
マシンサイクル数を表す。
いて,ステップ47の倍精度の重み値修正の処理をマシ
ンサイクル毎の動作に区切り,図12の重み値修正のP
ADに対応させて詳細に説明する。なお,データなどの
流れは,図1を基に説明する。また,以下個条書された
文は,マイクロプログラムコードに対応したもので,文
頭の数字は高精度学習処理がスタートした時点からの,
マシンサイクル数を表す。
【0063】ステップ45では,重み値修正値を計算す
る。これを,マシンサイクル0から4までの処理により
行なう。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。
る。これを,マシンサイクル0から4までの処理により
行なう。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。
【0064】1.NOP(NO OPERATION:
ニューロン20に何も命令を与えない状態)。 2.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をFF4cに格納。 3.NOP。 4.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をレジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
ニューロン20に何も命令を与えない状態)。 2.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をFF4cに格納。 3.NOP。 4.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をレジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
【0065】ステップ46では,32ビットの重み値を
読みだし,それを修正する。これをマシンサイクル5か
ら9までの処理により行なう。 5.RAM3a,RAM3bから重み値下位ワードを読
み出し,FF4cに格納。 6.ALU6にてFF4cの値をスループット。その結
果をFF4bに格納。
読みだし,それを修正する。これをマシンサイクル5か
ら9までの処理により行なう。 5.RAM3a,RAM3bから重み値下位ワードを読
み出し,FF4cに格納。 6.ALU6にてFF4cの値をスループット。その結
果をFF4bに格納。
【0066】RAM3a,RAM3bから重み値上位ワ
ードを読み出し,FF4cに格納。 7.シフタ7にてFF4bの値を右に16ビットシフ
ト。シフト結果をFF4dに格納。ALU6にてFF4
cの値をスループット。その結果をFF4bに格納。 8.ALU6にてFF4bの値とFF4d値のORを実
行。OR結果をFF4cに格納。レジスタファイル2か
ら重み値の修正値を読みだし,FF4bに格納。 9.ALU6にてFF4bの値とFF4cの値を加算。
加算結果をFF4dに格納。 以上のマシンサイクル5から9までの処理により,32
ビットの重み値読みだしと,その修正が行なわれる。
ードを読み出し,FF4cに格納。 7.シフタ7にてFF4bの値を右に16ビットシフ
ト。シフト結果をFF4dに格納。ALU6にてFF4
cの値をスループット。その結果をFF4bに格納。 8.ALU6にてFF4bの値とFF4d値のORを実
行。OR結果をFF4cに格納。レジスタファイル2か
ら重み値の修正値を読みだし,FF4bに格納。 9.ALU6にてFF4bの値とFF4cの値を加算。
加算結果をFF4dに格納。 以上のマシンサイクル5から9までの処理により,32
ビットの重み値読みだしと,その修正が行なわれる。
【0067】ステップ47では修正された重み値を格納
する。これをマシンサイクル10から12までの処理に
より行なう。 10.シフタ7にてFF4dの値を0ビットシフト。シ
フト結果をFF4aに格納。 11.シフタ7にてFF4dの値を16ビットシフト。
シフト結果をFF4aに格納。FF4aの値をRAM3
a,RAM3bに格納。 12.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル10から12までの処理により,
修正された32ビットの重み値が格納される。このよう
に固定小数点かつ単精度演算処理を行なうニューロコン
ピュータにおいて,図1に示したニューロンブロック図
と,上述した重み値修正法を用いることで,高精度学習
が可能になる。
する。これをマシンサイクル10から12までの処理に
より行なう。 10.シフタ7にてFF4dの値を0ビットシフト。シ
フト結果をFF4aに格納。 11.シフタ7にてFF4dの値を16ビットシフト。
シフト結果をFF4aに格納。FF4aの値をRAM3
a,RAM3bに格納。 12.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル10から12までの処理により,
修正された32ビットの重み値が格納される。このよう
に固定小数点かつ単精度演算処理を行なうニューロコン
ピュータにおいて,図1に示したニューロンブロック図
と,上述した重み値修正法を用いることで,高精度学習
が可能になる。
【0068】次に,本発明の第2の実施例を,図1,図
5,図13,図14を用いて説明する。図5はニューロ
コンピュータの構成図である。ニューロコンピュータ1
0は,ニューラルネット動作を行う複数のニューロボー
ド12と制御ボード11から構成される。また,制御ボ
ード11はニューラルネットワーク制御装置13とコン
トロールストレッジ15,グローバルメモリ16から構
成される。ニューラルネットワーク制御装置13は,コ
ントロールストレッジ15に格納されるマイクロプログ
ラムコードをデコード,実行することでニューロコンピ
ュータ10を制御する。なお,ニューラルネットワーク
制御装置13は,コントロールストレッジ制御回路14
a,ワークステーション18とニューロコンピュータ1
0の通信手段として外部バスを設け,この外部バスを制
御するニューロン制御回路14cと,入力層ニューロン
の値などを格納するグローバルメモリ制御回路14dか
ら構成される。更に,外部バスはメモリ,CPU,SC
SIボードに接続され,SCSIボードはマイクロプロ
グラムコードを発生させるマイクロジェネレータを持つ
ワークステーション18に接続される。
5,図13,図14を用いて説明する。図5はニューロ
コンピュータの構成図である。ニューロコンピュータ1
0は,ニューラルネット動作を行う複数のニューロボー
ド12と制御ボード11から構成される。また,制御ボ
ード11はニューラルネットワーク制御装置13とコン
トロールストレッジ15,グローバルメモリ16から構
成される。ニューラルネットワーク制御装置13は,コ
ントロールストレッジ15に格納されるマイクロプログ
ラムコードをデコード,実行することでニューロコンピ
ュータ10を制御する。なお,ニューラルネットワーク
制御装置13は,コントロールストレッジ制御回路14
a,ワークステーション18とニューロコンピュータ1
0の通信手段として外部バスを設け,この外部バスを制
御するニューロン制御回路14cと,入力層ニューロン
の値などを格納するグローバルメモリ制御回路14dか
ら構成される。更に,外部バスはメモリ,CPU,SC
SIボードに接続され,SCSIボードはマイクロプロ
グラムコードを発生させるマイクロジェネレータを持つ
ワークステーション18に接続される。
【0069】図14は第2の実施例の処理のPADを示
す図である。第2の実施例では,第1の実施例における
32ビットの重み値の修正に加えて,逆伝搬誤差の小数
点位置を学習の過程で変更することを説明する。
す図である。第2の実施例では,第1の実施例における
32ビットの重み値の修正に加えて,逆伝搬誤差の小数
点位置を学習の過程で変更することを説明する。
【0070】第2の実施例における図1のニューロンの
動作を,図14を用いて説明する。ステップ50では,
従来技術で説明したことと同様な処理により,RAM3
a,RAM3bから重み値の上位16ビットを読み出
し,各ニューロンの出力値を計算する。ステップ51で
は,従来技術で説明したことと同様な処理により,RA
M3a,RAM3bから重み値の上位16ビットを読み
出し,各ニューロンの逆伝搬誤差を計算する。逆伝搬誤
差のビットのフォーマットは図6に示す。ステップ52
では,第1の実施例で説明したことと同様な処理によ
り,ステップ50で計算した出力値と,ステップ51で
計算した逆伝搬誤差を用いて,各ニューロンのRAM3
a,RAM3bに格納されている重み値を修正する。ス
テップ53では,ステップ50からステップ52を,一
定の回数Ncだけ繰り返す。ステップ54では,平均自
乗誤差を計算し,それが基準値よりも小さければ,ステ
ップ55を実行する。ステップ55では,現在使用して
いるマイクロプログラムから,小数点位置の違う図13
のフォーマットの逆伝搬誤差を用いるマイクロプログラ
ムに変更する。ステップ56では,ステップ53,ステ
ップ54を一定の回数Mc回繰り返す。
動作を,図14を用いて説明する。ステップ50では,
従来技術で説明したことと同様な処理により,RAM3
a,RAM3bから重み値の上位16ビットを読み出
し,各ニューロンの出力値を計算する。ステップ51で
は,従来技術で説明したことと同様な処理により,RA
M3a,RAM3bから重み値の上位16ビットを読み
出し,各ニューロンの逆伝搬誤差を計算する。逆伝搬誤
差のビットのフォーマットは図6に示す。ステップ52
では,第1の実施例で説明したことと同様な処理によ
り,ステップ50で計算した出力値と,ステップ51で
計算した逆伝搬誤差を用いて,各ニューロンのRAM3
a,RAM3bに格納されている重み値を修正する。ス
テップ53では,ステップ50からステップ52を,一
定の回数Ncだけ繰り返す。ステップ54では,平均自
乗誤差を計算し,それが基準値よりも小さければ,ステ
ップ55を実行する。ステップ55では,現在使用して
いるマイクロプログラムから,小数点位置の違う図13
のフォーマットの逆伝搬誤差を用いるマイクロプログラ
ムに変更する。ステップ56では,ステップ53,ステ
ップ54を一定の回数Mc回繰り返す。
【0071】次に,ステップ55を実行した後の,ステ
ップ51の処理を図1,図9,図10,図11を用いて
説明する。図9は図14のステップ51の詳細を示すP
ADであり、図10は図9のステップ35の詳細を示す
PADであり、図11は図9のステップ36の詳細を示
すPADである。
ップ51の処理を図1,図9,図10,図11を用いて
説明する。図9は図14のステップ51の詳細を示すP
ADであり、図10は図9のステップ35の詳細を示す
PADであり、図11は図9のステップ36の詳細を示
すPADである。
【0072】図1のニューロンブロック図を用いて,ス
テップ51の処理をマシンサイクル毎の動作に区切って
説明する。出力層,中間層の逆伝搬誤差の計算について
は,それぞれ図10,図11のPADに対応させて,重
み値修正については図12のPADに対応させて詳細に
説明する。なお,データなどの流れは,図1を基に説明
する。また,以下個条書された文は,マイクロプログラ
ムコードに対応したもので,文頭の数字はスタートした
時点からの,マシンサイクル数を表す。
テップ51の処理をマシンサイクル毎の動作に区切って
説明する。出力層,中間層の逆伝搬誤差の計算について
は,それぞれ図10,図11のPADに対応させて,重
み値修正については図12のPADに対応させて詳細に
説明する。なお,データなどの流れは,図1を基に説明
する。また,以下個条書された文は,マイクロプログラ
ムコードに対応したもので,文頭の数字はスタートした
時点からの,マシンサイクル数を表す。
【0073】まず図9のステップ35,すなわち,図1
0の出力層の逆伝搬誤差の計算について説明する。ステ
ップ37では,出力値の微分値を計算する。これをマシ
ンサイクル0から3までの処理により行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP(NO OPERATION:ニューロン1
に何も命令を与えない状態)。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
0の出力層の逆伝搬誤差の計算について説明する。ステ
ップ37では,出力値の微分値を計算する。これをマシ
ンサイクル0から3までの処理により行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP(NO OPERATION:ニューロン1
に何も命令を与えない状態)。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
【0074】ステップ38では,出力値と教師信号の誤
差を計算する。これをマシンサイクル4から5の処理に
より行なう。 4.FF4bに教師信号を格納。レジスタファイル2か
ら出力値を読み出し,FF4cに格納。 5.ALU6にてFF4bの値からFF4c値の減算を
実行。減算結果をレジスタファイル30に格納。 以上のマシンサイクル4から5の処理の結果,出力値の
微分値が計算される。
差を計算する。これをマシンサイクル4から5の処理に
より行なう。 4.FF4bに教師信号を格納。レジスタファイル2か
ら出力値を読み出し,FF4cに格納。 5.ALU6にてFF4bの値からFF4c値の減算を
実行。減算結果をレジスタファイル30に格納。 以上のマシンサイクル4から5の処理の結果,出力値の
微分値が計算される。
【0075】ステップ39では,ステップ37で計算し
た微分値と,ステップ38で計算した誤差を掛け合わせ
て逆伝搬誤差を計算する。但し,図14の逆伝搬誤差の
ビットフォーマットにあわせるため,逆伝搬誤差を計算
した後は6ビットシフトする。以上をマシンサイクル6
から9の処理により行なう。 6.レジスタファイル2から出力値の微分値をFF4b
に格納。レジスタファイル2から出力値の誤差をFF4
cに格納。 7.NOP。 8.シフタ7にてFF4eの値を左に6ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル6から9の処理の結果,逆伝搬誤
差が計算される。
た微分値と,ステップ38で計算した誤差を掛け合わせ
て逆伝搬誤差を計算する。但し,図14の逆伝搬誤差の
ビットフォーマットにあわせるため,逆伝搬誤差を計算
した後は6ビットシフトする。以上をマシンサイクル6
から9の処理により行なう。 6.レジスタファイル2から出力値の微分値をFF4b
に格納。レジスタファイル2から出力値の誤差をFF4
cに格納。 7.NOP。 8.シフタ7にてFF4eの値を左に6ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル6から9の処理の結果,逆伝搬誤
差が計算される。
【0076】ステップ40では,ステップ39で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル9の処理により行なう。 9.ALU6にてFF4bの値とFF4c値のANDを
実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から9の結果,出力層の逆伝搬
誤差が計算されて格納される。
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル9の処理により行なう。 9.ALU6にてFF4bの値とFF4c値のANDを
実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から9の結果,出力層の逆伝搬
誤差が計算されて格納される。
【0077】次に図9のステップ36,すなわち,図1
1の中間層の逆伝搬誤差の計算について説明する。ステ
ップ41では,出力値の微分値を計算する。これをマシ
ンサイクル0から3までの処理により行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
1の中間層の逆伝搬誤差の計算について説明する。ステ
ップ41では,出力値の微分値を計算する。これをマシ
ンサイクル0から3までの処理により行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
【0078】ステップ42では,出力層側ニューロンの
逆伝搬誤差と重み値との積和を計算する。 4.FF4bに逆伝搬誤差を格納。RAM3a,RAM
3bから重み値を16ビット読み出し,FF4cに格
納。 5.FF4dをリセット。 6.ALU6にてFF4dとFF4eを加算。加算結果
をFF4dに格納。 以上のマシンサイクル4から6の結果,出力層側ニュー
ロンの逆伝搬誤差と重み値との積和が計算される。出力
層側ニューロンが複数ある場合は,マシンサイクル4及
び6の処理をパイプラインにより繰り返す。
逆伝搬誤差と重み値との積和を計算する。 4.FF4bに逆伝搬誤差を格納。RAM3a,RAM
3bから重み値を16ビット読み出し,FF4cに格
納。 5.FF4dをリセット。 6.ALU6にてFF4dとFF4eを加算。加算結果
をFF4dに格納。 以上のマシンサイクル4から6の結果,出力層側ニュー
ロンの逆伝搬誤差と重み値との積和が計算される。出力
層側ニューロンが複数ある場合は,マシンサイクル4及
び6の処理をパイプラインにより繰り返す。
【0079】ステップ43では,ステップ41で計算し
た出力値の微分値と,ステップ42で計算した逆伝搬誤
差と重み値の積和を掛けて,中間層の逆伝搬誤差を計算
する。但し,積和の計算ではFF4eからALU6への
入力は26ビット下詰めとなるので,小数点の位置を合
わせるため7ビットシフトする。更に,図14の逆伝搬
誤差のビットフォーマットにあわせるため,逆伝搬誤差
を計算した後は6ビットシフトする。以上をマシンサイ
クル4から6の処理により行なう。 7.シフタ7にてFF4dの値を左に7ビットシフト。
シフト結果をFF4bに格納。レジスタファイル2から
出力値の微分値を読み出し,FF4cに格納。 8.NOP。 9.シフタ7にてFF4eの値を左に6ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。
た出力値の微分値と,ステップ42で計算した逆伝搬誤
差と重み値の積和を掛けて,中間層の逆伝搬誤差を計算
する。但し,積和の計算ではFF4eからALU6への
入力は26ビット下詰めとなるので,小数点の位置を合
わせるため7ビットシフトする。更に,図14の逆伝搬
誤差のビットフォーマットにあわせるため,逆伝搬誤差
を計算した後は6ビットシフトする。以上をマシンサイ
クル4から6の処理により行なう。 7.シフタ7にてFF4dの値を左に7ビットシフト。
シフト結果をFF4bに格納。レジスタファイル2から
出力値の微分値を読み出し,FF4cに格納。 8.NOP。 9.シフタ7にてFF4eの値を左に6ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。
【0080】以上のマシンサイクル7から9の処理によ
り逆伝搬誤差が計算される。
り逆伝搬誤差が計算される。
【0081】ステップ44では,ステップ43で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル10の処理により行なう。 10.ALU6にてFF4bの値とFF4c値のAND
を実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から10の結果,中間力層の逆
伝搬誤差が計算されて格納される。
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル10の処理により行なう。 10.ALU6にてFF4bの値とFF4c値のAND
を実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から10の結果,中間力層の逆
伝搬誤差が計算されて格納される。
【0082】次に図12の重み値の修正について説明す
る。ステップ45では,重み値修正値を計算する。これ
を,マシンサイクル0から4までの処理により行なう。
但し,逆伝搬誤差は図14に示すビットフォーマットで
あるので,第1の実施例で説明したときよりも,小数点
位置が3ビット分左にずれている。そのため,重み値の
修正値を計算した後は,重み値の小数点位置にあわせる
ために,修正値を3ビット右にずらす。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。 1.NOP(NO OPERATION:ニューロン2
0に何も命令を与えない状態)。 2.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をFF4cに格納。学習係数をFF4bに格
納。 3.NOP。 4.シフタ7にてFF4eの結果を3ビットシフト。シ
フト結果をレジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
る。ステップ45では,重み値修正値を計算する。これ
を,マシンサイクル0から4までの処理により行なう。
但し,逆伝搬誤差は図14に示すビットフォーマットで
あるので,第1の実施例で説明したときよりも,小数点
位置が3ビット分左にずれている。そのため,重み値の
修正値を計算した後は,重み値の小数点位置にあわせる
ために,修正値を3ビット右にずらす。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。 1.NOP(NO OPERATION:ニューロン2
0に何も命令を与えない状態)。 2.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をFF4cに格納。学習係数をFF4bに格
納。 3.NOP。 4.シフタ7にてFF4eの結果を3ビットシフト。シ
フト結果をレジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
【0083】ステップ46では,32ビットの重み値を
読みだし,それを修正する。これをマシンサイクル5か
ら9までの処理により行なう。 5.RAM3a,RAM3bから重み値下位ワードを読
み出し,FF4cに格納。 6.ALU6にてFF4cの値をスループット。その結
果をFF4bに格納。
読みだし,それを修正する。これをマシンサイクル5か
ら9までの処理により行なう。 5.RAM3a,RAM3bから重み値下位ワードを読
み出し,FF4cに格納。 6.ALU6にてFF4cの値をスループット。その結
果をFF4bに格納。
【0084】RAM3a,RAM3bから重み値上位ワ
ードを読み出し,FF4cに格納。
ードを読み出し,FF4cに格納。
【0085】7.シフタ7にてFF4bの値を右に16
ビットシフト。シフト結果をFF4dに格納。ALU6
にてFF4cの値をスループット。その結果をFF4b
に格納。 8.ALU6にてFF4bの値とFF4d値のORを実
行。OR結果をFF4cに格納。レジスタファイル2か
ら重み値の修正値を読みだし,FF4bに格納。 9.ALU6にてFF4bの値とFF4cの値を加算。
加算結果をFF4dに格納。 以上のマシンサイクル5から9までの処理により,32
ビットの重み値読みだしと,その修正が行なわれる。
ビットシフト。シフト結果をFF4dに格納。ALU6
にてFF4cの値をスループット。その結果をFF4b
に格納。 8.ALU6にてFF4bの値とFF4d値のORを実
行。OR結果をFF4cに格納。レジスタファイル2か
ら重み値の修正値を読みだし,FF4bに格納。 9.ALU6にてFF4bの値とFF4cの値を加算。
加算結果をFF4dに格納。 以上のマシンサイクル5から9までの処理により,32
ビットの重み値読みだしと,その修正が行なわれる。
【0086】ステップ47では修正された重み値を格納
する。これをマシンサイクル10から12までの処理に
より行なう。 10.シフタ7にてFF4dの値を0ビットシフト。シ
フト結果をFF4aに格納。 11.シフタ7にてFF4dの値を16ビットシフト。
シフト結果をFF4aに格納。FF4aの値をRAM3
a,RAM3bに格納。 12.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル10から12までの処理により,
修正された32ビットの重み値が格納される。
する。これをマシンサイクル10から12までの処理に
より行なう。 10.シフタ7にてFF4dの値を0ビットシフト。シ
フト結果をFF4aに格納。 11.シフタ7にてFF4dの値を16ビットシフト。
シフト結果をFF4aに格納。FF4aの値をRAM3
a,RAM3bに格納。 12.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル10から12までの処理により,
修正された32ビットの重み値が格納される。
【0087】このように固定小数点かつ単精度演算処理
を行なうニューロコンピュータにおいて,図1に示した
ニューロンブロック図と,上述した逆伝搬誤差の小数点
位置を学習過程でずらすことにより,高精度学習が可能
になる。
を行なうニューロコンピュータにおいて,図1に示した
ニューロンブロック図と,上述した逆伝搬誤差の小数点
位置を学習過程でずらすことにより,高精度学習が可能
になる。
【0088】なお,図14のステップ54における条件
は,平均自乗誤差に限るものではなく,一定の学習回数
に達したときに逆伝搬誤差の小数点位置をずらすとして
もよい。あるいは,逆伝搬誤差の値をチェックして,例
えば逆伝搬誤差の中で一定の値以下の逆伝搬誤差の割合
がある一定値以上であれば,小数点をずらすとしてもよ
い。
は,平均自乗誤差に限るものではなく,一定の学習回数
に達したときに逆伝搬誤差の小数点位置をずらすとして
もよい。あるいは,逆伝搬誤差の値をチェックして,例
えば逆伝搬誤差の中で一定の値以下の逆伝搬誤差の割合
がある一定値以上であれば,小数点をずらすとしてもよ
い。
【0089】次に第3の実施例を図5を用いて説明す
る。ワークステーション18には,それぞれ小数点位置
が違う逆伝搬誤差を含む複数のマイクロプログラムを生
成するマイクロジェネレータが格納されている。ユーザ
は,マイクロジェネレータを用いて,学習させる問題に
応じて,適当な小数点位置の逆伝搬誤差を含むマイクロ
プログラムを生成する。そして,それをSCSIを通し
てニューロコンピュータのコントロールストレッジに格
納して学習を行なう。
る。ワークステーション18には,それぞれ小数点位置
が違う逆伝搬誤差を含む複数のマイクロプログラムを生
成するマイクロジェネレータが格納されている。ユーザ
は,マイクロジェネレータを用いて,学習させる問題に
応じて,適当な小数点位置の逆伝搬誤差を含むマイクロ
プログラムを生成する。そして,それをSCSIを通し
てニューロコンピュータのコントロールストレッジに格
納して学習を行なう。
【0090】これにより,学習させる問題に応じた精度
の学習が実現することができる。すなわち,通常であれ
ば逆伝搬誤差が桁落ちして,学習が進まないような高精
度演算が要求されるような学習に対しても,ユーザがそ
れに応じたマイクロプログラムを選択することで対応す
ることができる。
の学習が実現することができる。すなわち,通常であれ
ば逆伝搬誤差が桁落ちして,学習が進まないような高精
度演算が要求されるような学習に対しても,ユーザがそ
れに応じたマイクロプログラムを選択することで対応す
ることができる。
【0091】
【発明の効果】第1の発明により,以下の3つの効果が
ある。まず第1に,重み値を倍精度の32ビットにする
ので,その修正において桁落ちが防げるようになり,桁
落ちによる学習進行の停滞が免れられる。すなわち,ニ
ューロンの出力値の計算における重み値と他のニューロ
ンの出力値の累積加算,及び,逆伝搬誤差の計算におけ
る重み値と他のニューロンの逆伝搬誤差の累積加算の場
合には,重み値の上位16ビットを用いて演算を行な
う。しかし,学習の過程で何度も重み値を修正するの
で,一回の修正が上位16ビットよりも小さいとして
も,いずれは累積されその結果が上位16ビットにも影
響を与えるようになる。これらの結果,重み値の桁落ち
のために学習が進行しなくなることが防がれる。第2
に,高精度な重み値修正の学習が行なわれるにも関わら
ず,従来と同様な高速な演算が可能になる。乗算器を用
いる重み値と他のニューロンの出力値の累積加算や,他
のニューロンの逆伝搬誤差の累積加算では,従来通り重
み値は単精度の16ビットしか使用しないので,1回の
乗算を複数回に分ける必要がない。その結果,従来と同
様な高速演算を行なうことが可能である。第3に,回路
規模が大きくなる乗算器のチップ面積の増加を防ぐこと
ができる。従来通り,乗算では単精度演算を行なうの
で,入力ビット数を増やす必要がなく,チップで大きな
面積を占める乗算器の回路規模を,縮小することが可能
になる。結果として,チップコストの増大を防ぐことも
できるようになる。図15に重み値が16ビットの場合
と,32ビットの場合の学習曲線のグラフを示す。16
ビットでは学習回数が1000回を超えると誤差は全く
減少しなくなるが,32ビットでは1000回以上でも
徐々に減少して学習が進行するのが分かる。
ある。まず第1に,重み値を倍精度の32ビットにする
ので,その修正において桁落ちが防げるようになり,桁
落ちによる学習進行の停滞が免れられる。すなわち,ニ
ューロンの出力値の計算における重み値と他のニューロ
ンの出力値の累積加算,及び,逆伝搬誤差の計算におけ
る重み値と他のニューロンの逆伝搬誤差の累積加算の場
合には,重み値の上位16ビットを用いて演算を行な
う。しかし,学習の過程で何度も重み値を修正するの
で,一回の修正が上位16ビットよりも小さいとして
も,いずれは累積されその結果が上位16ビットにも影
響を与えるようになる。これらの結果,重み値の桁落ち
のために学習が進行しなくなることが防がれる。第2
に,高精度な重み値修正の学習が行なわれるにも関わら
ず,従来と同様な高速な演算が可能になる。乗算器を用
いる重み値と他のニューロンの出力値の累積加算や,他
のニューロンの逆伝搬誤差の累積加算では,従来通り重
み値は単精度の16ビットしか使用しないので,1回の
乗算を複数回に分ける必要がない。その結果,従来と同
様な高速演算を行なうことが可能である。第3に,回路
規模が大きくなる乗算器のチップ面積の増加を防ぐこと
ができる。従来通り,乗算では単精度演算を行なうの
で,入力ビット数を増やす必要がなく,チップで大きな
面積を占める乗算器の回路規模を,縮小することが可能
になる。結果として,チップコストの増大を防ぐことも
できるようになる。図15に重み値が16ビットの場合
と,32ビットの場合の学習曲線のグラフを示す。16
ビットでは学習回数が1000回を超えると誤差は全く
減少しなくなるが,32ビットでは1000回以上でも
徐々に減少して学習が進行するのが分かる。
【0092】第2の発明により次の効果がある。学習が
進行すると逆伝搬誤差が小さくなる。しかし,学習の進
行に合わせて逆伝搬誤差の小数点位置をずらすので,限
られたビット数にも関わらず,逆伝搬誤差の桁落ちを防
ぐことができる。結果として,逆伝搬誤差のビット数を
増やすことなく学習の停滞を防止でき,高速な学習が行
なわれるようになる。
進行すると逆伝搬誤差が小さくなる。しかし,学習の進
行に合わせて逆伝搬誤差の小数点位置をずらすので,限
られたビット数にも関わらず,逆伝搬誤差の桁落ちを防
ぐことができる。結果として,逆伝搬誤差のビット数を
増やすことなく学習の停滞を防止でき,高速な学習が行
なわれるようになる。
【0093】第3の発明により,次の効果がある。ユー
ザは学習させる問題に応じて,逆伝搬誤差の小数点位置
が違うマイクロプログラムを選択することができる。そ
のため,高精度な学習が必要な場合には,小数点位置が
小さい逆伝搬誤差を使ったマイクロプログラムを使うこ
とができる。そのため,学習が途中で停滞することがな
くなり,高速な学習と高精度な学習を両立することが可
能になる。
ザは学習させる問題に応じて,逆伝搬誤差の小数点位置
が違うマイクロプログラムを選択することができる。そ
のため,高精度な学習が必要な場合には,小数点位置が
小さい逆伝搬誤差を使ったマイクロプログラムを使うこ
とができる。そのため,学習が途中で停滞することがな
くなり,高速な学習と高精度な学習を両立することが可
能になる。
【図1】ニューロンブロック図を示す図。
【図2】ニューラルネットを構成するニューロンモデル
を示す図。
を示す図。
【図3】3層の階層型ニューラルネットを示す図。
【図4】ニューラルネットを高速に計算する専用ハード
ウェアの原理を示す図。
ウェアの原理を示す図。
【図5】ニューロコンピュータの構成を示す図。
【図6】ニューロコンピュータの演算で用いる各変数の
ビットのフォーマットを示す図。
ビットのフォーマットを示す図。
【図7】バックプロパゲーション法の処理のPADを示
す図。
す図。
【図8】図7のステップ30の詳細を示す図。
【図9】図7のステップ31の詳細を示す図。
【図10】図9のステップ35の詳細を示す図。
【図11】図9のステップ36の詳細を示す図。
【図12】図7のステップ32の詳細を示す図。
【図13】本発明の実施例における重み値と逆伝搬誤差
のビットのフォーマットを示す図。
のビットのフォーマットを示す図。
【図14】本発明の第2の実施例の処理フローを示す
図。
図。
【図15】重み値ビット数が16ビットと32ビットの
場合の学習曲線の比較を示す図。
場合の学習曲線の比較を示す図。
1……ニューロン,2……レジスタファイル,3a…R
AM,3b…RAM,4a…フリップフロップ,4b…
フリップフロップ,4c…フリップフロップ,4d…フ
リップフロップ,4e…フリップフロップ,5……乗算
器,6……ALU,7……シフタ,8……ニューロン計
算ユニット,9……バス,10…ニューロコンピュー
タ,11…制御ボード,12…ニューロボード,13…
ニューラルネットワーク制御装置,15…コントロール
ストレッジ,16…グローバルメモリ,17…ニューロ
チップ。
AM,3b…RAM,4a…フリップフロップ,4b…
フリップフロップ,4c…フリップフロップ,4d…フ
リップフロップ,4e…フリップフロップ,5……乗算
器,6……ALU,7……シフタ,8……ニューロン計
算ユニット,9……バス,10…ニューロコンピュー
タ,11…制御ボード,12…ニューロボード,13…
ニューラルネットワーク制御装置,15…コントロール
ストレッジ,16…グローバルメモリ,17…ニューロ
チップ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂口 隆宏 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内 (72)発明者 戸田 裕二 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 桑原 良博 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 茂木 啓次 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 落合 辰男 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内
Claims (8)
- 【請求項1】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて所望のニュー
ラルネット演算を行なうニューロコンピュータにおい
て,ニューラルネットワークの重み値の学習時に,上記
所定のビット数よりも多いビット数の重み値を格納して
おく手段と,学習におけるニューロン出力値計算時,及
び逆伝搬誤差計算時には格納された重み値から所定のビ
ット数分を読み出して演算に用いる手段と,重みの修正
時には,上記所定のビット数よりも多いビット数を読み
出して演算に用いる手段と,を有するニューロコンピュ
ータとして構成したことを特徴とする情報処理装置。 - 【請求項2】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いてマイクロプロ
グラムの制御により所望のニューラルネット演算を行な
うニューロコンピュータにおいて,それぞれ小数点位置
が違う逆伝搬誤差を含む学習を行なうためのマイクロプ
ログラムを複数格納する手段と,学習に用いるマイクロ
プログラムを学習の途中で切り替えるための条件を格納
する手段と,学習の過程で上記切り替える条件が満たさ
れた場合には,複数のマイクロプログラムから別の一つ
を選択し,それを学習に用いる手段と,を有するニュー
ロコンピュータとして構成したことを特徴とする情報処
理装置。 - 【請求項3】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて所望のニュー
ラルネット演算を行なうニューロコンピュータにおい
て,重み値の学習の過程で,逆伝搬誤差の小数点位置を
変更するための条件を格納する手段と,学習の過程で上
記変更する条件が満たされた場合には,逆伝搬誤差の小
数点位置を変更する手段と,上記変更した小数点位置の
逆伝搬誤差を用いて学習を継続する手段と,を有するニ
ューロコンピュータとして構成したことを特徴とする情
報処理装置。 - 【請求項4】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて,マイクロプ
ログラムの制御により所望のニューラルネット演算を行
なうニューロコンピュータにおいて,それぞれ小数点位
置が違う逆伝搬誤差を含むマイクロプログラムを複数記
憶する手段と,重み値の学習を始める前に,学習に用い
るマイクロプログラムを上記複数のプログラムの中から
選択する手段と,選択したマイクロプログラムを用いて
重み値の学習を行なう手段と,を有するニューロコンピ
ュータとして構成したことを特徴とする情報処理装置。 - 【請求項5】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて所望のニュー
ラルネット演算を行なうニューロコンピュータにおい
て,逆伝搬誤差の小数点位置を変更する手段と,学習を
始める前に上記変更手段を用いて複数の小数点位置か
ら,一つの小数点位置を選択する手段と,選択した小数
点位置の逆伝搬誤差を用いて重み値の学習を行なう手段
と,を有するニューロコンピュータとして構成したこと
を特徴とする情報処理装置。 - 【請求項6】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,逆伝搬誤差を用いて所望のニューラル
ネット演算を行なうニューロコンピュータの学習演算処
理方法であって,ニューラルネットワークの重み値の学
習時に,上記所定のビット数よりも多いビット数の重み
値を格納しておくステップと,学習におけるニューロン
出力値計算時,及び逆伝搬誤差計算時には格納された重
み値から所定のビット数分を読み出して演算に用いるス
テップと,重みの修正時には,上記所定のビット数より
も多いビット数を読み出して演算に用いるステップと,
を有することを特徴とする学習演算処理方法。 - 【請求項7】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,逆伝搬誤差を用いて,マイクロプログ
ラムの制御により所望のニューラルネット演算を行なう
ニューロコンピュータの学習演算処理方法であって,そ
れぞれ小数点位置が違う逆伝搬誤差を含む学習を行なう
ためのマイクロプログラムを複数記憶するステップと,
学習に用いるマイクロプログラムを学習の過程で切り替
えるための条件を記憶するステップと,学習の過程で上
記切り替える条件が満たされた場合には,複数のマイク
ロプログラムから別の一つを選択し,それを学習に用い
るステップと,を有することを特徴とする学習演算処理
方法。 - 【請求項8】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,逆伝搬誤差を用いて,マイクロプログ
ラムの制御により所望のニューラルネット演算を行なう
ニューロコンピュータの学習演算処理方法であって,そ
れぞれ小数点位置が違う逆伝搬誤差を含むマイクロプロ
グラムを複数記憶するステップと,重み値の学習を始め
る前に,学習に用いるマイクロプログラムを上記複数の
プログラムの中から選択するステップと,選択したマイ
クロプログラムを用いて重み値の学習を行なうステップ
と,を有することを特徴とする学習演算処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5225450A JPH0784975A (ja) | 1993-09-10 | 1993-09-10 | 情報処理装置および学習演算処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5225450A JPH0784975A (ja) | 1993-09-10 | 1993-09-10 | 情報処理装置および学習演算処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0784975A true JPH0784975A (ja) | 1995-03-31 |
Family
ID=16829545
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5225450A Pending JPH0784975A (ja) | 1993-09-10 | 1993-09-10 | 情報処理装置および学習演算処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0784975A (ja) |
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018124681A (ja) * | 2017-01-30 | 2018-08-09 | 富士通株式会社 | 演算処理装置、情報処理装置、方法、およびプログラム |
| JP2019074951A (ja) * | 2017-10-17 | 2019-05-16 | 富士通株式会社 | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 |
| JP2019079535A (ja) * | 2017-10-23 | 2019-05-23 | 三星電子株式会社Samsung Electronics Co.,Ltd. | パラメータ処理方法及び装置 |
| JP2019148972A (ja) * | 2018-02-27 | 2019-09-05 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
| CN110428042A (zh) * | 2018-05-01 | 2019-11-08 | 国际商业机器公司 | 往复地缩放神经元的连接权重和输入值来挫败硬件限制 |
| CN110689109A (zh) * | 2018-07-04 | 2020-01-14 | 三星电子株式会社 | 神经网络方法和装置 |
| WO2020065874A1 (ja) * | 2018-09-27 | 2020-04-02 | 株式会社ソシオネクスト | ネットワーク量子化方法、推論方法及びネットワーク量子化装置 |
| CN111160550A (zh) * | 2018-11-07 | 2020-05-15 | 富士通株式会社 | 训练方法、信息处理设备和非暂态计算机可读存储介质 |
| EP3716043A1 (en) | 2019-03-29 | 2020-09-30 | Fujitsu Limited | Information processor, information processing method, and program |
| EP3742283A1 (en) | 2019-05-21 | 2020-11-25 | Fujitsu Limited | Arithmetic processing device, method for controlling arithmetic processing device, and program for controlling arithmetic processing device |
| EP3748491A1 (en) | 2019-06-07 | 2020-12-09 | Fujitsu Limited | Arithmetic processing apparatus and control program |
| EP3764217A1 (en) | 2019-07-11 | 2021-01-13 | Fujitsu Limited | Arithmetic processing apparatus, control method, and control program |
| JP2021043596A (ja) * | 2019-09-09 | 2021-03-18 | 株式会社ソシオネクスト | 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置 |
| EP3798929A1 (en) | 2019-09-30 | 2021-03-31 | Fujitsu Limited | Information processing apparatus, information processing method, and information processing program |
| US11043962B2 (en) | 2018-02-26 | 2021-06-22 | Fujitsu Limited | Information processing apparatus, information processing method, and recording medium |
| JPWO2022004815A1 (ja) * | 2020-06-30 | 2022-01-06 | ||
| JP2022502724A (ja) * | 2019-08-28 | 2022-01-11 | 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd | データを処理するための方法、装置、および関連製品 |
| WO2022009449A1 (ja) * | 2020-07-10 | 2022-01-13 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
| EP4109352A1 (en) | 2021-06-23 | 2022-12-28 | Fujitsu Limited | Computer-readable recording medium, information processing method, and information processing apparatus |
-
1993
- 1993-09-10 JP JP5225450A patent/JPH0784975A/ja active Pending
Cited By (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018124681A (ja) * | 2017-01-30 | 2018-08-09 | 富士通株式会社 | 演算処理装置、情報処理装置、方法、およびプログラム |
| JP2019074951A (ja) * | 2017-10-17 | 2019-05-16 | 富士通株式会社 | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 |
| JP2019079535A (ja) * | 2017-10-23 | 2019-05-23 | 三星電子株式会社Samsung Electronics Co.,Ltd. | パラメータ処理方法及び装置 |
| US11043962B2 (en) | 2018-02-26 | 2021-06-22 | Fujitsu Limited | Information processing apparatus, information processing method, and recording medium |
| JP2019148972A (ja) * | 2018-02-27 | 2019-09-05 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
| CN110428042A (zh) * | 2018-05-01 | 2019-11-08 | 国际商业机器公司 | 往复地缩放神经元的连接权重和输入值来挫败硬件限制 |
| CN110428042B (zh) * | 2018-05-01 | 2023-04-18 | 国际商业机器公司 | 往复地缩放神经元的连接权重和输入值来挫败硬件限制 |
| CN110689109B (zh) * | 2018-07-04 | 2024-04-12 | 三星电子株式会社 | 神经网络方法和装置 |
| CN110689109A (zh) * | 2018-07-04 | 2020-01-14 | 三星电子株式会社 | 神经网络方法和装置 |
| JP2020009444A (ja) * | 2018-07-04 | 2020-01-16 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ニューラルネットワークにおいてパラメータを処理する方法及び装置 |
| US12511528B2 (en) | 2018-07-04 | 2025-12-30 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
| JPWO2020065874A1 (ja) * | 2018-09-27 | 2021-08-30 | 株式会社ソシオネクスト | ネットワーク量子化方法、推論方法及びネットワーク量子化装置 |
| WO2020065874A1 (ja) * | 2018-09-27 | 2020-04-02 | 株式会社ソシオネクスト | ネットワーク量子化方法、推論方法及びネットワーク量子化装置 |
| EP3657397A1 (en) | 2018-11-07 | 2020-05-27 | Fujitsu Limited | Training program, training method, and information processing apparatus |
| CN111160550A (zh) * | 2018-11-07 | 2020-05-15 | 富士通株式会社 | 训练方法、信息处理设备和非暂态计算机可读存储介质 |
| US11593620B2 (en) | 2018-11-07 | 2023-02-28 | Fujitsu Limited | Training program, training method, and information processing apparatus |
| EP3716043A1 (en) | 2019-03-29 | 2020-09-30 | Fujitsu Limited | Information processor, information processing method, and program |
| US11551087B2 (en) | 2019-03-29 | 2023-01-10 | Fujitsu Limited | Information processor, information processing method, and storage medium |
| EP3742283A1 (en) | 2019-05-21 | 2020-11-25 | Fujitsu Limited | Arithmetic processing device, method for controlling arithmetic processing device, and program for controlling arithmetic processing device |
| EP3748491A1 (en) | 2019-06-07 | 2020-12-09 | Fujitsu Limited | Arithmetic processing apparatus and control program |
| US11514320B2 (en) | 2019-06-07 | 2022-11-29 | Fujitsu Limited | Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program |
| EP3764217A1 (en) | 2019-07-11 | 2021-01-13 | Fujitsu Limited | Arithmetic processing apparatus, control method, and control program |
| US11410036B2 (en) | 2019-07-11 | 2022-08-09 | Fujitsu Limited | Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program |
| JP2022502724A (ja) * | 2019-08-28 | 2022-01-11 | 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd | データを処理するための方法、装置、および関連製品 |
| JP2021043596A (ja) * | 2019-09-09 | 2021-03-18 | 株式会社ソシオネクスト | 量子化パラメータ最適化方法、及び、量子化パラメータ最適化装置 |
| EP3798929A1 (en) | 2019-09-30 | 2021-03-31 | Fujitsu Limited | Information processing apparatus, information processing method, and information processing program |
| JPWO2022004815A1 (ja) * | 2020-06-30 | 2022-01-06 | ||
| WO2022009433A1 (ja) * | 2020-07-10 | 2022-01-13 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
| WO2022009449A1 (ja) * | 2020-07-10 | 2022-01-13 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
| EP4109352A1 (en) | 2021-06-23 | 2022-12-28 | Fujitsu Limited | Computer-readable recording medium, information processing method, and information processing apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0784975A (ja) | 情報処理装置および学習演算処理方法 | |
| CN107844828B (zh) | 神经网络中的卷积计算方法和电子设备 | |
| CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
| US6539368B1 (en) | Neural processor, saturation unit, calculation unit and adder circuit | |
| US5517600A (en) | Neuro-chip and neurocomputer having the chip | |
| US5600843A (en) | Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays | |
| JPH04293151A (ja) | 並列データ処理方式 | |
| US11341400B1 (en) | Systems and methods for high-throughput computations in a deep neural network | |
| US10853037B1 (en) | Digital circuit with compressed carry | |
| JPS6125188B2 (ja) | ||
| US20230110219A1 (en) | Neural Network Training With Decreased Memory Consumption And Processor Utilization | |
| CN111045728A (zh) | 一种计算装置及相关产品 | |
| EP4024283A1 (en) | Method and apparatus for processing data, and related product | |
| US5422836A (en) | Circuit arrangement for calculating matrix operations in signal processing | |
| JPH04316153A (ja) | ニューロプロセッサ | |
| Alexandridis et al. | Low-cost flashattention with fused exponential and multiplication hardware operators | |
| JPH06139217A (ja) | 高精度演算処理装置および方法 | |
| CN113536219B (zh) | 运算方法、处理器以及相关产品 | |
| CN116663625A (zh) | 具有低位精度权重的用于机器学习的处理器指令集架构 | |
| US5684731A (en) | Booth multiplier using data path width adder for efficient carry save addition | |
| JP2825133B2 (ja) | 並列データ処理方式 | |
| Dey et al. | An application specific processor architecture with 3D integration for recurrent neural networks | |
| JPH05128285A (ja) | ニユーロプロセツサ | |
| US20260037315A1 (en) | AI ACCELERATOR, SoC AND ELECTRIC DEVICE INCLUDING AI ACCELERATOR, AND OPERATING METHOD OF AI ACCELERATOR | |
| JPH04237364A (ja) | ニューロコンピュータ |