台湾大学李宏毅深度学习1
其他
2018-09-23 23:43:57
阅读次数: 0
-
深度学习的三个步骤
- Neural Network(神经网络):我们经常设计神经网络,并且让机器从数据中寻找参数。
- Cost function(成本函数):用来判断一组参数是好还是不好
- Optimization(最优化):找到最好的函数
-
Fully connected layer(全连接层):
- 第i-1和第i层之间两两相连。第l-1层的第1个神经与第l层的第2个神经相连,得到的是
w21l。上边l表示连接的是第l-1层和第l层。下标21表示连接的是第l层的第2个神经,到第l-1层的第1个神经。注意这里下标是反的
- 最后每两个相连的层之间形成一个w数组。这个数组的行数是第l层的神经个数,列数是第l-1层的神经个数。
- 每一层的神经元的表示
ail表示在第l层的第i个字符。如果是
al则表示第l层的所有神经元,形成一个vector。
-
zil:第l层的第i个神经的活动输入。
zl表示第l层的所有输入。
zil =
wi1l
a1l−1 +
wi2l
a2l−1+……
bil
其中
bil代表的是第l层的第i个神经元的常数。
- 那么考虑
al和
al−1之间的关系。
z1l=
w11l
a1l−1 +
w12l
a2l−1+……+
b1l
z2l=
w21l
a1l−1 +
w22l
a2l−1+……+
b2l
zil=
wi1l
a1l−1 +
wi2l
a2l−1+……+
bil
那么上面的式子可以用矩阵表示
⎣⎢⎢⎢⎢⎢⎢⎡z1lz2l⋮zil⋮⎦⎥⎥⎥⎥⎥⎥⎤
也就是
Zl =
Wl
al−1+
bl
- 当知道了
al−1与
zl之间的关系,如果也知道
zl和
al之间的关系,我们就可以得到
al−1和
al之间的关系。
那么z与a的关系,假设l层的函数是
σ()。那么
ail =
σ(
zil) 。还可以
al =
σ(
zl)
- 那么根据第5条和第6条两条式子,我们可以知道
al−1和
al之间的关系:
al =
σ(
Wlal−1+
bl)
-
Recurrent structure(周期性结构):用同一个函数不断去简化网络。
- 有一个
h‘,y=
f(h,x) 这个函数有两个参数,同时又两个返回值。
- 则如果
h0和
x1是第一个参数,得到的输出是
h1,
y1=
f(h0,x1) 。继续重复这个过程,
h2,
y2=
f(h1,x2)。就是用
f()这个函数不断去简化网络。但是这里有一个重点**
hi和
hi−1**
- Deep RNN:
h‘,y=
f1(h,x)
b‘,c=
f2(b,y)
这里注意上下两条的y是同一个y。
- Bidirectional RNN:
h‘,a=f1(h,x)
b‘,c=f2(b,x)
y=f3(a,c)
- Pyramidal RNN(循环神经网络):每一层把下一层的好几个block的输出作为自己的输入,那么就可以减少sequence的长度。
- Naive RNN:
h‘,y=f(h,x)
h‘=σ(whh+wix)
y=σ(w0h‘)
-
LSTM(长短时记忆网络):
-
ct和
ct−1之间是相加的关系,也就是
ct是变化很慢的。
-
ht和
ht−1之间差别很大,也就是
ct是变化很快的。
- 运算过程:
这里把
xt和
ht−1看成是并在一起,再乘上w(一个矩阵)
ct和
yt和
ht的得到过程是:
-
GRU(Gated Recurrent Unit):
转载自blog.csdn.net/rainpasttime/article/details/82751981