ニューラルネットワークの理解と応用

最近、呉孟達氏のディープラーニングを勉強しています、この記事はニューラルネットワークの関連知識ポイントを記録するために使用されています~

ニューラル ネットワークとニューラル ネットワークの仕組みについての理解が含まれます。

ニューラル ネットワークを理解する

ニューラル ネットワークを理解するには、次の図を使用してください。

 図の最初の層は入力層で、x1、x2、x3 は入力サンプルの特性 (音楽データ サンプルの曲名や歌手名など) です。

2 層目はニューラル ネットワークの鍵となる隠れ層であり、一般に隠れ層は多数の層からなるディープ ニューラル ネットワークですが、図では隠れ層のうちの 1 層のみを示しています。

ディープ ニューラル ネットワークが使用される理由は、通常、ニューラル ネットワークは画像や音声、動画などのより複雑なデータを処理するために使用され、これらのデータに対しては多層ニューラル ネットワークの学習が必要になるためです。一般に、最初の数層は局所的な特徴情報を学習し、後半の数層は局所情報を統合して、より複雑な情報を探索します。これがニューラル ネットワークが人気がある理由の 1 つです。

図の隠れ層を例にとると、図の 5、6、7、8 はすべて同じ層の個別のニューロンです。ニューロンを簡単に理解すると、対応する入力が与えられると、対応する出力がニューロンを通じて計算される関数です。一般的なニューロンは、次の図に示すように、線形関数と活性化関数の 2 つの部分で構成されます。

ニューロンを例にとると、w と b はニューロンのパラメーター (つまり、トレーニング プロセス中に継続的に学習および調整する必要があるパラメーター) です。

ニューロンの左側では、入力 X=[x1,x2,x3] に対して線形演算を実行して、ベクトル z1 を取得します。このうち、w はベクトルであり、サンプルのさまざまな特性に重みを付け、最後にバイアス b を追加して線形演算を完了します。

ニューロンの右側は活性化関数です。図はシグモイド活性化関数である δ(z) を示しています。シグモイド関数は次のとおりです。シグモイド関数は (0,1) の間の出力範囲を固定します。これは適切です\delta \left ( z \right )= \frac{1}{1+e^{-z}}。二項分類問題用。一般的に使用される活性化関数には、tanh、ReLU、Leaky RelU などがあります。アクティベーション関数については別記事で詳しく解説します。ここで知っておく必要があるのは、活性化関数は非線形関数であり、隠れ層の役割を果たし、ニューラル ネットワークの出力が入力の線形結合になるのを防ぐということです。

各ニューロンには異なるパラメーターがあり、ニューラル ネットワークが機能するには、ニューロン パラメーターの初期化にランダムな初期化が必要であることに注意してください。異なる層の活性化関数は異なる場合があります。

3 番目の層は出力層で、ニューロンが 1 つだけあり、ニューロンの計算は前述の単一ニューロンの計算と似ています。

ニューラル ネットワークの仕組み:

ロジスティック回帰 (二項分類問題の解決に使用) を例に挙げます。

1. 入力サンプル x を指定して、パラメーター w、b を初期化します。を使用しz=w*x+b\hat{y}=\delta \left ( z \right )=\frac{1}{1+e^{^{z}}}  計算し\hat{y}、サンプル x の予測結果を取得します。

2. コスト関数に従って、サンプルの予測結果と実際の結果の間の誤差を計算します。

単一サンプルのエラー:L(\hat{y},y)=-(y*log(\hat{y})+(1-y)*log(1-\hat{y}))

yサンプルの真の値を表し、\hat{y}サンプルの予測値を表します。バイナリ分類問題では、真の値と予測値の両方に、取り得る値は 0 と 1 の 2 つだけです。

コスト関数:J(w,b)=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}*log(\hat{y}^{(i)}) +(1-y^{(i)})*log(1-\hat{y}^{(i)})]

すべてのサンプルの誤差値を加算し、サンプル数で割ります。

3. 誤差に応じてパラメータ w と b を調整し、勾配降下法を使用してパラメータ w と b を調整し、サンプルの誤差をできるだけ小さくするパラメータ w と b を見つけます。

おすすめ

転載: blog.csdn.net/m0_45267220/article/details/128594664