@s-ymk

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

開発業務で機械学習を利用したいです

解決したいこと

Python、機械学習初心者です。
製造業の研究開発で、機械学習を利用できないかを課題にしています。
S1~rpmは材料の配合や製作条件の数値です。
R1~R4は結果です。(0~5の評価で、5が良いという結果です)
R1~R4の結果が全て5になるような材料の配合や製作条件を
機械学習で予測してほしいと考えています。
どのような分析方法が良いか、お知恵をいただければと思います。

20250108.jpg

0 likes

5Answer

もしかすると、ご期待の回答ではないかもしれませんが。

機械学習を使うことが目的、ということで良かったのでしょうか?
今ある12件のデータから、最適だと思う組み合わせを推論する、ということになりますか?
それとも実際にはもっと大量にあるイメージで、今はお試しで12件のデータで機械学習を使ってみる、ということになるのでしょうか。

入力データに対して出力データを得る関数を作るのが学習ではないかと思いますが、今のデータ量では少ない気がします。
正確には、今のデータ量でも関数はできると思いますが、出力の精度は低いものになるのではないとかと思います。

せめてタグチメソッドで埋める程度のデータ量は必要なのではないでしょうか

2Like

Comments

  1. @s-ymk

    Questioner

    ご回答ありがとうございます。
    こちらの12件のデータはお試しでやったもので、将来的にはデータ数は増やすつもりです。

    現状、新規製品を開発するためにはかなりの数の材料の配合量や製造方法、焼成温度等、かなりのプロセスを検証する必要があり、多くの種類の試作品を作る必要があるため、かなりの時間を必要としています。
    似たような案件もあるため、過去の経験を利用して作製できることもあるのですが、現状、過去のデータはベテランの方の頭の中だけにしかないです。(記録は残っていません)

    材料の配合量等を考えるのはベテランの経験や知識に頼っており、ベテランの方が引退したとき、若手のみではさらに時間がかかる懸念があります。

    目的としては、
    ・開発時間の短縮
    ・過去のデータを活かして若手でも開発できるように
     (ある程度予測して、試験数を少なくしたい)
    です。
    私が言っていることは理想論で、実現させることは難しいだろうなとは感じています。
    データ数が少ないので、データを集めるところから始めなければと思っています。

    「機械学習」の言葉の意味を理解していませんでした。
    機械学習以外でも大丈夫です。

    長々と失礼しました。
    不明なところがあればお尋ねください。

大学院でまさにマテリアルズインフォマティクス分野の研究をしてます!
質問者様の目的から考えますと"ベイズ最適化"が一つの候補に挙がるかな思います。

ベイズ最適化は、機械学習モデルが提案する実験条件で実験を行い、その結果を基にモデルを更新しながら最適条件を探索する手法です。少ない実験回数で効率的に最適条件を見つけられることが特徴となります。

ベテラン研究者の経験や知識に依存せず、データドリブンなアプローチで最適条件を探索できることから、モチベーションである属人化の課題解決にも適しているかと思います。

既存の実験データのみでベイズ最適化を実施した場合の有効性については検討が必要ですが、少ない実験データから効率的に最適解を見つけたいというニーズに対しても、非常に有効なアプローチになり得ると考えています。

2Like

Comments

  1. @s-ymk

    Questioner

    ご回答ありがとうございます。
    マテリアルズインフォマティクス分野の研究をされているのですね。

    ベイズ最適化について調べてみます。
    またわからないことがあればお聞きするかもしれませんが
    よろしくお願いいたします。

  2. はい、もちろんです!いつでもご質問ください。ベイズ最適化に限らず、マテリアルズインフォマティクスに関することでお力になれることがありましたら、お気軽にご相談ください!

ご質問の状況であれば機械学習よりも回帰分析の手法を試すのが妥当であるように思います。

1Like

Comments

  1. @s-ymk

    Questioner

    ご回答ありがとうございます。
    機械学習と回帰分析は別のものなんですね。
    まだまだ勉強不足です。
    調べてみます。

製造業の研究開発で、機械学習を利用できないかを課題にしています。

材料の配合や製作条件を機械学習で予測してほしいと考えています。

マテリアルズ・インフォマティクスと呼ばれる分野かと思います。
入門書も色々とありますので読んでみてはいかがでしょうか?
何が出来るのか、どんなデータが必要なのか等分かるかと思います。

1Like

Comments

  1. @s-ymk

    Questioner

    ご回答ありがとうございます。
    マテリアルズ・インフォマティクスという言葉を初めて聞きました。
    調べてみます。

  1. 機械学習を実施して予測モデルを作成
  2. その予測モデルを用いてシミュレーションを行い最適解を導く
    という2段階になります。
    私はDataRobotを用いて実施したことがあるのですが、
    DataRobotを用いた例がこちらのSlideにありました
    https://www.slideshare.net/slideshow/ss-86732483/86732483
    でもDataRobotを用いずともできます

ご質問の例ですと
最適化したい目的:R1-R4が全て5となること
ということですので

  1. 機械学習を実施して予測モデルを作成
    でやるべきことは
    目的変数:R1-R4が全て5となるならTrue、ならなければFalseの2値とする
    説明変数:B列からK列
    機械学習で分類
    これでまずは精度が良いモデルを作ることを目指します

  2. その予測モデルを用いてシミュレーションを行い最適解を導く
    1.にて「説明変数を与えれば精度良く目的変数が予測できる」というモデルができたという前提の上で
    ならば目的変数がTrueつまりR1-R4が全て5となる説明変数はどれか
    とモデルを逆に用いる発想をします
    ただ1. の学習モデルのInputはあくまでも説明変数なので
    説明変数を色々変えてシミュレーションをして、目的変数がTrueとなる範囲を求めます
    最適化ですね

説明変数を色々変えてシミュレーション
のやり方としては
B列からK列は現実的にこの範囲の値という範囲があるでしょうからその範囲の中で

  • ランダム
  • グリッド
  • ベイズ手法
  • の3通りが代表的かなと思いますが、これらの手法で説明変数を色々変えて目的変数がTrueとなるものを探します

ランダムは本当にランダムに説明変数を与えます。ランダムでいいのかよというところですが説明変数にある程度「ここら辺だろう」と経験値がないからこそこのテーマを説くのでしょうからランダムも非現実ではないと思います
グリッドは、説明変数の範囲を5等分とか10等分して与えます。ランダムより賢いやり方かなと思いがちですが、製造業の方であればご承知と思いますが、意外に局所的に変な値のところだけ最適だみたいな組み合わせがあると、それは漏らしてしまいます。
最後、ベイズ手法はざっくり申すと、基本ランダムだが良さそうな値があった時はその確率をちょっと増やす、みたいなやり方でランダムの改良版みたいなものです

その目的としている最適化がどのような条件でどのようなデータかにもよりますが
意外とシンプルな条件ならばロジスティック回帰にグリッドで説明変数を与えれば最適な説明変数の範囲がわかる
中程度であれば、XGBoostなどの機械学習で分類モデルを作り、ランダムかベイズ最適化で最適解が求められるのではと思います
複雑な問題ならばまさに別の方の回答の通りマテリアルズインフォマティクスの最先端の研究分野になるかなと多います

1Like

Comments

  1. @s-ymk

    Questioner

    返信遅くなりました。
    ご回答ありがとうございます。
    詳しく説明していただき、ありがとうございます。
    順番に試してみたいと思います。
    またわからないことがあればお聞きするかもしれませんが
    よろしくお願いいたします。

Your answer might help someone💌