实现方法和步骤:
该方法称为随机梯度下降法(stochastic gradient descent),由于
- 取样,利用mini-batch,在训练数据中取样,数量过多,可以采用批量化随机抽取,其中以下使用的方法有平均化(正规化) 目标是减少损失函数的数值
- 计算梯度→表示损失函数的值减少最多的方向
- 更新参数:将权重参数沿梯度方向进行微小的更新
- 重复上述1、2、3步,之后得到在一定范围内损失函数最小的理论真值,从而获得相对准确的权重W和偏置b,特别提醒:权重和偏置往往不是一个数,而是一个数组形式表示的数据集合。
目标:求出最优解
self.W = np.random.randn(2,3)#表示用高斯分布进行初始化取值,取值范围在2~3之间
超参数:指的是学习率取<1的随机数
过拟合是指,虽然训练数据中的数字图像能被正确辨别,但是不在训练数据中的数字图像却无法被识别的现象。
epoch是一个单位。一个 epoch表示学习中所有训练数据均被使用过一次时的更新次数。
计算图的优点是,可以通过正向传播和反向传播高效地计算各个变量的导数值。计算图通过未知的结果推到相关的瞬间变化量。
1、 ReLU层
2.Sigmoid层
3、Affine层:神经网络的正向传播中,为了计算加权信号的总和,使用了矩阵的乘积运算
Y=X ·W+B
np.sum()对第0轴(以数据为单位的轴,axis=0)方向上的元素进行求和
4、Softmax-with-Loss 层
考虑到这里也包含作为损失函数的交叉熵误差(cross entropy error),所以称为“Softmax-with-Loss层”。
神经网络中进行的处理有推理(inference)和学习两个阶段。神经网络的推理通常不使用 Softmax层。比如,用图 5-28的网络进行推理时,会将最后一个 Affine层的输出作为识别结果。神经网络中未被正规
化的输出结果(图 5-28中 Softmax层前面的 Affine层的输出)有时被称为“得分”。也就是说,当神经网络的推理只需要给出一个答案的情况下,因为此时只对得分最大值感兴趣,所以不需要 Softmax层。
不过,神经网络的学习阶段则需要 Softmax层。
经常会比较数值微分的结果和误差反向传播法的结果,以确认误差反向传播法的实现是否正确。确认数值
微分求出的梯度结果和误差反向传播法求出的结果是否一致(严格地讲,是非常相近)的操作称为梯度确认(gradient check)。
1.Momentum
class Momentum:
def __init__(self, lr=0.01, momentum=0.9):
self.lr = lr
self.momentum = momentum
self.v = None
def update(self, params, grads):
if self.v is None:
self.v = {}
for key, val in params.items():
self.v[key] = np.zeros_like(val)
for key in params.keys():
self.v[key] = self.momentum*self.v[key] - self.lr*grads[key]
params[key] += self.v[key]
实例变量v会保存物体的速度。初始化时,v中什么都不保存,但当第一次调用update()时,v会以字典型变量的形式保存与参数结构相同的数据。
2.AdaGrad
class AdaGrad:
def __init__(self, lr=0.01):
self.lr = lr
self.h = None
def update(self, params, grads):
if self.h is None:
self.h = {}
for key, val in params.items():
self.h[key] = np.zeros_like(val)
for key in params.keys():
self.h[key] += grads[key] * grads[key]
params[key] -= self.lr * grads[key] / (np.sqrt(self.h[key]) + 1e-7)
3.Adam
集成学习、学习率衰减、Data Augmentation(数据扩充)等都有助于提高识别精度。
偏向0和1的数据分布会造成反向传播中梯度的值不断变小,最后消失。这个问题称为梯度消失
资料:
1.Batch Normalization 的算法
2.VGG是由卷积层和池化层构成的基础的CNN:VGG中需要注意的地方是,基于3×3的小型滤波器的卷积层的运算是连续进行的。重复进行“卷积层重叠2次到4次,再通过池化层将大小减半”的处理,最后经由全连接层输出结果
3.物体检测、物体识别、 图像分割
4.一个基于深度学习生成图像标题的代表性方法是被称为NIC(Neural Image Caption)的模型:NIC由深层的CNN和处理自然语言的RNN(Recurrent Neural Network)构成。RNN是具有循环连接的网络,
经常被用于自然语言、时间序列数据等连续性的数据上
5.A Neural Algorithm of Artistic Style
6. DCGAN(Deep Convolutional Generative Adversarial Network)
7. 自动驾驶
8. Deep Q-Network(强化学习)