(57)【要約】【課題】モデルに、人間の知見が反映され易くなるように機械学習させることができる予測装置、学習装置、予測方法、及びプログラムを提供する。【解決手段】入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御部と、前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習部と、前記学習部による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測部と、を備える。【選択図】図１
2020198097.tif 000002
【特許請求の範囲】
【請求項１】
入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御部と、
前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習部と、
前記学習部による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測部と、
を備えることを特徴とする予測装置。
【請求項２】
前記関数制御部は、予め設定した所定の損失関数に正則化項を加算したものを、前記予測モデルを学習させる過程において用いる損失関数とすることにより、前記予測関数の挙動を制御し、
前記正則化項は、前記予測関数、及び前記予測関数に用いられる変数に基づいて導出される関数を変数とする関数に、所定の正則化重みが乗算されることにより生成される、
請求項１に記載の予測装置。
【請求項３】
前記正則化項は、前記予測関数を、前記予測関数の入力に用いられる変数で微分することにより導出される導関数を変数とする関数に、所定の正則化重みが乗算されることにより生成される、
請求項２に記載の予測装置。
【請求項４】
前記正則化項は、前記予測関数の入力に用いられる変数の近傍における、当該予測関数の出力を入力変数とする関数を含む、
請求項２に記載の予測装置。
【請求項５】
前記正則化項は、前記予測関数の入力に用いられる変数の近傍における、当該予測関数のテイラー級数における所定の次数までの項からなる出力を入力変数とする関数を含む、
請求項４に記載の予測装置。
【請求項６】
前記正則化項は、前記予測関数の入力に用いられる変数の値に応じて互いに異なる関数を含む、
請求項２から請求項５の何れか一項に記載の予測装置。
【請求項７】
前記正則化項は、前記予測関数の出力を変数とする関数に、所定の正則化重みが乗算されることにより生成される、
請求項２から請求項６のいずれか一項に記載の予測装置。
【請求項８】
前記正則化項は、前記予測関数の入力を変数とする関数に、所定の正則化重みが乗算されることにより生成される、
請求項２から請求項７のいずれか一項に記載の予測装置。
【請求項９】
入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御部と、
前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習部と、
を備えることを特徴とする学習装置。
【請求項１０】
関数制御部が、入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御過程と、
学習部が、前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習過程と、
予測部が、前記学習部による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測過程と、
を含むことを特徴とする予測方法。
【請求項１１】
コンピュータを、
入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御手段、
前記関数制御手段により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習手段、
前記学習手段による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測装置、学習装置、予測方法、及びプログラムに関する。
【背景技術】
【０００２】
幅広い産業において、統計解析、機械学習といった手法を用いた分析モデルが活用されている。例えば、担当者の経験則に依存していた販売促進企画の立案を、機械学習によって自動的に行う技術が知られている（例えば、特許文献１参照）。特許文献１では、過去の販売促進企画と、当該販売促進企画に係る顧客データや売上データを学習データとして学習を行い、実施予定の企画を立案するために必要な、顧客への売上予測等の情報を収集する。
また、機械学習の分野において、学習過程における過学習を防止するために、正則化項を用いる手法がある（例えば、特許文献２参照）。特許文献２では、正則化項が深層学習のパラメータを二値に収束させることにより効率的な学習を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−４５３１６号公報
【特許文献２】特開２０１９−４０４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機械学習を用いて生成したモデルから、人間の感覚とは乖離した結果が得られてしまう場合がある。
例えば、本日の広告費用（ｘ１）と、本日の売上（ｘ２）とに基づいて、明日の広告費用に対する売上（ｙ）を予測する分析モデル（ｆ（ｘ１、ｘ２））を構築する場合を考える。通常の感覚で言えば、ある程度までは広告費用を増やすことで売上が伸びるが、それ以上は広告費用を増やしても売上が横ばいとなる地点が存在するはずである。しかし、分析モデルにおける広告費用ｘ１を横軸、売上ｆを縦軸とするグラフを作成すると、広告費用ｘ１の増加に伴い、売上ｆが単調に増加し続け、ある地点から売上の増加率（広告効果）が低減することが考慮できていない結果となることがある。或いは、広告費用ｘ１の増加に伴い、売上ｆが局所的にマイナスになる等、違和感のある挙動を示す場合がある。
【０００５】
このような状況は、決して稀なものではなく、特に、学習データが不完全な場合において高い頻度で発生することが考えられる。図５Ａ〜図５Ｃは、データの不完全性と、それが引き起こす問題の例を示している。図５Ａ〜図５Ｃに示す上下のグラフでは、横軸に広告費用、縦軸に売上を示しており、上側にデータと真の曲線（真の広告費用と売上との関係を示す曲線）、下側にデータとモデルが予測した曲線を示している。図５Ａ〜図５Ｃでは、不完全なデータを分析した結果、誤った結論（予測値）が導かれる例として、下記（１）〜（３）が示されている。
【０００６】
（１）学習に用いるデータが不足している（図５Ａ参照）
（２）学習に用いるデータにノイズが多く含まれている（図５Ｂ参照）
（３）学習に用いるべき重要なデータが取得できない、ないし学習過程において考慮されていない（図５Ｃ参照）
【０００７】
例えば、（１）では、図５Ａに示すように、モデルの入力に用いられる説明変数や、モデルの挙動を決定するパラメータに対して、学習に用いるデータが不足している場合に、学習の過程においてモデルが、真の予想曲線に対して乖離しているデータと乖離していないデータとを区別することができないために、違和感のある挙動を示す学習済みモデルが生成されてしまうと考えられる。
（２）では、図５Ｂに示すように、真の曲線から乖離しているデータが多数存在している場合に、学習の過程においてモデルが、乖離しているデータからの影響を受けるために、違和感のある挙動を示す学習済みモデルが生成されてしまうと考えられる。
（３）では、図５Ｃに示すように、学習の過程において予測モデルの挙動に影響を与え得る重要な情報（例えば、広告の内容が不評であった等）が入力変数に用いられなかったために、違和感のある挙動を示す学習済みモデルが生成されてしまうと考えられる。
【０００８】
これにより、学習済みモデルから分析結果の利用者の納得が得られ難い予測値が出力されてしまう事象が発生し、開発コストをかけて生成した分析モデルが活用できない問題が発生している。
【０００９】
本発明は、上記問題を解決すべくなされたもので、その目的は、モデルに、人間の知見が反映され易くなるように機械学習させることができる予測装置、学習装置、予測方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記問題を解決するために、本発明の一態様は、入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御部と、前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習部と、前記学習部による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測部と、を備えることを特徴とする予測装置である。
【００１１】
また、本発明の一態様は、上記に記載の予測装置において、前記関数制御部は、予め設定した所定の損失関数に正則化項を加算したものを、前記予測モデルを学習させる過程において用いる損失関数とすることにより、前記予測関数の挙動を制御し、前記正則化項は、前記予測関数、及び前記予測関数に用いられる変数に基づいて導出される関数を変数とする関数に、所定の正則化重みが乗算されることにより生成されるようにしてもよい。
【００１２】
また、本発明の一態様は、上記に記載の予測装置において、前記正則化項は、前記予測関数を、前記予測関数の入力に用いられる変数で微分することにより導出される導関数を変数とする関数に、所定の正則化重みが乗算されることにより生成されるようにしてもよい。
【００１３】
また、本発明の一態様は、上記に記載の予測装置において、前記正則化項は、前記予測関数の入力に用いられる変数の近傍における、当該予測関数の出力を入力変数とする関数を含むようにしてもよい。
【００１４】
また、本発明の一態様は、上記に記載の予測装置において、前記正則化項は、前記予測関数の入力に用いられる変数の近傍における、当該予測関数のテイラー級数における所定の次数までの項からなる出力を入力変数とする関数を含むようにしてもよい。
【００１５】
また、本発明の一態様は、上記に記載の予測装置において、前記正則化項は、前記予測関数の入力に用いられる変数の値に応じて互いに異なる関数を含むようにしてもよい。
【００１６】
また、本発明の一態様は、上記に記載の予測装置において、前記正則化項は、前記予測関数の出力を変数とする関数に、所定の正則化重みが乗算されることにより生成されるようにしてもよい。
【００１７】
また、本発明の一態様は、上記に記載の予測装置において、前記正則化項は、前記予測関数の入力を変数とする関数に、所定の正則化重みが乗算されることにより生成されるようにしてもよい。
【００１８】
また、本発明の一態様は、入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御部と、前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習部と、を備えることを特徴とする学習装置である。
【００１９】
また、本発明の一態様は、関数制御部が、入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御過程と、学習部が、前記関数制御部により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習過程と、予測部が、前記学習部による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測過程と、を含むことを特徴とする予測方法である。
【００２０】
また、本発明の一態様は、コンピュータを、入力に対する予測値を出力する予測モデルにおける、入力と出力との関係を示す予測関数の挙動を制御する関数制御手段、前記関数制御手段により挙動を制御された前記予測関数に、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、前記予測モデルを学習させる学習手段、前記学習手段による学習済みの前記予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する予測手段として機能させるためのプログラムである。
【発明の効果】
【００２１】
この発明によれば、モデルに、人間の知見が反映され易くなるように機械学習させることができる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態の予測装置１の構成例を示すブロック図である。
【図２】第１の実施形態の関数制御部１６が行う処理を説明する図である。
【図３】第１の実施形態の関数制御部１６が行う処理を説明する図である。
【図４】第１の実施形態の予測装置１が行う処理の流れを示すフローチャートである。
【図５Ａ】本願の実施形態の課題を説明する図である。
【図５Ｂ】本願の実施形態の課題を説明する図である。
【図５Ｃ】本願の実施形態の課題を説明する図である。
【図６】第２の実施形態における課題を説明する図である。
【図７】第２の実施形態において予測装置１が行う処理を説明する図である。
【図８】第２の実施形態の変形例において予測装置１が行う処理を説明する図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について図面を参照して説明する。
【００２４】
まず、第１の実施形態について説明する。図１は、第１の実施形態の予測装置１の構成例を示すブロック図である。予測装置１は、予測モデルを生成し、生成した予測モデルを用いて、入力に対する予測を行う装置である。ここでの予測モデルは、任意の項目について、入力に対する予測値を出力するモデルであり、例えば、広告費用（入力）に対する売上（予測値）を出力するモデルである。
【００２５】
予測装置１は、例えば、学習データ取得部１１と、教師データ取得部１２と、前処理部１３と、学習部１４と、予測部１５と、関数制御部１６と、予測モデルパラメータ記憶部１７とを備える。
【００２６】
学習データ取得部１１は、学習データを取得する。学習データは、予測モデルに学習させる際の入力として用いられるデータである。例えば、予測モデルが、広告費用（入力）に対する売上（予測値）を出力するモデルである場合、学習データは、過去において投資された広告費用の実績を示すデータである。
【００２７】
教師データ取得部１２は、教師データを取得する。教師データは、予測モデルに学習させる際の出力として用いられるデータである。例えば、予測モデルが、広告費用（入力）に対する売上（予測値）を出力するモデルである場合、学習データは、過去における売上の実績を示すデータである。
【００２８】
前処理部１３は、学習データに教師データを対応付けることにより、予測モデルに学習させるデータを生成する。前処理部１３は、例えば、ある過去の日付において投資された広告費用（入力データ）に、その日付における売上の実績を対応づけたデータを、予測モデルに学習させるデータとして生成する。
【００２９】
学習部１４は、前処理部１３により生成されたデータを用いて、予測モデルを学習させる。予測モデルは、任意の機械学習の手法を用いた構成であってよいが、例えば、リカレントニューラルネットワーク（以下、ＲＮＮと称する）である。一般的に、ＲＮＮは、入力層、隠れ層（中間層）、出力層の３つの階層により構成される。入力層には、ＲＮＮに学習させたいデータ（入力データ）が入力される。出力層からは、ＲＮＮによって学習された結果を示すデータ（出力データ）が出力される。隠れ層は、学習の核となる処理を行う。例えば、隠れ層は、入力を、活性化関数（伝達関数）と呼ばれる関数により表現される値に変換して出力する。例えば、活性化関数は、正規化線形関数や、シグモイド関数、ステップ関数などであるが、これに限定されず、任意の関数が用いられてよい。
【００３０】
ここで、ＲＮＮの構成について簡単に説明する。ＲＮＮは、入力層のユニットから、隠れ層のｎ層のうち、最も浅い層の複数のユニットの各々に対してノードが接続される。ここで、ｎは任意の自然数である。また、最も浅い層とは隠れ層のｎ層のうち、最も入力層に近い層であり、この例では第１層である。第１層のユニットから、隠れ層のｎ層のうち、第１層の次に浅い層（この例では第２層）の複数のユニットの各々に対してノードが接続される。ユニット同士を接続するノードの各々には、結合係数よる重みづけＷ及びバイアス成分ｂが適用される。これにより、ある層のユニットから、より深い層のユニットにデータが出力される際に、ユニット同士を接続するノードの結合係数に応じた重みＷ及びバイアス成分ｂが付与されたデータが出力される。
【００３１】
学習部１４は、予測モデルの入力層に学習データを入力させる。学習部１４は、予測モデルに入力させた学習データに対して出力層から出力されたデータが、当該学習データに対応する教師データに近づくように、予測モデルを学習させる。学習部１４は、誤差と予測モデルに設定したパラメータとの関係を、損失関数として導出する。ここでの誤差は、予測モデルの出力層から出力されるデータと、教師データとの乖離度合いである。乖離度合いには、任意の指標が用いられてよいが、例えば、誤差の二乗（二乗誤差）やクロスエントロピー等が用いられる。
【００３２】
一般に、損失関数ｌ（小文字のＬ）は、教師データｙR、及び予測関数ｆ（ｘ）を変数とする関数で表現することができ、以下に示す（１）式で表現される。（１）式において、ｌは損失関数、ｙRは教師データ、ｆ（ｘ）は予測モデルの入力（ｘ）と出力（ｆ（ｘ））との関係を示す関数である。
【００３３】
損失関数ｌ（ｙR、ｆ（ｘ））  …（１）
【００３４】
予測モデルの出力をｙとすれば、予測関数は、ｙ＝ｆ（ｘ）にて表現される。これを（１）式に適用すると、損失関数ｌは、以下の（２）式にて示すことができる。
【００３５】
損失関数ｌ（ｙR、ｙ）  …（２）
【００３６】
本実施形態では、学習部１４は、式（１）又は式（２）に示す損失関数ｌに代えて、関数制御部１６により導出された正則化項Ｌを損失関数ｌに加えたものを、新たな損失関数ｌ＃として用いる。
【００３７】
損失関数ｌに正則化項Ｌを加算することにより、予測関数ｙの挙動を制御することができる。これにより、予測関数ｙが違和感のある挙動を示す場合において、その挙動を違和感のない挙動とすることが可能である。例えば、予測関数ｙが、学習の過程において広告費用ｘの増加に伴い、売上ｆ（ｘ）が局所的にマイナスになってしまう挙動を示した場合であっても、マイナスにはならないように制御することができる。したがって、予測モデルに人間の知見が反映され易くなるように機械学習させることが可能である。
【００３８】
損失関数ｌ＃は、以下に示す（３）式で表現される。（３）式において、ｌ＃は本実施形態の学習部１４が用いる損失関数、ｌは（１）式又は（２）式で示される損失関数、ｙRは教師データ、ｆ（ｘ）は予測モデルの出力、λは正則化の重み係数、Ｌは正則化項である。
【００３９】
損失関数ｌ＃＝ｌ（ｙR、ｙ）＋λ×Ｌ  …（３）
【００４０】
なお、正則化の重み係数λは任意の実数、あるいは、入力ｘの関数であってよい。また、正則化項Ｌについては、後で詳しく説明する。
【００４１】
学習部１４は、誤差逆伝搬法を用いて、損失関数ｌが最小となるように、重みＷとバイアス成分ｂの組み合わせを決定する。学習部１４は、決定（更新）した重みＷとバイアス成分ｂとを、ノードやユニットと対応付け、対応付けた情報を予測モデルパラメータ記憶部１７に記憶させる。
【００４２】
予測部１５は、予測モデルパラメータ記憶部１７を参照することで、学習により決定された各階層の重みＷとバイアス成分ｂに基づいてＲＮＮを生成（再構築）する。予測部１５は、生成（再構築）したＲＮＮを予測モデルとして、予測モデルに未学習の入力データを入力することにより、予測モデルから出力される出力データに基づいて予測値を予測する。「未学習の入力データ」とは、例えば、予測モデルを学習させる段階において学習データに利用されていないデータのことである。予測部１５は、例えば、再構築したＲＮＮの入力層に、未学習の入力データを入力することにより出力層から出力される値を、予測値として出力する。
【００４３】
予測モデルパラメータ記憶部１７は、予測モデルの学習により決定された各階層の重みＷとバイアス成分ｂが記憶される。予測モデルパラメータ記憶部１７には、ＲＮＮの構成を示す情報が記憶されてよい。ＲＮＮの構成を示す情報には、例えば、ＲＮＮの隠れ層の層数や、各層のユニット数、活性化関数、などを示す情報が含まれる。
【００４４】
関数制御部１６は、予測モデルにおける、予測関数ｙの挙動を制御する。関数制御部１６は、学習が実行される度に、予測部１５により導出される予測関数ｙを取得する。関数制御部１６は、予測関数ｙの挙動に違和感があるか否かを判定する。
【００４５】
図２は、第１の実施形態の関数制御部１６が行う処理を説明する図である。図２には、予測モデルが予測した、入力（横軸に示す、広告費用ｘ）と、出力（縦軸に示す、売上ｙ）の関係が示されている。ここでは、広告費用に対する売上は増加する傾向にあること、及び、広告費用に対する売上の増加率は急激に変化しないという業務上の知見があることを前提とする。
【００４６】
図２に示すように、予測モデルが予測した予測結果が、領域Ｅ１に示すような広告費用に対する売上が減少するものであった場合、関数制御部１６は、領域Ｅ１において予測関数ｙの挙動に違和感があると判定する。また、領域Ｅ２に示すような、広告費用に対する売上が増加する比率が急激に変化（所定の閾値より傾きが大きい）ものであった場合、関数制御部１６は、領域Ｅ２において予測関数ｙの挙動に違和感があると判定する。
【００４７】
関数制御部１６は、予測モデルの挙動に違和感があると判定する場合、損失関数ｌに正則化項Ｌを加算することにより、新たな損失関数ｌ＃を導出する。関数制御部１６は、導出した損失関数ｌ＃を用いて、予測部１５により予測モデルを学習させることにより、予測関数ｙの挙動を制御する。
【００４８】
関数制御部１６が導出する正則化項Ｌは、（４）式に示すように、予測モデルの入出力、及び任意階数の導関数を変数とする関数として表現される。（４）式において、ｘは予測モデルの入力、ｙは予測モデルの出力、ｄｙ／ｄｘは予測モデルの出力ｙを入力ｘで一回微分した導関数、ｄ＾ｎｙ／ｄｘ＾ｎｙは予測モデルの出力ｙを入力ｘでｎ回微分した導関数である。ｎは任意の自然数である。
【００４９】
正則化項Ｌ（ｘ、ｙ、ｄｙ／ｄｘ、…、ｄ＾ｎｙ／ｄｘ＾ｎｙ）  …（４）
【００５０】
なお、正則化項Ｌは、（４）式にて示した変数を全て使用するものに限定されることはなく、（４）式にて示した変数のうち、少なくとも一つの変数を使用するものであればよい。例えば、導関数については、二階微分以上の高階導関数のみを用いるものであってもよい。
また、正則化項Ｌは、従来の統計および機械学習において、特に過学習を防いだり、汎化能力を高めたりするための正則化の技法により用いられる、いわゆるＬ１正則化や、Ｌ２正則化を含んでいてもよいし、Ｌ１正則化や、Ｌ２正則化を含まずに構成されてもよい。
【００５１】
関数制御部１６は、正則化項Ｌを、（５）式のように、入力ｘの範囲と、出力ｙの挙動を示す関数の積により導出する。（５）式において、ＩＡは入力ｘの範囲を示す関数、ＧｒａｄＬｏｓｓは出力ｙの挙動（例えば、勾配）を制御する関数である。
【００５２】
Ｌ（ｘ、ｙ、ｄｙ／ｄｘ、…、ｄ＾ｎｙ／ｄｘ＾ｎｙ）
＝ＩＡ（ｘ）×ＧｒａｄＬｏｓｓ（ｘ、ｙ、ｄｙ／ｄｘ、…、ｄ＾ｎｙ／ｄｘ＾ｎｙ）
…（５）
【００５３】
（５）式において、関数ＩＡ（ｘ）は、ｘ∈Ａの場合に１、ｘ∈Ａでない場合に０を出力する関数（領域判定関数）である。ここでｘは、入力として取り得る任意の値である。これにより、分析モデルの定義域の任意の部分集合Ａにおいて、出力ｙの挙動を制御することができる。
【００５４】
ここで、関数制御部１６が、導出する正則化項Ｌの例について、図３を用いて説明する。図３は、第１の実施形態の関数制御部１６が行う処理を説明する図である。図３では、業務上の知見、ｆ（ｘ）がどのような挙動になるとよいか、ＧｒａｄＬｏｓｓの定義式の各項目を備える。
「業務上の知見」には、予測モデルに予測させる項目に応じて人間が設定する知見が示される。なお、知見は業務上のものに限定されることはなく、例えば、歴史的な背景によるもの、経験によるもの、前提や想定によるもの、及びこれらの組み合わせによる知見が含まれてよい。
「ｆ（ｘ）がどのような挙動になるとよいか」には、業務上の知見に対応する出力ｆ（ｘ）の挙動が数式により示されている。「ＧｒａｄＬｏｓｓの定義式」には、業務上の知見に対応する具体的なＧｒａｄＬｏｓｓの式が示されている。
【００５５】
関数制御部１６は、例えば、図３の１番目の項目に示すように、入力ｘに対して出力ｙが増加傾向であるべきとする業務上の知見がある場合、ｄｙ／ｄｘ＞０、つまりｙの一回微分が正であるような挙動が望ましいと判定する。この場合、関数制御部１６は、ＧｒａｄＬｏｓｓ関数として、ｍａｘ（（−１）×ｄｙ／ｄｘ、０）を定義する。ここでのｍａｘ関数は、引数に示された二つの値を比較して大きい方を出力する関数である。
例えば、ｄｙ／ｄｘが正である場合、（（−１）×ｄｙ／ｄｘ）は負となり、ＧｒａｄＬｏｓｓ関数は０を出力する。一方、ｄｙ／ｄｘが負である場合、（（−１）×ｄｙ／ｄｘ）は正となり、ＧｒａｄＬｏｓｓ関数は（（−１）×ｄｙ／ｄｘ）を出力する。
【００５６】
ＧｒａｄＬｏｓｓ関数は、（４）式、及び（５）式に示すように、損失関数に加算される正則化項Ｌを構成する。したがって、ｄｙ／ｄｘが正である場合に正則化項Ｌは０となり、予測部１５により学習に用いられる損失関数として、（１）式又は（２）式に示す損失関数ｌそのものが適用される。一方、ｄｙ／ｄｘが負である場合に正則化項Ｌは（（−１）×ｄｙ／ｄｘ）に応じた値となり、予測部１５により学習に用いられる損失関数として、（１）式又は（２）式に示す損失関数ｌに、（（−１）ｄｙ／ｄｘ）に応じた正則化項Ｌを加算したものが適用される。
なお、入力ｘに対して出力ｙが減少傾向であるべきとする業務上の知見がある場合には、ＧｒａｄＬｏｓｓ関数として、ｍａｘ（ｄｙ／ｄｘ、０）を定義してもよい。
【００５７】
関数制御部１６は、図３の２番目の項目に示すように、入力ｘに対して出力ｙにおける増加の程度が強すぎるとの業務上の知見がある場合、ｄｙ／ｄｘ＜ｂ、つまりｙの傾きがｂより小さくなるような挙動が望ましいと判定する。ここでのｂは、任意の正の実数である。この場合、関数制御部１６は、ＧｒａｄＬｏｓｓ関数として、（ｍａｘ（ｄｙ／ｄｘ、ｂ）−ｂ）を定義する。
【００５８】
例えば、ｄｙ／ｄｘがｂより小さい場合、ｍａｘ関数からｂが出力され、ＧｒａｄＬｏｓｓ関数は０を出力する。一方、ｄｙ／ｄｘがｂより大きい場合、ｍａｘ関数からｄｙ／ｄｘが出力され、ＧｒａｄＬｏｓｓ関数は（ｄｙ／ｄｘ−ｂ）を出力する。したがって、ｄｙ／ｄｘがｂより小さい場合に正則化項Ｌは０となり、予測部１５により学習に用いられる損失関数として、（１）式又は（２）式に示す損失関数ｌそのものが適用される。一方、ｄｙ／ｄｘがｂより大きい場合に正則化項Ｌは（ｄｙ／ｄｘ−ｂ）となり、予測部１５により学習に用いられる損失関数として、（１）式又は（２）式に示す損失関数ｌに、（ｄｙ／ｄｘ−ｂ）に応じた正則化項Ｌを加算したものが適用される。
なお、入力ｘに対して出力ｙにおける減少の程度に着目する場合には、ＧｒａｄＬｏｓｓ関数として、ｍａｘ（−ｄｙ／ｄｘ、−ｂ）＋ｂを定義してもよく、強すぎる、弱すぎるといった程度に着目する場合には、ｂの値を適宜設定してよい。
【００５９】
関数制御部１６は、図３の３番目の項目に示すように、入力ｘに対して出力ｙにおける増加の傾向が下に凸であるべきとの業務上の知見がある場合、ｄ＾２ｙ／ｄｘ＾２＞０、つまりｙの二回微分が正となるような挙動が望ましいと判定する。この場合、関数制御部１６は、ＧｒａｄＬｏｓｓ関数として、（ｍａｘ（（−１）×ｄ＾２ｙ／ｄｘ＾２、０）を定義する。
【００６０】
例えば、ｄ＾２ｙ／ｄｘ＾２が正である場合、ＧｒａｄＬｏｓｓ関数は０を出力する。一方、ｄ＾２ｙ／ｄｘ＾２が負である場合、ＧｒａｄＬｏｓｓ関数は（（−１）×ｄ＾２ｙ／ｄｘ＾２）を出力する。したがって、ｄ＾２ｙ／ｄｘ＾２が正である場合に正則化項Ｌは０となり、予測部１５により学習に用いられる損失関数として、（１）式又は（２）式に示す損失関数ｌそのものが適用される。一方、（ｄ＾２ｙ／ｄｘ＾２）が負である場合に正則化項Ｌは（（−１）×ｄ＾２ｙ／ｄｘ＾２）となり、予測部１５により学習に用いられる損失関数として、（１）式又は（２）式に示す損失関数ｌに、（（−１）×ｄ＾２ｙ／ｄｘ＾２）に応じた正則化項Ｌを加算したものが適用される。
なお、入力ｘに対して出力ｙにおける増加の傾向が上に凸であるべき場合には、ＧｒａｄＬｏｓｓ関数として、ｍａｘ（ｄ＾２ｙ／ｄｘ＾２、０）を定義してもよい。
【００６１】
このように、関数制御部１６は、業務上の知見に応じて、出力ｙにおいて望ましい挙動を示す数式（例えば、出力ｙの導関数）を規定する。関数制御部１６は、出力ｙにおける入出力の関係において、規定した数式に合致する挙動が示されている場合に０となり、当該数式に合致しない挙動が示されている場合に０でない値となる正則化項Ｌを導出する。これにより、関数制御部１６は、予測モデル（予測関数ｙ）が業務上の知見に応じた挙動をする場合としない場合とで、互いに異なる正則化項Ｌを導出することができる。したがって、関数制御部１６は、予測モデル（予測関数ｙ）が業務上の知見に応じた挙動をしない場合に、業務上の知見に応じた挙動をする場合と比較して、値が大きい正則化項Ｌを導出して、損失関数ｌ＃を大きくしたものを用いて予測モデルを学習させることができる。予測モデルは、学習の過程において、業務上の知見に応じた挙動をしない場合に、損失が大きくなることを学習し、業務上の知見に応じた挙動をするように、予測モデルのパラメータ（重みＷ及びバイアス成分ｂ）を決定するように学習が進められることが期待できる。
【００６２】
なお、図３の例では、正則化項Ｌの変数が、予測関数ｙの導関数である場合を例示して説明したが、これに限定されない。例えば、正則化項Ｌに用いられる変数は、予測関数ｙの出力ｙそのものであってもよい。この場合、出力ｙの値が一定の範囲から逸脱することがあり得ないとする業務上の知見がある場合に、出力ｙが一定の範囲に収まるように、予測関数ｙの挙動を是正することが可能となる。
【００６３】
また、正則化項Ｌに用いられる変数は、予測関数ｙの入力ｘそのものであってもよい。この場合、入力ｘの値に応じた予測値の挙動を制御することができる。
一般に予測モデルは、学習により予測モデルのパラメータが決定されていれば、入力に対する予測値を出力することが可能である。このため、入力ｘが所定の範囲でしか得られない、つまり学習データが所定の範囲でしか得られてない場合であっても、その範囲外の入力に対する予測値を出力することができてしまう。この場合、学習データが存在していないため、予測値は実績（学習データと教師データとの対応関係）とは無関係に出力されてしまう。このため、入力ｘにおける所定の範囲において業務上の知見とは乖離した結果となる可能性が高い。
このような場合に、正則化項Ｌの変数として入力ｘを用いることで、入力ｘにおける特定の範囲において、業務上の知見に沿うように予測関数ｙの挙動を是正することが可能となる。例えば、入力ｘにおける特定の範囲において、出力ｙが増加と減少を繰り返すような挙動が予測されている場合において、その範囲の出力ｙが増加する傾向にあるという知見を与えれば、出力ｙが減少する挙動を見直すような学習がなされ、学習データが存在しない範囲においても、出力ｙが増加する傾向となるように、予測関数ｙの挙動を是正することが可能となる。
なお、学習データが存在しない、或いは、不足する領域において、ダミーデータ（ｃ、ｆ（ｃ））を作成し、これを用いて予測関数ｙの挙動の是正を行ってもよい。ここでのｃは、学習データには存在しない、予測関数ｙの定義域上の任意の点である。
また、正則化項Ｌの入力を、損失関数ｌの入力と独立させても良い。例えば、正則化項Ｌの計算に予測関数ｙの値が不要である場合に、損失関数ｌで用いる学習データ（ｘ、ｙ）に対して、正則化項Ｌの入力データを（ｘ＋εｉ、ｙ）としても良い。ここでεｉは任意の分布からサンプリングされた任意個数のノイズ値である。
【００６４】
図４は、第１の実施形態の予測装置１が行う処理の流れを示すフローチャートである。
まず、予測装置１の学習部１４は、予測モデルを学習させる（ステップＳ１０）。学習部１４は、予測モデルに学習データを入力した場合に出力される予測値が、学習データに対応付けられた教師データに近づくように、予測モデルのパラメータを決定することにより、予測モデルを学習させる。
【００６５】
関数制御部１６は、学習された学習済みの予測モデルの挙動に違和感が有るか否かを判定する（ステップＳ１１）。関数制御部１６は、予測モデルが予測する項目に応じて予め設定された業務上の知見に応じた数式（例えば、出力ｙの任意階数の導関数）に、予測モデルの挙動が合致しない場合に、予測モデルの挙動に違和感が有ると判定する。
【００６６】
関数制御部１６は、予測モデルの挙動に違和感が有る場合、損失関数ｌに、当該違和感に対応した正則化項Ｌを加算する（ステップＳ１２）。関数制御部１６は、例えば、ｍａｘ関数などを用いて、業務上の知見に応じた数式に合致しない程度に応じた正則化項Ｌとすることにより、当該違和感に対応した正則化項Ｌを導出する。
学習部１４は、関数制御部１６により導出された正則化項Ｌを損失関数ｌに加算した損失関数ｌ＃を用いて、予測モデルの再学習を実施する（ステップＳ１３）。
学習部１４は、予測モデルの再学習を実施（ステップＳ１３）した後、予測モデルの学習における終了条件を満たすか否かを判定する（ステップＳ１４）。学習の終了条件は、予め定められた条件であって、例えば、予測値と教師データとの誤差が所定の閾値未満となったこと、一回の学習あたりの予測値と教師データとの誤差の変化量が所定の閾値未満となったこと、等である。
学習部１４は、予測モデルを学習させる学習の終了条件を満たさない場合、ステップＳ１０に戻り、再学習された学習済の予測モデルが終了条件を満たすようにするための学習を行う。このようにして、学習部１４は、予測モデルにおける学習の終了条件を満たすまで、ステップＳ１０〜Ｓ１３に示す処理のフローを繰り返す。
【００６７】
なお、上述した図４のフローチャートでは、ステップＳ１１において、関数制御部１６が学習済みの予測モデルに対し、違和感の有無を判定する場合を例示したが、これに限定されることはない。関数制御部１６は、学習前、学習過程、及び学習済みの何れの過程においても、予測モデルの挙動について違和感の有無を判定してもよい。すなわち、学習前、学習過程、及び学習済みの何れの過程における予測モデルの挙動についても、損失関数ｌ＃を用いた学習が行われることにより、予測モデルの挙動が業務上の知見に沿うように再構築されてよい。
【００６８】
以上説明したように、第１の実施形態の予測装置１では、関数制御部１６と学習部１４と予測部１５とを備える。関数制御部１６は、予測関数ｙの挙動を制御する。学習部１４は、関数制御部１６により挙動を制御された予測関数ｙに、学習データを入力させることにより得られる出力が、当該学習データに対応する教師データに近づくように、予測モデルを学習させる。予測部１５は、学習部１４による学習済みの予測モデルに、未学習データを入力させることにより得られる出力に基づいて、入力に対する予測値を予測する。
これにより、第１の実施形態の予測装置１では、関数制御部１６が予測関数ｙの挙動を制御することができ、予測関数ｙの挙動が、業務上の知見と異なる場合に、是正することができ、予測モデルに、人間の知見が反映され易くなるように機械学習させることが可能となる。
【００６９】
また、第１の実施形態の予測装置１では、関数制御部１６は、予め設定した所定の損失関数ｌに正則化項Ｌを加算したものを、予測モデルを学習させる過程において用いる損失関数ｌ＃とすることにより、予測関数ｙの挙動を制御する。また、正則化項Ｌは、予測関数ｙ、及び予測関数ｙに用いられる変数（例えば、予測関数ｙの入力ｘ）に基づいて導出される関数を変数とする関数に、所定の正則化重みλが乗算されることにより生成される。
これにより、第１の実施形態の予測装置１では、損失関数ｌに正則化項Ｌを加算することにより、業務上の知見と異なる場合に損失が大きく見えるようにして、予測関数ｙの挙動が業務上の知見に沿うように学習させることができ、上述した効果と同様の効果を奏する。
【００７０】
また、第１の実施形態の予測装置１では、正則化項は、予測関数ｙを、予測関数ｙの入力ｘで微分することにより導出される導関数（例えば、ｄｙ／ｄｘ）を変数とする関数に、所定の正則化重みλが乗算されることにより生成される。これにより、第１の実施形態の予測装置１では、入力ｘに対する出力ｙの傾きに応じた正則化項Ｌを導出することができ、入力ｘに対する出力ｙの傾きが業務上の知見に沿うように学習させることができ、上述した効果と同様の効果を奏する。
【００７１】
また、第１の実施形態の予測装置１では、正則化項は、予測関数ｙの入力ｘの値に応じて互いに異なる関数（例えば、（５）式のＩＡ（ｘ））を含む。これにより、第１の実施形態の予測装置１では、入力ｘの特定の範囲に応じた正則化項Ｌを導出することができ、入力ｘの特定の範囲における出力ｙの挙動を業務上の知見に沿うように学習させることができ、上述した効果と同様の効果を奏する。
【００７２】
また、第１の実施形態の予測装置１では、正則化項は、予測関数ｙの出力ｙを変数とする関数に、所定の正則化重みλが乗算されることにより生成される。これにより第１の実施形態の予測装置１では、出力ｙの値に応じた正則化項Ｌを導出することができ、例えば、出力ｙの値が一定の範囲から逸脱することがあり得ないとする業務上の知見がある場合に、出力ｙの挙動を業務上の知見に沿うように学習させることができる。
【００７３】
また、第１の実施形態の予測装置１では、正則化項は、予測関数ｙの入力ｘを変数とする関数に、所定の正則化重みλが乗算されることにより生成される。これにより実施形態の予測装置１では、入力ｘの値に応じた正則化項Ｌを導出することができ、例えば、入力ｘにおける所定の範囲において、学習データが存在していないために予測値が制御できない場合であっても、ダミーデータ等を用いて予測関数ｙの挙動を業務上の知見に沿うように学習させることができる。
【００７４】
また、第１の実施形態の予測装置１が、学習済みモデルを生成する学習装置と、学習装置により生成された学習済みモデルとを用いて予測を行う制御装置とで構成されてもよい。この場合、学習装置は、関数制御部１６と学習部１４とを備える。学習装置が関数制御部１６を備えることにより、実施形態の学習装置は、業務上の知見を反映した予測モデルを作成することができ、上述した効果と同様の効果を奏する。
【００７５】
なお、上述した第１の実施形態では、予測モデルにＲＮＮが適用された場合を例示して説明したが、これに限定されない。例えば、予測モデルとして、ＲＮＮ以外の再帰型ニューラルネットワークであるＬＳＴＭ（Long Short Term Memory）が適用されてもよいし、順伝搬型のニューラルネットワークが適用されてもよい。順伝搬型の場合、予測モデルとして多層パーセプトロンが適用されてもよい。また、予測モデルとしてニューラルネットワーク以外の他の機械学習が用いられてもよい。
【００７６】
また、上述した第１の実施形態では、ＧｒａｄＬｏｓｓ関数として、ｍａｘ関数を用いる場合を例示して説明したが、これに限定されない。ＧｒａｄＬｏｓｓ関数として、少なくとも出力ｆ（ｘ）の挙動について、人間の知見を反映させた関数や数式が用いられればよい。例えば、ＧｒａｄＬｏｓｓの関数として、ｍａｘ関数の代わりに、ｍｉｎ関数が用いられてもよいのは勿論である。ｍｉｎ関数は、引数に示された複数の値のうち、最も小さい値を出力する関数である。
【００７７】
次に、第２の実施形態について説明する。本実施形態では、予測関数ｙの挙動が業務上の知見に沿うように正則化項Ｌを規定する際に、予測関数の局所的な情報への依存度を低下させている点において、上述した実施形態と相違する。
【００７８】
図６は、第２の実施形態における課題を説明する図である。図６のグラフの横軸は広告費用、縦軸は売上を示す。図６には、広告費用と売上の関係が、「点」と「実線」の２パターンで示されている。「点」で示されているパターンは、広告費用と売上の関係を示す実績データである。「実線」で示されているパターンは、実績データを用いた学習をしたモデルが予測した曲線（広告費用と売上の関係を予測する予測関数）である。
【００７９】
図６では、モデルに、正則化項ＬにおけるＧｒａｄＬｏｓｓ関数として、（ｍａｘ（（−１）×ｄｙ／ｄｘ、０）を採用した場合において、モデルが予測した曲線が示されている。
【００８０】
図６のグラフの「点」のパターンに示すように、広告費用と売上の関係が、何らかの要因により、単調に増加する傾向にない箇所が散見される実績データが得られた場合を考える。このような実績データを用いた学習を行う際、「広告費用に対する売上は増加する傾向にある」との業務上の知見から、モデルに、式（ＧＬ１）に示す、ＧｒａｄＬｏｓｓ＝（ｍａｘ（（−１）×ｄｙ／ｄｘ、０）を採用したとする。
【００８１】
この場合、最終的に得られる予測関数が、各点について制約を満たすが、全体として単調増加しないものとなる可能性がある。すなわち、実績データの各点において増加傾向とするために、点と点の間で一旦減少させるように予測してしまうことが考えられる。このような予測関数が出力する売上予測は、「広告費用に対する売上は増加する傾向にある」との業務上の知見には必ずしも合致しないものとなる。
【００８２】
この対策として、本実施形態では、予測の対象とする範囲の全体において、予測関数ｙの挙動が業務上の知見に沿うように正則化項Ｌを規定する。予測の対象とする範囲とは、図６の例における広告費用の範囲、或いは売上の範囲である。すなわち、本実施形態では、広告費用の範囲の全体において、「広告費用に対する売上は増加する傾向にある」との業務上の知見に合致するように、正則化項Ｌを規定する。
【００８３】
図７は、第２の実施形態において予測装置１が行う処理を説明する図である。図７のグラフの横軸と縦軸及び、「点」と「実線」の２パターンが示す内容は、図６と同様であるため、その説明を省略する。図７では、モデルに式（ＧＬ２）に示すＧｒａｄＬｏｓｓ関数を採用する。
【００８４】
ＧｒａｄＬｏｓｓ＝（−１）×｛ｍｉｎ（ｆ（ａ）−ｆ（ａ−ε）、０）
＋ｍｉｎ（ｆ（ａ＋ε）−ｆ（ａ）、０）｝  …（ＧＬ２）
【００８５】
式（ＧＬ２）におけるｆ（ｘ）は変数ｘの予測関数ｙ（ｙ＝ｆ（ｘ））である。定数ａは変数ｘが取り得る範囲における任意の実数である。幅εは定数ａの近傍として規定する範囲であり任意に設定されてよい。例えば、幅εは、実績データにおけるｘ軸方向のデータ間隔の平均値である。或いは、幅εとして、実績データにおけるｙ軸方向のデータ間隔の平均値を用いてもよい。なお、図７の例では、実績データにおけるｘ軸は広告費用を示す軸であり、実績データにおけるｙ軸は売上を示す軸である。
【００８６】
モデルに式（ＧＬ２）に示すＧｒａｄＬｏｓｓ関数を採用することにより、ある定数ａから±εの幅で規定される範囲において「減少しない」ように、予測関数ｙを学習させることができる。ここでの「減少しない」とは、増加する（傾きが正）か、或いは、増加も減少もしない（傾きが０（ゼロ））であることを示す。
【００８７】
以上説明したように、第２の実施形態では、正則化項Ｌは、予測関数ｙ＝ｆ（ｘ）の入力に用いられる変数（ｘ＝ａ）の近傍（ａ±ε）における、当該予測関数ｙの出力（ｆ（ａ−ε）、ｆ（ａ）、ｆ（ａ＋ε））を入力変数とする関数（例えば、式（ＧＬ２）で規定されるＧｒａｄＬｏｓｓ関数）を含む。これにより、予測の対象とする範囲の全体において、予測関数ｙの挙動が業務上の知見に沿うように、モデルに学習させることができる。すなわち、ある特定の箇所、例えば（ｘ＝ａ）の近傍において局所的に業務上の知見に沿わない振る舞いが予測される場合であっても、その範囲に、第２の実施形態で規定する式（ＧＬ２）を用いた学習を行うことにより、その振る舞いを是正することができる。
【００８８】
次に、第２の実施形態の変形例について説明する。本変形例では、ＧｒａｄＬｏｓｓ関数として予測関数ｙのテイラー級数を用いる点において、上述した実施形態と相違する。
【００８９】
図８は、第２の実施形態の変形例において予測装置１が行う処理を説明する図である。図８のグラフの横軸と縦軸及び、「点」と「実線」の２パターンが示す内容は、図６と同様であるため、その説明を省略する。図８では、モデルに式（ＧＬ３）に示すＧｒａｄＬｏｓｓ関数を採用する。
【００９０】
ＧｒａｄＬｏｓｓ
＝｜ｆ（ａ−ε）−（ａ−ε）ｆ′（ａ−ε）−ｆ（ａ）＋ａ×ｆ′（ａ）｜
＋｜ｆ′（ａ−ε）−ｆ′（ａ）｜
＋｜ｆ（ａ）−ａ×ｆ′（ａ）−ｆ（ａ＋ε）＋（ａ＋ε）ｆ′（ａ＋ε）｜
＋｜ｆ′（ａ）−ｆ′（ａ＋ε）｜                  …（ＧＬ３）
【００９１】
式（ＧＬ３）におけるｆ（ｘ）は変数ｘの予測関数ｙ（ｙ＝ｆ（ｘ））である。ｆ´（ｘ）は予測関数ｙを一回微分した導関数である。定数ａは変数ｘが取り得る範囲における任意の実数である。幅εは定数ａの近傍として規定する範囲であり任意に設定されてよい。例えば、幅εは、実績データにおけるｘ軸方向のデータ間隔の平均値である。或いは、幅εとして、実績データにおけるｙ軸方向のデータ間隔の平均値を用いてもよい。なお、図８の例でも、図７と同様に、実績データにおけるｘ軸は広告費用を示す軸であり、実績データにおけるｙ軸は売上を示す軸である。
【００９２】
また、式（ＧＬ３）では、予測関数ｙのテイラー級数における有限次数の多項式から求められる近似式が用いられている。予測関数ｙ＝ｆ（ｘ）における、ｘ＝（ａ−ε）、ｘ＝ａ、ｘ＝（ａ＋ε）、のそれぞれのテイラー級数を用いた一次までの近似式は、以下の式（ＧＬ３−１）で示される。
【００９３】
Ｔ（ａ−ε）＝ｆ（ａ−ε）＋ｆ´（ａ−ε）×（ｘ−（ａ−ε））
Ｔ（ａ）    ＝ｆ（ａ）    ＋ｆ´（ａ）    ×（ｘ−ａ）
Ｔ（ａ＋ε）＝ｆ（ａ＋ε）＋ｆ´（ａ＋ε）×（ｘ−（ａ＋ε））  …（ＧＬ３−１）
【００９４】
式（ＧＬ３−１）における、関数ｆ（ｘ）、ｆ´（ｘ）、定数ａ、幅εのそれぞれは、式（ＧＬ３）同様であるため、その説明を省略する。
【００９５】
ｆ（ａ−ε）とｆ（ａ）の不変性損失をＴ（ａ−ε）とＴ（ａ）の各次数の係数の絶対誤差として定義する。また、ｆ（ａ）とｆ（ａ＋ε）の不変性損失を、Ｔ（ａ）とＴ（ａ＋ε）の各次数の係数の絶対誤差として定義する。そして、これらの二つの不変性損失のそれぞれの各次数の係数の絶対誤差を加算することにより式（ＧＬ３）が得られる。
【００９６】
モデルに式（ＧＬ３）に示すＧｒａｄＬｏｓｓ関数を採用することにより、ある定数ａから±εの幅で規定される範囲（以下、定数ａの近傍という）において、予測関数ｙのテイラー級数の特定次数までの近似式が一致するように予測関数が変化する。つまり、モデルは、定数ａの近傍において、定数ａの接線を通過し、且つ「定数ａの近傍の外」と滑らかに接続する曲線となるように、予測関数ｙを学習させることができる。ここでの「定数ａの近傍の外」とは、（ａ−ε）以下となる範囲か、或いは、（ａ＋ε）以上となる範囲を示す。なお、式（ＧＬ３）は、一次までの近似式を採用した場合の例である。式（ＧＬ３）に、任意の次数までの近似式が採用されてもよいのは勿論である。
【００９７】
以上説明したように、第２の実施形態の変形例では、正則化項Ｌは、予測関数ｙ＝ｆ（ｘ）の入力に用いられる変数（ｘ＝ａ）の近傍（ａ±ε）における、当該予測関数ｙのテイラー級数における所定の次数までの項からなる出力（例えば、式（ＧＬ３）で規定されるＧｒａｄＬｏｓｓ関数）を入力変数とする関数を含む。これにより、上述した第２の実施形態と同様の効果を奏する。すなわち、ある特定の箇所、例えば（ｘ＝ａ）の近傍において局所的に業務上の知見に沿わない振る舞いが予測される場合であっても、その範囲に、第２の実施形態で規定する式（ＧＬ３）を用いた学習を行うことにより、その振る舞いを是正することができる。
【００９８】
特に、モデルのパラメータ数が多く、図６の例で示したような見かけ上は制約を充足するが、全体として違和感がある予測が発生する場合に、第２の実施形態、及びその変形例において説明した定義式（式（ＧＬ２）、及び式（ＧＬ３））が効果的である。
【００９９】
以上、いくつかの実施形態を説明したが、各実施形態で説明した構成は、その実施形態のみの適用に限定されることはない。例えば、第１の実施形態で述べた構成を第２の実施形態に適用してもよいし、第２の実施形態で述べた構成を第１の実施形態に適用してもよい。
【０１００】
上述した実施形態における予測装置１の全部又は一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【０１０１】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１０２】
１  予測装置
１１  学習データ取得部
１２  教師データ取得部
１３  前処理部
１４  学習部
１５  予測部
１６  関数制御部
１７  予測モデルパラメータ記憶部
【図１】
2020198097.tif 000003
【図２】
2020198097.tif 000004
【図３】
2020198097.tif 000005
【図４】
2020198097.tif 000006
【図５Ａ】
2020198097.tif 000007
【図５Ｂ】
2020198097.tif 000008
【図５Ｃ】
2020198097.tif 000009
【図６】
2020198097.tif 000010
【図７】
2020198097.tif 000011
【図８】
2020198097.tif 000012