機械学習 (ML) 手法は、化学、機械、製薬などの業界で実験計画法 (DOE) データを分析するために広く適用されてきましたが、食品業界では、特にレシピの最適化に関してあまり注目されていません。
この問題を解決するため、製品品質の最適化を目指し、レシピ作成における機械学習(ML)と逐次学習を検討しました。実験計画法(DOE)と機械学習(ML)を組み合わせ、11種類の候補から1種類、2種類、または3種類の材料の最適な組み合わせを選択しました。組み合わせる材料の数に応じて、単成分の場合は0~1、2種類の場合は0~0.5、3種類の場合は0~0.33の配合量を調整しました。12種類すべての材料の主効果を評価した後、5種類の主要材料に焦点を絞りました。2種類の材料の組み合わせには完全実施要因計画を適用し、各3種類について最大配合量で1つのデータポイントを収集しました。さらに、有望な3種類の組み合わせについて、空間充填計画を用いてパラメータ空間全体を探索しました。
その後、製品品質を予測するための機械学習モデルが開発され、逐次学習によって追加の実験が進められ、特定の組み合わせに対するモデルが改良されました。このアプローチにより、100回未満の実験で最適な配合が特定され、機械学習、逐次学習、DOEを組み合わせることで、実験の労力を削減しながら、高性能な成分配合を特定できることが実証されました。
皆さん、こんにちは。今日は、機械学習、逐次学習、実験計画法を用いたレシピ配合の最適化についてお話します。私はユトレヒトのダノンR&Iでプロセステクノロジストとして働いているジュナイド・メームードです。
本題に入る前に、ダノンについて少しお話ししたいと思います。私たちの使命は、食を通してできるだけ多くの人々に健康を届けることです。健康に重点を置いた多様なポートフォリオを通して、地域市場からの調達、持続可能性、そして革新性を追求しています。私たちのグローバルブランドであるActivia、AptaMil、Evian、Aproはご存知かと思いますが、地域ブランドで構成される巨大な市場も持っています。
ご存知のとおり、当社の製品のほとんどは食品または食品派生製品で構成されており、もちろん水も含まれています。つまり、私たちは多くのレシピを扱っているということです。ダノンでレシピの配合やイノベーションを考える際には、高い水準を維持し、素晴らしい味を実現するだけでなく、優れた栄養価も維持したいと考えています。私たちは、消費者のニーズと嗜好に基づいて、継続的にイノベーションを起こしていきたいと考えています。
食品ベースの製品でイノベーションを起こすには、多くの課題があり、容易なことではありません。まず、消費者の嗜好は年ごとに変化する可能性があります。現在、持続可能性に重点を置いた取り組みを進めているため、イノベーションを継続していく必要があります。
第二に、食品安全規制を遵守する必要があるため、ある市場では問題ない製品が、別の市場では問題になる場合があります。また、私たちは自らの製品でありたいと考えています。そのため、私たちの製品のほとんどは乳幼児向けであり、時には口から食べ物を摂取できない患者さんにも提供されるため、本質的に安全であると考えています。
次に、製品のコストバランスを実際に確保したいと考えています。最高の品質を維持したいと思っています。なぜなら、たとえ高品質な製品であっても、価格が高すぎれば誰も買ってくれないからです。
これを念頭に置き、イノベーションを起こす際の製品ワークフローサイクルは通常、次のようになります。これは非常に一般的なもので、食品ベースの製品を製造する食品会社はどれも同様のワークフローに従っています。まず、新製品のアイデア創出、または市場調査の結果を踏まえて製品の特定の特性を変更したいと考える段階から始まります。そして、それに基づいて原料の選定とプロセスの選択に進みます。
原料のプロセス選択は密接に関連しています。ある種類の原料に適したプロセスが、別の種類の原料には適さない場合もあります。これは循環的なプロセスであり、原料とプロセスは、それらがもたらす栄養価に基づいて決定されます。それらは持続可能なのでしょうか?プロセスに関しては、拡張可能で効率的であり、私たちが使用しているプロセスが製品自体のコストを増加させないことが不可欠です。
次のステップはプロトタイプ開発です。これは主にR&Iセンターのラボで行っています。ここでは小規模なラボ試験を実施しています。フレーバープロファイリングを行い、特定のプロセスを最適化したり、最初のステップに戻って別の原料を選択したりします。それが完了すると、パイロットプラントに移り、製品の拡張性を検討します。そして最後に、工場試験を実施します。これらすべてが完了したら、市場に投入する前の最後のステップとして、保存期間と安定性の試験を実施する必要があります。製品の種類によっては規制当局の承認が必要ですが、すべての製品が必要というわけではありません。製品の種類によって、承認は異なります。
ラボスケール、パイロット、そして工場スケールにおいて、製品の特性評価は、官能特性、その他の特性、粘度といった加工性など、製品の状態に基づいて行います。これらが製品特性となり、それに基づいてプロセスを最適化していきます。
本日ご紹介するプロジェクトでは、主にラボスケールの試験に焦点を当てており、原料、プロセス、そして実験そのものという3つの主要な要素から構成されています。原料とプロセスだけに焦点を当てる場合、当然のことながら、微量栄養素と多量栄養素に焦点を当てることになります。これらは製品の一部である必要はありますが、製品の味も良くなければなりません。
もちろん、先ほど賞味期限についてお話ししましたが、保存料や安定剤、そしてテクスチャライザー(製品の食感を向上させるもの)も存在します。これらは製品の… 全体的に見ると、加工工場を通過する際に加工性が向上します。加工工程の選択を考えると、温度制御、混合、加工速度など、様々な工程を考慮する必要があります。
これらは、ラボ試験に行く前、またはラボ試験を行う前に事前に行われる決定であり、私たちはこれらの原料と選択に立ち戻り、典型的な製品の観点からより理にかなったものに変更します。
原材料について考える際、原材料を試験する際には、機能性、微量栄養素に関するニーズ、例えば特定のミネラルやビタミンを配合したいかどうか、官能特性、味はどうか、そして規制上の要件は何かなどに基づいて試験を行います。これらに基づいて、各原材料の最小量と最大量を定義できます。そして、ラボスケールでこれらの試験を行う際には、各原材料が製品特性にどのような影響を与えるかを試験します。これらはここに記載されています。味、食感、安定性です。
しかし、あらゆる製剤に配合できる特定の成分の最大限度に関しては、特に香料、糖類、保存料については、通常、規制上の要件によって制約されるため、私たちはうまく調整する必要があります...この特定の限度を下回る必要があります。
このプロジェクトでは、機械学習、逐次学習、DOE(実験計画法)を組み合わせて、味と食感を最適化することを目指しました。具体的には11種類の異なる材料を検討し、それらの味と食感を高める単一、二重、または三重の組み合わせを見つけ出そうとしました。
そして、7つの異なる目標があります。そのうち3つは最小化したい反応変数、2つは最大化したい反応変数、そして残りの反応変数は一定に保ちたい反応変数です。つまり、この成分の組み合わせを加えても、この2つの分子は変化しないということです。
それから、特定の規制要件がありました。それは、11種類の成分のうち、単一の成分だけを使う場合、最大で1種類までしか使えないというものです。ここにある1というのは、私たちの用語ではレベルであり、DOE(原文ママ)で考えると、これは使用できる成分の最大量を意味します。2種類を組み合わせる場合、最大0.5しか使えません。同様に、3種類を組み合わせる場合、最大0.33です。これらは、どの3種類の成分がより良い味や食感をもたらすかを見極めるために必要な制約です。
全体の組み合わせについて考えてみると、2つの材料の組み合わせは全部で55通りあります。そして、3つの材料で165通りの組み合わせが可能だとすると、そのうち11通りになります。これらすべてを組み合わせると、合計231通りの組み合わせになります。これらの組み合わせすべてについて実験を行うのは、もはや負担が大きすぎます。3、4年かけて結論にたどり着くかもしれませんが、それは望ましいことではありません。
このために、私たちは11種類の成分から5種類をスクリーニングするという段階的なアプローチを考案しました。これは主効果のみに基づいて実施しました。次に、その5種類の中から2種類または3種類の成分の組み合わせをスクリーニングし、どの組み合わせが最も効果的かを調べました。そして、ステップ3では、これら2種類または3種類の組み合わせをまとめて選択した後、どの組み合わせが最も効果的かを調べます。最後に、モデルからの予測を用いて、特定の組み合わせにおける特定の成分の最適なレベルを見つけるモデリング段階に到達しました。これらの各ステップについて、詳しく説明します。
今見てきた因子スクリーニングでは、一度に1つの因子だけを扱いました。DOEの授業では、このようなことはしたくないでしょう。しかし、今回のケースでは、スクリーニング設計を行うことができませんでした。その理由は、スクリーニング設計を考える際には、固有の前提があるからです。つまり、各因子は他の因子とは独立して変更でき、すべての因子が毎回実行されるという前提です。しかし、今回のケースではそうではありません。この特定のレシピでは、4つまたは5つの材料を単に組み合わせることはできません。つまり、1つの材料だけに焦点を当てるしかなかったのです。
第二に、スクリーニング設計のモデリングを考える際、通常は一つのモデルを構築し、パラメータ値を確認します。しかし、この特定のケースでは、より多くの材料を投入し始めるとすぐにプロジェクトの目的から外れてしまうため、それは不可能です。
最後に、この段階では相互作用は考慮していません。まず第一に、相互作用があると実験回数が大幅に増加するからです。第二に、食品の配合方法と私たちの口の中での相互作用は、通常の製造条件とは大きく異なります。添加量によっては相乗効果が生じる場合もあれば、逆に相反する作用が生じる場合もあります。非線形効果が存在することは既に分かっており、この段階でそれらを考慮するのは理にかないません。
因子を一つずつ検討すると、今回のケースでは0.33、0.67、1という3つの異なる水準で検討しました。その結果、合計33回の実行が行われました。もちろん、反復回数は多くなります。しかし、このプレゼンテーションでは、処理や実行に焦点を当てる際には、反復回数は含めません。今回のケースでは、33回の実行が個別に行われています。
これらの実験を行った後、各応答の望ましさに基づいて相関行列を作成します。右側にあるのは、あくまでも視覚化のためのものです。3つの応答については最小化、2つについては最大化を目指し、残りの2つについては変更しないものとします。
これは相関ヒートマップです。X軸にはすべての成分、Y軸にはすべての回答が表示されています。右上に書かれているように、最小化したい項目が3つあります。そして、それらは最小化されているのがわかります。次に、どれが最適かを判断する必要があります。Y₄とY₅を最大化したいのですが、Y₆とY₇は変更しないでください。
しかし、相関関係だけでは全体像は半分しか分かりません。レベル1やレベル3のレスポンス値がそれほど変化しなくても、非常に良好な相関関係が得られる可能性があるからです。そのため、共分散ヒートマップも検討しました。共分散は、原料変数の単位変化に対するレスポンス変数の相対的な変化を示しています。
これら2つの情報を組み合わせることで、合計11種類の成分のうち6種類を除外することができました。残った成分だけを見てみると、最小化したい3つの反応変数と非常に強い負の相関関係にあることがわかります。つまり、最大化したい反応変数が増加していないか、あるいは最大化されているかのどちらかです。残りのY₆とY₇については、このケースでは相関はあまり良好ではありません。つまり、変化がないということです。
これが私たちの決定です。この最初のステップで、材料を11個から5個に減らしました。次のステップに進む際は、分かりやすくするために、これらを1~5と呼びましょう。元の1~5とは異なりますが、次の会話のためにX₁~X₅と呼ぶことにします。
さて、私たちはすべての可能な組み合わせを評価し、どの組み合わせが最も効果的かを見つけたいと考えています。材料は2つあります。材料3つの組み合わせを考えてみると、10通りの組み合わせがあり、合計で20通りの組み合わせがあります。もし、主要な二次効果と交互作用効果について、完全実施要因計画を行うとしたら、330通りの実行が必要になります。繰り返しますが、これはすでに多すぎます。
次に個々のコンポーネントを並べると、合計340個の重複データになりますが、繰り返しますが、これほど多くの実験を行うのは望ましくありません。時間とリソースがかかりすぎるからです。
この問題を克服するために、私たちは2因子実験(2つの成分)を設計し、そのすべてのデータを統合して3因子の組み合わせの設計行列を作成することにしました。その方法については後ほど詳しく説明します。2因子実験では最大水準を0.5、3因子実験では最大水準を0.3とします。ここで、X₁、X₂、X₃という特定の組み合わせだけを考えれば、X₁、X₂、2因子の組み合わせX₁、X₃、X₂、X₃のデータをすべて統合できます。つまり、3因子の組み合わせについて、すべての実験を個別に行う必要がないということです。
特定の組み合わせについてもう少し詳しく説明すると、アプローチは以下のようになります。まず、空間充填計画を用いて2因子の組み合わせを設計し、0から0.5までの連続行列として扱いました。次に、3因子計画についても同様の手順で設計しましたが、今回は0から0.33の範囲としました。そして、これらの処理をすべて1つの表にまとめ、2因子と3因子のすべての実行についてまとめました。最後に、JMPのカスタム計画モジュールの共変量因子機能を用いて、最終的な計画を策定しました。
それぞれのステップを詳しく見ていきましょう。最初のステップでは、先ほど述べたように、2因子の組み合わせで30回の異なる実験を行いました。パラメータ空間はこのようになっています。もちろん、すべて同じです。X₁、X₂、X₁、X₂、X₃について、X変数とY変数のみが変化しています。この特定のケースでは、パラメータ空間全体を探索しようとしています。次に、3因子の組み合わせでも同じことを行いましたが、上限は0.33となり、この場合も空間充填設計を使用しています。
これらすべてのランを1つの表にまとめることができます。これを視覚化すると、120回のランを全体的に見ると、このようになります。壁には2因子ランがあり、真ん中(ここに赤い点で示されています)には3因子ランがあります。2因子ランでは0.5、3因子ランでは0.33です。
次に、JMPのカスタム設計モジュールを開き、「共変量因子」ボタンを選択します。異なる値を持つ3つの列をすべて選択できます。カスタムモジュールで選択したモデルには、主効果、2次効果、そしてすべての交互作用効果が含まれています。
次に、異なる回数(16、19、22)で実験を行い、それらを比較し、設計評価を行いました。これにより、120回の実行すべてから可能な限り最良の設計を得るために必要な最小実行回数が判明し、このモデルが完成しました。この設計は実際に良好な最適性基準を与え、モデル内の異なる項間の相関は非常に小さいことがわかりました。
これをよく見ると、完全実施要因計画と非常によく似ています。壁に描かれているのは2因子の組み合わせですが、点が隅に散らばっているからです。そして、計画によって3因子の組み合わせに2点が追加されました。しかし、この場合は中心点も追加されます。これが、このケースでは完全実施要因計画を採用できるという最初の手がかりでした。今にして思えば、そこから始めるべきだったかもしれません。ただ、ここではワークフローを説明しているだけです。
完全実施要因設計のように見えたので、実際にはこれに戻りました。完全実施要因設計の場合、設計行列はこのようになります。この場合、最大値は0.5です。完全実施要因設計の場合、3つの組み合わせで設計行列はこのようになります。
ただし、前に説明したように、完全実施要因設計には、私たち自身が含めた 1 つの追加ポイントがあり、それは 3 因子の組み合わせの最大限度です。
この特定のケースでは、交互作用と二次効果にとって重要な実行がこれらです。これらは、1つの因子のみが変更された実行です。しかし、最初のステップで主効果を調べたこれらの実験は既に実行済みです。これらの実行を再度行う代わりに、ここにあるデータを追加するだけで済みました。つまり、ステップ2では、2つまたは3つの成分が変更された特定の成分についてのみ実行すれば済みます。これにより、実行回数が大幅に削減されました。340回の実行から、60回の実行で済み、20通りの組み合わせすべてをまとめて評価できるようになりました。
重要なのは、完全実施要因計画が直交性を持つと仮定した場合、この特定のケースでは直交性が存在しないということです。つまり、分析を行う際には、この点を常に念頭に置く必要があるということです。
ステップ2での総実行回数はわずか50回にまで減少しました。すべての可能な組み合わせについてこれらの実行をすべて実行した後、多目的評価を行いました。これは、目標値と比較した距離指標を計算するというものです。Y₁、Y₂、Y₃、Y₄、Y₅の目標値があります。最小化、最大化を目指し、さらにそのうち2つを一定に保ちたいと考えています。そして、この明確な指標に基づいて、どの組み合わせが目標値に最も近いのか、そしてどの組み合わせが目標値にそれほど近くないのかを判定しました。
目標に最も近い上位10回の実行結果から、どの組み合わせが最も多く見られるかを調べました。これらの組み合わせは、おおよそ次のようになります。2つの分子の組み合わせと3つの分子の組み合わせが見つかり、結果的にプロジェクト目標に最も近いものとなりました。
モデルがここではうまく機能しないことは分かっていますが、まだ十分なデータがなく、直交性もないため、それぞれの組み合わせでモデルがどのように機能するかを確認したいと考えました。先ほど説明した5つの組み合わせについて、2因子と3因子の組み合わせの両方でR²がどのようになっているかを示します。
この特定のモデルでは、主効果、交互作用効果、そして二次効果があります。これらの組み合わせのうち、特定の2因子の組み合わせにのみ焦点を当てると、このプロットは実際のp値を示します。注目すべき点は、一部の応答変数のp値が…どのパラメータも有意ではなかったことです。一部のパラメータは有意ですが、このケースでは良好なR²スコアが得られているにもかかわらず、異なる応答変数間ではp値が異なります。これは、データセットの数が限られており、モデルが過剰適合している可能性があるため、当然の結果です。
3因子の組み合わせでも同様でした。しかし、3因子の組み合わせでは、少なくとも1つか2つのパラメータが全ての応答に対して有意であることがわかりました。しかし、繰り返しになりますが、全てのパラメータが全て同じではなく、全ての異なる応答に対して有意であるということです。これが、基本的に、各パラメータを異なる方法でモデル化する必要があるという最初の手がかりでした。各パラメータについて、どの…各応答パラメータについて、どの因子が有意であるかを調べる必要があります。
この点をもう少し詳しく説明すると、この限られたデータセットを用いても、二次効果を除外したところ、R²スコアが非常に悪くなりました。これは、二次効果がこれらのパラメータの一部にとって重要であり、考慮する必要があることを示唆しています。ステップ3に進み、検討した5つの組み合わせのうち、3つの成分が含まれる組み合わせのみを検討します。これは、これらの組み合わせを適切にモデル化できただけでなく、因子がこれらのパラメータに影響を与えたためです。次に、これらの因子のうちどれがどのような反応に影響を与えているかを明らかにする必要があります。
これらの特定の組み合わせのデータを拡張するために、JMPの拡張設計モジュールを使用して5回の追加実験を行いました。この実験では空間充填設計を採用しました。これで、それぞれの組み合わせについて、モデルを評価できるエッジデータポイントが少なくとも20個得られます。しかし、前述したように、応答変数ごとにモデルは異なります。各モデルについて、適切なモデルを見つけるために、単にモデルを試してみることもできます。しかし、私たちは代わりに機械学習アプローチを採用し、通常の最小二乗法、LASSO、Elastic Netを用いて、応答変数ごとに異なるモデルを評価しました。また、線形カーネルと多項式カーネルのみを使用したサポートベクター回帰も追加しました。
次に、leave-one-out法を用いてクロスバリデーションを行いました。leave-one-out法とは、ご存知ない方のために説明すると、1つを除くすべてのデータにモデルを当てはめます。そして、その1つのデータポイントを用いて予測を行い、誤差を計算します。これをすべてのデータポイントに対して繰り返します。そして、平均二乗平均平方根誤差を計算できます。この誤差に基づいて、どのモデルが最適かを判断できます。この方法により、常に1つのデータポイントを予測のために残すため、過学習を抑制できます。同時に、限られたデータセットから十分なデータポイントを取り、適切なモデルを適合させることができます。
これを適用すると、X₂、X₃、X₄の組み合わせについて良好なモデルが得られ、平均二乗誤差が非常に低く、R²スコアもかなり良好です。この特定の組み合わせを予測する能力が優れているため、この特定の組み合わせでは説明できない誤差が少ないことがわかります。これが、今後検討する特定の組み合わせです。実測値と実験値、そして予測値を比較すると、このようになります。モデルは事実ではありませんが、それでもこの特定の組み合わせについて予測を行うには十分な精度であることがお分かりいただけると思います。
次のステップでは、これらのモデルを用いてモンテカルロシミュレーションを実行します。モンテカルロシミュレーションを用いて、応答と距離指標、そして距離指標に基づいて、特定のターゲットに最も近いシミュレーション値を特定しました。次に、ターゲットに最も近いすべてのシミュレーションに対してクラスタリングを実行し、3つの異なる実行結果を特定しました。これらの結果を用いて、ラボに戻って実験を行います。
3回の実行のうち、1回の実行で目的を達成しました。Y₁、Y₂、Y₃を最小化し、Y₄、Y₅を最大化し、Y₇を維持することができました。このステップでは、Y₆をスキップしました。これは、すべての実行後でもY₆を予測する能力がまだ十分に発揮されていなかったためです。
さて、製品ワークフローに戻りますが、これは全体のほんの一歩に過ぎません。現在、ラボスケールの最終段階に到達しました。これからパイロットプラントへと移ります。スケーラビリティをテストし、その後工場で稼働させ、残りの作業を進めていきます。
まとめのスライドに移ります。このケースでは、段階的に反復的なDOEアプローチを用いることで、500回ではなく100回の実験で最適な組み合わせを見つけることができました。次に、機械学習と空間充填計画を効果的に組み合わせ、実験空間を探索しました。最後に、機械学習のこの能力とDOEデータ、そしてこの逐次的アプローチを組み合わせることで、たとえ最初の仮説が間違っていたとしても、より良いモデルを見つけることができることがわかりました。最後に、感謝の意を表したいと思います。