神经网络与深度学习第一周学习

本周学习内容如下:

1.线性回归

定义:利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归(linear regression)可以追溯到19世纪初,它在回归的各种标准工具中最简单而且最流行。线性回归基于几个简单的假设:首先,假设自变量x和因变量y之间的关系是线性的,即y可以表示为x中元素的加权和,这里通常允许包含观测值的一些噪声。

关键因素:标注好的训练集数据。线性回归问题是为了找到变量之间的关系的问题,而变量之间的关系就是这些变量之间构建的模型的权重w。所以线性回归问题就是在已经标注好的数据集中如(x1,y1),(x2,y2)……中通过机器学习的方法学习到变量之间的关系w,之后使用构建的模型取预测新的输入数据的结果。如下图所示。

2.线性二分类问题

线性二分类问题是在线性回归的基础上的应用。当我们已经通过训练集实现了变量之间的线性回归,线性二分类问题就相当于给出x然后通过线性回归得到的模型去估计y。y可以取0,1。但是此时的y值是一个数值,并不是分类问题所期待的概率。因此引入了sigmoid函数,如下所示

来将得到的y值转换为概率。线性二分类问题也可如下图来直观明了的表示。

二.前向神经网络

 神经网络是由众多神经元按照一定的网络结构连接而成的。多层感知机由多个全连接层堆叠而成。如下图所示。

神经网络是用来解决现实生活中难以解决但是又不得不解决的非线性问题的。神经网路之所以具有非线性拟合的能力是因为每一层的输出均需进行经过非线性的激活函数,如sigmoid、relu、leaky函数等。relu函数如下图所示

 

给前向神经网络一个输入数据,经过神经网络的前向传播能够得到一个输出。这个过程就是前向传播,也是我们训练神经网络的目的,即实现神经网络对输入数据的推理。

但是神经网络如何得到正确的连接权重呢,这就是需要进行神经网络的训练来使其学习训练数据的特征。

BP算法是最经典的神经网络训练方式。在有监督的模型中,即所有的训练数据均已被标注好,也就是已知训练数据的真实属性,通过神经网络对训练数据进行前向推理,得到一个训练数据的推理结果,然后如果神经网络的训练不足,极大可能就会将数据推理错误,那么训练数据的推理结果与真实结果之间就会存在差异,这个差异通常使用损失Loss来表示。当神经网络训练的较好时,对训练数据的推理结果就和数据集的标注一致,则此时损失loss就较少。损失函数有很多类型,常用的一种例如交叉熵损失。如下图所示

损失函数不仅可以当做一个神经网络的训练程度的评价标准,即当一个网络的训练很好时,Loss就会很低。同时Loss在网络的训练过程中也十分重要。误差反向传播算法即BP算法就是利用误差Loss关于连接权重w进行求取梯度。之后将权重w朝着促使Loss下降的梯度方向进行更新,以使得整个网络得到训练。但是直接使用BP算法可能会导致网络权重陷入局部最小值而不是全局最优值。因此提出了其他的优化方法

如动量法,自适应优化器等。

动量法是在进行权重w的更新的时候不仅仅考虑当前时刻的梯度方向,还要考虑前一时刻的梯度方向。这一思想如同物理学中的动量的概念,即物体在朝着一个方向存在速度v时,不能直接不考虑前面的v要素。

 

自适应优化器则是因为深度学习模型中往往涉及大量的参数,不同参数的更新频率往往有所区别。对于更新不频繁的参数(典型例子:更新 word embedding 中的低频词),我们希望单次步长更大,多学习一些知识;对于更新频繁的参数,我们则希望步长较小,使得学习到的参数更稳定,不至于被单个样本影响太多。具体做法如下。

下面为多层感知机的pytorch搭建代码

net = nn.Sequential(nn.Flatten(),#变成二维
                    nn.Linear(784, 256),#线性层
                    nn.ReLU(),#ReLu的激活函数
                    nn.Linear(256, 10))#输出

def init_weights(m):
    if type(m) == nn.Linear:
        nn.init.normal_(m.weight, std=0.01)

net.apply(init_weights);
 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值