(57)【要約】【課題】農作物の収穫予測の精度が向上した予測モデルを生成する。【解決手段】標本農作物の育成環境の情報と基準日から収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データと、標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の実績分布を示す総数データとを取得する。育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、訓練データを用いて、確率分布の誤差を評価して予測モデルを更新することを繰り返す学習処理を開始する。学習処理の途中において、複数のレコードが示す育成環境の情報から予測モデルにより算出される複数の確率分布を合成して、収穫日に対する収穫数の予測分布を算出し、予測分布と実績分布との間の類似度に基づいて、学習処理の停止タイミングを判定する。【選択図】図９
2020144720.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データと、前記複数のレコードが示す複数の標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の実績分布を示す総数データとを取得し、
育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、前記訓練データを用いて、前記予測モデルにより算出される前記確率分布の誤差を評価して前記予測モデルを更新することを繰り返す学習処理を開始し、
前記学習処理の途中において、前記複数のレコードが示す育成環境の情報から前記予測モデルにより算出される複数の確率分布を合成して、収穫日に対する収穫数の予測分布を算出し、前記予測分布と前記総数データが示す前記実績分布との間の類似度に基づいて、前記学習処理の停止タイミングを判定する、
処理を実行させる機械学習プログラム。
【請求項２】
前記標本農作物および前記他の農作物はそれぞれ果実であり、
前記基準日は、着果が観測された着果日であり、
前記標本農作物の育成環境の情報は、当該標本農作物の着果日から収穫日までの間の気温および日射量を含む、
請求項１記載の機械学習プログラム。
【請求項３】
前記停止タイミングの判定では、前記予測モデルが更新される毎に前記類似度を評価し、前記類似度のピークが検出されると、前記学習処理を停止し、前記類似度のピークに対応する前記予測モデルを学習結果として出力する、
請求項１または２記載の機械学習プログラム。
【請求項４】
前記複数のレコードはそれぞれ前記基準日を含み、
前記停止タイミングの判定では、前記複数のレコードに対応する前記複数の確率分布を前記基準日に基づいて合成して、前記複数の標本農作物について収穫日に対する収穫数の標本予測分布を算出し、前記農作物集合に対する前記複数の標本農作物の標本割合と前記標本予測分布とから、前記農作物集合について前記予測分布を算出する、
請求項１乃至３の何れか一項に記載の機械学習プログラム。
【請求項５】
前記停止タイミングの判定では、前記類似度が所定の基準以上類似することを示す場合に、前記学習処理を停止する、
請求項１乃至４の何れか一項に記載の機械学習プログラム。
【請求項６】
コンピュータが、
それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データと、前記複数のレコードが示す複数の標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の実績分布を示す総数データとを取得し、
育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、前記訓練データを用いて、前記予測モデルにより算出される前記確率分布の誤差を評価して前記予測モデルを更新することを繰り返す学習処理を開始し、
前記学習処理の途中において、前記複数のレコードが示す育成環境の情報から前記予測モデルにより算出される複数の確率分布を合成して、収穫日に対する収穫数の予測分布を算出し、前記予測分布と前記総数データが示す前記実績分布との間の類似度に基づいて、前記学習処理の停止タイミングを判定する、
機械学習方法。
【請求項７】
それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データと、前記複数のレコードが示す複数の標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の実績分布を示す総数データとを記憶する記憶部と、
育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、前記訓練データを用いて、前記予測モデルにより算出される前記確率分布の誤差を評価して前記予測モデルを更新することを繰り返す学習処理を開始し、前記学習処理の途中において、前記複数のレコードが示す育成環境の情報から前記予測モデルにより算出される複数の確率分布を合成して、収穫日に対する収穫数の予測分布を算出し、前記予測分布と前記総数データが示す前記実績分布との間の類似度に基づいて、前記学習処理の停止タイミングを判定する処理部と、
を有する機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機械学習プログラム、機械学習方法および機械学習装置に関する。
【背景技術】
【０００２】
コンピュータを利用したデータ分析として、機械学習が行われることがある。機械学習では、結果が既知である複数の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因（説明変数や独立変数と言うことがある）と結果（目的変数や従属変数と言うことがある）との間の関係を一般化した予測モデルを生成する。生成された予測モデルを用いることで、未知の結果を予測することができる。
【０００３】
機械学習は、農作物の収穫予測に用いられることがある。例えば、農作物の最適収穫日を予測する予測装置が提案されている。提案の予測装置は、収穫前の異なる複数の日に撮像された農作物の画像と、当該農作物が実際に収穫された収穫日とを含む教師データを収集する。予測装置は、教師データから機械学習により予測モデルを生成し、予測モデルに対象の農作物の画像を入力して対象の農作物の収穫日を予測する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１６９９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
農作物の収穫予測を可能とする機械学習では、気温や日射量などの育成環境を説明変数とし、着果日などの基準日から収穫日までの所要日数を目的変数とする予測モデルを生成することが考えられる。しかし、農作物は、同じ育成環境のもとで育てても成長速度が異なるという個体差をもっている。特に、一部の種類の農作物は個体差が大きい。これに対して、一般的な機械学習は、説明変数の１つの値に対して目的変数の１つの期待値（最も可能性が高い値）を算出する予測モデルを生成する。その結果、実際は収穫日にばらつきが生じるにもかかわらず、予測モデルによれば多くの農作物の予測収穫日が特定の日に集中することになり、実情から乖離した予測結果となってしまうおそれがある。
【０００６】
１つの側面では、本発明は、農作物の収穫予測の精度が向上した予測モデルを生成する機械学習プログラム、機械学習方法および機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データと、複数のレコードが示す複数の標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の実績分布を示す総数データとを取得する。育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、訓練データを用いて、予測モデルにより算出される確率分布の誤差を評価して予測モデルを更新することを繰り返す学習処理を開始する。学習処理の途中において、複数のレコードが示す育成環境の情報から予測モデルにより算出される複数の確率分布を合成して、収穫日に対する収穫数の予測分布を算出し、予測分布と総数データが示す実績分布との間の類似度に基づいて、学習処理の停止タイミングを判定する。
【０００８】
また、１つの態様では、コンピュータが実行する機械学習方法が提供される。また、１つの態様では、記憶部と処理部とを有する機械学習装置が提供される。
【発明の効果】
【０００９】
１つの側面では、農作物の収穫予測の精度が向上した予測モデルを生成できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の機械学習装置の例を説明する図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】機械学習装置のハードウェア例を示す図である。
【図４】収穫予測のデータフローの例を示す図である。
【図５】期待値を出力する予測モデルの使用例を示す図である。
【図６】確率分布を出力する予測モデルの使用例を示す図である。
【図７】学習不足の予測モデルの使用例を示す図である。
【図８】過学習した予測モデルの使用例を示す図である。
【図９】機械学習の停止タイミング例を示す図である。
【図１０】機械学習のデータフローの例を示す図である。
【図１１】機械学習装置の機能例を示すブロック図である。
【図１２】気象データと標本データと総数データのテーブル例を示す図である。
【図１３】訓練データテーブルの例を示す図である。
【図１４】機械学習の手順例を示すフローチャートである。
【図１５】機械学習の手順例を示すフローチャート（続き）である。
【図１６】収穫予測の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１２】
図１は、第１の実施の形態の機械学習装置の例を説明する図である。
第１の実施の形態の機械学習装置１０は、農作物の収穫予測に用いる予測モデルを機械学習によって生成する。機械学習装置１０を、情報処理装置やコンピュータと言うこともある。機械学習装置１０は、クライアント装置でもよいしサーバ装置でもよい。
【００１３】
機械学習装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性ストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１でもよい）に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１４】
記憶部１１は、訓練データ１３および総数データ１４を記憶する。訓練データ１３および総数データ１４は、収穫済みの農作物に関する履歴データである。訓練データ１３および総数データ１４は、前年に収穫された農作物など過去に収穫された農作物の育成状況や収穫状況を示す。訓練データ１３が示す農作物と総数データ１４が示す農作物は、同じ年に収穫されたものである。訓練データ１３および総数データ１４は、１年分の農作物を示す単年データであってもよいし、複数年分の農作物が混在した複数年データであってもよい。農作物には果実が含まれ得る。果実は、野菜や果物など植物の食用の実であり、農家によって栽培される。農作物は、同じ育成環境で育てても成長に個体差があり、収穫可能日にばらつきが生じる。農作物は、パプリカなど成長の個体差が大きい種類でもよい。
【００１５】
訓練データ１３は、収穫された農作物全体（農作物集合）の一部である標本農作物に関する複数のレコードを含む。農作物集合のうち標本農作物は、育成状況や収穫状況について個別の詳細情報を収集したものである。農作物集合のうち他の農作物は、個別の詳細情報を収集しなかったものである。農作物集合に対する標本農作物の割合（標本割合）は、０．０１％〜０．３％程度でよい。詳細情報の収集には手間がかかるためである。
【００１６】
訓練データ１３に含まれる複数のレコードは、それぞれ、標本農作物の育成環境の情報と所要日数とを対応付けている。育成環境の情報は、気温や日射量など農作物の成長と相関のある指標を含む。例えば、育成環境の情報は、下記の基準日から収穫日までの間の平均気温および平均日射量を含む。ただし、農作物の成長と相関が認められれば、基準日より前の気温や日射量を用いてもよいし、累積気温や累積日射量を用いてもよい。標本農作物によって基準日が異なることがある。基準日が異なると、結果的にその標本農作物に対応付けられる育成環境の情報も変わることがある。所要日数は、標本農作物について所定の状態が観測された基準日から、当該標本農作物が収穫された収穫日までの日数である。例えば、基準日は、植物が実をつけたことが観測された日（着果日）である。ただし、基準日は、着果前に植物が所定の状態になった日でもよいし、着果後に標本農作物が所定の状態になった日でもよい。収穫管理が週単位で行われている場合、所要日数の単位が週であってもよい。
【００１７】
総数データ１４は、訓練データ１３が示す標本農作物および他の農作物を含む農作物集合について、収穫日に対する収穫数（収穫された農作物の個数）の実績分布を示す。各農作物は、十分に成長したと農家が判断した日に植物から切り離されて収穫される。着果日の違いや成長の個体差により、収穫日にばらつきが生じる。収穫管理が週単位で行われている場合、総数データ１４は、収穫日の属する週に対する収穫数の実績分布を示してもよい。総数データ１４は、出荷管理のために収集され、訓練データ１３よりも収集の手間が少ない。
【００１８】
例えば、訓練データ１３に含まれる１つのレコードは、特定の平均気温や平均日射量のもとで育成された標本農作物について、着果日から収穫日までの所要日数が８週間であったという情報を示す。また、訓練データ１３に含まれる別のレコードは、別の平均気温や平均日射量のもとで育成された標本農作物について、着果日から収穫日までの所要日数が７週間であったという情報を示す。総数データ１４は、標本農作物および他の農作物を含む１２，０００個の農作物のうち、ある週に３，７００個が収穫され、その次の週に５，８００個が収穫され、その次の週に２，５００個が収穫されたという情報を示す。
【００１９】
処理部１２は、学習処理１５を実行して予測モデル１６を生成する。予測モデル１６の生成には、遺伝的プログラミング（ＧＰ：Genetic Programming）、重回帰分析、ニューラルネットワーク（ＮＮ：Neural Network）など、様々な機械学習アルゴリズムを使用することが可能である。予測モデル１６は、育成環境の情報を説明変数として受け付け、所要日数の確率分布を目的変数として出力する統計モデルである。訓練データ１３の所要日数の単位が週である場合、予測モデル１６は、週数の確率分布を出力するようにしてもよい。予測モデル１６は、最も確率が高い所要日数（所要日数の期待値）のみを出力する代わりに、複数の所要日数それぞれの確率を出力するように学習される。例えば、予測モデル１６は、特定の平均気温および平均日射量に対して、７週間が３０％、８週間が５０％、９週間が２０％という確率分布を出力する。
【００２０】
学習処理１５では、処理部１２は、訓練データ１３を用いて、予測モデル１６により算出される確率分布の誤差を評価して予測モデル１６を更新することを繰り返す。例えば、処理部１２は、訓練データ１３に含まれる複数のレコードそれぞれについて、当該レコードが示す育成環境の情報を予測モデル１６に入力し、当該レコードが示す所要日数を用いて、予測モデル１６が出力する確率分布の誤差を評価する。そして、例えば、処理部１２は、誤差が小さくなるように、予測モデル１６に含まれる係数を更新する。ニューラルネットワークの場合、ノード間のエッジ（シナプス）の重みが更新される。
【００２１】
ここで、処理部１２は、学習処理１５において予測モデル１６を更新する繰り返し（イテレーション）の回数を制御する。イテレーション回数が少ない場合、予測モデル１６が出力する確率分布は、訓練データ１３に対する誤差が大きく訓練データ１３へのフィッティング精度が低いものとなる。イテレーション回数の増加に応じて、予測モデル１６が出力する確率分布は、訓練データ１３に対する誤差が段階的に小さくなり、訓練データ１３へのフィッティング精度が段階的に高くなっていく。
【００２２】
ただし、訓練データ１３が示す標本農作物は全体の農作物集合に対して少数であると共に、農作物の成長には個体差がある。よって、訓練データ１３が示す所要日数の標本は、全体の農作物集合に対する真実の確率分布を忠実に表しているとは限らず、バイアスが存在する。このため、イテレーション回数を増やし過ぎると、過学習により、予測モデル１６が訓練データ１３に過度にフィットするものとなってしまう。過学習された予測モデル１６が出力する確率分布は、分散が過度に小さいものとなり、個体差により所要日数がばらつくという真実の確率分布から乖離したものとなるおそれがある。
【００２３】
そこで、処理部１２は、総数データ１４を参照して、学習処理１５における予測モデル１６の更新を適切なタイミングで停止するようにする。
具体的には、処理部１２は、学習処理１５の途中において、訓練データ１３に含まれる複数のレコードが示す育成環境の情報から、現在の予測モデル１６により複数の確率分布を算出し、これら複数の確率分布を合成して予測分布１７を算出する。予測分布１７は、例えば、予測モデル１６が更新される毎に算出される。予測分布１７は、標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の分布を予測したものである。
【００２４】
訓練データ１３が、着果日などの基準日が異なる標本農作物のデータを含んでいる場合、例えば、訓練データ１３に基準日を含めておき、予測モデル１６が出力する複数の確率分布を基準日に応じてシフトして合成すればよい。予測モデル１６が週数の確率分布を出力する場合、予測分布１７は、収穫日の属する週に対する収穫数の分布を示してもよい。また、処理部１２は、標本割合を用いて、標本農作物の収穫数の予測分布を全体の農作物集合の収穫数の予測分布１７に変換してもよい。例えば、予測分布１７は、標本農作物および他の農作物を含む１２，０００個の農作物のうち、ある週に３，６００個が収穫され、その次の週に６，０００個が収穫され、その次の週に２，４００個が収穫されるという予測を示す。
【００２５】
そして、処理部１２は、予測分布１７と総数データ１４が示す実績分布との間の類似度を評価し、類似度に基づいて学習処理１５の停止タイミングを判定する。学習処理１５の初期では、予測モデル１６を更新する毎に予測モデル１６の出力が真実の確率分布に近付き、その結果として予測分布１７が総数データ１４に近付く。一方、過学習になると、予測モデル１６を更新する毎に予測モデル１６の出力が過度に分散の小さいものとなり真実の確率分布から遠ざかり、その結果として予測分布１７が総数データ１４から遠ざかる。
【００２６】
そこで、例えば、処理部１２は、予測モデル１６が更新される毎に類似度を評価して類似度のピークを検出し、ピークが検出されると学習処理１５を停止して、ピークに対応する予測モデル１６を学習結果として出力する。処理部１２は、予測分布１７と総数データ１４が示す実績分布との間の類似度を示す指標として両者の誤差（総数誤差）を算出し、総数誤差が最小になるタイミングを検出するようにしてもよい。誤差は、収穫日毎に予測収穫数と実績収穫数の差の二乗を合計した残差平方和でもよい。また、処理部１２は、類似度の評価結果が、予測分布１７と総数データ１４が示す実績分布とが所定の基準以上類似することを示す場合に、学習処理１５を停止することとしてもよい。
【００２７】
第１の実施の形態の機械学習装置１０によれば、気温や日射量などの育成環境の情報から、着果日などの基準日から収穫日までの所要日数を予測する予測モデル１６が生成される。よって、農作物の収穫日および収穫数の予測が可能となる。また、予測モデル１６は、所要日数の期待値ではなく所要日数の確率分布を出力するように学習される。よって、同じ育成環境のもとで育てても成長速度が異なるという農作物の個体差の性質を考慮して、収穫日のばらつきを表現することが可能となる。
【００２８】
また、訓練データ１３に含まれる個々のレコードに対して予測モデル１６の予測結果の誤差を評価することに加え、訓練データ１３の全体から予測される収穫数の予測分布１７と総数データ１４が示す収穫数の実績分布との間の類似度が評価される。そして、この類似度に基づいて、学習処理１５による予測モデル１６の更新のイテレーションが停止される。よって、過学習により予測モデル１６が過度に分散の小さい確率分布を出力するようになることを抑制でき、予測モデル１６の予測精度が向上する。
【００２９】
特に、個々の標本農作物について基準日や収穫日などの詳細情報を収集することは農家の負担が大きいことから、訓練データ１３が十分な数の標本農作物のデータを含んでいないことがある。また、成長の個体差から、訓練データ１３が示す所要日数にはバイアスがある。このような訓練データ１３を用いて予測モデル１６を生成すると、過学習が生じた場合に、予測モデル１６が不適切な分散をもつ確率分布を出力してしまう可能性が高い。これに対して、機械学習装置１０によれば、過学習が抑制され、予測モデル１６が適切な分散をもつ確率分布を出力でき、収穫日のばらつきを表現することが可能となる。
【００３０】
なお、少ない訓練データから、できる限り予測精度の高い予測モデルを生成する機械学習技術として、クロスバリデーション法がある。クロスバリデーション法では、データ集合を複数のブロック（例えば、１０個のブロック）に分割し、それら複数のブロックの１つをテストデータとして選択し、残りのブロック（例えば、９個のブロック）を訓練データとして選択する。訓練データを用いて予測モデルを生成し、テストデータを用いて予測モデルの予測精度を測定する。テストデータとして選択するブロックを変えることで、予測モデルの生成を複数回（例えば、１０回）繰り返す。
【００３１】
すなわち、クロスバリデーション法は、訓練データに含まれるレコードを入れ替えながら予測モデルの生成を繰り返すことで、できる限り予測精度の高い予測モデルが生成されるレコードの組み合わせを発見するものである。しかし、使用可能なレコードが非常に少ない場合、データ集合を適切に複数のブロックに分割することが難しく、クロスバリデーション法によっても農作物の収穫予測の精度を向上させることは容易でない。
【００３２】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００３３】
第２の実施の形態の情報処理システムは、機械学習を利用して農作物の収穫日および収穫数を予測する。収穫日および収穫数の予測は、農家が出荷先と契約する際の基礎資料として使用することができる。第２の実施の形態の情報処理システムは、成長の個体差が大きく収穫日のばらつきが大きい農作物の管理に好適である。第２の実施の形態では、農作物の種類としてパプリカを想定する。ただし、第２の実施の形態の情報処理システムは、パプリカ以外の農作物の管理に適用することも可能である。
【００３４】
第２の実施の形態の情報処理システムは、ビニールハウス２０、ネットワーク３０、気象データサーバ３１および機械学習装置１００を含む。
ビニールハウス２０の屋内は、パプリカを栽培する農地として標本栽培エリア２１および一般栽培エリア２２を含む。標本栽培エリア２１で栽培されるパプリカは、農家が着果日および収穫日を個別に観測する標本果実である。一般栽培エリア２２で栽培されるパプリカは、着果日および収穫日を個別に観測しない果実である。標本栽培エリア２１で栽培される標本果実は、標本栽培エリア２１と一般栽培エリア２２を合わせた果実全体の約０．１％である。ただし、出荷管理のため、収穫日毎の収穫総数はカウントされる。また、農地を標本栽培エリア２１と一般栽培エリア２２に分けず、農地内に点在する幾つかの木の果実を標本果実として選択してもよい。また、図２には１つのビニールハウスを示しているが、農地が複数のビニールハウスに分割されていてもよい。
【００３５】
ビニールハウス２０の屋内には、センサ２３が設置されている。センサ２３は、少なくとも気温および日射量を測定するセンサデバイスである。センサ２３が測定する気温および日射量は、ビニールハウス２０の屋内のものであり、屋外の気温および日射量とは異なる。センサ２３は、測定されたデータを定期的に所定の情報処理装置に送信する。
【００３６】
ネットワーク３０は、インターネットなどの広域データ通信ネットワークを含む。ネットワーク３０には、気象データサーバ３１および機械学習装置１００が接続されている。センサ２３がネットワーク３０に接続されることもある。
【００３７】
気象データサーバ３１は、現在日以降の気象予報を示す気象予報データを提供するサーバコンピュータである。気象予報データは、公的機関または民間気象会社により提供される。気象データサーバ３１は、機械学習装置１００からの要求に応じて気象予報データを機械学習装置１００に送信する。気象予報データは、現在日以降の屋外の予報気温および予報日射量を含む。予報気温および予報日射量は、１時間毎の数値であることが好ましい。数値は、翌日の午前６時の気温および日射量といった日単位の予報でもよいし、翌週の午前６時の平均気温および平均日射量といった週単位の予報でもよいし、翌月の午前６時の平均気温および平均日射量といった月単位の予報でもよい。
【００３８】
機械学習装置１００は、機械学習により予測モデルを生成し、予測モデルを用いてパプリカの収穫日および収穫数を予測するコンピュータである。機械学習装置１００は、過年度（例えば、前年度）における個々の標本果実の着果日および収穫日を示す標本データを収集する。また、機械学習装置１００は、センサ２３によって測定された気温および日射量を示す気象データを収集する。機械学習装置１００は、標本データおよび気象データを用いて、パプリカの着果から収穫までに要する所要日数を、着果から収穫までの間の気温および日射量から予測する予測モデルを生成する。
【００３９】
機械学習装置１００は、標本栽培エリア２１において今年度のパプリカの着果が観測されてから収穫時期になる前に、予測モデルを用いて所要日数を予測する。このとき、機械学習装置１００は、気象データサーバ３１から気象予報データを受信する。予測モデルの入力に対応する気温および日射量は、予測日以前の期間についてはセンサ２３で測定されたものを使用し、予測日以降の期間については気象予報データのものを使用する。機械学習装置１００は、標本果実の着果日および着果数と、予測モデルが出力する所要日数と、標本果実の割合（０．１％）から、パプリカの収穫日および収穫数を予測する。
【００４０】
なお、機械学習装置１００は、クライアントコンピュータでもよいしサーバコンピュータでもよい。また、機械学習装置１００は、農家が所有するコンピュータでもよいし、データセンタなど情報処理事業者が所有するコンピュータでもよい。機械学習装置１００を農家が所有している場合、例えば、機械学習装置１００は、広域データ通信ネットワークを介さずにセンサ２３から気象データを受信し、農家のユーザから標本データの入力を受け付ける。機械学習装置１００を農家が所有していない場合、例えば、機械学習装置１００は、農家が所有する端末装置から、広域データ通信ネットワークを介して気象データおよび標本データを受信する。また、第２の実施の形態では、機械学習装置１００が予測モデルの生成と予測モデルを用いた収穫予測の両方を行っているが、両者を異なるコンピュータが行うようにしてもよい。例えば、サーバコンピュータが予測モデルを生成し、クライアントコンピュータが予測モデルを用いて収穫予測を行ってもよい。
【００４１】
図３は、機械学習装置のハードウェア例を示す図である。
機械学習装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像インタフェース１０４、入力インタフェース１０５、媒体リーダ１０６および通信インタフェース１０７を有する。上記ユニットはバスに接続されている。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。気象データサーバ３１なども同様のハードウェアを有する。
【００４２】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、機械学習装置１００は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００４３】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【００４４】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、機械学習装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【００４５】
画像インタフェース１０４は、ＣＰＵ１０１からの命令に従って、機械学習装置１００に接続された表示装置１１１に画像を出力する。表示装置１１１として、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。また、機械学習装置１００に、プリンタなど表示装置１１１以外の出力デバイスが接続されてもよい。
【００４６】
入力インタフェース１０５は、機械学習装置１００に接続された入力デバイス１１２から入力信号を受け付ける。入力デバイス１１２として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。また、機械学習装置１００に複数種類の入力デバイスが接続されてもよい。
【００４７】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００４８】
通信インタフェース１０７は、ネットワーク３０に接続され、気象データサーバ３１など他の情報処理装置と通信する。通信インタフェース１０７は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【００４９】
次に、予測モデルを用いた収穫予測の方法について説明する。なお、第２の実施の形態では、着果の観測および収穫の管理は週単位で行うものとする。そこで、標本データの着果日および収穫日は１週間のうちの特定の曜日の日付である。また、予測モデルが出力する所要日数は週数を示し、予測収穫日は１週間のうちの特定の曜日の日付となる。
【００５０】
図４は、収穫予測のデータフローの例を示す図である。
ある日に１以上の標本果実の着果が観測されると、標本データとして着果日２１１および標本着果数２１２が採取される。着果日２１１は農家が着果を観測した日であり、標本着果数２１２はその日に着果した標本果実の個数である。例えば、着果日２１１が１０月２３日であり、標本着果数２１２が５個である。
【００５１】
すると、着果日２１１から収穫時期までの期間について、説明変数としてビニールハウス２０の屋内の平均気温２１３および平均日射量２１４が算出される。平均気温２１３および平均日射量２１４は、それぞれ１時間毎の数値である。よって、説明変数は４８次元のベクトルとなる。なお、第２の実施の形態では、説明変数として平均気温および平均日射量を使用しているが、累積気温や累積日射量など他の指標とすることも可能である。
【００５２】
平均気温２１３および平均日射量２１４は以下のように算出される。着果日から予測日の前日までの期間については、センサ２３により測定されたビニールハウス２０の屋内の測定気温２２１および測定日射量２２２が使用される。予測日から収穫時期までの期間については、気象予報データの予報気温２２３および予報日射量２２４が使用される。
【００５３】
ただし、予報気温２２３および予報日射量２２４は、屋外の気温および日射量である。そこで、環境パラメータ２２７を用いて、予報気温２２３がビニールハウス２０の屋内の予想気温２２５に変換され、予報日射量２２４がビニールハウス２０の屋内の予想日射量２２６に変換される。環境パラメータ２２７は、屋外の気温と屋内の気温の関係、および、屋外の日射量と屋内の日射量の関係を示す。例えば、環境パラメータ２２７は、屋外の気温を屋内の気温に変換する一次式と、屋外の日射量を屋内の日射量に変換する一次式とを含む。環境パラメータ２２７は予め用意されている。環境パラメータ２２７は、ビニールハウス毎に個別に調整された個別パラメータであってもよいし、様々なビニールハウスに共通に適用される汎用パラメータであってもよい。
【００５４】
測定気温２２１および予想気温２２５が平均化されて平均気温２１３が算出され、測定日射量２２２および予想日射量２２６が平均化されて平均日射量２１４が算出される。すると、予め生成された予測モデル２１０に平均気温２１３および平均日射量２１４が入力され、予測モデル２１０から所要日数２１５が出力される。所要日数２１５は、着果から収穫までの日数の予測である。着果日２１１に所要日数２１５を加えることで、収穫日２１６が算出される。収穫日２１６は、着果日２１１に着果した果実の好適な収穫日の予測である。例えば、所要日数２１５が８週間であり、収穫日２１６が１２月１８日である。
【００５５】
また、標本着果数２１２から標本収穫数２１７が算出される。標本収穫数２１７は、着果日２１１に観測された標本果実のうち、収穫日２１６に収穫される標本果実の個数の予測である。ここでは、予測モデル２１０が所要日数２１５として所要日数の期待値を出力することを想定しているため、標本収穫数２１７は標本着果数２１２と同じである。例えば、標本収穫数２１７は５個である。ただし、後述するように、所要日数の確率分布を出力する予測モデルを生成することもできる。その場合、標本収穫数２１７は、所要日数毎の標本果実の個数を示す。所要日数毎の標本果実の個数は、標本着果数２１２に所要日数毎の確率を乗ずることで算出することができる。
【００５６】
そして、標本収穫数２１７が収穫数２１８に変換される。収穫数２１８は、着果日２１１に着果したと予測される果実であって、収穫日２１６に収穫される果実の個数の予測である。着果日２１１に着果したと予測される果実には、観測された標本果実とそれ以外の果実とが含まれる。収穫数２１８は、標本収穫数２１７と標本割合２１９から算出される。標本割合２１９は、果実全体に対する標本果実の割合である。収穫数２１８は、標本収穫数２１７を標本割合２１９で割る、すなわち、標本収穫数２１７に標本割合２１９の逆数を乗ずることで算出できる。例えば、標本割合２１９が０．１％であり、収穫数２１８が５００個÷０．１％＝５００個×１，０００＝５，０００個である。
【００５７】
このようにして、着果日２１１に着果した果実について、収穫日２１６に収穫数２１８の果実が収穫されると予測される。例えば、１０月２３日に着果した果実について、１２月１８日に５，０００個の果実が収穫されると予測される。異なる着果日の予測を合算することで、全体の収穫日および収穫数を予測することが可能である。
【００５８】
ただし、パプリカは成長の個体差が大きいため、実際には着果日が同じでも収穫日にばらつきが生じる。このため、所要日数の期待値を出力する予測モデル２１０を使用すると、全体の収穫日および収穫数の予測が実情から乖離するおそれがある。
【００５９】
図５は、期待値を出力する予測モデルの使用例を示す図である。
異なる着果日に標本着果数２３１，２３２，２３３が測定されたとする。標本着果数２３１は、１０月２３日に着果が観測された５個の標本果実を示す。標本着果数２３２は、１０月３０日に着果が観測された３個の標本果実を示す。標本着果数２３３は、１１月６日に着果が観測された４個の標本果実を示す。
【００６０】
標本着果数２３１，２３２，２３３それぞれに対して所要日数が予測される。ここでは、所要日数の期待値を出力する予測モデルを使用するものとする。すると、標本着果数２３１に対して、１０月２３日以降の平均気温および平均日射量から所要日数の期待値が算出される。標本着果数２３２に対して、１０月３０日以降の平均気温および平均日射量から所要日数の期待値が算出される。標本着果数２３３に対して、１１月６日以降の平均気温および平均日射量から所要日数の期待値が算出される。異なる着果日に対しては異なる平均気温および平均日射量が使用されるため、異なる所要日数の期待値が算出され得る。ここでは、標本着果数２３１に対する所要日数が８週間、標本着果数２３２に対する所要日数が７週間、標本着果数２３３に対する所要日数が６週間である。
【００６１】
すると、標本収穫数２３４，２３５，２３６が予測される。標本収穫数２３４は、１０月２３日から８週間後の１２月１８日に収穫が予測される５個の標本果実を示す。標本収穫数２３５は、１０月３０日から７週間後の１２月１８日に収穫が予測される３個の標本果実を示す。標本収穫数２３６は、１１月６日から６週間後の１２月１８日に収穫が予測される４個の標本果実を示す。標本収穫数２３４，２３５，２３６を合計すると、１２月１１日に０個の標本果実が収穫され、１２月１８日に１２個の標本果実が収穫され、１２月２５日０個の標本果実が収穫されるという予測になる。
【００６２】
標本割合＝０．１％を用いてこれらの標本収穫数を全体の収穫数に変換すると、収穫数２３７，２３８，２３９が予測される。収穫数２３７は、１２月１１日に収穫が予測される０個の果実を示す。収穫数２３８は、１２月１８日に収穫が予測される１２，０００個の果実を示す。収穫数２３９は、１２月２５日に収穫が予測される０個の果実を示す。このように、所要日数の期待値を出力する予測モデルを使用すると、特定の収穫日に収穫数が集中するという予測になることがある。しかし、実際には個体差により収穫日にばらつきが生じるため、収穫数２３７，２３８，２３９の信頼度は低い。そこで、所要日数の期待値ではなく所要日数の確率分布を出力する予測モデルを使用する。
【００６３】
図６は、確率分布を出力する予測モデルの使用例を示す図である。
標本着果数２３１，２３２，２３３それぞれに対して所要日数の確率分布が予測される。標本着果数２３１に対して、１０月２３日以降の平均気温および平均日射量から所要日数の確率分布が算出される。標本着果数２３２に対して、１０月３０日以降の平均気温および平均日射量から所要日数の確率分布が算出される。標本着果数２３３に対して、１１月６日以降の平均気温および平均日射量から所要日数の確率分布が算出される。
【００６４】
異なる着果日に対しては異なる平均気温および平均日射量が使用されるため、異なる所要日数の確率分布が算出され得る。ここでは、標本着果数２３１に対する確率分布は、７週間が３０％、８週間が５０％、９週間が２０％である。標本着果数２３２に対する確率分布は、６週間が３０％、７週間が５０％、８週間が２０％である。標本着果数２３３に対する確率分布は、５週間が３０％、６週間が５０％、７週間が２０％である。
【００６５】
すると、１０月２３日の標本着果数２３１に対して標本収穫数２４１，２４２，２４３という分布が予測される。標本収穫数２４１は、１２月１１日に収穫が予測される５個×３０％＝１．５個の標本果実を示す。標本収穫数２４２は、１２月１８日に収穫が予測される５個×５０％＝１．５個の標本果実を示す。標本収穫数２４３は、１２月２５日に収穫が予測される５個×２０％＝１．０個の標本果実を示す。
【００６６】
同様にして、１０月３０日の標本着果数２３２に対して標本収穫数２４４，２４５，２４６という分布が予測される。標本収穫数２４４は、１２月１１日に収穫が予測される３個×３０％＝０．９個の標本果実を示す。標本収穫数２４５は、１２月１８日に収穫が予測される３個×５０％＝１．５個の標本果実を示す。標本収穫数２４６は、１２月２５日に収穫が予測される３個×２０％＝０．６個の標本果実を示す。
【００６７】
また、１１月６日の標本着果数２３３に対して標本収穫数２４７，２４８，２４９という分布が予測される。標本収穫数２４７は、１２月１１日に収穫が予測される４個×３０％＝１．２個の標本果実を示す。標本収穫数２４８は、１２月１８日に収穫が予測される４個×５０％＝２．０個の標本果実を示す。標本収穫数２４９は、１２月２５日に収穫が予測される４個×２０％＝０．８個の標本果実を示す。
【００６８】
標本収穫数２４１，２４４，２４７を合計すると、１２月１１日に３．６個の標本果実が収穫されるという予測になる。標本収穫数２４２，２４６，２４８を合計すると、１２月１８日に６．０個の標本果実が収穫されるという予測になる。標本収穫数２４３，２４６，２４９を合計すると、１２月２５日に２．４個の標本果実が収穫されるという予測になる。標本割合＝０．１％を用いてこれらの標本収穫数を全体の収穫数に変換すると、収穫数２５１，２５２，２５３が予測される。収穫数２５１は、１２月１１日に収穫が予測される３，６００個の果実を示す。収穫数２５２は、１２月１８日に収穫が予測される６，０００個の果実を示す。収穫数２５３は、１２月２５日に収穫が予測される２，４００個の果実を示す。このように、確率分布を出力する予測モデルを使用することで、収穫日のばらつきを表現でき、収穫数２５１，２５２，２５３の信頼度が高くなる。
【００６９】
ここで、所要日数の確率分布を出力する予測モデルを、どの様に学習すればよいかが問題となる。典型的な機械学習は、訓練データを用いて予測モデルの出力の誤差を評価し、誤差が小さくなるように予測モデルの係数を更新することを繰り返す。予測モデルには、ＧＰモデル、重回帰モデル、ニューラルネットワークなど様々な機械学習モデルを使用できる。イテレーション回数が少ないうちは、予測モデルの出力の誤差が大きく訓練データに対するフィッティング精度が低い。イテレーション回数が多くなるほど、予測モデルの出力の誤差が小さくなり訓練データに対するフィッティング精度が高くなる。訓練データに対する誤差が十分に小さくなるまで上記を繰り返すことが多い。
【００７０】
一方で、農作物の収穫予測の場合、個々の標本果実の観察および追跡は農家の負担が大きいため、標本果実は少数に限られており機械学習に使用できる訓練データは少量になる。また、パプリカは成長の個体差が大きいこともあり、これら少数の標本果実の所要日数は収穫果実全体の所要日数のばらつきを正確に表現しているわけではない。このため、訓練データに対する誤差が十分に小さくなるまでイテレーション回数を増やすと、予測モデルが訓練データに過度にフィッティングする過学習が発生しやすい。少量の訓練データから過学習された予測モデルは、分散が過度に小さい確率分布を出力する。その結果、予測モデルが出力する確率分布の信頼度が低下してしまう。
【００７１】
図７は、学習不足の予測モデルの使用例を示す図である。
イテレーション回数が少ない初期段階の予測モデルを考える。学習不足の予測モデルが出力する確率分布は、所要日数を十分に絞り込めておらず分散が大きい。
【００７２】
１０月２３日の着果に対して、予測モデルは７週間が３３％、８週間が３３％、９週間が３３％という確率分布を出力する。すると、標本着果数２３１が５個であるため、１２月１１日に１．７個、１２月１８日に１．７個、１２月２５日に１．７個という標本収穫数が予測される。同様に、１０月３０日の着果に対して、予測モデルは６週間が３３％、７週間が３３％、８週間が３３％という確率分布を出力する。すると、標本着果数２３２が３個であるため、１２月１１日に１．０個、１２月１８日に１．０個、１２月２５日に１．０個という標本収穫数が予測される。１１月６日の着果に対して、予測モデルは５週間が３３％、６週間が３３％、７週間が３３％という確率分布を出力する。すると、標本着果数２３３が４個であるため、１２月１１日に１．３個、１２月１８日に１．３個、１２月２５日に１．３個という標本収穫数が予測される。
【００７３】
上記の標本収穫数を収穫日毎に合計すると、１２月１１日は４．０個、１２月１８日は４．０個、１２月２５日は４．０個と算出される。標本割合＝０．１％を用いると、全体の収穫数２５４，２５５，２５６が予測される。収穫数２５４は、１２月１１日の収穫数として４，０００個を示す。収穫数２５５は、１２月１８日の収穫数として４，０００個を示す。収穫数２５５は、１２月２５日の収穫数として４，０００個を示す。
【００７４】
このように、学習不足の予測モデルを使用すると、確率分布の分散が過度に大きくなり所要日数が適切に絞り込まれない。その結果、予測される収穫数２５４，２５５，２５６が過度にばらつくことになり信頼度が低下してしまう。
【００７５】
図８は、過学習した予測モデルの使用例を示す図である。
イテレーション回数が多く過学習された予測モデルを考える。過学習された予測モデルが出力する確率分布は、訓練データが示す所要日数に適合し過ぎており分散が小さい。
【００７６】
１０月２３日の着果に対して、予測モデルは７週間が０％、８週間が１００％、９週間が０％という確率分布を出力する。すると、標本着果数２３１が５個であるため、１２月１１日に０個、１２月１８日に５個、１２月２５日に０個という標本収穫数が予測される。１０月３０日の着果に対して、予測モデルは６週間が０％、７週間が１００％、８週間が０％という確率分布を出力する。すると、標本着果数２３２が３個であるため、１２月１１日に０個、１２月１８日に３個、１２月２５日に０個という標本収穫数が予測される。１１月６日の着果に対して、予測モデルは５週間が０％、６週間が１００％、７週間が０％という確率分布を出力する。すると、標本着果数２３３が４個であるため、１２月１１日に０個、１２月１８日に４個、１２月２５日に０個という標本収穫数が予測される。
【００７７】
上記の標本収穫数を収穫日毎に合計すると、１２月１１日は０個、１２月１８日は１２個、１２月２５日は０個と算出される。標本割合＝０．１％を用いると、全体の収穫数２５７，２５８，２５９が予測される。収穫数２５７は、１２月１１日の収穫数として０個を示す。収穫数２５８は、１２月１８日の収穫数として１２，０００個を示す。収穫数２５９は、１２月２５日の収穫数として０個を示す。
【００７８】
上記の例では、収穫数２５７，２５８，２５９は、図５に示した収穫数２３７，２３８，２３９と同一になっている。すなわち、確率分布を出力する予測モデルを使用しても、過学習により分散が過度に小さくなってしまうと、結果的に期待値を出力する予測モデルに近い予測結果が得られることになり予測結果の信頼度が向上しない。
【００７９】
予測モデルが出力する確率分布の分散は、機械学習のイテレーション回数の増加に応じて小さくなる。そのため、機械学習のイテレーションを適切な回数で停止することで、確率分布の分散を適切な大きさに誘導することができる。そこで、機械学習のイテレーションを何れのタイミングで停止すればよいかが問題となる。
【００８０】
ここで、過年度のパプリカの栽培について、着果から収穫までの所要日数の実績を示す標本データは、少数の標本果実についてのみ収集される一方、収穫日毎の全体の収穫数の実績を示す総数データは、出荷管理のために農業機械などを用いて収集されている。そこで、機械学習装置１００は、予測モデルの係数を更新するイテレーション毎に、そのときの予測モデルと訓練データと標本割合から過年度の全体の収穫数を予測し、予測と総数データが示す実績とを比較して、イテレーションを停止するタイミングを判定する。全体の収穫数は、訓練データに対して図６と同様の方法を適用することで予測できる。
【００８１】
予測モデルが出力する確率分布の分散が過度に大きい場合、全体の収穫数の予測は実績と類似しない可能性が高い。また、予測モデルが出力する確率分布の分散が過度に小さい場合も、全体の収穫数の予測は実績と類似しない可能性が高い。一方、予測モデルが出力する確率分布の分散が実際の収穫日のばらつきを反映して最適である場合、全体の収穫数の予測と実績との間の類似度が最大になる可能性が高い。そのため、機械学習装置１００は、類似度が最大になったときの予測モデルを学習結果として採用する。
【００８２】
図９は、機械学習の停止タイミング例を示す図である。
イテレーション回数の増加に応じて、特定の平均気温および平均日射量に対して予測モデルが出力する確率分布は、確率分布２６１，２６２，２６３のように変化する。
【００８３】
確率分布２６１は、学習不足の予測モデルから出力されるものであり、図７の予測モデルに対応する。すなわち、確率分布２６１の分散は過度に大きい。確率分布２６２は、最適な予測モデルから出力されたものであり、図６の予測モデルに対応する。すなわち、確率分布２６２の分散はパプリカの収穫日のばらつきを反映して最適である。確率分布２６３は、過学習された予測モデルから出力されたものであり、図８の予測モデルに対応する。すなわち、確率分布２６３の分散は過度に小さい。
【００８４】
機械学習装置１００は、予測モデルが確率分布２６１を出力するとき、訓練データから図７と同様の方法で収穫数分布２６４を予測する。収穫数分布２６４は、収穫日毎の全体の収穫数の予測を示す。収穫数分布２６４は、収穫数２５４，２５５，２５６に相当する。すなわち、機械学習装置１００は、訓練データのレコード毎に、平均気温および平均日射量を予測モデルに入力して収穫数の確率分布を算出し、確率分布に標本着果数を乗じて収穫日毎の標本収穫数を算出する。機械学習装置１００は、訓練データのレコード毎の予測を合計し、標本割合の逆数を乗じて収穫日毎の収穫数を算出する。
【００８５】
収穫数分布２６４が予測されると、機械学習装置１００は、収穫数分布２６４と収穫数分布２６７とを比較して誤差（総数誤差）を算出する。収穫数分布２６７は、訓練データと同じ年度の収穫状況であって、収穫日毎の全体の収穫数の実績を示す。収穫数分布２６７は、１２月１１の収穫数が３，７００個、１２月１８日の収穫数が５，８００個、１２月２５日の収穫数が２，５００個であることを示す。総数誤差の指標として、例えば、残差平方和を用いる。残差平方和は、収穫日毎に予測と実績の間で収穫数の差の二乗を算出し、差の二乗を合計した数値である。収穫数分布２６４と収穫数分布２６７の残差平方和は、５，５８０，０００である。よって、総数誤差は大きい。
【００８６】
次に、機械学習装置１００は、予測モデルが確率分布２６２を出力するとき、訓練データから図６と同様の方法で収穫数分布２６５を予測する。収穫数分布２６５は、収穫数２５１，２５２，２５３に相当する。収穫数分布２６５が予測されると、機械学習装置１００は、収穫数分布２６５と収穫数分布２６７とを比較して総数誤差を算出する。収穫数分布２６５と収穫数分布２６７の残差平方和は、６０，０００である。よって、総数誤差は予測モデルが確率分布２６１を出力するときよりも小さい。
【００８７】
次に、機械学習装置１００は、予測モデルが確率分布２６３を出力するとき、訓練データから図８と同様の方法で収穫数分布２６６を予測する。収穫数分布２６６は、収穫数２５７，２５８，２５９に相当する。収穫数分布２６６が予測されると、機械学習装置１００は、収穫数分布２６６と収穫数分布２６７とを比較して総数誤差を算出する。収穫数分布２６６と収穫数分布２６７の残差平方和は、５８，３８０，０００である。よって、総数誤差は予測モデルが確率分布２６２を出力するときよりも大きい。
【００８８】
このようにして、機械学習装置１００は、予測モデルが確率分布２６２を出力するときに総数誤差が最小になった、すなわち、類似度が最大になったことを検出する。すると、機械学習装置１００は、機械学習のイテレーションを停止し、確率分布２６２を出力する予測モデルを学習結果として出力する。
【００８９】
図１０は、機械学習のデータフローの例を示す図である。
予測モデル２７０の生成に使用する訓練データは、着果日の異なる複数のレコードを含む。訓練データの各レコードは、着果日２７１、標本着果数２７２、標本日数分布２７３、平均気温２７７および平均日射量２７８を含む。標本日数分布２７３は、所要日数毎の標本収穫数を示す。標本日数分布２７３は、個数で表現されていてもよいし、個数を標本着果数２７２で割った確率で表現されていてもよい。例えば、標本日数分布２７３は、７週間が４０％、８週間が６０％、９週間が０％であることを示す。
【００９０】
平均気温２７７は、１時間毎の屋内の気温であって着果日２７１から収穫日までの期間で平均化したものである。平均日射量２７８は、１時間毎の屋内の日射量であって着果日２７１から収穫日までの期間で平均化したものである。よって、平均気温２７７および平均日射量２７８はそれぞれ２４次元のベクトルであり、合わせて４８次元のベクトルになる。平均気温２７７は、センサ２３によって測定された測定気温２７５から算出される。平均日射量２７８は、センサ２３によって測定された測定日射量２７６から算出される。訓練データは過年度の標本果実を示しているため、着果日２７１から収穫日までの測定気温２７５および測定日射量２７６は既知であり、気象予報データは使用しなくてよい。
【００９１】
また、訓練データとは別に収穫数２７４を示す総数データが予め用意される。収穫数２７４は、収穫日毎の収穫数の実績である。例えば、収穫数２７４は、１２月１１日に３，７００個の果実が収穫され、１２月１８日に５，８００個の果実が収穫され、１２月２５日に２，５００個の果実が収穫されたことを示す。
【００９２】
機械学習が開始されると、予測モデル２７０の係数が初期化される。訓練データのレコード毎に、予測モデル２７０に平均気温２７７および平均日射量２７８が入力され、予測モデル２７０から所要日数分布２８１が出力される。所要日数分布２８１は、所要日数毎の収穫確率の予測を示す。例えば、所要日数分布２８１は、７週間が３３％、８週間が３３％、９週間が３３％であることを示す。訓練データのレコード毎に、所要日数分布２８１と標本日数分布２７３が比較されて誤差が算出される。そして、訓練データのレコード毎の誤差が合算されて、訓練データ全体に対するモデル誤差２８２が算出される。
【００９３】
訓練データのレコード毎の誤差には、例えば、残差平方和を用いる。この残差平方和は、所要日数毎に所要日数分布２８１の値と標本日数分布２７３の値の差を二乗し、複数の所要日数について差の二乗を合計した指標である。所要日数分布２８１と標本日数分布２７３の比較は、３３％と４０％の比較など確率同士の比較として行ってもよい。また、所要日数分布２８１と標本日数分布２７３の比較は、確率に標本着果数２７２を乗ずることで、１．７個と２個の比較など個数同士の比較として行ってもよい。
【００９４】
モデル誤差２８２が算出されると、モデル誤差２８２が小さくなるように予測モデル２７０の係数が更新される。予測モデル２７０の係数を更新する際には、１つ前の係数を退避しておく。以上の予測モデル２７０の更新からモデル誤差２８２の算出までが１回のイテレーションである。下記の停止判定によってイテレーションの停止が決定されるまで予測モデル２７０の更新が繰り返される。停止判定はイテレーション毎に実行される。停止判定は、予測モデル２７０が所要日数分布２８１を出力してから予測モデル２７０が次に更新されるまでの間に、イテレーションを中断して実行してもよい。また、上記のイテレーションと並列に停止判定を実行してもよい。異なるプロセッサまたはプロセッサコアを用いて、イテレーションと停止判定を並列実行してもよい。
【００９５】
所要日数分布２８１が算出されると、訓練データのレコード毎に、収穫確率に標本着果数２７２を乗じて標本収穫数２８３が算出される。標本収穫数２８３は、所要日数毎の標本果実の収穫数の予測を示す。例えば、標本収穫数２８３は、５個の標本果実のうち、７週間が１．７個、８週間が１．７個、９週間が１．７個であることを示す。
【００９６】
訓練データのレコード毎の標本収穫数２８３の所要日数が、着果日２７１に基づいて、収穫日が揃うようにシフトされる。例えば、１０月２３日の７週間後は１０月３０日の６週間後に相当するため、着果日２７１が１０月３０日であるレコードに対応する標本収穫数２８３は、着果日２７１が１０月２３日であるレコードに対応する標本収穫数２８３に対して１週間後ろにシフトされる。訓練データの複数のレコードについて、収穫日が揃った標本収穫数２８３が収穫日毎に合算される。
【００９７】
そして、合算された標本収穫数に標本割合２８４の逆数を乗じて（標本割合２８４で割って）収穫数２８５が算出される。例えば、合算された標本収穫数が１，０００倍される。収穫数２８５は、収穫日毎の果実全体の収穫数の予測を示す。例えば、収穫数２８５は、１２月１１日に４，０００個の果実が収穫され、１２月１８日に４，０００個の果実が収穫され、１２月２５日に４，０００個の果実が収穫されるという予測を示す。
【００９８】
収穫数２８５が算出されると、収穫数２８５と収穫数２７４とが比較されて総数誤差２８６が算出される。総数誤差２８６には、例えば、残差平方和を用いる。そして、前回のイテレーションの総数誤差２８６と今回のイテレーションの総数誤差２８６とが比較される。今回の総数誤差２８６が前回の総数誤差２８６以下であれば、イテレーションの継続が決定される。この場合、モデル誤差２８２に応じて予測モデル２７０が更新される。
【００９９】
一方、今回の総数誤差２８６が前回の総数誤差２８６より大きければ、イテレーションの停止が決定される。この場合、予測モデル２７０は更新されない。最適な予測モデル２７０の係数は前回のイテレーションの係数であるため、退避しておいた予測モデル２７０の係数が読み出され、学習結果として出力される。すなわち、収穫数２７４と収穫数２８５の類似度が最大になり、総数誤差２８６が最小になったことが検出される。ここでは、最適な予測モデル２７０の係数に到達する前は総数誤差２８６が単調に減少し、最適な予測モデル２７０の係数に到達した後は総数誤差２８６が単調に増加すると仮定している。
【０１００】
次に、機械学習装置１００の機能について説明する。
図１１は、機械学習装置の機能例を示すブロック図である。
機械学習装置１００は、気象データ記憶部１２１、標本データ記憶部１２２、総数データ記憶部１２３、予測モデル記憶部１２４、データ収集部１２５、データ加工部１２６、機械学習部１２７、イテレーション制御部１２８および収穫予測部１２９を有する。気象データ記憶部１２１、標本データ記憶部１２２、総数データ記憶部１２３および予測モデル記憶部１２４は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実現される。データ収集部１２５、データ加工部１２６、機械学習部１２７、イテレーション制御部１２８および収穫予測部１２９は、例えば、プログラムを用いて実現される。
【０１０１】
気象データ記憶部１２１は、過年度の着果日から収穫日までの気象データと、今年度の着果日から予測日の前日までの気象データを記憶する。気象データは、センサ２３によって測定された測定気温および測定日射量を含む。また、気象データ記憶部１２１は、今年度の予測日以降の気象予報データを記憶する。気象予報データは、気象データサーバ３１から収集される。気象予報データは、屋外の予報気温および予報日射量を含む。また、気象データ記憶部１２１は、屋外の予報気温および予報日射量を、屋内の予想気温および予想日射量に変換するための環境パラメータを記憶する。
【０１０２】
標本データ記憶部１２２は、過年度の標本果実毎の着果日および収穫日を示す標本データと、今年度の標本果実毎の着果日を示す標本データを記憶する。また、標本データ記憶部１２２は、全体の果実に対する標本果実の割合である標本割合を記憶する。
【０１０３】
総数データ記憶部１２３は、過年度の収穫日毎の収穫数を示す総数データを記憶する。
予測モデル記憶部１２４は、学習結果としての予測モデルを記憶する。
データ収集部１２５は、気象データ記憶部１２１、標本データ記憶部１２２および総数データ記憶部１２３に記憶される各種のデータを収集する。データの収集方法として、データ収集部１２５は、ユーザからデータの入力を受け付けることがある。また、データ収集部１２５は、他の情報処理装置からデータを受信することがある。
【０１０４】
データ加工部１２６は、気象データ記憶部１２１に記憶された過年度の気象データと、標本データ記憶部１２２に記憶された過年度の標本データを加工して、着果日が異なる複数のレコードを含む訓練データを生成する。具体的には、データ加工部１２６は、過年度の標本データから着果日を抽出し、着果日毎に標本着果数をカウントし、着果日毎に着果日と収穫日の差から標本日数分布を算出する。また、データ加工部１２６は、過年度の気象データから、着果日毎に着果日から収穫日までの測定気温および測定日射量を抽出し、１時間毎の平均気温および平均日射量を算出する。
【０１０５】
また、データ加工部１２６は、気象データ記憶部１２１に記憶された今年度の気象データおよび気象予報データと、標本データ記憶部１２２に記憶された今年度の標本データを加工して、収穫予測用の入力データを生成する。具体的には、データ加工部１２６は、今年度の標本データから着果日を抽出し、着果日毎に標本着果数をカウントする。また、データ加工部１２６は、今年度の気象データから、着果日毎に着果日から予測日の前日までの測定気温および測定日射量を抽出する。データ加工部１２６は、気象予報データから、予測日から収穫時期までの予報気温および予報日射量を抽出し、気象データ記憶部１２１に記憶された環境パラメータを用いて、屋内の予想気温および予想日射量に変換する。そして、データ加工部１２６は、着果日毎に着果日から収穫時期までの通算の１時間毎の平均気温および平均日射量を算出する。
【０１０６】
データ加工部１２６は、訓練データを機械学習部１２７に提供する。また、データ加工部１２６は、総数データ記憶部１２３に記憶された総数データをイテレーション制御部１２８に提供する。データ加工部１２６は、入力データを収穫予測部１２９に提供する。
【０１０７】
機械学習部１２７は、異なる着果日についての複数のレコードを含む訓練データを用いて機械学習を行う。使用する機械学習アルゴリズムは予め指定されている。生成される予測モデルは、着果から収穫までの所要日数の確率分布を出力する。機械学習部１２７は、予測モデルの係数を更新して訓練データに対するモデル誤差を算出することを繰り返す。機械学習部１２７は、イテレーション制御部１２８からイテレーションの停止が指示されると、１つ前の予測モデルを予測モデル記憶部１２４に出力する。
【０１０８】
イテレーション制御部１２８は、機械学習部１２７が予測モデルを更新する毎に、予測モデルが出力する所要日数分布と標本着果数と標本割合から、過年度の収穫日毎の全体の収穫数を予測し、総数データが示す実績と比較する。イテレーション制御部１２８は、全体の収穫数の予測と実績の間の総数誤差を算出し、総数誤差が前回より増えている場合、イテレーションを停止するよう機械学習部１２７に指示する。
【０１０９】
収穫予測部１２９は、予測モデル記憶部１２４に記憶された予測モデルとデータ加工部１２６から提供される入力データに基づいて、今年度の収穫日毎の収穫数を予測する。具体的には、収穫予測部１２９は、今年度の平均気温および平均日射量を予測モデルに入力し、着果日毎の所要日数分布を予測する。収穫予測部１２９は、着果日に所要日数を加えて収穫日を算出すると共に、所要日数分布が示す確率に標本着果数を乗じて標本収穫数を算出し、標本割合の逆数を乗じて収穫数に変換する。収穫予測部１２９は、異なる着果日の収穫数を収穫日毎に合算し、収穫日毎の全体の収穫数を予測する。
【０１１０】
収穫予測部１２９は、収穫日毎の全体の収穫数の予測結果を出力する。例えば、収穫予測部１２９は、表示装置１１１に予測結果を表示する。また、例えば、収穫予測部１２９は、ＨＤＤ１０３などの不揮発性ストレージに予測結果を保存する。また、例えば、収穫予測部１２９は、プリンタなどの他の出力デバイスに予測結果を出力する。また、例えば、収穫予測部１２９は、他の情報処理装置に予測結果を送信する。
【０１１１】
図１２は、気象データと標本データと総数データのテーブル例を示す図である。
気象データテーブル１３１は、気象データ記憶部１２１に記憶される。気象データテーブル１３１は、過年度の気象データを含む。今年度の気象データや気象予報データも、気象データテーブル１３１と同様のテーブルで管理することが可能である。気象データテーブル１３１は、日時、気温および日射量の項目を含む。日時は、１時間刻みである。気温は、気温の１時間の平均である。気温の単位は、例えば、℃である。日射量は、瞬間日射量の１時間の平均である。日射量の単位は、例えば、ｋＷ／ｍ２である。
【０１１２】
標本データテーブル１３２は、標本データ記憶部１２２に記憶される。標本データテーブル１３２は、過年度の標本データを含む。今年度の標本データも、標本データテーブル１３２と同様のテーブルで管理することが可能である。ただし、今年度の標本データについては収穫日は登録されない。標本データテーブル１３２は、品種、果実番号、着果日および収穫日の項目を含む。品種は、パプリカの品種であり、果実の色が異なる赤品種と黄品種と橙品種を含む。収穫予測は品種毎に行われる。果実番号は、標本果実を個々に識別する識別番号である。同じ品種の中で一意な果実番号が標本果実に付与される。着果日は、標本果実の着果が観測された日である。収穫日は、標本果実を収穫した日である。ただし、データ管理の都合上、着果日および収穫日は１週間の中の特定の曜日の日付である。
【０１１３】
総数データテーブル１３３は、総数データ記憶部１２３に記憶される。総数データテーブル１３３は、過年度の総数データを含む。総数データテーブル１３３は、収穫日、赤個数、黄個数および橙個数の項目を含む。収穫日は、果実を収穫した日である。ただし、データ管理の都合上、収穫日は１週間の中の特定の曜日の日付である。赤個数は、赤品種の収穫数である。黄個数は、黄品種の収穫数である。橙個数は、橙品種の収穫数である。
【０１１４】
図１３は、訓練データテーブルの例を示す図である。
訓練データテーブル１３４は、気象データテーブル１３１および標本データテーブル１３２に基づいて生成され、機械学習に使用される。訓練データテーブル１３４は、着果日、標本着果数、目的変数および説明変数の項目を含む。着果日は、標本データテーブル１３２に出現する着果日である。標本着果数は、標本データテーブル１３２に登録された標本果実のうち着果日が同じ標本果実の個数である。
【０１１５】
目的変数は、標本日数分布である。標本日数分布は、６週間が０個、７週間が２個、８週間が３個のように、所要日数毎の標本果実の個数である。所要日数は、標本データテーブル１３２の着果日と収穫日の差である。所要日数毎の標本果実は、標本データテーブル１３２に登録された標本果実のうち所要日数が同じ標本果実である。所要日数毎の標本果実の個数の合計は、標本着果数に一致する。
【０１１６】
説明変数は、１時間毎の平均気温および１時間毎の平均日射量を含む。１時間毎の平均気温は、着果日から収穫日までの各日付の気温を気象データテーブル１３１から抽出し、０時、１時、２時、…のように時刻で分類して平均化することで算出される。１時間毎の平均日射量は、着果日から収穫日までの各日付の日射量を気象データテーブル１３１から抽出し、０時、１時、２時、…のように時刻で分類して平均化することで算出される。なお、ある着果日に対応する収穫日は、標本日数分布で１以上の標本果実が収穫された収穫日のうち、最後の収穫日でもよいし最初の収穫日でもよいし中心の収穫日でもよい。
【０１１７】
次に、機械学習装置１００の処理手順について説明する。
図１４は、機械学習の手順例を示すフローチャートである。
（Ｓ１０）データ収集部１２５は、気象データと標本データと総数データを収集する。機械学習は品種毎に行う。ただし、品種を予測モデルの説明変数に加えてもよい。
【０１１８】
（Ｓ１１）データ加工部１２６は、標本データから着果日を抽出し、標本果実を着果日で分類する。データ加工部１２６は、着果日毎に標本果実をカウントして訓練データの標本着果数とする。また、データ加工部１２６は、着果日と収穫日の差である所要日数を算出し、各所要日数の標本果実をカウントして訓練データの標本日数分布とする。
【０１１９】
（Ｓ１２）データ加工部１２６は、着果日毎に気象データから、着果日から収穫日までの気温および日射量を抽出する。データ加工部１２６は、抽出した気温を時刻で分類し、各時刻の気温の平均を訓練データの平均気温とする。また、データ加工部１２６は、抽出した日射量を時刻で分類し、各時刻の日射量の平均を訓練データの平均日射量とする。
【０１２０】
（Ｓ１３）機械学習部１２７は、予測モデルの係数を初期化する。
（Ｓ１４）機械学習部１２７は、訓練データのレコードを１つ選択する。
（Ｓ１５）機械学習部１２７は、平均気温および平均日射量を示す４８次元の説明変数のデータを予測モデルに入力し、予測モデルから目的変数のデータを読み出すことで所要日数分布を予測する。所要日数分布は、所要日数毎の確率を示す。
【０１２１】
（Ｓ１６）機械学習部１２７は、ステップＳ１４で訓練データの全てのレコードを選択したか判断する。全てのレコードを選択した場合はステップＳ１７に進み、訓練データに未選択のレコードがある場合はステップＳ１４に戻る。
【０１２２】
（Ｓ１７）機械学習部１２７は、訓練データのレコード毎に、ステップＳ１５で予測された所要日数分布と標本日数分布とを比較して誤差を算出する。誤差は、例えば、残差平方和である。機械学習部１２７は、訓練データ全体に対するモデル誤差を算出する。例えば、モデル誤差は、訓練データのレコード毎の誤差の合計である。
【０１２３】
図１５は、機械学習の手順例を示すフローチャート（続き）である。
（Ｓ１８）イテレーション制御部１２８は、訓練データのレコードを１つ選択する。
（Ｓ１９）イテレーション制御部１２８は、ステップＳ１５で機械学習部１２７が算出した所要日数分布の確率に標本着果数を乗じて、所要日数毎の標本収穫数を予測する。
【０１２４】
（Ｓ２０）イテレーション制御部１２８は、ステップＳ１８で訓練データの全てのレコードを選択したか判断する。全てのレコードを選択した場合はステップＳ２１に進み、訓練データに未選択のレコードがある場合はステップＳ１８に戻る。
【０１２５】
（Ｓ２１）イテレーション制御部１２８は、異なる着果日の標本収穫数を、収穫日が揃うように着果日に応じてずらし、収穫日毎に標本収穫数を集計する。
（Ｓ２２）イテレーション制御部１２８は、収穫日毎の合計の標本収穫数に標本割合の逆数を乗じて、収穫日毎の全体の収穫数を予測する。
【０１２６】
（Ｓ２３）イテレーション制御部１２８は、総数データが示す収穫日毎の収穫数の実績とステップＳ２２で算出した収穫日毎の収穫数の予測とを比較し、総数誤差を算出する。総数誤差は、例えば、残差平方和である。
【０１２７】
（Ｓ２４）イテレーション制御部１２８は、ステップＳ１４〜Ｓ１７でモデル誤差を評価するイテレーションが２回目以降であるか判断する。イテレーションが２回目以降の場合はステップＳ２５に進み、１回目である場合はステップＳ２６に進む。
【０１２８】
（Ｓ２５）イテレーション制御部１２８は、今回の総数誤差が前回の総数誤差より大きいか判断する。今回の総数誤差が前回の総数誤差より大きい場合はステップＳ２６に進み、今回の総数誤差が前回の総数誤差以下である場合はステップＳ２７に進む。
【０１２９】
（Ｓ２６）イテレーション制御部１２８は、機械学習部１２７にイテレーション継続を指示する。機械学習部１２７は、現在の予測モデルの係数を退避し、ステップＳ１７で算出したモデル誤差が小さくなるように係数を更新する。そして、ステップＳ１４に戻る。
【０１３０】
（Ｓ２７）イテレーション制御部１２８は、退避してある予測モデルの係数を読み出し、１つ前のイテレーションで使用した予測モデルを予測モデル記憶部１２４に出力する。
図１６は、収穫予測の手順例を示すフローチャートである。
【０１３１】
（Ｓ３０）データ収集部１２５は、今年度の気象データと標本データを収集する。また、データ収集部１２５は、予測日以降の気象予報データを収集する。
（Ｓ３１）データ加工部１２６は、標本データから着果日を抽出し、標本果実を着果日で分類する。データ加工部１２６は、着果日毎に標本着果数をカウントする。
【０１３２】
（Ｓ３２）データ加工部１２６は、気象予報データから、予測日から収穫時期までの予報気温および予報日射量を抽出する。データ加工部１２６は、環境パラメータを用いて、予報気温および予報日射量を屋内の予想気温および予想日射量に変換する。
【０１３３】
（Ｓ３３）データ加工部１２６は、着果日毎に気象データから、着果日から予測日の前日までの測定気温および測定日射量を抽出する。データ加工部１２６は、測定気温および予想気温を時刻で分類し、各時刻の平均気温を算出する。また、データ加工部１２６は、測定日射量および予想日射量を時刻で分類し、各時刻の平均日射量を算出する。
【０１３４】
（Ｓ３４）収穫予測部１２９は、着果日を１つ選択する。
（Ｓ３５）収穫予測部１２９は、選択した着果日に対応する平均気温および平均日射量を予測モデルに入力し、所要日数分布を予測する。
【０１３５】
（Ｓ３６）収穫予測部１２９は、選択した着果日に対応する標本着果数を、所要日数分布が示す確率に乗じて、所要日数毎の標本収穫数に変換する。
（Ｓ３７）収穫予測部１２９は、ステップＳ３４で、標本データに出現する全ての着果日を選択したか判断する。全ての着果日を選択した場合はステップＳ３８に進み、未選択の着果日がある場合はステップＳ３４に戻る。
【０１３６】
（Ｓ３８）収穫予測部１２９は、異なる着果日の標本収穫数を、収穫日が揃うように着果日に応じてずらし、収穫日毎に標本収穫数を集計する。
（Ｓ３９）収穫予測部１２９は、収穫日毎の合計の標本収穫数に標本割合の逆数を乗じて、収穫日毎の全体の収穫数を予測する。
【０１３７】
（Ｓ４０）収穫予測部１２９は、収穫日毎の収穫数を示す予測結果を出力する。例えば、収穫予測部１２９は、予測結果を表示装置１１１に表示する。
第２の実施の形態の情報処理システムによれば、過年度の着果から収穫までの所要日数とその期間の平均気温および平均日射量とを対応付けた訓練データを用いて、平均気温および平均日射量から所要日数を予測する予測モデルが学習される。そして、学習された予測モデルと今年度の着果状況から、今年度の収穫日および収穫数が予測される。よって、パプリカの収穫前に農家の運営にとって有用な情報を提供することができる。
【０１３８】
また、予測モデルは所要日数の期待値ではなく所要日数の確率分布を出力するよう学習される。よって、同じ育成環境のもとで育てても成長速度が大きく異なるというパプリカの個体差の性質を考慮して、収穫日のばらつきを予測することが可能となる。また、学習途中の予測モデルを用いて訓練データから予測される全体収穫数と過年度の実際の全体収穫数とが比較され、総数誤差が最小になったことが検出されると機械学習のイテレーションが停止され、総数誤差が最小になったときの予測モデルが出力される。よって、過学習により予測モデルが過度に分散の小さい確率分布を出力するようになることを抑制でき、予測モデルの予測精度を向上させることができる。また、少ない標本データからであっても、収穫日のばらつきを適切に反映した予測モデルが生成される。よって、標本果実を観測して標本データを採取する農家の負担を軽減できる。
【符号の説明】
【０１３９】
１０  機械学習装置
１１  記憶部
１２  処理部
１３  訓練データ
１４  総数データ
１５  学習処理
１６  予測モデル
１７  予測分布
【図１】
2020144720.tif 000003
【図２】
2020144720.tif 000004
【図３】
2020144720.tif 000005
【図４】
2020144720.tif 000006
【図５】
2020144720.tif 000007
【図６】
2020144720.tif 000008
【図７】
2020144720.tif 000009
【図８】
2020144720.tif 000010
【図９】
2020144720.tif 000011
【図１０】
2020144720.tif 000012
【図１１】
2020144720.tif 000013
【図１２】
2020144720.tif 000014
【図１３】
2020144720.tif 000015
【図１４】
2020144720.tif 000016
【図１５】
2020144720.tif 000017
【図１６】
2020144720.tif 000018