多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式

前言

大一的时候,线性代数老师问我们:“你们觉得《线性代数》这门课程重要,还是《数学分析》这么课程重要?”(背景是《数学分析》第一学期是6个学分,《线性代数》第一个学期是4个学分,从GPA加权来讲,自然是前者更重要一些,估计老师因为这个固有此问。)老头缓缓自答到:“从各行各业参加工作的情况来讲,《线性代数》用得更多一些。”至今,仍然对他从代数方法和空间方法两种方式讲述线性代数映像深刻。在CFD领域,无论是有限元或是间断有限元或是其他数值方法,很多时候最后都归结为 Ax = b 这么一个问题,当中涉及到的公式推导也多是矩阵运算。

上一篇博客(多层神经网络,从零开始——(三)BP神经网络公式的详细推导
)推导了单个隐藏层的神经网络的公式,在许多机器学习相关的书籍中都可以看到,公式比较简单,也很容易编程实现,但是却不容易推广到多层。

本编博客将推导多层神经网络的公式,并表示为矩阵形式,使得编码实现更为容易。(PS:没有自动梯度工具就是这么惨,公式全要推导。)

多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第1张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第2张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第3张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第4张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第5张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第6张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第7张图片
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式_第8张图片

附录

多层神经网络,从零开始——(一)、Fortran读取MNIST数据集
多层神经网络,从零开始——(二)、Fortran随机生成“双月”分类问题数据
多层神经网络,从零开始——(三)、BP神经网络公式的详细推导
多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式
多层神经网络,从零开始——(五)、定义数据结构
多层神经网络,从零开始——(六)、激活函数
多层神经网络,从零开始——(七)、损失函数
多层神经网络,从零开始——(八)、分类问题中为什么使用交叉熵作为损失函数
多层神经网络,从零开始——(九)、优化函数
多层神经网络,从零开始——(十)、参数初始化
多层神经网络,从零开始——(十一)、实现训练类
多层神经网络,从零开始——(十二)、实现算例类
多层神经网络,从零开始——(十三)、关于并行计算的简单探讨

你可能感兴趣的:(多层神经网络,从零开始——(四)、多层BP神经网络的矩阵形式)