Neural Networks and Deep Learning 第四周

什么是深度神经网络

神经网络的个数是隐藏层+输出层,输入层不计入。

对于这个只有单个神经元的网络,single neural network,我们称之为浅层(shallow)神经网络;

隐藏层5个,输出层一个,所以这个神经网络一共是6层,称之为深度神经网络。

符号表示:


L代表神经网络的个数,上面按个就有6层神经网络,所以L=6。

n^[l]代表在第l层神经网络中,有多少神经元个数。注意,输入层是n[0]=nx

a[l]代表在第l层神经网络中,所使用的激活函数。

w[l]代表在第l层神经网络中,计算中间函数z时所使用的权重。b是偏置。

在深度神经网络中的前向传播(forward propagation)

对于每一层单一的前向传播,有一个通用公式:


那么,对于每一层那么多个神经元的前线传播,有没有一个向量化的表达方式呢?


这是课时的例子,为了很好地理解矩阵变换,我写的更加透彻一些。

假如第一层n[1] = 4, 那么,就有四个神经元,每个神经元的W不同,b不同,传入a[0]后,第一个神经元的结果是z[1][1],第二个是z[1][2],第三个是z[1][3],第四个是z[1][4],那么,将他们水平排列,得到一个大写的Z,大写Z的维度是(1,n0)(n0是前一层神经元的个数,因为你要给每一个都配参数w,所以w.dot(x)中,w是(1,nx),b是(1,n0);那么,A[1]也就是相同的维度,每个神经元是列向量,将每个神经元横向排列;数据以(1,n1)的维度传入L[2];

在深度学习中得到正确的维度

前行乘以后列。


x1,x2是矩阵的特征数,是2;那么,每层的神经元就是特征,比如,第一层有三个神经元,就是三个特征;当有m个样本时,也就是X = [[x11,x21],[x12,x22]],这里的特征是纵向的,因为每个样本是列向量,那么样本之间就是横向堆叠;好了,那么,假设有三个样本,那么,X = (2,3) 2是特征数,x1,x2,3是样本数,每个样本都有x1,x2;

好了,样本传到了第二层,X = (2,3),由WX可知道,W的列一定是=2的,所以w=(n[l], n[l-1]);点乘之后,wx = (n[l], 3);b由于广播效应,(n[l],1) 会应用在z的每一列,变成(n[l],3);那么,Z就是(n[l],3)了。所以,z,a都会由于样本个数的变化而变化。


Why deep representations?

为什么需要deep learning?也就是deep learning存在性的问题。为什么不做一个单层的训练模型就可以了?有几个例子:

  1. 图像识别
    图像识别的思路很有意思。layer 1是检测出图片的边缘,然后layer 2将这些边缘组合起来,组成人脸的局部的特征;layer 3把他们都组合起来,变成一张张人脸。那么,如果里面多加一层,比如加在layer 2之后,是将局部特征组合成一半的脸的特征,这样复杂度会减少,并且准确率也会变高。
  2. 语音识别
    浅层的神经元能够检测一些简单的音调,然后较深的神经元能够检测出基本的音素,更深的神经元就能够检测出单词信息。神经网络从左到右,神经元提取的特征从简单到复杂。特征复杂度与神经网络层数成正相关。特征越来越复杂,功能也越来越强大。
  3. 减少神经元个数,减少计算量
    对于n个样本,如果你仅仅用一层,也就是输出层来训练,那么,
    神经元个数是指数型增长 n^[L] = 2^(n-1)
    使用电路理论,对于这个逻辑运算,如果使用深度网络,深度网络的结构是每层将前一层的两两单元进行异或,最后到一个输出。这样,整个深度网络的层数是log2(n),不包含输入层。总共使用的神经元个数为n-1个。
  4. 不好懂,原理其实就是神经网络的个数和处理样本的逻辑有关系,也和减少神经元个数有关系。

Building blocks of deep neural networks


每一层的正向传播和反向传播。

Forward and Backward Propagation

首先回顾下正向传播的流程:

对于L层,输入是L-1层激活函数的输出值a[L-1];输出是L层的激活函数的输出值a[L];并且将该层Z[L],W[L],b[L]的值存入变量中。在该层中,Z[L] = W[L].dot(a[L]) +b[L],每一个a[L-1]层中的神经元都给了不同的权重并输出;然后输出结果再用L层的激活函数计算。

向量化表示

对这里不熟悉,就要不厌其烦的重新梳理,反馈。那么,

  • 假设输入的A[0]是nx个特征值,8个样本,A向量的维度是(nx,8);
  • 输入第一层,W.dot(A[0])需要成立,W的维度是(n[L],nx(n[L-1])), WA的维度是(n[L],8);Z的维度是(n[L],8),这个Z代表有8个样本,每个样本都是n[L]维度的列向量。

借用一下别人总结的,我觉得非常好。


Parameters vs Hyperparameters

参数和超参数


What does this have to do with the brain?

人脑神经元的结构和处理方式要复杂的多,神经网络模型只是非常简化的模型。人脑如何进行学习?是否也是通过反向传播和梯度下降算法现在还不清楚,可能会更加复杂。这是值得生物学家探索的事情。也许发现重要的新的人脑学习机制后,让我们的神经网络模型抛弃反向传播和梯度下降算法,能够实现更加准确和强大的神经网络模型!





猜你喜欢

转载自blog.csdn.net/gaoyishu91/article/details/80464518