以下に、本願に係る情報処理方法、情報処理装置および情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理方法、情報処理装置および情報処理プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
[実施形態]
以下の実施形態では、最初にシステム構成等の前提について説明した後、複数の部分モデルを含むモデルの生成時の学習において、部分モデル毎にドロップアウトの処理を行って、モデルを生成する処理を説明する。なお、以下では、部分モデルのうち、隠れ層を含まないタイプの部分モデルを第1タイプの部分モデルと記載し、隠れ層を含むタイプの部分モデルを第2タイプの部分モデルと記載する場合がある。また、モデルを生成する処理を説明した後、上記のようなモデルの生成により得た知見や実験結果を提示して説明する。なお詳細には後述するが、ドロップアウト率、精度、及び隠れ層のサイズの間には相関があり、ドロップアウト率を大きくしたり、ドロップアウト率に応じた隠れ層のサイズに調節したりすることにより、精度が改善させることができる。ドロップアウト率を大きくしたり、ドロップアウト率に応じた隠れ層のサイズに調節したりすることにより、適切にモデルが生成され、モデルの出力(分類などの推論結果)がより自然なものとなると考えられる。このように、モデルの出力がより自然なものとなることで、モデルの精度の改善につながると考えられる。本実施形態では、上述したモデルの生成、知見等を示す前に、まずモデルを生成する情報処理システム1の構成等について説明する。
〔1.情報処理システムの構成〕
まず、図1を用いて、情報処理装置の一例である情報処理装置10を有する情報処理システムの構成について説明する。図1は、実施形態に係る情報処理システムの一例を示す図である。図1に示すように、情報処理システム1は、情報処理装置10、モデル生成サーバ2、および端末装置3を有する。なお、情報処理システム1は、複数のモデル生成サーバ2や複数の端末装置3を有していてもよい。また、情報処理装置10と、モデル生成サーバ2とは、同一のサーバ装置やクラウドシステム等により実現されてもよい。ここで、情報処理装置10、モデル生成サーバ2、および端末装置3は、ネットワークN(例えば、図3参照)を介して有線または無線により通信可能に接続される。
情報処理装置10は、モデルの生成における指標(すなわち、モデルのレシピ)である生成指標を生成する指標生成処理と、生成指標に従ってモデルを生成するモデル生成処理とを実行し、生成した生成指標およびモデルを提供する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
モデル生成サーバ2は、学習データが有する特徴を学習させたモデルを生成する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、モデル生成サーバ2は、モデルの生成指標として、生成するモデルの種別や行動、どのように学習データの特徴を学習させるかといったコンフィグファイルを受付けると、受付けたコンフィグファイルに従って、モデルの自動生成を行う。なお、モデル生成サーバ2は、任意のモデル学習手法を用いて、モデルの学習を行ってもよい。また、例えば、モデル生成サーバ2は、AutoML(Automated Machine Learning)といった各種既存のサービスであってもよい。
端末装置3は、利用者Uによって利用される端末装置であり、例えば、PC(Personal Computer)やサーバ装置等により実現される。例えば、端末装置3は、情報処理装置10とのやり取りを介して、モデルの生成指標を生成させ、生成させた生成指標に従ってモデル生成サーバ2が生成したモデルを取得する。
〔2.情報処理装置10が実行する処理の概要〕
まず、情報処理装置10が実行する処理の概要について説明する。まず、情報処理装置10は、端末装置3からモデルに特徴を学習させる学習データの指摘を受付ける(ステップS1)。例えば、情報処理装置10は、学習に用いる各種の学習データを所定の記憶装置に記憶させており、利用者Uが学習データに指定する学習データの指摘を受付ける。なお、情報処理装置10は、例えば、端末装置3や各種外部のサーバから、学習に用いる学習データを取得してもよい。
ここで、学習データとは、任意のデータが採用可能である。例えば、情報処理装置10は、各利用者の位置の履歴や各利用者が閲覧したウェブコンテンツの履歴、各利用者による購買履歴や検索クエリの履歴等、利用者に関する各種の情報を学習データとしてもよい。また、情報処理装置10は、利用者のデモグラフィック属性やサイコグラフィック属性等を学習データとしてもよい。また、情報処理装置10は、配信対象となる各種ウェブコンテンツの種別や内容、作成者等のメタデータ等を学習データとしてもよい。
このような場合、情報処理装置10は、学習に用いる学習データの統計的な情報に基づいて、生成指標の候補を生成する(ステップS2)。例えば、情報処理装置10は、学習データに含まれる値の特徴等に基づいて、どのようなモデルに対し、どのような学習手法により学習を行えばよいかを示す生成指標の候補を生成する。換言すると、情報処理装置10は、学習データの特徴を精度よく学習可能なモデルやモデルに精度よく特徴を学習させるための学習手法を生成指標として生成する。すなわち、情報処理装置10は、学習手法の最適化を行う。なお、どのような学習データが選択された場合に、どのような内容の生成指標を生成するかについては、後述する。
続いて、情報処理装置10は、生成指標の候補を端末装置3に対して提供する(ステップS3)。このような場合、利用者Uは、生成指標の候補を嗜好や経験則等に応じて修正する(ステップS4)。そして、情報処理装置10は、各生成指標の候補と学習データとをモデル生成サーバ2に提供する(ステップS5)。
一方、モデル生成サーバ2は、生成指標ごとに、モデルの生成を行う(ステップS6)。例えば、モデル生成サーバ2は、生成指標が示す構造を有するモデルに対し、生成指標が示す学習手法により学習データが有する特徴を学習させる。そして、モデル生成サーバ2は、生成したモデルを情報処理装置10に提供する(ステップS7)。
ここで、モデル生成サーバ2によって生成された各モデルは、それぞれ生成指標の違いに由来する精度の違いが生じると考えられる。そこで、情報処理装置10は、各モデルの精度に基づいて、遺伝的アルゴリズムにより新たな生成指標を生成し(ステップS8)、新たに生成した生成指標を用いたモデルの生成を繰り返し実行する(ステップS9)。
例えば、情報処理装置10は、学習データを評価用データと学習用データとに分割し、学習用データが有する特徴を学習させたモデルであって、それぞれ異なる生成指標に従って生成された複数のモデルを取得する。例えば、情報処理装置10は、10個の生成指標を生成し、生成した10個の生成指標と、学習用データとを用いて、10個のモデルを生成する。このような場合、情報処理装置10は、評価用データを用いて、10個のモデルそれぞれの精度を測定する。
続いて、情報処理装置10は、10個のモデルのうち、精度が高い方から順に所定の数のモデル(例えば、5個)を選択する。そして、情報処理装置10は、選択した5個のモデルを生成した際に採用された生成指標から、新たな生成指標を生成する。例えば、情報処理装置10は、各生成指標を遺伝的アルゴリズムの個体と見做し、各生成指標が示すモデルの種別、モデルの構造、各種の学習手法(すなわち、生成指標が示す各種の指標)を遺伝的アルゴリズムにおける遺伝子と見做す。そして、情報処理装置10は、遺伝子の交叉を行う個体の選択および遺伝子の交叉を行うことで、次世代の生成指標を10個新たに生成する。なお、情報処理装置10は、遺伝子の交叉を行う際に、突然変異を考慮してもよい。また、情報処理装置10は、二点交叉、多点交叉、一様交叉、交叉対象となる遺伝子のランダムな選択を行ってもよい。また、情報処理装置10は、例えば、モデルの精度が高い個体の遺伝子程、次世代の個体に引き継がれるように、交叉を行う際の交叉率を調整してもよい。
また、情報処理装置10は、次世代の生成指標を用いて、再度新たな10個のモデルを生成する。そして、情報処理装置10は、新たな10個のモデルの精度に基づいて、上述した遺伝的アルゴリズムによる新たな生成指標の生成を行う。このような処理を繰り返し実行することで、情報処理装置10は、生成指標を学習データの特徴に応じた生成指標、すなわち、最適化された生成指標へと近づけることができる。
また、情報処理装置10は、所定の回数新たな生成指標を生成した場合や、モデルの精度の最大値、平均値、若しくは最低値が所定の閾値を超えた場合等、所定の条件が満たされた場合は、最も精度が高いモデルを提供対象として選択する。そして、情報処理装置10は、選択したモデルと共に、対応する生成指標を端末装置3に提供する(ステップS10)。このような処理の結果、情報処理装置10は、利用者から学習データを選択するだけで、適切なモデルの生成指標を生成するとともに、生成した生成指標に従うモデルを提供することができる。
なお、上述した例では、情報処理装置10は、遺伝的アルゴリズムを用いて生成指標の段階的な最適化を実現したが、実施形態は、これに限定されるものではない。後述する説明で明らかとなるように、モデルの精度は、モデルの種別や構造といったモデルそのものの特徴のみならず、どのような学習データをどのようにモデルに入力するのか、どのようなハイパーパラメータを用いてモデルの学習を行うのかというように、モデルを生成する際(すなわち、学習データの特徴を学習させる際)の指標に応じて大きく変化する。
そこで、情報処理装置10は、学習データに応じて、最適と推定される生成指標を生成するのであれば、遺伝的アルゴリズムを用いた最適化を行わずともよい。例えば、情報処理装置10は、学習データが、経験則に応じて生成された各種の条件を満たすか否かに応じて生成した生成指標を利用者に提示するとともに、提示した生成指標に従ったモデルの生成を行ってもよい。また、情報処理装置10は、提示した生成指標の修正を受付けると、受付けた修正後の生成指標に従ってモデルの生成を行い、生成したモデルの精度等を利用者に対して提示し、再度生成指標の修正を受付けてもよい。すなわち、情報処理装置10は、利用者Uに最適な生成指標を試行錯誤させてもよい。
〔3.生成指標の生成について〕
以下、どのような学習データに対して、どのような生成指標を生成するかの一例について説明する。なお、以下の例は、あくまで一例であり、学習データが有する特徴に応じて生成指標を生成するのであれば、任意の処理が採用可能である。
〔3-1.生成指標について〕
まず、生成指標が示す情報の一例について説明する。例えば、学習データが有する特徴をモデルに学習させる場合、学習データをモデルに入力する際の態様、モデルの態様、およびモデルの学習態様(すなわち、ハイパーパラメータが示す特徴)が最終的に得られるモデルの精度に寄与すると考えられる。そこで、情報処理装置10は、学習データの特徴に応じて、各態様を最適化した生成指標を生成することで、モデルの精度を向上させる。
例えば、学習データには、様々なラベルが付与されたデータ、すなわち、様々な特徴を示すデータが存在すると考えられる。しかしながら、データを分類する際に有用ではない特徴を示すデータを学習データとした場合、最終的に得られるモデルの精度は、悪化する恐れがある。そこで、情報処理装置10は、学習データをモデルに入力する際の態様として、入力する学習データが有する特徴を決定する。例えば、情報処理装置10は、学習データのうち、どのラベルが付与されたデータ(すなわち、どの特徴を示すデータ)を入力するかを決定する。換言すると、情報処理装置10は、入力する特徴の組み合わせを最適化する。
また、学習データには、数値のみのデータや文字列が含まれるデータ等、各種形式のカラムが含まれていると考えられる。このような学習データをモデルに入力する際に、そのまま入力した場合と、他の形式のデータに変換した場合とで、モデルの精度が変化するとも考えられる。例えば、複数種別の学習データ(それぞれ異なる特徴を示す学習データ)であって、文字列の学習データと数値の学習データとを入力する際に、文字列と数値とをそのまま入力した場合と、文字列を数値に変換して数値のみを入力した場合と、数値を文字列と見做して入力した場合とでは、それぞれモデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルに入力する学習データの形式を決定する。例えば、情報処理装置10は、モデルに入力する学習データを数値とするか、文字列とするかを決定する。換言すると、情報処理装置10は、入力する特徴のカラムタイプを最適化する。
また、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせを同時に入力するかによって、モデルの精度が変化すると考えられる。すなわち、それぞれ異なる特徴を示す学習データが存在する場合、どの特徴の組み合わせの特徴(すなわち、複数の特徴の組み合わせの関係性)を学習させるかにより、モデルの精度が変化すると考えられる。例えば、第1特徴(例えば、性別)を示す学習データと、第2特徴(例えば、住所)を示す学習データと、第3特徴(例えば、購買履歴)を示す学習データとが存在する場合、第1特徴を示す学習データと第2特徴を示す学習データとを同時に入力した場合と、第1特徴を示す学習データと第3特徴を示す学習データとを同時に入力した場合とでは、モデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルに関係性を学習させる特徴の組み合わせ(クロスフィーチャー)を最適化する。
ここで、各種のモデルは、入力データを所定の超平面により分割された所定次元の空間内に投影し、投影した位置が分割された空間のうちいずれの空間に属するかに応じて、入力データの分類を行うこととなる。このため、入力データを投影する空間の次元数が最適な次元数よりも低い場合は、入力データの分類能力が劣化する結果、モデルの精度が悪化する。また、入力データを投影する空間の次元数が最適な次元数よりも高い場合は、超平面との内積値が変化する結果、学習時に用いたデータとは異なるデータを適切に分類することができなくなる恐れがある。そこで、情報処理装置10は、モデルに入力する入力データの次元数を最適化する。例えば、情報処理装置10は、モデルが有する入力層のノードの数を制御することで、入力データの次元数を最適化する。換言すると、情報処理装置10は、入力データの埋め込みを行う空間の次元数を最適化する。
また、モデルには、SVMに加え、複数の中間層(隠れ層)を有するニューラルネットワーク等が存在する。また、このようなニューラルネットワークには、入力層から出力層まで一方方向に情報が伝達されるフィードフォワード型のDNN、中間層で情報の畳み込みを行う畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、有向閉路を有する回帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、ボルツマンマシン等、各種のニューラルネットワークが知られている。また、このような各種ニューラルネットワークには、LSTM(Long short-term memory)やその他各種のニューラルネットワークが含まれている。
このように、学習データの各種特徴を学習するモデルの種別が異なる場合、モデルの精度は変化すると考えられる。そこで、情報処理装置10は、学習データの特徴を精度良く学習すると推定されるモデルの種別を選択する。例えば、情報処理装置10は、学習データのラベルとしてどのようなラベルが付与されているかに応じて、モデルの種別を選択する。より具体的な例を挙げると、情報処理装置10は、ラベルとして「履歴」に関連する用語が付されたデータが存在する場合は、履歴の特徴をより良く学習することができると考えられるRNNを選択し、ラベルとして「画像」に関連する用語が付されたデータが存在する場合は、画像の特徴をより良く学習することができると考えられるCNNを選択する。これら以外にも、情報処理装置10は、ラベルがあらかじめ指定された用語若しくは用語と類似する用語であるか否かを判定し、同一若しくは類似すると判定された用語と予め対応付けられた種別のモデルを選択すればよい。
また、モデルの中間層の数や1つの中間層に含まれるノードの数が変化した場合、モデルの学習精度が変化すると考えられる。例えば、モデルの中間層の数が多い場合(モデルが深い場合)、より抽象的な特徴に応じた分類を実現することができると考えられる一方で、バックプロパゲーションにおける局所誤差が入力層まで伝播しづらくなる結果、学習が適切に行えなくなる恐れがある。また、中間層に含まれるノードの数が少ない場合は、より高度な抽象化を行うことができるものの、ノードの数が少なすぎる場合は、分類に必要な情報が欠損する可能性が高い。そこで、情報処理装置10は、中間層の数や中間層に含まれるノードの数の最適化を行う。すなわち、情報処理装置10は、モデルのアーキテクチャの最適化を行う。
また、アテンションの有無やモデルに含まれるノードに自己回帰がある場合とない場合、どのノード間を接続するのかに応じて、ノードの精度が変化すると考えられる。そこで、情報処理装置10は、自己回帰を有するか否か、どのノード間を接続するのかといったネットワークの最適化を行う。
また、モデルの学習を行う場合、モデルの最適化手法(学習時に用いるアルゴリズム)やドロップアウト率、ノードの活性化関数やユニット数等がハイパーパラメータとして設定される。このようなハイパーパラメータが変化した場合にも、モデルの精度が変化すると考えられる。そこで、情報処理装置10は、モデルを学習する際の学習態様、すなわち、ハイパーパラメータの最適化を行う。
また、モデルのサイズ(入力層、中間層、出力層の数やノード数)が変化した場合も、モデルの精度が変化する。そこで、情報処理装置10は、モデルのサイズの最適化についても行う。
このように、情報処理装置10は、上述した各種モデルを生成する際の指標について最適化を行う。例えば、情報処理装置10は、各指標に対応する条件を予め保持しておく。なお、このような条件は、例えば、過去の学習モデルから生成された各種モデルの精度等の経験則により設定される。そして、情報処理装置10は、学習データが各条件を満たすか否かを判定し、学習データが満たす若しくは満たさない条件に予め対応付けられた指標を生成指標(若しくはその候補)として採用する。この結果、情報処理装置10は、学習データが有する特徴を精度良く学習可能な生成指標を生成することができる。
なお、上述したように、学習データから自動的に生成指標を生成し、生成指標に従ってモデルを作成する処理を自動的に行った場合、利用者は、学習データの内部を参照し、どのような分布のデータが存在するかといった判断を行わずともよい。この結果、情報処理装置10は、例えば、モデルの作成に伴ってデータサイエンティスト等が学習データの認識を行う手間を削減するとともに、学習データの認識に伴うプライバシーの毀損を防ぐことができる。
〔3-2.データ種別に応じた生成指標〕
以下、生成指標を生成するための条件の一例について説明する。まず、学習データとしてどのようなデータが採用されているかに応じた条件の一例について説明する。
例えば、学習に用いられる学習データには、整数、浮動小数点、若しくは文字列等がデータとして含まれている。このため、入力されるデータの形式に対して適切なモデルを選択した場合は、モデルの学習精度がより高くなると推定される。そこで、情報処理装置10は、学習データが整数であるか、浮動小数点であるか、若しくは文字列であるかに基いて、生成指標を生成する。
例えば、学習データが整数である場合、情報処理装置10は、学習データの連続性に基いて、生成指標を生成する。例えば、情報処理装置10は、学習データの密度が所定の第1閾値を超える場合、当該学習データが連続性を有するデータであると見做し、学習データの最大値が所定の第2閾値を上回るか否かに基いて生成指標を生成する。また、情報処理装置10は、学習データの密度が所定の第1閾値を下回る場合、当該学習データがスパースな学習データであると見做し、学習データに含まれるユニークな値の数が所定の第3閾値を上回るか否かに基いて生成指標を生成する。
より具体的な例を説明する。なお、以下の例においては、生成指標として、AutoMLによりモデルを自動的に生成するモデル生成サーバ2に対して送信するコンフィグファイルのうち、特徴関数(feature function)を選択する処理の一例について説明する。例えば、情報処理装置10は、学習データが整数である場合、その密度が所定の第1閾値を超えるか否かを判定する。例えば、情報処理装置10は、学習データに含まれる値のうちユニークな値の数を、学習データの最大値に1を加算した値で除算した値を密度として算出する。
続いて、情報処理装置10は、密度が所定の第1閾値を超える場合は、学習データが連続性を有する学習データであると判定し、学習データの最大値に1を加算した値が第2閾値を上回るか否かを判定する。そして、情報処理装置10は、学習データの最大値に1を加算した値が第2閾値を上回る場合は、特徴関数として「Categorical_colum_with_identity & embedding_column」を選択する。一方、情報処理装置10は、学習データの最大値に1を加算した値が第2閾値を下回る場合は、特徴関数として「Categorical_column_with_identity」を選択する。
一方、情報処理装置10は、密度が所定の第1閾値を下回る場合は、学習データがスパースであると判定し、学習データに含まれるユニークな値の数が所定の第3閾値を超えるか否かを判定する。そして、情報処理装置10は、学習データに含まれるユニークな値の数が所定の第3閾値を超える場合は、特徴関数として「Categorical_column_with_hash_bucket & embedding_column」を選択し、学習データに含まれるユニークな値の数が所定の第3閾値を下回る場合は、特徴関数として「Categorical_column_with_hash_bucket」を選択する。
また、情報処理装置10は、学習データが文字列である場合、学習データに含まれる文字列の種別の数に基いて、生成指標を生成する。例えば、情報処理装置10は、学習データに含まれるユニークな文字列の数(ユニークなデータの数)を計数し、計数した数が所定の第4閾値を下回る場合は、特徴関数として「categorical_column_with_vocabulary_list」若しくは/および「categorical_column_with_vocabulary_file」を選択する。また、情報処理装置10は、計数した数が所定の第4閾値よりも大きい第5閾値を下回る場合は、特徴関数として「categorical_column_with_vocabulary_file & embedding_column」を選択する。また、情報処理装置10は、計数した数が所定の第4閾値よりも大きい第5閾値を上回る場合は、特徴関数として「categorical_column_with_hash_bucket & embedding_column」を選択する。
また、情報処理装置10は、学習データが浮動小数点である場合、モデルの生成指標として、学習データをモデルに入力する入力データへの変換指標を生成する。例えば、情報処理装置10は、特徴関数として「bucketized_column」もしくは「numeric_column」を選択する。すなわち、情報処理装置10は、学習データをバケタイズ(グルーピング)し、バケットの番号を入力とするか、数値をそのまま入力するかを選択する。なお、情報処理装置10は、例えば、各バケットに対して対応付けられる数値の範囲が同程度となるように、学習データのバケタイズを行ってもよく、例えば、各バケットに分類される学習データの数が同程度となるように、各バケットに対して数値の範囲を対応付けてもよい。また、情報処理装置10は、バケットの数やバケットに対して対応付けられる数値の範囲を生成指標として選択してもよい。
また、情報処理装置10は、複数の特徴を示す学習データを取得し、モデルの生成指標として、学習データが有する特徴のうちモデルに学習させる特徴を示す生成指標を生成する。例えば、情報処理装置10は、どのラベルの学習データをモデルに入力するかを決定し、決定したラベルを示す生成指標を生成する。また、情報処理装置10は、モデルの生成指標として、学習データの種別のうちモデルに対して相関を学習させる複数の種別を示す生成指標を生成する。例えば、情報処理装置10は、モデルに対して同時に入力するラベルの組み合わせを決定し、決定した組み合わせを示す生成指標を生成する。
また、情報処理装置10は、モデルの生成指標として、モデルに入力される学習データの次元数を示す生成指標を生成する。例えば、情報処理装置10は、学習データに含まれるユニークなデータの数やモデルに入力するラベルの数、モデルに入力するラベルの数の組み合わせ、バケットの数等に応じて、モデルの入力層におけるノードの数を決定してもよい。
また、情報処理装置10は、モデルの生成指標として、学習データの特徴を学習させるモデルの種別を示す生成指標を生成する。例えば、情報処理装置10は、過去に学習対象とした学習データの密度やスパース具合、ラベルの内容、ラベルの数、ラベルの組み合わせの数等に応じて、生成するモデルの種別を決定し、決定した種別を示す生成指標を生成する。例えば、情報処理装置10は、AutoMLにおけるモデルのクラスとして「BaselineClassifier」、「LinearClassifier」、「DNNClassifier」、「DNNLinearCombinedClassifier」、「BoostedTreesClassifier」、「AdaNetClassifier」、「RNNClassifier」、「DNNResNetClassifier」、「AutoIntClassifier」等を示す生成指標を生成する。
なお、情報処理装置10は、これら各クラスのモデルの各種独立変数を示す生成指標を生成してもよい。例えば、情報処理装置10は、モデルの生成指標として、モデルが有する中間層の数若しくは各層に含まれるノードの数を示す生成指標を生成してもよい。また、情報処理装置10は、モデルの生成指標として、モデルが有するノード間の接続態様を示す生成指標やモデルの大きさを示す生成指標を生成してもよい。これらの独立変数は、学習データが有する各種の統計的な特徴が所定の条件を満たすか否かに応じて、適宜選択されることとなる。
また、情報処理装置10は、モデルの生成指標として、学習データが有する特徴をモデルに学習させる際の学習態様、すなわち、ハイパーパラメータを示す生成指標を生成してもよい。例えば、情報処理装置10は、AutoMLにおける学習態様の設定において、「stop_if_no_decrease_hook」、「stop_if_no_increase_hook」、「stop_if_higher_hook」、もしくは「stop_if_lower_hook」を示す生成指標を生成してもよい。
すなわち、情報処理装置10は、学習に用いる学習データのラベルやデータそのものの特徴に基づいて、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を示す生成指標を生成する。より具体的には、情報処理装置10は、AutoMLにおけるモデルの生成を制御するためのコンフィグファイルを生成する。
〔3-3.生成指標を決定する順序について〕
ここで、情報処理装置10は、上述した各種の指標の最適化を同時並行的に行ってもよく、適宜順序だてて実行してもよい。また、情報処理装置10は、各指標を最適化する順序を変更可能としてもよい。すなわち、情報処理装置10は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付け、受け付けた順序で、各指標を決定してもよい。
例えば、情報処理装置10は、生成指標の生成を開始した場合、入力する学習データの特徴や、どのような態様で学習データを入力するかといった入力素性の最適化を行い、続いて、どの特徴の組み合わせの特徴を学習させるかという入力クロス素性の最適化を行う。続いて、情報処理装置10は、モデルの選択を行うとともに、モデル構造の最適化を行う。その後、情報処理装置10は、ハイパーパラメータの最適化を行い、生成指標の生成を終了する。
ここで、情報処理装置10は、入力素性最適化において、入力する学習データの特徴や入力態様といった各種入力素性の選択や修正、遺伝的アルゴリズムを用いた新たな入力素性の選択を行うことで、入力素性を繰り返し最適化してもよい。同様に、情報処理装置10は、入力クロス素性最適化において、入力クロス素性を繰り返し最適化してもよく、モデル選択およびモデル構造の最適化を繰り返し実行してもよい。また、情報処理装置10は、ハイパーパラメータの最適化を繰り返し実行してもよい。また、情報処理装置10は、入力素性最適化、入力クロス素性最適化、モデル選択、モデル構造最適化、およびハイパーパラメータの最適化という一連の処理を繰り返し実行し、各指標の最適化を行ってもよい。
また、情報処理装置10は、例えば、ハイパーパラメータの最適化を行ってから、モデル選択やモデル構造最適化を行ってもよく、モデル選択やモデル構造最適化の後に、入力素性の最適化や入力クロス素性の最適化を行ってもよい。また、情報処理装置10は、例えば、入力素性最適化を繰り返し実行し、その後入力クロス素性最適化を繰り返し行う。その後、情報処理装置10は、入力素性最適化と入力クロス素性最適化を繰り返し実行してもよい。このように、どの指標をどの順番で最適化するか、最適化においてどの最適化処理を繰り返し実行するかについては、任意の設定が採用可能となる。
〔3-4.情報処理装置が実現するモデル生成の流れについて〕
続いて、図2を用いて、情報処理装置10を用いたモデル生成の流れの一例について説明する。図2は、実施形態における情報処理装置を用いたモデル生成の流れの一例を説明する図である。例えば、情報処理装置10は、学習データと各学習データのラベルとを受付ける。なお、情報処理装置10は、学習データの指定と共に、ラベルを受付けてもよい。
このような場合、情報処理装置10は、データの分析を行い、分析結果に応じたデータ分割を行う。例えば、情報処理装置10は、学習データを、モデルの学習に用いるトレーニング用データと、モデルの評価(すなわち、精度の測定)に用いる評価用データとに分割する。なお、情報処理装置10は、各種テスト用のデータをさらに分割してもよい。なお、このような学習データをトレーニング用データと評価用データとに分割する処理は、各種任意の公知技術が採用可能である。
また、情報処理装置10は、学習データを用いて、上述した各種の生成指標を生成する。例えば、情報処理装置10は、AutoMLにおいて生成されるモデルやモデルの学習を定義するコンフィグファイルを生成する。このようなコンフィグファイルにおいては、AutoMLで用いられる各種の関数がそのまま生成指標を示す情報として格納されることとなる。そして、情報処理装置10は、トレーニング用データと生成指標とをモデル生成サーバ2に提供することで、モデルの生成を行う。
ここで、情報処理装置10は、利用者によるモデルの評価と、モデルの自動生成とを繰り返し行うことで、生成指標の最適化、ひいてはモデルの最適化を実現してもよい。例えば、情報処理装置10は、入力する特徴の最適化(入力素性や入力クロス素性の最適化)、ハイパーパラメータの最適化、および生成するモデルの最適化を行い、最適化された生成指標に従って自動でのモデル生成を行う。そして、情報処理装置10は、生成したモデルを利用者に提供する。
一方、利用者は、自動生成されたモデルのトレーニングや評価、テストを行い、モデルの分析や提供を行う。そして、利用者は、生成された生成指標を修正することで、再度新たなモデルを自動生成させ、評価やテスト等を行う。このような処理を繰り返し実行することで、複雑な処理を実行することなく、試行錯誤しながらモデルの精度を向上させる処理を実現することができる。
〔4.情報処理装置の構成〕
次に、図3を用いて、実施形態に係る情報処理装置10の機能構成の一例について説明する。図3は、実施形態に係る情報処理装置の構成例を示す図である。図3に示すように、情報処理装置10は、通信部20と、記憶部30と、制御部40とを有する。
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、モデル生成サーバ2や端末装置3との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、学習データデータベース31およびモデル生成用データベース32を有する。
学習データデータベース31は、学習に用いるデータに関する各種情報を記憶する。学習データデータベース31には、モデルの学習に用いる学習データのデータセットが格納される。図4は、実施形態に係る学習データデータベースに登録される情報の一例を示す図である。図4の例では、学習データデータベース31は、「データセットID」、「データID」、「データ」といった項目が含まれる。
「データセットID」は、データセットを識別するための識別情報を示す。「データID」は、各データを識別するための識別情報を示す。また、「データ」は、データIDにより識別されるデータを示す。例えば、図4の例では、各学習データを識別するデータIDに対して、対応するデータ(学習データ)が対応付けられて登録されている。
図4の例では、データセットID「DS1」により識別されるデータセット(データセットDS1)には、データID「DID1」、「DID2」、「DID3」等により識別される複数のデータ「DT1」、「DT2」、「DT3」等が含まれることを示す。なお、図4では、データを「DT1」、「DT2」、「DT3」等といった抽象的な文字列で示すが、データとしては、例えば各種整数、浮動小数点、もしくは文字列等の任意の形式の情報が登録されることとなる。
なお、図示は省略するが、学習データデータベース31は、各データに対応するラベル(正解情報)を各データに対応付けて記憶してもよい。また、例えば、複数のデータを含むデータ群に1つのラベルを対応付けて記憶してもよい。この場合、複数のデータを含むデータ群がモデルに入力されるデータ(入力データ)に対応する。例えば、ラベルとしては、数値や文字列等の任意の形式の情報が用いられる。
なお、学習データデータベース31は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、学習データデータベース31は、各データが学習処理に用いるデータ(トレーニング用データ)であるか、評価に用いるデータ(評価用データ)であるか等を特定可能に記憶してもよい。例えば、学習データデータベース31は、各データがトレーニング用データ及び評価用データのいずれであるかを特定する情報(フラグ等)を、各データに対応付けて格納してもよい。
モデル生成用データベース32は、学習データ以外でモデルの生成に用いられ各種の情報が記憶される。モデル生成用データベース32には、生成するモデルに関する各種の情報が格納される。例えば、モデル生成用データベース32には、ドロップアウト率に応じたモデルのサイズを決定するために用いる情報が格納される。例えば、モデル生成用データベース32には、ドロップアウト率とユニットサイズとの関係を示す関数(例えば図14の関数FC11)が格納される。
例えば、モデル生成用データベース32には、生成するモデルに関する各種のパラメータ等の設定値が格納される。モデル生成用データベース32には、生成するモデルに含まれる部分モデルの数、及び各部分モデルに関する情報等、モデルの構造を示す情報が記憶される。
例えば、モデル生成用データベース32には、各部分モデルのタイプを示す情報が記憶される。例えば、モデル生成用データベース32には、各部分モデルが隠れ層を含むか否かを示す情報が記憶される。例えば、モデル生成用データベース32には、部分モデルが隠れ層を含まない第1タイプの部分モデルである場合、第1タイプを示す情報を、その部分モデルに対応付けて記憶する。例えば、モデル生成用データベース32には、部分モデルが隠れ層を含む第2タイプの部分モデルである場合、第2タイプを示す情報を、その部分モデルに対応付けて記憶する。
例えば、モデル生成用データベース32には、各部分モデルが有する隠れ層のサイズを示す情報が記憶される。例えば、モデル生成用データベース32には、各部分モデルに、その部分モデルが有する隠れ層のユニットサイズ(ノード数等)を対応付けて記憶する。
なお、モデル生成用データベース32は、上記に限らず、モデルの生成に用いる情報であれば種々のモデル情報を記憶してもよい。
図3に戻り、説明を続ける。制御部40は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置10内部の記憶装置に記憶されている各種プログラム(例えばモデルを生成する処理を実行する生成プログラム、情報処理プログラム等、)がRAMを作業領域として実行されることにより実現される。情報処理プログラムは、コンピュータを、第1の部分モデルと第2の部分モデルとを含むモデルとして動作させるために用いられる。例えば、情報処理プログラムは、学習データを用いて、第1の部分モデルを第1のドロップアウト率に基づくドロップアウトにより学習し、第2の部分モデルを第1のドロップアウト率とは異なる第2のドロップアウト率に基づくドロップアウトにより学習することにより、学習が行われたモデルとしてコンピュータ(例えば情報処理装置10)を動作させる。また、制御部40は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。図3に示すように、制御部40は、取得部41、決定部42、受付部43、生成部44、および提供部45を有する。
取得部41は、記憶部30から情報を取得する。取得部41は、モデルの学習に用いる学習データのデータセットを取得する。取得部41は、モデルの学習に用いる学習データを取得する。例えば、取得部41は、端末装置3から、学習データとして用いる各種のデータと、各種データに付与されるラベルを受付けると、受付けたデータとラベルとを学習データとして学習データデータベース31に登録する。なお、取得部41は、あらかじめ学習データデータベース31に登録されたデータのうち、モデルの学習に用いる学習データの学習データIDやラベルの指定を受付けてもよい。
取得部41は、第1の部分モデルと第2の部分モデルとを含むモデルの学習に用いる学習データを取得する。取得部41は、ドロップアウト率を示す情報を取得する。取得部41は、第1のドロップアウト率を示す情報を取得する。取得部41は、第2のドロップアウト率を示す情報を取得する。
決定部42は、学習態様を決定する。決定部42は、ドロップアウト率を決定する。決定部42は、各部分モデルのドロップアウト率を決定する。決定部42は、モデルのサイズを決定する。決定部42は、第2タイプの部分モデルに含まれる隠れ層のユニットサイズを決定する。
受付部43は、利用者に対して提示した生成指標の修正を受付ける。また、受付部43は、モデルに学習させる学習データの特徴、生成するモデルの態様、および学習データが有する特徴をモデルに学習させる際の学習態様を決定する順番の指定を利用者から受け付ける。
生成部44は、決定部42による決定に応じて各種情報を生成する。また、生成部44は、受付部43により受け付けられた指示に応じて各種情報を生成する。例えば、生成部44は、モデルの生成指標を生成してもよい。
生成部44は、学習データを用いて、第1の部分モデルを第1のドロップアウト率に基づく第1のドロップアウトにより学習し、第2の部分モデルを第1のドロップアウト率とは異なる第2のドロップアウト率に基づく第2のドロップアウトにより学習することにより、モデルを生成する。生成部44は、第1の部分モデルよりも層の数が多い第2の部分モデルを含むモデルを生成する。生成部44は、隠れ層を有する第2の部分モデルを含むモデルを生成する。
生成部44は、学習データが入力される入力層を含み、入力層からの出力が第1の部分モデル及び第2の部分モデルの各々に入力されるモデルを生成する。生成部44は、入力をエンベディングするエンベディング層を含むモデルを生成する。生成部44は、入力層からの入力をエンベディングする第1のエンベディング層を有する第1の部分モデルを含むモデルを生成する。生成部44は、入力層からの入力をエンベディングする第2のエンベディング層を有する第2の部分モデルを含むモデルを生成する。
生成部44は、第1の部分モデルからの出力と第2の部分モデルからの出力とを合成する合成層を含むモデルを生成する。生成部44は、合成層へ出力する第1の出力層を有する第1の部分モデルを含むモデルを生成する。生成部44は、合成層へ出力する第2の出力層を有する第2の部分モデルを含むモデルを生成する。生成部44は、ソフトマックス層を有する合成層を含むモデルを生成する。生成部44は、ソフトマックス層の前に第1の部分モデルの出力及び第2の部分モデルの出力の合成処理を行う合成層を含むモデルを生成する。
生成部44は、ドロップアウト率でのドロップアウトの後にバッチノーマライゼーションを行って生成することにより、モデルを生成する。生成部44は、第1のドロップアウトの後にバッチノーマライゼーションを行って学習することにより、モデルを生成する。生成部44は、第2のドロップアウトの後にバッチノーマライゼーションを行って学習することにより、モデルを生成する。
生成部44は、ドロップアウト率に基づくサイズを有するモデルを生成する。生成部44は、第1のドロップアウト率に基づくサイズを有する第1の部分モデルを含むモデルを生成する。生成部44は、第2のドロップアウト率に基づくサイズを有する第2の部分モデルを含むモデルを生成する。生成部44は、第2のドロップアウト率に基づく隠れ層を含む第2の部分モデルを含むモデルを生成する。生成部44は、第2のドロップアウト率に基づいて決定されるサイズの隠れ層を含む第2の部分モデルを含むモデルを生成する。
生成部44は、ドロップアウト率に基づいて決定されるサイズの隠れ層を含むモデルを生成する。生成部44は、ドロップアウト率と隠れ層のサイズとの相関性に基づいて決定されるサイズの隠れ層を含むモデルを生成する。生成部44は、ドロップアウト率と隠れ層のサイズとの正の相関に基づいてモデルを生成する。生成部44は、ドロップアウト率と隠れ層のサイズとを変数とする関数を用いて決定されるサイズの隠れ層を含むモデルを生成する。
生成部44は、関数を基に特定されるドロップアウト率に対応する隠れ層のサイズである対象サイズに基づいて、モデルを生成する。生成部44は、対象サイズから所定範囲内のサイズの隠れ層を含むモデルを生成する。生成部44は、対象サイズから所定範囲内の複数のサイズのうち、最も精度が高いサイズの隠れ層を含むモデルを生成する。生成部44は、対象サイズから所定範囲内の複数のサイズの各々に対応する複数のモデルを学習し、複数のモデルのうち、最も精度が高い一のモデルをモデルとして生成する。
生成部44は、モデルの生成に用いるデータを外部のモデル生成サーバ2に送信することにより、モデル生成サーバ2にモデルの学習を要求し、モデル生成サーバ2からモデル生成サーバ2が学習したモデルを受信することにより、モデルを生成する。
例えば、生成部44は、学習データデータベース31に登録されたデータを用いて、モデルを生成する。生成部44は、トレーニング用データとして用いられる各データとラベルとに基づいて、モデルを生成する。生成部44は、トレーニング用データを入力した場合にモデルが出力する出力結果と、ラベルとが一致するように学習を行うことにより、モデルを生成する。例えば、生成部44は、トレーニング用データとして用いられる各データとラベルとをモデル生成サーバ2に送信することにより、モデル生成サーバ2にモデルを学習させることにより、モデルを生成する。
例えば、生成部44は、学習データデータベース31に登録されたデータを用いて、モデルの精度を測定する。生成部44は、評価用データとして用いられる各データとラベルとに基づいて、モデルの精度を測定する。生成部44は、評価用データを入力した場合にモデルが出力する出力結果と、ラベルとを比較した結果を収集することにより、モデルの精度を測定する。
提供部45は、生成されたモデルを利用者に提供する。提供部45は、利用者の端末装置3を複数の部分モデルを含むモデル(例えばモデルM1)として動作させる情報処理プログラムを利用者の端末装置3に送信する。例えば、提供部45は、生成部44により生成されたモデルの精度が所定の閾値を超えた場合は、そのモデルとともに、モデルと対応する生成指標を端末装置3へと送信する。この結果、利用者は、モデルの評価や試用を行うとともに、生成指標の修正を行うことができる。
提供部45は、生成部44により生成された指標を利用者に提示する。例えば、提供部45は、生成指標として生成されたAutoMLのコンフィグファイルを端末装置3に送信する。また、提供部45は、生成指標が生成される度に生成指標を利用者に提示してもよく、例えば、精度が所定の閾値を超えたモデルと対応する生成指標のみを利用者に提示してもよい。
〔5.情報処理システムの処理フロー〕
次に、図5及び図6を用いて、情報処理装置10が実行する処理の手順について説明する。図5及び図6は、実施形態に係る情報処理の流れの一例を示すフローチャートである。また、以下では、情報処理システム1が処理を行う場合を一例として説明するが、以下に示す処理は、情報処理システム1に含まれる情報処理装置10、モデル生成サーバ2、端末装置3等、情報処理システム1に含まれるいずれの装置が行ってもよい。
情報処理システム1における部分モデルごとにドロップアウト率を設定してモデルを生成する処理の流れの概要について、図5を用いて説明する。図5では、情報処理システム1は、第1の部分モデルと第2の部分モデルとを含むモデルの学習に用いる学習データを取得する(ステップS101)。そして、情報処理システム1は、学習データを用いて、第1の部分モデルを第1のドロップアウト率に基づく第1のドロップアウトにより学習し、第2の部分モデルを第1のドロップアウト率とは異なる第2のドロップアウト率に基づく第2のドロップアウトにより学習することにより、モデルを生成する(ステップS102)。
次に、情報処理システム1において、ドロップアウト率に応じたサイズに設定してモデルを生成する処理の流れの概要について図6を用いて説明する。例えば、情報処理システム1では、第2タイプの部分モデルについて、ドロップアウト率に応じた隠れ層のサイズに設定して、モデルを生成する。図6では、情報処理システム1は、モデルの学習におけるドロップアウト率を示す情報を取得する(ステップS201)。例えば、情報処理システム1は、モデルの学習における第2タイプの部分モデルのドロップアウト率を示す情報を取得する。そして、情報処理システム1は、ドロップアウト率に基づくサイズを有するモデルを生成する(ステップS202)。例えば、情報処理システム1は、ドロップアウト率に基づいて第2タイプの部分モデルの隠れ層のユニットサイズを決定し、決定したユニットサイズの第2タイプの部分モデルを含むモデルを生成する。
なお、情報処理システム1は、ドロップアウト率に基づいて第1タイプの部分モデルのサイズを決定してもよい。情報処理システム1は、ドロップアウト率に基づいて第1タイプの部分モデルのエンベディング層のユニットサイズを決定してもよい。例えば、情報処理システム1は、ドロップアウト率が大きい程、第1タイプの部分モデルのエンベディング層のユニットサイズを大きくしてもよい。情報処理システム1は、ドロップアウト率とエンベディング層のユニットサイズとの関係を示す関数を用いて、第1タイプの部分モデルのエンベディング層のユニットサイズを決定してもよい。例えば、情報処理装置10は、モデルに含まれる第1タイプの部分モデルのドロップアウト率を示す情報を取得し、その情報を基に第1タイプの部分モデルのエンベディング層のユニットサイズを決定してもよい。同様に、例えば、情報処理システム1は、ドロップアウト率に基づいて第1タイプの部分モデルのエンベディング層のユニットサイズを決定してもよい。
〔6.情報処理システムの処理例〕
ここで、上述した図5及び図6の処理を情報処理システム1が行う一例を説明する。情報処理装置10は、学習データを取得する。情報処理装置10は、モデルの生成に用いるパラメータ等の情報を取得する。例えば、情報処理装置10は、モデルに含まれる第1タイプの部分モデルのドロップアウト率を示す情報、第2タイプの部分モデルのドロップアウト率を示す情報を取得する。なお、情報処理装置10は、第1タイプの部分モデルが複数ある場合、第1タイプの部分モデルの各々についてのドロップアウト率を示す情報を取得する。また、情報処理装置10は、第2タイプの部分モデルが複数ある場合、第2タイプの部分モデルの各々についてのドロップアウト率を示す情報を取得する。
また、情報処理装置10は、第2タイプの部分モデルについて、ドロップアウト率に基づいて隠れ層のユニットサイズ(ノード数)を決定する。例えば、情報処理装置10は、第2タイプの部分モデルについて、ドロップアウト率とユニットサイズとの関係を示す関数(例えば図14の関数FC11)を用いて、隠れ層のユニットサイズを決定する。
なお、情報処理システム1は、関数(例えば図14の関数FC11)に基づいて、隠れ層のユニットサイズを調節しながらモデルの学習を繰り返し、精度が高くなる隠れ層のユニットサイズを決定してもよい。
情報処理装置10は、モデルを学習するモデル生成サーバ2へモデルの生成に用いる情報を送信する。例えば、情報処理装置10は、学習データ、モデルの構造を示す情報、各部分モデルのドロップアウト率を示す情報をモデル生成サーバ2へ送信する。
情報処理装置10から情報を受信したモデル生成サーバ2は、学習処理によりモデルを生成する。そして、モデル生成サーバ2は、生成したモデルを情報処理装置10へ送信する。このように、本願でいう「モデルを生成する」ことには、自装置でモデルを学習する場合に限らず、他の装置にモデルの生成に必要な情報を提供することで、他の装置にモデルの生成し指示し、他の装置が学習したモデルを受信することを含む概念である。情報処理システム1においては、情報処理装置10は、モデルを学習するモデル生成サーバ2へモデルの生成に用いる情報を送信し、モデル生成サーバ2が生成したモデルを取得することにより、モデルを生成する。このように、情報処理装置10は、他の装置へモデルの生成に用いる情報を送信することによりモデルの生成を要求し、要求を受けた他の装置モデルにモデルを生成させることにより、モデルを生成する。
〔7.モデル〕
ここから、モデルについて説明する。以下では、情報処理システム1において生成されるモデルの構造及び学習態様等、モデルに関する各点について説明する。
〔7-1.モデルの構造例〕
まず、生成するモデルの構造の一例について、図7を用いて説明する。情報処理システム1は、図7に示すようなモデルM1を生成する。図7は、実施形態に係るモデルの構造の一例を示す図である。
図7において「Input Layer」と表記された入力層EL1は、入力情報が入力される層を示す。入力層EL1には、図7において「Input」と表記された情報(入力情報)が入力される。入力層EL1の後には、第1タイプの部分モデルである部分モデルPM1と、第2タイプの部分モデルである部分モデルPM2との2つの部分モデルが並列に配置される。図7に示すように、複数の部分モデルは並列に接続される。
部分モデルPM1は、図7において「Embedding」と表記されたエンベディング層EL11を含む。エンベディング層EL11は、入力層EL1からの入力をエンベディングする第1のエンベディング層である。エンベディング層EL11は、入力層EL1から取得した情報をベクトル化(エンベディング)する。エンベディング層EL11は、部分モデルPM1の入力層に対応する。
また、部分モデルPM1は、図7において「Logits Layer」と表記されたロジット層EL12を含む。ロジット層EL12は、部分モデルPM1の最後の層であり、後述するソフトマックス層EL32を含む合成層LY1へ出力する情報(値)を生成する。ロジット層EL12は、部分モデルPM1の出力層に対応する。例えば、エンベディング層EL11とロジット層EL12とは、直接全結合で接続される。
図7においてエンベディング層EL11とロジット層EL12との間に示すドロップアウトPS11及びバッチノーマライゼーションPS12は、部分モデルPM1を対象とする学習態様を示す。図7において「Dropout」と表記されたドロップアウトPS11は、部分モデルPM1を対象として行うドロップアウト処理である第1のドロップアウトを示す。ドロップアウトPS11は、学習時においてエンベディング層EL11とロジット層EL12とを対象として行われる。
また、バッチノーマライゼーションPS12は、ドロップアウトPS11の後に行われる。例えば、バッチノーマライゼーションPS12は、ドロップアウトPS11の対象となった層の後に行われる。すなわち、バッチノーマライゼーションPS12は、ドロップアウトPS11におけるドロップアウトでランダムにアクティベートされたもの(ノード)を対象に行われる。これにより、モデルの学習時のバックプロパゲーション等において、アクティベートされていないノード等、学習対象になっていないものがバッチノーマライゼーションの対象となることを抑制することができる。すなわち、モデルM1の学習時のバックプロパゲーション等において、ドロップアウトPS11によりアクティベートされていないノード等、学習対象になっていないものがバッチノーマライゼーションPS12の対象となることを抑制することができる。
部分モデルPM2は、図7において「Embedding」と表記されたエンベディング層EL21を含む。エンベディング層EL21は、入力層EL1からの入力をエンベディングする第2のエンベディング層である。エンベディング層EL21は、入力層EL1から取得した情報をベクトル化(エンベディング)する。エンベディング層EL21は、部分モデルPM2の入力層に対応する。
部分モデルPM2は、図7において「Hidden Layer」と表記された隠れ層EL22を含む。隠れ層EL22は、エンベディング層EL21とロジット層EL23との間に配置される隠れ層(中間層)である。図7に示すように、エンベディング層EL21と隠れ層EL22とが接続され、エンベディング層EL21の出力が隠れ層EL22に入力される。部分モデルPM2は、部分モデルPM1よりも層の数が多く設定される。
また、部分モデルPM2は、図7において「Logits Layer」と表記されたロジット層EL23を含む。ロジット層EL23は、部分モデルPM2の最後の層であり、後述するソフトマックス層EL32を含む合成層LY1へ出力する情報(値)を生成する。ロジット層EL23は、部分モデルPM2の出力層に対応する。図7に示すように、隠れ層EL22とロジット層EL23とが接続され、隠れ層EL22の出力がロジット層EL23に入力される。
図7において隠れ層EL22とロジット層EL23との間に示すドロップアウトPS21及びバッチノーマライゼーションPS22は、部分モデルPM2を対象とする学習態様を示す。図7において「Dropout」と表記されたドロップアウトPS21は、部分モデルPM2を対象として行うドロップアウト処理である第2のドロップアウトを示す。ドロップアウトPS21は、学習時において隠れ層EL22とロジット層EL23とを対象として行われる。
例えば、バッチノーマライゼーションPS22は、ドロップアウトPS21の対象となった層の後に行われる。すなわち、バッチノーマライゼーションPS22は、ドロップアウトPS21におけるドロップアウトでランダムにアクティベートされたもの(ノード)を対象に行われる。これにより、モデルの学習時のバックプロパゲーション等において、アクティベートされていないノード等、学習対象になっていないものがバッチノーマライゼーションの対象となることを抑制することができる。すなわち、モデルM1の学習時のバックプロパゲーション等において、ドロップアウトPS21によりアクティベートされていないノード等、学習対象になっていないものがバッチノーマライゼーションPS22の対象となることを抑制することができる。なお、隠れ層EL22、ドロップアウトPS21、バッチノーマライゼーションPS22の順番は、データ種別や収束時間で適宜変更してもよい。
部分モデルPM1の出力及び部分モデルPM2の出力は、合成層LY1へ入力される。合成層LY1は、部分モデルPM1の出力及び部分モデルPM2の出力を合成する合成処理層EL31とソフトマックス層EL32とを含む。合成層LY1は、モデルM1の出力層であってもよい。
合成処理層EL31は、部分モデルPM1の出力と部分モデルPM2の出力との平均を算出する。例えば、合成処理層EL31は、部分モデルPM1の各出力と部分モデルPM2の出力において対応する各出力との各々の平均を算出することにより、部分モデルPM1の各出力と部分モデルPM2の出力を合成した情報(合成出力)を生成する。
図7において「Softmax Layer」と表記されたソフトマックス層EL32は、ソフトマックスの処理を行う。ソフトマックス層EL32は、合成処理層EL31が生成した合成出力を対象として、ソフトマックスの処理を行う。ソフトマックス層EL32は、出力の総和が100%(1)になるように各出力の値を変換する。
なお、上記構成は一例に過ぎず、複数の部分モデルが含まれれば、モデルは任意の構成が採用可能である。例えば、図7では、部分モデルが1個の第1タイプの部分モデルと1個の第2タイプの部分モデルとの2個である場合を示したが、部分モデルの数は2個に限られない。例えば、モデルには、2個以上の第2タイプの部分モデルが含まれてもよいし、2個以上の第1タイプの部分モデルが含まれてもよい。
上述のように、ドロップアウト率は部分モデルごとに設定されるが、情報処理システム1は、学習時は1つのモデルM1として学習する。情報処理システム1は、全体としてバックプロパゲーションを行うことにより、モデルM1のパラメータ(重み)を更新し、モデルM1を生成する。例えば、情報処理システム1は、重み(Weight)の初期化関数(Initializer)を用いて、Weightの初期値を設定する。なお、Weightの初期化関数のランダムシード(例えばtf_random_seed等)は最適化される。例えば、Weightの初期化関数のランダムシードの最適化は、NTK(Neural Tangent Kernel)理論におけるパラメータ(例えばk(w0))を小さくできるWeight初期値を見つけることにより行われてもよい。Weightの初期化関数のランダムシードの最適化は、上記に限らず、任意の手法により行われてもよい。例えば、情報処理システム1は、最適化されたランダムシードを用いたWeightの初期化関数により、Weightの初期値を設定する。このように、情報処理システム1は、ランダムシードが最適化されたWeightの初期化関数を用いてWeightの初期値を設定することにより、生成するモデルの精度を向上させることができる。
例えば、情報処理システム1は、部分モデルPM1についてドロップアウトPS11を行った状態で学習処理を行い、モデルM1のパラメータ(重み)を更新する。情報処理システム1は、部分モデルPM1についてドロップアウトPS11を行った状態で学習処理を行い、全体としてバックプロパゲーションを行うことにより、モデルM1のパラメータ(重み)を更新し、モデルM1を生成する。この場合、例えば、情報処理システム1は、部分モデルPM2についてドロップアウトPS21を行わない状態のネットワーク構成においてバッチノーマライゼーションPS22を行い、モデルM1のパラメータ(重み)を更新してもよい。
また、例えば、情報処理システム1は、部分モデルPM2についてドロップアウトPS21を行った状態で学習処理を行い、モデルM1のパラメータ(重み)を更新する。この場合、情報処理システム1は、部分モデルPM2についてドロップアウトPS21を行った状態で学習処理を行い、全体としてバックプロパゲーションを行うことにより、モデルM1のパラメータ(重み)を更新し、モデルM1を生成する。例えば、情報処理システム1は、部分モデルPM1についてドロップアウトPS11を行わない状態のネットワーク構成においてバッチノーマライゼーションPS12を行い、モデルM1のパラメータ(重み)を更新してもよい。
次に、設定されるパラメータの一例について、図8を用いて説明する。情報処理システム1は、図8に示すようなパラメータを基にモデルM1を生成する。図8は、実施形態に係るパラメータの一例を示す図である。例えば、図8に示すパラメータは、図15に示すモデルM1の生成におけるパラメータに対応する。
このように、情報処理システム1は、各部分モデルPM1、PM2について、個別にドロップアウトを行い、1つのモデルM1として学習してもよい。また、情報処理システム1は、部分モデルPM1、PM2の両方についてドロップアウトを行った状態で、1つのモデルM1として学習してもよい。情報処理システム1は、部分モデルPM1、PM2の両方についてドロップアウトを行った状態で、全体としてバックプロパゲーションを行うことにより、モデルM1のパラメータ(重み)を更新し、モデルM1を生成してもよい。
図8は、2つの部分モデルを含むモデル構成が指定された場合を示す。図8での1つ目の部分モデルは、「hidden_units」が「-1」であり、隠れ層を含まない部分モデルであることを示す。すなわち、図8での1つ目の部分モデルは、第1タイプの部分モデルであることを示す。また、図8での1つ目の部分モデルのドロップアウト率は、「0.7021」に設定されたことを示す。
また、図8での2つ目の部分モデルは、「hidden_units」が「1519」であり、隠れ層のユニットサイズ(ノード数)が1519に指定された部分モデルであることを示す。すなわち、図8での2つ目の部分モデルは、第2タイプの部分モデルであることを示す。また、図8での2つ目の部分モデルのドロップアウト率は、「0.6257」に設定されたことを示す。
〔7-2.ドロップアウト〕
ここで、図7のドロップアウトPS11やドロップアウトPS12での処理で行われるドロップアウトの概要について説明する。図9は、実施形態に係るドロップアウトの概念を示す図である。
図9に示すモデルネットワークNW1は、ドロップアウトが行われる前のモデルのネットワークの一部を示す。なお、図9では説明のため、全結合で接続された場合を示すが、モデルのネットワーク構成については全結合に限られない。モデルネットワークNW1中の各円が、ユニット(ノード)を示し、線で接続された各円が結合(接続)されていることを示す。図9では、各々が5個のノードを含む4つの層を図示している。すなわち、図9では、モデルネットワークNW1中の20個のノードを図示し、縦方向に沿って各層の5個のノードが配置され、横方向に各層が並べられた状態を示す。
図9に示すモデルネットワークNW2は、ドロップアウトが行われた状態のモデルのネットワークの一部を示す。図9では、ドロップアウト率が0.5に設定され、モデルネットワークNW1を含むモデルにドロップアウトが実行される(ステップS21)。
モデルネットワークNW2中の20個のノードのうち、点線の円が、ドロップアウトにより無効にされたノード、すなわちアクティベートされていないノードを示す。図9では、ドロップアウト率が0.5であるため、20個のノードのうち、半分の10個のノードが無効にされた状態を示す。また、モデルネットワークNW2中の20個のノードのうち、実線の円、すなわちモデルネットワークNW1から変化がない円が、ドロップアウトにより無効にされていないノード、すなわちアクティベートされたノードを示す。
このように、ドロップアウトを用いた学習態様では、ドロップアウトによりいくつかのノードを無効した上で学習が行われる。ドロップアウトを用いた学習態様では、所定のサイクルで、無効にするノードを変更することにより、多くのノードを無効にして学習を行うことを繰り返す。
なお、ドロップアウトの処理については、ニューラルネットワークの学習において用いられる処理(技術)であり、詳細な説明は省略する。また、以下に示す知見等においては、ドロップアウト率を0.5よりも大きい値に設定することで、精度の改善が得られるがこの点については後述する。
〔7-3.バッチノーマライゼーション〕
次に、図7のバッチノーマライゼーションPS12やバッチノーマライゼーションPS22で行われるバッチノーマライゼーションの概要について説明する。図10は、実施形態に係るバッチノーマライゼーションの概念を示す図である。図10の全体像BN1は、バッチノーマライゼーションの概要を示す。図10中のアルゴリズムAL1は、バッチノーマライゼーションに関するアルゴリズムを示す。図10中の関数FC1は、バッチノーマライゼーションを適用するための関数を示す。
関数FC1は、パラメータ「scale」、「bias」を用いて、入力(すなわち、前の層の出力)の正規化を行う関数の一例を示す。関数FC1中の矢印(←)の左側が、正規化後の値を示し、関数FC1中の矢印(←)の右側が、正規化前の値にパラメータ「scale」を乗算し、パラメータ「bias」を加算することにより算出される。このように、図10の例では、パラメータ「scale」、「bias」により正規化される。具体的には、関数FC1により、正規化前の値にパラメータ「scale」の値が乗算され、その乗算結果にパラメータ「bias」の値が加算されることにより正規化される。
図10の例では、パラメータ「scale」、「bias」の上限値及び下限値は、コードCD1により規定される。パラメータ「scale」の値は、コードCD1と、関数FC2により決定される。例えば、関数FC2は、「scale_min」を下限、「scale_max」を上限とする範囲の乱数を生成する関数である。
また、パラメータ「bias」の値は、コードCD1と、関数FC3により決定される。例えば、関数FC3は、「shift_min」を下限、「shift_max」を上限とする範囲の乱数を生成する関数である。
図10の例では、関数FC1を用いてバッチノーマライゼーションが行われる。例えば、情報処理システム1は、ドロップアウトPS11の対象となった層の後にバッチノーマライゼーションPS12を実行する。また、情報処理システム1は、ドロップアウトPS21の対象となった層の後にバッチノーマライゼーションPS22を実行する。これにより、情報処理システム1は、モデルの学習時のバックプロパゲーション等において、アクティベートされていないノード等、学習対象になっていないものがバッチノーマライゼーションの対象となることを抑制することができる。
例えば、モデル生成サーバ2がバッチノーマライゼーションの指定を受け付けるためのAPI(Application Programming Interface)が提供されている場合、情報処理装置10は、そのAPIを用いて、モデル生成サーバ2がバッチノーマライゼーションの実行を指示してもよい。
〔8.知見及び実験結果について〕
ここから、上述した処理により生成したモデルを基に得た知見及び実験結果を示す。
〔8-1.第1の知見〕
まず、図11を用いて、第1の知見について説明する。図11は、第1の知見に関するグラフを示す図である。具体的には、図11のグラフRS1の横軸がドロップアウト率、縦軸が精度を示す。第1の知見は、実験(測定)により、ドロップアウト率と精度との関係について得られた知見を示す。
例えば、第1の知見では、ユーザの行動に応じて、お勧めの宿泊施設をレコメンドするモデル(以下「対象モデル」ともいう)を生成し、そのモデル(対象モデル)の精度を測定した場合の知見を示す。ここで、対象モデルは、ユーザの行動データが入力された場合、例えば数万件等の多数の対象となる宿泊施設(「対象宿泊施設」ともいう)毎のスコアを出力するモデルである。
図11では、モデルの精度の基準となる指標が「オフライン指標#2」である場合を示す。図11に示す実験結果は、オフライン指標#2により、ユーザの行動データをモデルに入力し、そのモデルが出力したスコアの高い方から順に順位を付した場合に、ユーザが実際に閲覧した宿泊施設の最高順位の逆数の平均をとったものである。すなわち、オフライン指標#2は、モデルが出力したスコアの高い方から順に並んだ一覧において、最初に現れたユーザが実際に閲覧した宿泊施設の順位の逆数の平均をとったものである。例えば、最初に現れたユーザが実際に閲覧した宿泊施設の順位が「2」である場合、「0.5(=1/2)」となる。
図11のグラフRS1は、ドロップアウト率と精度との間には高い相関性があることを示す。図11のグラフRS1では、例えばドロップアウト率が0.5から0.9の間においては、ドロップアウト率と精度との間にはグラフRS1中に点線で示すように、正の相関があることが示された。
また、図11は、ドロップアウト率を固定し、隠れ層のユニットサイズを調節することにより得られた結果である。これにより、ドロップアウト率を大きくしながら隠れ層のユニットサイズを調節することで、モデルの精度が向上することが示された。
〔8-2.第2の知見〕
次に、図12及び図13を用いて、第2の知見について説明する。なお、第1の知見と同様の点については適宜説明を省略する。図12及び図13は、第2の知見に関するグラフを示す図である。具体的には、図12のグラフRS2の横軸が隠れ層のユニットサイズ、縦軸が精度を示す。図13のグラフRS3は、横軸を隠れ層のユニットサイズの常用対数(10を底とする対数)とした場合を示す。第2の知見は、実験(測定)により、隠れ層のユニットサイズと精度との関係について得られた知見を示す。
図12のグラフRS2及び図13のグラフRS3は、隠れ層のユニットサイズと精度との間には高い相関性があることを示す。図12のグラフRS2及び図13のグラフRS3では、例えば隠れ層のユニットサイズが増えるほど精度が向上しており、隠れ層のユニットサイズと精度との間には正の相関があることが示された。
また、図12及び図13は、隠れ層のユニットサイズを固定し、ドロップアウト率を調節することにより得られた結果である。これにより、隠れ層のユニットサイズを大きくしながらドロップアウト率を調節することで、モデルの精度が向上することが示された。
〔8-3.第3の知見〕
まず、図14を用いて、第3の知見について説明する。なお、上述した第1の知見、第2の知見と同様の点については適宜説明を省略する。図14は、第3の知見に関するグラフを示す図である。具体的には、図14のグラフRS4の横軸が隠れ層のユニットサイズ、縦軸がドロップアウト率を示す。
図14のグラフRS4は、各ドロップアウト率における精度が最大のものを抜き出しプロットした結果を示す。例えば、図14のグラフRS4は、各ドロップアウト率において精度が最大であった際の隠れ層のユニットサイズを抽出し、プロットした結果を示す。図14のグラフRS4は、ドロップアウト率と隠れ層のユニットサイズとの間には高い相関性があることを示す。図14のグラフRS4では、ドロップアウト率と隠れ層のユニットサイズとの間にはグラフRS4中に点線で示す関数FC11のように、正の相関があることが示された。
例えば、関数FC11は、隠れ層のユニットサイズに対応する変数を「y」とし、ドロップアウト率に対応する変数を「x」とした場合、「y=ax+b」(a、bは数値)で表現される関数であってもよい。例えば、関数FC11は、関数のフィッティングに関する種々の技術を適宜用いて導出される。なお、図14の例では、関数が線形である場合を一例として示したが、ドロップアウト率と隠れ層のユニットサイズとの関係を表現可能であれば、関数FC11は、どのような関数であってもよく、線形関数であってもよいし、非線形関数であってもよい。
第3の知見を利用することでパラメータの探索時間を大幅に短縮することができる。例えば、図14に示すような関数FC11を用いることで、情報処理装置10は、各ドロップアウト率に適切な隠れ層のユニットサイズを決定することができる。これにより、情報処理装置10は、ドロップアウト率に基づく隠れ層のユニットサイズを決定する時間を短縮することができる。情報処理装置10は、ドロップアウト率に基づくサイズのモデルを適切に生成することができる。情報処理装置10は、関数FC11を基に特定されるドロップアウト率に対応する隠れ層のサイズ(対象サイズ)に基づいて、モデルを生成する。例えば、情報処理装置10は、取得したドロップアウト率を関数FC11に入力することにより、取得したドロップアウト率に対応する隠れ層の対象サイズを特定する。
そして、情報処理装置10は、対象サイズから所定範囲内の複数のサイズの各々に対応する複数のモデルを学習する。例えば、情報処理装置10は、対象サイズの上下5%の範囲に含まれる複数のサイズの各々に対応する複数のモデルを学習する。情報処理装置10は、学習した複数のモデルのうち、最も精度が高い一のモデルを、そのドロップアウト率に対応する適切なモデルとして選択する。これにより、情報処理装置10は、取得したドロップアウト率に対応する対象サイズから所定範囲内のサイズの隠れ層を含むモデルを生成する。
〔8-4.第4の知見〕
まず、図15及び図16を用いて、第4の知見について説明する。なお、上述した第1の知見、第2の知見、第3の知見と同様の点については適宜説明を省略する。図15は、第4の知見に関するモデルの一例を示す図である。図16は、第4の知見に関するグラフを示す図である。
図15は、モデルM1の第1タイプの部分モデルである部分モデルPM1及びモデルM1の第2タイプの部分モデルである部分モデルPM2のパラメータを設定した場合を示す。具体的には、図15は、部分モデルPM1のドロップアウト率が「0.7021」に設定された場合を示す。また、図15は、部分モデルPM1のドロップアウト率が「0.6257」に設定され、、隠れ層のユニットサイズ(ノード数)が1519に設定された場合を示す。また、図15では、エンベディング層EL11とロジット層EL12とを直接全結合層(Fully connected layer)で接続する。
ここで、図16を用いてモデルのパラメータである重みとステップとの関係を示す。図16のグラフRS11は、第1の部分モデルである部分モデルPM1についての重みとステップとの関係を示す。図16のグラフRS11の横軸がステップ、縦軸がLogits(部分モデルの出力)を示す。
グラフRS11は、第1の部分モデル(部分モデルPM1)の出力とステップとの関係を示す。グラフRS11中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS11中の9個の波形は、上から順にmaximum(最大値)、μ+1.5σ、μ+σ、μ+0.5σ、μ、μ-0.5σ、μ-σ、μ-1.5σ、minimum(最小値)に対応する。図16の例では、中心μが一番濃く、外側に行くに連れて色が薄くなる態様により示す。
図16のグラフRS12は、第2の部分モデルである部分モデルPM2についての重みとステップとの関係を示す。図16のグラフRS12の横軸がステップ、縦軸がLogits(部分モデルの出力)を示す。
グラフRS12は、第2の部分モデル(部分モデルPM2)の出力とステップとの関係を示す。グラフRS12中の波形は、モデルの出力のばらつきを、その標準偏差により示すものである。グラフRS12中の9個の波形は、上から順にmaximum(最大値)、μ+1.5σ、μ+σ、μ+0.5σ、μ、μ-0.5σ、μ-σ、μ-1.5σ、minimum(最小値)に対応する。
図16に示すように、ドロップアウト率を高くすると重みのばらつきを小さくすることができる。例えば、ドロップアウト率を高くすると重みのL2ノルムを大幅に小さくすることができる。例えば、第1の部分モデルの重みのばらつき(L2ノルム等)を小さくできれば、モデルの汎化性能を向上させることができる。なお、重みのノルムについては、例えば下記の文献に開示されている。
・Generalization in Deep Learning, Kenji Kawaguchi et al. <https://arxiv.org/abs/1710.05468>
〔8-5.第5の知見〕
次に、第5の知見について説明する。なお、上述した第1の知見、第2の知見、第3の知見、第4の知見と同様の点については適宜説明を省略する。第5の知見としては、図7や図15のモデルM1に示すように、複数の部分モデルを並列に接続することにより、モデルの精度を向上させることができることが得られた。例えば、複数の部分モデルを並列に接続することにより、部分モデルを並列に接続しない場合に比べて、モデルの精度を向上させることができる。
〔8-6.第6の知見〕
次に、第6の知見について説明する。なお、上述した第1の知見~第5の知見と同様の点については適宜説明を省略する。第6の知見は、ドロップアウト率を大きくすることで、スパース性が増し、重みのばらつき(L2ノルム等)が減少するとの推測が得られた。
〔8-7.実験結果〕
実験結果の一例について図17を用いて説明する。図17は、実験結果の一覧を示す図である。図17では、サービス#1~#3の3つのサービスの各々のデータセット#1~#3を用いた場合の実験結果を示す。なお、サービス#1~#3といった抽象的な名称で示すが、例えばサービス#1は情報提供サービスであり、サービス#2は書籍版売サービスであり、サービス#3は旅行サービスである。
図17中の「オフライン指標#1」は、モデルの精度の基準となる指標を示す。オフライン指標#1は、そのモデルが出力したスコアの高い方から順に候補を抽出し、その抽出した候補の中に正解が含まれる割合を示す。例えば、オフライン指標#1は、ユーザの行動データをモデルに入力し、対象書籍のうち、そのモデルが出力したスコアの高い方から順に5件を抽出し、その5件の中にそのユーザが実際に(例えば対応するページ等のコンテンツを)閲覧した書籍が含まれる割合を示す。
また、図17中の一覧のうち、「従来例#1」は、第1の従来例を示し、「従来例#2」は、第1の従来例よりも精度が向上された第2の従来例を示す。また、図17中の一覧のうち、「本手法」は、上述した処理により生成された複数の部分モデルを並列に接続したモデルの精度を示す。
図17に示す実験結果の各欄に「オフライン指標#1:」の横に示す値は、各手法について対応するデータセットを用いた場合の精度を示す。例えば、「従来例#1」と「データセット#1」とに対応する欄に表記された「オフライン指標#1:0.353353」は、サービス#1のデータセット#1を対象とした場合の従来例#1の精度が0.353353であることを示す。また、「従来例#1」と「データセット#3」とに対応する欄が空欄であることは、サービス#3のデータセット#3を対象とした場合の従来例#1の精度が未取得(未計測)であることを示す。
また、「従来例#2」に対応する欄に示す数値は、「従来例#1」からの精度の向上率を示す。例えば、「従来例#2」と「データセット#1」とに対応する欄に表記された「+20.6」は、サービス#1のデータセット#1を対象とした場合について、従来例#2は、従来例#1よりも精度が20.6%向上したことを示す。
また、「本手法」に対応する欄に示す数値は、「従来例#2」からの精度の向上率を示し、その横の括弧で囲まれた数値は、「従来例#1」からの精度の向上率を示す。例えば、「本手法」と「データセット#1」とに対応する欄に表記された「+12.1」は、サービス#1のデータセット#1を対象とした場合について、本手法は、従来例#2よりも精度が12.1%向上したことを示す。また、例えば、「本手法」と「データセット#1」とに対応する欄に表記された「+12.1」の横の「[+32.7]」は、サービス#1のデータセット#1を対象とした場合について、本手法は、従来例#1よりも精度が32.7%向上したことを示す。
同様に、サービス#2のデータセット#2を対象とした場合について、本手法は、従来例#2よりも精度が7.9%向上し、従来例#1よりも精度が23.4%向上したことを示す。また、サービス#3のデータセット#3を対象とした場合について、本手法は、従来例#2よりも精度が6.2%向上したことを示す。図17に示すように、本手法は、従来例#1及び従来例#2から精度の改善(上昇)が見られた。
〔9.変形例〕
上記では、情報処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報処理の変形例について説明する。
〔9-1.装置構成〕
上記実施形態では、情報処理システム1に、生成指標の生成を行う情報処理装置10、および、生成指標に従ってモデルを生成するモデル生成サーバ2を有する例について説明したが、実施形態は、これに限定されるものではない。例えば、情報処理装置10は、モデル生成サーバ2が有する機能を有していてもよい。また、情報処理装置10が発揮する機能は、端末装置3に内包されていてもよい。このような場合、端末装置3は、生成指標を自動的に生成するとともに、モデル生成サーバ2を用いたモデルの生成を自動的に行うこととなる。
〔9-2.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9-3.プログラム〕
また、上述してきた実施形態に係る情報処理装置10は、例えば図18に示すような構成のコンピュータ1000によって実現される。図18は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD、フラッシュメモリ等により実現される。
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000が情報処理装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
〔10.効果〕
上述したように、情報処理装置10は、モデルの学習におけるドロップアウト率を示す情報を取得する取得部(実施形態では取得部41)と、ドロップアウト率に基づくサイズを有するモデル(例えば実施形態では部分モデルPM2)を生成する生成部(実施形態では生成部44)とを有する。これにより、情報処理装置10は、ドロップアウト率に応じたサイズのモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、ドロップアウト率に基づく隠れ層を含むモデルを生成する。これにより、情報処理装置10は、ドロップアウト率に応じた隠れ層を含むモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、ドロップアウト率に基づいて決定されるサイズの隠れ層を含むモデルを生成する。これにより、情報処理装置10は、ドロップアウト率に基づいて決定されるサイズの隠れ層を含むモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、ドロップアウト率と隠れ層のサイズとの相関性に基づいて決定されるサイズの隠れ層を含むモデルを生成する。これにより、情報処理装置10は、ドロップアウト率と隠れ層のサイズとの相関性に基づくサイズのモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、ドロップアウト率と隠れ層のサイズとの正の相関に基づいてモデルを生成する。例えば、生成部は、ドロップアウト率が上がるほど、隠れ層のサイズを大きくすることで精度が良くなることを示す相関性に基づいてモデルを生成する。これにより、情報処理装置10は、ドロップアウト率と隠れ層のサイズとの正の相関に基づくサイズのモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、ドロップアウト率と隠れ層のサイズとを変数とする関数を用いて決定されるサイズの隠れ層を含むモデルを生成する。これにより、情報処理装置10は、関数を用いて決定されたサイズのモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、関数を基に特定されるドロップアウト率に対応する隠れ層のサイズである対象サイズに基づいて、モデルを生成する。これにより、情報処理装置10は、関数を基に特定される対象サイズに基づいてモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、対象サイズから所定範囲内のサイズの隠れ層を含むモデルを生成する。これにより、情報処理装置10は、対象サイズから所定範囲内のサイズの隠れ層を含むモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、対象サイズから所定範囲内の複数のサイズのうち、最も精度が高いサイズの隠れ層を含むモデルを生成する。これにより、情報処理装置10は、複数のサイズのうち最も精度が高いサイズの隠れ層を含むモデルを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、対象サイズから所定範囲内の複数のサイズの各々に対応する複数のモデルを学習し、複数のモデルのうち、最も精度が高い一のモデルをモデルとして生成する。これにより、情報処理装置10は、複数のサイズの各々に対応する複数のモデルを学習し、最も精度が高い一のモデルを採用することより、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、ドロップアウト率でのドロップアウトの後にバッチノーマライゼーションを行って生成することにより、モデルを生成する。これにより、情報処理装置10は、ドロップアウトとバッチノーマライゼーションとを適切に組み合わせて処理し、モデルをを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、モデルは、入力をエンベディングするエンベディング層を含む。これにより、情報処理装置10は、エンベディング層を含み、ドロップアウト率に応じたサイズのモデルをを生成することができるため、学習態様に応じたサイズのモデルを生成することができる。
また、生成部は、モデルの生成に用いるデータを外部のモデル生成サーバ(実施形態では「モデル生成サーバ2」)に送信することにより、モデル生成サーバにモデルの学習を要求し、モデル生成サーバからモデル生成サーバが学習したモデルを受信することにより、モデルを生成する。これにより、情報処理装置10は、モデル生成サーバにモデルを学習させ、そのモデルを受信することにより、適切にモデルを生成することができる。例えば、情報処理装置10は、モデルを生成するモデル生成サーバ2等の外部装置に、学習データ、モデルの構造を示す情報及び各部分モデルのドロップアウト率を示す情報等を送信し、学習データを用いて外部装置にモデルを学習させることにより、適切にモデルを生成することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。