(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024131185
(43)【公開日】2024-09-30
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 17/10 20060101AFI20240920BHJP
【FI】
G06F17/10 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023041292
(22)【出願日】2023-03-15
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】室岡 賢一
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056AA04
5B056BB51
5B056BB74
(57)【要約】
【課題】演算コストを削減できる情報処理装置を提供すること。
【解決手段】 情報処理装置は、複数のデータからなるデータ列が格納される記憶装置と、複数のデータの値を用いた演算処理により、データ列の特徴量を取得する特徴量取得装置とを含む。演算処理は、複数のデータの値のそれぞれに対して、べき指数が非整数のべき乗を行って、複数のデータに対応する第1の複数の値を算出するステップS12を含む。演算処理は、複数のデータの値のそれぞれに対して、四則演算を行って、複数のデータに対応する第2の複数の値を更に算出するステップS13を更に含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数のデータからなるデータ列が格納される記憶装置と、
前記複数のデータの値を用いた演算処理により、前記データ列の特徴量を取得する特徴量取得装置と、
を具備し、
前記演算処理は、
前記複数のデータの値のそれぞれに対して、べき指数が非整数のべき乗を行って、前記複数のデータに対応する第1の複数の値を算出し、
前記複数のデータの値のそれぞれに対して、四則演算を行って、前記複数のデータに対応する第2の複数の値を算出する、
情報処理装置。
【請求項2】
前記演算処理は、前記第1の複数の値及び前記第2の複数の値の中から同じデータを用いて算出した二つ値に対して四則演算を行って、前記複数のデータに対応する第3の複数の値を算出することを更に含む、
請求項1に記載の情報処理装置。
【請求項3】
前記演算処理は、前記第3の複数の値の積算値を算出することを更に含む、
請求項2に記載の情報処理装置。
【請求項4】
前記演算処理は、前記複数のデータの値の積算値を算出することを更に含む、
請求項3に記載の情報処理装置。
【請求項5】
前記演算処理は、
前記複数のデータの値のそれぞれに対して、べき指数が前記非整数に1を加算した値のべき乗を行って、前記複数のデータに対応する第4の複数の値を算出することを含む、
請求項1に記載の情報処理装置。
【請求項6】
前記演算処理は、
前記複数のデータの値を加算して第1の積算値を算出すること、
前記第1の複数の値を加算して第2の積算値を算出すること、
前記第4の複数の値を加算して第3の積算値を算出することを更に含む、
請求項5に記載の情報処理装置。
【請求項7】
前記演算処理は、
前記第1の積算値をAとし、
前記第2の積算値をBとし、
前記第3の積算値をCとした場合、
(B-C/A)/Aαの計算を行うことを更に含む、
請求項6に記載の情報処理装置。
【請求項8】
前記特徴量は、情報エントロピーである請求項1乃至7のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、情報処理装置に関する。
【背景技術】
【0002】
情報処理装置は、例えば、演算コストが高い対数の計算を行う場合がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2021/0326107号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態が解決しようとする課題は、演算コストを削減できる情報処理装置を提供することである。
【課題を解決するための手段】
【0005】
実施形態の情報処理装置は、複数のデータからなるデータ列が格納される記憶装置と、前記複数のデータの値を用いた演算処理により、前記データ列の特徴量を取得する特徴量取得装置とを具備する。前記演算処理は、前記複数のデータの値のそれぞれに対して、べき指数が非整数のべき乗を行って、前記複数のデータに対応する第1の複数の値を算出し、前記複数のデータの値のそれぞれに対して、四則演算を行って、前記複数のデータに対応する第2の複数の値を算出する。
【図面の簡単な説明】
【0006】
【
図1】第1の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図。
【
図2】第1の実施形態に係る情報処理装置により行われる情報処理を示すフローチャート。
【
図3】第2の実施形態に係る情報処理装置により行われる情報処理を示すフローチャート。
【
図4】y=-xlogxと、y=x
α(1-x)とを示すグラフ。
【
図5】第3の実施形態に係る情報処理装置により行われる情報処理を示すフローチャート。
【
図6】第4の実施形態に係る情報処理装置により行われる情報処理を示すフローチャート。
【発明を実施するための形態】
【0007】
以下、図面を参照しながら実施形態を説明する。
【0008】
(第1の実施形態)
図1は、第1の実施形態に係る情報処理装置1のハードウェア構成の一例を示すブロック図である。
【0009】
情報処理装置1は、入力装置10と、記憶装置20と、特徴量取得装置30と、出力装置40とを含んでいる。
【0010】
入力装置10は、データ列の入力に用いられる装置である。データ列は、複数の入力データからなる。各入力データは値(数値)を有する。入力装置10は、例えば、キーボード及びマウスを含む。
【0011】
記憶装置20は、入力データやプログラム等を読み出し可能に格納するものである。記憶装置20内には、入力データが読み出し可能に格納される。
【0012】
記憶装置20は、例えば、磁気記憶装置又は半導体記憶装置を含む。磁気記憶装置は、例えば、ハードディスク装置である。半導体記憶装置、例えば、不揮発性半導体装置である。不揮発性半導体装置は、例えば、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)である。SSDの代わりに、PRAM(Phase change Random Access Memory)装置、ReRAM(Resistive Random Access Memory)装置、又は、FeRAM(Ferroelectric Random Access Memory)装置を用いることも可能である。
【0013】
本実施形態では、特徴量取得装置30は、記憶装置20から取り込んだ(読み出した)入力データと、情報理論に基づく演算とを用いて、情報エントロピーを取得する装置である。特徴量取得装置30は、上記演算を行う演算器31を含んでいる。演算器31は、例えば、CPU(central processing unit)を含む。演算器31は、記憶装置20から取り込んだデータ列やプログラム(図示)を用いて、情報エントロピーを算出するための演算を行う。この算出に必要なプログラムは、例えば、記憶装置20内に読み出し可能に格納される。
【0014】
なお、特徴量取得装置30が記憶装置(不図示)を含む場合、当該記憶装置に算出に必要なプログラムを格納してもよい。更に、算出に必要なプログラムは、情報処理装置1に接続可能な外部記憶装置に読み出し可能に格納されてもよい。
【0015】
出力装置40は、特徴量取得装置30により取得された情報エントロピーを目視可能な形態で出力する装置である。出力装置40は、例えば、ディスプレイやプリンタを含む。
【0016】
なお、出力装置40は情報処理装置1の一部に含めなくても構わない。この場合、情報エントロピーを出力するときには、情報処理装置1に接続可能な出力装置を用意する。また、入力装置10は情報処理装置1の一部に含めなくても構わない。この場合、データを入力するときには、情報処理装置1に接続可能な入力装置を用意する。
【0017】
図2は、情報処理装置1により行われる情報処理を示すフローチャートである。
【0018】
ステップS1では、特徴量取得装置30は、記憶装置20から入力データを取り込む。
【0019】
ステップS2では、特徴量取得装置30は、記憶装置20から取り込んだ入力データのα乗を計算する。ここで、αは非整数である。非整数は、整数ではない数である。
【0020】
ステップS3では、特徴量取得装置30は、記憶装置20から取り込んだ入力データを1から減算した値を計算する。ステップS3は、ステップS2の前に行われてもよい。また、ステップS2及びステップS3は並列に行われてもよい。
【0021】
ステップS4では、特徴量取得装置30は、入力データのα乗と(1-入力データ)との積を計算する。
【0022】
ステップS5では、出力装置40は、ステップS4で計算した積を演算結果(情報エントロピー)として出力する。
【0023】
ここで、入力データをpとすると、出力装置40は、pα(1-p)を出力する。ただし、入力データpは0≦p≦1の範囲の値とする。αは0<α<1の定数で、望ましくは0.5程度の値、より望ましくは0.582(1/(e-1))程度の値である。eは、ネイピア数である。
【0024】
本実施形態によれば、対数で表現される-plogpに代えて、その近似式であるpα(1-p)を用いて、情報エントロピーを求めることにより、演算コストの高い対数を直接計算することなく、べき乗と多項式の演算のみで情報エントロピーの近似値を得ることが可能となる。-plogpは、情報理論において、確率分布{pi}のもつ情報エントロピーS=Σi(-pilogpi)を算出するときに用いる式である。
【0025】
(第2の実施形態)
本実施形態では、入力データを確率分布{pi}(Σipi=1)として、この確率分布のもつ情報エントロピーの近似値を演算する情報処理装置について説明する。
【0026】
図3は、本実施形態の情報処理装置により行われる情報処理を示すフローチャートである。本実施形態の情報処理装置のハードウェア構成は、第1の実施形態の情報処理装置のハードウェア構成(
図1)と同様である。
【0027】
ステップS10では、加算器35は格納されている入力データの配列順を示す指数iと格納されている入力データの値の積算値を0にする(初期化)。
【0028】
ステップS11では、特徴量取得装置30は、記憶装置20からi番目の入力データを取り込む。
図3では、i番目の入力データは、入力データiで表記している。
【0029】
ステップS12では、特徴量取得装置30は、記憶装置20からの入力データiのα乗を計算する。
【0030】
ステップS13では、特徴量取得装置30は、入力データiを1から減算した値を計算する。ステップS13は、テップS12の前に行われてもよい。また、ステップS12及びステップS13は並列に行われてもよい。
【0031】
ステップS14では、特徴量取得装置30は、入力データiのα乗と(1-入力データ)との積を計算する。ここでもαは0<α<1の定数で、望ましくは0.582(1/(e-1))程度の値である。
【0032】
ステップS15では、特徴量取得装置30は、ステップS14で計算した積の値を加算器に加算する。この加算器は、例えば、特徴量取得装置30に設けられたものである。この場合、加算器は、特徴量取得装置30の一部である。
【0033】
ステップS16では、特徴量取得装置30は、入力データiが最後のデータか否かを判断する。
【0034】
入力データiが最後のデータの場合は、ステップS15で加算器に加算した値の積算値を演算結果として出力する(ステップS17)。演算結果は、近似により求めた情報エントロピーである。一方、入力データiが最後のデータでない場合は、iを一つ大きくしてから、ステップS11に戻る。
【0035】
従来のデータ解析、例えば、いわゆるビッグデータ解析においては、確率分布{pi}の個々の各要素は0に近い非常に小さい値となっているため、(-pilogpi)の計算は0×∞の不定形となる。いわゆる桁落ちを回避して所望の精度で情報エントロピーの演算を行うためには、十分に大きな有効桁数の中間演算処理が必要となる。したがって、従来のデータ解析を用いた情報処理装置には、対数の演算コストに加えて、さらなる演算コストを甘受しなければならない課題がある。
【0036】
一方、本実施形態の情報処理装置は、情報エントロピーの演算において、-pilogpiに代えて、(pi)α(1-pi)を用いているため、対数の演算コストと0×∞の不定形を所望の精度で演算するコストの両方を削減でき、これにより情報処理装置の高効率化を実現することが可能となる。
【0037】
図4は、通常の情報理論で定義される情報エントロピーの式(y=-xlogx)と、本実施形態に係る情報処理装置の情報処理で使用される情報エントロピーの近似式(y=x
α(1-x))とを示すグラフである。
【0038】
図4から、通常の情報処理では、近似式は十分な精度で定義式の代わりに使用することが可能であり、特にx=0とx=1では0<α<1であれば、関数値と一次微分値の両方が定義式と一致することが保証されることが分かる。
【0039】
なお、
図4に示すとおり、二つの関数(式)が数学的に最も類似するのは、α=0.582(1/(e-1))の場合であり、二つの関数は共にx=1/eにおいて極大となる。前述のとおり、実際のビッグデータ解析等では、xの小さな領域が重要となるので、この領域における二つの関数の類似性を重要視する場合には、α=0.5程度の値を用いることが有効である。
【0040】
(第3の実施形態)
情報理論においては、確率分布{pi}は規格化されていること、すなわち、Σipi=1であることを前提として理論体系が構築されている場合が多い。しかし、現実の系に対して実際に計算を行う場合、確率分布に代わり、規格化されていない単純な頻度分布が用いられることがある。また、モデルの予測するデータ分布と観測されたデータ分布を比較しながら、モデルの最適化を行う場合にも、分布が規格化されていないことがある。
【0041】
本実施形態では、入力データが規格化されていない場合に対応できる情報処理装置について説明する。より詳細には、入力データ列{Pi}が規格化されていない場合に、規格化定数A=ΣiPiを計算し、この規格化定数Aを用いてpi=Pi/Aと置く前処理を行うことで、規格化された確率分布{pi}を得る、情報処理装置について説明する。
【0042】
図5は、情報処理装置により行われる情報処理を示すフローチャートである。本実施形態の情報処理装置のハードウェア構成は、第1の実施形態の情報処理装置のハードウェア構成(
図1)と同様である。
【0043】
ステップS20では、第2の実施形態と同様の初期化のステップS10が行われ、ステップS21では、第2の実施形態と同様の入力データiの取り込みのステップS11が行われる。
【0044】
ステップS22では、ステップS21で取り込んだ入力データiを加算器に加算する。この加算器は、例えば、特徴量取得装置30内に設けられたものである。
【0045】
ステップS23では、特徴量取得装置30は、入力データiが最後のデータか否かを判断する。
【0046】
入力データiが最後のデータの場合は、ステップS22で加算器に加算した値の積算値(規格化定数)Aとして出力する(ステップS24)。一方、入力データiが最後のデータでない場合は、iを一つ大きくしてから、ステップS21に戻る。
【0047】
ステップS24の後、ステップS25では、再び入力データの配列順を示す指数iを0に初期化する。
【0048】
ステップS26では、特徴量取得装置30は、入力データiを取り込む。
【0049】
ステップS27では、特徴量取得装置30は、入力データiの値を規格化定数Aで割った値を計算する。
【0050】
ステップS28では、特徴量取得装置30は、ステップS25で計算した値を記憶する。なお、この値は記憶装置20に記憶させてもよい。
【0051】
ステップS29では、特徴量取得装置30は、入力データiが最後のデータか否かを判断する。
【0052】
入力データiが最後のデータでない場合は、iを一つ大きくしてから、ステップS26に戻る。一方、入力データiが最後のデータの場合は、前処理(ステップS20~S29)は終了する。その後、
図3に示したステップS10~S17を行う。
【0053】
本実施形態によれば、元の入力データ列{Pi}が規格化されていない場合でも、ステップS20~29からなる前処理によって得られた確率分布{pi}を入力データとして用いることで、元の入力データ列{Pi}の情報エントロピーの近似値を算出することができる、情報処理装置を提供できる。
【0054】
(第4の実施形態)
図3に示した情報処理(ステップS10~S17)には一つのループ処理があり、
図5に示した情報処理(ステップS20~S29)には二つのループ処理がある。そのため、
図3に示した情報処理(ステップS10~S17)と
図5に示した情報処理(ステップS20~S29)とを組み合わせた情報処理には、三つのループ処理がある。データ数が多い場合、演算効率の観点から、ループ処理の回数は少ないほうが望ましい。
【0055】
そこで、本実施形態では、
図3に示した情報処理と
図5に示した情報処理とを組み合わせた情報処理を一つのループ処理で実施できる情報処理装置について説明する。
【0056】
図6は、情報処理装置により行われる情報処理を示すフローチャートである。本実施形態の情報処理装置のハードウェア構成は、第1の実施形態の情報処理装置のハードウェア構成(
図1)と同様である。
【0057】
前述のとおり、規格化されていない入力データ列{Pi}と、規格化された確率分布{pi}との間には、規格化定数A=ΣiPiを用いて、pi=Pi/Aの関係がある。これを情報エントロピーの近似式に代入すると、以下の式が得られる。
【0058】
【0059】
ここで、B=ΣiPi
α、C=ΣiPi
α+1とすると、情報エントロピーの近似式は、
【0060】
【0061】
で演算することができる。
図6に示すフローチャートでは、この式を利用している。
【0062】
ステップS30では、入力データの配列順を示す指数iと第1の加算器に加算された値の積算値Aと第2の加算器に加算された値の積算値Bと第3の加算器に加算された値の積算値Cを0にする(初期化)。これらの第1の加算器、第2の加算器及び第3の加算器は、例えば、特徴量取得装置30に設けられたものである。
【0063】
ステップS31では、特徴量取得装置30は入力データiを取り込む。
【0064】
ステップS32では、入力データiの値をそのまま第1の加算器に加算する。
【0065】
ステップS33では、入力データiのα乗を計算する。ステップS34では、その計算結果を第2の加算器に加算する。
【0066】
ステップS35では、入力データiの(α+1)乗を計算する。ステップS36では、その計算結果を第3の加算器器に加算する。
【0067】
ステップS37では、入力データiが最後のデータか否かを判断する。
【0068】
入力データiが最後のデータでない場合は、iを1大きくしてから、入力データiを取り込むステップS31に戻る。
【0069】
一方、入力データiが最後のデータの場合、特徴量取得装置30は、情報エントロピーとして、(B-C/A)/(Aα)を計算する(ステップS38)。ここでもαは0<α<1の定数で、望ましくは0.5程度の値、より望ましくは0.582(1/(e-1))程度の値である。
【0070】
ステップS38では、出力装置40は、ステップS38で計算した(B-C/A)/(Aα)の値を演算結果として出力する。
【0071】
これにより、規格化されていない単純な頻度分布を入力データとする場合や、モデルの最適化過程において分布が規格化されていない場合でも、対数の演算コストと0×∞の不定形を所望の精度で演算するコストの両方を削減でき、高効率化の情報処理装置を実現することが可能となる。
【0072】
また、本実施形態は、情報エントロピー以外の量を演算する場合にも応用することが可能である。一つの例として、二つの確率分布の差異を定量化する際に用いられるカルバック・ライブラー情報量(Kullback - Leibler divergence)を以下のように近似することが可能である。
【0073】
【0074】
これは、-xlogxの近似式であるxα(1-x)において、x=pi/qiとして得られる近似式であり、以下に示すとおり、元のカルバック・ライブラー情報量と同様に、非負であり、二つの確率分布が完全に等しい場合にのみ0になる。
【0075】
【0076】
最後の不等式は、二つの()内の値が必ず同符号になることから得ることができる。等号が成立するのは、全てのiにおいてpi=qiであること、すなわち二つの確率分布が等しい場合であることも明確である。なお、1行目から2行目への変形には、確率分布の性質であるΣipi=1、Σiqi=1を利用している。
【0077】
このように、対数を含む演算コストの高い処理を、べき乗と多項式で近似することで、情報処理装置の高効率化を実現することができる。
【0078】
以上、本発明の実施形態について説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形例は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0079】
1…情報処理装置、10…入力装置、20…記憶装置、30…特徴量取得装置、40…出力装置。