パーセプトロンを拡張するためにσ関数はどのように選択されましたか?
私はパーセプトロンについてもっと深く読んでいて、今はシグモイドニューロンについて読んでいます。
いくつかの引用:
ネットワーク内の単一のパーセプトロンの重みまたはバイアスのわずかな変化により、そのパーセプトロンの出力が完全に反転することがあります。たとえば、0から1になります。これにより、重みを徐々に変更する方法を確認することが困難になります。ネットワークが目的の動作に近づくようにバイアスをかけます。おそらく、この問題を回避するための賢い方法がいくつかあります。しかし、パーセプトロンのネットワークをどのように学習させることができるかはすぐにはわかりません。シグモイドニューロンと呼ばれる新しいタイプの人工ニューロンを導入することで、この問題を克服できます。シグモイドニューロンはパーセプトロンに似ていますが、重みとバイアスの小さな変化が出力の小さな変化のみを引き起こすように変更されています。これは、シグモイドニューロンのネットワークが学習できるようにする重要な事実です。
パーセプトロンと同じように、シグモイドニューロンには入力ごとに重みがあります。 $w1,w2,…$、および全体的なバイアス、b。しかし、出力は0または1ではありません。代わりに、$σ(w⋅x+b)$、ここで、σはシグモイド関数と呼ばれ、次のように定義されます。 $σ(z)≡\frac{1}{1+e^{−z}}$。
σが実際に階段関数であった場合、w⋅x+ bが正か負かに応じて出力が1または0になるため、シグモイドニューロンはパーセプトロンになります。実際のσ関数を使用することにより、上記ですでに示唆したように、平滑化されたパーセプトロンが得られます。σの滑らかさは、重みの小さな変化ΔwjとバイアスのΔbがニューロンからの出力に小さな変化Δoutputを生成することを意味します。実際、微積分は、Δoutputが次のようによく近似されていることを示しています。
$$Δoutput≈∑_j\frac{∂output}{∂w_j}Δw_j+\frac{∂output}{∂b}Δb$$
偏導関数に慣れていなくても慌てないでください!
Δoutputは変化の線形関数です $Δw_j$ そして $Δb$重みとバイアスで。この線形性により、重みとバイアスの小さな変化を簡単に選択して、出力の小さな変化を実現できます。したがって、シグモイドニューロンはパーセプトロンとほとんど同じ定性的動作をしますが、重みとバイアスを変更すると出力がどのように変化するかを理解するのがはるかに簡単になります。
実際、本の後半では、出力がf(w⋅x+ b)であるニューロンを他のいくつかの活性化関数f(⋅)について検討することがあります。別の活性化関数を使用すると変化する主な点は、式(5)の偏導関数の特定の値が変化することです。後でこれらの偏導関数を計算するとき、σを使用すると代数が単純化されることがわかります。これは、指数関数が微分されたときに美しい特性を持っているからです。いずれにせよ、σはニューラルネットの作業で一般的に使用されており、この本で最も頻繁に使用する活性化関数です。[終わり]
私の質問の最初の部分は、そもそもこの「シグモイド型」の関数/方程式を選ぶことをどうやって知ったのかということです。彼らはどうやってこれを他のすべての湾曲した関数または湾曲していない関数よりも選ぶことを知ったのですか?それは数学の授業におけるこれらのタイプの問題の単なる標準的な慣習ですか?シグモイド関数が選択された理由を説明しようとすると、「入力に小さな変更を加えることができ、出力に小さな変更を加えることができるからです」と言います。しかし、どのように?私は偏導関数の数学に従わず、偏導関数のバックグラウンドも持っていません(そして私の聴衆もそうではありません)。エシグマ関数が選択された理由と方法を知ることは、ニューラルネットワークが機能する理由をわかりやすく説明するのに役立ちます。
残念ながら、偏導関数は説明されていません(多分それらはどこかにあるでしょう)。
私の質問の2番目の部分は、どうですか $Δoutput$「線形関数」?シグモイド形状ではなく、平坦な傾斜だけではないのはなぜですか。なぜそんなに派手でなければならないのですか?「σを使用すると代数が単純化される」とはどういうことですか?この背後にある元の考え方に関する研究論文はどこにありますか、または答えがわかっている場合は、シグマを使用すると代数が単純化される理由をどのように説明できますか?これは、そもそもシグマ関数を使用している理由の説明の重要な部分のように思われるので、素人の説明があると非常に役立ちます。
回答
最初の部分への回答
問題の関数はロジスティック関数と呼ばれます。「the」シグモイド関数と呼ばれることもありますが、S字型関数を意味するためにシグモイドを使用する著者もいます。
ニューラルネットワーク、シグモイドなどで実際に使用されるさまざまな活性化関数があります。ロジスティック関数とその導関数の両方がすべての実数入力に対して定義され、基本関数の観点から短い式として記述でき、ほとんどのプログラミングで標準ライブラリ関数を使用して効率的に計算できるため、ロジスティック関数は最も一般的な関数の1つです。言語。(これは、古典的なパーセプトロンの活性化関数として使用されるステップ関数とは異なります。ステップ関数の導関数は不連続性で定義されていません。)これらのプロパティを持つ別の広く使用されている活性化関数は次のとおりです。$\tanh$。最初にシグモイドニューロンを提示するときに、一方を他方よりも優先する強い理由は実際にはありません。微積分1クラスで区別する方法を学び、漸近線のあるシグモイド形状の関数をほぼ選択できます。$\pm\infty$。それらはトレーニングでわずかに異なるパフォーマンス特性を持っていますが、それは最初の説明にはあまり関係がありません。
残念ながら、偏導関数を理解せずにバックプロパゲーションを説明することは非常に困難です。バックプロパゲーションは文字通り、勾配が自動微分によって計算される単なる最急降下法だからです。バックプロパゲーションがどのように機能するかについて、3Blue1Brownの優れた一連のYouTubeビデオ(パート1、パート2、特にパート3とパート4)を視聴することをお勧めします。
あなたは質問の中で聴衆に言及します。この資料を提示する場合は、少なくとも参考として、上記の4つのビデオを視聴者に紹介することを真剣に検討します。彼らは確かに私が講義で与えることができるよりも良い説明を提供します。
第二部への回答
線形関数を使用しない理由は、すべての線形活性化関数を備えたニューラルネットワークが線形関数の線形の組み合わせであり、したがってそれ自体が線形関数であるためです。したがって、線形活性化関数を使用すると、ニューラルネットワークのトレーニングのポイント全体が失われます。線形関数をデータに最小二乗近似することで、同じ結果をより速く得ることができます。
少しだけ単純化しすぎると、線形活性化関数を備えたニューラルネットワークはExcelの「近似近似曲線」機能にすぎません。
対照的に、十分に優れた非線形活性化関数の場合、十分なニューロンを使用することで任意の関数を適切に近似できるという普遍近似定理があります。
普遍近似定理は、ニューラルネットワークが最初に発明されてから何年もの間発見されなかったため、彼らの発明の動機付け要因ではありませんでした。初期のニューラルネットワークの研究は、主に生物学的ニューロン(脳内の種類)と制御理論に触発されました。
普遍近似定理は、十分に大きなニューラルネットワークが任意の関数をうまく近似する可能性があると述べていますが、ニューラルネットワークをトレーニングする標準的な方法(確率的勾配降下逆伝播)が実際に非常にうまく機能する実際の理由はまだよく理解されておらず、アクティブです研究分野。