1. 概要

この記事では、機械学習タスクにニューラルネットワークを使用することの主な長所と短所を説明します。 この記事の終わりに、問題を解決するためにニューラルネットワークを使用することがいつ推奨されるか、そしてどのような状況であるかがわかります。 また、ニューラルネットワークの使用を避け、代わりに他の手法を優先する場合も同様に重要です。

2. ニューラルネットワーク

ここで説明するニューラルネットワークのタイプは、フィードフォワード単層ニューラルネットワークとディープニューラルネットワークです。 これらのタイプのネットワークは、線形回帰法が失敗した問題を解決するために最初に開発されました。 ニューラルネットワークの祖先、いわゆるパーセプトロンが開発されていた当時、回帰モデルはすでに存在しており、変数間の線形関係を抽出することができました。

非線形関係の表現の問題は、一般的に解決できませんでした。 今日、ニューラルネットワークと呼ばれる多層パーセプトロンが登場し、解決策を提示しました。

フィードフォワードニューラルネットワークは、ある層から別の層への入力の線形結合を渡すノードのネットワークです。 これを行うとき、ノードは、指定された活性化関数を利用して、入力を変更する方法を決定します。 ここで重要なのはニューロンの活性化関数です。 以下に示すロジスティック関数などの非線形活性化関数を選択することにより、ニューラルネットワークはその操作に非線形性を組み込むことができます。

線形回帰は線形問題の表現を学習できますが、非線形クラスの問題には、非線形活性化関数を備えたニューラルネットワークが必要です。 したがって、ニューラルネットワークの最初の利点は、非線形形状の問題に対処する際の柔軟性です。

これは、他のクラスの機械学習アルゴリズムがすでに失敗している場合でも、ニューラルネットワークは一般に未知の形状の問題に対してテストできることを意味します

3. 普遍近似定理とその限界

ニューラルネットワークの2番目の利点は、未知の関数を近似する能力に関連しています。 ニューラルネットワークの基本定理は、 1つの隠れ層を持つ十分に大きなニューラルネットワークは、連続的に微分可能な関数を近似できると述べています。 連続関数を使用して問題をモデル化できることがわかっている場合は、ニューラルネットワークを使用して問題に取り組むことが理にかなっている可能性があります。

関数の入力と出力が連続変数であり、関数自体がその定義域のすべての値に対して適切に定義されている場合、関数は連続です。 関数は、その導関数が定義されていて、その関数のすべての定義域で1つだけの値を持っている場合、継続的に微分可能です。

私たちが研究する関数が連続微分可能性の条件を満たす場合、ニューラルネットワークは本質的にそのテイラー展開を計算することによってそれを近似することができます。 ただし、ニューラルネットワークが連続的に微分可能な関数を近似できることは証明されていますが、特定のネットワークがこの近似を学習できるという保証はありません。

重みの特定の初期化を考えると、損失関数の最小化とエラーのバックプロパゲーションを使用してその近似を学習することは不可能な場合があります。 ネットワークがローカルの最小値でスタックしてしまう可能性があり、特定のしきい値を超えてネットワークの精度を上げることができない場合があります。 これはニューラルネットワークの重大な欠点につながります:それらは重み行列の初期ランダム化に敏感です

4. 無料の昼食定理はありません

機械学習のもう1つの重要な定理は、特定のアルゴリズムは問題のいくつかのクラスをうまく解決できるが、他のいくつかのクラスはまったく解決できないと述べています。 これは、特定の問題に対して、特定のニューラルネットワークアーキテクチャが効果的である可能性がある一方で、別のアーキテクチャは、たとえあったとしてもうまく機能しないことを意味します。 パーセプトロンとディープニューラルネットワークを同じ問題と比較して、これが何を意味するかを見てみましょう。

ニューラルネットワークが特に解決に優れている主なタイプの問題は、いわゆる線形分離不可能な問題です。 最初のニューラルネットワークは、パーセプトロンの親戚によるその意味での失敗を考慮して、それらの1つに取り組むために明示的に開発されました。 この問題は、バイナリ変数のXOR関数の学習でした。そのグラフィカル表現は次のとおりです。

ニューラルネットワークは、赤と青の観測を分類するための分離超平面を学習できますが、パーセプトロンは学習できません。 そのような超平面の1つは、図に示されているものです。

このアイデアを見る別の方法は、解が線形分離可能である超平面に問題を投影できない場合、パーセプトロン自体が1つの縮退した種類のニューラルネットワークでは解決しないということです。 同時に、別のタイプのニューラルネットワークであるディープニューラルネットワークがそれを解決できるようになります。

これは、より一般的なルールの特定のケースです。 1つの機械学習アルゴリズムが1つのクラスの問題の解決に効果的である場合、他のすべての問題の解決には効果がありません。 したがって、これを回避する方法は、一般的な機械学習の理論的理解と、特に特定のタスクの解決に関連するヒューリスティックの知識を持っていることです。

5. データと計算能力

ニューラルネットワークは、他の機械学習アルゴリズムと比較して、非常に大きなデータセットをトレーニングする必要があります。 また、トレーニングにはかなりの計算能力が必要です。 たとえば、画像分類用の有名な CNN AlexNetは、2つのGPUでトレーニングするのに6日かかりました。

データセットまたはニューラルネットワークのサイズが大きくなりすぎると、問題が発生します。 ニューラルネットワークは、データの量またはそれらの層とニューロンの数が増えるにつれて、一般的にうまくスケーリングしません。 この動作を引き起こすいくつかの要因があります。

  • ニューラルネットワークには、多くの場合、非線形の活性化関数があります。 非線形活性化関数の勾配は、エラーのバックプロパゲーション中に計算するのにコストがかかります
  • トレーニングデータをニューラルネットワークに送信する順序は、結果に影響します。 ニューラルネットワークは、多くの場合、損失関数の極小値になる傾向があります。 これを回避する方法は、トレーニングデータセットのランダムなバッチでネットワークを複数回トレーニングすることですが、これにはトレーニングの試行を数倍にする必要があります
  • もう1つの問題は、ネットワークの重みに関するものです。 ニューラルネットワークのサイズが大きくなると、重み行列は線形よりも速くスケーリングします
  • 最後に、ニューラルネットワークアーキテクチャはすべて同じではありません。 アーキテクチャが異なれば、同じ問題を同等の精度で解決できますが、必要な計算量は大幅に異なります。 これは、試行錯誤によって最も効果的なアーキテクチャを検索することが多いことを意味しますが、それが機能する理由については理論的な理解がほとんど得られません。

最後に、ニューラルネットワークは通常ブラックボックスシステムであることに言及できます。 彼らはデータセットの抽象的な表現を学ぶことができますが、これらの表現は人間のアナリストが解釈するのは難しいです。 これは、ニューラルネットワークは原則として正確な予測を実行できますが、ニューラルネットワークを介してデータセットの構造に関する洞察を得る可能性は低いことを意味します。

6. 問題の分析的解決策を見つける

6.1. 問題についてどのような背景知識がありますか?

ニューラルネットワークを使用することには、もう1つの大きな欠点もあります。 今回の問題は、厳密に情報理論よりも、人間のプログラマーの偏見に関係している。 機械学習は過剰であり、多くの一般的なタスクには不要です。 これは特にニューラルネットワークとは関係ありませんが、データサイエンスコミュニティに影響を及ぼし、ニューラルネットワークの過剰使用につながる一般的な問題です。

ニューラルネットワークの誤用の非常に頻繁なケースは、代わりに分析的に問題を解決できる場合です。 この問題は今日の機械学習業界で蔓延していますが、無視されることがよくあります。 したがって、ここで強調することが重要です。 例として、次の問題を取り上げましょう。

この問題では、車は一定の速度で通りを走行します。 私たちの目的は、後でその位置を予測することです。 そのためには、まず複数の間隔でその位置を測定し、上の画像に示されている測定値を取得します。

結果は、線形回帰にニューラルネットワークを適用するのに十分な大きさのデータセットです。 上の画像のデータセットには、実際のデータセットと同様に、測定値のエラーが含まれています。

次に、データセットをトレーニングデータセットとテストデータセットに分割します。 トレーニングデータセットでは、ディープニューラルネットワークをトレーニングし、テストデータセットに対してその精度を測定します。 数千エポックのトレーニングの後、ネットワークは入力時間と出力位置の間に次の関係が存在することを学習します。

これは一見良い結果のように思えますが、作業プロセスをより徹底的に分析すると、そうではない可能性があります。

6.2. 可能な限り分析ソリューションを見つける

機械学習タスクで一般的であるように、システムの精度を測定することができます。 そうすれば、非常に高い精度で測定でき、非常に印象的な結果と言えます。 しかし、それは非常に些細なことでもあります。 物理学の基本的なドメイン知識は、問題を分析的に解決することを示唆しているでしょう。 速度は一定なので、手作業で計算できると、。

このようなケースは実際にはまったく珍しいことではないので、覚えておく必要があります。 新しい問題に取り組むとき、すぐに機械学習を試してはいけません。 その前に、文献を調べて、分析ソリューションがすでに利用可能かどうかを確認する必要があります。 そうでない場合は、最初に自分で開発することを検討し、後で機械学習を試してみてください。

したがって、原則として、最初のステップとしてニューラルネットワークを問題に適用するべきではありません。 分析ソリューションが不明な場合は、最初に単純な機械学習アルゴリズムを適用し、次にニューラルネットワークを適用することを検討する必要があります

7. 結論

この記事では、タスクにニューラルネットワークを適用する必要がある、または適用しない理由をいくつか見てきました。

普遍近似定理により、ニューラルネットワークは任意の連続微分可能関数を近似できることがわかっています。 これは一般的にすべての機械学習アルゴリズムに有効というわけではなく、特にニューラルネットワークの大きな利点です。 ただし、ニューラルネットワークが近似を学習できるという保証はありません。

No Free Lunchの定理は、特定の問題に対していくつかのネットワークアーキテクチャが最良の解決策になることを示しています。 同じアーキテクチャが他の問題に対する間違った解決策になることもわかっています

今日利用可能な過剰な量のデータと計算能力のために、ニューラルネットワークはますます一般的になっています。 データまたは計算能力が不十分な場合は、他の機械学習アルゴリズムを使用する必要があります

一部の問題では、機械学習を必要としない分析ソリューションが可能になります。 そのような場合、代わりに分析ソリューションを見つけることができればニューラルネットワークを使用しないでください