numpyのを構築するためのニューラルネットワークの第二の使用:勾配降下法が実装されています

 

  リトル友人~~大丈夫あなたは、ニューラルネットワークを構築するnumpyの、我々は第二段階になってきました。細菌がどのようにnumpyの持つ単純なニューラルネットワークを構築する方法を教えダイジェスト第一段階は、フィードフォワード部分を完了しました。

  この問題では、勾配降下、関連する知識を持って、numpyのと同じ勾配降下にはまだ実現しています。コードの先頭の前に、最初はそれの勾配降下地点の知識を普及します。

  勾配降下:反復ソルバーモデルパラメータ値

  上述記事の最初のフェーズは、最も単純なニューラルネットワークは、3つの要素、入力層、中間層および出力層から成ります。Y = W * X + B:完全に類似したメンバーシップ関数にどの作業機構に関する。すなわち、入力データX、出力Yを得るため

  機能の品質を評価する方法、それは、関数についての二つの間に小さなギャップを代表して表現する強力な能力、真の値と出力値との間のギャップを測定するために、どのようにプロのフィットネス?最も簡単な方法です。

  このギャップ尺度はまた、損失関数と呼ばれます。本来の機能のスキルが強く、損失関数の値が明らかに、小さいです。

  その後、関数が最小値を持つパラメータのどのような値はありますか?通常のローカル最小値は(極端な時点で取られた)誘導体を得ることができます。勾配降下法は、関数パラメータの最小値が要求されます。

  勾配降下数式

  例えば、線形回帰、想定Hθモデルパラメータの(X1、X2 ... XN)=θ+θ1x1+ .. +θnxn、WI(i = 0,1,2 ... N)、XI(I = 0の関数として表します各サンプルのN個の特徴値の、1,2 ... N)。この表現は、h(XO、X1、... XN)=θX+θ1x1+ ... +θnxnように、我々は、機能のx = 1を追加し、簡素化することができます。また、線形回帰関数は、実際には、MSEまたはSSE損失関数がとることができる、主に補正演算式はSSEがより美しい結果できるように、損失関数の前に上記ここでの仮定、損失関数(プラス1/2メートルに対応します唯一の相違点で所与のサンプルのための固定値の両方)。

  初期化アルゴリズムのパラメータは:主にθを初期化し、θ1...、θnとは、我々は0に初期化し、すべての傾向があり、ステップサイズは1に初期化されます。チューニングするときに最適化すること。

  次のように表現式は勾配をθI:

  (学習率)損失関数の勾配のステップサイズ、低下、すなわちから得られる現在位置が乗算されます:

  行列勾配降下方法が記載されています

  行列表現である上記線形関数に対応します。

  損失関数式は次のとおりです。

  前記Yは、サンプル出力ベクトルです。

  勾配式が表されます。

  線形回帰の例は、特定のアルゴリズム・プロセスを記述するために使用されます。次のようにベクトルの損失関数の偏導関数が計算されます。

  イテレーション:良い鄭州婦人科病院ます。https://yyk.familydoctor.com.cn/21521/

  二つの行列導出式:

  勾配降下はPythonで実装しました

  必要な二つのパッケージをご紹介します。

  標準化された関数の定義ではなく、大きすぎるか小さすぎる値は、ソリューションに影響を与えます。

  勾配降下関数が定義されています。

  データセットの入力を表し、アルファは学習速度であり、maxcyclesは、反復の最大数です。

  すなわち、評価された重みを返します。np.zerosは、初期化関数です。行列を求める大学院は、勾配降下方程式を解くに基づいています。

おすすめ

転載: www.cnblogs.com/sushine1/p/10950048.html