JP2016042322A - データ分析装置、分析方法とそのプログラム - Google Patents
データ分析装置、分析方法とそのプログラム Download PDFInfo
- Publication number
- JP2016042322A JP2016042322A JP2014166347A JP2014166347A JP2016042322A JP 2016042322 A JP2016042322 A JP 2016042322A JP 2014166347 A JP2014166347 A JP 2014166347A JP 2014166347 A JP2014166347 A JP 2014166347A JP 2016042322 A JP2016042322 A JP 2016042322A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- sub
- data storage
- loss function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】ハイパーパラメタセット毎に損失関数を計算する際に、各データセットのメモリへの書き込み時間の影響を低減する。【解決手段】データ分析装置1は、取得した訓練データと検証データを含むデータセットを格納するサブデータ格納部21を有する記憶部20と、取得したハイパーパラメタセットとサブデータ格納部21に格納されたデータセットを用いて損失関数を計算する制御部10と、を備える。制御部10は、損失関数の計算と並行して、次のデータセットをサブデータ格納部21にプリフェッチする。【選択図】図1
Description
本発明は、データ分析装置、分析方法とそのプログラムに関し、特に、機械学習におけるハイパーパラメタ最適化に関する。
ハイパーパラメタ最適化(モデル最適)は、機械学習では欠かせない技術である。ハイパーパラメタ最適化とは、モデルの学習に必要となるハイパーパラメタセットを調整することである。通常、機械学習では、機械学習アルゴリズムに複数のハイパーパラメタセットを与え、異なるハイパーパラメタセットによって性能の異なるモデルが構築される。
最良の性能を示すモデルを学習するためのハイパーパラメタセットは自明ではない。そのため、学習装置は、各ハイパーパラメタセットに対して訓練データでモデルを学習し、検証データをモデルに適用するモデル検証手法によってモデルの性能を計測する。そして、学習装置は、その測定結果に基づき、最も性能のいいモデルを学習できるハイパーパラメタを決定する。非特許文献1に基づき、ハイパーパラメタ最適化を表す式を式(1)に示す。
λは、ハイパーパラメタセットを表す変数、
Aλは、λを与えられたときの機械学習アルゴリズム、
Λは、学習アルゴリズムに与える複数のハイパーパラメタセットを要素とする集合、
Xtrainは訓練データ(行列)、Xvalidは検証データ(行列)である。
Lは、損失関数と呼ばれ、λとXtrainで学習されたモデルのXvalidに対する性能を数値で返す関数である。損失関数は機械学習アルゴリズムやその応用分野に応じて様々に定義される。式(1)において、損失関数Lは、小さな値であるほどモデルの性能が良いことを表す。すなわち、式(1)は、損失関数Lの平均値が最も小さくなるようなλを、最適なハイパーパラメタλ(*)として返す最適化問題を論理的に表している。
Aλは、λを与えられたときの機械学習アルゴリズム、
Λは、学習アルゴリズムに与える複数のハイパーパラメタセットを要素とする集合、
Xtrainは訓練データ(行列)、Xvalidは検証データ(行列)である。
Lは、損失関数と呼ばれ、λとXtrainで学習されたモデルのXvalidに対する性能を数値で返す関数である。損失関数は機械学習アルゴリズムやその応用分野に応じて様々に定義される。式(1)において、損失関数Lは、小さな値であるほどモデルの性能が良いことを表す。すなわち、式(1)は、損失関数Lの平均値が最も小さくなるようなλを、最適なハイパーパラメタλ(*)として返す最適化問題を論理的に表している。
実用上、損失関数Lの平均値の求め方はいくつかある。それらの方法に基づいて式(1)を具体的な方法論に落とし込んだモデル検証手法がいくつか存在する。主要なものに、k−fold交差検定がある。k−fold交差検定は、元となる行列データXに含まれる全サンプル(行)をk等分して分割データX1,…,Xkを作り、分割データXiを検証データXvalidに、残りのk−1個の分割データをマージしたものを訓練データXtrainとする。そして、各iについて損失関数Lを1回ずつ実行してk個の損失関数Lの平均値を求める方法である。その他のモデル検証手法として、ホールドアウト検証法、leave−one−out交差検定等も多くの分析者に利用されている。
このようなハイパーパラメタ最適化では、λの次元数(集合要素数)が大きいとき、ユーザの与える集合Λの濃度が次元の呪い的に大きくなることが知られている。したがって、全λ∈Λに関して、mean L(Xvalid,Aλ(Xtrain))を計算し、最適化の処理を終えるのに時間が掛かる。
Bergstra, James and Bengio, Yoshua, "Random Search for Hyper-parameter Optimization," The Journal of Machine Learning Research, Volume 13 Issue 1, January 2012, pp. 281-305
一方で、ユーザにより、全λ∈Λに関する損失関数Lの平均値(mean L(Xvalid,Aλ(Xtrain)))の計算を待たず、λ∈Λ毎に計算された損失関数Lの平均値を見たいという要求もある。それは、真に最適なハイパーパラメタセットλ(*)は自明ではなく、機械学習アルゴリズムに与えたΛの中に存在しているとは限らないからである。このため、ユーザは、λ∈Λ毎に計算結果を見て、見込みの無い残りのハイパーパラメタセットλの計算を中止し、新たなハイパーパラメタセットλを加えて最適化を再実行する(図14)。
しかし、最適化の結果(λ(*))を速く出力することと、λ∈Λ毎に損失関数Lの平均値(mean L(Xvalid,Aλ(Xtrain)))の計算を終わらせ、λ∈Λ毎に損失関数Lの平均値を出力することとは、両立が難しい。例えば、損失関数Lの平均値を計算するために訓練データと検証データのペア(以下、データセットと示す)<Xi train,Xi valid>がk個存在したとする。λ∈Λの損失関数Lの平均値は、k個全てのデータセット<Xi train,Xi valid>についてL(Xi valid,Aλ(Xi train))を計算する必要がある。ところが、使用するマシンのメモリサイズが小さいとき、k個のデータセット<Xi train,Xi valid>がメモリに乗り切らない場合がある。
このとき、あるiに対する損失関数L(Xi valid,Aλ(Xi train))の計算の後、次のj(j≠i)の損失関数L(Xj valid,Aλ(Xj train))を計算するためにデータセット<Xj train,Xj valid>をメモリに書き込む必要がある。このような状況で最適化の結果(λ(*))を速く出力させる手順としては、メモリの容量限度までデータセット<Xi train,Xi valid>を書き込み、書き込んだデータセットに対するλ∈Λについて損失関数L(Xi valid,Aλ(Xi train))を計算する。そして、計算が終わったらメモリに再び容量制限まで別のデータセットを書き込むという動作を繰り返すことが考えられる。しかし、この手順では、ユーザの試行錯誤のために、λ∈Λ毎にmeani L(Xi valid,Aλ(Xi train))の計算を終わらせ、次々に平均値を出力するようなことはできない。
一方で、λ∈Λ毎に損失関数Lの平均値(meani L(Xi valid,Aλ(Xi train)))の計算を終わらせようとすると、そのλ毎に、データセット<Xi train,Xi valid>のメモリへの書き込みが発生する。λの次元数が大きくなるほど、ハイパーパラメタセットを要素とする集合Λのサイズは次元の呪い的な大きさになるため、メモリへの書き込み時間は、最適化が完了するまでの計算時間に無視できない影響を与える。
上記のように、計算に必要なデータセットをメモリに書ききれない場合、各ハイパーパラメタセットλ∈Λの損失関数Lの平均値であるmeani L(Xi valid,Aλ(Xi train))を次々に出力するためには、λ毎に各データセットを1度ずつメモリに書き込んで損失関数Lの平均値を計算することになる。このためデータセットのメモリへの書き込み時間の影響を低減するための技術が必要となる。
[発明の目的]
本発明の目的は、ハイパーパラメタセット毎に損失関数を計算する際に、各データセットのメモリへの書き込み時間の影響を低減することが可能なデータ分析装置、データ分析方法とそのプログラムを提供することにある。
本発明の目的は、ハイパーパラメタセット毎に損失関数を計算する際に、各データセットのメモリへの書き込み時間の影響を低減することが可能なデータ分析装置、データ分析方法とそのプログラムを提供することにある。
本発明のデータ分析装置は、訓練データと検証データを含むデータセットを格納するサブデータ格納部を有する記憶部と、ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算する制御部と、を備え、前記制御部は、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチする。
本発明のデータ分析方法は、訓練データと検証データを含むデータセットをサブデータ格納部に格納し、ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチする。
本発明のデータ分析プログラムは、コンピュータに、訓練データと検証データを含むデータセットをサブデータ格納部に格納し、ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチすることを実行させる。
本発明は、ハイパーパラメタセット毎に損失関数を計算する際に、各データセットのメモリへの書き込み時間の影響を低減することができる。
本発明の各実施形態に係るデータ分析装置について、図面を用いて説明する。なお、以下に挙げる各実施形態はそれぞれ例示であり、本発明は、以下で説明する各実施形態の構成に限定されるものではない。
本発明の第1の実施形態に係るデータ分析装置は、ハイパーパラメタの最適化処理において、ハイパーパラメタセットλi∈Λ毎に損失関数を計算する際に発生する、記憶部(例えば、メモリ)へのλi毎のデータセットの書き込み時間の増大を抑制する。ここで損失関数は、L(Xi valid,Aλ(Xi train))であり、データセットは<Xi train,Xi valid>とする。なお、以下の各実施形態における説明では、特に説明が無い場合は、当該データセットは、一度に記憶部に書き込みきれない大きさであることを前提とする。
また、各実施形態の説明は、関連技術である式(1)および関連する用語を援用して、以下に説明する。なお、式(1)の説明と重複する内容については詳細な説明は省略する。
図1は、第1の実施形態に係るデータ分析装置の構成を示すブロック図である。図1に示すように、第1の実施形態のデータ分析装置1は、制御部10および記憶部20を有する。
データ分析装置1の記憶部20は、訓練データXtrainと検証データXvalidを含むデータセットを格納するサブデータ格納部21を有する。
データ分析装置1の制御部10は、ハイパーパラメタセットλとサブデータ格納部21に格納されたデータセットを用いて損失関数を計算する機能を有する。制御部10により計算される損失関数は、上記の式(1)のL(Xvalid,Aλ(Xtrain)と同様であり、ハイパーパラメタセットλと訓練データXtrainで学習されたモデルの検証データXvalidに対する性能を数値で返す関数である。さらに、制御部10は、損失関数の計算と並行して、次のデータセットをサブデータ格納部にプリフェッチする機能を有する。
図2は、第1の実施形態に係るデータ分析装置1の動作を示すフローチャートである。
図2に示すように、データ分析装置1の制御部10は、訓練データと検証データを含むデータセットを取得し(S11)、ハイパーパラメタセットλiを取得して(S12)、それぞれ記憶部20に保存する。次に制御部10は、ハイパーパラメタセットλiとデータセットを用いて損失関数を計算する(S13)。
図3は、ハイパーパラメタセットの損失関数の計算の動作を示すフローチャートである。
制御部10は、ハイパーパラメタセットとサブデータ格納部21に格納されたデータセットを用いて損失関数を計算し(S131)、当該計算と並行して、次のデータセットをサブデータ格納部21に書き込み(S132)、データセットをプリフェッチする。
次に、制御部10は、未使用のデータセットが存在するか(S133)を判断し、未使用のデータセットが存在する場合(S133のYes)、未使用のデータセットをサブデータ格納部21に書き込む(S132)。未使用のデータセットが存在しない場合(S133のNo)、ハイパーパラメタセットの損失関数の計算を終了し、次のステップへ進む。
制御部10は、損失関数の計算結果を用いて、ハイパーパラメタセットλの損失関数の平均値を計算し(S14)、必要に応じて計算した損失関数の平均値を出力する(S16)。損失関数の平均値を出力しない場合(S15のNo)、制御部10は、取得したハイパーパラメタセットλiについて損失関数を計算したか判断する(S17)。計算していないハイパーパラメタセットλiがあれば(S17のNo)、制御部10は、当該ハイパーパラメタセットの損失関数を計算する(S13)。取得したハイパーパラメタセットλiを全て計算したら(S17のYes)損失関数の計算のサブルーチンを終了する。
図4は、第1の実施形態に係るデータ分析装置1によるハイパーパラメタの最適化の概要を説明する図である。図4中では、説明を簡単にするために、ハイパーパラメタλのセット数をλ1〜λ5、データセットをdataset1〜dataset8として説明する。
データ分析装置1の制御部10は、ハイパーパラメタλ1とデータセット(dataset)を用いる損失関数の計算のために、サブデータ格納部21に格納されたデータセット(dataset4)をサブデータ格納部21から読み出す。
データ分析装置1の制御部10は、データセット(dataset4)を用いた損失関数の計算と並行して、次のデータセット(dataset5)を事前にサブデータ格納部21に書き込む処理(プリフェッチ処理)を実行する。制御部10は、データセット(dataset4)の損失関数の計算を終了後、サブデータ格納部21からデータセット(dataset5)を読み込み、損失関数の計算を開始する。このとき、制御部10は、サブデータ格納部21からデータセット(dataset4)を削除し、次のデータセット(dataset6)を書き込む処理(プリフェッチ処理)を実行する。
このように、ハイパーパラメタλとデータセットによる損失関数の計算と並行して、次の損失関数の計算に必要なデータセットをサブデータ格納部21に事前に書き込むことで、サブデータ格納部21へのデータセットの書き込み時間を隠ぺいすることができる。これにより、データ分析装置1は、ハイパーパラメタ毎に損失関数を計算する際に、各データセットのサブデータ格納部21への書き込み時間の影響を低減することができる。
図4に示す例では、データセット(dataset8)までハイパーパラメタλ1に対する損失関数の計算を終えた後、制御部10は、ハイパーパラメタλ1に対する損失関数の平均値を計算する。また、ハイパーパラメタセットλ2〜λ5もλ1と同様に、制御部10は、損失関数の計算と並行してデータセットをサブデータ格納部21にプリフェッチすることでデータセットの書き込み時間を隠ぺいしつつ、ハイパーパラメタセットλ2〜λ5の損失関数の平均値を順次得ることができる。結果、ハイパーパラメタの最適化の処理時間が増大することなく、各ハイパーパラメタセットに対する損失関数の平均値をユーザに出力することができる。
次に、第1実施形態に係るデータ分析装置1の制御部10および記憶部20の詳細について図面を用いて説明する。
図5は、データ分析装置1の制御部10および記憶部20の構成を示すブロック図である。データ分析装置1の制御部10は、データ処理部11、データプリフェッチ部12、処理制御部13を有する。データ分析装置1の記憶部20は、サブデータ格納部21およびデータ格納部22を有する。サブデータ格納部21は、第1サブデータ格納部23Aおよび第2サブデータ格納部23Bで構成される。各コンポーネントはネットワークやバス等で、通信可能に接続されているものとする。
制御部10のデータ処理部11は、サブデータ格納部21(第1サブデータ格納部23A又は第2サブデータ格納部23B)からデータセットを読み出し、各ハイパーパラメタセットλ∈Λjの損失関数を計算する機能を有する。また、制御部10の処理制御部13からの命令により、計算した損失関数Lの値および対応するλiの情報から損失関数Lの平均値を計算する機能を有する。
制御部10のデータプリフェッチ部12は、制御部10のデータ処理部11が損失関数の計算に使用するデータセットを、指定された第1サブデータ格納部23A又は第2サブデータ格納部23Bに書き込む機能を有する。例えば、処理制御部13が、記憶部20のデータ格納部22に保存された元データに基づいてから所定のデータセットを生成し、データフェッチ部12がそのデータセットを第1及サブデータ格納部23A又は第2サブデータ格納部23Bに格納する機能を有する。
記憶部20のサブデータ格納部21は、元データに基づいて生成されデータ格納部22に保存されたデータセットを、第1サブデータ格納部23A又は第2サブデータ格納部23Bに一時的に保存する領域を有する。
記憶部20のデータ格納部22は、装置外部から入力したデータや装置内部で生成したデータを保存する機能を備える。例えば、データ格納部22は、ハイパーパラメタセット、データセットを生成する元データおよび処理制御部13が元データからモデル検証手法の情報に基づいて生成したデータセット等を保存する。
データ分析装置の処理制御部13は初期化と実行制御の2つの機能を備える。
処理制御部13は、初期化機能として、まず、データ分析装置1の外部から実行命令を取得する。当該実行命令には、学習アルゴリズムに与える複数のハイパーパラメタセットを全要素とする集合Λ、データセットを生成する元データ、実行する損失関数Lの指定、実行する機械学習アルゴリズムAの指定、実行するモデル検証手法の指定等が含まれる。取得した元データは、データ格納部22に保存される。
さらに、処理制御部13は、当該実行命令に基づき、取得した当該元データから、当該実行するモデル検証手法の指定に従い適切なデータセットの集合を生成する。このとき、データセットの実体を生成してデータ格納部22に保存してもいいし、後で何度でも同一のデータセットが再現できるようにデータセット生成手順だけを決定してもいい。
処理制御部13は、実行制御機能として、データプリフェッチ部12およびデータ処理部11にそれぞれ処理命令を送る。データプリフェッチ部12への処理命令には、サブデータ格納部21に書き込む1つ以上のデータセットの指定が含まれる。データ処理部11への処理命令には、データ処理部11が参照すべきデータセットが格納されたサブデータ格納部21が、第1サブデータ格納部23A又は第2サブデータ格納部23Bのどちらであるかの指定が含まれる。更に、データ処理部11への処理命令には、処理するハイパーパラメタセットのサブセットΛjの指定、および損失関数Lを計算するアプリケーションの指定が含まれる。処理制御部13は、全てのデータセットに対する損失関数Lの計算処理が終わったら、データ処理部11に各λ∈Λjの損失関数Lの平均値を求める命令を送る。
データプリフェッチ部12は、処理制御部13から処理命令を取得すると、当該処理命令に記述されている1つ以上のデータセットを、指定されたサブデータ格納部21(第1
サブデータ格納部23A又は第2サブデータ格納部23B)に書き込む。データセットがデータ格納部22にある場合は、当該処理命令にはデータ格納部22にあるデータセットを読み出すような指定が含まれる。また、データセットがデータ格納部22に無い場合は、当該処理命令に当該データセットを生成する手順が含まれ、データプリフェッチ部12は、当該データセットを生成する手順に従って、データ格納部22にある元データから所定のデータセットを生成しサブデータ格納部21内部に格納する。
サブデータ格納部23A又は第2サブデータ格納部23B)に書き込む。データセットがデータ格納部22にある場合は、当該処理命令にはデータ格納部22にあるデータセットを読み出すような指定が含まれる。また、データセットがデータ格納部22に無い場合は、当該処理命令に当該データセットを生成する手順が含まれ、データプリフェッチ部12は、当該データセットを生成する手順に従って、データ格納部22にある元データから所定のデータセットを生成しサブデータ格納部21内部に格納する。
データ処理部11は、処理制御部13から処理命令を取得すると、当該処理命令が指定する第1サブデータ格納部23A又は第2サブデータ格納部23Bからデータセットを参照し、当該処理命令に含まれるパラメタセットのサブセットΛjの各ハイパーパラメタセットλ∈Λjの損失関数Lを計算する。計算した損失関数Lの値と対応するλの情報はデータ格納部22に保持しておく。また、データ処理部11は、処理制御部13から損失関数Lの平均値を求める命令を取得すると、データ格納部22に保持していた損失関数Lの値と対応するλの情報から損失関数Lの平均値を計算し、出力する。損失関数Lを計算するときにデータ処理部11が参照するサブデータ格納部21は、データプリフェッチ部12がプリフェッチで書き込むサブデータ格納部21と異なる。
次に、本実施の形態に係るデータ分析装置1の動作を、初期化の動作とハイパーパラメタ最適化の動作の2つに分けて説明する。図6は、データ分析装置1による初期化の動作を示すフローチャートである。
<初期化の動作>
まず、初めに、処理制御部13は、実行命令として、ハイパーパラメタセットの集合Λ、データセットを生成する元データ、実行する損失関数L、機械学習アルゴリズムA、モデル検証手法の情報を取得する(S21)。
まず、初めに、処理制御部13は、実行命令として、ハイパーパラメタセットの集合Λ、データセットを生成する元データ、実行する損失関数L、機械学習アルゴリズムA、モデル検証手法の情報を取得する(S21)。
次に、処理制御部13は、元データから、実行命令が指定するモデル検証手法の情報に基づいてk個のデータセットを生成しデータ格納部22に格納する。なお、このとき、データセットの実体を生成してデータ格納部22に保存してもよく、後で何度でも同一のデータセットが再現できるようにデータセット生成手順を決定してもよい(S22)。
続いて、処理制御部13が、データセットのサイズとサブデータ格納部で利用できる記憶容量から、サブデータ格納部に一度に書き込めるデータセットの数bを算出する。図6では、第1サブデータ格納部23Aおよび第2サブデータ格納部23Bの記憶容量は等しいと仮定する(S23)。
最後に、データプリフェッチ部12が、先頭からb個のデータセット<Xi train,Xi valid>,…,<Xb train,Xb valid>を第1サブデータ格納部23Aに書き込む(S24)。
<ハイパーパラメタ最適化の動作>
図7は、データ分析装置1によるハイパーパラメタ最適化の動作を示すフローチャートである。
図7は、データ分析装置1によるハイパーパラメタ最適化の動作を示すフローチャートである。
まず処理制御部13は、初期化としてh1=1、h2=2、j=1を定義する(S31)。ここでh1およびh2は第1サブデータ格納部23Aおよび第2サブデータ格納部23Bを識別する識別子(値は1か2)であり、jはΛの部分集合Λjを識別する識別子(1以上J以下)である。
次に、処理制御部13は、i=b+1を定義する(S32)。ここで変数iはサブデータ格納部21にプリフェッチする最大b個のデータセットのうち、先頭のデータセットの識別子である。
続いて、データプリフェッチ部12は、b個のデータセット<Xi train,Xi valid>,…,<Xi+b−1 train,Xi+b−1 valid>をデータ格納部h2にプリフェッチする。i+b−1≧kのときはプリフェッチすべきデータセットの残数がb個未満であることを表しているため、データプリフェッチ部12は、格納できるだけの数のデータセットをプリフェッチする(S33)。このプリフェッチ処理と並行して、データ処理部11がデータ格納部h1の各データセットと各λ∈Λjとに対して損失関数L(Xvalid,Aλ(Xtrain))を計算し、値を保存する(S34)。計算に必要とされる処理時間は、並行して処理されるデータプリフェッチに掛かる時間と同程度となるようにする。
データプリフェッチ部12及びデータ処理部11の並行処理が終わると、処理制御部13は、条件i+b−1≧kを判定する(S35)。当該条件が偽(false)の場合、未使用のデータセットがあることから次のデータセットの処理のためにi、h1、h2を更新し(S36)、当該並行処理を繰り返す。当該条件が真(true)の場合、Λjに対して全てのデータセットで損失関数が計算できたことを意味するため、データ処理部11が各λ∈Λjについて、損失関数Lの平均値を算出、出力する(S37)。そして、条件j=Jを判定する(S38)。当該条件が偽(false)の場合、jを更新し(S39)、S32処理から再び処理を開始する。当該条件が真(true)の場合、全ての部分集合Λjについて、損失関数Lの平均値が計算された、すなわち与えられたΛの全ての要素λについて損失関数Lの平均値が計算されたことを意味する。このため、処理制御部13は、最小の平均値を持つλをハイパーパラメタ最適化の最適解として出力し(S40)、全ての処理を完了する。
次に、第1の実施形態のデータ分析装置1による効果を示すために、最適解出力を優先処理すると、個々のハイパーパラメタセットの損失関数Lの平均値を優先して出力する処理するとを、第1の実施形態によるハイパーパラメタ最適化の処理手順と処理時間の関係において比較する。比較条件として、データセット1、2およびハイパーパラメタλ1〜λ4を用い、各ハイパーパラメタの損失関数の平均を計算するものとする。なお、それぞれの比較においては、CPUやメモリは同一のものを使用している。
図8〜図10は、ハイパーパラメタ最適化の処理時間の比較を表す。図8は、最適解出力を優先処理する場合における、ハイパーパラメタ最適化の処理時間とその処理手順を表す。図8中、横軸は、処理時間を示し、縦軸は、処理手順を示す。最適解出力を優先して処理する場合、各データセットはメモリ上に一度しか書き込まれず、メモリからのデータセットの書き込み時間は最小限に抑えられるため、最適解の出力が最も高速に実現できる。しかしながら、ユーザは個々のハイパーパラメタに対する損失関数の平均値を確認することができないまま、長時間待たされることになる(一般に、ハイパーパラメタセットλの数は非常に大きい)。
一方、図9は、個々のハイパーパラメタセットの損失関数Lの平均値を優先して出力する処理を表している。この処理では、ハイパーパラメタセットの損失関数Lの平均値は次々に出力されるが、メモリへのデータセットの書き込みが頻繁に発生し、最適解の出力までの時間が著しく増大し、現実的ではない。
図10は、第1の実施形態のデータ分析装置1における処理手順と処理時間を表す。第1の実施形態のデータ分析装置1によれば、データセットをメモリにプリフェッチする処理と並行して、既にフェッチしたデータセットに対してハイパーパラメタセットに対する損失関数を計算している。これにより、メモリへのデータセットへの書き込み時間が隠ぺいされ、メモリの書き込み時間による処理時間の増大を抑制でき、個々のハイパーパラメタセットの損失関数の平均値を速く出力することができる。
また、ユーザは、ハイパーパラメタ最適化の処理を、最後まで待つことなく、個々のハイパーパラメタの損失関数Lの平均値を次々と確認することができる。これにより、与えたハイパーパラメタセットの集合Λに、最適解となるλがありそうかどうかという途中結果を、いち早く確認することができる。
最適解となりえるλがなさそうな場合や、Λの中の一部のλがあまりにも最適解になりそうもないことが途中結果から分かると、処理を打ち切り新しいΛを試してみるなどが出来、分析の試行錯誤のスピードが上がると期待できる。
[第2の実施形態]
次に、本発明の第2の実施形態に係るデータ分析装置について、図面を用いて説明する。
次に、本発明の第2の実施形態に係るデータ分析装置について、図面を用いて説明する。
前述の第1の実施形態に係るデータ分析装置1は、プリフェッチによりIOタイムを隠ぺいすることができる。しかし、データ処理部11に多くのハイパーパラメタセットを処理させると、データ処理部11による出力結果の遅延が発生する。このため、第2の実施形態に係るデータ分析装置2は、第1のデータ分析装置1の構成にパラメタセット数計算部14を追加している。
図11は、第2の実施形態に係るデータ分析装置2の構成を示すブロック図である。データ分析装置2は、制御部30と記憶部20を有する。制御部30は、データ処理部11、プリフェッチ部12、処理制御部13およびパラメタセット数計算部14を有する。制御部30のデータ処理部11、データプリフェッチ部12および処理制御部13は、第1の実施形態に係るデータ分析装置1の制御部10と同様の機能を有する。また、記憶部20は、第1実施形態に係るデータ分析装置1の記憶部20と同じため、これら構成の詳細については、説明を省略する。
データ分析装置2のパラメタセット数計算部14は、処理制御部13に接続され、処理制御部13の命令によりパラメタセット数sを計算する機能を有する。算出されたパラメタセット数sは、パラメタセット数計算部14から処理制御部13へ送られる。
パラメタセット数sは、第1サブデータ格納部23A又は第2サブデータ格納部23Bに格納されたデータセットに対し、データ処理部11が一度に損失関数Lを計算するパラメタセットの数である。データ処理部11によるs個のパラメタセットの処理時間は、データプリフェッチ部12が第1サブデータ格納部23A又は第2サブデータ格納部23Bにデータセットを格納する時間以上であり、かつ、最小のsとなるように、パラメタセット数計算部14が計算する。パラメタセット数計算部14は、データ処理部11によるハイパーパラメタセットの損失関数の計算時間とデータプリフェッチ部12によるデータセットのプリフェッチにかかる時間が同程度となるパラメタセット数sを算出することが好ましい。データセットのプリフェッチのために掛かる余分な処理時間は見かけ上ほとんど発生しなくなる。
次に、第2の実施の形態に係るデータ分析装置2の動作について、図面を用いて説明する。第2の実施形態に係るデータ分析装置2の動作も第1の実施形態に係るデータ分析装置1と同様に初期化の動作とハイパーパラメタ最適化の動作の2つに分かれる。但し、ハイパーパラメタ最適化の動作は、第1の実施形態に係るデータ分析装置2の動作と同様のため説明を省略する。
図12は、データ分析装置2による初期化の動作を示すフローチャートである。図12中、S21〜S24は、第1の実施形態に係るデータ分析装置1の動作と同様であり、詳細な説明は省略する。
データ分析装置2の制御部30におけるパラメタセット数計算部14の追加により、データ分析装置2の初期化の動作は、ステップS23とステップS24の間に、以下のステップが追加される。すなわち、パラメタセット数計算部14が、実行命令の情報から、一度に処理するパラメタセットの数sを計算する(S41)。さらに、処理制御部13が、Λzから最大でs個の要素を持つ部分集合Λ1,...,ΛJを生成する(S42)。部分集合は互いに疎で、∪j Λj=Λであるとする。また、Jは部分集合の数であるとする。
第2の実施形態に係るデータ分析装置2は、上記初期化の後に、ハイパーパラメタ最適化を実施する。
次に、第2の実施形態に係るデータ分析装置2のパラメタセット数計算部14によるパラメタセット数sの決定について、具体例を挙げて説明する。
<データ格納部22がハードディスク、サブデータ格納部21がメモリ、かつ、データ処理部11がシングルスレッド処理の場合>
第2の実施形態に係るデータ分析装置2のデータ格納部22が、コンピュータ装置のハードディスク上に存在し、全てのデータセットの実体がハードディスク上に生成されているケースを考える。また、データ分析装置2のデータ処理部11が、シングルスレッド処理で実現されているものとする。サブデータ格納部21はメモリ上に存在しているとする。
第2の実施形態に係るデータ分析装置2のデータ格納部22が、コンピュータ装置のハードディスク上に存在し、全てのデータセットの実体がハードディスク上に生成されているケースを考える。また、データ分析装置2のデータ処理部11が、シングルスレッド処理で実現されているものとする。サブデータ格納部21はメモリ上に存在しているとする。
データ分析装置2のデータプリフェッチ部12は、b個のデータセットを順にハードディスク上のデータ格納部22からメモリ上のサブデータ格納部21にプリフェッチする。1つのデータセットをメモリ上のサブデータ格納部21に書き込む時間をIOとすると、b個のデータセット全てをプリフェッチするのにかかる時間はIO×bとなる。
また、あるハイパーパラメタセットλとデータセットに対して、損失関数L(Xvalid,Aλ(Xtrain))が計算される時間をtとする。サブデータ格納部21の第1サブデータ格納部23Aおよび第2サブデータ格納部23Bが同じ記憶容量であるとしたとき、データ処理部11がサブデータ格納部21に存在するb個のデータセットに、s個のハイパーパラメタセットを適用して損失関数を計算するのにかかる時間は、s×b×tである。以上から、データ処理部11が一度に処理すべきハイパーパラメタセットの数は、条件s×t≧IOを満足し、かつ、最小のsを選択する。
パラメタセット数計算部14は、処理制御部13からパラメタセット数を計算する命令を取得すると、データ格納部22から任意の一つのデータセットを実際にメモリ上に書き込み、書き込み時間を取得してIOの値とする(なお、任意の複数のデータセットに対する書き込み時間の平均値をIOとしてもいい)。
パラメタセット数計算部14は、メモリ上のサブデータ格納部21から読み込んだデータセットに任意の一つのハイパーパラメタセットλを用いて損失関数Lを計算し、その計算時間をtとする(任意の複数のλで損失関数を計算した平均時間をtとしてもいい)。取得したIOとtを用いて、当該条件s×t≧IOを満足する中で最小の整数sを選択して処理制御部13に返す。
<メモリ上のサブデータ格納部への書き込み、かつ、データ処理部11がシングルスレッドの場合>
次に、データ分析装置2のデータ格納部22が、コンピュータ装置のメモリ上に存在し、データセットを生成するための元データが実体としてデータ格納部22に格納され、更に、各データセットの生成手順がデータ格納部22に格納されているケースについて説明する。なお、データ処理部11はシングルスレッドで実現されるものとする。また、サブデータ格納部21もコンピュータ装置のメモリ上に存在しているとする。
次に、データ分析装置2のデータ格納部22が、コンピュータ装置のメモリ上に存在し、データセットを生成するための元データが実体としてデータ格納部22に格納され、更に、各データセットの生成手順がデータ格納部22に格納されているケースについて説明する。なお、データ処理部11はシングルスレッドで実現されるものとする。また、サブデータ格納部21もコンピュータ装置のメモリ上に存在しているとする。
データプリフェッチ部12は、b個のデータセットを順に、その生成手順に則ってデータ格納部22に格納された元データからサブデータ格納部上に生成することでプリフェッチする。このケースの場合、パラメタセット数計算部14は、任意の一つのデータセットを元データから生成し、生成にかかった時間をIOとする(任意の複数のデータセットの生成時間の平均値をIOとしてもいい)。こうすることにより、本ケースでも、当該のケースと同様のやり方でパラメタセット数sを算出することができる。
<データ処理部11がマルチスレッドの場合>
処理するハイパーパラメタセットの個数が多い場合、データ処理部11をマルチスレッド化することで時間を短縮することが可能である。すなわち、n個のスレッドを用意し、s×b回発生する損失関数Lの計算をn個同時でスレッドを実行する場合である。このとき、サブデータ格納部は共有メモリ上に構築され、n個のスレッドが同じサブデータ格納部を参照できるものとする。データプリフェッチ部12はb個のデータセットを順に読み込むと、s×b回発生する損失関数の計算をn個のスレッドで処理にかかる時間はs×b×t/nとなる。よって、パラメタセット数計算部14は、条件s×t/n≧IOを満足する中で最小の整数sを選択して処理制御部13に返す。
<sを適応的に決定する>
これまでのケースでは、パラメタセット数sは最適化の計算が開始される前に決め打っていた。これは、損失関数Lの処理時間tやデータセットの書き込み時間IOが、最適化の処理中ほとんど変動しない場合は効果的である。しかし、tがハイパーパラメタセットによって大きく変動する場合や、マシンのディスクやメモリの利用状況が変動しやすい場合は、tやIOを事前に決め打たず、データをプリフェッチするごとに適応的に決定する方が効果的である。
処理するハイパーパラメタセットの個数が多い場合、データ処理部11をマルチスレッド化することで時間を短縮することが可能である。すなわち、n個のスレッドを用意し、s×b回発生する損失関数Lの計算をn個同時でスレッドを実行する場合である。このとき、サブデータ格納部は共有メモリ上に構築され、n個のスレッドが同じサブデータ格納部を参照できるものとする。データプリフェッチ部12はb個のデータセットを順に読み込むと、s×b回発生する損失関数の計算をn個のスレッドで処理にかかる時間はs×b×t/nとなる。よって、パラメタセット数計算部14は、条件s×t/n≧IOを満足する中で最小の整数sを選択して処理制御部13に返す。
<sを適応的に決定する>
これまでのケースでは、パラメタセット数sは最適化の計算が開始される前に決め打っていた。これは、損失関数Lの処理時間tやデータセットの書き込み時間IOが、最適化の処理中ほとんど変動しない場合は効果的である。しかし、tがハイパーパラメタセットによって大きく変動する場合や、マシンのディスクやメモリの利用状況が変動しやすい場合は、tやIOを事前に決め打たず、データをプリフェッチするごとに適応的に決定する方が効果的である。
sを適応的に決める場合は、まず、パラメタセット数計算部14がsの算出を試み、適応的にsを決めるか否かを決定する。例えば、前述のような方法でtとIOの取得を何度か試み、tやIOの値の分散や標準偏差を計算し、分散や標準偏差が適当な閾値を超える場合は、適応的にsを決めると決定する等の方法が考えられる。
パラメタセット数計算部14がsを適応的に決めると判断した場合、処理制御部13はデータプリフェッチ部12がプリフェッチしている間、Λから要素λを取り出し、データ処理部11に渡し続ける。データプリフェッチ部12がプリフェッチを終えるのを確認したら、データ処理部11に対して、前のデータセットで計算されたλを優先してΛから取り出してデータ処理部11に渡し続ける。こうすることで、データ処理部11はデータプリフェッチ部12がプリフェッチを終えるまで間のみ、並行してハイパーパラメタセットの損失関数Lを計算することができる。
本発明によれば、ハイパーパラメタ最適化を、全体の最適化時間を増大させることなく、ユーザに対してより対話的に行うことができる。本発明を実装したデータ分析ソフト、装置、サービス等を提供することで、利用者はより対話的なデータ分析を行うことができる。
以上、第2の実施形態に係るデータ分析装置2のパラメタセット数計算部14により、データ処理部11が一度に処理するハイパーパラメタの適当な数を計算することができる。これにより、データ分析装置2は、サブデータ格納部21に書き込みしたデータセットに対して過剰な数のハイパーパラメタセットを一度に処理することがなくなり、1つのハイパーパラメタの損失関数の平均値の出力が遅くることもない。
(ハードウエア構成)
図13は、本発明の第1〜3の実施形態に係るデータ分析装置1の制御部10をコンピュータ装置で実現したハードウエア構成を示す図である。
(ハードウエア構成)
図13は、本発明の第1〜3の実施形態に係るデータ分析装置1の制御部10をコンピュータ装置で実現したハードウエア構成を示す図である。
図13に示すように、データ分析装置1の制御部10は、CPU(Central Processing Unit)91、ネットワーク接続用の通信I/F(通信インターフェース)92、メモリ93、及び、プログラムを格納するハードディスク等の記憶装置94を含み、また、自動取引装置10の制御部14、又は、保守サーバ30は、システムバス97を介して入力装置95及び、出力装置96に接続されている。
CPU91は、オペレーティングシステムを動作させて本発明の第1〜3の実施形態に係るデータ分析装置を制御する。またCPU91は、例えば、ドライブ装置に装着された記録媒体からメモリ93にプログラムやデータを読み込む。
また、CPU91は、例えば、各実施形態に係るデータ分析装置1の制御部(データ処理部11、データプリフェッチ部12、処理制御部13、パラメタセット数計算部14)に対応し、データ格納部22、第1サブデータ格納部23Aおよび第2サブデータ格納部23Bなどから入力される情報信号を処理する機能を有し、プログラムに基づいて各種機能の処理を実行する。
記憶装置94は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、又は半導体メモリ等である。記憶装置94の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムを記憶する。また、プログラムは、通信網に接続されている。図示しない外部コンピュータからダウンロードされてもよい。
入力装置95は、例えば、マウス、キーボード、内臓のキーボタン、カード取込口、又は、タッチパネルなどで実現され、入力操作に用いられる。
出力装置96は、例えば、ディスプレイで実現され、CPU91により処理された情報等を出力して確認するために用いられる。
以上のように、本発明の各実施形態は、図13に示されるハードウエア構成によって実現される。但し、データ分析装置が備える各部の実現手段は、特に限定されない。すなわち、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線又は無線で接続し、これら複数の装置により実現してもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が容易に理解し得るような様々な変更をすることができる。
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)
取得した、訓練データと検証データを含むデータセットを格納するサブデータ格納部を有する記憶部と、
取得したハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算する制御部と、を備え、
前記制御部は、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチするデータ分析装置。
取得した、訓練データと検証データを含むデータセットを格納するサブデータ格納部を有する記憶部と、
取得したハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算する制御部と、を備え、
前記制御部は、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチするデータ分析装置。
(付記2)
前記サブデータ格納部は、第1サブデータ格納部および第2サブデータ格納部を備え、
前記制御部は、前記第1サブデータ格納部、又は、前記第2サブデータ格納部2のうちの一方のからデータセットを読み出して前記損失関数を計算し、他方に次のデータセットを書き込む、付記1に記載のデータ分析装置。
前記サブデータ格納部は、第1サブデータ格納部および第2サブデータ格納部を備え、
前記制御部は、前記第1サブデータ格納部、又は、前記第2サブデータ格納部2のうちの一方のからデータセットを読み出して前記損失関数を計算し、他方に次のデータセットを書き込む、付記1に記載のデータ分析装置。
(付記3)
前記制御部は、データ処理部と、データプリフェッチ部を備え、
前記データ処理部が、前記第1サブデータ格納部、又は、前記第2サブデータ格納部2のうちの一方のからデータセットを読み出して前記損失関数を計算し、
前記データプリフェッチ部が、他方に次のデータセットを書き込む、付記2に記載のデータ分析装置。
前記制御部は、データ処理部と、データプリフェッチ部を備え、
前記データ処理部が、前記第1サブデータ格納部、又は、前記第2サブデータ格納部2のうちの一方のからデータセットを読み出して前記損失関数を計算し、
前記データプリフェッチ部が、他方に次のデータセットを書き込む、付記2に記載のデータ分析装置。
(付記4)
制御部が、パラメタセット数計算部を備え、
前記パラメタセット数計算部は、第1サブデータ格納部又は第2サブデータ格納部に格納されたデータセットに対し、データ処理部(制御部)が一度に損失関数を計算するハイパーパラメタセットの数を計算する、付記2又は3に記載のデータ分析装置。
制御部が、パラメタセット数計算部を備え、
前記パラメタセット数計算部は、第1サブデータ格納部又は第2サブデータ格納部に格納されたデータセットに対し、データ処理部(制御部)が一度に損失関数を計算するハイパーパラメタセットの数を計算する、付記2又は3に記載のデータ分析装置。
(付記5)
制御部が、パラメタセット数計算部を備え、
前記パラメタセット数計算部は、前記データ処理部による前記ハイパーパラメタセットの前記損失関数の計算時間と、前記データプリフェッチ部による前記データセットのプリフェッチにかかる時間が同程度となるパラメタセットの数を算出する、付記2又は3記載のデータ分析装置。
制御部が、パラメタセット数計算部を備え、
前記パラメタセット数計算部は、前記データ処理部による前記ハイパーパラメタセットの前記損失関数の計算時間と、前記データプリフェッチ部による前記データセットのプリフェッチにかかる時間が同程度となるパラメタセットの数を算出する、付記2又は3記載のデータ分析装置。
(付記6)
前記制御部は、前記ハイパーパラメタセットの前記損失関数の平均値を、ハイパーパラメタセット毎に出力する、付記1〜5のいずれか1項に記載のデータ分析装置。
前記制御部は、前記ハイパーパラメタセットの前記損失関数の平均値を、ハイパーパラメタセット毎に出力する、付記1〜5のいずれか1項に記載のデータ分析装置。
(付記7)
前記制御部は、処理制御部を備え、
前記処理制御部は、実行命令として、ハイパーパラメタセットの集合、データセットを生成する元データ、実行する損失関数、機械学習アルゴリズム、モデル検証手法の情報を取得し、前記元データから、実行命令が指定するモデル検証手法の情報に基づいて所望のデータセットを生成する、付記1〜6のいずれか1項に記載のデータ分析装置。
前記制御部は、処理制御部を備え、
前記処理制御部は、実行命令として、ハイパーパラメタセットの集合、データセットを生成する元データ、実行する損失関数、機械学習アルゴリズム、モデル検証手法の情報を取得し、前記元データから、実行命令が指定するモデル検証手法の情報に基づいて所望のデータセットを生成する、付記1〜6のいずれか1項に記載のデータ分析装置。
(付記8)
前記処理制御部は、前記データセットのサイズと前記第1サブデータ格納部又は前記サブデータ格納部で利用できる記憶容量から、前記第1サブデータ格納部又は前記サブデータ格納部に一度に書き込める前記データセットの数を算出し、
データプリフェッチ部、前記データセットの数に基づき、前記第1サブデータ格納部又は前記サブデータ格納部に書き込む、付記7記載のデータ分析装置。
前記処理制御部は、前記データセットのサイズと前記第1サブデータ格納部又は前記サブデータ格納部で利用できる記憶容量から、前記第1サブデータ格納部又は前記サブデータ格納部に一度に書き込める前記データセットの数を算出し、
データプリフェッチ部、前記データセットの数に基づき、前記第1サブデータ格納部又は前記サブデータ格納部に書き込む、付記7記載のデータ分析装置。
(付記9)
訓練データと検証データを含むデータセットをサブデータ格納部に格納し、
ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、
前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチするデータ分析方法。
訓練データと検証データを含むデータセットをサブデータ格納部に格納し、
ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、
前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチするデータ分析方法。
(付記10)
コンピュータに、訓練データと検証データを含むデータセットをサブデータ格納部に格納し、ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチすることを実行させる、データ分析プログラム。
コンピュータに、訓練データと検証データを含むデータセットをサブデータ格納部に格納し、ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチすることを実行させる、データ分析プログラム。
1 データ分析装置
2 データ分析装置
10 制御部
11 データ処理部
12 データプリフェッチ部
13 処理制御部
14 パラメタセット数計算部
20 記憶部
21 サブデータ格納部
22 データ格納部
23A 第1サブデータ格納部
23B 第2サブデータ格納部
30 制御部
91 CPU
92 通信I/F(通信インターフェース)
93 メモリ
94 記憶装置
95 入力装置
96 出力装置
97 システムバス
2 データ分析装置
10 制御部
11 データ処理部
12 データプリフェッチ部
13 処理制御部
14 パラメタセット数計算部
20 記憶部
21 サブデータ格納部
22 データ格納部
23A 第1サブデータ格納部
23B 第2サブデータ格納部
30 制御部
91 CPU
92 通信I/F(通信インターフェース)
93 メモリ
94 記憶装置
95 入力装置
96 出力装置
97 システムバス
Claims (10)
- 取得した、訓練データと検証データを含むデータセットを格納するサブデータ格納部を有する記憶部と、
取得したハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算する制御部と、を備え、
前記制御部は、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチするデータ分析装置。 - 前記サブデータ格納部は、第1サブデータ格納部および第2サブデータ格納部を備え、
前記制御部は、前記第1サブデータ格納部、又は、前記第2サブデータ格納部2のうちの一方のからデータセットを読み出して前記損失関数を計算し、他方に次のデータセットを書き込む、請求項1に記載のデータ分析装置。 - 前記制御部は、データ処理部と、データプリフェッチ部を備え、
前記データ処理部が、前記第1サブデータ格納部、又は、前記第2サブデータ格納部2のうちの一方のからデータセットを読み出して前記損失関数を計算し、
前記データプリフェッチ部が、他方に次のデータセットを書き込む、請求項2に記載のデータ分析装置。 - 前記制御部が、パラメタセット数計算部を備え、
前記パラメタセット数計算部は、第1サブデータ格納部又は第2サブデータ格納部に格納されたデータセットに対し、データ処理部が一度に損失関数を計算するハイパーパラメタセットの数を計算する、請求項2又は3に記載のデータ分析装置。 - 前記制御部が、パラメタセット数計算部を備え、
前記パラメタセット数計算部は、前記データ処理部による前記ハイパーパラメタセットの前記損失関数の計算時間と、前記データプリフェッチ部による前記データセットのプリフェッチにかかる時間が同程度となるパラメタセットの数を算出する、請求項2又は3記載のデータ分析装置。 - 前記制御部は、前記ハイパーパラメタセットの前記損失関数の平均値を、ハイパーパラメタセット毎に出力する、請求項1〜5のいずれか1項に記載のデータ分析装置。
- 前記制御部は、処理制御部を備え、
前記処理制御部は、実行命令として、ハイパーパラメタセットの集合、データセットを生成する元データ、実行する損失関数、機械学習アルゴリズム、モデル検証手法の情報を取得し、前記元データから、実行命令が指定するモデル検証手法の情報に基づいて所望のデータセットを生成する、請求項1〜6のいずれか1項に記載のデータ分析装置。 - 前記処理制御部は、前記データセットのサイズと前記第1サブデータ格納部又は前記サブデータ格納部で利用できる記憶容量から、前記第1サブデータ格納部又は前記サブデータ格納部に一度に書き込める前記データセットの数を算出し、
前記データプリフェッチ部は、前記データセットの数に基づき、前記第1サブデータ格納部又は前記サブデータ格納部に書き込む、請求項7記載のデータ分析装置。 - 訓練データと検証データを含むデータセットをサブデータ格納部に格納し、
ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、
前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチするデータ分析方法。 - コンピュータに、訓練データと検証データを含むデータセットをサブデータ格納部に格納し、ハイパーパラメタセットと前記サブデータ格納部に格納されたデータセットを用いて損失関数を計算し、前記損失関数の計算と並行して、次のデータセットを前記サブデータ格納部にプリフェッチすることを実行させる、データ分析プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014166347A JP2016042322A (ja) | 2014-08-19 | 2014-08-19 | データ分析装置、分析方法とそのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014166347A JP2016042322A (ja) | 2014-08-19 | 2014-08-19 | データ分析装置、分析方法とそのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016042322A true JP2016042322A (ja) | 2016-03-31 |
Family
ID=55592034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014166347A Pending JP2016042322A (ja) | 2014-08-19 | 2014-08-19 | データ分析装置、分析方法とそのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016042322A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020087281A1 (zh) * | 2018-10-30 | 2020-05-07 | 深圳市大疆创新科技有限公司 | 超参数的优化方法及装置 |
JP2020522055A (ja) * | 2017-05-14 | 2020-07-27 | デジタル リーズニング システムズ インコーポレイテッド | 機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法 |
WO2020252766A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳大学 | 一种深度神经网络多任务超参数优化方法及装置 |
-
2014
- 2014-08-19 JP JP2014166347A patent/JP2016042322A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020522055A (ja) * | 2017-05-14 | 2020-07-27 | デジタル リーズニング システムズ インコーポレイテッド | 機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法 |
JP7216021B2 (ja) | 2017-05-14 | 2023-01-31 | デジタル リーズニング システムズ インコーポレイテッド | 機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法 |
WO2020087281A1 (zh) * | 2018-10-30 | 2020-05-07 | 深圳市大疆创新科技有限公司 | 超参数的优化方法及装置 |
WO2020252766A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳大学 | 一种深度神经网络多任务超参数优化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3612947B1 (en) | Processing discontiguous memory as contiguous memory to improve performance of a neural network environment | |
CN112424748B (zh) | 源代码文件推荐通知 | |
US20190057081A1 (en) | Method and apparatus for generating natural language | |
US20170140278A1 (en) | Using machine learning to predict big data environment performance | |
CN111652380A (zh) | 针对机器学习算法进行算法参数调优的方法及系统 | |
US10922620B2 (en) | Machine learning through parallelized stochastic gradient descent | |
Piscitelli et al. | Design space pruning through hybrid analysis in system-level design space exploration | |
US10546574B2 (en) | Voice recognition apparatus and method | |
Schelter et al. | Factorbird-a parameter server approach to distributed matrix factorization | |
US11403368B2 (en) | Diagnostic model generating method and diagnostic model generating apparatus therefor | |
WO2019199307A1 (en) | Second-order optimization methods for avoiding saddle points during the training of deep neural networks | |
CN109416637A (zh) | 为了向后兼容性而导出应用程序特定的操作参数 | |
US20210049474A1 (en) | Neural network method and apparatus | |
JP2016042322A (ja) | データ分析装置、分析方法とそのプログラム | |
JP7215966B2 (ja) | ハイパーパラメータ管理装置、ハイパーパラメータ管理方法及びハイパーパラメータ管理プログラム製品 | |
CN104011682B (zh) | 对应用事件响应进行推测性处理的方法和计算机系统 | |
US11721323B2 (en) | Method and apparatus with speech processing | |
US20210397946A1 (en) | Method and apparatus with neural network data processing | |
CN112368718B (zh) | 用于深度记忆网络的系统和方法 | |
US9563752B2 (en) | License information access based on developer profiles | |
CN114580652A (zh) | 应用于自动人工智能的项目推荐的方法和系统 | |
KR102086043B1 (ko) | 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치 | |
CN113408693A (zh) | 识别图像的方法和设备 | |
US20230177372A1 (en) | Optimized selection of data for quantum circuits | |
US20200364314A1 (en) | Method and apparatus with system verification based on reinforcement learning |