(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-06
(45)【発行日】2022-12-14
(54)【発明の名称】推論方法、推論装置及びプログラム
(51)【国際特許分類】
G06N 5/04 20060101AFI20221207BHJP
G06N 7/00 20060101ALI20221207BHJP
G06N 20/00 20190101ALI20221207BHJP
【FI】
G06N5/04
G06N7/00 150
G06N20/00 130
(21)【出願番号】P 2019192988
(22)【出願日】2019-10-23
【審査請求日】2022-02-14
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】西野 正彬
(72)【発明者】
【氏名】山本 章博
(72)【発明者】
【氏名】新藤 光
【審査官】多賀 実
(56)【参考文献】
【文献】特開2015-018394(JP,A)
【文献】William W. Cohen,"TensorLog: A Differentiable Deductive Database",arXiv.org [online],arXiv:1605.06523v2,米国,Cornell University,2016年,pp.1-10,[検索日 令和4年11月10日], インターネット:<URL:https://arxiv.org/pdf/1605.06523v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
規則と学習済みのパラメータが付与された事実の集合と述語記号の集合と構造を持った項の集合とが含まれる確率モデルに対する問い合わせが与えられると、前記項の間の類似度を用いて、前記規則に対応する因子グラフに従って前記問い合わせに対応するベクトルを更新することで、前記問い合わせに対する回答を推論する推論手順と、
前記推論手順で推論された回答を出力する出力手順と、
をコンピュータが実行することを特徴とする推論方法。
【請求項2】
前記確率モデルに対する訓練例が与えられると、前記項の間の類似度を用いて前記因子グラフに従って前記訓練例に対応するベクトルを更新し、該更新されたベクトルと前記訓練例との誤差に基づいて前記パラメータを学習するパラメータ推定手順、をコンピュータが実行することを特徴とする請求項1に記載の推論方法。
【請求項3】
前記構造を持った項は文字列である、ことを特徴とする請求項1又は2に記載の推論方法。
【請求項4】
第1の文字列と第2の文字列との間の前記類似度は、
前記第1の文字列の長さiの接頭辞と前記第2の文字列の長さjの接頭辞とを用いてi=0及びj=0から順に再帰的に計算される、微分可能な編集距離である、ことを特徴とする請求項3に記載の推論方法。
【請求項5】
規則と学習済みのパラメータが付与された事実の集合と述語記号の集合と構造を持った項の集合とが含まれる確率モデルに対する問い合わせが与えられると、前記項の間の類似度を用いて、前記規則に対応する因子グラフに従って前記問い合わせに対応するベクトルを更新することで、前記問い合わせに対する回答を推論する推論手段と、
前記推論手段により推論された回答を出力する出力手段と、
を有することを特徴とする推論装置。
【請求項6】
請求項1乃至4の何れか一項に記載の推論方法における各手順をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推論方法、推論装置及びプログラムに関する。
【背景技術】
【0002】
統計的な機械学習手法が従来から知られている。統計的な機械学習手法とは、与えられた訓練例を用いて確率モデルのパラメータを推定し、未知の課題に対する推論を行うための手法である。例えば、手書き文字の画像と正解となる文字の値とのペアを訓練例として与えて統計的な機械学習手法を用いることで、手書き文字の画像に書かれている文字を認識するシステムを構築することができる。
【0003】
統計的な機械学習手法の一種として、確率論理プログラムと呼ばれる手法が知られている。確率論理プログラムとは、一階述語論理によって記述された論理プログラムに実数のパラメータを付与することによって、論理式上の確率分布を表現する確率モデルを構成する手法である。確率論理プログラムでは、一般の訓練例から実数のパラメータを推定することで通常の確率モデルとして利用できる。また、この他にも、確率論理プログラムでは、論理式でルールを記述して確率モデルに加えることで、問題領域における背景知識を踏まえた推論を行い、推論の性能を高めることが可能である。
【0004】
確率論理プログラムの一種として、TensorLogと呼ばれる確率モデルが知られている(例えば、非特許文献1参照)。TensorLogは、入力が与えられた場合に、入力から推論結果を得るまでのプロセスを全て微分可能な計算式で表現できることを特徴としている。このため、TensorLogでは、訓練例からパラメータを推定する際に、目的関数の微分に基づく最急降下法が利用できるという特徴がある。また、微分可能な確率モデルはニューラルネットワークの一種であるため、TensorLogは、ニューラルネットワークの計算で利用されるハードウェアやツール等を用いて、効率的な実装が容易に実現できるという特徴もある。
【先行技術文献】
【非特許文献】
【0005】
【文献】William W. Cohen, "TensorLog: A Differentiable Deductive Database", Published in arXiv 2016 1605.06523
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、TensorLogでは一階述語論理の論理式にパラメータを付与することで確率モデルを表現するが、TensorLogで用いることが可能な論理式にはいくつかの制限がある。この制限の1つとして、TensorLogでは論理式に関数記号を用いることができないというものがある。論理式に関数記号を用いることができないと構造を持った対象を扱う推論(例えば、文字列の集合を扱うような推論)において、構造の情報を明示的に利用することができないため、表現できる関係性が限定されてしまう場合があった。
【0007】
本発明の実施の形態は、上記の点に鑑みてなされたもので、構造を持った対象に対する推論を可能にすることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の実施の形態における推論方法は、規則と学習済みのパラメータが付与された事実の集合と述語記号の集合と構造を持った項の集合とが含まれる確率モデルに対する問い合わせが与えられると、前記項の間の類似度を用いて、前記規則に対応する因子グラフに従って前記問い合わせに対応するベクトルを更新することで、前記問い合わせに対する回答を推論する推論手順と、前記推論手順で推論された回答を出力する出力手順と、をコンピュータが実行することを特徴とする。
【発明の効果】
【0009】
構造を持った対象に対する推論を可能にすることができる。
【図面の簡単な説明】
【0010】
【
図2】本発明の実施の形態における推論装置の機能構成の一例を示す図である。
【
図3】本発明の実施の形態における学習処理の一例を示すフローチャートである。
【
図4】本発明の実施の形態における推論処理の一例を示すフローチャートである。
【
図5】本発明の実施の形態における推論装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、TensorLogを拡張することで、構造を持った対象に対する推論が可能な推論装置10について説明する。このとき、本発明の実施の形態では、構造を持った対象の類似度を計算する尺度を微分可能な形式に拡張して、この尺度をTensorLogに組み込むことでTensorLogを拡張する。これにより、微分可能というTensorLogの特徴を保持したまま、構造を持った対象に対する推論を行うようにTensorLogを拡張することができる。したがって、例えば、構造を持った対象を扱う認識問題や自動判別問題においてその認識精度や判別精度を向上させることが可能となる。なお、構造を持った対象としては、例えば、文字列等が挙げられる。
【0012】
<TensorLogの説明>
まず、本発明の実施の形態における推論装置10を説明する前に、TensorLogについて説明する。TensorLogは、一階述語論理によって記述された規則の集合と、非負実数のパラメータが付与された事実の集合{f1,・・・,fn}とで構成される。事実は、述語記号p,q,・・・等と、定数a,b,c,・・・等とを用いて、例えば、p(a,b),q(c)等といった形で記述される。また、全ての定数で構成される集合Cは有限である。
【0013】
規則は、A←B1,・・・,Bnの形をしているホーン節として表現される。A,Biはそれぞれリテラルと呼ばれる。リテラルは述語記号に対して変数、定数又はその両方を適用したものとして定義される。例えば、Xを変数として、p(a,X)やq(b,c)等はリテラルである。また、Aを規則の頭部、B1,・・・,Bnを規則の本体と呼ぶ。
【0014】
以降では、TensorLogの具体例について説明する。規則として
uncle(X,Y)←parent(X,W),brother(W,Y)
を含み、事実として
parent(liam,eve),0.99
parent(dave,eve),0.99
parent(liam,bob),0.75
brother(eve,chip),0.9
を含むTensorLogの確率モデル(以降、確率モデルを単に「モデル」とも表す。)が与えられたものとする。このモデルでは、uncle,parent,brotherが述語記号であり、bob,chip,eve,liamが定数となる。また、事実に付与されている非負の実数(つまり、0.99,0.99,0.75,0.9)がパラメータを表している。なお、これらのパラメータは「重み」とも称される。
【0015】
なお、parent(X,W)はXの親がWであることを表す述語、brother(W,Y)はWとYが兄弟姉妹の関係にあることを表す述語、uncle(X,Y)はXの叔父がYであることを表す述語である。
【0016】
上記のモデルを用いることで、述語uncleに対する問い合わせ(クエリ)に回答することが可能となる。ここで、クエリに回答することは、例えば、uncle(dave,Y)という述語が与えられた場合に、Yに当てはまる確率が最も高い定数を選択する問題を解くことに相当する。この問題は、Yに定数を代入することで得られる述語の出現確率を計算することで解くことができる。TensorLogでは、このような確率の計算を以下の手順1~手順2により実行する。
【0017】
手順1:規則の集合に対応する因子グラフを作成する。因子グラフは確率的グラフィカルモデルの一種であり、或る確率を計算するための計算の手続きが因子グラフによって定まる。
【0018】
手順2:因子グラフに沿って行列計算を繰り返し実行して、問い合わせ(クエリ)に対応するベクトルの値を更新することで所望の確率の計算を行う。
【0019】
ここで、上記のTensorLogの具体例で示した規則に対応する因子グラフを
図1に示す。
図1に示す因子グラフでは、uncleの因子をparent及びbrotherとして、これらの因子と変数X、W及びYとの関係が表現されている。
【0020】
因子グラフが得られると、この因子グラフに沿った行列計算を繰り返して、問い合わせに対応するベクトルの値を更新することで所望の確率を計算することができる。例えば、
図4に示す因子グラフが得られた場合は、まず、行列計算に用いられる行列M
parentと行列M
brotherとを用意する。これらの行列は|C|行|C|列であり、そのi行j列の要素は、当該要素に対応する事実の重み(つまり、当該事実に付与されているパラメータ)と一致する。なお、|C|は集合Cの要素数(つまり、全ての定数の総数)である。
【0021】
例えば、上記のTensorLogの具体例では、行列Mparentは以下で表される。
【0022】
【数1】
また、行列M
brotherは以下で表される。
【0023】
【数2】
ここで、上記の行列M
parent及び行列M
brotherは1行目から4行目がそれぞれbob,chip,dave,eve,liamに対応し、1列目から4列がそれぞれbob,chip,dave,eve,liamに対応する。したがって、例えば、行列M
parentの4行3列目の要素「0.99」は事実parent(dave,eve)に付与されている重み(パラメータ)に対応する。同様に、例えば、行列M
parentの1行4列目の要素「0.75」はparent(liam,bob)に付与されている重みに対応する。同様に、例えば、行列M
parentの4行5列目の要素「0.99」は事実parent(liam,eve)に付与されている重みに対応する。行列M
brotherについても同様である。
【0024】
次に、問い合わせ(クエリ)に対応するベクトルを用意する。このベクトルは|C|次元であり、その各要素が各定数に対応する。上記のTensorLogの具体例では、一例として、述語uncle(dave,Y)のYに当てはまる確率が最も高い定数を選択する問い合わせが与えられたものとする。この場合、当該問い合わせに対応するベクトルvXは5次元のベクトルであり、1番目~5番目の要素がそれぞれbob,chip,dave,eve,liamに対応する。したがって、当該問い合わせに対応するベクトルvXは、X=daveであることを表すベクトルvX=(0,0,1,0,0)tとなる。なお、tは転置を表す。
【0025】
このベクトルvXと行列Mparent及び行列Mbrotherとを用いて、
vW=MparentvX
vY=MbrothervW
により行列計算を繰り返し実行してベクトルvXを更新し、ベクトルvYを得る。具体的には、vW=MparentvXにより行列計算を実行してベクトルvXをvWに更新した後、vY=MbrothervWにより行列計算を実行してベクトルvWをvYに更新する。これにより、uncle(dave,Y)のYに対して5つの定数bob,chip,dave,eve,liamをそれぞれ代入した場合におけるスコアがvY=(0,0.891,0,0,0)tとして計算できる。この結果よりY=chipとするのが最も確率の高い答えとなる(つまり、クエリに対する回答はY=chipである。)。
【0026】
ここで、TensorLogの事実に付与されている重み(パラメータ)は、訓練例から推定(学習)することもできる。例えば、上記のTensorLogの具体例の4つの事実にそれぞれ付与されている重みを未知のパラメータθ1,・・・,θ4として、これらのパラメータを要素とするパラメータベクトルをθ=(θ1,・・・,θ4)tとする。このとき、TensorLogでは、例えば、訓練例としてuncle(X,Y)が真となる変数X,Yへの代入の組み合わせ(つまり、変数X及びYのそれぞれに代入された場合に、uncle(X,Y)が真となる定数の組)が与えられると、その訓練例と推論結果との誤差を表現する目的関数が最小となるようにパラメータを更新することで学習を行うことができる。このような学習は、目的関数をパラメータベクトルθで微分した勾配ベクトルを求めて、この勾配ベクトルに沿ってパラメータベクトルθを更新する最急降下法によって実現することができる。なお、TensorLogでは上述したvYを計算する計算プロセス(つまり、手順2の行列計算)が微分可能であることから、目的関数もパラメータベクトルθで微分可能となる。
【0027】
<推論装置10の機能構成>
次に、本発明の実施の形態における推論装置10の機能構成について、
図2を参照しながら説明する。
図2は、本発明の実施の形態における推論装置10の機能構成の一例を示す図である。
【0028】
図2に示すように、本発明の実施の形態における推論装置10は、モデル入力部101と、訓練例入力部102と、パラメータ推定部103と、クエリ入力部104と、推論部105と、回答出力部106と、モデル記憶部107とを有する。
【0029】
モデル入力部101は、TensorLogのモデル(例えば、規則の集合、未知のパラメータが付与された事実の集合、述語記号の集合、項の集合等)を受け取って、モデル記憶部107に格納する。ここで、項は、(1)定数、変数、(2)fをn項の関数記号、t1,・・・,tnを項とした場合のf(t1,・・・,tn)と定義される。したがって、項には、文字が並んだ系列(文字列)が含まれる。本発明の実施の形態では、項の集合Cには、文字列(例えば、"cat", "dog"等)が含まれるものとする。なお、文字列は構造を持った対象の一例である。以降では、項の集合Cに含まれる文字列をs1,s2,・・・等と表す。
【0030】
なお、モデル入力部101は、例えば、推論装置10と通信ネットワークを介して接続される他の装置からモデルを受け取ってもよいし、外部記録媒体等を介してモデルを受け取ってもよいし、推論装置10を操作するユーザにより入力されたモデルを受け取ってもよい。
【0031】
訓練例入力部102は、1以上の訓練例を受け取る。なお、訓練例入力部102は、例えば、推論装置10と通信ネットワークを介して接続される他の装置から訓練例を受け取ってもよいし、外部記録媒体等を介して訓練例を受け取ってもよいし、推論装置10を操作するユーザにより入力された訓練例を受け取ってもよい。
【0032】
パラメータ推定部103は、訓練例入力部102が受け取った訓練例と、モデル記憶部107に記憶されているモデル(つまり、事実に付与されているパラメータが必ずしも学習済みでないモデル)とを用いて、パラメータを推定(学習)する。パラメータ推定部103により学習されたパラメータは、モデル記憶部107に格納される。
【0033】
クエリ入力部104は、学習済みのモデル(つまり、事実に付与されているパラメータが学習済みであるモデル)に対する問い合わせ(クエリ)を受け取る。なお、クエリ入力部104は、推論装置10と通信ネットワークを介して接続される他の装置から問い合わせを受け取ってもよいし、推論装置10を操作するユーザにより入力された問い合わせを受け取ってもよい。
【0034】
推論部105は、クエリ入力部104が受け取った問い合わせ(クエリ)に対する回答を推論する。
【0035】
回答出力部106は、推論部105による推論結果を回答として出力する。なお、回答出力部106は、推論装置10と通信ネットワークを介して接続される他の装置に対して回答を出力してもよいし、推論装置10が備えるディスプレイ等に回答を出力してもよい。
【0036】
<学習処理の流れ>
以降では、本発明の実施の形態における学習処理の流れについて、
図3を参照しながら説明する。
図3は、本発明の実施の形態における学習処理の一例を示すフローチャートである。
【0037】
まず、訓練例入力部102は、1以上の訓練例を受け取る(ステップS101)。次に、パラメータ推定部103は、上記のステップS101で受け取った訓練例と、モデル記憶部107に記憶されているモデルとを用いて、このモデルのパラメータ(つまり、事実に付与されているパラメータ)を推定する(ステップS102)。なお、このステップS102のパラメータ推定処理の詳細については後述する。
【0038】
最後に、パラメータ推定部103は、上記のステップS102で推定(学習)されたパラメータをモデル記憶部107に格納する(ステップS103)。これにより、学習済みのパラメータがモデル記憶部107に記憶される。
【0039】
<推論処理の流れ>
以降では、本発明の実施の形態における推論処理の流れについて、
図4を参照しながら説明する。
図4は、本発明の実施の形態における推論処理の一例を示すフローチャートである。なお、
図4では、モデル記憶部107に記憶されているモデルのパラメータは学習済みであるものとする。
【0040】
まず、クエリ入力部104は、学習済みのモデルに対する問い合わせ(クエリ)を受け取る(ステップS201)。次に、推論部105は、上記のステップS201で受け取ったクエリに対して確率が最も高い項を推論することで、当該クエリに対する回答を推論する(ステップS202)。なお、このステップS202の確率推論処理の詳細については後述する。
【0041】
最後に、回答出力部106は、上記のステップS202での推論結果を回答として出力する(ステップS203)。これにより、問い合わせ(クエリ)に対する回答が得られる。
【0042】
<ステップS202の確率推論処理の詳細>
ここで、
図4のステップS202で確率を推論する処理の詳細について説明する。上記の手順1~手順2で説明したように、TensorLogでは、因子グラフを作成した上で、この因子グラフに沿って行列計算を繰り返し実行して、問い合わせ(クエリ)に対応するベクトルの値を更新することで所望の確率の計算を行う。本発明の実施の形態では、このベクトルの値の更新方法が既存のTensorLogと異なる。具体的には、本発明の実施の形態では、TensorLogにて述語pに対応する|C|×|C|の行列M
pとの乗算によりベクトルの値を更新している箇所を以下の式(1)に置き換える。
【0043】
【数3】
ここで、v
jは更新前のベクトルのj番目の要素、u
iは更新後のベクトルのi番目の要素を表す。また、Dist
p(s
i,s
j;θ)は、モデルのパラメータθが与えられた場合における文字列s
iとs
jとの類似度を表すスコアである。
【0044】
推論部105は、各i=1,・・・,|C|に対して、上記の式(1)を計算することによりベクトルv=(v1,・・・,v|C|)tをベクトルu=(u1,・・・,u|C|)tに更新する。問い合わせ(クエリ)に対するベクトルに対して、因子グラフに沿って当該更新を繰り返し実行することで、各項の確率を要素とするベクトルが得られる。これにより、推論部105は、得られたベクトルで確率が最も高い項を、当該クエリに対する回答として推論することができる。
【0045】
ここで、長さnの文字列xと長さmの文字列yとが与えられたときに、ri,jをxの長さiの接頭辞とyの長さjの接頭辞との間のDistpの値とする。すなわち、xの長さiの接頭辞をxi、yの長さjの接頭辞をyjとすれば、ri,j=Distp(xi,yj;θ)である。なお、このi及びjはそれぞれ文字列x及びyの接頭辞の長さを表す0以上の整数であり、上記の式(1)で文字列のインデックスを表すi及びjとは無関係である。
【0046】
上記のrijは以下の式(2)により再帰的に計算することができる。
【0047】
【数4】
ここで、min
γ{a
1,・・・,a
n}は、
【0048】
【0049】
rijは再帰的な関係を用いた動的計画法で、r00からrijまで順番に計算することで入力の文字列の長さの積に比例する時間で計算することが可能である。上記の式(2)に示す計算式は、文字列の編集距離を以下の参考文献に記載されている方法に基づいて微分可能な形に置き換えたものである。
【0050】
[参考文献]
Marco Cuturi, Mathieu Blondel, "Soft-DTW: a Differentiable Loss Function for Time-Series", in Proceedings of ICML, 2017
また、γはパラメータであり、γ>0であるものとする。γ>0のときは、rijは微分可能な編集距離と一致する。なお、γ=0のときは、rijは通常の編集距離である。
【0051】
更に、
【0052】
【数6】
はそれぞれ述語pにおける文字列の操作に対する編集操作のコストを表しており、それぞれ、x
iをy
jに置き換えるコスト、x
iを削除するコスト、y
jを挿入するコストを表している。これらのコストが、予め学習されたモデルのパラメータである。なお、x
iは文字列xの長さiの接頭辞、y
jは文字列yの長さjの接頭辞である。
【0053】
TensorLogにて述語pに対応する|C|×|C|の行列Mpとの乗算によりベクトルの値を更新している箇所を上記の式(1)に置き換えることで、本発明の実施の形態でも、通常のTensorLogと同様に、各項の確率(スコア)を要素とするベクトルが得られる。これにより、当該ベクトルで確率(スコア)が最も高い項を、当該クエリに対する回答として推論することができる。
【0054】
<ステップS102のパラメータ推定処理の詳細>
次に、
図3のステップS102でパラメータを推定(学習)する処理の詳細について説明する。パラメータ推定処理では、通常のTensorLogと同様に、モデルのパラメータで目的関数を微分して勾配を求めた上で、この勾配に基づいてパラメータを更新する。具体的には、本発明の実施の形態では、TensorLogにて述語pに対応する|C|×|C|の行列M
pとの乗算によりベクトルの値を更新している箇所を上記の式(1)に置き換える。上記の式(1)はγ>0であれば微分可能であるため、モデルのパラメータ
【0055】
【数7】
に関する目的関数の勾配を求めることができる。このため、パラメータ推定部103は、通常の最急降下法と同様に、目的関数の勾配に基づいて上記のモデルのパラメータを更新することで、パラメータを推定(学習)することができる。
【0056】
<推論装置10のハードウェア構成>
最後に、本発明の実施の形態における推論装置10のハードウェア構成について、
図5を参照しながら説明する。
図5は、本発明の実施の形態における推論装置10のハードウェア構成の一例を示す図である。
【0057】
図5に示すように、本発明の実施の形態における推論装置10は、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、プロセッサ205と、メモリ装置206とを有する。これら各ハードウェアは、それぞれがバス207を介して通信可能に接続されている。
【0058】
入力装置201は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置202は、例えばディスプレイ等であり、推論装置10の処理結果等を表示する。なお、推論装置10は、入力装置201及び表示装置202の少なくとも一方を有していなくてもよい。
【0059】
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。推論装置10は、外部I/F203を介して、記録媒体203aの読み取りや書き込み等を行うことができる。記録媒体203aには、例えば、推論装置10が有する各機能部(例えば、モデル入力部101、訓練例入力部102、パラメータ推定部103、クエリ入力部104、推論部105及び回答出力部106等)を実現する1以上のプログラム等が記録されていてもよい。
【0060】
記録媒体203aには、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
【0061】
通信I/F204は、推論装置10を通信ネットワークに接続するためのインタフェースである。推論装置10が有する各機能部を実現する1以上のプログラムは、通信I/F204を介して、所定のサーバ装置等から取得(ダウンロード)されてもよい。
【0062】
プロセッサ205は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等であり、メモリ装置206等からプログラムやデータを読み出して処理を実行する演算装置である。推論装置10が有する各機能部は、メモリ装置206等に格納されている1以上のプログラムがプロセッサ205に実行させる処理により実現される。
【0063】
メモリ装置206は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等であり、プログラムやデータが格納される記憶装置である。推論装置10が有するモデル記憶部107は、メモリ装置206等により実現される。
【0064】
本発明の実施の形態における推論装置10は、
図5に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、
図5に示すハードウェア構成は一例であって、推論装置10は、他のハードウェア構成を有していてもよい。例えば、推論装置10は、複数のプロセッサ205を有していてもよいし、複数のメモリ装置206を有していてもよい。
【0065】
本発明は、具体的に開示された上記の実施の形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更等が可能である。
【符号の説明】
【0066】
10 推論装置
101 モデル入力部
102 訓練例入力部
103 パラメータ推定部
104 クエリ入力部
105 推論部
106 回答出力部
107 モデル記憶部