神经网络结构拆分理解

训练神经网络主要围绕一下四个方面:

1),多个层组合成网络(或模型)。

2)输入数据和相应的目标

3)损失函数,即用于学习的反馈信号。

4)优化器,决定学习过程如何进行。

将上述四者的关系可视化为:

多个层链接在一起组成了网络,将输入数据映射为预测值。然后损失函数将这些预测值与目标进行对比,得到损失值,用于衡量网络预测值和预测期望结果的匹配程度。优化器使用这个损失值来更新网络的权重。

一、层

神经网络基本数据结构是层。层是一个数据处理模块,将一个或多个输入张量转换成一个或多个输出张量。有些层是无状态,但大多数层是有状态的,即层的权重。权重是利用随机梯度下降学到的一个或多个张量,其中包括网络的知识。

不同的张量(张量tensor)格式与不同的数据处理类型需要用到不同的层。例如,向量数据保存在形状为(samples,features)的2D张量中,通常用密集连接层也叫全连接层或密集层来处理。序列数据保存在形状为(samples,timestamps,features)的3D张量中,通常用循环层(recurrent layer)来处理。图像数据保存在4D张量中,通常用二维卷积层来处理。

二、损失函数和优化器

损失函数(目标函数):在训练过程中需要将其最小化。它能够衡量当前任务是否已经成功完成。

优化器:决定如何基于损失函数对网络进行更新。他执行的是随机梯度下降(SGD)的某个变体。

选择正确的目标函数非常重要。网络的目的是使损失尽可能最小化,因此如果目标函数与成功完成这个任务不完全相关,那么网络最终得到的结果可能会不符合你的预期。

对于选择损失函数的一些前人经验:对于分类、回归、序列预测等常见问题,可以遵循如下的指导原则来选择正确的损失函数。

二分类问题:可以使用二元交叉熵(binary cross entropy)损失函数。

多分类问题:分类交叉熵(categorical crossentropy)损失函数。

回归问题:可以使用均方误差(mean-squared erro)损失函数。

序列学习问题:可以使用联结主义时序分类(CTC,connectionist temporal classification)损失函数。

只有在面对正真全新的研究问题是,才需要自主开发目标函数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值