深度学习之pytorch(二)

接下来从机器学习最简单的线性模型入手
线性模型就是***给定很多个数据点,希望能够找到一个函数来拟合这些数据点使其误差最小,比如最简单的一元线性模型***
在这里插入图片描述
一般函数表示的形式是:
在这里插入图片描述
而也可以用向量的形式表示:

f(x)=wTx+b

一维线性回归
首先介绍一下,均方误差:使用他们的差值平方之和,(取平方是因为把有正有负的距离都变成正的),有着很好的几何意义,对应了常用的欧几里得距离,基于均方误差最小化来进行模型求解的办法。
求解方法就是让其偏导数等于0,从而估计它的参数。

多维线性回归
用最小二乘法对w和b进行评估,其中也是需要进行矩阵的运算和求导操作。
在这里插入图片描述
多项式回归:
由于之前一些拟合出一条直线的函数精度欠佳,所以需要考虑多项式回归,也就是提高每个属性的次数,而不是只使用一次去回归目标函数,但是原理还是一样的,只不过这里用的是高次多项式而不是简单的一次线性多项式

分类问题
在监督学习中,主要就是回归问题和分类问题,之前的回归问题是希望预测结果是连续的,而分类问题的话预测的结果就是离散的类别。这个时候输入的变量可以是离散也可以是连续的。

分类的过程就是:监督学习从数据中学习一个分类模型或者分类决策函数,在用这个数据对新的输入进行输出预测。

有一个最著名的二分类算法——logistic回归
首先是logistic分布
他们的分布函数和密度函数是:
在这里插入图片描述
同理他的函数表达式是:
在这里插入图片描述
而由于函数很像“S”形,所以函数又叫做Sigmoid函数。

二分类的Logistic回归
他的目标就是找到一个区分度足够好的决策边界,是一个感知机的过程,通过决策函数的符号来判断属于哪一类,而logistic更进一步,通过找到分类概率P,与输入变量x的直接关系,然后通过比较概率值来判断类别。

简单的多层全连接前向网络
在神经网络的计算模型中,输入信号就是输入数据,模型的参数就相当于突出,然后输入信号传入神经元就像是输入的数据和模型参数进行线性组合,然后经过激活函数,最后传出模型。

激活函数
1.sigmoid函数
作用就是讲一个实数输入转换到0-1之间的输出,具体来说就是将越大的负值转换到靠近0,越大的正数转换到越靠近1。
但这个函数两个缺点:
1.会造成梯度的消失:在靠近1和0的两个端点的时候,梯度几乎变成0.
2.输出不是以0为均值的,所以导致经过他激活的函数输出之后,作为后面一层网络的输入的时候是非0均值的,而这个时候如果输入进入下一层神经元的时候全是正的,会导致梯度全是正的,而更新参数的时候永远都是正的。

2.Tanh函数
他相当于是sigmoid函数的变形,将输入的数据转换到-1-1之间,但是仍然存在梯度消失的问题,不过解决了第二个问题(以0为均值),所以会比之前那个函数要好

3.relu函数
这个函数在近些年变得越来越流行,他的数学表达式是f(x)=max(0,x),也就是简单地将大于0的部分保留,将小于0的部分变成0.
在这里插入图片描述
它的优点就是
1.相比较于之前的,他能极大的加速随机梯度下降法的收敛速度,因为他是线性的,不存在梯度消失的问题
2.相比较于之前的,他的计算方法更加的简单,只需要一个阈值过滤就可以得到结果,而不需要进行一大堆复杂的运算。

他的缺点是:
训练的时候很脆弱,比如一个很大的梯度经过这个函数,更新参数之后,会使得这个神经元不会对任何数据有激活现象。

4.leaky relu函数
他是relu激活函数的变式,主要就是为了修复ReLU激活函数中训练比较脆弱的这个缺点,不将x<0的部分变成0,而给它一个很小的负的斜率。

5.Maxout函数
他的优点是ReLUj激活函数的优点,同时也避免了ReLU激活函数训练脆弱的缺点,但是也有一个缺点,就是加倍了模型的参数,导致模型的存储变大。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值