機械学習は、多くの局所的最小値を持つ関数の最適化を扱うことがよくあります。隠れユニットを持つフィードフォワードニューラルネットワークは良い例です。これらの関数が離散的であろうと連続的であろうと、グローバルな最小値を達成して停止する方法はありません。1次元で滑らかな(無限に多くの導関数がある)場合でも、連続関数のグローバルな最小値を見つける一般的なアルゴリズムがないことを証明するのは簡単です。実際には、ニューラルネットワークを学習するためのすべてのアルゴリズムはローカルミニマムにとどまりました。これを確認するのは簡単です。ランダムなニューラルネットワークを作成し、ランダムな入力に対する応答の大きなセットを作成し、同じアーキテクチャを使用して別のニューラルネットワークを学習して応答をコピーします。完璧な解決策が存在しますが、逆伝播も他の学習アルゴリズムもそれを発見することはできません。
シミュレーテッドアニーリングや遺伝的アルゴリズムなどの一部の学習方法では、多くの局所的最小値を探索します。連続関数の場合、勾配降下のようなメソッドがあり、最も近いローカルミニマムを見つけます。それらははるかに高速であるため、実際に広く使用されています。しかし、十分な時間を与えられた場合、前者の方法のグループは、トレーニングセットエラーの点で後者よりも優れています。しかし、現実的な問題については、合理的な時間の制約があるため、通常は後者のグループの方が適しています。
ロジスティック回帰のような一部のモデルでは、1つの局所最小値があり、関数は凸であり、最小化は最小値に収束しますが、モデル自体は単純化されています。
それが苦い真実です。
また、収束の証明と最適なソリューションへの収束の証明は異なるものであることに注意してください。K-meansアルゴリズムはこの例です。
最後に、一部のモデルでは、学習方法がまったくわかりません。たとえば、出力が入力の任意の計算可能な関数である場合、妥当な時間内にこの関数を実装するチューリングまたは同等のマシンを見つける良いアルゴリズムを知りません。たとえば、f(1)= 2、f(2)= 3、f(3)= 5、f(4)= 7、...、f(10)= 29(10個の最初の素数)の場合、合理的な時間内にf(11)= 31を予測できる学習アルゴリズムを知らない。ただし、素数の概念を既に知っている場合を除く。