ニューラル ネットワークのラーニング パス

私は昔から機械学習のディープラーニングに興味を持っていましたが、数学が苦手で原理がまったく理解できず、関連する講座をたくさん勉強したり、関連する実験やコンテストにも参加したりしましたが、ほとんど何もありませんが、これは、既製のネットワークをアプリケーションに直接使用するだけではなく、パラメータを変更して特定の問題を解決し、それをマスターしたと言えるわけでもありません。散在的な理解を一定期間終えた後、体系的な学習を正式に開始します。ですので、私が読んで入門に良いと思った記事を中心に、共感できる記事を記録させていただきました、対象範囲は非常に狭いですが、比較的良いものになっているはずです。
まず第一に、ニューラル ネットワークは実際にはパラメーターを学習する反復プロセスであり、パラメーターには重みなどが含まれることを理解する必要があります。これは、トレーニング中の継続的な反復を通じて特定の種類の問題の最適なパラメーターを取得し、関連する入力が与えられた場合に、その結​​果が最適な出力にマッピングされるようにすることです。

コンセプトと歴史

まず第一に、いくつかの種類のネットワークを理解してください。Zhihu の答えには、これらのシステムの開発の歴史が含まれています。ニューラル ネットワークのプロトタイプと歴史を理解できない場合、実際、それは常に霧の中にあります。最も基本的で簡潔な方法で、比較的最もリラックスでき、これ自体は想像するほど難しいことではありませんが、ベールを外すと、自然の美しさを体験できることがよくあります。

1.「ニューラルネットワーク」 - 一つの記事がきっかけとなって散在する

CNN(畳み込みニューラルネットワーク)、RNN(リカレントニューラルネットワーク)、DNN(ディープニューラルネットワーク)の内部ネットワーク構造の違いは何ですか?- Ke Yanjun の回答 - Zhihu
この記事のロジックは非常に優れており、本質は何なのか、何が必要なのか、何が問題なのか、そして問題を解決する方法まで非常に明確です。
理解はできました。この理解は必ずしも正しいとは限りませんが、ニューラル ネットワークの階層的な問題を理解するのに間違いなく役立ちます。単層ネットワークの場合、実際には一次方程式に相当するため、複雑な関数を処理することはできません。 0-1 の質問のような最も単純なものでは、たとえば、x を入力すると、ax+b の結果 y が得られます。いくつかの x と y (これがトレーニング セットです) を与えることで、パラメータを決定できます。実際、2 つあれば十分です (2 つの点が 1 つの直線を決定します)。ただし、問題によっては対応関係が「直線」ではないため「高度化」する必要があり、二次方程式の場合はさらに多くの点を求める必要があります。直線、二次曲線、三次曲線を頭の中に思い浮かべると、フィッティングのプロセスが明確になります。回数が多いと極値も多くなるので、トレーニングセットが比較的小さい場合は一部の極値しか判断できず、どの極値が最も欲しいかを判断するのは簡単ではありません(しかし、ネットワークは彼が最高の価値があると考えています)。これが私が今理解している、いわゆる局所最適解問題です(極値が局所最適解、最大値が大域最適解)。
この記事では次のように述べられています。ネットワーク層の数が増加するにつれて、「勾配の消失」の問題が深刻になります。
これはキーワードです。この記事の説明が理解できなかったので、勾配消失について検索しました。以前に簡単な理解を聞いたことはありますが、まだ包括的な理解はできていません。

1) 「バニシング グラデーション」 - 散乱を引き起こす用語

勾配消失と勾配爆発の詳しい説明は
何ですか? タイトルの通り、勾配消失と勾配爆発の問題です。
なぜ?なぜなら、ニューラルネットワークの本質はパラメータを学習することであり、パラメータを学習する方法はバックプロパゲーションです。バックプロパゲーションの過程で関数が転送されます。転送のプロセスでは勾配が重要な役割を果たします。これを近づけることができます。局所的な最適値に到達します。
勾配の計算はシグモイド関数によって行われ、導出の結果が図に示されています。
ここに画像の説明を挿入
これは乗算の伝達です。そして、結果の値の範囲は [0~0.25] であると判断できます。したがって、振幅 1 の信号の場合、BP が勾配を逆伝播すると、勾配は送信層ごとに元の 0.25 に減衰します。 。層の数が多すぎると、基本的に、勾配が指数関数的に減衰した後、下位層は効果的なトレーニング信号を受信できなくなります。
ここに画像の説明を挿入

したがって、初期化されたネットワークの重み |w| が 1 未満の場合、連続乗算の結果は失われるため、層が多い場合、多くのニューロンはほとんど学習しません。
[それは値段を推測するようなものです。100 で買ったものを推測させました。私は 50 だと言いました。小さすぎると言いました。そして、51、あるいは 50.1 とさえ言いました。
同様に、初期重み w が 1 より大きい場合、連続的に乗算すると勾配が爆発します。
[例として価格を推測するのですが、私は冗談で 50 と推測しましたが、あなたは 500 と言い、私は大きすぎると言いましたが、あなたは 50 と推測しました。
勾配の乗算が多すぎるため、減少が遅くて止まらなくなります。
上の例は不適切です。なぜなら、上で述べた問題は一次方程式の問題であり、「直線」の問題であるため、かなり奇妙です。

何をすべきか?したがって、この乗算方法は良くありません。導出を乗算の結果ではなく、分類の役割も果たす必要があるため、シグモイドが改善され、さまざまな活性化関数が表示されます: Relu、LeakyRelu、PReLU、Elu など。
よくわかりませんね? 引き続き検索:活性化関数 Relu と LeakyRelu
ここに画像の説明を挿入
上の図で言及されているダイは、「ニューロンの死」の問題です。ニューロンの 1 つが受け取った入力が 0 未満の場合、彼はそれは変化せず、つまり「死んだ」状態であり、学習率が比較的大きい場合、結果に近づけない可能性があり、すべてのニューロンがストライキを起こします。
で、リーキーは何をしたの?負の軸情報を保持します。<0 の場合、情報は保持されますが、その影響要因 (勾配/傾き) は少し減少します。
より深い理解については、この記事を参照してください: Relu の理解
ちょっと汚くなるかな?
過去を振り返ることで新しいことを学び、別の記事で整理する:活性化関数の理解に関する記事 (Sigmoid/ReLU/LeakyReLU/PReLU/ELU) の記事では、
さまざまな活性化関数の理由が簡単に説明されており、別のレベルでもあります開発の歴史の話。これは、ニューラル ネットワークの開発をマルチレベルで理解し、複数のレベルからニューラル ネットワークを始めることと呼ばれます。

原文に戻ると、局所最適解問題にはいろいろな解があることがわかりますが、もう我慢できません。

おすすめ

転載: blog.csdn.net/weixin_43938876/article/details/122086915