シンジェンタでは、10万枚以上の画像を生成する自動化学製剤システムにおいて、画像分類がサンプルモデリングの鍵となっています。これらの画像は製品開発における次のステップを決定するために使用されますが、目視のみで判断するのは非常に時間がかかり、評価者の主観に左右されます。
JMP ProのTorchディープラーニングアドインは、畳み込みニューラルネットワークとGPUコンピューティングのパワーを活用し、分析を劇的に簡素化し、合意された一連のコントロール画像全体で一貫した結果を提供します。このアドインでは、複雑な画像セットをインポートして予測し、通常は手作業とPythonコーディングで数時間、あるいは数日かかるタスクを、わずか数分で意味のあるインタラクティブな出力として返すことがいかに容易であるかを示します。
皆さん、こんにちは。本日のプレゼンテーションへようこそ。JMP R&DのRuss Wolfingerです。シンジェンタの友人であり同僚でもあるDavid Barnett氏にご参加いただき、大変嬉しく思っています。本日は、JMPとJMP Proを使った画像解析という、比較的新しいアプリケーションについてお話しできることを大変嬉しく思っています。これはJMPにとって新たな方向性であり、私たちも非常に期待しています。コロナ禍の初期には、JMPの新しいアドイン「Torch Deep Learning」の開発に多くの時間を費やしました。多くのお客様から、このアドインへの関心の高さを伺っていました。ご存知の通り、AI、ML、ディープラーニングへの関心は世界中で爆発的に高まっています。最近、最も人気の高いパッケージはおそらくPyTorchとTensorFlowでしょう。私たちはPyTorchに落ち着きましたが、Torchには低レベルで利用できる優れたC++インターフェースがあることがわかりました。私たちは、JMP Pro とシームレスに統合できる優れたアドインを作成し、公開することができました。
興奮したのを覚えています。発売されてまだ数週間しか経っていなかったと思いますが、どういうわけかデイビッドがそれを知ったんです。
デイビッドさん、あなたは最初にこのプロジェクトに目を通した一人だったと思います。初期の成功事例を覚えています。今日は、このプロジェクトがどのように始まったのか、そしていくつかのアプリケーションについて、そしてこの数ヶ月間、これらのデータとアプリケーションを扱ってきた中で、現在の状況についてお話を伺えて本当に嬉しく思います。デイビッドさん、それではあなたにバトンタッチして、今後の展開についてお聞かせください。
ラス、ありがとう。本当に素晴らしいです。すみません、画面を共有してしまいました。皆さんにも見ていただければ幸いです。ラス、ありがとう。ラスが言ったように、これは初期の医師向けプログラムの一つでかなり早い段階で目にした機能です。画像解析の分野で、私たちがずっと検討したいと思っていたものです。それでは、私たちが所有する高スループットシステムについて、その背景にあるストーリーを説明したいと思います。
アグリビジネスについて少し触れると、将来、世界の食糧供給をどのように図っていくのかという懸念が高まっています。2050年までに世界の人口は約90億人に達し、食料需要はそれよりもはるかに増加すると予想されています。私たちは事業として、さらなる成長を目指しています。シンジェンタだけでも約3万人の従業員を抱え、90カ国以上で事業を展開しています。3年前の売上高は約170億ドルと、かなりの規模です。シンジェンタ最大の研究開発拠点は、私が拠点を置く英国ロンドン郊外のジェロッツ・ヒルにあります。社内の研究開発には多額の資金を投入しています。
当社には、合成化学、計算化学、分析化学など、様々な分野の化学者がいます。私は製剤化学を担当しており、基本的にあらゆる知識を結集して製品を販売しています。規制圧力、コスト圧力、そして製品を市場に投入しなければならないスピード、先ほども申し上げたように、より安全な製品を作るためのあらゆる規制圧力によって、製剤の複雑さは指数関数的に増大しています。製造だけでなく、製品を使用する農家や、製品を使用する消費者にとっても、安全な製品を作る必要があります。そのため、自動化によって多くのバックグラウンド作業を自動化できる大きなチャンスがあると考えました。先ほど申し上げたように、製剤の複雑さ、構成の複雑さによって、実際にボトルに詰められるものも大幅に増加しています。その背後にあるプロセス、つまり添加順序も非常に重要になる場合があります。私たちが得る反応は、時間が経つにつれてボトル内に沈殿するかどうか、時間が経つにつれて同様に濃くなるかどうかなど、ボトル内に入れるさまざまなものによって非線形になることが多いです。
私たちが得た成果は、より大規模で包括的なデータセットです。農家に販売する製品について、より深く理解できるようになります。また、製品を市場に出すために研究室で行う必要がある反復的な作業を削減できます。コストについても、いくつかの対策を講じることができます。原材料を安く購入できれば、製品をより安く市場に販売するか、より多くの利益を上げることができます。これは通常、本来の目的通りです。
また、製品性能の向上も挙げられます。いわゆる「アジュバント」と呼ばれる成分を製品に組み込むことで、植物や昆虫への浸透を促進できます。複雑なため、これは配合できる成分の数をごく簡単に説明したものです。一番上の行に20種類の成分があり、1対1の混合を行うとすると、サンプル数は190個になります。製剤化学者であれば、研究室でこの作業を行うことができます。より複雑な成分を配合し、1対1の混合を行うと、サンプル数は1,100個になります。製剤化学者が妥当な時間でこれを行うのは困難です。
原料の数が増えれば増えるほど、サンプル数は200万個近くまで達します。研究室では到底及ばない量です。数年前、今から約15年前、私たちはジェロッツ・ヒル研究所にARTEMISと呼ばれる製剤ハイスループットシステムに投資しました。そこで、私たちが取り組んでいた規模の大小がお分かりいただけると思います。これは、サンプルの作成と特性評価を自動で行うシステムです。このシステムは1日に約200個のサンプルを作成し、完全な特性評価も行えます。これは、製剤化学者が研究室で行える作業とは大きく異なるものです。
私たちが行う試験の一つは、サンプルをスプレータンクに注いだ際にどのような反応を示すかを確認することです。標準試験、つまり工業用試験、いわゆるクロウレシーバーを用いて行います。通常はこれに1%の溶液を調製します。そして、その溶液がどの程度ブルームしているかを手作業で確認する必要があります。直接注いだ場合、どのようにブルームするか?また、数時間後の安定性も確認する必要があります。この試験は最大24時間行う必要があります。
繰り返しますが、これは非常に主観的なテストです。ある化学者は問題ないと判断するかもしれませんが、別の化学者はもう少し識別力があり、サンプルの上部にクリーム状のものが少し付着していたり、底に沈殿物が少し付着していたりするかもしれません。これが、私たちが求めているものの一例です。これは非常に視覚的に分かりやすいものです。左側が最も良好なサンプルです。まだ素晴らしいとは言えませんが、非常に良好です。左から右に行くにつれて、悪いサンプルへと移っていきます。基本的に、サンプルはシリンダーの底にまっすぐ落ち、分散は全くありません。農家がこれを攪拌せずに散布タンクに入れた場合、畑、つまり植物にうまく散布されないでしょう。
さて、アルテミスの話に戻りますが、アルテミスには視覚解析モジュール(VAM)が搭載されています。これはおそらく、アルテミスの特徴の中で最も強力な部分でしょう。このモジュールは、複数の画像を撮影します。デモをお見せしましょう。すぐに画像をお見せします。レーザー、バックライト、フロントライトを使って撮影しており、すべてが光沢のある美しい箱の中に収められています。
これは私たちが持っているものの一例です。これは1つのサンプルで、3つのブロックに分かれて、それぞれ異なる露光時間で撮影されています。最初の3つは、前面から照射されたレーザー、背面から照射されたレーザー、そしてサンプルの平面に入射したレーザーです。レーザーの反射光が見られます。次の3つは露光時間が異なりますが、こちらも前面から照射されたレーザーと背面から照射されたレーザーが、このように平面に入射しています。3つ目のセクションも、同じく非常に長い露光時間です。露光時間が長くなると、色の強度が増加する傾向があることがわかります。次の3つのブロックは、背面から照射されたレーザーです。カメラがレーザーから実際に検出したものが見られます。こちらも、平面にレーザーが入射しています。下部に小さな赤い点が見えます。これがサンプルを通過した光です。下部はそれほど不透明ではありません。
右側のものは、何も情報を与えてくれないので、無視されがちです。ご理解いただけたでしょうか。これはその一例です。これはクリーミングサンプルです。画像を見ると、3番の左側の上部に白い部分が見えると思います。バックライトで見ると、上部に何かがあることがはっきりと分かります。これがクリーミングサンプルと呼ばれるものです。
私たちが求めているのは、これらすべてを通して均質なサンプルです。長年使ってきたのは、ImageJというプログラムをベースにしたものです。このプログラムはサンプルの数値を返し、サンプルの種類に関係なく、ただ数値を返すだけです。0から255までの数値は色を表す数値の一つです。例えば、赤、緑、青といった色です。人間が読めるような出力は得られません。これらの数値をすべてまとめて、化学者にサンプルが何であるかを伝えるのは、実際には個人、通常は私自身にかかっています。理想的なのは、サンプルが白色で均質なサンプルなのか、それとも沈殿した黄色のサンプルなのか?数値から色を知ることはできますが、それにはかなり時間がかかります。私が長年求めていたのは、サンプルがどのような外観なのかを実際に教えてくれるプログラムでした。白色で均質なサンプルなのか?
何も解釈する必要がなくなる。バックグラウンドでいくつか確認作業が必要になるかもしれないが、数字の複雑な性質まで掘り下げる必要はない。
この一環として、実験計画法を用いて、実際にいくつかの乳化剤を除外し、Torchの情報やその他の理由から必要な画像を取得しました。サンプルは数多くあります。実験のために準備するサンプルは約800個あり、それらを使って画像分析を行いました。すべての画像は3枚ずつ用意しました。画像分析も各サンプルについて行いました。実際には、サンプルごとに合計7枚の画像があり、それらを調べて独自の解釈を行いました。沈殿物サンプルなのか、クリームサンプルなのか、均質なのか、泡なのか、様々な要素が含まれているのかなど、非常に多くの情報が含まれていました。これは非常に時間のかかる作業だったと想像できると思います。6,000枚以上の画像を調べる必要があり、かなり時間がかかりました。最初はうまくいきませんでした。おそらく今でも完全にはうまくいかないでしょうが、最善を尽くしました。
様々な投与量の理由で様々なサンプルを採取しました。画像は保存され、他の分析手法に使用できます。研究室でサンプルを観察する場合、その分析結果は基本的にすぐに破棄されます。サンプルを流し台に流してしまうと、画像で再度観察することはできず、永遠にそこに残ります。この画像分析には何を使用すればよいでしょうか?これはJMPのTorchと呼ばれるもので、非常に便利です。詳しくは後ほど説明しますが、Russが先ほど言ったように、このプログラムは実際に画像を見て、私が入力した事前知識に基づいて解釈してくれるということです。この作業に使用している私のノートパソコンはハイスペックですが、実際にこの作業を行うには多くのメモリを使用するため、ハイスペックのPCを購入することを強くお勧めします。特に複雑な分析では、かなり時間がかかるため、ここではライブで何も行いません。
わずかな違いが見られる例がいくつかあります。正直なところ、これから本題に入りますが、念のため言っておきますが、私はこの分野の専門家ではありません。数値が出てきた時に何を意味するのかは分かりますが、それがどのように機能するのかはよく分かりません。ソクラテスの言葉が引用されていて、とても誇りに思っています。私が見つけたものです。私自身このことについては全く知識がないので、専門家に説明してもらいたいと思っています。それでは、皆さんにお任せします。また、ここでは非常に簡略化した作業のみを示しています。この作業のために、裏で多くの作業を行っており、データも提供します。皆さんもそれを見て、より良い情報を得ていただければ幸いです。前にも言ったように、結果は完璧ではありません。サンプルの見た目とJMPの予測値の間に80%の相関関係が見られれば満足です。
それ以上に高い数値になっています。これを行うには他のツールも利用可能です。Pythonスクリプトはネイティブ環境で使用できます。
私たちが実際に検討しているのは、これをデータネットワークのパイプラインの一部に組み込むことです。うまくいけば、自動化できるでしょう。出力が実際に何を意味し、それが真実であるという確信が深まれば、ほぼ実現できるでしょう。
良い話題に入る前に、いくつかお礼を申し上げます。色々な方々にお会いできて嬉しいです。サム、ありがとう。JMPの方々にも感謝の気持ちを伝えたいです。Jealott's HillのLiz EastonさんはJMPのライセンス管理を担当してくださっています。そして、皆さんもご存知のAlan Brownさん。彼はシンジェンタを退職した統計学者で、ここ数年、シンジェンタにおけるJMPの活用に大きな影響を与えてきました。先ほども申し上げたように、彼はもう退職していますが、彼の功績は今も生き続けています。JMPについてお話できるといいのですが。
実験の設計ですが、ここでは詳しく説明しません。これは簡略化したバージョンです。AIシステムと3種類の乳化剤があり、その量、つまり3種類です。溶媒と、それらに適用される濃度で、約1,400個のサンプルが存在します。サンプルを混合するために、3種類のキュベットを使用しています。
ニートキュベット、つまり原液サンプルがあります。希釈液は、サンプルを調製して反転させてから約5分後に画像を撮影します。これは0です。翌日、つまり約24時間後に、これらのサンプルが数時間にわたってどれだけ安定しているかを確認します。視覚的な分析と色は、私の解釈です。均質は理想的な状態です。クリームはサンプルが表面に浮かび上がった状態です。ニートは、常に原液キュベットと相関関係にあるはずです。沈殿はサンプルが底に沈殿した状態です。泡はサンプルを反転させて泡を発生させた状態です。これはサンプルにとって理想的な状態ではありません。Torchアドインの一部として、k-fold列を作成できます。この推奨事項に従って、ここに3つの列があります。これは基本的に検証列です。そして、そこに、そして画像スニップがあります。これらはフル解像度の画像ではありません。データテーブルに入力されます。
ご覧の通り、サンプルの品質が異なることがはっきりと分かります。先ほども申し上げましたが、これについては詳しく説明しません。かなり時間がかかるからです。
これまで実際に行った分析をいくつかご覧いただければ幸いです。私が主に確認している数値は、ここにある、トレーニングのRsquareと検証精度の比です。先ほども述べたように、私が提示した値と実際のモデルが80%程度一致することを目指しています。上の図では96%、あちらでは97%となっています。非常に良好な相関関係が見られます。画像モデルには様々な種類があり、リストの下位に行くほど時間がかかりますが、過去にいくつか試した結果、このLeNet5が実際には良い妥協点であることがわかりました。分析速度と実際の出力は、リストの下位に行くほどわずかに向上します。今回の95%という結果には非常に満足しています。レイヤー数、バッチサイズ、画像サイズも変更可能です。繰り返しますが、私は専門家ではありません。
これらの数値をいじってみると、色々な出力が得られます。ここでいくつか試してみたのがお分かりいただけると思います。デフォルトの、この一番上のものと比べて、大きな改善は見られません。
非常に便利な機能の一つとして、トレーニング履歴に関するグラフが挙げられます。目標とする値は、より低い値、おそらくより速い値に落ち着くことが分かります。様々なモデルをクリックして、それぞれのパフォーマンスを比較できます。非常に優れたモデルもあれば、ノイズが多く、最適とは言えないモデルもあります。これらは改善可能ですが、ノイズがかなり多く含まれています。しかし、作業を進めながら改善していくことができます。もう一つ注目したいのは、これらのグラフです。正解を得る確率を実際に確認できます。かなり乱雑に見えるかもしれませんが、実際の数値は正しく予測できていません。繰り返しますが、これは私が適切に解釈していない可能性があります。1,500個中33個しかありません。実際には、非常に良好な相関関係があります。その証拠として、混同行列も見ることができます。ほとんどが正解です。
黄色は100%です。ご想像のとおり、必要に応じて異なる色を検出できます。白は97%で、検証結果との相関も非常に良好です。
様々なモデルを試すことができます。例えば、堆積物は特定の泡に対してはあまり適していません。これは重要なテストではありません。クリームは、1,500点満点中84点程度と、それほど高い信頼性を予測できていません。これは、このモデルに高い信頼性があることを示しており、分析ワークフローに組み込むことができます。うまくいけば、自動的に画像を取得し、この分析を行い、人間が判読できる形式でその状態を報告できます。繰り返しますが、これは非常に基本的なテストです。必要に応じて、より多くの情報、例えば異なる色、例えば青色の配合があれば青色などを追加できます。
これはJMPのTorchアドインを実際に使ってみた、ごく簡単な基本操作の説明ですが、実はとても楽しかったです。もっと詳しい情報を知りたい場合は、私に聞かないでください。Russのような人ならもっと詳しい情報を提供してくれるはずです。Russ、君に任せましょう。これ以上は共有しません。
ありがとうございます、デイビッド。本当に素晴らしい例ですね。特に、あなたは製剤化学の専門家ですが、ディープラーニングの専門家ではないと承知しています。それでも、そこに入り込んで結果を出すことができるというのは、本当に感慨深いです。まさにこれが、私たちがソフトウェアを設計した方法であり、JMP全般も、科学者やエンジニア、そして今ではエンジニアデータサイエンティスト向けに設計されている方法です。私たちは、まさにこれから登場する新しい存在です。技術的な点についても触れておきたいのですが、デイビッド、私の記憶が正しければ、LeNetのデフォルトモデルはレーザー画像を28×28ピクセルにリサイズしているようです。解像度がかなり低下します。実際に、これがパフォーマンスを著しく低下させる例をいくつか見てきました。あなたの場合は、本当に感銘を受けました。
本当にうまくいっています。
他のアプリケーションでは、より大きな画像を使用できる柔軟性があります。これにより計算速度は低下しますが、場合によってはその手間をかけるだけの価値があります。Windows上のNvidia GPUが非常に便利なのはまさにこのためです。あなたのアドバイスに同感です。これらのモデルを実行するには、それなりのハードウェアが必要です。残念ながら、ゲーム業界のおかげで、少なくともWindowsでは今ではかなり手頃な価格になっています。同じチップが使われている場合が多いです。問題は、10代のお子さんがいる場合など、マシンの取り合いになる可能性があることですが、ここでのアプリケーションを見るのは本当に楽しいですね、David。おめでとうございます。これらのアプリケーションで、今後さらに一緒に仕事をすることを楽しみにしています。ある意味では、まだ始まったばかりだと思います。お話いただいた内容について、いくつか補足させてください。
まず初めに、皆様にお知らせしたいのですが、今回のプレゼンテーションを補完する2つ目のプレゼンテーションを行う予定です。このビデオをご覧になっている時期によっては2024年になるかもしれません。10月17日までにご覧になる方は、まだ登録できます。ライブで視聴したい場合は、LinkedInにアクセスしてこの広告をご覧ください。ご希望の場合は、私のページまたはAlexander Beckのページにアクセスして登録してください。
10月17日を過ぎても、録画で詳細を確認できると思います。また、本日のプレゼンテーションに続き、いくつかのトピックについてさらに詳しく説明する予定です。これは単なる例ではないことを付け加えておきます。例えば、今年発表された論文があります。シンガポールとケンブリッジの研究者とBASFからなるグループによるもので、シャンプーの処方に関する素晴らしい論文です。JMPで私たちが得意とする優れた実験計画法を用いており、非常によく似ています。これはまさに私たちの得意分野、つまり実験と分析に合致しています。そして、彼らは処方の写真を撮り、それに基づいて分類モデルを構築しようとします。さらに、画像の収集を支援する優れた自動ロボットもいくつか導入しています。これは本当に素晴らしいことです。この技術によって、高品質なデータの能力を最大限に活用し、最大限の成果を得ることができたと思います。
ありがたいことに、彼らはデータを公開してくれました。ここにそのデータの一部をご紹介します。また、これらの画像をTorchアドインに通して分類器を構築しました。
論文に掲載された結果を少し改善することができました。これらのモデルには多くの可能性が秘められています。その性能は実に驚異的です。しかし、完璧というわけではなく、時には些細なミスを犯すこともあります。例えば、ここではクロッピングが非常に効果的だったと思います。画像の端にあるアーティファクトには注意が必要です。モデルは時に貪欲になり、望まない部分に焦点を合わせてしまうことがあります。今回は事前にクロッピングを行うことで、非常に良好な結果を得ることができました。アドイン自体はJMPコミュニティで無料で入手できます。「Torch Deep Learning JMP Pro」と検索してみてください。おそらく最も簡単な方法は、このページを見つけることができるでしょう。JMP Pro 18または19の実働環境が必要ですが、早期導入版も現在利用可能です。
どちらでも動作するはずです。アドインをこちらからダウンロードするだけで準備完了です。さらに魅力的な機能として、「Torch Storybook」という素敵なサンプル集をご用意しました。
これは実際にはジャンプテーブルですが、アドインなしでダウンロードしてご覧いただくこともできます。現在、様々なアプリケーションで47の例が揃っています。化学分野に重点が置かれており、化学はおそらく私たちの科学分野の中でも最も重要な産業、あるいは重点分野の一つです。例えば、このデータを基に次に構築できるかもしれないと思ったのが、このデータです。これは実はDiscovery Europeの論文です。昨年、あるいは今年の初めに発表された発酵バッチプロセスに関するものです。彼らは実際に時間データを持っていました。ここで興味深いのは、JMP Graph Builderを使ってこのデータから画像を作成し、ヒートマップを作成し、それをTorch Deep Learningに渡すことができたことです。これは最初は考えられなかったかもしれません。実際、今日のテーマの一つを挙げるとすれば、JMP内でディープラーニングモデルに画像をフィッティングするというこのアイデアは、全く新しい分野、そして多種多様なアプリケーションの可能性を切り開くということです。
この表のアプリケーションの多くは画像からのものです。
また、非構造化テキストにも取り組んでおり、例えば分子のスマイルストリングを用いて特性を予測しています。これは非常に画期的なことです。これについては別のプレゼンテーションで詳しくお話しできればと思っていますが、とりあえず興味を持っていただけたら幸いです。この表をダウンロードして、興味のある例をいくつかご覧ください。表には、データをダウンロードできるリンクが用意されています。これらはすべて公開データセットです。また、出力例、参考資料、背景情報も掲載されています。すぐに理解を深めたい方のために、この表には多くの優れた例が掲載されていますので、すぐに理解を深めることができます。例から学ぶことは常に良いことです。私たちはこれらの応用に非常に期待しています。David、この取り組みが進むにつれて、皆さんがあなたの足跡をうまく辿ることができるようになることを願っています。他の応用例についても引き続き注目していきます。David、改めて感謝します。この件で一緒に取り組む機会をいただき、本当に感謝しています。David、分析の次のステップについてはどうお考えですか?
様々なサンプルを試し、得られた結果に全員が満足できるかどうかを確認することが重要です。これは、私たちが既に持っている知識を基に構築していくことです。
素晴らしいですね。既に同じことをしているお客様もいらっしゃいます。彼らは実際にモデルを実際に展開し始めています。多くのお客様がPythonを使っており、Torchでモデルをトレーニングし、PyTorchオブジェクトとして保存し、JMPのPython統合機能を使ってPythonプログラムに読み込むことができるアプリケーションも提供しています。JMPとPythonの連携も既に実現しています。多くのエキサイティングなことが起こっています。まさにこれを実現する方法です。これは私が標準的な非生成型AI MLと考えるもので、非常に人気があり実用的です。Davidさんの場合、これにより眼科医への通院回数が減り、ワークフローや日々の業務が大幅に加速・改善されるかもしれません。
確かにそうです。
さあ、皆さん、ご視聴ありがとうございました。ディスカバリーミーティングやその他の機会にお会いできるのを楽しみにしています。LinkedInやJMPのメールアドレスなど、どんな形でもお気軽にご連絡ください。このプロジェクトやJMP Proのその他の興味深い出来事について、さらに詳しくお話しさせていただきます。