【3.1 神经网络概览】
如何实现一个神经网络?
注:
x表示输入特征,参数W和b,
中的[1]表示神经网络的“层”,表示与节点相关的量,区分的(i)-表示单个训练样本。
把很多个sigmoid单元堆叠起来构成一个神经网络,节点对应类似z和a的计算。
也可进行反向计算。
【3.2 神经网络表示】
例:
单隐层神经网络,也称双层神经网络(输入层为第0层)
- =x可表示输入层,a"激活“;
- 为隐藏层,隐藏层中的值在训练集中无法看到,本例中的是一个四维向量(矩阵形式:紫色字体),有四个隐藏层单元,
- 为输出层。
隐藏层和输入层是带有参数的
【3.3 计算神经网络的输出】
以logistic回归的结果为例:
注:
左侧:圆圈(节点)代表了回归计算的两个步骤:1.先算出z,2.然后再计算激活函数,即。神经网络就是多次重复这个计算步骤。
右侧:举例计算第一个和第二个节点的z和a。第三个、第四个节点类推,下标不同。
- 上标方括号表示所在的层数,下标表示层中的第几个节点,eg:表示第一隐层的第二个节点。
四个节点计算的相应等式如下:
如果在神经网络用for loop执行很低效,所以要把这四个等式向量化:
角标T代表转置,把 转置后的w(nx,1)堆起来构成一个矩阵,w的转置是行向量,此处的w是(3,1)向量。这层共有四个节点,所以构成(4,3)矩阵。
计算:转置堆叠后的w矩阵与x(3,1)相乘,x=,x用代替,再加。
其中, 如下图所示,相当于把函数作用到z中的每个元素。
- 向量化时的经验法则:当在一层中有不同的节点时,就纵向堆叠起来
recap:
如果有一个单隐层神经网络,需要在代码中实现的是计算右侧四个式子,是一个向量化的计算过程。上两个式子对应第一层,下两个对应第二层。四行代码实现,高效。
输入当然特征向量x,与处理logistic回归做法类似,想把整个训练样本向量化,通过把不同样本堆叠起来构成矩阵,再稍微修改一下公式,就能计算出不止一个样本的神经网络输出。
【3.4 多个例子中的向量化】
将不同训练样本向量化,输出结果和logistic回归相似。将不同的训练样本堆叠起来,放入矩阵的各列。
【3.5 向量化实现的解释】
对不同训练样向量化的神经网络,上面的四个矩阵的行表示神经元个数,列表示样本数目m。
到目前为止,我们使用的激活函数只有函数
有很多种激活函数,sigma函数知识其中的一种选择