特許法第30条第2項適用 (1)[ウェブサイトの掲載日]平成29年8月17日 [ウェブサイトのアドレス]https://www.nikkei.com/article/DGKKASAZ16HHN_W7A810C1MM8000/(2)[ウェブサイトの掲載日]平成29年8月21日 [ウェブサイトのアドレス]https://www.mri.co.jp/news/press/public_office/023179.html(3)[ウェブサイトの掲載日]平成29年10月27日 [ウェブサイトのアドレス]https://www.nikkan.co.jp/articles/view/00448310(4)[ウェブサイトの掲載日]平成30年1月3日 [ウェブサイトのアドレス]https://www.sankeibiz.jp/business/news/180103/bsd1801030500005-n1.htm
以下では、図面を参照しながら、本発明の実施形態について説明する。また、図面において同一の構成要素は、同じ番号を付し、説明は、適宜省略する。
(第1の実施形態)
図1は、第1の実施形態に係る特性予測装置全体の構成例を示す図である。
図1の特性予測装置1は、記憶部2と、学習部3と、前処理部4と、表示部5と、操作部6とを備えている。最初に、特性予測装置1で実行される処理の概要について説明する。
特性予測装置1は、過去の醸造事例に係る情報を含む醸造データを使って、任意の条件で醸造を行った場合に予想される飲料の特性を出力する。過去の醸造事例は、過去に飲料の醸造(試醸)が行われたときにおける原材料または醸造工程の少なくともいずれかの設定項目(レシピ)と、生成された飲料の成分値の情報を含む。飲料の例としては、麦芽を原材料に含む飲料(麦芽飲料)の生産に使われる麦汁、生産工程で発酵を伴う発酵飲料、非発酵のノンアルコール飲料、ビールテイスト飲料(アルコール分が1%未満であるビール風味の発泡性炭酸飲料)などが挙げられる。
発酵飲料の例としては、ビール、発泡酒、麦芽使用の新ジャンル、麦芽を使用したウイスキーなどの麦芽アルコール飲料が挙げられる。ただし、発酵飲料はワイン、日本酒などその他の種類の醸造酒であってもよいし、ウイスキー、ウォッカ、焼酎、白酒、ブランデーなどの蒸留工程を伴う蒸留酒であってもよい。飲料の原材料、飲料の生産において使われる酵母や菌類の種類、最終的に生成される飲料におけるアルコール成分の有無、アルコール度数については特に問わない。
麦芽アルコール飲料の特性は、例えば最終外観発酵度(AAL:Apparent Atennuation Limit)、色度、pH、全窒素、アミノ酸合計、苦味価(BU:Bitterness Units)などの成分値によって特定される。以下では、麦芽アルコール飲料の試醸を行うときに、ある試醸条件のもとで生成される麦芽アルコール飲料の成分値(特性)を予測する場合を例として説明する。試醸条件は、使用される原材料または醸造工程の少なくともいずれかの設定項目(レシピ)に係る情報を含む。
麦芽アルコール飲料の原材料に係る設定項目としては、例えば麦芽の使用量、麦芽の種類、麦芽のロット、麦芽の混合比、麦芽の成分値、ホップの使用量、ホップの種類、ホップのロット、ホップの混合比、ホップの成分値、副材料の種類、副材料の使用量、用水処理剤の種類、用水処理剤の使用量、酵素剤の種類、酵素剤の使用量などが挙げられる。醸造ではこれらの項目を調整することによって、様々な特性や風味に係る麦芽アルコール飲料を生成することができる。これらの原材料に係る設定は例であり、その他の設定項目が醸造事例および試醸条件に含まれていてもよい。
麦芽アルコール飲料の醸造工程に係る設定項目としては、糖化における温度の時間変化、糖化を行う時間、煮沸率、煮沸時間、冷却時間、冷却の温度、発酵の時間、発酵が行わる温度、熟成の時間、熟成が行われる温度、濾過で使用されるフィルタの種類などが挙げられる。これらの設定項目は例であり、その他の設定項目が醸造事例および試醸条件に含まれていてもよい。
本発明に係る特性予測装置では、上述の各設定項目を説明変数(特徴量)に、上述の発酵飲料の成分値を目的変数に設定した上で、機械学習手法を適用し、目的変数の値を推定する。利用者は、特性予測装置に特性(成分値)の予想を行いたい試醸条件に係る設定項目を入力し、当該試醸条件において生成される飲料の成分値を予想することができる。
上述のように、麦芽アルコール飲料などの飲料の分野では試作に要する時間、コスト、リソースを抑えつつ、開発スピードを高速化することが求められている。このような状況においては、任意の条件で醸造(試醸)を行ったときに得られる飲料の特性を高い精度で予測することが必要である。また、飲料の分野では複数の成分値により飲料の特性が特定されるため、複数の成分値を効率よく予測することも求められている。
本発明に係る特性予測装置では、それぞれの成分値を予測するときに、複数の機械学習手法のうち、学習データにおいて推定値と実際の成分値の誤差が最も小さくなる機械学習手法を使い、成分値の正式な予測値として利用者に提示する。ここで、推定値とはそれぞれの機械学習手法によって推定された成分値のことをいう。
学習データにおける各機械学習手法による推定値と実際の成分値(真値)のずれは、図2および図3に示した、交差検証(cross-validation)によって調べることができる。交差検証を行う場合、学習処理において学習データLを複数のブロックL1、L2、L3、・・・、Lkに分割する。例えば、成分値Y1、Y2、Y3、・・・、Ymについて学習処理(予測モデルおよび誤差判定モデルの生成処理)を行う場合、ブロックL2、L3、・・・、Lkをトレーニング用データとして学習(モデルの生成)を行う。そして、ブロックL1をテスト用データとして複数の機械学習手法を使った場合の誤差を求める。
上述のブロックの分割数、テスト用データおよびトレーニング用データのブロック割り当ては一例にしか過ぎない。学習データの一部をテスト用データに設定し、学習データのうち、テスト用データに設定されていない部分をトレーニング用データとして用いるのであれば、ブロックの分割数ならびに、テスト用データおよびトレーニング用データの割り当てについては特に問わない。例えば、複数のブロックがテスト用データに設定されていてもよい。それぞれの成分値(目的変数)についての学習処理(予測モデルおよび誤差判定モデルの生成処理)で同じテスト用データおよびトレーニング用データの組み合わせを使ってもよいし、異なるテスト用データおよびトレーニング用データの組み合わせを使ってもよい。
以下では学習データLの分割数をk、予測対象とする成分値の数をmとする。kとmの関係については特に限定しない。図2および図3の例では、テスト用データとして使われない残りのブロックのすべてをトレーニングデータとして使っているが、必ず残りのブロックのすべてをトレーニングデータとして使わなくてもよい。
本実施形態では、予測を行いたい成分値(目的変数)ごとに第1手法(第1の機械学習手法)であるM5´、第2手法であるK*(第2の機械学習手法)を使って予測モデルを学習する。そして、各手法による予測モデルを使って分析値の推定値を求める。第1手法の予測モデルによる推定値を第1推定値、第2手法の予測モデルによる推定値を第2推定値とよぶものとする。それぞれの成分値について、学習データにおける真値と第1推定値との間の誤差と、学習データにおける真値と第2推定値との間の誤差を比較し、当該成分値の正式な予測値として、誤差が少ない手法に係る推定値が使われるようにする。
なお上述のM5´、K*は例であり、その他の機械学習手法を用いてもよい。また、これより多い数の機械学習手法による分析値の推定値を求め、推定値の真値との間の誤差が最小となる手法を選択してもよい。
上述のような学習処理を行うことにより、試醸条件においてそれぞれの成分値の予測をするのにあたり、最も誤差が少なくなると推定される機械学習的手法による推定値を使うことができる。
次に、特性予測装置1の構成要素について説明する。
記憶部2は、過去の醸造事例のデータ、学習データ、機械学習の中間処理で生成されるデータ、機械学習で生成されたモデルのデータ、特性予測プログラムなどを格納する記憶領域である。記憶部2は、内部の構成要素として醸造データベース21と、学習データ記憶部22と、判定データ記憶部23と、モデルデータベース24とを含んでいる。醸造データベース21、学習データ記憶部22、判定データ記憶部23、モデルデータベース24の詳細については後述する。
記憶部2は、SRAM、DRAMなどの揮発性メモリでも、NAND、MRAM、FRAMなどの不揮発性メモリでもよい。また光ディスク、ハードディスク、SSDなどのストレージ装置でもよい。記憶部2は、特性予測装置1に内蔵されていてもよいし、特性予測装置1の外部の記憶装置であってもよい。また、記憶部2は、SDカード、MicroSDカード、USBメモリなどの取り外し可能な記憶媒体であってもよい。
学習部3は、任意の条件で醸造(試醸)を行った場合に予想される飲料の成分値を出力する。学習部3は、内部の構成要素として、変数選択部11と、交差検証部12と、モデル生成部13と、第1推定部14と、第2推定部15と、検証部16と、手法選択部17とを含んでいる。これらの構成要素の詳細についても後述する。
前処理部4は、過去の醸造事例に係るデータを、学習部3が利用可能な学習データの形式に変換する。前処理部4が行う処理の詳細についても後述する。
表示部5は、利用者が特性予測装置の操作時に利用するGUI(Graphical User Interface)やCLI(Command Line Interface)、各種データ、試醸条件の入力画面、予測結果や関連事例の画面などを表示するディスプレイである。ディスプレイとして、例えば液晶ディスプレイ、有機エレクトロルミネッセンスディスプレイ、プロジェクタ、LEDディスプレイなどを使うことができるが、その他の種類のディスプレイを使ってもよい。図1の例における表示部5は特性予測装置1に内蔵されているが、表示部5の位置については特に問わない。表示部5は、特性予測装置1から離れた部屋や建物に設置されていてもよいし、タブレットやスマートフォンなどの無線通信端末のディスプレイであってもよい。
操作部6は、利用者による特性予測装置1の操作手段を提供するデバイスである。操作部6は、例えば、キーボード、マウス、スイッチ、音声認識デバイスなどであるが、これに限られない。また、操作部6は表示部5と一体化したタッチパネルであってもよい。操作部6の位置についても特に問わない。操作部6は、特性予測装置から離れた部屋や建物に設置されていてもよいし、タブレットやスマートフォンなどの無線通信端末のタッチパネルであってもよい。
次に、記憶部2の内部の各構成要素について説明する。
醸造データベース21には、過去に飲料の醸造が行われた事例(過去の醸造事例)における原材料や醸造工程などの設定項目(レシピ)と、生成された飲料の成分値に関する情報である、醸造データが格納されている。図4および図5のテーブルは、醸造データの例を示している。図4のテーブルの列30には、それぞれの醸造事例を一意的に識別する識別子である、醸造IDが格納されている。醸造IDとして、例えば複数の英数字を含む識別子を使うことができるが、識別子のフォーマットについては特に問わない。醸造IDにより識別されるそれぞれの行には、当該醸造事例における各設定項目の値と生成された飲料の成分値(分析値)が格納されている。
図4のテーブルの列31には、原材料に係る複数の設定項目の値が格納されている。列31には、麦芽Aの使用量、麦芽Bの使用量、麦芽Cの使用量、ホップDの使用量、ホップEの使用量、副材料Fの使用量、副材料Gの使用量が含まれている。これらの設定項目は例であり、これらとは異なる設定項目が使われていてもよい。例えば、複数の原材料が混合されて使用された場合には、混合後の原材料に係る全窒素、色度などの成分値を設定項目に使ってもよい。原材料に係る設定項目として成分値を使う場合、成分値は麦汁を糖化させる前の値であってもよいし、糖化された後の値であってもよく、成分値の測定タイミングについては特に問わない。
図5のテーブルは、図4のテーブルのさらに右側に格納されるデータを示したものである。図5のテーブルの列32には、醸造工程に係る複数の設定項目の値が格納されている。列32には、温度変化パターン、糖化時間、煮沸率、煮沸時間が含まれている。これらの設定項目は例であり、これらとは異なる設定項目が使われていてもよいし、さらに他の設定項目が含まれていてもよい。
列32の左側にある列33には、生成された飲料の複数の成分値が格納されている。列33には、AAL(最終外観発酵度)、色度、pH、全窒素、アミノ酸合計、BUに係る成分値が含まれている。これらの成分値は例であり、これらとは異なる成分値が使われていてもよい。特性予測装置1ではそれぞれの成分値ごとに機械学習手法を使って値の予測を行うため、列33aに示されたそれぞれの成分値が機械学習における目的変数に相当する。
なお、醸造データにおける生成された飲料の成分値は、すべての工程が終了した飲料の成分値であってもよいし、麦汁や、途中工程における中間生成物の成分値であってもよい。すなわち、特性予測装置1が予測対象とする飲料の成分値は最終製品に係るものであっても、生産途中に生成される物に係るものであってもよく、醸造工程における時点については特に問わない。
学習データ記憶部22には、醸造データから生成された学習データが保存される。図6のテーブルは、学習データの例を示している。学習データは、醸造データと同様に醸造IDにより一意的に識別される。列30は、学習データにおける醸造IDを示している。醸造データでは、醸造IDによって識別されるそれぞれの行に係るデータを(醸造)事例とよんでいたが、学習データでは、それぞれの行に係るデータをサンプルとよぶものとする。図6のテーブルにはさらに列34と、列35が示されている。列34は学習データの説明変数である。図6の例において列34は説明変数x1から説明変数xnまでn個の説明変数を含んでいる。列35には、それぞれのサンプルに対応する醸造事例の成分値が格納されている。図6の例において列35は成分値Y1から成分値Ymまでm個の成分値を含んでいる。
以降では、学習データに含まれる、過去の醸造事例に対応するサンプルを過去サンプルとよぶものとする。それぞれの過去サンプルは醸造IDによって一意的に識別される。また、成分値の予測を行いたい試醸条件から生成されたサンプルを試醸サンプルとよぶものとする。
次に、前処理部4による学習データの生成処理(前処理)について説明する。
前処理部4が実行する前処理により、醸造データにおける列31、32(設定項目)は図6の列34に示された説明変数に変換される。もし、醸造データに相当するデータが複数のデータベースに保存されている場合には、前処理において必要なデータを抽出し、データの結合処理を行ってもよい。また、蓄積されている過去の醸造事例に係るデータが醸造IDによって一意的に識別可能な形式となっていない場合には、醸造ID単位で情報の集約を行ってもよい。また、醸造データに異常なデータが含まれている場合には、異常なデータを取り除いてもよい。
また、前処理では技術者の知見や文献などの形式知を反映し、学習データへの変換を行ってもよい。例えば、経験上製品の特定の成分値の予測に必須な成分値がある場合には、当該成分値を必ず機械学習で使用される説明変数に含めるよう、設定することができる。このような設定は、例えば学習データの説明変数の属性情報や、説明変数に関する情報を格納したメタデータにマーキングをすることによって行う。醸造が行われる設備の違いによって生成される飲料の特性が変化することが知られている場合には、醸造事例で使用された設備に応じて、説明変数の値を補正してもよい。利用者(例えば、技術者、研究者など)が表示部5に表示されたデータを参照し、操作部6を使って異常なデータまたは入力ミスのデータを修正したり、使用対象から除外したりしてもよい。
文献に記載された情報を使って、学習データへの変換を行うことができる。例えば、文献に糖化において用いられる、特定の酵素が活性化する条件が記載されている場合には、活性化条件を満たしている醸造IDについては、当該酵素に係る情報を説明変数に必ず含めるように設定し、活性化条件を満たしていない醸造IDについては、当該酵素に係る情報を説明変数から除外するように設定することができる。
また、文献には飲料の成分値に関する理論式が記載されていることがある。理論式を使うと、過去の醸造事例において実際に成分値の測定を行っていない場合でも、当該事例において推測される成分値を導き出せる場合がある。理論式から導き出された成分値を、学習データに説明変数または目的変数として追加してもよい。
図7は、予測を行う成分値ごとに使用される説明変数と目的変数の例を示している。図7上段にはテーブル36、図7下段にはテーブル37が示されている。テーブル36、37は図6の学習データの一部を抽出したものとなっている。テーブル36には成分値Y1を目的変数y1に設定し、推定を行うときに使われる説明変数x1、x2、x3が示されている。一方、テーブル37には成分値Y2を目的変数y2に設定し、推定を行うときに使われる説明変数x4、x5、x6が示されている。テーブル36、37ではそれぞれ3個の説明変数が選択されているが、選択される説明変数の数はこれとは異なっていてもよい。また、異なる目的変数の値を推定するときに使われる説明変数に重複があってもよい。テーブル36、37の例に示したような変数選択は、変数選択部11によって行われる。変数選択部11の詳細については後述する。
判定データ記憶部23には、成分値の推定に用いる機械学習手法の選択に使われるデータが保存される。機械学習手法の選択に使われるデータの例としては、判定テーブル、推定値比較テーブルが挙げられる。以下では、図8~図10を参照し、判定データ記憶部23に保存される判定テーブル、推定値比較テーブルの例について説明する。
図8には、判定テーブル38が示されている。予測モデル(例えば、第1手法、第2手法などの機械学習手法)と、予想する成分値(Y1、Y2、・・・、Ym)の組み合わせごとに判定テーブルが生成される。判定テーブル38の列39には、醸造IDが格納される。判定テーブル38の列40は、各醸造IDに対応する説明変数である。列41は、各醸造ID(各醸造事例)における実際の成分値Y1であり、モデルの推定値の誤差を求めるときに真値として使われる。列42は、ある手法に係る予測モデルにおける目的変数y1であり、当該予測モデルによって計算された推定値が格納される。
列43には、許容誤差内判定結果が格納される。許容誤差内判定結果は“TRUE”または“FALSE”の2値をとる。モデルによる推定値(列42)と、真値である実際の分析値(列41)との間の誤差の大きさが許容誤差内であれば、列43の値は“TRUE”となる。モデルによる推定値(列42)と、真値である実際の分析値(列41)との間の誤差が許容誤差より大きいのであれば、列43の値は“FALSE”となる。許容誤差の例としては、真値の1%、2%、5%、10%などの値を使うことができるが、設定値については特に限定しない。後述するように、列43の許容誤差内判定結果は誤差判定モデルの学習時に教師信号として用いられる。
列43aには、それぞれの醸造IDに対応する許容誤差内確率が格納される。許容誤差内確率は、手法選択モデルの学習や正式な予測値として提示される推定値の選択に用いられる。許容誤差内確率の詳細については、後述する。
図8の列39~列41は、図6の学習データと共通の内容となっている。したがって、判定テーブルは、学習データと共通のテーブルであってもよい。また、判定テーブルは列40、41に係るデータを持たず、学習データに係るテーブルから該当するデータを取得してもよい。
図9には、推定値比較テーブル44が示されている。予想する成分値(Y1、Y2、・・・、Ym)ごとに推定値比較テーブルが生成される。列45には、醸造IDが格納される。列45に格納される醸造IDは、テスト用データとして使われるブロックに含まれるサンプルに係るものとなる。推定値比較テーブル44は成分値Y1に係るテーブルであるから、ブロックL1に含まれるサンプルに係る醸造IDが格納される。列46には、第1手法による予測モデルによって求められた第1推定値が格納されている。列47には、第2手法による予測モデルによって求められた第2推定値が格納されている。図9の例では、2つの手法による推定値が示されていているが、これより多い数の種類の手法による推定値が手法比較テーブル44に含まれていてもよい。列48には、真値である実際の成分値が格納されている。
列49には、第1手法の予測モデルによる第1推定値と、第2手法の予測モデルによる第2推定値の実際の成分値(真値)との誤差(ずれ)に基づいて選択された、成分値Y1の予測を行うのに「好ましい手法」が格納される。テスト用データを使って推定値を求めた場合、それぞれの醸造IDについて、真値との誤差が小さい方の手法を「好ましい手法」として選択することができる。後述するように、列49の「好ましい手法」は教師信号として用いられる。
モデルデータベース24には、推定値を出力する予測モデル、誤差判定モデル、手法選択モデルのデータ(モデルデータ)が保存される。予測モデルはモデル生成部13により、誤差判定モデルは検証部16により、手法選択モデルは手法選択部17により、それぞれ生成される。モデルデータの内容と保存フォーマットは学習に使用される手法とモデル種類によって異なる。
図10および図11は、予測モデルの学習手法(機械学習手法)としてM5´を使った場合におけるモデルデータの例を示している。図10、図11にはそれぞれ深さ3の木(tree)が示されている。木は、学習データを分割することによって生成される。図10は、学習データのうち、目的変数y1の推定をするときに使用する説明変数を用いて生成された木である。図11は、学習データのうち、目的変数y2の推定をするときに使用する説明変数を用いて生成された木である。図10、図11の木のそれぞれのノードには回帰式が示されている。それぞれの回帰式は各ノードに含まれる学習データを使って生成され、目的変数(y1またはy2)として成分値(Y1またはY2)の推定値を出力する。
また、手法としてK*を使った場合には、K*によるモデルデータをモデルデータベース24に保存することができる。K*では、試醸サンプルと、過去サンプルとの間の遷移確率と、それぞれの過去サンプルに対応する醸造事例の成分値を用いて、分析値(目的変数)の推定値を計算することができる。モデル生成部13、M5´およびK*の詳細については後述する。
次に、学習部3の内部の構成要素について説明する。
変数選択部11は、学習データ記憶部22に保存された学習データから、それぞれの目的変数y1、y2、・・・、ymの推定に用いる説明変数の選択を行う。変数選択部が行う変数選択処理は、上述の図6のテーブルから、図7のテーブル36、37を生成する処理に相当する。変数選択部11は、例えば主成分分析などの線形の次元削減手法を使って変数選択を行ってもよいし、その他の手法によって使用する説明変数を絞り込んでもよい。また、前処理部4が学習データの属性情報やメタデータに記録した、特定の醸造IDにおいては使用が必須である説明変数に係る情報や、特定の醸造IDにおいて使用対象から除外される説明変数に係る情報を使って、変数選択を行ってもよい。また、利用者が使用する説明変数の選択を行ってもよいし、利用者が変数選択部11の選択した説明変数に対して変更を加えてもよい。
なお、特性予測装置1は必ず変数選択部11を備えていなくてもよい。すなわち、変数選択(次元削減)を行わずに、学習データに含まれるすべての説明変数x1、x2、・・・、xmを使って、目的変数の値を推定してもよい。以降の説明では、単に学習データと述べた場合、変数選択(次元削減)が行われる前のもとの学習データと、それぞれの目的変数の推定のために変数選択(次元削減)が行われた後の学習データの両方を含むものとする。
交差検証部12は、学習データLを複数のブロックL1、L2、L3、・・・、Lkに分割し、それぞれの予想対象となる成分値(Y1、Y2、・・・、Ym)の推定に用いられる、予測モデルと、対応する誤差判定モデルの学習において、テスト用データとして使われるブロックと、トレーニング用データとして使われるブロックの割り当てを決定する。交差検証部12が実行する処理の詳細は、図2、図3の説明で述べた通りである。交差検証部12は、上述の用途別のブロックの割り当てに関する情報を記憶部2に保存してもよい。
モデル生成部13は、学習データに基づき、目的変数の推定値を出力する予測モデル(機械学習モデル)を生成する。モデル生成部13が生成した予測モデルは、モデルデータベース24に保存される。ここでは、機械学習モデル(手法)としてM5´(第1手法)を使った場合を例に説明するが、M5やニューラルネットワークなどその他のモデルを使って目的変数の推定値を計算してもよい。以下ではモデル生成部13が用いる手法の例のひとつであるM5´の概要について説明する。
M5´(第1手法)では標準偏差の減少量(SDR:Standard Deviation Reduction)の最大化を基準として、学習データを順次分割する。M5´におけるSDRは下記の式(1)のように定義される。
ここで、mは欠値のないサンプルの数、|T|は、分割前のノードに含まれるサンプル数、β(i)は補正係数、sd(T)は分割前のノードにおける標準偏差、|T
j|は分割により作られた一方のノード(左側または右側)に含まれるサンプル数、sd(T
j)は分割により作られた一方のノード(左側または右側)における標準偏差である。
なお、式(1)のSDRは一例であり、M5´の原型となったM5のように式(1)の括弧内の項のみによって表されるSDRを使ってもよい。
式(1)を基準に学習データを分割することによって、分散(標準偏差)が最小化された学習データに属する過去サンプルの部分集合(例えば、図10、図11のリーフノード)が得られる。分割による標準偏差の減少に統計的有意性が認められなくなった場合(例えば、分割後のデータの標準偏差がもとの学習データに係る標準偏差の5%未満となる場合)や、ノードに含まれるサンプル数が下限値(例えば、3以上)に達した場合には、学習データの分割を打ち切ることができる。分割によって木が生成されたら、それぞれのノードに含まれるサンプルを使い、目的変数の推定値を出力する回帰式を生成する。回帰式は、例えば線形回帰によって計算することができるが、回帰の手法については特に問わない。
木のそれぞれのノードについて回帰式を求めたら、木の枝刈り(pruning)を行うことができる。ルートノードを除く、すべてのノードに含まれる過去サンプルついて、回帰式による推定値と、当該過去サンプルに対応する醸造事例に係る実際の成分値との間の絶対値誤差の平均値を計算する。次に木に含まれるそれぞれのサブツリーについて、枝における絶対値誤差の平均値の総和と、サブツリーのルートノードにおける絶対値誤差の平均値の総和を比較する。前者の値の方が大きい場合、当該サブツリーの枝刈りを行う。これにより、予測精度を損なうことなく木を単純化し、過学習の影響を軽減できる。
M5´を使うことにより、学習データを分割した過去サンプルの部分集合ごとに回帰式を用意することができる。これによって、学習データの全体にひとつの回帰式を当てはめる場合に比べて回帰式の予測精度を高めることができる。
第1推定部14は、モデル生成部13によって生成された第1手法による予測モデル(M5´)を用いて飲料の成分値(目的変数)の推定を行う。以降では、第1手法による予測モデル(M5´)によって得られた推定値を第1推定値とよび、第2手法による予測モデル(K*)によって得られた推定値と区別するものとする。
第1手法としてM5´を使った場合における、第1推定値の計算処理について説明する。モデル生成部13は、M5´モデルを使い、学習データを分割し、分割後の各ノードに回帰式が対応付けられている木を生成している(例えば図10、図11)。第1推定部14は、モデルデータベース24を参照し、推定する成分値Yi(目的変数yi)に対応する木に係るデータを特定する。第1推定部14は、成分値Yi(目的変数yi)の推定に用いられる試醸サンプルの説明変数の値を参照し、試醸サンプルが木のどのノードに属するのかを特定する。試醸サンプルの属するノードが特定されたら、当該ノードに対応付けられた回帰式を用いて目的変数yiの値を計算する。そして第1推定部14は、回帰式より計算された目的変数yiの値を第1推定値として出力する。
第2推定部15は、モデル生成部13によって生成された第2手法による予測モデル(K*)を用いて飲料の成分値(目的変数)の推定を行う。以降では、第2手法による予測モデル(K*)によって得られた推定値を第2推定値とよび、第1手法による予測モデル(M5´)によって得られた第1推定値と区別するものとする。
第2手法としてK*を使った場合における、第2推定値の計算処理について説明する。K*は学習データの過去サンプルを使って、試醸条件における成分値の推定値を求める事例ベースの手法である。以下では、K*(第2手法)を使って成分値の予測値を行う方法を説明する。
ここで、Iが連続値をとるサンプルの集合、TがIの上での変換操作tの集合であるものとする。下記の式(2)に示されているように、変換操作tの組み合わせによってサンプルaからサンプルbへの遷移ができるものとする。
PをIにおけるサンプル間の遷移を実現する変換の集合であるとすると、下記の式(3)に示された関係を満たす確率関数(Probability Function)を定義することができる。
式(3)はあるサンプルを始点としたときに起こりうる遷移パターンの確率をすべて足し合わせると1になることを示している。
下記の式(4)は特徴空間内でサンプルaからサンプルb間の各経路をとって変換が起こる確率の和P*を示している。
下記の式(5)のK*関数は、式(4)のP*をエントロピーに類似した形式で表したものである。
K*関数は、K*学習器における距離関数として用いられる。本実施形態における過去サンプルのように、それぞれのサンプルが複数の説明変数を含む場合、サンプル間の遷移確率P*はそれぞれの説明変数について求めた遷移確率の積となる。サンプル間のK*関数は、それぞれの説明変数について求めたK*関数の値の和となる。
サンプル間の遷移確率を使うと、K*による成分値の推定を行うことができる。まず、説明変数xiごとに、試醸サンプルと学習データのそれぞれの過去サンプルとの間の遷移確率を計算する。次にそれぞれの説明変数について求めた遷移確率を積算する。これによって、すべての説明変数を含めた試醸サンプルとそれぞれの過去サンプルとの間の遷移確率が求められる。最後に、過去サンプルに対応する醸造事例における実際の成分値と、試醸サンプルとの間の遷移確率の積を、それぞれの過去サンプルについて計算し、対象のデータ(学習データ)に含まれるすべての過去サンプルについて加算する。この値を過去サンプルと試醸サンプルとの間の遷移確率の和で割ると、成分値の推定値を求めることができる。
なお、学習処理においてテスト用データに設定されたブロックを用いて、第2手法の誤差を確認する際には、テスト用データに設定されたブロックに属するそれぞれの過去サンプルと、トレーニング用データの過去サンプルとの間の遷移確率を計算する。
K*を使ってサンプルをカテゴリに分類することもできる。例えばサンプルaがカテゴリCに属する確率を求める場合、サンプルaがカテゴリCに属するサンプルのいずれかに遷移する確率の和を求めればよい。すなわち、下記の式(6)をP*として用いることができる。
各醸造事例に対応する過去サンプルが、複数のカテゴリに分類されている特徴空間上に試醸サンプルを追加し、上述の式(6)を適用した場合、それぞれのカテゴリについてP*の値を計算することができる。この場合、試醸サンプルは、P*の値が最大となったカテゴリに属すると判定することができる。
検証部16は、学習処理においてテスト用データを使って推定値を求めたときに当該推定値と真値(実際の成分値)との間の誤差が許容誤差内にあるか否かを判定し、許容誤差内判定結果を求める。そして、トレーニング用データを使って許容誤差内判定結果を教師信号とし、ずれが許容誤差内にあるか否かの分類(TRUE/FALSE)を行う誤差判定モデルを学習する。最後に、テスト用データに学習した誤差判定モデルを適用し、許容誤差内確率を求める。
上述の検証部16による処理は、予測対象とする成分値および予測に用いる手法ごとに実行されるため、予測対象とする成分値(Y1、Y2、・・・、Ym)と機械学習手法(例えば、第1手法、第2手法)の組み合わせごとに誤差判定モデルが生成される。次に、予測処理において検証部16が実行する処理について述べる。
予測処理においては、試醸サンプルに係る説明変数を誤差判定モデルに入力し、それぞれの手法について、許容誤差内確率を計算し、許容誤差内確率に基づき、後述の手法選択部17(手法選択モデル)で誤差が小さい(精度が高い)と推定される手法を選択する。
推定値と真値との間のずれが許容誤差内にあるか否かの2値の分類(TRUE/FALSE)を行う、誤差判定モデルは例えば、ロジスティック回帰によって学習することができる。以下では、ロジスティック回帰を使った誤差判定モデルの学習処理の概要について説明する。
検証部16が用いるロジスティックモデルは下記の式(7)のように表される。
ここで、Zは目的変数、X
1~X
n+1は説明変数、b
0は定数、b
1~b
n+1は回帰係数である。例えば、説明変数X
1~X
nとして試醸サンプルに係る説明変数x
1~x
nを使うことができる。説明変数X
nとして、特徴空間において過去サンプルのうち、試醸サンプルとの距離が最も短いものまでの距離(最近接距離)を使うことができる。距離の例としては、ユークリッド距離、マンハッタン距離、ミンコフスキー距離、チェビシフ距離、マハラノビス距離などがあるが、どの種類の距離を用いてもよい。なお、式(7)のモデルの一例であり、ロジスティックモデルの説明変数に必ず最近接距離を含めなくてもよい。
許容誤差内判定結果を教師信号としてロジスティック回帰を行うことにより、定数b0と回帰係数b1~bn+1の値を計算する。数値計算では、最急降下法や確率的勾配降下法などを使って対数尤度の極値をとるよう、b0~bn+1の値を繰り返し更新する。ただし、使用される数値計算アルゴリズムについては特に問わない。
定数b
0と回帰係数b
1~b
n+1の値を求めたら、目的変数Zを下記の式(8)によって表されるシグモイド関数に代入し、許容誤差内確率pを計算することができる。
図12に示したように、シグモイド関数の出力値pは(0,1)の範囲の値をとる。ロジスティック回帰分析を使うと、分析対象が1と0の2値の状態をとるものであるときに、目的変数がいずれかの値をとる確率を推定することができる。2つの機械学習手法による推定値を求める場合、検証部16は予測対象となっているそれぞれの成分値について、第1推定値に係る許容誤差内確率p1と、第2推定値に係る許容誤差内確率p2のそれぞれを計算する。
上述では、ロジスティック回帰を使って誤差判定モデルの学習を行う場合を例に説明したが、その他の手法を使って誤差判定モデルの学習を行ってもよい。確率的な分類を行うその他の手法の例としては、最小二乗確率的分類などが挙げられる。
手法選択部17は、学習処理において、テスト用データをそれぞれの手法による予測モデルに入力して求めた推定値と、実際の成分値(真値)との間の誤差(ずれ)に基づき、誤差の小さい(精度の高い)機械学習手法を「好ましい手法」として選択する。詳細な処理は上述の図9に係る説明で述べた通りである。次に、手法選択部17は、検証部16で求められた許容誤差内確率(例えば、第1許容誤差内確率と第2許容誤差内確率)を学習データの説明変数に追加し、「好ましい手法」を教師信号として、手法選択モデルの学習を行う。
手法選択モデルの学習は、それぞれの予測対象の成分値について実行されるため、予測対象の成分値(Y1、Y2、・・・、Ym)ごとに手法選択モデルが生成される。次に、予測処理において手法選択部17が実行する処理について述べる。
予測処理においては、検証部16で計算された、それぞれの手法に係る許容誤差内確率(例えば、確率p1、p2)と、試醸サンプルに係る説明変数を手法選択モデルに入力し、正式な予測値として用いる推定値(例えば、第1手法と第2手法がある場合には、第1推定値または第2推定値のいずれか)を選択する。
次に、手法選択モデルの学習処理について説明する。第1手法、第2手法のようにふたつの手法のいずれかの推定値を正式な予測値として選択する場合、誤差判定モデルと同様に、ロジスティック回帰を用いることができる。以下では、手法選択モデルの学習にロジスティック回帰を使った場合を例に説明する。
手法選択モデルの学習では、下記の式(9)のようなロジスティックモデルを使う。
ここで、Z´は目的変数、X´
1~X´
n+2は説明変数、d
0は定数、d
1~d
n+2は回帰係数である。
手法選択部17は、例えば説明変数X´1として第1推定値に係る許容誤差内確率p1、説明変数X´2として第2推定値に係る許容誤差内確率p2、説明変数X´3~X´n+2として、試醸サンプルに係る説明変数x1~xnを使うことができる。すなわち、試醸サンプルの説明変数に、試醸条件における第1推定値の許容誤差内確率と、試醸条件における第2推定値の許容誤差内確率を追加して、ロジスティック回帰の説明変数としている。そして、手法選択部17は図9の列49に示された「好ましい手法」を教師信号としてロジスティック回帰を行い、定数d0と回帰係数d1~dn+2の値を計算する。使われる数値計算の手法については特に問わない。
目的変数Z´の値を求めたら、シグモイド関数である下記の式(10)にZ´を代入して確率p´を計算する。
そして、確率p´の値を2値化する。2値化処理の一例としては、しきい値を使う方法がある。例えば、確率p´がしきい値より大きい場合には出力値を1とし、モデルベースの手法(第1推定値)を選択する。そして確率p´がしきい値以下の場合には出力値を0とし、事例ベースの手法(第2推定値)を選択する。しきい値としては、例えば0.5を使うことができるが、これとは異なる値であってもよい。以降では式(10)の確率p´を手法変数とよび、許容誤差内確率pと区別するものとする。
上述では、手法選択モデルの学習にロジスティック回帰を用いた場合を例に説明したが、その他の手法を使って手法選択モデルの学習を行ってもよい。例えば、最小二乗確率的分類を使ってもよいし、サポートベクトル分類、決定木、アンサンブル学習などを使って手法選択モデルの学習を行ってもよい。
予測対象の成分値(Y1、Y2、・・・、Ym)ごとに手法選択モデルが生成されているため、実際の予測処理においては、予測をする成分値によって選択される手法が異なる場合がある。手法選択部17は予測処理において、それぞれの成分値の予測のために選択された機械学習手法の種類と、試醸条件における成分値の正式な予測値を表示部5に表示してもよい。
次に、特性予測装置1が実行する処理の詳細について説明する。図13~図15は、特性予測装置が実行する学習処理を示したフローチャートである。利用者が醸造条件における成分値の予測を行う前に、当該成分値の予測のための学習処理が実行されている必要がある。以下では、図13~図15のフローチャートを参照しながら、処理を説明する。
最初に、前処理部4は、醸造データから学習データを生成し、学習データ記憶部22に学習データを保存する(ステップS101)。ステップS101で実行される処理は前処理部4に係る説明で述べた通りである。次に、変数選択部11は、予測を行う成分値(目的変数)と、目的変数の推定に用いる手法との組み合わせごとに、学習に使用する変数を選択する(ステップS102)。ステップS102で実行される処理の詳細は、図6、図7および変数選択部11に係る説明で述べた通りである。このとき変数選択部11は、選択された変数に係る情報を学習データ記憶部22に保存してもよい。
そして、交差検証部12は、学習データLをk分割し、複数のブロックL1、L2、・・・、Lkを生成する(ステップS103)。このとき、交差検証部12はそれぞれの成分値Y1、Y2、・・・、Ymに係る予測モデルおよび誤差判定モデルの学習を行うときに、テスト用データとするブロックと、トレーニング用データとするブロックの割り当てを決定する。学習データLの分割数kについては特に限定しない。ステップS103で実行される処理の詳細は、図2、図3および交差検証部12に係る説明で述べた通りである。
学習データを複数のブロックに分割したら、学習データの一部のブロックをテスト用データに設定し、残りのブロックをトレーニング用データに設定する(ステップS104)。学習データにおけるテスト用データおよびトレーニング用データのブロック割り当てが決まったら、それぞれの予測対象の成分値(目的変数)および機械学習手法の組み合わせごとに、予測モデルと誤差判定モデルの学習を行う。以下では、繰り返し処理により、予測モデルと誤差判定モデルの学習が行われる場合を例に説明する。まず、繰り返し処理のため、ループカウンタiに1を代入する(ステップS105)。
ステップS105が実行された後、特性予測装置1はステップS106~S111の処理(第1手法に係る予測モデルおよび対応する誤差判定モデルの学習)と、ステップS112~S118の処理(第2手法に係る予測モデルおよび対応する誤差判定モデルの学習)を並列的に実行する。以下ではまずステップS106~S111の処理について説明する。
モデル生成部13は、トレーニング用データを使って推定をする成分値Yi(目的変数yi)について第1手法(例えば、M5´)により、予測モデルを生成する(ステップS106)。モデル生成部13は第1手法により生成された予測モデルをモデルデータとしてモデルデータベース24に保存する(ステップS107)。モデルデータは、当該モデルにより推定される成分値(目的変数)を示す情報とともに保存される。ステップS106、ステップS107で実行される処理の詳細は、モデル生成部13に係る説明で述べた通りである。
次に、第1推定部14は、テスト用データを使って予測モデルによる成分値Yi(目的変数yi)の第1推定値を求める。そして、検証部16は、それぞれの醸造IDにおける第1推定値と真値(実際の成分値)との間の誤差の大きさを求め、保存する。検証部16は、当該誤差の大きさが許容誤差の範囲内にあるか否かを判定する(ステップS108)。
検証部16は、テスト用データに含まれる、それぞれの醸造IDについて、許容誤差内判定結果(TRUE/FALSE)を保存する(ステップS109)。検証部16は、例えば図8の判定テーブルに許容誤差内判定結果を保存することができる。ステップS108、S109で実行される処理の詳細は図8に係る説明で述べた通りである。
そして、検証部16はトレーニング用データを使い、許容誤差内判定結果を教師信号として、ずれ(誤差)が許容誤差の範囲内にある確率を推定する誤差判定モデルを学習し、記憶部2のモデルデータベース24に保存する(ステップS110)。ステップS110で実行される処理の詳細は、誤差判定モデルに係る説明で述べた通りである。次に、検証部16はテスト用データに誤差判定モデルを適用し、それぞれの醸造IDについて、第1許容誤差内確率を求める(ステップS111)。第1許容誤差内確率は判定テーブルに保存することができる。
次に、ステップS112~S118の処理について説明する。
モデル生成部13は、トレーニング用データを使って推定をする成分値Yi(目的変数yi)について第2手法による、学習を行う(ステップS112)。第2手法としてK*を用いる場合、ステップS112で遷移確率の計算のための前処理などを実行してもよい。特に前処理などを実行する必要がない場合には、ステップS112に係る処理を省略してもよい。第2手法としてモデルベースの手法が用いられる場合、ステップS112ではもうひとつの予測モデルが生成される。
次に、モデル生成部13は第2手法で使うデータをモデルデータとして、モデルデータベース24に保存する(ステップS113)。特に保存するモデルデータがない場合には、ステップS113に係る処理を省略してもよい。
そして、第2推定部15はテスト用データを使って、第2手法による成分値Yi(目的変数yi)の第2推定値を求める。そして、検証部16は、それぞれの醸造IDにおける第2推定値と真値(実際の成分値)との間の誤差の大きさを求め、保存する。検証部16は、当該誤差の大きさが許容誤差の範囲内にあるか否かを判定する(ステップS114)。
検証部16は、テスト用データに含まれる、それぞれの醸造IDについて、許容誤差内判定結果(TRUE/FALSE)を保存する(ステップS115)。検証部16は、例えば図8の判定テーブルに許容誤差内判定結果を保存することができる。ステップS114、S115で実行される処理の詳細は図8に係る説明で述べた通りである。
そして、検証部16はトレーニング用データを使い、許容誤差内判定結果を教師信号として、ずれ(誤差)が許容誤差の範囲内にある確率を推定する誤差判定モデルを学習し、記憶部2のモデルデータベース24に保存する(ステップS117)。ステップS117で実行される処理の詳細は、誤差判定モデルに係る説明で述べた通りである。次に、検証部16はテスト用データに誤差判定モデルを適用し、それぞれの醸造IDについて、第2許容誤差内確率を求める(ステップS118)。第2許容誤差内確率は判定テーブルに保存することができる。
予測対象の成分値Yi(目的変数yi)についてステップS111およびステップS118の処理が終了したら、ループカウンタiにi+1を代入する(ステップS119)。次に、ループカウンタiの値を予測対象の成分値(目的変数)の数mと比較する。i≦mである場合、処理はステップS106およびステップS112(並列的な処理)に戻る。i>mである場合、処理はステップS121に進む(ステップS120)。これにより、すべての予測対象の成分値Yi(目的変数yi)について、予測モデルと対応する誤差判定モデルが学習されるまで、繰り返し処理が実行される。
図13、図14のフローチャートに示した例では、繰り返し処理によってそれぞれの予測対象の成分値Yi(目的変数yi)に係る予測モデルと対応する誤差判定モデルの学習が実現されているが、処理の並列性はこれとは異なっていてもよい。例えば、複数の成分値Yi(目的変数yi)に係る予測モデルと対応する誤差判定モデルの学習を並列的に実行してもよいし、第1手法と第2手法に係るモデルの学習を逐次実行してもよい。並列的な学習処理は、例えば複数台の計算機(コンピュータ)、複数のCPU(Central Processing Unit)を用いることによって実現することができる。
次に、手法選択部17は、それぞれの目的変数y(成分値Y)について、第1手法による第1推定値と真値(実際の成分値)との間の誤差と、第2手法による第2推定値と真値(実際の成分値)との間の誤差を比較する。手法選択部17は、当該目的変数yについて、誤差が小さい手法を、当該目的変数の推定に「好ましい手法」として選択する(ステップS121)。「好ましい手法」の選択処理に関する詳細は、図9および手法選択部17に係る説明で述べた通りである。
学習データの醸造IDのそれぞれについて、「好ましい手法」が選択されたら、学習データをトレーニング用データと、トレーニング用データに分割せず、手法選択モデルの学習を行う。図15の例では予測対象とする成分値(目的変数)ごとに手法選択モデルの学習を繰り返すため、それぞれの目的変数y(成分値Y)に対応する、ループカウンタjに1を代入する(ステップS122)。
まず、手法選択部17は学習データの説明変数に第1許容誤差内確率および第2許容誤差内確率を追加し、目的変数yj(成分値Yj)について、「好ましい手法」を教師信号として、手法選択モデルを学習する(ステップS123)。手法選択モデルの学習についての詳細は、手法選択部17に係る説明で述べた通りである。そして、手法選択部17は学習された目的変数yj(成分値Yj)に係る手法選択モデルを記憶部2のモデルデータベース24に保存する。
予測対象の成分値Yj(目的変数yj)についてステップS124の処理が終了したら、ループカウンタjにj+1を代入する(ステップS125)。次に、ループカウンタjの値を予測対象の成分値(目的変数)の数mと比較する。j≦mである場合、処理はステップS123に戻る。j>mである場合、すべての学習処理は終了する(ステップS126)。これにより、すべての予測対象の成分値Yj(目的変数yj)について、手法選択モデルが学習されるまで、繰り返し処理が実行される。
図15のフローチャートに示した例では、繰り返し処理によってそれぞれの予測対象の成分値Yi(目的変数yi)に係る手法選択モデルの学習が実現されているが、複数の成分値Yi(目的変数yi)に係る手法選択モデルの学習を並列的に行ってもよい。並列的な学習処理は、例えば複数台の計算機(コンピュータ)、複数のCPU(Central Processing Unit)を用いることによって実現することができる。
次に、特性予測装置1による予測処理について述べる。
図16、図17は、ある成分値Ypの予測処理を示したフローチャートである。予測対象の成分値(目的変数)について学習処理が完了したら、当該成分値(目的変数)について予測処理を実行することが可能となる。以下では、図16、図17のフローチャートを参照しながら、処理を説明する。
最初に、利用者は試醸条件と、当該試醸条件のもとで予測したい飲料の成分値を決める(ステップS201)。飲料の成分値はひとつであってもよいし、複数個であってもよい。次に、利用者は操作部6を使って試醸条件と予測したい成分値Ypを特性予測装置1に入力する(ステップS202)。そして利用者は操作部6より成分値の予測処理の開始指令を出す。
予測処理の開始指令が出されたら、特性予測装置1は試醸条件から成分値の推定手法(例えば、M5´などのモデルベースの手法、K*などの事例ベースの手法)ごとに説明変数と目的変数を選ぶ(ステップS203)。ここで選ばれた説明変数と目的変数を試醸サンプルとよぶものとする。ステップS203では、予測対象となっている試醸条件に係るそれぞれ成分値について試醸サンプルが生成される。ステップS203で実行される処理の詳細は図7に係る説明で述べた通りである。
ステップS203の処理が実行された後、特性予測装置1はステップS204、S205の処理(第1手法による推定と許容誤差内確率の計算)と、ステップS206、S207の処理(第2手法による推定と許容誤差内確率の計算)を並列的に実行する。以下では、最初にステップS204、S205の処理について説明する。
第1推定部14は、試醸サンプルを成分値Yp(目的変数yp)の推定を行う第1手法に係る予測モデルに入力し、第1推定値を計算する(ステップS204)。第1手法としてM5´が用いられている場合、木の該当するノードにおける回帰式から成分値(目的変数)の推定値が求められる。
次に、検証部16は、試醸サンプルに係る説明変数を第1手法の予測モデルに対応する誤差判定モデルに入力し、第1許容誤差内確率を計算する(ステップS205)。検証部16は計算した第1許容誤差内確率を記憶部2に保存してもよい。
次に、ステップS206、S207の処理について説明する。
第2推定部15は、試醸サンプルを成分値Yp(目的変数yp)の推定を行う第2手法に係る予測モデルに入力し、第2推定値を計算する(ステップS206)。第2手法としてK*が用いられている場合、試醸サンプルとそれぞれの過去サンプルとの間の遷移確率と、それぞれの過去サンプルに対応する醸造事例の成分値の積を足し合わせ、遷移確率の和で除算すると、第2推定値を計算することができる。
次に、検証部16は、試醸サンプルに係る説明変数を第2手法の予測モデルに対応する誤差判定モデルに入力し、第2許容誤差内確率を計算する(ステップS207)。検証部16は計算した第2許容誤差内確率を記憶部2に保存してもよい。
ステップS205およびステップS207の処理が実行されたら、ステップS208の処理を実行する。ステップS208で、手法選択部17は、成分値Yp(目的変数yp)に対応する手法選択モデルへ試醸サンプルに係る説明変数と、第1許容誤差内確率と、第2許容誤差内確率を入力し、手法選択モデルの出力値を求める。手法選択モデルがロジスティック回帰によって学習されている場合、出力値は(0,1)の範囲の値となる。
手法選択部17は、手法選択モデルの出力値に基づき、第1推定値または第2推定値のいずれかを正式な成分値Ypの予測値として利用者に提示するかを決める(ステップS209)。手法選択モデルがロジスティック回帰によって学習されている場合、出力値をしきい値(例えば、0.5)と比較する。例えば、出力値がしきい値より大きい場合、第1推定値を正式な予測値として選択する。出力値がしきい値以下である場合、第2推定値を正式な予測値として選択する。
ここでは、ふたつの予測モデルによる推定値のいずれかを正式な成分値Ypの予測値として選択する処理が行われているが、判定結果によっては両方の予測モデルによる推定値を正式な成分値Ypの予測値として選択してもよい。また、3つ以上の予測モデルによる推定値が計算された場合には、その中でいずれかひとつの推定値を正式な成分値Ypの予測値として選択してもよいし、複数の推定値を正式な成分値Ypの予測値として選択してもよい。
次に、学習部3は、学習データの特徴空間における試醸サンプルの位置に基づき、関連事例として提示する過去サンプルを抽出する(ステップS210)。例えば、特徴空間において試醸サンプルと同一のカテゴリ(クラスタ)に分類されている過去サンプルまたは、特徴空間で試醸サンプルの近傍にある過去サンプルを関連事例として抽出することができる。
以下では、図18を参照しながら、関連事例の抽出処理について説明する。図18には、学習データに係る特徴空間が示されている。図18の例では、学習データに係る過去サンプルがカテゴリ#1、カテゴリ#2、カテゴリ#3に分類されている。カテゴリへの分類処理は、例えばK*、k-平均法、決定木、アンサンブル分類などによって行うことができるが、分類に用いる手法については特に限定しない。
図18の特徴空間では、黒丸が試醸サンプル60の位置に相当する。試醸サンプルと同一のカテゴリ(クラスタ)に分類されている過去サンプルを関連事例として抽出する場合、カテゴリ#3に属する過去サンプルが関連事例として抽出される。
また、カテゴリ(クラスタ)への分類がなされていない特徴空間において関連事例の抽出を行うことができる。図18の試醸サンプル60(黒丸)を中心とする球61の表面は、試醸サンプル60からの等距離線を示している。図18の特徴空間では、例えば、球61の範囲内にある過去サンプルを関連事例として抽出することができる。特徴空間における距離としては、ユークリッド距離、マンハッタン距離、ミンコフスキー距離、チェビシフ距離、マハラノビス距離などを使うことができるが、どの種類の距離を使ってもよい。
このように、試醸サンプルから一定の距離内にある過去サンプルを関連事例として抽出してもよいし、試醸サンプルから最も近い過去サンプルから順番に、所定の個数の過去サンプルを関連事例として抽出してもよい。ここで、所定の個数として例えば、10、15、20のような値を用いることができるが、設定値については特に問わない。
以下では、再び図17のフローチャートの説明に戻る。
最後に、正式な成分値Ypの予測値および試醸条件の関連事例を利用者に提示する(ステップS211)。ステップS211では、利用者に対して成分値の予測値が何らかの方法で提示されていればよい。例えば、ディスプレイなどに予測値が表示されていてもよいし、紙に成分値の予想値をプリントアウトして利用者に提供してもよいし、成分値の予想値を利用者のメールアドレスに送信してもよいし、音声で成分値の予想値を通知してもよい。また、特性予測装置1がウェブサービスまたはイントラネットのサーバなどの機能を備える場合には、ウェブブラウザから試醸条件における成分値の予想値を確認できるようにしてもよい。なお、ステップS211における画面表示の例については後述する。
ステップS211で利用者に提示(表示)される予測値は、ひとつの予測モデルによる予測値であってもよいし、複数の予測モデルによる予測値であってもよい。また、利用者に提示する関連事例の件数については特に限定しない。
図16、図17のフローチャートでは、第1手法による推定と許容誤差内確率の計算処理と、第2手法による推定と許容誤差内確率の計算処理が並列的に実行されていたが、これらの処理は逐次実行されていてもよい。また、複数の成分値の予測を行う場合には、すべてまたは一部の成分値の予測を並列的に実行してもよいし、それぞれの成分値の予測を逐次行ってもよい。
次に、特性予測装置1によって表示部5に表示される画面の例について説明する。図19は、試醸条件入力画面の例を示している。図19の画面50は「飲料特性予測システム」における試醸条件入力画面である。画面50では、利用者が過去の醸造事例に修正を加えて、試醸条件に設定することが可能となっている。また、麦芽については、複数のロットに係る麦芽を組み合わせた上で、醸造開始時における麦芽の成分値を計算することができる。画面50では麦芽の種類、それぞれの麦芽の使用量、ホップの種類、それぞれのホップの使用量、副材料の種類、それぞれの副材料の使用量、用水処理剤の種類、それぞれの用水処理剤の使用量、酵素剤の種類、それぞれの酵素剤の使用量、温度条件の設定などの細かい醸造条件が設定できる。
図20は、ディスプレイに表示された予測結果表示画面の第1の例を示している。図15の画面51上段のテーブル51aには、最終外観発酵度(AAL)、色度、pH、全窒素、アミノ酸合計、BUの複数の成分値に係る正式な予測値が表示されている。また、画面51下段のテーブル51bには、複数の関連事例と対応する醸造IDなどが表示されている。利用者は画面51下段のテーブルをクリックすることにより、関連事例に関するさらに詳細な情報を参照することができる。関連事例の詳細情報は、例えばそれぞれの関連事例における設定項目と、それぞれの関連事例において生成された飲料の成分値を含む。
図21は、ディスプレイに表示された予測結果表示画面の第2の例を示している。図21のテーブルには、第1の手法と第2の手法による、最終外観発酵度(AAL)、色度、pH、全窒素、アミノ酸合計、BUの予測値が表示されている。このように、複数の機械学習手法(予測モデル)による推定値を、予測される飲料の成分値として表示してもよい。
本発明に係る特性予測装置を使うことにより、過去に蓄積された醸造データを使って、任意の条件(試醸条件)で醸造を行ったときに得られる飲料の特性を高い精度で予測することができる。学習データのもととなる醸造データに含まれる事例数が多ければ多いほど、正確な成分値の予測をすることができる。また、本発明に係る特性予測装置は利用者が入力した試醸条件と関連性を有する関連事例を利用者に提示する。これにより、利用者は膨大な過去の醸造事例の中から、開発の参考となる醸造事例を探し出す苦労から解放される。利用者は関連事例を参照し、所望の特性(成分値)を有する飲料が得られる、試醸条件(原材料、醸造工程などの設定項目)の調整や再検討を行うことができる。
研究開発部門に配属された新入社員や若手社員などは、関連事例を参照することによって、どのような原材料を使い、醸造工程をどのように調整すれば、所望の特性(成分値)の飲料を生成することができるのか、学ぶことができる。本発明に係る特性予測装置を使えば、新入社員や若手社員は、これまで技術者が長い年数の試醸の繰り返しにより習得した醸造におけるノウハウや感覚を効率的に理解することができる。本発明に係る特性予測装置は、飲料の試作に要する時間、コスト、リソースを抑え、開発スピードを高速化し、社員への教育、ノウハウの継承にも寄与する。
(第2の実施形態)
第2の実施形態では、本発明に係る特性予測装置のハードウェア構成について説明する。本発明に係る特性予測装置は、コンピュータ100により構成される。コンピュータ100には、サーバ、クライアント端末、組み込み機器のマイコン、タブレット、スマートフォン、フィーチャーフォン、パソコンなどの各種の情報処理装置が含まれる。コンピュータ100は、仮想計算機(VM:Virtual Machine)やコンテナなどによって実現されていてもよい。
図17は、コンピュータ100の一例を示す図である。図17のコンピュータ100は、プロセッサ101と、入力装置102と、表示装置103と、通信装置104と、記憶装置105とを備える。プロセッサ101、入力装置102、表示装置103、通信装置104、記憶装置105は、バス106により相互に接続されている。
プロセッサ101は、コンピュータ100の制御装置と演算装置を含む電子回路である。プロセッサ101として、例えば、汎用目的プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラ、マイクロコントローラ、状態マシン、特定用途向け集積回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラム可能論理回路(PLD)またはこれらの組合せを用いることができる。
プロセッサ101は、バス106を介して接続された各装置(例えば、入力装置102、通信装置104、記憶装置105)から入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を、バス106を介して接続された各装置(例えば、表示装置103、通信装置104、記憶装置105)に出力する。具体的には、プロセッサ101は、コンピュータ100のOS(オペレーティングシステム)や、特性予測プログラムなどを実行し、コンピュータ100に含まれるそれぞれの装置を制御する。
特性予測プログラムとは、コンピュータ100に、特性予測装置の各構成要素に係る処理を実行させるプログラムである。特性予測プログラムは、一時的でない有形のコンピュータ読み取り可能な記憶媒体に記憶される。上記の記憶媒体は、例えば、光ディスク、光磁気ディスク、磁気ディスク、磁気テープ、フラッシュメモリ、半導体メモリであるが、これに限られない。プロセッサ101が特性予測プログラムを実行することによって、コンピュータ100は特性予測装置として機能することができる。
入力装置102は、コンピュータ100に情報を入力するための装置である。入力装置102は、例えば、キーボード、マウス、タッチパネルなどであるが、これに限られない。ユーザは、入力装置102を用いることにより、利用者は醸造データの前処理開始指令、学習データの変更操作、学習処理の開始指令、学習データの変数選択操作、成分値の予測を行う醸造条件の指定操作、予測対象とする成分値の指定操作、成分値の予測処理の開始指令、表示内容の変更指令などを入力することができる。
表示装置103は、画像や映像を表示するための装置である。表示装置103は、例えば、LCD(液晶ディスプレイ)、CRT(ブラウン管)、有機EL(有機エレクトロルミネッセンス)ディスプレイ、プロジェクタ、LEDディスプレイなどであるが、これに限られない。表示装置103には、上述のように醸造データや学習データの内容や、醸造条件における成分値の予測結果などが表示される。
通信装置104は、コンピュータ100が外部装置と無線または有線で通信するために使用する装置である。通信装置104は、例えば、NIC(Network Interface Card)、通信モジュール、モデム、ハブ、ルータなどであるが、これに限られない。コンピュータ100は、通信装置104を介して、遠隔地の工場や研究所で蓄積された醸造データを収集してもよい。また、コンピュータ100(特性予測装置1)がデータセンターやマシン室に設置されたサーバなどである場合、コンピュータ100は通信装置104を介して、リモートの端末からの操作指令を受け付けたり、画面表示の内容をリモートの端末に表示させたりしてもよい。
記憶装置105は、コンピュータ100のOSや、特性予測プログラム、特性予測プログラムの実行に必要なデータ、特性予測プログラムの実行により生成されたデータなどを記憶する記憶媒体である。記憶装置105には、主記憶装置と外部記憶装置が含まれる。主記憶装置は、例えば、RAM、DRAM、SRAMであるが、これに限られない。また、外部記憶装置は、例えば、ハードディスク、光ディスク、フラッシュメモリ、磁気テープなどであるが、これに限られない。上述の醸造データベース21、学習データ記憶部22、判定データ記憶部23、モデルデータベース24は、記憶装置105上に構築されてもよいし、外部のサーバやストレージ上に構築されてもよい。
なお、コンピュータ100は、プロセッサ101、入力装置102、表示装置103、通信装置104、記憶装置105を、それぞれ1つずつまたは複数備えてもよい。また、コンピュータ100にプリンタやスキャナなどの周辺機器が接続されていてもよい。
また、特性予測装置は、単一のコンピュータ100により構成されてもよいし、複数のコンピュータ100が相互に接続された情報システムによって構成されていてもよい。
さらに、特性予測プログラムは、コンピュータ100の記憶装置105に予め記憶されていてもよいし、コンピュータ100の外部の記憶媒体に記憶されていてもよいし、インターネット上にアップロードされていてもよい。いずれの場合にも、特性予測プログラムをコンピュータ100にインストールして実行することにより、特性予測装置の機能を実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲の限定することは意図していない、これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。