关于吴恩达机器学习中反向传播的理解
关于吴恩达机器学习中反向传播的理解
扑克原文
在机器学习视频反向传播章节1中:
我们用
来表示误差,则: 。我们利用这个误差值来计算前一层的误差:
。其中 是 形函数的导数,
。而 则是权重导致的误差的和。
问题
看到这道算式时我百思不得其解。为什么凭空会有转置?
在我自己推一遍之后,发现原公式中可能有些不严谨的地方,所以在此阐述我的理解,欢迎大家指正:
前提
对数似然代价函数:
估计函数:
Logistic
激活函数:
此外激活函数导数为:
我的理解
flowchart LR x1--"(Θ<sub>1</sub><sup>(1)</sup>)<sub>1</sub>"-->z12 x1--"(Θ<sub>1</sub><sup>(1)</sup>)<sub>2</sub>"-->z22 x2--"(Θ<sub>2</sub><sup>(1)</sup>)<sub>1</sub>"-->z22 x2--"(Θ<sub>2</sub><sup>(1)</sup>)<sub>2</sub>"-->z12 a12--"(Θ<sub>1</sub><sup>(2)</sup>)<sub>1</sub>"-->z13 a12--"(Θ<sub>1</sub><sup>(2)</sup>)<sub>2</sub>"-->z23 a22--"(Θ<sub>2</sub><sup>(2)</sup>)<sub>1</sub>"-->z23 a22--"(Θ<sub>2</sub><sup>(2)</sup>)<sub>2</sub>"-->z13 z12--g-->a12 z22--g-->a22 z13--g-->a13 z23--g-->a23 a13-.->y1-.->j a23-.->y2-.->j subgraph x x1((x<sub>1</sub>)) x2((x<sub>2</sub>)) end subgraph 第一层 direction LR z12(("z<sub>1</sub><sup>(2)</sup>")) a12(("a<sub>1</sub><sup>(2)</sup>")) z22(("z<sub>2</sub><sup>(2)</sup>")) a22(("a<sub>2</sub><sup>(2)</sup>")) end subgraph 第二层 z13(("z<sub>1</sub><sup>(3)</sup>")) a13(("a<sub>1</sub><sup>(3)</sup>")) z23(("z<sub>2</sub><sup>(3)</sup>")) a23(("a<sub>2</sub><sup>(3)</sup>")) end subgraph y y1((ŷ<sub>1</sub>)) y2((ŷ<sub>2</sub>)) end j(("J(θ)"))
如图(省略了偏置),输入数据为
这张图上表示了所有的运算,例如:
同时,此图认为预测输出为
下面我们将上列函数改写成对应元素的写法,先作定义:
:被 作用的层 : 层单元数量,用 进行遍历(即 ) : 层单元数量,用 进行遍历
推导
综上可得,若
将同一层
下面推隐含层,以第一个单元为例:
令:
可将上式化为矩阵:
结论
由上,可写出递推普式:
其中最后一层:
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果