神经网络分为学习和推理。
神经网络就是将输入变换为输出,类似函数作用。
1 神经网络的推理
结论:箭头有权重,还要加上偏置(不受前一层神经元影响的常数),该图为2层神经网络
结论:其实就是矩阵相乘,注意权重和偏置以及对于维度。
mini-batch:小批量同时对多笔样本数据进行推理和学习。
sigmoid函数:非线性激活函数,增强神经网络的表现力,接收任意大小的实数,输出0~1的实数
例子:
1.1 层的类化及正向传播的实现
正向传播:从输入层到输出层的传播
反向传播:与正向传播相反的顺序传播数据(梯度)
代码规范:
2 神经网络的学习
2.1 损失函数
损失:神经网络学习的指标,基于监督数据(学习阶段获得的正确的数据)和神经网络预测的结果,将模型的恶劣程度作为标量(单一数值)计算出来
交叉熵误差:多类别分类的神经网络的损失函数
softmax函数:
交叉熵误差:
2.2 导数和梯度
神经网络的学习目标是找到损失尽可能小的参数。
其实就是求偏导。
深度学习中的梯度一般定义为关于矩阵和张量的导数。
2.3 链式法则
链式法则就是符合函数求导法则,跟我们高数学得一个意思。
神经网络是由多个函数复合而成的。误差反向传播法会充分利用链式法则来求关于多个函数(神经网络)的梯度。
2.4 计算图
2.4.1 乘法节点
2.4.2 分支节点
分支节点也称为复制节点。
它的反向传播是上游传来的梯度之和。
2.4.5 repeat节点
复制N份,反向传播是N个梯度求和。
2.4.6 sum节点
sum节点是通用加法节点;sum节点的反向传播将上游传来的梯度分配到所有箭头上。
sum节点和repeat节点存在逆向关系。
2.4.7 matmul节点
矩阵乘积
2.5 梯度推导和反向传播的实现
2.5.1 sigmoid层
2.5.2 affine层



2.5.3 softmax with loss 层


2.6 权重的更新



3 使用神经网络解决问题
3.1 螺旋状数据集
3.2 神经网络的实现
已用下面的trainer类便捷实现。
3.3 trainer类
4 计算的高速化
4.1 位精度

4.2 GUP(CuPy)
