在m个样本上的梯度下降

  • 先区分一下损失函数和代价函数的区别:损失函数是在单个样本上;代价函数是在多个样本上,是所有样本误差的平均,也就是损失函数的平均
  • 梯度下降:
    深度学习笔记(四)
  • 迭代公式是:w -= a*dJ(w,b)/dw
  • 在多个样本中,采用for()循环来实现,第一个for循环来实现样本数的变化,第二个for循环来实现对w,b的迭代
    深度学习笔记(四)

向量化

  • 向量化使得算法运行速度更快,来取代for()循环
  • 本质就是将标量运算转换为向量运算

使用numpy时的技巧

  • 尽量避免定义形状为(n)的向量,因为它既不是行向量也不是列向量,称为秩为1的输出组,会导致计算过程中出现奇怪的bug
  • 如:a = np.random.randn(5)

神经网络计算详解

  • 监督学习:用一组已知类别的样本调整分类器的参数,以达到所需的性能;简言之,就是输入x和y,调整w和b
  • 神经网络表示
    深度学习笔记(四)
  • 神经网络多输入计算输出的细节
    1.在单个样本的计算中,我们可以用这样的图来表示输入层,隐藏层,输出层:
    深度学习笔记(四)
    ​ 2.在多个样本的计算中,我们通常用下面的图来表示,但其实就是简单的单个样本的叠加(上标表示层数,下标表示第几个结点)
    深度学习笔记(四)
    ​ 3.多输入计算的向量化(本质就是将其堆叠在矩阵里面)
    深度学习笔记(四)
    深度学习笔记(四)

注意:w矩阵为(4,3)是因为隐藏层有4个结点,传入隐藏层的有3个值,上述表达式写出了第一层网络的向量计算式,且最终结果就为a[1];第二层同理,如下

深度学习笔记(四)

注意:当计算完隐藏层后,后面的计算相当于逻辑回归
​ 4.因此,在多输入的计算中,用四行代码就可以实现

  • 神经网络多实例计算的向量化
    深度学习笔记(四)

注意:a[2](i)中2表示第几层,i表示第几个实例

1.在多实例计算中,我们会将x堆叠成(n(x),m)的矩阵,m为实例数,n(x)为输入x数
2.在将输入X,Z,A都堆叠之后,我们得到的计算式如下:


深度学习笔记(四)
3.为了更加详细的解释一下堆叠的过程,在此举三个实例的例子
深度学习笔记(四)

在此就结束了对两层神经网络计算的解释,在更深层的神经网络中,也只是在重复这些步骤

相关文章: