TOP > 国内特許検索 > 乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワーク

乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワーク UPDATE コモンズ 新技術説明会

国内特許コード P160013366
整理番号 KIT16011
掲載日 2016年10月13日
出願番号 特願2016-156471
公開番号 特開2018-025920
出願日 平成28年8月9日(2016.8.9)
公開日 平成30年2月15日(2018.2.15)
発明者
  • 堀 三晟
  • 田向 権
  • 森江 隆
出願人
  • 国立大学法人九州工業大学
発明の名称 乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワーク UPDATE コモンズ 新技術説明会
発明の概要 【課題】乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワークを提供する。
【解決手段】処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まるユニットB毎の状態値Bを固定小数点2進数による演算で求め、ユニットB毎の発火確率P(B)から発火又は非発火の状態を決定して出力する演算回路部14を設け、演算回路部14には、状態値Bを求める際に固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、ユニットB毎の発火確率P(B)からユニットBの発火又は非発火の状態を決定するユニット状態演算器21、24を設ける。
【選択図】図1
従来技術、競合技術の概要


制限付きボルツマンマシン(例えば、非特許文献1参照)は、近年、AI(人工知能)の分野で盛んに研究が行なわれている深層学習に用いられるニューラルネットワークの一つである。
制限付きボルツマンマシンによる学習では、学習データが可視層を構成する複数の可視ユニットに入力されて隠れ層を構成している隠れユニットに伝搬する順方向学習と、隠れ層の隠れユニットで形成される出力データが隠れ層から可視層の可視ユニットに伝搬する逆方向学習を繰り返すことにより、各可視ユニット(隠れユニット)から各隠れユニット(可視ユニット)にデータがそれぞれ伝搬する際の結合荷重(重み)を調整して、可視層に学習データが入力された際の隠れ層からの出力データを、一定誤差の範囲内で目的出力データに一致させることを目的としている。



ここで、制限付きボルツマンマシンで構成された多層のニューラルネットワークの学習をソフトウェア上で行なう場合、順方向学習と逆方向学習の繰り返し学習を膨大な回数実行するため、大規模な計算資源と非常に長い演算時間を要することになり、消費電力量も増大するという問題がある。
そこで、制限付きボルツマンマシンによる多層のニューラルネットワークの学習を、より高速かつ低消費電力で行うことを可能にするために、制限付きボルツマンマシンのハードウェア化(チップ化)の研究が行なわれている(例えば、非特許文献2参照)。

産業上の利用分野


本発明は、深層学習(Deep Learning)に用いる乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワークに関する。

特許請求の範囲 【請求項1】
深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークのハードウェア実装の方法であって、
最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、該処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まる該ユニットB毎の状態値Bを固定小数点2進数による演算で求め、該状態値Bを変数とする発火確率関数を用いて前記ユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力する演算回路部を設け、前記演算回路部には、前記状態値Bを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、前記ユニットB毎の発火確率P(B)から該ユニットBの発火又は非発火の状態を決定するユニット状態演算器を設けることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。

【請求項2】
請求項1記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記ニューラルネットワークは制限付きボルツマンマシンであって、
前記制限付きボルツマンマシンの可視層を形成する複数の可視ユニットのそれぞれの発火又は非発火の状態を示す状態値vが、該可視層と結合する隠れ層を形成する複数の隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の状態値hを固定小数点2進数による演算から求め、該状態値hを変数とする発火確率関数を用いて前記隠れユニット毎の発火確率P(h)を求めて発火又は非発火の状態を決定して出力する順方向学習を行う第1の演算回路部を前記隠れユニット毎に対応させて設け、前記順方向学習で決定された前記隠れユニット毎の状態値hが複数の前記可視ユニットにそれぞれ伝達されて決まる該可視ユニット毎の状態値vを固定小数点2進数による演算から求め、該状態値vを変数とする前記発火確率関数を用いて前記可視ユニット毎の発火確率P(v)を求めて発火又は非発火の状態を決定する逆方向学習を行う第2の演算回路部を前記可視ユニット毎に対応させて設けて、前記第1の演算回路部と前記第2の演算回路部で前記演算回路部を構成し、
前記第1の演算回路部には、前記順方向学習において前記状態値hを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数hとして用いて、前記隠れユニット毎の発火確率P(h)から前記隠れユニットの発火又は非発火の状態を決定する第1のユニット状態演算器を設け、前記第2の演算回路部には、前記逆方向学習において前記状態値vを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数vとして用いて、前記可視ユニット毎の発火確率P(v)から前記可視ユニットの発火又は非発火の状態を決定する第2のユニット状態演算器を設けて、前記第1のユニット状態演算器と前記第2のユニット状態演算器でユニット状態演算器を構成することを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。

【請求項3】
請求項2記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記固定小数点2進数のビット幅を超過して切り捨てられるビットは、小数部の下位側のビット又は固定小数点2進数の整数部の上位側ビットであることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。

【請求項4】
請求項2又は3記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記乱数hが前記発火確率P(h)以下では前記隠れユニットを発火状態とし、該乱数hが該発火確率P(h)を超えると該隠れユニットを非発火状態とし、前記乱数vが前記発火確率P(v)以下では前記可視ユニットを発火状態とし、該乱数vが該発火確率P(v)を超えると該可視ユニットを非発火状態とすることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。

【請求項5】
請求項2記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、最初の前記順方向学習における前記可視ユニット毎の初期状態値vを該可視ユニットにそれぞれ学習値を入力して求め、前記各初期状態値vが前記隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の発火確率P(h)から該隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数hを、前記各初期状態値vが前記隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の状態値hを前記固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成することを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。

【請求項6】
請求項5記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記乱数hが前記発火確率P(h)以下では前記隠れユニットを発火状態とし、該乱数hが該発火確率P(h)を超えると該隠れユニットを非発火状態とすることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。

【請求項7】
深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークであって、
最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、該処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まる該ユニットB毎の状態値Bを固定小数点2進数による演算で求め、該状態値Bを変数とする発火確率関数を用いて前記ユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力する演算回路部を有し、
前記演算回路部には、前記状態値Bを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、前記ユニットB毎の発火確率P(B)から該ユニットBの発火又は非発火の状態を決定するユニット状態演算器が設けられていることを特徴とする乱数生成器が不要なニューラルネットワーク。

【請求項8】
請求項7記載の乱数生成器が不要なニューラルネットワークにおいて、前記処理層Aは制限付きボルツマンマシンの可視層、前記処理層Bは該制限付きボルツマンマシンの隠れ層であって、
前記演算回路部は、可視層を形成する複数の可視ユニットのそれぞれの発火又は非発火の状態を示す状態値vが、該可視層と結合する隠れ層を形成する複数の隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の状態値hを固定小数点2進数による演算から求め、該状態値hを変数とする発火確率関数を用いて前記隠れユニット毎の発火確率P(h)を求めて発火又は非発火の状態を決定して出力する順方向学習を行う第1の演算回路部と、前記順方向学習で決定された前記隠れユニット毎の状態値hが複数の前記可視ユニットにそれぞれ伝達されて決まる該可視ユニット毎の状態値vを固定小数点2進数による演算から求め、該状態値vを変数とする前記発火確率関数を用いて前記可視ユニット毎の発火確率P(v)を求めて発火又は非発火の状態を決定する逆方向学習を行う第2の演算回路部とを有し、
前記ユニット状態演算器は、前記第1の演算回路部に設けられ、前記順方向学習において前記状態値hを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数hとして用いて、前記隠れユニット毎の発火確率P(h)から前記隠れユニットの発火又は非発火の状態を決定する第1のユニット状態演算器と、前記第2の演算回路部に設けられ、前記逆方向学習において前記状態値vを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数vとして用いて、前記可視ユニット毎の発火確率P(v)から前記可視ユニットの発火又は非発火の状態を決定する第2のユニット状態演算器とを有していることを特徴とする乱数生成器が不要なニューラルネットワーク。
国際特許分類(IPC)
画像

※ 画像をクリックすると拡大します。

JP2016156471thum.jpg
出願権利状態 公開
詳細は、下記「問合せ先」まで直接お問い合わせください。


PAGE TOP

close
close
close
close
close
close
close