线性回归、线性分类和感知机

深度学习可以基于Python编程进行学习,在学习线性分类、感知机和BP算法之前,我们先构建一下ubuntu中的编程环境,即下载好pytorch包。

首先需要有anaconda,假设conda已经可以用了。

接下来下载Pytorch,因为我的电脑GPU版本过低,我选择下载CPU版本。

在终端输入:

conda create -n zjpytorch python3.9           #这里zjpytorch是我自己设定的环境名
conda activate zjpytorch            #进入环境(终端前面已经是zipytorch了)

进入pytorch官网,再选择完之后:

根据指令输入到终端,这样就完成了下载,值得注意的是:动手学深度学习里面有个2dl包,这是官网pytorch包里面没有的,因此后续我又加了个install 2dl命令。

  1. 线性回归与线性分类

线性回归,即我们认知中的线性拟合曲线,对于一组有限数据集,当输入和输出是一维且输入输出关系近似满足线性的时候,我们可以拟合一条曲线去估计对于未知输入的输出值。但是,线性回归方程是不唯一的,所以这里就有一个最优化的问题,定义一个损失函数:

当这个函数最小时,得到最优的权值,此时得到的线性回归方程最好。机器学习就是不断的学习得到最优的权值,来预测结果。

不同于线性回归,线性分类是透过特征的线性组合来完成分类决定以达到分类的目的,如图,图中有两种类别,通过机器学习构建一个直线(二维)或者平面以及超平面(三维以上)来分类。

总的来说,线性回归是回归一个具体值,线性分类是输出属于某类的概率。因为得到的是概率,为了方便看出结果,使用一种Sigmoid函数作为激励函数,使最终的概率再(0,1)分布。线性分类也可能产生很多平面,为了获得最优解,利用到了梯度下降法更改权值,感知机模型就是用来解决线性分类问题的。

  1. 感知机模型

感知机是神经网络和支持向量机的基础。利用它可以解决线性分类问题。参考点到直线的距离公式,运用到多维空间,分类面为超平面,则有:

感知机通过一种符号函数,将a类输出为1,b类输出为-1。对于某一分类面:

因此可以定义一个损失函数:

感知机学习,即在迭代中算出合适的权值,保证所有样本都被正确分类,迭代过程如下图:

这里更新权值的办法,在我的理解下是将分类直线或者分类超平面沿着该数据点平移,直至分类成功,再依次沿着其他误分类点,因为每次的方向向量不同,经过n此迭代可以得到分类平面。不过这与步长的选择有关,步长小,迭代次数多,花费的时间多;步长大,但是可能得不到最优解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值