深度学习week1_4
版权申明:本文为原创文章,转载请注明原文出处
深度学习week1_4
深层神经网络
更多的层数,更多的隐藏节点
新的参数:L->层数 n[i]第i层的节点数,输入层是第0层
X=a[0] a[i]表示激活函数->a[i]=g(z[i]``)
a[L]=y_hat
每一层完成的工作:input a[i-1] output a[i] cache z[i]
z[i]=W[i] * a[i-1] + b[i]
a[i]=g(z[i])
反向传播:
da[L]=-y/a+(1-y)/(1-a)
dz[L]=da[L] * g(z[L])`
dW[L]=dz[L] * a[L-1].T
db[L]=np.sum(dz[L],axis=1,keepdim=True)
da[L-1]=W[L].T * dz[L]
dz[L-1]=da[L-1] * g(z[L-1])`
深层网络中的前向传播
正向传播时:
Z[1]=W[1] * A[0] + b[1]
A[1]=g(Z[1])
Z[2]=W[1] * A[1] +b[1]
A[2]=g(Z[2])
……
上述使用for循环
核对矩阵的维数
Z[i]的横向量:第i层的节点数,纵向量:样本数 (n[i],m)
W[i]的横向量:第i层的节点数,纵向量:A[i-1]的横向量,即第i-1层的节点数 (n[i],n[i-1])
b[i]:(n[i],1)
dW[i]和W[i]的维度一样
db[i]和b[i]的维度一样
为什么使用深层表示
深度即更多的隐藏层,为什么需要这么多的隐藏层呢(输入层和输出层不算隐藏层)
深度神经网络结构:第0层即输入层,比如输入的一张图片,输入层就相当于特征提取器,假设建立20个隐藏单元的深度神经网络,隐藏单元就是图里的一些小单元,然后将照片里组成边缘的像素们放在一起看,然后它可以把探测到的边缘组合成面部的不同部分
搭建深层神经网络块
上面是正向传播,下面是反向传播
参数VS超参数
参数:比如W,b
超参数:比如α(学习率),梯度下降法循环的数量,隐层数L,隐藏单元数(n[0],n[1],n[2]……),激活函数的选择 ——>这些数字实际上是由我们自己设置的,并且会影响参数W和b的值,所以称为超参数
如果无法确定选择什么α,可以先用不同的α来测试cost的大小,找到最适合的α
测试
【★】The deeper layers of a neural network are typically computing more complex features of
the input than the earlier layers. (神经网络的更深层通常比前面的层计算更复杂的输入特征。)
使用浅网络电路计算函数时,需要一个大网络,因为浅网络的表达能力有限,需要更多的神经元来拟合复杂的函数。但是使用深网络电路来计算它,只需要一个指数较小的网络,因为深网络可以通过多层的结构来学习更高层次的特征和抽象,从而减少了神经元的数量。 深网络和浅网络的区别可以类比于人类的大脑。人类的大脑通过多层的神经元来处理信息,从低级的特征到高级的概念。例如,在视觉系统中,第一层神经元可以检测边缘和线条,第二层神经元可以检测形状和纹理,第三层神经元可以检测物体和场景等等。这样,人类可以通过多层的抽象来理解复杂的视觉信息。如果只用一层神经元来处理视觉信息,那么就需要非常多的神经元来覆盖所有可能的输入情况,而且无法捕捉到高级的特征和抽象。这就像用一本书的封面来理解书中的内容一样,是不够的。
深度学习week1_4
install_url to use ShareThis. Please set it in _config.yml.


