TOP特許意匠商標
特許ウォッチ DM通知 Twitter
10個以上の画像は省略されています。
公開番号2021047778
公報種別公開特許公報(A)
公開日20210325
出願番号2019171260
出願日20190920
発明の名称演算回路
出願人株式会社東芝,東芝デバイス&ストレージ株式会社
代理人個人,個人,個人,個人,個人
主分類G06N 3/063 20060101AFI20210226BHJP(計算;計数)
要約【課題】回路規模の縮小、演算時間の短縮、あるいは低消費電力化が可能なシグモイド関数を演算する演算回路を提供する。
【解決手段】実施形態の演算回路は、シグモイド関数の演算を行う演算回路において、シグモイド関数における自然対数の底eを基数とする指数演算で指数が負の数である場合に、前記指数を正の数として計算を行い、第1計算結果を出力するべき乗及び開平演算器12と、1からべき乗及び開平演算器12による第1計算結果を減算し、減算値を出力する減算器17とを備える。
【選択図】図4
特許請求の範囲【請求項1】
シグモイド関数の演算を行う演算回路において、
前記シグモイド関数における自然対数の底eを基数とする指数演算で指数が負の数である場合に、前記指数を正の数として計算を行い、第1計算結果を出力する第1回路と、
1から前記第1回路による前記第1計算結果を減算し、減算値を出力する第2回路と、
を具備する演算回路。
続きを表示(約 1,000 文字)【請求項2】
前記第1回路は、前記指数演算で前記指数が正の数である場合に、前記指数にて計算を行い、第2計算結果を出力し、
前記演算回路は第3回路をさらに具備し、
前記第3回路は、前記第2回路からの前記減算値と、前記第2計算結果とを受け取り、選択信号に基づいて、前記減算値と前記第2計算結果のいずれかを出力する請求項1に記載の演算回路。
【請求項3】
前記指数が負の数であることを前記選択信号が示すとき、前記第3回路は前記減算値を出力し、前記指数が正の数であることを前記選択信号が示すとき、前記第3回路は前記第2計算結果を出力する請求項2に記載の演算回路。
【請求項4】
シグモイド関数の演算を行う演算回路において、前記シグモイド関数は2のべき乗演算を含み、
入力信号に基づいて、2のべき乗演算の整数部における数値列の1をシフトする第1回路と、2のべき乗演算の小数部における数値列を算出する第2回路と、
を具備する演算回路。
【請求項5】
前記第1回路は、第1入力端子に1が入力され、第2入力端子に前記入力信号が入力されたシフタを含み、前記第2回路は、2の平方根を開平する演算器と、前記演算器の出力を乗算する乗算器とを含む請求項4に記載の演算回路。
【請求項6】
前記演算回路は、前記シグモイド関数への入力信号が第1値以上である場合に、前記シグモイド関数の出力結果として1を出力する第4回路をさらに具備する請求項1乃至5のいずれかに記載の演算回路。
【請求項7】
前記演算回路は、前記シグモイド関数への入力信号が第2値以下である場合に、前記シグモイド関数の出力結果として0を出力する第5回路をさらに具備する請求項1乃至6のいずれかに記載の演算回路。
【請求項8】
前記第1回路はべき乗演算を実行するべき乗演算器を含み、前記べき乗演算の小数部の計算において、
仮数の下位ビットの開平演算結果が第1数値列であることを用い、前記第1数値列と前記仮数の下位ビットとの乗算により、前記べき乗演算の一部を計算する第6回路を備える請求項1乃至3のいずれかに記載の演算回路。
【請求項9】
前記第1回路はべき乗演算を実行するべき乗演算器を含み、前記べき乗演算の小数部の計算において、
仮数のビットを反転して、前記べき乗演算の一部を計算する第7回路を備える請求項1乃至3、8のいずれかに記載の演算回路。

発明の詳細な説明【技術分野】
【0001】
実施形態は、シグモイド関数を演算する演算回路に関する。
続きを表示(約 3,600 文字)【背景技術】
【0002】
近年、AI開発がブームとなり、例えば、ニューラルネットワークに関する活性化関数のハードウェアへの実装方法の研究が盛んに行われている。
【0003】
ニューラルネットワークでは、活性化関数としてシグモイド関数がよく利用される。しかし、シグモイド関数は、計算式が複雑であるため、ハードウェアで実装するのは難しい。
【先行技術文献】
【特許文献】
【0004】
特開平6−203058号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
実施形態は、回路規模の縮小、演算時間の短縮、あるいは低消費電力化が実現でき、ハードウェアへ容易に実装可能なシグモイド関数を演算する演算回路を提供する。
【課題を解決するための手段】
【0006】
実施形態の演算回路は、シグモイド関数の演算を行う演算回路において、前記シグモイド関数における自然対数の底eを基数とする指数演算で指数が負の数である場合に、前記指数を正の数として計算を行い、第1計算結果を出力する第1回路と、1から前記第1回路による前記第1計算結果を減算し、減算値を出力する第2回路とを備える。
【図面の簡単な説明】
【0007】
図1は、ニューラルネットワークの概念図である。
図2は、シグモイド関数f(x)を表す図である。
図3は、比較例の演算回路の一例を示す図である。
図4は、第1実施形態の演算回路の構成を示すブロック図である。
図5は、比較例のべき乗及び開平演算器を含む演算回路の構成を示すブロック図である。
図6は、第2実施形態の演算回路の構成を示すブロック図である。
図7は、第3実施形態の演算回路の構成を示すブロック図である。
図8は、シグモイド関数における2のべき乗計算において、各ビットに対応するべき乗の値を示す図である。
図9は、シグモイド関数における2のべき乗計算において、各ビットに対応するべき乗の値を示す図である。
図10は、第5実施形態のべき乗及び開平演算器を含む演算回路の構成を示すブロック図である。
図11は、シグモイド関数における2のべき乗計算において、累乗根の固定値テーブルを示す図である。
図12は、第6実施形態の演算回路の構成を示すブロック図である。
【発明を実施するための形態】
【0008】
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。さらに、各実施形態は、組み合わせが可能であれば、2つあるいは多数の実施形態を組み合わせて、1つの実施形態として実行されてもよい。
【0009】
各機能ブロック(または、回路ブロック)は、ハードウェア、ソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【0010】
1.第1実施形態
前述したように、ニューラルネットワークでは、活性化関数としてシグモイド関数がよく利用される。図1に、ニューラルネットワークの概念図を示す。
【0011】
シグモイド関数f(x)は、以下の式(1)で示され、図2で表すことができる。
【0012】
【0013】
上記式(1)で示されたシグモイド関数f(x)を演算するための演算回路の一例を図3に示す。図3に示す演算回路100は、本実施形態に対する比較例であり、乗算器11、べき乗及び開平演算器12、除算器13、マルチプレクサ14、加算器15、及び除算器16を備える。
【0014】
このような回路においてシグモイド関数f(x)の演算が行われるが、シグモイド関数の演算の中では、べき乗計算が最も演算量が多い。
【0015】
以下に、シグモイド関数の演算中で、なぜ、べき乗計算の演算量が多いかを単精度浮動小数点数の例で説明する。
【0016】

12.40625
=e
1010.01101b
上記式を展開すると、以下の式(2)のようになる。
【0017】
【0018】
ここで、以下の式(3)に示すように、各ビットに対応するeのべき乗(累乗根)の値は、指数の整数部は2乗、指数の小数部は平方根を繰り返し実施して求める必要がある。単精度浮動小数点数では、指数が−126〜127で表現されるため、その分の2乗・平方根の実施が必要である。また、最終的にそれらを乗算する必要があり、仮数の分(23ビット)だけ乗算が必要となる。
【0019】
【0020】
以下に、第1実施形態の演算回路について説明する。第1実施形態では、シグモイド関数において、最後の逆数演算(または、除算)を減算へ置き換える手法について説明する。
【0021】
1.1 演算回路の構成
図4を用いて、第1実施形態の演算回路の構成について説明する。図4は、第1実施形態の演算回路の構成を示すブロック図である。
【0022】
演算回路10は、乗算器11、べき乗及び開平演算器12、加算器15、除算器16、減算器17、及びマルチプレクサ18を備える。乗算器11、べき乗及び開平演算器12、加算器15、除算器16、及び減算器17の各々は、第1入力端子、第2入力端子、及び出力端子を有する。マルチプレクサ18は、第1入力端子、第2入力端子、制御端子、及び出力端子を有する。図4に示す演算回路10は、図3に示した演算回路100に対して、回路A1が削除され、回路A2が追加されたものである。
【0023】
1.2 演算回路の動作
入力信号(または、入力変数)xが乗算器11の第1入力端子に入力され、−aが乗算器11の第2入力端子に入力される。aは、図2におけるf(x)の傾きを決める値である。乗算器11の出力端子からの出力信号が、べき乗及び開平演算器12の第1入力端子に入力され、eがべき乗及び開平演算器12の第2入力端子に入力される。eはネイピア数であり、自然対数の底である。
【0024】
べき乗及び開平演算器12の出力端子からの出力信号が、加算器15の第1入力端子に入力され、1が加算器15の第2入力端子に入力される。加算器15の出力端子からの出力信号が、除算器16の第1入力端子に入力され、1が除算器16の第2入力端子に入力される。
【0025】
除算器16の出力端子からの出力信号が、減算器17の第1入力端子とマルチプレクサ18の第1入力端子に入力され、1が減算器17の第2入力端子に入力される。減算器17の出力端子からの出力信号が、マルチプレクサ18の第2入力端子に入力される。マルチプレクサ18は、制御端子に入力された選択信号に応じて、第1入力端子あるいは第2入力端子のいずれかに入力された信号を、出力端子から出力信号f(x)として出力する。
【0026】
以下に、シグモイド関数f(x)における逆数演算を減算に置き換える手法を示す。シグモイド関数f(x)においては、x ≧ 0 の場合に、自然対数の底eのべき乗演算後に、逆数演算が必要となる。
【0027】
式(1)で示されるシグモイド関数f(x)は、図2に示すように、座標(0, 0.5)で点対称であることを利用すると、以下の式が成り立つ。
【0028】
f(x)=1−f(−x)
よって、x の符号別に処理を分けることで、以下の式(4)に示すように、逆数演算を減算に置き換えることが可能となる。
【0029】
【0030】
以下に、図4を用いて、第1実施形態の演算回路の動作について説明する。
(【0031】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許

株式会社東芝
電池
株式会社東芝
センサ
株式会社東芝
回転子
株式会社東芝
組電池
株式会社東芝
センサ
株式会社東芝
回転子
株式会社東芝
センサ
株式会社東芝
センサ
株式会社東芝
入力回路
株式会社東芝
演算回路
株式会社東芝
プラント
株式会社東芝
回転電機
株式会社東芝
白色光源
株式会社東芝
測距装置
株式会社東芝
電子回路
株式会社東芝
駅務機器
株式会社東芝
計算装置
株式会社東芝
2逓倍器
株式会社東芝
受信装置
株式会社東芝
電源装置
株式会社東芝
動翼翼列
株式会社東芝
浄化装置
株式会社東芝
電源回路
株式会社東芝
電子機器
株式会社東芝
電気機器
株式会社東芝
記録媒体
株式会社東芝
制振装置
株式会社東芝
測定装置
株式会社東芝
発振装置
株式会社東芝
送信装置
株式会社東芝
ダンパー
株式会社東芝
電子回路
株式会社東芝
増幅回路
株式会社東芝
通信機器
株式会社東芝
運搬装置
株式会社東芝
電源装置
続きを見る