1. 概要

このチュートリアルでは、ニューラルネットワークの隠れ層の数とサイズを決定する方法を学習します。

まず、複雑性理論の観点からこのトピックを組み立てます。 これにより、取り組む問題の複雑さが増すにつれてより複雑になるネットワークアーキテクチャを構築することにより、主題を段階的に分析できるようになります。

次に、隠れ層の数とサイズを決定するための理論的に根拠のある方法とヒューリスティックを区別します。

このチュートリアルの最後に、特定のタスクを解決するために使用する必要があるネットワークアーキテクチャを決定する方法を説明します。

2. ニューラルネットワークと次元性

2.1. 問題とネットワークの複雑さ

ニューラルネットワークの長所と短所に関する記事では、問題を解決するニューラルネットワークが何らかの方法でその問題の複雑さを具体化するという考えについて説明しました。 したがって、問題の複雑さが増すにつれて、それを解決するニューラルネットワークの最小の複雑さも増します。

直感的に、この考えは次のように表現できます。 まず、問題の複雑さの尺度と、ニューラルネットワークの同じ複雑さの尺度を示します。 次に、このステートメントを次のように再定式化します。

このステートメントは、 2つの問題の複雑さを比較するための基準があれば、それらを解決するニューラルネットワークの複雑さを順序付けられた関係に置くことができることを示しています

これは、複雑性とシステム理論におけるより一般的な確立された信念のコンピュータサイエンスのための特別なアプリケーションです。 環境がより複雑になるにつれて、それに埋め込まれている認知システムもより複雑になります

2.2. 複雑さと次元の呪い

機械学習モデルの複雑さの典型的な尺度の1つは、そのパラメーターの次元です。 これは、バックプロパゲーションの計算コスト、特に非線形活性化関数が、のわずかな増加でも急速に増加するためです。

これは、ニューラルネットワークの次元の呪いと呼ばれる問題につながります。 畳み込みニューラルネットワークなどの一部のネットワークアーキテクチャは、入力フィーチャの線形依存性を利用することにより、この問題に特に取り組んでいます。 ただし、回帰用ニューラルネットワークなど、他のいくつかはこれを利用できません。

このコンテキストでは、複雑さが最小限のニューラルネットワークを特定することが特に重要です。 アーキテクチャが最小限の計算コストで問題を解決する限り、それを使用する必要があります。 次のセクションでは、最初にニューラルネットワークアーキテクチャについて行うことができる理論的な予測を見ていきます。 次に、理論的な推論が失敗した場合、私たちをさらに推し進めることができるいくつかのヒューリスティックを研究します。

3. ニューラルネットワークと問題の複雑さ

3.1. 文学における理論的ギャップ

このセクションでは、問題の複雑さと、初期に提供したニューラルネットワークとの関係に基づいて構築します。 これを行うには、根本的な問題の複雑さの増加に関連してニューラルネットワークの複雑さを判断します。 より具体的には、ニューラルネットワークが解決できる最も単純な問題を自問し、より複雑な問題と関連するアーキテクチャのクラスを順番に見つけます。

このセクションは、コンピュータサイエンスの未解決の問題に対処することにも専念しています。 ディープニューラルネットワークに関する文献には重要な理論上のギャップがあります。これは、ほとんどのクラスの問題を解決する一般的な能力の未知の理由に関連しています。 言い換えれば、ニューラルネットワークがと同じように機能する理由はまだ明らかではありません。

この記事でも問題を解決することはできませんが、新しい光を当てることができるような方法で問題を組み立てることはできます。 また、ちなみに、非表示のレイヤーのサイズと数を決定する方法も理解できます。

3.2. 縮退した問題、縮退したソリューション

最も単純な問題は、恒等式としても知られる、の形式の縮退した問題です。 これらの問題には、入力を変更せずに出力にコピーするニューラルネットワークの形式の対応する縮退解が必要です。

単純な問題は問題ではありません。 さらに、ニューラルネットワークは、入力と出力が存在する必要があるため、それら自体も存在します。 結果として、これは、少なくとも2つのベクトルを定義する必要があることを意味しますが、同一です。

3.3. 線形分離のためのニューラルネットワーク

より複雑な問題は、出力が入力に完全に対応しておらず、むしろその線形結合に対応している問題です。 線形回帰の場合、この問題は関数の識別に対応します。 ここで、はバイアス項を含むパラメータベクトルを示し、特徴ベクトルを示します。ここで。

二項分類の場合、出力ベクトルは2つの値のいずれかまたは、をとることができると言えます。 したがって、この問題は、不等式を解く同じ関数の識別に対応します。

パーセプトロンは、次のように定式化されたすべての問題を解決できます。

これは、線形分離可能な問題の場合、ニューラルネットワークの正しい次元が入力ノードと出力ノードであることを意味します。 が非線形独立の特徴で構成されている場合、次元削減手法を使用して、入力を線形独立成分を持つ新しいベクトルに変換できます。 その後、入力のサイズは、になります。ここで、はの固有ベクトルを示します。

したがって、これは、問題が線形分離可能である場合、隠れ層の正しい数とサイズは0であることを意味します。

3.4. 非線形分離のためのニューラルネットワーク

次のクラスの問題は、非線形分離可能問題のクラスに対応します。 非線形分離可能問題とは、その解が次元を持つベクトル空間の超平面ではない問題です。 ニューラルネットワークは解決できるがパーセプトロンは解決できない最も有名な非線形問題は、XOR分類問題です。 この目的には、1つの隠れ層と2つの隠れニューロンを持つニューラルネットワークで十分です。

 

普遍近似定理は、問題がの連続微分可能関数で構成されている場合、単一の隠れ層を持つニューラルネットワークが任意の精度で近似できると述べています。

これは、問題が継続的に微分可能である場合、隠れ層の正しい数は1であることも意味します。 ただし、隠れ層のサイズは、ヒューリスティックによって決定する必要があります。

3.5. 任意の境界のためのニューラルネットワーク

問題、およびそれに対応して問題を解決するニューラルネットワークの複雑さの次の増分は、決定境界が任意に形成される問題の定式化で構成されます。 これは、たとえば、決定境界が複数の不連続な領域で構成されている場合です。

この場合、決定関数の継続的な微分可能性の仮説に違反します。 これは、問題の余分な複雑さを説明するために、隠れ層の数を1つ増やす必要があることを意味します

直感的には、2番目の隠れ層の各ニューロンが決定境界の連続成分の1つを学習すると主張することもできます。 続いて、出力層の重み行列との相互作用は、それらを単一の境界に結合する関数を構成します。

2つ以上の隠れ層を持つニューラルネットワークは、1つの隠れ層のみで構成される浅いニューラルネットワークとは対照的に、深いニューラルネットワークの名前を適切に取ります。

3.6. 抽象化のためのニューラルネットワーク

問題は、さらに高いレベルの抽象化によって特徴付けることもできます。 ニューラルネットワークの用語では、このような問題は、データ上のパターンではなく、レイヤー上のパターンを学習する必要がある問題です。

典型的な例は、畳み込みニューラルネットワークの画像の特徴の抽象化に関連する例です。 たとえば、CNNでは、異なる重み行列は、画像のピクセル間で「線」または「円」の異なる概念を参照する場合があります。

入力のパターンではなく、レイヤー内のノード間の選択の問題には、より高いレベルの抽象化が必要です。 これにより、2よりも高い数の隠れ層が必要になります。

したがって、前のセクションで扱ったどの問題よりも複雑さが高い問題には、3つ以上の隠れ層が必要であると言えます。 ただし、原則として、特定のアーキテクチャが不十分であると思われる場合は、レイヤーの数を少なくし、段階的に増やす必要があります。

3.7. さらに複雑な問題

理論的には、問題が持つ可能性のある複雑さに上限はありません。 結果として、それを解決するニューラルネットワークの最小の複雑さにも制限はありません。 一方、まだ、実際には、レイヤーの数は少ないままであると予測できます

これは、人間が扱う問題の複雑さがそれほど高くないためです。 ほとんどの実際的な問題は特に複雑ではなく、最先端の科学研究で扱われている問題でさえ、限られた数の層を持つネットワークを必要とします。

たとえば、画像内のオブジェクト認識などの非常に複雑な問題は、8つのレイヤーで解決できます。 人間が理解できるテキストの生成には、代わりに96レイヤーが必要です。 これは、モデルがそれよりも高いレイヤー数を持っている場合、何か間違ったことをしている可能性があることを意味します。 レイヤーの数が増えるのを避けるために、代わりに使用できるヒューリスティックについて説明します。

4. 経験則

ここで、隠れ層の数とそのサイズを特定するための理論的に根拠のある推論に伴うヒューリスティックについて説明します。 これらはすべて、機械学習モデルの開発に関する一般原則に基づいています。

これらのヒューリスティックは、ニューラルネットワークの正しい次元を特定するのに役立つガイドラインとして機能します。 この意味で、理論的な推論だけでは特定の問題を導くことができない場合はいつでも、情報に基づいた推測を実行するのに役立ちます。

4.1. 徐々に複雑なシステムを構築する

最初の原則は、単純なモデルでは不十分な場合にのみ、より複雑なモデルを段階的に開発することです。 つまり、複数のアプローチが可能な場合は、最も単純なアプローチを最初に試す必要があります。 たとえば、関数の形状について何も知らない場合は、問題が線形であると事前に推定し、それに応じて処理する必要があります。 このアプローチが失敗した場合にのみ、他のアーキテクチャに移行する必要があります。

これは、ニューラルネットワークの開発で最も計算コストのかかる部分がそのパラメーターのトレーニングで構成されているためです。 与えられた問題を解くための線形モデルを見つけることができれば、これは私たちにかなりの計算時間と財源を節約するでしょう。 できない場合は、1つまたは2つの非表示レイヤーを試してみてください。 そして後者が失敗した場合にのみ、さらに拡張することができます

4.2. レイヤーよりもサイズを大きくすることを優先する

2番目の原則は、特定の数の隠れ層を持つニューラルネットワークが決定関数を学習できない場合に適用されます。 問題の複雑さが追加した隠れ層の数に適切であると疑う理由がある場合は、トレーニングが失敗した場合でも、層の数をさらに増やすことは避けてください。

代わりに、隠れニューロンを追加して拡張する必要があります。 実際、隠れ層のサイズを2倍にすることは、計算の観点から、隠れ層の数を2倍にするよりも安価です。 これは、後者をインクリメントする前に、より大きなレイヤーが代わりにジョブを実行できるかどうかを確認する必要があることを意味します

多くのプログラマーは、入力サイズと出力サイズの間に含まれるレイヤーサイズを快適に使用できます。 ただし、さまざまな問題では、それよりも多かれ少なかれ隠れたニューロンが必要になる場合があります。

4.3. データをより適切に処理する

3番目の原則は、新しいデータを処理するときは常に適用されます。 しかし、2つの隠れ層を持つニューラルネットワークのトレーニングを試みて失敗した場合にも当てはまります。 トレーニングが失敗するときはいつでも、これはおそらく私たちが使用しているデータが追加の処理ステップを必要とすることを示しています。 これは、トレーニングで遭遇する問題が、隠れ層自体の数ではなく、既存の層のパラメーターの最適化に関係していることを意味します。

問題の特定の性質に応じて、データをより適切に処理することは、異なることを意味する場合があります。 たとえば、強く独立した特徴を抽出するために、次元削減を実行する必要があるかもしれません。 または、トレーニングの難しさを緩和するために、入力の標準化または正規化を実行する必要があります。 または、特にモデルがデータの最初のバッチに適合しすぎている場合は、ドロップアウトレイヤーを追加できます。

モデルのトレーニングが失敗した場合は常に、データ処理をより適切に実行する方法を常に自問する必要があります。 それができれば、隠れ層の数を増やすよりも、追加の処理ステップが望ましいです。

5. 結論

この記事では、ニューラルネットワークの隠れ層の正しいサイズと数を特定する方法を研究しました。

まず、問題の複雑さとニューラルネットワークの複雑さの関係について説明しました。

次に、問題のいくつかのカテゴリを複雑さの観点から分析しました。 私たちは、退化した問題から始めて、抽象的な推論を必要とする問題で終わるようにしました。

最後に、使用できるヒューリスティックについて説明しました。 それらは、理論的な推論が失敗したときに、隠れ層の数とサイズを決定するように私たちを導くことができます。

結論として、隠れ層の数とサイズを決定するために、理論的に根拠のある理由を優先する必要があると言えます。 ただし、これらが効果的でない場合は、ヒューリスティックでも十分です