原則の学習

順序

参考にした書籍はこちら:Pythonニューラルネットワークプログラミング(Douban)(douban.com)

Xiaobai、基本はゼロ、そして他のより複雑な本は理解できません...

01. フォワード計算

左から右へ、入力値に従って出力値を取得します

概要

これはニューロンの数学的形式です。

閾値関数

シグモイド関数:

具体的にはこの形状:

入出力

おそらく次のように計算されます。

結合入力の概念があります

具体的な計算プロセスは次のとおりです。

マトリックス形式

結合入力は乗算と加算のプロセスです。

行列の乗算のようです。

したがって、結合された入力は行列乗算の形式で記述することができます。

これはカプセル化です...フレームワークにカプセル化され、ユニバーサルになります。

X=ウィスコンシン

W は重み行列です: 重み

各レイヤーには 2 つのノードがあり、これは 2*2 のスケールです。

I は入力行列、入力です

各レイヤーには 2 つのノードがあり、これは 2*1 のスケールです。

この行列のサイズは、前の層と現在の層のノードの数に関連します。

02. 逆算

右から左に、期待値と実際の値の差を計算します。

この差分値は重量を調整するために使用されるため、差分値は重量ごとに個別に計算されます。

どうやって数えますか?

結合された入力であるため、この誤差は複数の重みによって発生します。

重みは辺の重さで、両端がある辺を辺、片方しかない辺を点といいます。

ケース1

出力層 3 と隠れ層 2 の間のリンク間のエラーをどのように分割するか?

大丈夫、もう終わりですか?これはまだ終わっておらず、入力層 1 と隠れ層 2 の間のリンクにはまだエラーが割り当てられていません。これはどのように計算しますか?

ケース2

まず第一に、逆伝播するにはエラーがなければなりません

エラーはどこにありますか。これは出力層ではありません

再結合により誤差が得られます。再結合誤差はリンク上のエラーの合計に等しいです。リンク上のエラーは何ですか? 前のステップで按分することで得られます。

マトリックス形式

マトリックス形式でパッケージ化することもできますか?

再結合エラーは各リンクのセグメンテーション エラーの合計に等しく、セグメンテーション エラーは乗算によって計算されます。最初に乗算、次に加算...行列の乗算も同じです。

さらに、行列の添え字から、それが確かに逆伝播であることがわかります。

この行列は、順方向計算で使用される重み行列の転置とみなすこともできます。

03. 導出と更新

数字を推測してください。5 が大きすぎる場合は、3 に変更される可能性があります。

各重みには、対応する誤差が比例的に割り当てられます。誤差に応じて重みを 1 つずつ更新するにはどうすればよいですか?

計算プロセスから、誤差は出力に関連し、出力は重量に関連していることがわかります。したがって、誤差は重量に関連しています。

勾配降下法

(メッセージ数 14 件) ニュートン法 - 勾配降下法_leo_fighting のブログ - CSDN ブログ_勾配降下図

根据误差更新权重,单个权重是个标量

已有标量X,更新后是X+ΔX

那么,ΔX,是正是负?

和斜率反着来就行了;斜率正数,就正,斜率负数,就负

负号有了,具体的值是多少呢?大概和斜率绝对值有关吧

一个标量X,就是这么更新的。

如果误差和8个权重标量有关呢?如上图。

一元的是斜率;多元的就叫梯度了,梯度是个向量,每个分量都是偏导的形状

无非就是1+1和的关系,重复而已

偏导

那么,误差关于权重的偏导怎么求?

2和3之间的是这么算的:

1和2之间的可以类比:

矩阵形式

能不能也封装成矩阵形式?

这个不存在什么先乘法再加法的情况;但是先写写看吧

可以把那3个部分,抽象成函数的形式,俩变量,ij

怎么看呢?

先按住j——让j当常数【偏导就是这么干的】;

再放开i——让i作变量

就看到结构上的规律了。

后记

原理大概就这么多。

书的后面好像还有个实际应用。

おすすめ

転載: blog.csdn.net/averagePerson/article/details/129132110