エンジニアリングの観点から、モデリングの精度が高すぎるとどのような理由で有害になるのだろうかと思いました。
科学的な観点からは、計算時間を短縮する必要がある場合を除いて、ほとんど常にメリットがあるようです。
エンジニアリングの観点から、時間(または計算能力)に加えて、なぜそれを避けるべきですか?
エンジニアリングの観点から、モデリングの精度が高すぎるとどのような理由で有害になるのだろうかと思いました。
科学的な観点からは、計算時間を短縮する必要がある場合を除いて、ほとんど常にメリットがあるようです。
エンジニアリングの観点から、時間(または計算能力)に加えて、なぜそれを避けるべきですか?
回答:
過剰適合に注意してください。システムから収集されたデータのより正確なモデルは、システムの将来の動作のより良い予測因子ではないかもしれません。
上の画像は、いくつかのデータの2つのモデルを示しています。
線形線は、トレーニングデータ(グラフ上のポイント)である程度正確であり、(予想される)テストデータで(ポイントがx <5およびx> -5である可能性が高い)ある程度正確です。 )。
対照的に、多項式はトレーニングデータに対して100%正確ですが、(何らかの物理的理由で9次多項式が妥当であると信じる理由がない限り)、これはx> 5およびx <-5。
線形モデルは、収集したデータとエラーの比較に基づいて、「精度が低く」なります。しかし、より一般化できます。
さらに、エンジニアはモデルについて心配する必要がなくなり、モデルを使用してユーザーが何をするかについて心配する必要がなくなります。
暑い日に散歩をしていると言ったら、426分続くと予想されます。散歩が7時間続くと言った場合よりも水を持ち込む可能性が低く、散歩が4〜8時間続くと言った場合よりも少ないでしょう。これは、あなたが私の述べられた時間の中点ではなく、私の予測に対する私の暗黙の信頼レベルに反応しているからです。
人々に正確なモデルを与えると、人々はエラーのマージンを減らします。これは、より大きなリスクにつながります。
暑い日の例では、95%のケースで4〜8時間かかりますが、ナビゲーションと歩行速度に多少の不確実性があります。歩行速度を完全に把握すると、4-8の数字の不確実性が減少しますが、「水が問題になるほど時間がかかる可能性」にはほとんど影響しません。不確かな歩行速度。
最も明らかなマイナス面はコストです。すべてのエンジニアリングプロジェクトには有限の予算があり、必要以上のお金を費やすことは明らかに時間の浪費です。
さらに微妙な問題もあります。FE分析のようなものは常に近似値であり、時には不必要な詳細を追加するとアーティファクトが発生し、モデルのトラブルシューティングが難しくなることがあります。たとえば、ストレスの原因となる不連続性を得ることができます
また、大量のデータサプライヤや顧客を快適に処理できるコンピューティング能力を備えていても、大きなファイルを転送することはまだボトルネックとなる可能性があり、多くの場合、依然として考慮すべき点があります。
同様に、必要以上のパラメーターがある場合は、ファイルの管理とデバッグの段階で余分な作業を作成する可能性があります。
繰り返しますが、時間とリソースが十分にある場合でも、特にあなたが顧客に販売している製品の一部になった場合は、さらに下流の誰かが同じ贅沢なしでそのモデルを使用する必要があるでしょう。
いくつかの理由があります。
純粋に実用的な観点から見ると、それは時間の制約によるものです。モデルを解くのに必要な時間は、精度のレベルよりもはるかに速く、はるかに長くなり、採用されるレベルはいずれにせよ主観的です。
このため、あまりに正確であっても意味がありません。しかし実際、あまりにも正確にしようとさえしないことは有益かもしれません。ただし、この理由はほとんど心理的なものです。主に、モデルをあまりにも正確にしたくないし、結果を小数点以下7桁で出力したくないのは、誤った自信を喚起したくないからです。
人間の脳は、1.2393532697が1.2よりも正確な値であると考えるように固定されています。しかし、実際にはそうではありません。(特に現在のハードウェアの制限を考慮すると)モデルが考慮できない可能性のある現実世界のすべての不確実性のため、1.2は1.2393532697とほぼ同じくらい有効な結果です。だから、自分自身やあなたのモデルを見ている人を惑わさないでください。1.2を出力するだけです。これは、2番目の数字の後に何が起こっているのか本当に分からないことを透過的に示します。
非常に正確なモデルには、膨大な量の入力データが必要になる場合があります。たとえば、大気中のすべてのガス分子の位置と速度を入力として取得することにより、気象システムの優れたモデルを生成できる可能性があります。実際には、適切な入力を生成する現実的な方法がないため、このようなモデルは役に立ちません。この場合、限られた入力データのみを必要とする精度の低いモデルが望ましいでしょう。
「正確すぎる」とは単調ではありません。実際に忠実度の錯覚を作り出すことができ、シミュレーションにもっとお金を投入する価値があると思うようになります。これは、一部のパーツが非常に詳細で、他のパーツが非常に粗い混合忠実度モデルのデータを提示するときに非常に重要になります。
実際の例では、地形上の標高のサンプリングを行いました。チームは、忠実度を最大化するために、1024個のチャンクで地形をサンプリングすることにしました。顧客はReallyGood(tm)の回答を求めていました。
今、私はこの特定のアルゴリズムが引き起こしたランタイムヒットに悩まされ、実際にどれだけ忠実に払っていたかを理解したかったのです。私は地形データを見ていなかったので、彼らがそれをどのようにロードしたかを尋ねました。答えは、「ああ、地形はありません。ただ平らです」です。
だから、1024ポイントをサンプリングした素晴らしい忠実度のモデルを持っているように聞こえました。私が実際に持っていたのは、1ポイントの1024回のサンプリングよりも良くない忠実度の低いモデルでしたが、全体の速度が1トン遅くなり、忠実度の高いモデルになりすました!
実際のエンジニアリングの世界では、リーダーはモデルのアーキテクチャ全体を学ぶ機会を常に持っているとは限りません。実際、彼らには時間がありません。私たちのリーダーシップは、私たちが素晴らしい1024ポイントモデルを持っているという仮定から決定を下していました。誰も責任を負いませんでした。モデルのある部分で忠実度を高くしすぎて、他の部分で忠実度を低くしたときに起こることです。その忠実性を備えた獣の性質。
実際には、私たちが持っているデータがあり、持っていないデータがあります。ほとんどの場合、私たちが持っていないデータの量は、実用的または経済的な理由で収集することを期待できる量よりはるかに多くなります。
したがって、持っている少数のサンプルにデータを不適合に適合させることにより、(データが不足しているために)正直に手がかりのない領域にモデルが本当に悪い推定を行うリスクがあります。そうすると、このモデルは誤った安心感を与えてくれます。
エンジニアリングの観点から、時間(または計算能力)に加えて、なぜそれを避けるべきですか
機械工学の観点からすると、最大の理由は、結果が大きく異なる場合にのみ追加の努力をすることです。
モデルの精度のレベルが、設計の実行で実現できる精度のレベルよりも桁違いに高い場合、労力を無駄にしています。モデルに記述されている精度のレベルが、クライアントに影響を与える必要なレベルよりも高い場合。あなたはお金を無駄にしている。たとえば、設計が実際に必要とするよりも高い精度を指定している場合(例:ベントパイプの長さで+/- .00001mm)、大気への350mmベントは350.0005mmベントとほぼ同じ仕事をするため、クライアントのお金を無駄にしています。大気に、しかし後者は生産するのにかなり高価です。
大学では、ポストニュートン物理学が物理的挙動のより正確なモデルを提示することが十分に確立されているにもかかわらず、ニュートン物理学を使用して物理世界をモデル化することを学んだ。それにもかかわらず、私はデフォルトでニュートンモデルを不正確すぎると回避する機械工学プログラムを知りません。より正確なモデルを使用し、ほとんどの場合最終設計に影響を与えない理論的真理に0.1%近い答えを見つけた場合。降伏応力が0.1%異なる場合、必要な断面積にわずかな差が生じ、どちらの方法にも基づいてまったく同じサイズのIビームを選択することになります。この状況では、追加の努力の費用は追加の利益をもたらさない。
現在、実行可能な設計を作成するために精度が必要な状況があります。たとえば、一部の衛星のモデリングには相対論的物理学が必要です。このような状況では、必要なレベルの精度を実現するモデルを見つける必要があり、モデルに合わせて設計する必要があります。寸法を+/- 0.0001%に計算する必要がある場合、部品の寸法が+/- 0.1%であれば、まったく無駄な労力です。実際のアプリケーションでは、後者の精度の部品寸法は前者よりもはるかに一般的です。
実際の答えのほとんどは、計算能力と計算時間を考慮しないという人為的な制約によって除外されています。評価に数時間または数日かかるモデルでは、迅速な設計の反復が許可されず、人間の規模で物事が遅くなり、コストが増加し、結果が劣る可能性があります。あまり精度を落とさずにモデルを巧みに単純化することは、非常に便利なアプローチです。その後、ブルートフォースモデルを使用して、最終的な反復を検証できます。
過度に複雑なモデルは、モデルの根本的なエラーを隠してしまう可能性があります。または、モデルを最大限に活用するために情報を収集するために必要な作業が、潜在的な利益を上回ります。たとえば、サプライヤが制御できるよりも高い精度で材料の特性を知る必要がある場合は、エラーバンドを受け入れるか、材料の各バッチをテストしてモデルを調整できます。