-
深度学习的三个步骤
- Neural Network(神经网络):我们经常设计神经网络,并且让机器从数据中寻找参数。
- Cost function(成本函数):用来判断一组参数是好还是不好
- Optimization(最优化):找到最好的函数
-
Fully connected layer(全连接层):
- 第i-1和第i层之间两两相连。第l-1层的第1个神经与第l层的第2个神经相连,得到的是w21lw^l_ {21}w21l。上边l表示连接的是第l-1层和第l层。下标21表示连接的是第l层的第2个神经,到第l-1层的第1个神经。注意这里下标是反的
- 最后每两个相连的层之间形成一个w数组。这个数组的行数是第l层的神经个数,列数是第l-1层的神经个数。
- 每一层的神经元的表示aila^l_iail表示在第l层的第i个字符。如果是ala^lal则表示第l层的所有神经元,形成一个vector。
- zilz^l_izil:第l层的第i个神经的活动输入。 zlz^lzl表示第l层的所有输入。
zilz^l_izil = wi1lw^l_{i1}wi1l a1l−1a^{l-1}_1a1l−1 + wi2lw^l_{i2}wi2l a2l−1a^{l-1}_2a2l−1+……bilb^l_ibil
其中bilb^l_ibil代表的是第l层的第i个神经元的常数。 - 那么考虑ala^lal和al−1a^{l-1}al−1之间的关系。
z1lz^l_1z1l=w11lw^l_{11}w11la1l−1a^{l-1}_1a1l−1 + w12lw^l_{12}w12la2l−1a^{l-1}_2a2l−1+……+b1lb^l_1b1l
z2lz^l_2z2l=w21lw^l_{21}w21la1l−1a^{l-1}_1a1l−1 + w22lw^l_{22}w22la2l−1a^{l-1}_2a2l−1+……+b2lb^l_2b2l
zilz^l_izil=wi1lw^l_{i1}wi1la1l−1a^{l-1}_1a1l−1 + wi2lw^l_{i2}wi2la2l−1a^{l-1}_2a2l−1+……+bilb^l_ibil
那么上面的式子可以用矩阵表示
[z1lz2l⋮zil⋮] \left[ \begin{matrix} z^l_1 \\ z^l_2 \\ \vdots \\ z^l_i \\ \vdots \end{matrix} \right] ⎣⎢⎢⎢⎢⎢⎢⎡z1lz2l⋮zil⋮⎦⎥⎥⎥⎥⎥⎥⎤
也就是ZlZ^lZl = WlW^lWlal−1a^{l-1}al−1+blb^lbl - 当知道了al−1a^{l-1}al−1与zlz^lzl之间的关系,如果也知道zlz^lzl和ala^lal之间的关系,我们就可以得到al−1a^{l-1}al−1和ala^lal之间的关系。
那么z与a的关系,假设l层的函数是σ\sigmaσ()。那么aila^l_iail = σ\sigmaσ(zilz^l_izil) 。还可以ala^lal = σ\sigmaσ(zlz^lzl) - 那么根据第5条和第6条两条式子,我们可以知道al−1a^{l-1}al−1和ala^lal之间的关系: ala^lal = σ\sigmaσ(Wlal−1W^la^{l-1}Wlal−1+blb^lbl)
-
Recurrent structure(周期性结构):用同一个函数不断去简化网络。
- 有一个 h‘h^`h‘,y=f(h,x)f(h,x)f(h,x) 这个函数有两个参数,同时又两个返回值。
- 则如果h0h_0h0和x1x_1x1是第一个参数,得到的输出是 h1h_1h1,y1y_1y1=f(h0,x1)f(h_0,x_1)f(h0,x1) 。继续重复这个过程,h2h_2h2,y2y_2y2=f(h1,x2)f(h_1,x_2)f(h1,x2)。就是用f()f()f()这个函数不断去简化网络。但是这里有一个重点**hih^ihi和hi−1h^{i-1}hi−1**
- Deep RNN:
h‘h^`h‘,y=f1(h,x)f_1(h,x)f1(h,x)
b‘b^`b‘,c=f2(b,y)f_2(b,y)f2(b,y)
这里注意上下两条的y是同一个y。
- Bidirectional RNN:
h‘,a=f1(h,x)h^`,a=f_1(h,x)h‘,a=f1(h,x)
b‘,c=f2(b,x)b^`,c=f_2(b,x)b‘,c=f2(b,x)
y=f3(a,c)y=f_3(a,c)y=f3(a,c)
- Pyramidal RNN(循环神经网络):每一层把下一层的好几个block的输出作为自己的输入,那么就可以减少sequence的长度。
- Naive RNN:h‘,y=f(h,x)h^`,y=f(h,x)h‘,y=f(h,x)
h‘=σ(whh+wix)h^`=\sigma(w^h h+w^ix)h‘=σ(whh+wix)
y=σ(w0h‘)y=\sigma(w^0h^`)y=σ(w0h‘)
-
LSTM(长短时记忆网络):
- ctc^tct和ct−1c^{t-1}ct−1之间是相加的关系,也就是ctc^tct是变化很慢的。
- hth^tht和ht−1h^{t-1}ht−1之间差别很大,也就是ctc^tct是变化很快的。
- 运算过程:
这里把xtx^txt和ht−1h^{t-1}ht−1看成是并在一起,再乘上w(一个矩阵)
ctc^tct和yty^tyt和hth^tht的得到过程是:
-
GRU(Gated Recurrent Unit):
台湾大学李宏毅深度学习1
最新推荐文章于 2023-10-26 11:35:03 发布