(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】演算処理装置、情報処理装置及び演算処理方法
(51)【国際特許分類】
G06F 17/15 20060101AFI20231128BHJP
G06F 7/483 20060101ALI20231128BHJP
G06N 20/00 20190101ALI20231128BHJP
G06N 3/08 20230101ALI20231128BHJP
【FI】
G06F17/15
G06F7/483
G06N20/00 130
G06N3/08
(21)【出願番号】P 2020101414
(22)【出願日】2020-06-11
【審査請求日】2022-08-25
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小野 瑞城
【審査官】坂東 博司
(56)【参考文献】
【文献】特表平1-501673(JP,A)
【文献】特表2020-521192(JP,A)
【文献】特表2017-515177(JP,A)
【文献】米国特許出願公開第2018/0300105(US,A1)
【文献】米国特許出願公開第2013/0191426(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/15
G06F 7/483
G06N 20/00
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
第1の処理の出力結果として出力される第1の浮動小数点値と、第2の処理の出力結果として出力される第2の浮動小数点値との組を複数、受け付ける受付部と、
複数の前記組に対して線形回帰を行い、前記線形回帰によって得られた情報に基づいて、前記第1の処理の出力結果と、前記第2の処理の出力結果との類似度を算出する算出部と、
を備える演算処理装置。
【請求項2】
前記算出部は、前記線形回帰により得られた回帰直線の傾き、前記回帰直線の切片、及び、前記線形回帰により得られた相関係数の少なくとも1つに基づいて前記類似度を算出する、
請求項1に記載の演算処理装置。
【請求項3】
前記算出部は、前記回帰直線の傾きが1に近いほど、前記類似度を高く算出する、
請求項2に記載の演算処理装置。
【請求項4】
前記算出部は、前記回帰直線の切片が0に近いほど、前記類似度を高く算出する、
請求項2に記載の演算処理装置。
【請求項5】
前記算出部は、前記線形回帰により得られた相関係数が1に近いほど、前記類似度を高く算出する、
請求項2に記載の演算処理装置。
【請求項6】
前記第1の処理は、FPGA(Field Programmable Gate Array)を用いて実行され、
前記第2の処理は、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)を用いて実行される、
請求項1乃至5のいずれか1項に記載の演算処理装置。
【請求項7】
前記第1の処理は、ニューラルネットワーク又は人工知能の推論処理の一部を少なくとも含み、
前記第2の処理は、前記ニューラルネットワーク又は前記人工知能の教師データを読み出す処理を含む、
請求項1乃至5のいずれか1項に記載の演算処理装置。
【請求項8】
前記推論処理に用いられるパラメーターの学習を行う学習部と、
記憶装置と、
前記学習により得られたパラメーターを前記記憶装置に記憶する記憶制御部と、
前記パラメーターを用いて、前記推論処理を行う推論部と、
を更に備え、
前記受付部は、前記推論処理の出力結果として出力される第1の浮動小数点値と、前記教師データを示す第2の浮動小数点値との組を複数、受け付け、
前記算出部は、複数の前記組に対して線形回帰を行い、前記線形回帰によって得られた情報に基づいて、前記推論処理の出力結果と、前記教師データとの類似度を算出し、
前記学習部は、前記類似度に基づいて前記パラメーターを更新する、
請求項7に記載の演算処理装置。
【請求項9】
前記学習部は、前記推論処理に用いられるパラメーターの学習を複数回に渡って行い、かつ、前記複数回の学習の少なくとも一度は前記推論処理の後に行う、
請求項8に記載の演算処理装置。
【請求項10】
パラメーターを記憶する記憶装置と、
演算処理装置とを備え、
前記演算処理装置は、
ニューラルネットワーク又は人工知能の推論処理に用いられるパラメーターの学習を行う学習部と、
前記学習により得られたパラメーターを前記記憶装置に記憶する記憶制御部と、
前記パラメーターを用いて、前記推論処理を行う推論部と、
前記推論処理の出力結果として出力される第1の浮動小数点値と、前記ニューラルネットワーク又は人工知能の教師データを示す第2の浮動小数点値との組を複数、受け付ける受付部と、
複数の前記組に対して線形回帰を行い、前記線形回帰によって得られた情報に基づいて、前記推論処理の出力結果と、前記教師データとの類似度を算出する算出部と、を備え、
前記学習部は、前記類似度に基づいて前記パラメーターを更新する、
を備える情報処理装置。
【請求項11】
演算処理装置が、第1の処理の出力結果として出力される第1の浮動小数点値と、第2の処理の出力結果として出力される第2の浮動小数点値との組を複数、受け付けるステップと、
前記演算処理装置が、複数の前記組に対して線形回帰を行うステップと、
前記演算処理装置が、前記線形回帰によって得られた情報に基づいて、前記第1の処理の出力結果と、前記第2の処理の出力結果との類似度を算出するステップと、
を含む演算処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は演算処理装置、情報処理装置及び演算処理方法に関する。
【背景技術】
【0002】
例えばニューラルネットワーク又は人工知能の処理等の所望の処理を、FPGA(Field Programmable Gate Array)等を用いて、複数の方法で実行する場合に、所望の処理と等価な処理が行われているか確認が必要となる。数値として浮動小数点値を用いると数値に対する丸め誤差が有る。それぞれの方法で、浮動小数点値の取扱い方が異なると、仮に等価な処理を行っていたとしても、得られる処理結果は厳密には一致しない。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】K. He, X. Zhang, S. Ren, J. Sun (2016). “Deep Residual Learning for Image Recognition,” in Proc. of the IEEE Computer Society Conf. on Computer Vision and Pattern Recognition, pp.770-778
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の技術では、浮動小数点値を用いた数値の類似度を定量的に把握することが難しかった。
【課題を解決するための手段】
【0006】
実施形態の演算処理装置は、受付部と算出部とを備える。受付部は、第1の処理の出力結果として出力される第1の浮動小数点値と、第2の処理の出力結果として出力される第2の浮動小数点値との組を複数、受け付ける。算出部は、複数の前記組に対して線形回帰を行い、前記線形回帰によって得られた情報に基づいて、前記第1の処理の出力結果と、前記第2の処理の出力結果との類似度を算出する。
【図面の簡単な説明】
【0007】
【
図1】浮動小数点値を用いた2つの数値の一方を横軸に他方を縦軸に取ったグラフの例を示す図。
【
図2】第1実施形態の演算処理装置の機能構成の例を示す図。
【
図3】第1実施形態の演算処理方法の例を示すフローチャート。
【
図4】第2実施形態の情報処理装置の機能構成の例を示す図。
【
図5】第2実施形態の演算処理方法の例を示すフローチャート。
【
図6】第3実施形態の情報処理システムの機能構成の例を示す図。
【
図7】第2及び第3実施形態の情報処理装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、演算処理装置、情報処理システム及び演算処理方法の実施形態を詳細に説明する。
【0009】
(第1実施形態)
例えばニューラルネットワーク又は人工知能等の所望の処理を、異なる演算処理装置を用いて実行する場合、例えばCPU(Central Processing Unit)、及び、GPU(Graphics Processing Unit)では、所望の処理がその定義に基づいて行われる。一方、例えばFPGAで所望の処理を並列で行う場合は、所望の処理がその定義に基づいて行われず、処理の順序が変更されて行われる可能性がある。そのため、所望の処理を、異なる演算処理装置を用いて実行する場合、浮動小数点値として出力される処理結果の照合が必要になる。
【0010】
浮動小数点値を用いて表された数値の比較(照合)を行う場合には、両者が類似していることを確認する必要が有る。その類似度を、数値化して定量的に比較するためには、例えば、対応する数値(比較対象の数値)の差の絶対値を調べるということが考えられるが、それを類似度と解釈し得るためには真の数値(本来の数値)もまた必要となる。真の数値は、例えば所望の処理を例えばCPU又はGPU等で定義通りに実行することにより得られた値である。また例えば、真の数値は、機械学習で用いられる教師データの値である。
【0011】
例えば、異なる方法で得られた対応する2つの数値の差の絶対値が10-5であったとして、真の数値が10-2であれば、両者の相対的な相違として割合(比)を計算すると、10-5/10-2=10-3である。真の数値が10-6であれば、両者の相対的な相違は10-5/10-6=10+1である。それ故、異なる方法で得られた対応する2つの数値の差の絶対値のみでは、真の数値との類似度も含めて判断するには不十分である。
【0012】
一つの可能性として、対応する数値の差の絶対値の、真の数値に対する比を調べることも考えられるが、仮に真の数値がゼロであればその比は定義されないので、この方法で類似度を定量的に把握することはできない。
【0013】
また他の方法として、比較対象の数値の組に対して一方を横軸に、他方を縦軸に取ったグラフが、原点を通る傾きが1の直線に近いことを確認するという方法が考えられるが、その「直線に近い」ということのみでは類似度を定量的に把握することはできない。
【0014】
この様に浮動小数点値を用いて表された数値の類似度を定量的に把握することは難しい。そのため、所望の処理を、例えば、FPGA上で複数の方法で行った場合、浮動小数点値を用いて表された数値の類似度を比較して、真の数値に最も近い数値を得られる方法を採用することが難しかった。
【0015】
以下、浮動小数点値を用いた数値の類似度を定量的に把握することを可能とし、その結果として複数の類似度の定量的な比較を可能とする演算処理装置、演算処理方法及びプログラムについて説明する。
【0016】
以下に示される数値等は説明の為に特定の数値としている場合もあるが、その数値は本質ではなく他の数値であってもよい。また本発明の実施形態は、以下の実施形態に限定されるものではなく、種々変更して用いる事ができる。
【0017】
例えば非特許文献1に記載されている50-layerのResidual Networkの最初のconvolution処理に続くmax pooling処理の結果に対し、convolution処理ないしmax pooling処理の本来の定義に基づいてGPUを用いて演算処理を行った結果を横軸に取り、FPGAを用いて並列処理を行った演算処理結果を縦軸に取ったグラフを
図1に示す。
【0018】
図1のグラフは原点を通る傾きが1の直線に極めて近いことが分かる。すなわち数値の二つの組は相互に類似していることが分かる。しかし、
図1のグラフでは、類似度を定量的に把握することはできていない。
【0019】
次に、類似度の定量的な把握を可能にする第1実施形態の演算処理装置の機能構成について説明する。
【0020】
[機能構成の例]
図2は第1実施形態の演算処理装置10の機能構成の例を示す図である。第1実施形態の演算処理装置10は、受付部1、算出部2及び選択部3を備える。
【0021】
受付部1は、第1の処理の出力結果として出力される第1の浮動小数点値と、第2の処理の出力結果として出力される第2の浮動小数点値との組を複数、受け付ける。例えば、第1の処理の出力結果は、FPGAを用いて行われた並列処理の出力結果である(
図1の縦軸)。また例えば、第2の処理の出力結果は、GPUを用いて行われた演算処理の出力結果である(
図1の横軸)。
【0022】
算出部2は、複数の組に対して線形回帰を行い、線形回帰によって得られた情報に基づいて、第1の処理の出力結果と、第2の処理の出力結果との類似度を算出する。なお、線形回帰とは仮定した一次式と真の数値との差の二乗の和が最も小さくなる様に傾き及び切片(縦軸切片)を定める方法である。例えば、算出部2は、線形回帰により得られた回帰直線の傾き、回帰直線の切片、及び、線形回帰により得られた相関係数の少なくとも1つに基づいて類似度を算出する。算出部2は、第1の処理が複数の方法で実行される場合、それぞれの方法で実行された第1の処理の出力結果毎に、第2の処理の出力結果との類似度を算出する。
【0023】
選択部3は、第1の処理を実行する複数の方法から、算出部2により算出された類似度に基づいて、方法を選択する。
【0024】
上述の
図1の例では、算出部2は、横軸の値と縦軸の値とを組にし、複数の組に対して線形回帰を行うと、当該線形回帰によって、例えば下記の情報が得られる。
【0025】
回帰直線の傾き =1+1.64x10-8
回帰直線の切片 =-2.64x10-9
相関係数 =1-8.62x10-13
【0026】
仮にそれぞれの組に含まれる2つの数値が厳密に相等しければ、グラフは原点を通る傾きが1の直線になるので、線形回帰の結果として得られる回帰直線の傾きは1、切片は0、相関係数は1となる。それ故、傾きについては、線形回帰により得られた回帰直線の傾きと1との差が小さいほど、それぞれの組に含まれる2つの数値の類似度は高い。また、切片については、線形回帰により得られた切片の値が0に近いほど、それぞれの組に含まれる2つの数値の類似度は高い。また、相関係数については、線形回帰により得られた相関係数と1との差が小さいほど、それぞれの組に含まれる2つの数値の類似度は高い。
【0027】
従って、実際に線形回帰を行って得られる傾きと1との差、切片の値、及び、相関係数と1との差、を用いて二つの数値の類似度を定量的に把握することが可能となる。この様にすることに依り、浮動小数点値を用いた2つの数値を含む複数の組の類似度の定量的な把握が可能となる。それ故、例えば特定のニューラルネットワーク又は人工知能の処理をFPGA上で複数の方法で行う場合に、例えば以下の様にすることに依りそれらの方法に対する定量的な比較が可能になる。また、それらの方法に対する定量的な比較が可能になることによって、より適切な方法の選択が可能になるので、より高性能な演算処理を実現可能になる。
【0028】
複数の方法を例えば方法A、方法B、…とする。以下の説明では、方法A及びBを比較する場合を例にして説明する。なお、3つ以上の方法を比較する場合も、2つの方法を比較する場合と同様である。
【0029】
算出部2は、方法Aを用いてFPGA上で演算処理を行った結果と、例えばCPU又はGPUを用いて、所望の処理の定義に基づいて演算処理を行った結果とに対して線形回帰を行う。この線形回帰により得られた傾き、切片及び相関係数を、傾きA、切片A及び相関係数Aとする。
【0030】
同様に、算出部2は、方法Bを用いてFPGA上で演算処理を行った結果と、CPU又はGPUを用いて、所望の処理の定義に基づいて演算処理を行った結果とに対して線形回帰を行う。この線形回帰により得られた傾き、切片及び相関係数を、傾きB、切片B及び相関係数Bとする。
【0031】
例えば、算出部2は、傾きAに基づく類似度を傾きAと1との差の絶対値(|傾きA-1|)により算出し、傾きBに基づく類似度を傾きBと1との差の絶対値(|傾きB-1|)により算出する。すなわち、算出部2は、回帰直線の傾きが1に近いほど、類似度を高く算出する。
【0032】
また例えば、算出部2は、切片Aに基づく類似度を切片Aの絶対値(|切片A|)により算出し、切片Bに基づく類似度を切片Bの絶対値(|切片B|)により算出する。すなわち、算出部2は、回帰直線の切片が0に近いほど、類似度を高く算出する。
【0033】
また例えば、算出部2は、相関係数Aに基づく類似度を相関係数Aと1との差の絶対値(|相関係数A-1|)により算出し、相関係数Bに基づく類似度を相関係数Bと1との差の絶対値(|相関係数B-1|)により算出する。すなわち、算出部2は、相関係数が1に近いほど、類似度を高く算出する。
【0034】
上述の類似度を用いることにより、各々の方法を用いた演算処理結果と、例えばCPU又はGPUを用いて所望の処理の定義に基づいて演算処理を行った結果(真の数値を示す結果)との類似度を定量的に比較することが可能となる。
【0035】
選択部3は、算出部2により算出された類似度を比較し、方法A又はBを選択する。
【0036】
なお、方法の比較に於いては線形回帰により得られる傾き、切片及び相関係数の三者の内の一者を用いても良いし、二者ないし三者を用いてもよい。一者のみを用いて比較を行うのであれば比較が簡略に為されるという利点が得られる。
【0037】
特に傾きを用いて比較を行うのであれば、線形回帰の結果として得られた回帰直線が傾き1の直線により近くなる方法、すなわち2つの数値の差がより正確に算出される方法が選択される。2つの数値の差がより大切である事象に適用する場合に、傾きを用いて比較を行うと、特に大きな効果が得られる。
【0038】
また、特に切片を用いて比較を行うのであれば、線形回帰の結果として得られた回帰直線が原点を通る直線により近くなる方法、すなわち2つの数値の比がより正確に算出される方法が選択される。2つの数値の比がより大切である事象に適用する場合に、切片を用いて比較を行うと、特に大きな効果が得られる。
【0039】
また、特に相関係数を用いて比較を行うのであれば線形回帰の結果が直線により近くなる方法、すなわち非直線性が小さい(直線性が大きい)という意味での真の数値との類似度がより高い方法が選択される。非直線性の小さいことが大切である事象に適用する場合に、相関係数を用いて比較を行うと、特に大きな効果が得られる。
【0040】
一方、二者ないし三者を用いて比較を行うのであれば比較をより多面的な観点より行うことになるので精度が高まるという他の利点が得られる。特に三者を用いて比較を行うのであれば最も多面的な観点より比較が行われるという利点が得られる。
【0041】
なお、三者を用いる場合には例えば、
|傾き-1|+|切片|+|相関係数-1|
の様に三者の絶対値の和を各々の方法に対して求め、それらの大小を比較することも可能である。
【0042】
また例えば、
(傾き-1)2+切片2+(相関係数-1)2
の様に三者の二乗の和を各々の方法に対して求め、それらの大小を比較することも可能である。
【0043】
また前者の場合には例えば、
|傾き-1|×2+|切片|×3+|相関係数-1|×4
の様に重みを付けた和を各々の方法に対して求め、それらの大小を比較することも可能である。なお、重みはここでは2、3、4としたが、これは飽くまで一例であり、他の重みであってもよい。
【0044】
また、三者の二乗を比較に用いる場合にも例えば、
(傾き-1)2×2+切片2×3+(相関係数-1)2×4
の様に重みを付けた和を各々の方法に対して求め、それらの大小を比較することも可能である。なお、重みはここでは2、3、4としたが、これは飽くまで一例であり、他の重みであってもよい。
【0045】
また例えば、選択部3は、複数の方法から方法を選択する際に、例えば下記のようにして段階的に類似度を比較してもよい。
(1)|傾き-1|が最小の方法を選択する。
(2)(1)で複数の方法が選択された場合、それらの方法のうちで|切片|が最小の方法を選択する。
(3)(2)で複数の方法が選択された場合、それらの方法のうちで|相関係数-1|が最小の方法を選択する。
【0046】
なお、ここでは一例として、選択部3が、先ず|傾き-1|を比較し、次に|切片|を比較し、その次に|相関係数-1|を比較したが、この順序は飽くまで一例である。その他の例として例えば、選択部3は、先ず|傾き-1|を比較し、次に|相関係数-1|を比較し、その次に|切片|を比較してもよい。また例えば、選択部3は、先ず|切片|を比較し、次に|傾き-1|を比較し、その次に|相関係数-1|を比較してもよい。また例えば、選択部3は、先ず|切片|を比較し、次に|相関係数-1|を比較し、その次に|傾き-1|を比較してもよい。また例えば、選択部3は、先ず|相関係数-1|を比較し、次に|傾き-1|を比較し、その次に|切片|を比較してもよい。また例えば、選択部3は、先ず|相関係数-1|を比較し、次に|切片|を比較し、その次に|傾き-1|を比較してもよい。
【0047】
なお、ここに於いては線形回帰の結果として得られた傾き、切片及び相関係数の三者を用いて比較する場合に関して記したが、二者を用いて比較を行う場合に関しても同様である。
【0048】
また、上記は比較の方法の具体例であり、線形回帰の結果(例えば傾き、切片及び相関係数の少なくとも1つ)に基づく類似度を用いるのであれば、他の比較方法を用いても、複数の方法に対する定量的な比較が可能となり、その帰結として高性能の演算処理が可能となるという効果が得られる。
【0049】
[演算処理方法の例]
図3は第1実施形態の演算処理方法の例を示すフローチャートである。はじめに、受付部1が、第1の処理の出力結果として出力される第1の浮動小数点値と、第2の処理の出力結果として出力される第2の浮動小数点値との組を複数、受け付ける(ステップS1)。
【0050】
次に、算出部2が、ステップS1の処理により受け付けた複数の組に対して線形回帰を行う(ステップS2)。次に、算出部2は、ステップS2の処理によって行われた線形回帰によって得られた情報(例えば傾き、切片及び相関係数の少なくとも1つ)に基づいて、第1の処理の出力結果と、第2の処理の出力結果との類似度を算出する(ステップS3)。
【0051】
第1の処理が複数の方法で実行される場合、それぞれの方法による出力結果毎に、ステップS1~ステップS3のフローが実行される。第1の処理が複数の方法で実行される場合、選択部3は、第1の処理を実行する複数の方法から、ステップS3により算出された類似度に基づいて、方法を選択する。
【0052】
なお、第1の処理として、例えば特定のニューラルネットワーク又は人工知能に対してFPGA上で演算処理を行った結果と、第2の処理として、例えばCPU又はGPUを用いてニューラルネットワーク又は人工知能の定義に基づいて演算処理を行った結果との比較は、そのニューラルネットワーク又は人工知能の最終結果に限るものではない。そのニューラルネットワーク又は人工知能の一部の演算処理を行った結果すなわち途中結果の比較に対しても、最終結果を比較する場合と同様の効果が得られる。
【0053】
そして特定のニューラルネットワーク又は人工知能に対してFPGA上で演算処理を行った結果と、例えばCPU又はGPUを用いてニューラルネットワーク又は人工知能の定義に基づいて演算処理を行った結果との比較に限るものではなく、他の数値の組に対する比較に於いても同様の効果が得られる。
【0054】
また、浮動小数点値を用いた数値の複数の組の定量的な比較の方法として、例えば対応する数値の差の絶対値を用いる場合に比べて、線形回帰は数値の複数の組の間の一次の関数関係の具体形を求める為に広く用いられている方法であるので、その有用性ないし実効性がよく立証されているという利点が有る。また、線形回帰には複雑な演算処理は不要であるので、その為に特別の処理の可能な装置が必要となるということは無いという利点が有る。特に線形回帰は一般の非線形回帰ないし重回帰と比較しても複雑な処理は必要ないという利点が有る。
【0055】
なお、従来の線形回帰の使用は数値の複数の組の間の一次の関数関係の具体形を求めることを目的として用いられる、すなわちその一次の関数関係の傾きと切片との具体的な数値を求めることを目的として用いられるものであるのに対し、本実施形態に於いては数値の複数の組の間の類似度の定量化を目的として用いられる。すなわち、本実施形態では、傾きと1との差、切片と0との差、及び、相関係数と1との差を求めることを目的として用いられるので、線形回帰の使用の目的は従来の方法とは本質的に異なる。
【0056】
以上、説明したように、第1実施形態の演算処理装置10では、受付部1が、第1の処理の出力結果として出力される第1の浮動小数点値と、第2の処理の出力結果として出力される第2の浮動小数点値との組を複数、受け付ける。そして、算出部2が、複数の組に対して線形回帰を行い、線形回帰によって得られた情報に基づいて、第1の処理の出力結果と、第2の処理の出力結果との類似度を算出する。
【0057】
これにより第1実施形態の演算処理装置10によれば、浮動小数点値を用いた数値の類似度を定量的に把握することができる。その結果として、例えば複数の方法の内で真の数値に最も近い数値の得られる方法を定量的に把握することが可能となり、その帰結として高性能の演算処理が可能となる。例えばFPGAを用いて処理を行うことにより並列処理を可能とすることでニューラルネットワーク又は人工知能の高速動作が得られ、かつ、演算結果のより正確な方法の選択が可能となるという効果が得られる。
【0058】
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。第2実施形態では、第1の処理が、ニューラルネットワーク又は人工知能の推論処理の一部を少なくとも含み、第2の処理が、ニューラルネットワーク又は人工知能の教師データを読み出す処理を含む場合を例にして説明する。
【0059】
[機能構成の例]
図4は、第2実施形態の情報処理装置100の機能構成の例を示す図である。第2実施形態の情報処理装置100は、演算処理装置10-2及び記憶装置20を備える。演算処理装置10-2は、受付部1、算出部2、選択部3、学習部4、記憶制御部5及び推論部6を備える。第2実施形態の演算処理装置10-2では、第1実施形態の演算処理装置10の構成に、更に学習部4、記憶制御部5及び推論部6が追加されている。
【0060】
学習部4は、ニューラルネットワーク又は人工知能の推論処理に用いられるパラメーターの学習を行う。学習部4は、推論処理に用いられるパラメーターの学習を複数回に渡って行い、かつ、複数回の学習の少なくとも一度は推論処理の後に行う。
【0061】
記憶制御部5は、学習により得られたパラメーターを記憶装置20に記憶する。パラメーターは、例えば畳み込み処理の重み及びバイアス等を示すパラメーターである。また例えば、記憶制御部5は、ニューラルネットワーク又は人工知能に入力される入力値を記憶装置20に記憶する。
【0062】
推論部6は、記憶装置20に記憶されたパラメーターを用いて、ニューラルネットワーク又は人工知能の推論処理を行う。
【0063】
第2実施形態の情報処理装置100では、例えば暫定的なパラメーターを用いた推論処理と、教師値との類似度の定量評価の為に線形回帰の処理が行われる。具体的には、受付部1が、暫定的なパラメーターを用いた推論処理の出力結果として出力される第1の浮動小数点値と、教師データを示す第2の浮動小数点値との組を複数、受け付ける。算出部2は、複数の組に対して線形回帰を行い、線形回帰によって得られた情報に基づいて、暫定的なパラメーターを用いた推論処理の出力結果と、教師データとの類似度を算出する。
【0064】
[演算処理方法の例]
図5は第2実施形態の演算処理方法の例を示すフローチャートである。はじめに、学習部4が、パラメーターの学習を行う(ステップS11)。パラメーターは、例えばニューラルネットワーク又は人工知能の処理で実行される畳み込み処理の重み及びバイアス等のパラメーターである。
【0065】
次に、記憶制御部5が、ステップS11の処理により得られたパラメーターを記憶装置に記憶する(ステップS12)。
【0066】
次に、推論部6が、ステップS12の処理によって記憶装置に記憶されたパラメーターを用いて、入力値に応じた推論を行う(ステップS13)。この推論処理に於いては、推論部6に入力された入力値と、当該入力値に応じた推論結果とが記憶装置20に記憶される。
【0067】
次に、学習部4が、追加学習の実行タイミングであるか否かを判定する(ステップS14)。追加学習の実行タイミングは、例えば特定の回数の推論処理が行われたタイミングである。また例えば、追加学習の実行タイミングは、最後に学習が実行された時から、特定の時間が経過したタイミングである。
【0068】
追加学習の実行タイミングでない場合(ステップS14,No)、処理はステップS13に戻り、推論部6が推論処理を継続する。
【0069】
追加学習の実行タイミングである場合(ステップS14,Yes)、学習部4が、ステップS13の推論処理後に記憶装置20に記憶された入力値と推論結果とを用いて、ニューラルネットワーク又は人工知能に対する追加学習を行う(ステップS15)。具体的には、学習部4が、暫定的なパラメーターを用いた推論処理の推論結果として出力される第1の浮動小数点値と、教師データを示す第2の浮動小数点値との組を受付部1に入力する。受付部1に浮動小数点値の組が入力されると、上述の
図3のフローの処理が実行され、教師データ(真の数値)との類似度が算出される。類似度の算出は、暫定的なパラメーター毎の推論結果に対して行われる。選択部3が、複数の暫定的なパラメーターのうち、例えば最も教師データに類似する推論結果を出力した暫定的なパラメーターを、追加学習後の推論処理のパラメーターとして選択する。
【0070】
次に、学習部4は、ステップS15の処理により行われた追加学習の結果に基づいて、パラメーターを更新する(ステップS16)。ステップS16の処理の後、処理はステップS13の推論処理に戻る。
【0071】
この様にして特定のニューラルネットワーク又は人工知能の処理に於いて自ら推論と学習とを行って進歩する演算処理装置10-2が得られる。
【0072】
以上、説明したように、第2実施形態の演算処理装置10-2では、暫定的なパラメーターを用いた推論処理により出力された浮動小数点値と、教師データを示す浮動小数点値との組に対して、線形回帰によって得られた情報に基づく類似度が算出される。類似度の算出は、暫定的なパラメーター毎の推論結果に対して行われるので、暫定的なパラメーターを用いた推論処理の推論結果の定量的な比較が可能になる。これにより、例えば学習の過程で複数の局所最適解に到達する場合に、より優る方を採用する等の制御が可能となるので、より高性能の演算処理装置10-2を提供することができる。
【0073】
(第3実施形態)
次に第3実施形態について説明する。第3実施形態の説明では、第2実施形態と同様の説明については省略し、第2実施形態と異なる箇所について説明する。第3実施形態では、第2実施形態の情報処理装置100の機能を、複数の情報処理装置100で実現する場合について説明する。
【0074】
[機能構成の例]
図6は、第3実施形態の情報処理システム200の機能構成の例を示す図である。第3実施形態の情報処理システム200は、情報処理装置100-2及び情報処理装置100-3を備える。情報処理装置100-2は、例えばクラウドサーバ装置である。情報処理装置100-3は、例えばスマートデバイス及びパーソナルコンピュータ等の端末である。
【0075】
情報処理装置100-2及び情報処理装置100-3は、ネットワーク150を介して接続されている。ネットワーク150の通信方式は、有線方式であっても無線方式であってもよい。また、ネットワーク150は、有線方式と無線方式とを組み合わせることにより実現されていてもよい。
【0076】
なお、1台の情報処理装置100-2に対して、複数台の情報処理装置100-3がネットワーク150を介して接続されていてもよい。
【0077】
情報処理装置100-2は、演算処理装置10-3及び記憶装置20aを備える。演算処理装置10-3は、受付部1、算出部2、選択部3、学習部4及び記憶制御部5を備える。受付部1、算出部2及び選択部3の説明は、第2実施形態と同様なので省略する。
【0078】
学習部4は、情報処理装置100-3により実行された推論処理の入力値及び推論結果を、ネットワーク150を介して受け付ける。学習部4は、推論処理の入力値及び推論結果と、記憶装置20aに記憶された教師データとを用いて、ニューラルネットワーク又は人工知能の推論処理に用いられるパラメーターの学習を行う。
【0079】
記憶制御部5は、記憶装置20aに記憶された教師データの読み出しを行う。また、記憶制御部5は、学習部4により学習されたパラメーターを情報処理装置100-3の記憶装置20bに記憶する。
【0080】
情報処理装置100-3は、演算処理装置10-4及び記憶装置20bを備える。演算処理装置10-4は、推論部6を備える。推論部6は、記憶装置20bに記憶されたパラメーターを用いて、ニューラルネットワーク又は人工知能の推論処理を行う。
【0081】
情報処理装置100-2の学習部4による学習処理、及び、情報処理装置100-3の推論部6による推論処理の詳細は、第2実施形態の
図5のフローチャートと同様なので省略する。
【0082】
第3実施形態の情報処理システム200に於いては、第2実施形態と異なり、学習処理を行う演算処理装置10-3と、推論処理を行う演算処理装置10-4とは異なる演算処理装置である。それ故、特に多くの演算処理が必要となる学習処理に於いては、より高速処理の可能な演算処理を行うことの可能な演算処理装置10-3を用いることに依り処理に必要な時間の短縮を図ることができる。一方、推論処理に於いては、例えば端末に格納された推論処理を行う演算処理装置10-4を用いることに依り、より低消費電力で処理を行うことができる。
【0083】
なお、第2実施形態の情報処理装置100の様に、学習部4と推論部6とを同一の演算処理装置10-2を用いて行うのであれば、本実施形態の情報処理システム200と異なり全ての処理を単一の演算処理装置10-2で行うことが可能であるので、他の処理装置との間の通信ないし数値の移行が不要となるという他の利点が得られる。
【0084】
最後に、第2及び第3実施形態の情報処理装置100(100-2,100-3)のハードウェア構成の例について説明する。
【0085】
[ハードウェア構成の例]
図7は第2及び第3実施形態の情報処理装置100(100-2,100-3)のハードウェア構成の例を示す図である。
【0086】
情報処理装置100は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
【0087】
制御装置301は、補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。制御装置301は、上述の演算処理装置10(10-2,10-3,10-4)に対応する。
【0088】
主記憶装置302は、ROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置303は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及び、メモリカード等である。主記憶装置302及び補助記憶装置303は、上述の記憶装置20(20a,20b)に対応する。
【0089】
表示装置304は表示情報を表示する。表示装置304は、例えば液晶ディスプレイ等である。入力装置305は、コンピュータを操作するためのインタフェースである。入力装置305は、例えばキーボードやマウス等である。コンピュータがスマートフォン及びタブレット型端末等のスマートデバイスの場合、表示装置304及び入力装置305は、例えばタッチパネルである。通信装置306は、他の装置と通信するためのインタフェースである。
【0090】
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0091】
またコンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0092】
またコンピュータで実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0093】
コンピュータで実行されるプログラムは、上述の情報処理装置100(100-2,100-3)の機能構成(機能ブロック)のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置301が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置302上にロードされる。すなわち上記各機能ブロックは主記憶装置302上に生成される。
【0094】
なお上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。
【0095】
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
【0096】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0097】
1 受付部
2 算出部
3 選択部
4 学習部
5 記憶制御部
6 推論部
10 演算処理装置
20 記憶装置
100 情報処理装置
200 情報処理システム
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置
310 バス