task1 线性回归;Softmax与分类模型、多层感知机

1.深度学习基础模型
1.1线性回归模型

公式中xi表示第i个样本的数据,当我们输入X为矩阵[NXD]时,W大小为[DX1],b的大小为[Nx1],这样公式计算出的结果为[NX1],参数W被称为权重(weights)。b被称为偏差向量(bias vector),这是因为它影响输出数值,但是并不和原始数据产生关联。在实际情况中,人们常常混用权重和参数这两个术语。
下面是在学习Pytorch中遇到的的一些库的使用理解
pytorch中数据读取torch.utils.data.DataLoader的使用理解
pytorch中 nn.init 中实现的初始化函数
pytorch中nn.Sequential类

1.2softmax分类模型
Softmax的输出(归一化的分类概率)更加直观,并且从概率上可以解释,在Softmax分类器中,函数映射保持不变,但将这些评分值视为每个分类的未归一化的对数概率,损失函数为交叉熵损失(cross-entropy loss)。

softmax 函数如下:

交叉熵损失函数公式如下:

解决softmax运算的上溢和下溢问题

1.3多层感知机
如果全是线性变换的全连接层,则实际上跟单层网络区别不大,中间需要添加非线性变换函数进行处理。

1.3.1权重初始化问题
1.权重要采用小随机数初始化始话的方式,因为如果网络中的每个神经元权重都一样的话,那么计算出的都是同样的输出,然后它们就会在反向传播中计算出同样的梯度,从而进行同样的参数更新。换句话说,如果权重被初始化为同样的值,神经元之间就失去了不对称性的源头。

警告。并不是小数值一定会得到好的结果。例如,一个神经网络的层中的权重值很小,那么在反向传播的时候就会计算出非常小的梯度(因为梯度与权重值是成比例的)。这就会很大程度上减小反向传播中的“梯度信号”,在深度网络中,就会出现问题。

2.使用1/sqrt(n)校准方差。上面做法存在一个问题,随着输入数据量的增长,随机初始化的神经元的输出数据的分布中的方差也在增大。我们可以除以输入数据量的平方根来调整其数值范围,这样神经元输出的方差就归一化到1了。也就是说,建议将神经元的权重向量初始化为:w = np.random.randn(n) / sqrt(n)。其中n是输入数据的数量。这样就保证了网络中所有神经元起始时有近似同样的输出分布。实践经验证明,这样做可以提高收敛的速度。
3.批量归一化(Batch Normalization)其做法是让激活数据在训练开始前通过一个网络,网络处理数据使其服从标准高斯分布。因为归一化是一个简单可求导的操作,所以上述思路是可行的。在实现层面,应用这个技巧通常意味着全连接层(或者是卷积层,后续会讲)与激活函数之间添加一个BatchNorm层。在神经网络中使用批量归一化已经变得非常常见。在实践中,使用了批量归一化的网络对于不好的初始值有更强的鲁棒性。
4.Xavier, He initialization初始化
————————————————
版权声明:本文为CSDN博主「jhb1021821368」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jhb1021821368/article/details/104316768

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值