JP2021174062A - 機械学習プログラム、機械学習方法および機械学習装置 - Google Patents

機械学習プログラム、機械学習方法および機械学習装置 Download PDF

Info

Publication number
JP2021174062A
JP2021174062A JP2020074842A JP2020074842A JP2021174062A JP 2021174062 A JP2021174062 A JP 2021174062A JP 2020074842 A JP2020074842 A JP 2020074842A JP 2020074842 A JP2020074842 A JP 2020074842A JP 2021174062 A JP2021174062 A JP 2021174062A
Authority
JP
Japan
Prior art keywords
prediction model
sample
date
prediction
harvest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020074842A
Other languages
English (en)
Inventor
由信 飯村
Yoshinobu Iimura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020074842A priority Critical patent/JP2021174062A/ja
Publication of JP2021174062A publication Critical patent/JP2021174062A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】農作物の収穫予測の精度が向上した予測モデルを生成する。【解決手段】標本農作物の育成環境の情報と収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データを取得する。育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、訓練データを用いて予測モデルを更新することを繰り返す学習処理を実行する。学習処理において繰り返される予測モデルの更新それぞれにおいて、複数のレコードそれぞれに対して更新前後の予測モデルにより算出される確率分布の平均および分散の変動が所定範囲内になるよう制御する。【選択図】図12

Description

本発明は機械学習プログラム、機械学習方法および機械学習装置に関する。
コンピュータを利用したデータ分析として、機械学習が行われることがある。機械学習では、結果が既知である複数の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因(説明変数や独立変数と言うことがある)と結果(目的変数や従属変数と言うことがある)との間の関係を一般化した予測モデルを生成する。生成された予測モデルを用いることで、未知の結果を予測することができる。
機械学習は、農作物の収穫予測に用いられることがある。例えば、農作物の最適収穫日を予測する予測装置が提案されている。提案の予測装置は、収穫前の異なる複数の日に撮像された農作物の画像と、当該農作物が実際に収穫された収穫日とを含む教師データを収集する。予測装置は、教師データから機械学習により予測モデルを生成し、予測モデルに対象の農作物の画像を入力して対象の農作物の収穫日を予測する。
特開2018−169993号公報
農作物の収穫予測を可能とする機械学習では、気温や日射量などの育成環境を説明変数とし、着果日などの基準日から収穫日までの所要日数を目的変数とする予測モデルを生成することが考えられる。このとき、農作物の成長速度の個体差を表現するため、所要日数の単一の期待値ではなく確率分布を出力するように予測モデルを生成することが考えられる。しかし、機械学習に使用する収穫日毎の収穫数のデータには、摘花作業などの作業状況や気象の偶然性などの影響を受けて、異常値が含まれることがある。そのため、異常値を含むデータに対する過学習によって、特定の説明変数の値に対して不自然な確率分布を出力する予測モデルが生成されてしまうことがある。その結果、予測モデルを用いた農作物の収穫予測の精度が低下することがあるという問題がある。
1つの側面では、本発明は、農作物の収穫予測の精度が向上した予測モデルを生成する機械学習プログラム、機械学習方法および機械学習装置を提供することを目的とする。
1つの態様では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データを取得する。育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、訓練データを用いて、予測モデルにより算出される確率分布の誤差を評価して予測モデルを更新することを繰り返す学習処理を実行する。学習処理において繰り返される予測モデルの更新それぞれにおいて、複数のレコードそれぞれに対して更新前後の予測モデルにより算出される確率分布の平均および分散の変動が所定範囲内になるよう制御する。
また、1つの態様では、コンピュータが実行する機械学習方法が提供される。また、1つの態様では、記憶部と処理部とを有する機械学習装置が提供される。
1つの側面では、農作物の収穫予測の精度が向上した予測モデルを生成できる。
第1の実施の形態の機械学習装置の例を説明する図である。 第2の実施の形態の情報処理システムの例を示す図である。 機械学習装置のハードウェア例を示すブロック図である。 収穫予測のデータフローの例を示す図である。 期待値を出力する予測モデルの使用例を示す図である。 確率分布を出力する予測モデルの使用例を示す図である。 機械学習の停止タイミング例を示す図である。 機械学習のデータフローの例を示す図である。 収穫数の実績および予測の例を示す第1のグラフである。 収穫数の実績および予測の例を示す第2のグラフである。 収穫数の実績および予測の例を示す第3のグラフである。 機械学習装置の機能例を示すブロック図である。 気象データと標本データと総数データのテーブル例を示す図である。 訓練データテーブルの例を示す図である。 機械学習の手順例を示すフローチャートである。 機械学習の手順例を示すフローチャート(続き)である。 収穫予測の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の機械学習装置の例を説明する図である。
第1の実施の形態の機械学習装置10は、農作物の収穫予測に用いる予測モデルを機械学習によって生成する。機械学習装置10を、情報処理装置やコンピュータなどと言うこともできる。機械学習装置10は、クライアント装置でもよいしサーバ装置でもよい。
機械学習装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
記憶部11は、訓練データ13および総数データ14を記憶する。訓練データ13および総数データ14は、収穫済みの農作物に関する履歴データである。訓練データ13および総数データ14は、前年に収穫された農作物など過去に収穫された農作物の育成状況や収穫状況を示す。訓練データ13が示す農作物と総数データ14が示す農作物は、同じ年に収穫されたものである。訓練データ13および総数データ14は、数ヶ月分のデータであってもよいし、1年分のデータであってもよいし、複数年分のデータであってもよい。農作物には果実が含まれ得る。果実は、野菜や果物など植物の食用の実であり、農家によって栽培される。農作物は、同じ育成環境で育てても成長に個体差があり、収穫可能日にばらつきが生じる。農作物は、パプリカなど成長の個体差が大きい種類でもよい。
訓練データ13は、収穫された農作物全体(農作物集合)の一部である標本農作物に関する複数のレコードを含む。農作物集合のうち標本農作物は、育成状況や収穫状況について個別の詳細情報を収集したものである。農作物集合のうち他の農作物は、個別の詳細情報を収集しなかったものである。詳細情報の収集には手間がかかるため、農作物集合に対する標本農作物の割合(標本割合)は、0.01%〜0.3%程度でよい。
訓練データ13に含まれる複数のレコードは、それぞれ、標本農作物の育成環境の情報と所要日数の情報とを対応付けている。育成環境の情報は、気温や日射量など農作物の成長と相関のある指標を含む。例えば、育成環境の情報は、下記の基準日から収穫日までの間の平均気温および平均日射量を含む。ただし、農作物の成長と相関が認められれば、基準日より前の気温や日射量を用いてもよいし、累積気温や累積日射量を用いてもよい。標本農作物によって基準日が異なることがある。基準日が異なると、結果的にその標本農作物に対応付けられる育成環境の情報も変わることがある。
所要日数の情報は、標本農作物について所定の状態が観測された基準日から、当該標本農作物が収穫された収穫日までの日数を示す。例えば、基準日は、植物が実をつけたことが観測された日(着果日)である。ただし、基準日は、着果前に植物が所定の状態になった日でもよいし、着果後に標本農作物が所定の状態になった日でもよい。収穫管理が週単位で行われている場合、所要日数の単位が週であってもよい。2以上の標本農作物が同じ基準日をもつ場合、所要日数の情報は、各標本農作物の所要日数を列挙したものでもよいし、所要日数順に収穫された標本農作物の個数を列挙したものでもよいし、所要日数順に収穫された標本農作物の割合を列挙したものでもよい。訓練データ13は、例えば、基準日が異なるレコード13a,13b,13cを含む。
総数データ14は、訓練データ13が示す標本農作物および他の農作物を含む農作物集合について、収穫日に対する収穫数(収穫された農作物の個数)の実績分布を示す。農作物は、十分に成長したと農家が判断した日に植物から切り離されて収穫される。着果日の違いや成長の個体差により、収穫日にばらつきが生じる。収穫管理が週単位の場合、総数データ14は、収穫日の属する週に対する収穫数の実績分布を示してもよい。総数データ14は、出荷管理のために収集され、訓練データ13よりも収集の手間が少ない。
一例として、訓練データ13に含まれる1つのレコードは、特定の平均気温や平均日射量のもとで育成された2以上の標本農作物について、着果日から収穫日までの所要日数が7週間であり、標準偏差が1.5週であったという情報を示す。また、訓練データ13に含まれる別のレコードは、別の平均気温や平均日射量のもとで育成された2以上の標本農作物について、着果日から収穫日までの所要日数が8週間であり、標準偏差が2.0週であったという情報を示す。総数データ14は、ある週に3,700個が収穫され、その次の週に5,800個が収穫され、その次の週に2,500個が収穫されたことを示す。
処理部12は、学習処理15を実行して予測モデル16を生成する。予測モデル16の生成には、ニューラルネットワーク(NN:Neural Network)、重回帰分析、遺伝的プログラミング(GP:Genetic Programming)など、様々な機械学習アルゴリズムを使用することが可能である。予測モデル16は、育成環境の情報を説明変数として受け付け、所要日数の確率分布を目的変数として出力する統計モデルである。訓練データ13の所要日数の単位が週である場合、予測モデル16は、週数の確率分布を出力するようにしてもよい。予測モデル16は、最も確率が高い所要日数(所要日数の期待値)のみを出力する代わりに、異なる所要日数に対する確率の情報を出力する。予測モデル16が出力する確率分布は、所要日数の平均および分散を含む。なお、「分散」は、狭義の分散に限らず、標準偏差などばらつきの程度を示す他の指標であってもよい。
学習処理15では、処理部12が、訓練データ13を用いて、予測モデル16により算出される確率分布の誤差を評価して予測モデル16を更新することを繰り返す。確率分布の誤差の評価では、平均の誤差や分散の誤差が評価される。例えば、処理部12は、訓練データ13に含まれる複数のレコードそれぞれについて、当該レコードが示す育成環境の情報を予測モデル16に入力し、当該レコードが示す所要日数の情報を用いて、予測モデル16が出力する確率分布の誤差を評価する。そして、例えば、処理部12は、誤差が小さくなるように、予測モデル16に含まれるパラメータの値を更新する。ニューラルネットワークの場合、ノード間のエッジの重みが更新される。
ここで、処理部12は、学習処理15において予測モデル16を更新する繰り返し(イテレーション)の回数を制御する。イテレーション回数が少ない場合、予測モデル16が出力する確率分布は、訓練データ13に対する誤差が大きく訓練データ13へのフィッティング精度が低いものとなる。イテレーション回数の増加に応じて、予測モデル16が出力する確率分布は、訓練データ13に対する誤差が段階的に小さくなり、訓練データ13へのフィッティング精度が段階的に高くなっていく。
ただし、訓練データ13が示す標本農作物は全体の農作物集合に対して少数であると共に、農作物の成長には個体差がある。よって、訓練データ13が示す所要日数の標本は、全体の農作物集合に対する真実の確率分布を忠実に表しているとは限らず、バイアスが存在する。このため、イテレーション回数を増やし過ぎると、過学習により、予測モデル16が訓練データ13に過度にフィットするものとなってしまう。過学習された予測モデル16が出力する確率分布は、分散が過度に小さいものとなり、個体差により所要日数がばらつくという真実の確率分布から乖離したものとなるおそれがある。
そこで、処理部12は、総数データ14を参照して、学習処理15における予測モデル16の更新を適切なタイミングで停止するようにする。具体的には、処理部12は、学習処理15の途中において、訓練データ13に含まれる複数のレコードが示す育成環境の情報から、現在の予測モデル16により複数の確率分布を算出し、これら複数の確率分布を合成して予測分布17を算出する。例えば、処理部12は、レコード13aに対応する確率分布17aと、レコード13bに対応する確率分布17bと、レコード13cに対応する確率分布17cとを算出して合成する。予測分布17は、例えば、予測モデル16が更新される毎に算出される。予測分布17は、標本農作物および他の農作物を含む農作物集合について、収穫日に対する収穫数の分布を予測したものである。
訓練データ13が、着果日などの基準日が異なる標本農作物のデータを含んでいる場合、例えば、訓練データ13に基準日を含めておき、予測モデル16が出力する複数の確率分布を基準日に応じてシフトして合成すればよい。予測モデル16が週数の確率分布を出力する場合、予測分布17は、収穫日の属する週に対する収穫数の分布を示してもよい。また、処理部12は、標本割合を用いて、標本農作物の収穫数の予測分布を全体の農作物集合の収穫数の予測分布17に変換してもよい。例えば、予測分布17は、標本農作物および他の農作物を含む農作物集合のうち、ある週に3,600個が収穫され、その次の週に6,000個が収穫され、その次の週に2,400個が収穫されるという予測を示す。
そして、処理部12は、予測分布17と総数データ14が示す実績分布との間の類似度を評価し、類似度に基づいて学習処理15の停止タイミングを判定する。学習処理15の初期では、予測モデル16を更新する毎に予測モデル16の出力が真実の確率分布に近付き、その結果として予測分布17が総数データ14に近付く。一方、過学習になると、予測モデル16を更新する毎に予測モデル16が過度に小さい分散を出力して真実の確率分布から遠ざかり、その結果として予測分布17が総数データ14から遠ざかる。
そこで、例えば、処理部12は、予測モデル16が更新される毎に類似度を評価して類似度のピークを検出し、ピークが検出されると学習処理15を停止して、ピークに対応する予測モデル16を学習結果として出力する。処理部12は、予測分布17と総数データ14が示す実績分布との間の類似度を示す指標として両者の誤差(総数誤差)を算出し、総数誤差が最小になるタイミングを検出するようにしてもよい。誤差は、収穫日毎に予測収穫数と実績収穫数の差の二乗を合計した残差平方和でもよい。また、処理部12は、類似度の評価結果が、予測分布17と総数データ14が示す実績分布とが所定の基準以上類似することを示す場合に、学習処理15を停止することとしてもよい。
ただし、総数データ14には、摘花作業などの作業状況や気象の偶然性などに起因して、異常値が含まれることがあり、異常値前後に収穫数の急峻な変動が現れることがある。この場合、予測分布17が総数データ14に最も類似するまで学習処理15を進めると、異常値の影響を受けて、特定の育成環境に対して不自然な確率分布を算出するような予測モデル16が生成されてしまうことがある。例えば、予測分布17の構成要素である確率分布17a,17b,17cの中に、分散が過度に小さい不自然な確率分布が出現してしまうことがある。その結果、予測モデル16を用いた収穫予測の精度が低下することがある。これは、過学習の問題がまだ残っていると言える。
そこで、学習処理15を継続させる場合、処理部12は、学習処理15による予測モデル16の更新毎に、訓練データ13に含まれる複数のレコードに対応する複数の確率分布それぞれに対して制約条件を設定する。処理部12は、制約条件を満たすように、予測モデル16のパラメータの値を更新する。具体的には、処理部12は、更新前後の予測モデル16により算出される複数の確率分布それぞれの平均および分散の変動が所定範囲内になるよう制御する。例えば、処理部12は、確率分布17a,17b,17cの何れも、所要日数の平均が予測モデル16の更新前から所定量を超えて変動しないよう制限する。また、例えば、処理部12は、確率分布17a,17b,17cの何れも、所要日数の標準偏差が所定範囲に収まるように制限する。これにより、訓練データ13の複数のレコードに対応する複数の確率分布の何れも、不自然な分布になることが抑制され、予測モデル16が特定の育成環境に対して不自然な確率分布を出力してしまうリスクを低減できる。
第1の実施の形態の機械学習装置10によれば、気温や日射量などの育成環境の情報から、着果日などの基準日から収穫日までの所要日数を予測する予測モデル16が生成される。よって、農作物の収穫日および収穫数の予測が可能となる。また、予測モデル16は、所要日数の期待値ではなく所要日数の確率分布を出力するように学習される。よって、同じ育成環境のもとで育てても成長速度が異なるという農作物の個体差の性質を考慮して、収穫日のばらつきを表現することが可能となる。
また、訓練データ13に含まれる個々のレコードに対して予測モデル16の予測結果の誤差を評価することに加え、訓練データ13の全体から予想される収穫数の予測分布17と総数データ14が示す収穫数の実績分布との間の類似度が評価される。そして、この類似度に基づいて、学習処理15による予測モデル16の更新のイテレーションが停止される。よって、過学習により予測モデル16が過度に分散の小さい確率分布を出力するようになることを抑制でき、予測モデル16の予測精度が向上する。
特に、個々の標本農作物について基準日や収穫日などの詳細情報を収集することは農家の負担が大きいことから、訓練データ13が十分な数の標本農作物のデータを含んでいないことがある。また、成長の個体差から、訓練データ13が示す所要日数にはバイアスがある。このような訓練データ13を用いて予測モデル16を生成すると、過学習が生じた場合に、予測モデル16が不適切な分散をもつ確率分布を出力してしまう可能性が高い。これに対して、機械学習装置10によれば、過学習が抑制され、予測モデル16が適切な分散をもつ確率分布を出力でき、収穫日のばらつきを表現することが可能となる。
また、予測モデル16の1回の更新にあたり、訓練データ13に含まれる複数のレコードに対応する複数の確率分布それぞれに対して、所要日数の平均および分散の制約条件が設定される。そして、この制約条件が満たされる範囲で、予測モデル16のパラメータの値が更新される。よって、総数データ14に異常値が含まれていても、それら複数の確率分布の一部が不自然な平均や不自然な分散をもつことを抑制でき、特定の育成環境の情報に対して予測モデル16が不自然な確率分布を出力してしまうことを抑制できる。このように、過学習を抑制して、予測モデル16の予測精度を向上させることができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、機械学習を利用して農作物の収穫日および収穫数を予測する。収穫日および収穫数の予測は、農家が出荷先と契約する際の基礎資料として使用することができる。第2の実施の形態の情報処理システムは、成長の個体差が大きく収穫日のばらつきが大きい農作物の管理に好適である。第2の実施の形態では、農作物の種類としてパプリカを想定する。ただし、第2の実施の形態の情報処理システムは、パプリカ以外の農作物の管理に適用することも可能である。
第2の実施の形態の情報処理システムは、ビニールハウス20、ネットワーク30、気象データサーバ31および機械学習装置100を含む。
ビニールハウス20の屋内は、パプリカを栽培する農地として標本栽培エリア21および一般栽培エリア22を含む。標本栽培エリア21で栽培されるパプリカは、農家が着果日および収穫日を個別に観測する標本果実である。一般栽培エリア22で栽培されるパプリカは、着果日および収穫日を個別に観測しない果実である。標本栽培エリア21で栽培される標本果実は、標本栽培エリア21と一般栽培エリア22を合わせた果実全体の約0.1%である。ただし、出荷管理のため、収穫日毎の収穫総数はカウントされる。また、農地を標本栽培エリア21と一般栽培エリア22に分けず、農地内に点在する幾つかの木の果実を標本果実として選択してもよい。また、図2には1つのビニールハウスを示しているが、農地が複数のビニールハウスに分割されていてもよい。また、ガラス室などビニールハウス以外の園芸施設で農作物が栽培されてもよい。
ビニールハウス20の屋内には、センサ23が設置されている。センサ23は、少なくとも気温および日射量を測定するセンサデバイスである。センサ23が測定する気温および日射量は、ビニールハウス20の屋内のものであり、屋外の気温および日射量とは異なる。センサ23は、測定されたデータを定期的に所定の情報処理装置に送信する。
ネットワーク30は、インターネットなどの広域データ通信ネットワークを含む。ネットワーク30には、気象データサーバ31および機械学習装置100が接続されている。センサ23がネットワーク30に接続されることもある。
気象データサーバ31は、現在日以降の気象予報を示す気象予報データを提供するサーバコンピュータである。気象予報データは、公的機関または民間気象会社により提供される。気象データサーバ31は、機械学習装置100からの要求に応じて気象予報データを機械学習装置100に送信する。気象予報データは、現在日以降の屋外の予報気温および予報日射量を含む。予報気温および予報日射量は、1時間毎の数値であることが好ましい。数値は、翌日の午前6時の気温および日射量といった日単位の予報でもよいし、翌週の午前6時の平均気温および平均日射量といった週単位の予報でもよいし、翌月の午前6時の平均気温および平均日射量といった月単位の予報でもよい。
機械学習装置100は、機械学習により予測モデルを生成し、予測モデルを用いてパプリカの収穫日および収穫数を予測するコンピュータである。機械学習装置100は、過年度(例えば、前年度)における個々の標本果実の着果日および収穫日を示す標本データを収集する。また、機械学習装置100は、センサ23によって測定された気温および日射量を示す気象データを収集する。機械学習装置100は、標本データおよび気象データを用いて、パプリカの着果から収穫までに要する所要日数を、着果から収穫までの間の気温および日射量から予測する予測モデルを生成する。
機械学習装置100は、標本栽培エリア21において今年度のパプリカの着果が観測されてから収穫時期になる前に、予測モデルを用いて所要日数を予測する。このとき、機械学習装置100は、気象データサーバ31から気象予報データを受信する。予測モデルの入力に対応する気温および日射量は、予測日以前の期間についてはセンサ23で測定されたものを使用し、予測日以降の期間については気象予報データのものを使用する。機械学習装置100は、標本果実の着果日および着果数と、予測モデルが出力する所要日数と、標本果実の割合(0.1%)から、パプリカの収穫日および収穫数を予測する。
なお、機械学習装置100は、クライアントコンピュータでもよいしサーバコンピュータでもよい。また、機械学習装置100は、農家が所有するコンピュータでもよいし、データセンタなど情報処理事業者が所有するコンピュータでもよい。機械学習装置100を農家が所有している場合、例えば、機械学習装置100は、広域データ通信ネットワークを介さずにセンサ23から気象データを受信し、農家のユーザから標本データの入力を受け付ける。機械学習装置100を農家が所有していない場合、例えば、機械学習装置100は、農家が所有する端末装置から、広域データ通信ネットワークを介して気象データおよび標本データを受信する。また、第2の実施の形態では、機械学習装置100が予測モデルの生成と予測モデルを用いた収穫予測の両方を行っているが、両者を異なるコンピュータが行うようにしてもよい。例えば、サーバコンピュータが予測モデルを生成し、クライアントコンピュータが予測モデルを用いて収穫予測を行ってもよい。
図3は、機械学習装置のハードウェア例を示すブロック図である。
機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。上記ユニットはバスに接続されている。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。気象データサーバ31なども同様のハードウェアを有する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。また、機械学習装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。また、機械学習装置100に複数種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
通信インタフェース107は、ネットワーク30に接続され、気象データサーバ31など他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
次に、予測モデルを用いた収穫予測の方法について説明する。なお、第2の実施の形態では、着果の観測および収穫の管理は週単位で行うものとする。そこで、標本データの着果日および収穫日は1週間のうちの特定の曜日の日付である。また、予測モデルが出力する所要日数は週数を示し、予測収穫日は1週間のうちの特定の曜日の日付となる。
図4は、収穫予測のデータフローの例を示す図である。
ある日に1以上の標本果実の着果が観測されると、標本データとして着果日211および標本着果数212が採取される。着果日211は農家が着果を観測した日であり、標本着果数212はその日に着果した標本果実の個数である。例えば、着果日211が10月22日であり、標本着果数212が5個である。
すると、着果日211から収穫時期までの期間について、説明変数としてビニールハウス20の屋内の平均気温213および平均日射量214が算出される。平均気温213および平均日射量214は、それぞれ1時間毎の数値である。よって、説明変数は48次元のベクトルとなる。なお、第2の実施の形態では、説明変数として平均気温および平均日射量を使用しているが、累積気温や累積日射量など他の指標とすることも可能である。
平均気温213および平均日射量214は以下のように算出される。着果日から予測日の前日までの期間については、センサ23により測定されたビニールハウス20の屋内の測定気温221および測定日射量222が使用される。予測日から収穫時期までの期間については、気象予報データの予報気温223および予報日射量224が使用される。
ただし、予報気温223および予報日射量224は、屋外の気温および日射量である。そこで、環境パラメータ227を用いて、予報気温223がビニールハウス20の屋内の予想気温225に変換され、予報日射量224がビニールハウス20の屋内の予想日射量226に変換される。環境パラメータ227は、屋外の気温と屋内の気温の関係、および、屋外の日射量と屋内の日射量の関係を示す。例えば、環境パラメータ227は、屋外の気温を屋内の気温に変換する一次式と、屋外の日射量を屋内の日射量に変換する一次式とを含む。環境パラメータ227は予め用意されている。環境パラメータ227は、ビニールハウス毎に個別に調整された個別パラメータであってもよいし、様々なビニールハウスに共通に適用される汎用パラメータであってもよい。
測定気温221および予想気温225が平均化されて平均気温213が算出され、測定日射量222および予想日射量226が平均化されて平均日射量214が算出される。すると、予め生成された予測モデル210に平均気温213および平均日射量214が入力され、予測モデル210から所要日数215が出力される。所要日数215は、着果から収穫までの日数の予測である。着果日211に所要日数215を加えることで、収穫日216が算出される。収穫日216は、着果日211に着果した果実の好適な収穫日の予測である。例えば、所要日数215が8週間であり、収穫日216が12月17日である。
また、標本着果数212から標本収穫数217が算出される。標本収穫数217は、着果日211に観測された標本果実のうち、収穫日216に収穫される標本果実の個数の予測である。ここでは、予測モデル210が所要日数215として所要日数の期待値を出力することを想定しており、標本収穫数217が標本着果数212と同じである。例えば、標本収穫数217は5個である。ただし、後述するように、所要日数の確率分布を出力する予測モデルを生成することもできる。その場合、標本収穫数217は、所要日数毎の標本果実の個数を示す。所要日数毎の標本果実の個数は、標本着果数212に所要日数毎の確率および後述する倍率を乗ずることで算出することができる。
そして、標本収穫数217が収穫数218に変換される。収穫数218は、着果日211に着果したと予測される果実であって、収穫日216に収穫される果実の個数の予測である。着果日211に着果したと予測される果実には、観測された標本果実とそれ以外の果実とが含まれる。収穫数218は、標本収穫数217と標本割合219から算出される。標本割合219は、果実全体に対する標本果実の割合である。収穫数218は、標本収穫数217を標本割合219で割る、すなわち、標本収穫数217に標本割合219の逆数を乗ずることで算出できる。例えば、標本割合219が0.1%であり、収穫数218が5個÷0.1%=5個×1,000=5,000個である。
このようにして、着果日211に着果した果実について、収穫日216に収穫数218の果実が収穫されると予測される。例えば、10月22日に着果した果実について、12月17日に5,000個の果実が収穫されると予測される。異なる着果日の予測を合算することで、全体の収穫日および収穫数を予測することが可能である。
ただし、パプリカは成長の個体差が大きいため、実際には着果日が同じでも収穫日にばらつきが生じる。このため、所要日数の期待値を出力する予測モデル210を使用すると、全体の収穫日および収穫数の予測が実情から乖離するおそれがある。
図5は、期待値を出力する予測モデルの使用例を示す図である。
異なる着果日に標本着果数231,232,233が測定されたとする。標本着果数231は、10月22日に着果が観測された5個の標本果実を示す。標本着果数232は、10月29日に着果が観測された3個の標本果実を示す。標本着果数233は、11月5日に着果が観測された4個の標本果実を示す。
標本着果数231,232,233それぞれに対して所要日数が予測される。ここでは、所要日数の期待値を出力する予測モデルを使用するものとする。すると、標本着果数231に対して、10月22日以降の平均気温および平均日射量から所要日数の期待値が算出される。標本着果数232に対して、10月29日以降の平均気温および平均日射量から所要日数の期待値が算出される。標本着果数233に対して、11月5日以降の平均気温および平均日射量から所要日数の期待値が算出される。異なる着果日に対しては異なる平均気温および平均日射量が使用されるため、異なる所要日数の期待値が算出され得る。ここでは、標本着果数231に対する所要日数が8週間、標本着果数232に対する所要日数が7週間、標本着果数233に対する所要日数が6週間である。
すると、標本収穫数234,235,236が予測される。標本収穫数234は、10月22日から8週間後の12月17日に収穫が予測される5個の標本果実を示す。標本収穫数235は、10月29日から7週間後の12月17日に収穫が予測される3個の標本果実を示す。標本収穫数236は、11月5日から6週間後の12月17日に収穫が予測される4個の標本果実を示す。標本収穫数234,235,236を合計すると、12月10日に0個の標本果実が収穫され、12月17日に12個の標本果実が収穫され、12月24日0個の標本果実が収穫されるという予測になる。
標本割合=0.1%を用いてこれらの標本収穫数を全体の収穫数に変換すると、収穫数237,238,239が予測される。収穫数237は、12月10日に収穫が予測される0個の果実を示す。収穫数238は、12月17日に収穫が予測される12,000個の果実を示す。収穫数239は、12月24日に収穫が予測される0個の果実を示す。このように、所要日数の期待値を出力する予測モデルを使用すると、特定の収穫日に収穫数が集中するという予測になることがある。しかし、実際には個体差により収穫日にばらつきが生じるため、収穫数237,238,239の信頼度は低い。そこで、所要日数の期待値ではなく所要日数の確率分布を出力する予測モデルを使用する。
図6は、確率分布を出力する予測モデルの使用例を示す図である。
標本着果数231,232,233それぞれに対して所要日数の確率分布が予測される。標本着果数231に対して、10月22日以降の平均気温および平均日射量から所要日数の確率分布が算出される。標本着果数232に対して、10月29日以降の平均気温および平均日射量から所要日数の確率分布が算出される。標本着果数233に対して、11月5日以降の平均気温および平均日射量から所要日数の確率分布が算出される。
異なる着果日に対しては異なる平均気温および平均日射量が使用されるため、異なる所要日数の確率分布が算出され得る。予測モデルの出力は、具体的には、所要日数の平均と、所要日数の標準偏差と、所要日数の倍率とを含む。着果日から標本果実までの所要日数は、平均および標準偏差によって規定される正規分布の確率に従う。ただし、着果日毎の着果数と収穫数とが一致するとは限らないため、倍率によって収穫数の調整が行われる。各所要日数の収穫数は、着果数に確率と倍率を乗じた個数となる。なお、図6では説明を簡単にするため、倍率を1倍としている。
そこで、10月22日の標本着果数231に対して標本収穫数241,242,243が予測される。標本収穫数241は、標本着果数231のうち、12月10日に収穫が予測される5個×30%=1.5個の標本果実を示す。標本収穫数242は、標本着果数231のうち、12月17日に収穫が予測される5個×50%=2.5個の標本果実を示す。標本収穫数243は、標本着果数231のうち、12月24日に収穫が予測される5個×20%=1.0個の標本果実を示す。
同様にして、10月29日の標本着果数232に対して標本収穫数244,245,246が予測される。標本収穫数244は、標本着果数232のうち、12月10日に収穫が予測される3個×30%=0.9個の標本果実を示す。標本収穫数245は、標本着果数232のうち、12月17日に収穫が予測される3個×50%=1.5個の標本果実を示す。標本収穫数246は、標本着果数232のうち、12月24日に収穫が予測される3個×20%=0.6個の標本果実を示す。
また、11月5日の標本着果数233に対して標本収穫数247,248,249が予測される。標本収穫数247は、標本着果数233のうち、12月10日に収穫が予測される4個×30%=1.2個の標本果実を示す。標本収穫数248は、標本着果数233のうち、12月17日に収穫が予測される4個×50%=2.0個の標本果実を示す。標本収穫数249は、標本着果数233のうち、12月24日に収穫が予測される4個×20%=0.8個の標本果実を示す。
標本割合=0.1%を用いてこれらの標本収穫数が全体の収穫数に変換される。すると、10月22日に5,000個の果実が着果しており、そのうち1,500個が12月10に収穫され、2,500個が12月17に収穫され、1,000個が12月24日に収穫されると予測される。また、10月29日に3,000個の果実が着果しており、そのうち900個が12月10に収穫され、1,500個が12月17に収穫され、600個が12月24日に収穫されると予測される。また、11月5日に4,000個の果実が着果しており、そのうち1,200個が12月10に収穫され、2,000個が12月17に収穫され、800個が12月24日に収穫されると予測される。
以上から、収穫数251,252,253が予測される。収穫数251は、12月10日に収穫が予測される3,600個の果実を示す。収穫数252は、12月17日に収穫が予測される6,000個の果実を示す。収穫数253は、12月24日に収穫が予測される2,400個の果実を示す。このように、確率分布を出力する予測モデルを使用すると、収穫日のばらつきを表現でき、収穫数251,252,253の信頼度が高くなる。
ここで、所要日数の確率分布を出力する予測モデルを、どの様に学習すればよいかが問題となる。典型的な機械学習は、訓練データを用いて予測モデルの出力の誤差を評価し、誤差が小さくなるように予測モデルの係数を更新することを繰り返す。予測モデルには、ニューラルネットワーク、重回帰モデル、GPモデルなどの様々な機械学習モデルを使用できる。イテレーション回数が少ないうちは、予測モデルの出力の誤差が大きく訓練データに対するフィッティング精度が低い。イテレーション回数が多くなるほど、予測モデルの出力の誤差が小さくなり訓練データに対するフィッティング精度が高くなる。訓練データに対する誤差が十分に小さくなるまで上記を繰り返すことが多い。
一方で、農作物の収穫予測の場合、個々の標本果実の観察および追跡は農家の負担が大きいため、標本果実は少数に限られており機械学習に使用できる訓練データは少量になる。また、パプリカは成長の個体差が大きいこともあり、これら少数の標本果実の所要日数は収穫果実全体の所要日数のばらつきを正確に表現しているわけではない。このため、訓練データに対する誤差が十分に小さくなるまでイテレーション回数を増やすと、予測モデルが訓練データに過度にフィッティングする過学習が発生しやすい。少量の訓練データから過学習された予測モデルは、分散が過度に小さい確率分布を出力する。その結果、予測モデルが出力する確率分布の信頼度が低下してしまう。
予測モデルが出力する確率分布の分散は、機械学習のイテレーション回数の増加に応じて小さくなる。そのため、機械学習のイテレーションを適切な回数で停止することで、確率分布の分散を適切な大きさに誘導することができる。そこで、機械学習のイテレーションを何れのタイミングで停止すればよいかが問題となる。
ここで、過去のパプリカの栽培について、着果から収穫までの所要日数の実績を示す標本データは、少数の標本果実についてのみ収集される一方、収穫日毎の全体の収穫数の実績を示す総数データは、出荷管理のために農業機械などを用いて収集されている。そこで、機械学習装置100は、予測モデルのパラメータの値を更新するイテレーション毎に、そのときの予測モデルと訓練データと標本割合から過去の全体収穫数を予測し、予測と総数データが示す実績とを比較して、イテレーションを停止するタイミングを判定する。全体収穫数は、訓練データに対して図6と同様の方法を適用することで予測できる。
予測モデルが出力する確率分布の分散が過度に大きい場合、全体収穫数の予測は実績と類似しない可能性が高い。また、予測モデルが出力する確率分布の分散が過度に小さい場合も、全体収穫数の予測は実績と類似しない可能性が高い。一方、予測モデルが出力する確率分布の分散が実際の収穫日のばらつきを反映して最適である場合、全体収穫数の予測と実績との間の類似度が最大になる可能性が高い。そのため、機械学習装置100は、類似度が最大になったときの予測モデルを学習結果として採用する。
図7は、機械学習の停止タイミング例を示す図である。
イテレーション回数の増加に応じて、特定の平均気温および平均日射量に対して予測モデルが出力する確率分布は、確率分布261,262,263のように変化する。
確率分布261は、学習不足の予測モデルから出力されるものであり、過度に大きい分散をもつ。確率分布262は、最適な予測モデルから出力されたものであり、パプリカの収穫日のばらつきを適切に反映した分散をもつ。確率分布263は、過学習された予測モデルから出力されたものであり、過度に小さい分散をもつ。
機械学習装置100は、予測モデルが確率分布261を出力するとき、訓練データから図6と同様の方法で収穫数分布264を予測する。収穫数分布264は、収穫日毎の全体収穫数の予測を示す。機械学習装置100は、訓練データのレコード毎に、平均気温および平均日射量を予測モデルに入力して収穫数の確率分布を算出し、標本着果数に確率および倍率を乗じて収穫日毎の標本収穫数を算出する。機械学習装置100は、標本割合の逆数を乗じ、訓練データの各レコードの予測を合計して収穫日毎の全体収穫数を算出する。
収穫数分布264が予測されると、機械学習装置100は、収穫数分布264と収穫数分布267とを比較して誤差(総数誤差)を算出する。収穫数分布267は、訓練データと同じ時期の収穫状況であって、収穫日毎の全体収穫数の実績を示す。収穫数分布267は、12月10の収穫数が3,700個、12月17日の収穫数が5,800個、12月24日の収穫数が2,500個であることを示す。総数誤差の指標として、例えば、残差平方和を用いる。残差平方和は、収穫日毎に予測と実績の間で収穫数の差の二乗を算出し、差の二乗を合計した数値である。ここでの総数誤差は大きい。
次に、機械学習装置100は、予測モデルが確率分布262を出力するとき、訓練データから図6と同様の方法で収穫数分布265を予測する。収穫数分布265が予測されると、機械学習装置100は、収穫数分布265と収穫数分布267とを比較して総数誤差を算出する。ここでの総数誤差は、確率分布261のときよりも小さい。次に、機械学習装置100は、予測モデルが確率分布263を出力するとき、訓練データから図6と同様の方法で収穫数分布266を予測する。収穫数分布266が予測されると、機械学習装置100は、収穫数分布266と収穫数分布267とを比較して総数誤差を算出する。ここでの総数誤差は、確率分布262のときよりも大きい。
このようにして、機械学習装置100は、予測モデルが確率分布262を出力するときに総数誤差が最小になった、すなわち、類似度が最大になったことを検出する。すると、機械学習装置100は、機械学習のイテレーションを停止し、確率分布262を出力する予測モデルを学習結果として保存する。
図8は、機械学習のデータフローの例を示す図である。
予測モデル270の生成に使用する訓練データは、着果日の異なる複数のレコードを含む。訓練データの各レコードは、着果日271、標本着果数272、標本日数分布273、平均気温277および平均日射量278を含む。標本日数分布273は、標本果実の中での所要日数の分布を示す。標本日数分布273は、所要日数の順に標本収穫数を列挙したベクトルでもよいし、所要日数の順に収穫割合を列挙したベクトルでもよいし、平均と標準偏差と倍率とで規定された確率分布であってもよい。
平均気温277は、1時間毎の屋内の気温であって着果日271から収穫日までの期間で平均化したものである。平均日射量278は、1時間毎の屋内の日射量であって着果日271から収穫日までの期間で平均化したものである。よって、平均気温277および平均日射量278はそれぞれ24次元のベクトルであり、合わせて48次元のベクトルになる。平均気温277は、センサ23によって測定された測定気温275から算出される。平均日射量278は、センサ23によって測定された測定日射量276から算出される。訓練データは過去の標本果実を示しているため、着果日271から収穫日までの測定気温275および測定日射量276は既知であり、気象予報データは使用しなくてよい。
また、訓練データとは別に収穫数274を示す総数データが予め用意される。収穫数274は、収穫日毎の収穫数の実績である。
機械学習が開始されると、予測モデル270の係数が初期化される。訓練データのレコード毎に、予測モデル270に平均気温277および平均日射量278が入力され、予測モデル270から所要日数分布281が出力される。所要日数分布281は、平均と標準偏差と倍率の予測を示す。訓練データのレコード毎に、所要日数分布281と標本日数分布273が比較されて誤差が算出される。そして、訓練データのレコード毎の誤差が合算されて、訓練データ全体に対するモデル誤差282が算出される。
訓練データのレコード毎の誤差の算出では、所要日数の平均の誤差と、所要日数の標準偏差の誤差と、倍率の誤差とに分けて算出してもよく、これら誤差を合成してレコード毎の誤差を定義してもよい。また、所要日数分布281が示す平均と標準偏差と倍率から算出される所要日数毎の指標値と、標本日数分布273が示す所要日数毎の指標値との間で、残差二乗和を算出してレコード毎の誤差と定義してもよい。
モデル誤差282が算出されると、モデル誤差282が小さくなるように予測モデル270のパラメータの値が更新される。予測モデル270の更新の際には、1つ前のパラメータの値を退避しておく。予測モデル270の更新からモデル誤差282の算出までが1回のイテレーションである。下記の停止判定によってイテレーションの停止が決定されるまで予測モデル270の更新が繰り返される。停止判定はイテレーション毎に実行される。停止判定は、予測モデル270が所要日数分布281を出力してから予測モデル270が次に更新されるまでの間に、イテレーションを中断して実行してもよい。また、上記のイテレーションと並列に停止判定を実行してもよい。異なるプロセッサまたはプロセッサコアを用いて、イテレーションと停止判定を並列実行してもよい。
所要日数分布281が算出されると、訓練データのレコード毎に、標本着果数272に確率および倍率を乗じて標本収穫数283が算出される。標本収穫数283は、所要日数毎の標本果実の収穫数の予測を示す。訓練データのレコード毎の標本収穫数283の所要日数が、着果日271に基づいて、収穫日が揃うようにシフトされる。例えば、10月22日の7週間後は10月29日の6週間後に相当するため、着果日271が10月29日であるレコードに対応する標本収穫数283は、着果日271が10月22日であるレコードに対応する標本収穫数283に対して1週間後方にシフトされる。
また、標本収穫数283に標本割合284の逆数を乗じて(標本割合284で割って)、着果日毎の収穫数に変換される。例えば、標本収穫数283が1,000倍される。そして、収穫日を揃えた着果日毎の収穫数が合算されて、収穫数285が算出される。収穫数285は、収穫日毎の果実全体の収穫数の予測を示す。
収穫数285が算出されると、収穫数285と収穫数274とが比較されて総数誤差286が算出される。総数誤差286には、例えば、残差平方和を用いる。そして、前回のイテレーションの総数誤差286と今回のイテレーションの総数誤差286とが比較される。今回の総数誤差286が前回の総数誤差286以下であれば、イテレーションの継続が決定される。この場合、モデル誤差282に応じて予測モデル270が更新される。
一方、今回の総数誤差286が前回の総数誤差286より大きければ、イテレーションの停止が決定される。この場合、予測モデル270は更新されない。パラメータの最適値は前回のイテレーションの値であるため、退避しておいたパラメータの値が読み出され、学習結果として出力される。すなわち、収穫数274と収穫数285の類似度が最大になり、総数誤差286が最小になったことが検出される。ここでは、予測モデル270のパラメータの最適値に到達する前は総数誤差286が単調に減少し、最適値に到達した後は総数誤差286が単調に増加すると仮定している。
ただし、収穫数274には異常値が含まれていることがある。収穫数274の異常値は、摘花作業などの農作業のタイミングに起因して発生することもあるし、気温や日射量の一時的な変動などの気象の偶然性に起因して発生することもある。この場合、収穫数274に含まれる異常値の影響を受けて、依然として過学習が発生することがあり、その結果として予測モデル270の予測精度が低下することがある。
図9は、収穫数の実績および予測の例を示す第1のグラフである。
グラフ291は、収穫日に対する収穫数の分布を表す。グラフ291の横軸は、1週間刻みの収穫日を表している。グラフ291は、曲線294,295を含む。曲線294は、全体収穫数の実績を示しており、前述の収穫数274に相当する。曲線295は、学習完了後の予測モデルを用いた全体収穫数の予測を示しており、前述の収穫数285に相当する。曲線295は、着果日毎の収穫数の予測を示す曲線を合成したものである。
11月5日から12月10日までが学習期間であり、12月17日から2月4日までが予測期間である。学習期間は、予測モデルを生成する機械学習において、全体収穫数の予測と実績とを比較した期間である。学習期間において曲線294と曲線295との間で総数誤差286が算出され、総数誤差286が最小になるまで学習処理が実行されたことになる。予測期間は、学習完了後の予測モデルを用いて全体収穫数を予測した期間である。グラフ291には、以下の着果日についての収穫数の予測を示す曲線が記載されている。9月24日、10月1日、10月8日、10月15日、10月22日、10月29日、11月5日、11月12日、11月19日、11月26日、12月3日、12月10日。
ここで、11月5日から12月10日までの学習期間においては、全体収穫数の予測が実績に最も近くなるまで学習処理が行われおり、曲線294と曲線295とがほぼ一致している。しかし、曲線294が示す全体収穫量の実績のうち、11月26日の全体収穫量が、その前後のトレンドと整合しない異常値となっている。異常値も含めて全体収穫数の予測が実績と類似した結果、その内訳である一部の着果日の収穫数の予測が不自然な分布を形成している。例えば、着果日10月1日の曲線と着果日10月8日の曲線とが、他の着果日の曲線よりも不自然に突出しており、それによって結果的に、全体収穫量の予測が11月26日の異常値に上手くマッチしてしまっている。これは、全体収穫量の実績に対して、予測モデルの過学習が生じていると言える。
このように過学習によって生成された予測モデルは、特定の平均温度および平均日射量の入力に対して不自然な確率分布や倍率を出力することがあり、予測期間における予測精度が低下することがある。例えば、12月24日の全体収穫量の予測が、その前後のトレンドと整合しない異常な予測となっており、実績とも乖離している。これは、着果日10月29日の曲線が、他の着果日の曲線よりも不自然に突出していることによる。なお、全体収穫量の不正確な予測は、学習期間の直後に発生しやすい。これは、着果日10月29日の曲線のピークが学習期間より後に存在するため、着果日10月29日の曲線が不自然であることが機械学習において考慮されていないためである。
このように、学習期間において全体収穫数の予測を示す曲線295と全体収穫数の実績を示す曲線294との間の総数誤差を最小化すると、過学習になってしまうことがある。また、総数誤差が最小になる少し前の予測モデルの方が予測精度が高くなることがある。そこで、機械学習装置100は、かかる過学習を抑制するため、予測モデルの更新またはイテレーションの停止判定に対して制約条件を追加する。以下、3つの制約条件について説明する。これら3つの制約条件は、単独で採用することもできるし、そのうちの何れか2つまたは3つ全てを組み合わせて採用することもできる。
図10は、収穫数の実績および予測の例を示す第2のグラフである。
グラフ292は、学習途中における収穫日に対する収穫数の分布を表す。グラフ292は、曲線294,296,298,299を含む。曲線294は、前述の通り、全体収穫数の実績を示している。曲線296は、学習途中の予測モデルを用いた全体収穫数の予測を示している。曲線298は、学習途中の予測モデルを用いた着果日9月24日の収穫数の予測を示している。曲線299は、学習途中の予測モデルを用いた着果日10月1日の収穫数の予測を示している。曲線298,299は、曲線296の内訳に含まれる。
グラフ292を参照しながら、3つの制約条件について説明する。
第1の制約条件は、モデル誤差が小さくなるように予測モデルを更新する際に追加される制約条件である。予測モデルは、訓練データに含まれる着果日毎に、平均と標準偏差と倍率を出力する。モデル誤差に基づいて予測モデルを更新すると、予測モデルが出力する着果日毎の平均と標準偏差と倍率は変動する。このとき、機械学習装置100は、着果日毎の平均と標準偏差の変動に制約条件を与える。全ての着果日の平均および標準偏差が制約条件を満たすように、予測モデルのパラメータの値が更新される。
具体的には、機械学習装置100は、着果日毎に、更新後の予測モデルが出力する平均を、更新前の予測モデルが出力する平均に依存する上限と下限の範囲内に制限する。第2の実施の形態では、更新前の平均+0.5週を上限とし、更新前の平均−0.5週を下限とする。よって、次に予測モデルを更新する際には、曲線298が示す着果日9月24日の平均所要日数が、1回に±0.5週の範囲内でのみ変動することを許容する。また、曲線299が示す着果日10月1日の平均所要日数が、1回に±0.5週の範囲内でのみ変動することを許容する。このように、全ての着果日について、更新後の平均所要日数が、更新前の平均所要日数±0.5週の範囲に収まるようにする。
また、機械学習装置100は、着果日毎に、更新後の予測モデルが出力する標準偏差を所定の上限と下限の範囲内に制限する。第2の実施の形態では、標準偏差の上限を3週とし、標準偏差の下限を0週とする。よって、次に予測モデルを更新する際には、曲線298が示す着果日9月24日の所要日数の標準偏差が、0週から3週の範囲に収まるようにする。また、曲線299が示す着果日10月1日の所要日数の標準偏差が、0週から3週の範囲に収まるようにする。このように、全ての着果日について、更新後の所要日数の標準偏差が、0週から3週の範囲に収まるようにする。
予測モデルに含まれるパラメータの値の更新に、確率的勾配降下法などの勾配法を用いる場合、例えば、機械学習装置100は、第1の制約条件を全て満たす範囲で、パラメータに対するモデル誤差の勾配を探索する。モデル誤差を最小化する勾配であっても、第1の制約条件を満たさないような勾配は採用されない。よって、曲線296の内訳である複数の着果日の確率分布の中に、平均や分散が不自然なものが混入するのを抑制できる。
第2の制約条件は、第1の制約条件と同様、モデル誤差が小さくなるように予測モデルを更新する際に追加される制約条件である。第2の制約条件を、第1の制約条件と組み合わせてもよい。機械学習装置100は、着果日毎の倍率の変動に制約条件を与える。全ての着果日の倍率が制約条件を満たすように、予測モデルのパラメータの値が更新される。
具体的には、機械学習装置100は、着果日毎に、更新後の予測モデルが出力する倍率を、学習期間の曲線294,296に依存する上限と下限の範囲内に制限する。第2の実施の形態では、学習期間の中で、全体収穫数の実績値÷予測値の最大値Uを上限とし、全体収穫数の実績値÷予測値の最小値Lを下限とする。図10の例では、11月12日の曲線296上の予測値に対する曲線294上の実績値の比が最大値Uであり、11月26日の曲線296上の予測値に対する曲線294上の実績値の比が最小値Lである。
よって、次に予測モデルを更新する際には、曲線298が示す着果日9月24日の倍率が、L以上U以下の範囲に収まるようにする。また、曲線299が示す着果日10月1日の倍率が、L以上U以下の範囲に収まるようにする。このように、全ての着果日について、更新後の倍率がL以上U以下に収まるようにする。これにより、曲線296の内訳である複数の着果日の確率分布の中に、倍率が不自然なものが混入するのを抑制できる。
第3の制約条件は、イテレーションの停止判定の際に追加される制約条件である。第3の制約条件を、第1の制約条件および第2の制約条件と組み合わせてもよい。予測モデルが更新されると、全体収穫数の予測と実績との間の総数誤差を評価する。このとき、機械学習装置100は、学習期間の末尾周辺の全体収穫数のトレンドを用いて総数誤差を補正する。補正後の総数誤差が最小化された時点でイテレーションが停止する。
具体的には、機械学習装置100は、学習期間の末尾から2つ前の収穫日の実績と1つ前の収穫日の実績との差を、全体収穫数の実績の変化量を示す第1の実績トレンドとして算出する。また、機械学習装置100は、学習期間の末尾から1つ前の収穫日の実績と末尾の実績との差を、全体収穫数の実績の変化量を示す第2の実績トレンドとして算出する。また、機械学習装置100は、学習期間の末尾の予測と1つ後の収穫日の予測との差を、全体収穫数の予測の変化量を示す予測トレンドとして算出する。
機械学習装置100は、第1の実績トレンドと第2の実績トレンドとを、所定比率で加重平均したものを実績トレンドとして算出する。第2の実施の形態では、所定比率を3:7とする。すなわち、第1の実績トレンド×0.3+第2の実績トレンド×0.7=実績トレンドとする。そして、機械学習装置100は、実績トレンドと予測トレンドの差の絶対値をトレンド評価値として算出し、総数誤差にトレンド評価値を加算する。トレンド評価値は、実績トレンドと予測トレンドの差の二乗の平方根としても算出できる。
図10の例の場合、学習期間の末尾は12月10日である。そこで、機械学習装置100は、(12月3日の実績値−11月26日の実績値)×0.3+(12月10日の実績値−12月3日の実績値)×0.7−(12月17の予測値−12月10日の予測値)の絶対値を、トレンド評価値として算出する。
前述のように、全体収穫数の不自然な予測は、学習期間の直後で発生しやすい。この点、上記のトレンド評価値は、学習期間の末尾における全体収穫数の実績のトレンドと、学習期間の直後における全体収穫数の予測のトレンドとが、整合しているか否かを示す。トレンド評価値を総数誤差に加算することで、学習期間の直後において全体収穫数の予測が不自然に増減すると、総数誤差が大きくなる。このため、学習期間内で曲線296が曲線294に最も接近しても、学習期間の直後の予測状況によっては補正後の総数誤差が最小にならないことがある。その結果、曲線296が曲線294に最も接近した時点でなく、両者が多少離れている時点の予測モデルが採用されることがあり、過学習が抑制される。
図11は、収穫数の実績および予測の例を示す第3のグラフである。
グラフ293は、学習完了後における収穫日に対する収穫数の分布を表す。グラフ293は、曲線294,297を含む。曲線294は、前述の通り、全体収穫数の実績を示している。曲線297は、学習完了後の予測モデルを用いた全体収穫数の予測を示している。曲線297は、上記の第1の制約条件、第2の制約条件および第3の制約条件の全てを組み合わせて採用した場合の全体収穫数の予測に相当する。
グラフ293の曲線297は、グラフ291の曲線295と比べて、学習期間における曲線294へのフィッティング精度が若干低い。ただし、曲線297は、学習期間後の予測期間においても、学習期間と同程度の予測精度を維持している。これは、曲線297の内訳である着果日毎の収穫数の分布の中に、平均、標準偏差または倍率が不自然な分布が存在しないためである。これは、上記の第1の制約条件、第2の制約条件および第3の制約条件を導入することで、学習期間について曲線294と曲線297の類似度が最大になる前に学習処理が停止され、過学習が抑制されていることを意味する。
次に、機械学習装置100の機能について説明する。
図12は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、気象データ記憶部121、標本データ記憶部122、総数データ記憶部123、予測モデル記憶部124、データ収集部125、データ加工部126、機械学習部127、イテレーション制御部128および収穫予測部129を有する。気象データ記憶部121、標本データ記憶部122、総数データ記憶部123および予測モデル記憶部124は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。データ収集部125、データ加工部126、機械学習部127、イテレーション制御部128および収穫予測部129は、例えば、プログラムを用いて実現される。
気象データ記憶部121は、過去に育成した農作物の着果日から収穫日までの気象データと、予測対象の農作物の着果日から予測日の前日までの気象データを記憶する。気象データは、センサ23によって測定された測定気温および測定日射量を含む。また、気象データ記憶部121は、予測日以降の気象予報データを記憶する。気象予報データは、気象データサーバ31から収集される。気象予報データは、屋外の予報気温および予報日射量を含む。また、気象データ記憶部121は、屋外の予報気温および予報日射量を、屋内の予想気温および予想日射量に変換するための環境パラメータを記憶する。
標本データ記憶部122は、過去の標本果実毎の着果日および収穫日を示す標本データと、予測対象の標本果実毎の着果日を示す標本データを記憶する。また、標本データ記憶部122は、果実全体に対する標本果実の割合である標本割合を記憶する。
総数データ記憶部123は、過去の収穫日毎の収穫数を示す総数データを記憶する。
予測モデル記憶部124は、学習結果としての予測モデルを記憶する。
データ収集部125は、気象データ記憶部121、標本データ記憶部122および総数データ記憶部123に記憶される各種のデータを収集する。データの収集方法として、データ収集部125は、ユーザからデータの入力を受け付けることがある。また、データ収集部125は、他の情報処理装置からデータを受信することがある。
データ加工部126は、気象データ記憶部121に記憶された過去の気象データと、標本データ記憶部122に記憶された過去の標本データとを加工して、着果日が異なる複数のレコードを含む訓練データを生成する。具体的には、データ加工部126は、過去の標本データから着果日を抽出し、着果日毎に標本着果数をカウントし、着果日毎に着果日と収穫日の差から標本日数分布を算出する。また、データ加工部126は、過去の気象データから、着果日毎に着果日から収穫日までの測定気温および測定日射量を抽出し、1時間毎の平均気温および平均日射量を算出する。
また、データ加工部126は、気象データ記憶部121に記憶された予測対象の気象データおよび気象予報データと、標本データ記憶部122に記憶された予測対象の標本データを加工して、収穫予測用の入力データを生成する。具体的には、データ加工部126は、予測対象の標本データから着果日を抽出し、着果日毎に標本着果数をカウントする。また、データ加工部126は、予測対象の気象データから、着果日毎に着果日から予測日の前日までの測定気温および測定日射量を抽出する。また、データ加工部126は、気象予報データから、予測日から収穫時期までの予報気温および予報日射量を抽出し、気象データ記憶部121に記憶された環境パラメータを用いて、屋内の予想気温および予想日射量に変換する。そして、データ加工部126は、着果日毎に着果日から収穫時期までの通算の1時間毎の平均気温および平均日射量を算出する。
データ加工部126は、訓練データを機械学習部127に提供する。また、データ加工部126は、総数データ記憶部123に記憶された総数データをイテレーション制御部128に提供する。データ加工部126は、入力データを収穫予測部129に提供する。
機械学習部127は、異なる着果日についての複数のレコードを含む訓練データを用いて機械学習を行う。使用する機械学習アルゴリズムは予め指定されている。生成される予測モデルは、着果から収穫までの所要日数の分布を出力する。所要日数の分布は、所要日数の平均、所要日数の標準偏差および倍率によって規定される。機械学習部127は、予測モデルのパラメータの値を更新して訓練データに対するモデル誤差を算出することを繰り返す。このとき、機械学習部127は、前述の第1の制約条件および第2の制約条件を満たすよう制御する。機械学習部127は、イテレーション制御部128からイテレーションの停止が指示されると、1つ前の予測モデルを予測モデル記憶部124に出力する。
イテレーション制御部128は、機械学習部127が予測モデルを更新する毎に、予測モデルが出力する所要日数分布と標本着果数と標本割合から、収穫日毎の全体収穫数を予測し、総数データが示す実績と比較する。イテレーション制御部128は、全体収穫数の予測と実績の間の総数誤差を算出し、総数誤差が前回より増えている場合、イテレーションを停止するよう機械学習部127に指示する。このとき、イテレーション制御部128は、前述の第3の制約条件に従って、トレンド評価値を算出して総数誤差を補正する。
収穫予測部129は、予測モデル記憶部124に記憶された予測モデルとデータ加工部126から提供される入力データに基づいて、予測日以降の収穫日および収穫数を予測する。具体的には、収穫予測部129は、平均気温および平均日射量を予測モデルに入力し、着果日毎の所要日数分布を予測する。収穫予測部129は、着果日に所要日数を加えて収穫日を算出すると共に、所要日数分布が示す確率および倍率を標本着果数に乗じて標本収穫数を算出し、標本割合の逆数を乗じて収穫数に変換する。収穫予測部129は、異なる着果日の収穫数を収穫日毎に合算し、収穫日毎の全体収穫数を予測する。
収穫予測部129は、収穫日毎の全体収穫数の予測結果を出力する。例えば、収穫予測部129は、表示装置111に予測結果を表示する。また、例えば、収穫予測部129は、HDD103などの不揮発性ストレージに予測結果を保存する。また、例えば、収穫予測部129は、プリンタなどの他の出力デバイスに予測結果を出力する。また、例えば、収穫予測部129は、他の情報処理装置に予測結果を送信する。
図13は、気象データと標本データと総数データのテーブル例を示す図である。
気象データテーブル131は、気象データ記憶部121に記憶される。気象データテーブル131は、過去の気象データを含む。予測対象の気象データや気象予報データも、気象データテーブル131と同様のテーブルで管理することが可能である。気象データテーブル131は、日時、気温および日射量の項目を含む。日時は、1時間刻みである。気温は、気温の1時間の平均である。気温の単位は、例えば、℃である。日射量は、瞬間日射量の1時間の平均である。日射量の単位は、例えば、kW/mである。
標本データテーブル132は、標本データ記憶部122に記憶される。標本データテーブル132は、過去の標本データを含む。予測対象の標本データも、標本データテーブル132と同様のテーブルで管理することが可能である。ただし、予測対象の標本データには収穫日が登録されない。標本データテーブル132は、品種、果実番号、着果日および収穫日の項目を含む。品種は、パプリカの品種であり、果実の色が異なる赤品種と黄品種と橙品種を含む。収穫予測は品種毎に行われる。果実番号は、標本果実を個々に識別する識別番号である。同じ品種の中で一意な果実番号が標本果実に付与される。着果日は、標本果実の着果が観測された日である。収穫日は、標本果実を収穫した日である。ただし、データ管理の都合上、着果日および収穫日は1週間の中の特定の曜日の日付である。
総数データテーブル133は、総数データ記憶部123に記憶される。総数データテーブル133は、過去の総数データを含む。総数データテーブル133は、収穫日、赤個数、黄個数および橙個数の項目を含む。収穫日は、果実を収穫した日である。ただし、データ管理の都合上、収穫日は1週間の中の特定の曜日の日付である。赤個数は、赤品種の収穫数である。黄個数は、黄品種の収穫数である。橙個数は、橙品種の収穫数である。
図14は、訓練データテーブルの例を示す図である。
訓練データテーブル134は、気象データテーブル131および標本データテーブル132に基づいて生成され、機械学習に使用される。訓練データテーブル134は、着果日、標本着果数、目的変数および説明変数の項目を含む。着果日は、標本データテーブル132に出現する着果日である。標本着果数は、標本データテーブル132に登録された標本果実のうち着果日が同じ標本果実の個数である。
目的変数は、標本日数分布である。標本日数分布は、収穫した標本果実の個数を所要日数の順に並べたベクトルでもよいし、標本着果数のうち収穫した個数の割合を所要日数の順に並べたベクトルでもよい。また、標本日数分布は、これらの分布を、所要日数の平均、所要日数の標準偏差および倍率によって表現したものであってもよい。この場合、所要日数が、正規分布などの所定の種類の確率分布に従うことを仮定する。所要日数は、標本データテーブル132の着果日と収穫日の差である。所要日数毎の標本果実は、標本データテーブル132に登録された標本果実のうち所要日数が同じ標本果実である。
説明変数は、1時間毎の平均気温および1時間毎の平均日射量を含む。1時間毎の平均気温は、着果日から収穫日までの各日付の気温を気象データテーブル131から抽出し、0時、1時、2時、…のように時刻で分類して平均化することで算出される。1時間毎の平均日射量は、着果日から収穫日までの各日付の日射量を気象データテーブル131から抽出し、0時、1時、2時、…のように時刻で分類して平均化することで算出される。なお、ある着果日に対応する収穫日は、標本日数分布で1以上の標本果実が収穫された収穫日のうち、最後の収穫日でもよいし最初の収穫日でもよいし中心の収穫日でもよい。
次に、機械学習装置100の処理手順について説明する。以下では、前述の第1の制約条件、第2の制約条件および第3の制約条件の全てを採用する場合について説明する。ただし、何れか1つまたは2つの制約条件のみを採用することも可能である。
図15は、機械学習の手順例を示すフローチャートである。
(S10)データ収集部125は、気象データと標本データと総数データを収集する。機械学習は品種毎に行う。ただし、品種を予測モデルの説明変数に加えてもよい。
(S11)データ加工部126は、標本データから着果日を抽出し、標本果実を着果日で分類する。データ加工部126は、着果日毎に標本果実をカウントして訓練データの標本着果数とする。また、データ加工部126は、着果日と収穫日の差である所要日数を算出し、各所要日数の標本果実をカウントして訓練データの標本日数分布を算出する。
(S12)データ加工部126は、着果日毎に気象データから、着果日から収穫日までの気温および日射量を抽出する。データ加工部126は、抽出した気温を時刻で分類し、各時刻の気温の平均を訓練データの平均気温とする。また、データ加工部126は、抽出した日射量を時刻で分類し、各時刻の日射量の平均を訓練データの平均日射量とする。
(S13)機械学習部127は、予測モデルのパラメータを初期化する。
(S14)機械学習部127は、訓練データのレコードを1つ選択する。1つのレコードは1つの着果日に対応する。機械学習部127は、レコードに含まれる平均気温および平均日射量を示す48次元ベクトルを予測モデルに入力して、平均と標準偏差と倍率を予測する。機械学習部127は、複数の着果日それぞれに対して上記を実行する。
(S15)機械学習部127は、複数の着果日それぞれについて、ステップS14で予測された所要日数分布と訓練データが示す標本日数分布とを比較して誤差を算出する。平均、標準偏差および倍率それぞれについて、予測と実績を比較して誤差を算出してもよい。誤差は、例えば、残差平方和である。機械学習部127は、訓練データ全体に対するモデル誤差を算出する。例えば、モデル誤差は、複数の着果日の誤差の合計である。
(S16)イテレーション制御部128は、複数の着果日それぞれについて、平均と標準偏差によって決まる確率および倍率を標本着果数に乗じて、所要日数毎の標本収穫数を予測する。イテレーション制御部128は、標本収穫数に標本割合の逆数を乗じて、所要日数毎の収穫数を予測する。そして、イテレーション制御部128は、複数の着果日の収穫数を、収穫日が揃うように着果日に応じてシフトし、収穫日毎に収穫数を合算する。これにより、収穫日毎の全体収穫数が予測される。
(S17)イテレーション制御部128は、総数データが示す全体収穫数の実績とステップS16で算出した全体収穫数の予測とを比較し、総数誤差を算出する。総数誤差は、例えば、複数の収穫日の全体収穫数の残差平方和である。
(S18)イテレーション制御部128は、総数データに基づいて、学習期間の末尾2週分について、全体収穫数の実績の増減(実績トレンド)を算出する。また、イテレーション制御部128は、学習期間の直後1週分について、ステップS16で算出した全体収穫数の予測の増減(予測トレンド)を算出する。イテレーション制御部128は、実績トレンドと予測トレンドの差に応じたトレンド評価値を算出する。トレンド評価値は、例えば、実績トレンドと予測トレンドの差の二乗の平方根である。トレンド評価値は非負実数であり、予測トレンドと実績トレンドが乖離するほど大きい値をとる。
(S19)イテレーション制御部128は、ステップS17で算出した総数誤差に、ステップS18で算出したトレンド評価値を加算する。
図16は、機械学習の手順例を示すフローチャート(続き)である。
(S20)イテレーション制御部128は、ステップS14,S15でモデル誤差を評価するイテレーションが2回目以降であるか判断する。イテレーションが2回目以降の場合はステップS21に進み、1回目である場合はステップS22に進む。
(S21)イテレーション制御部128は、今回の総数誤差が前回の総数誤差より大きいか判断する。今回の総数誤差が前回の総数誤差より大きい場合はステップS25に進み、今回の総数誤差が前回の総数誤差以下である場合はステップS22に進む。
(S22)イテレーション制御部128は、学習期間に属する各収穫日について、総数データが示す全体収穫数の実績値を、ステップS16で算出した全体収穫数の予測で割って、実績予測比率を算出する。イテレーション制御部128は、学習期間の中から、実績予測比率の最大値Uと最小値Lを検出する。
(S23)イテレーション制御部128は、複数の着果日それぞれについて、予測モデルが出力する平均と標準偏差と倍率に対して、以下の制約条件を設定する。(1)平均に対しては、更新前の予測モデルが出力する平均と更新後の予測モデルが出力する平均との差(変化量)が、−0.5週以上かつ+0.5週以下という制約条件である。(2)標準偏差に対しては、更新後の予測モデルが出力する標準偏差が、0週以上かつ3週以下という制約条件である。(3)倍率に対しては、更新後の予測モデルが出力する倍率が、ステップS22で求めた最小値L以上かつ最大値U以下という制約条件である。平均の変化量の上限および下限と、倍率の上限および下限は、イテレーション毎に変化する。イテレーション制御部128は、機械学習部127にイテレーション継続を指示する。
(S24)機械学習部127は、現在の予測モデルのパラメータの値を退避しておく。機械学習部127は、ステップS23で設定された制約条件の範囲内で、ステップS15で算出したモデル誤差が小さくなるように、予測モデルのパラメータの値を更新する。確率的勾配降下法などの勾配法では、例えば、設定された制約条件を満たす範囲で、パラメータに対するモデル誤差の勾配が算出される。そして、勾配と所定の学習率と現在のパラメータ値から、更新後のパラメータ値が決定される。その後、ステップS14に戻る。
(S25)イテレーション制御部128は、総数誤差が最小であったときの予測モデルのパラメータの値、すなわち、1つ前の予測モデルのパラメータの値を読み出し、その予測モデルを予測モデル記憶部124に出力する。
図17は、収穫予測の手順例を示すフローチャートである。
(S30)データ収集部125は、気象データと標本データを収集する。また、データ収集部125は、予測日以降の気象予報データを収集する。
(S31)データ加工部126は、標本データから着果日を抽出し、標本果実を着果日で分類する。データ加工部126は、着果日毎に標本果実をカウントする。
(S32)データ加工部126は、気象予報データから、予測日から収穫時期までの予報気温および予報日射量を抽出する。データ加工部126は、環境パラメータを用いて、予報気温および予報日射量を屋内の予想気温および予想日射量に変換する。
(S33)データ加工部126は、着果日毎に気象データから、着果日から予測日の前日までの測定気温および測定日射量を抽出する。データ加工部126は、測定気温および予想気温を時刻で分類し、各時刻の平均気温を算出する。また、データ加工部126は、測定日射量および予想日射量を時刻で分類し、各時刻の平均日射量を算出する。
(S34)収穫予測部129は、着果日を1つ選択する。収穫予測部129は、選択した着果日に対してステップS33で算出された平均気温および平均日射量を示す48次元ベクトルを予測モデルに入力して、平均と標準偏差と倍率を予測する。収穫予測部129は、複数の着果日それぞれに対して上記を実行する。
(S35)収穫予測部129は、所要日数分布の主要部分が予測期間前に属することになる2以上の着果日を特定する。例えば、収穫予測部129は、平均に相当する収穫日が学習期間に属するような2以上の着果日を特定する。収穫予測部129は、特定した2以上の着果日それぞれについて、予測モデルが出力する平均と訓練データが示す実際の平均との間の予測差異を算出し、2以上の着果日について予測差異の平均値を求める。同様に、収穫予測部129は、予測モデルが出力する標準偏差と訓練データが示す実際の標準偏差との間の予測差異を算出し、2以上の着果日について予測差異の平均値を求める。また、収穫予測部129は、予測モデルが出力する倍率と訓練データが示す実際の倍率との間の予測差異を算出し、2以上の着果日について予測差異の平均値を求める。
(S36)収穫予測部129は、ステップS34で予測した各着果日の平均に、ステップS35で算出した平均についての予測差異を加算する。同様に、収穫予測部129は、ステップS34で予測した各着果日の標準偏差に、ステップS35で算出した標準偏差についての予測差異を加算する。また、収穫予測部129は、ステップS34で予測した各着果日の倍率に、ステップS35で算出した倍率についての予測差異を加算する。これにより、予測期間前の収穫数に生じているバイアスが予測期間に反映される。
(S37)収穫予測部129は、複数の着果日それぞれについて、補正後の平均と標準偏差によって決まる確率および補正後の倍率を標本着果数に乗じて、所要日数毎の標本収穫数を予測する。収穫予測部129は、標本収穫数に標本割合の逆数を乗じて、所要日数毎の収穫数を予測する。そして、収穫予測部129は、複数の着果日の収穫数を、収穫日が揃うように着果日に応じてシフトし、収穫日毎に収穫数を合算する。
(S38)収穫予測部129は、ステップS37で算出した全体収穫数の予測結果を出力する。例えば、収穫予測部129は、予測結果を表示装置111に表示する。
第2の実施の形態の情報処理システムによれば、過去の着果から収穫までの所要日数とその期間の平均気温および平均日射量とを対応付けた訓練データを用いて、平均気温および平均日射量から所要日数を予測する予測モデルが生成される。そして、生成された予測モデルと予測対象の着果状況から、収穫日および収穫数が予測される。よって、パプリカの収穫前に農家の運営にとって有用な情報を提供することができる。
また、予測モデルは所要日数の期待値ではなく所要日数の確率分布の情報を出力するように生成される。よって、同じ育成環境のもとで育てても成長速度が大きく異なるというパプリカの個体差の性質を考慮して、収穫日のばらつきを表現することが可能となる。
また、学習途中の予測モデルを用いて訓練データから予想される全体収穫数と実際の全体収穫数とが比較され、総数誤差が最小になったことが検出されると機械学習のイテレーションが停止され、総数誤差が最小になったときの予測モデルが出力される。よって、過学習により予測モデルが過度に分散の小さい確率分布の情報を出力するようになることを抑制でき、予測モデルの予測精度を向上させることができる。また、少ない標本データからであっても、収穫日のばらつきを適切に反映した予測モデルが生成される。よって、標本果実を観測して標本データを採取する農家の負担を軽減できる。
また、予測モデルの更新時には、全体収穫数の内訳に相当する着果日毎の平均、標準偏差および倍率に対して制約条件が設定される。また、イテレーションの停止判定において、学習期間の末尾における実績のトレンドと学習期間の直後における予測のトレンドとの間のずれを示すトレンド評価値が算出され、全体収穫数の総数誤差がトレンド評価値を用いて補正される。そして、停止判定は、補正後の総数誤差に基づいて行われる。
これにより、全体収穫数の実績に異常値が含まれていても、全体収穫数に対する過学習が抑制され、予測モデルの予測精度が向上する。特に、全体収穫数の予測の内訳である複数の着果日の所要日数分布の中に、他の着果日の所要日数分布よりもピークの収穫数が著しく多い不自然な分布が出現する可能性を低減できる。また、学習期間の直後に、ピークの収穫数が著しく多い不自然な分布が出現する可能性を低減できる。すなわち、学習期間における全体収穫数の予測は実績に近いものの、その内訳である複数の着果日の所要日数分布に不自然な偏りが存在するという状況を抑制することができる。よって、学習期間後の予測期間においても、予測モデルは妥当な所要日数分布を出力することができる可能性が高くなり、予測モデルの予測精度が向上する。
10 機械学習装置
11 記憶部
12 処理部
13 訓練データ
13a,13b,13c レコード
14 総数データ
15 学習処理
16 予測モデル
17 予測分布
17a,17b,17c 確率分布

Claims (9)

  1. コンピュータに、
    それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データを取得し、
    育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、前記訓練データを用いて、前記予測モデルにより算出される前記確率分布の誤差を評価して前記予測モデルを更新することを繰り返す学習処理を実行し、
    前記学習処理において繰り返される前記予測モデルの更新それぞれにおいて、前記複数のレコードそれぞれに対して更新前後の前記予測モデルにより算出される前記確率分布の平均および分散の変動が所定範囲内になるよう制御する、
    処理を実行させる機械学習プログラム。
  2. 前記コンピュータに更に、
    前記複数のレコードが示す複数の標本農作物および他の農作物を含む農作物集合について収穫日に対する収穫数の実績分布を示す総数データを取得し、
    前記学習処理の途中において、前記複数のレコードが示す育成環境の情報から前記予測モデルにより算出される複数の確率分布を合成して、収穫日に対する収穫数の予測分布を算出し、前記予測分布と前記総数データが示す前記実績分布との間の類似度に基づいて、前記学習処理の停止タイミングを判定する、
    処理を実行させる請求項1記載の機械学習プログラム。
  3. 前記予測モデルは、前記確率分布を収穫数に変換するための倍率を更に算出し、
    前記制御では、前記予測分布と前記実績分布との間の比較に基づいて、前記予測モデルにより算出される前記倍率の上限および下限を決定する、
    請求項2記載の機械学習プログラム。
  4. 前記総数データは、所定期間の前記実績分布を示しており、
    前記停止タイミングの判定では、前記所定期間後の収穫日を含めて前記予測分布を算出し、前記実績分布が示す前記所定期間内の収穫数の増減と前記予測分布が示す前記所定期間後の収穫数の増減とから、増減傾向のずれを示す評価値を算出し、前記評価値を用いて、前記所定期間に対して算出する前記類似度を補正する、
    請求項2記載の機械学習プログラム。
  5. 前記コンピュータに更に、
    所定期間に対して前記予測モデルにより算出される前記複数の確率分布と前記複数のレコードが示す所要日数との間の比較に基づいて、予測差異を算出し、
    前記予測モデルにより前記所定期間後の前記確率分布を算出し、当該確率分布を前記予測差異に基づいて補正して、前記所定期間後の収穫数を予測する、
    請求項2記載の機械学習プログラム。
  6. 前記複数のレコードはそれぞれ前記基準日を含み、
    前記停止タイミングの判定では、前記農作物集合に対する前記複数の標本農作物の標本割合と前記基準日とから、前記複数の確率分布を合成して前記予測分布を算出する、
    請求項2記載の機械学習プログラム。
  7. 前記標本農作物は果実であり、
    前記基準日は、着果が観測された着果日であり、
    前記標本農作物の育成環境の情報は、当該標本農作物の着果日から収穫日までの間の気温および日射量を含む、
    請求項1記載の機械学習プログラム。
  8. コンピュータが、
    それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データを取得し、
    育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、前記訓練データを用いて、前記予測モデルにより算出される前記確率分布の誤差を評価して前記予測モデルを更新することを繰り返す学習処理を実行し、
    前記学習処理において繰り返される前記予測モデルの更新それぞれにおいて、前記複数のレコードそれぞれに対して更新前後の前記予測モデルにより算出される前記確率分布の平均および分散の変動が所定範囲内になるよう制御する、
    機械学習方法。
  9. それぞれ標本農作物の育成環境の情報と所定の状態が観測された基準日から当該標本農作物の収穫日までの所要日数とを対応付けた複数のレコードを含む訓練データを記憶する記憶部と、
    育成環境の情報から所要日数の確率分布を算出する予測モデルを生成し、前記訓練データを用いて、前記予測モデルにより算出される前記確率分布の誤差を評価して前記予測モデルを更新することを繰り返す学習処理を実行し、前記学習処理において繰り返される前記予測モデルの更新それぞれにおいて、前記複数のレコードそれぞれに対して更新前後の前記予測モデルにより算出される前記確率分布の平均および分散の変動が所定範囲内になるよう制御する処理部と、
    を有する機械学習装置。
JP2020074842A 2020-04-20 2020-04-20 機械学習プログラム、機械学習方法および機械学習装置 Pending JP2021174062A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020074842A JP2021174062A (ja) 2020-04-20 2020-04-20 機械学習プログラム、機械学習方法および機械学習装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020074842A JP2021174062A (ja) 2020-04-20 2020-04-20 機械学習プログラム、機械学習方法および機械学習装置

Publications (1)

Publication Number Publication Date
JP2021174062A true JP2021174062A (ja) 2021-11-01

Family

ID=78281799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020074842A Pending JP2021174062A (ja) 2020-04-20 2020-04-20 機械学習プログラム、機械学習方法および機械学習装置

Country Status (1)

Country Link
JP (1) JP2021174062A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768152B2 (en) 2022-02-07 2023-09-26 National University Corporation Hokkaido University Information processing system and spectroscopic measuring instrument

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768152B2 (en) 2022-02-07 2023-09-26 National University Corporation Hokkaido University Information processing system and spectroscopic measuring instrument

Similar Documents

Publication Publication Date Title
US11222385B2 (en) Method and system for forecasting crop yield
JP5756374B2 (ja) 生育管理方法
Bannayan et al. A stochastic modelling approach for real-time forecasting of winter wheat yield
JP5874240B2 (ja) 情報処理装置、収穫時期予測プログラムおよび収穫時期予測方法
JP2021056573A (ja) 作物成長予測プログラム、作物成長予測方法および作物成長予測装置
Rale et al. Prediction of crop cultivation
Salazar et al. Tomato yield prediction in a semi-closed greenhouse
Haight et al. Fixed and equilibrium endpoint problems in uneven-aged stand management
JP6095115B2 (ja) データ抽出装置、データ抽出方法、及びプログラム
EP3996012A1 (en) Plant cultivation management system and plant cultivation management device
JP2022136058A (ja) 農作物の生産成績を予測する予測モデルの生成方法、生成装置、及び生成プログラム
JP2021128756A (ja) 先物取引情報表示プログラム
JP7163881B2 (ja) 作物特性予測システム、作物特性予測方法、及び作物特性予測プログラム
JP7208503B2 (ja) 機械学習プログラム、機械学習方法および機械学習装置
Dinh et al. Statistical analysis of the weather impact on Robusta Coffee Yield in Vietnam
CN116451823A (zh) 一种基于气象主控因子的苹果产量预测方法
JP2021174062A (ja) 機械学習プログラム、機械学習方法および機械学習装置
US11580609B2 (en) Crop monitoring to determine and control crop yield
KR20190063410A (ko) 주산지 작물의 생산량 예측 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체
JP2021056572A (ja) 作物生産支援プログラム、作物生産支援方法および作物生産支援装置
CN116070742A (zh) 用于预测作物产量的方法、装置、存储介质及处理器
CN116186392A (zh) 柑橘品种的种植推荐方法、装置、终端设备和存储介质
US10803412B2 (en) Scheduling crop transplantations
JP2022136056A (ja) 農作物の生産成績を予測する予測方法、予測装置、及び予測プログラム
JP2022136057A (ja) 農作物の生産成績を予測する予測モデルの生成方法、生成装置、及び生成プログラム