从线性回归到神经网络

背景:一直想要梳理一下本身对广义线性模型的认识及思考,全部就有了这篇随笔。html

前提算法

一、首先明确,介绍模型会按照模型的三要素来展开,即模型(模型的参数空间),策略(如何选择最优模型,通常指代价函数/损失函数),算法(模型学习参数的方法,包括最优化方法等)网络

二、由于介绍的模型都是线性模型及其演化,有个概念必需要介绍机器学习

超平面:N维空间的N-1维子空间,好比当N=2时,超平面就是二维空间中的一条线函数

 

1、线性回归学习

该算法主要拟合一个线性超平面,用于回归任务(预测值为连续值)。举个例子,房价预测任务,若是只考虑房屋面积,则训练出的超平面及为二维空间关于面积和房价的直线。优化

模型:spa

若样本用d维特征来表示,则有.net

 

使用向量的形式表示为3d

 

 则模型的参数空间为w及b

 

策略:

 

 最小化均方偏差

 

算法:

这里有两种方法,

一种方法是算出参数的表达式,直接求解(该方法通常不使用,缘由随着特征或者样本数量增加,计算的时间复杂度指数级增长),以下

 

 

 

 

 

 

 另外一种方法是最优化理论中的迭代方法,最经常使用的是梯度降低法,参数经过加上负梯度进行更新,

求梯度

 

 使用梯度对参数进行更新(这里使用的是批梯度降低算法)

 

 

问题:当目标变量与特征之间为非线性关系,咱们又该怎样去拟合呢

 

2、多项式回归

思路以下图所示

 

 模型总体和线性回归类似,因此这里不展开讨论

 

问题:线性回归能够解决回归问题,那针对分类问题,咱们应该怎样用线性模型去解决呢?

 

3、感知机

线性回归在N维空间中找到了线性超平面去拟合数据,同时,该线性超平面也把特征空间划分红了两份,据此,咱们能够思考,这个超平面能够拿来进行分类吗?固然能够,感知机就是这样作的。

 

模型:

 

 咱们能够看到,感知机就是使用sign函数对线性回归结果映射到了{-1,1}

 

策略:

 

 

算法:

 

 

 

 

问题:感知机能够用于分类,且可以输出预测样本对应的类别,但清楚感知机原理的咱们知道,虽然有可能N个样本都被预测为A类,但实际他们属于A类的可能性是不一样的,具体表如今有的样本点在特征空间中距离分类超平面比较近,有的则比较远;鉴于此,咱们能不能输出某样本属于A类别的几率呢?

 

4、逻辑回归(logistics regression)

 

模型:

感知机使用线性回归模型做为分类超平面,将线性回归结果映射到{-1,1}的离散集合上

 

 其中红框的值域为负无穷到正无穷,那咱们能不能使用一个函数将其映射到[0,1]呢。逻辑回归即是选择了sigmoid函数进行映射,

 

 

 

 该函数既能够实现区间映射,又具备单调可微的特性(方便使用迭代的最优化方法计算模型参数)

另外,对于“逻辑回归”的名字,不少人以为这是个“假名”,“误导人”,认为它明明是分类算法却叫作“回归”

其实,他还真的和名字所述,是对“对数”进行了“回归”

上一个公式能够变化为

 

 定义y/1-y为事件发生的“概率”,则逻辑回归的是指是对概率的对数进行回归拟合。

 

策略:

采用极大似然估计

 

 

算法:

因为目标函数连续可导,根据凸优化理论,能够经过一阶法(梯度降低等)或二阶法(牛顿法)等进行参数迭代计算

 

 

问题:对于分类任务,感知机和逻辑回归都只能处理线性可分的任务,那如何才能处理线性不可分的任务呢?并且按照以前支持向量机迭代求解分类超平面的方式,咱们只是在众多的符合条件的分类超平面中选择了一个,那可否选择一个相对更好一些的分类超平面呢?

 

5、支持向量机(SVM)

支持向量机经过如下思路解决了上述问题:

(1)针对分类超平面的选择问题,SVM采用最大间隔的方法,使超平面距离两侧不一样类别的点尽量地远

 

 

(2)针对在当前维度的特征空间下线性不可分的问题,咱们对其进行维度扩张,在更高的维度对其进行线性划分。在当前维度线性不可分不表明在更高维度线性不可分。举个例子,演员拍摄吻戏常常采用错位的方式,在镜头所能看到的二维平面中,找不到一条直线将他们的嘴分割开来,但考虑三维空间,在一个现场工做人员看来,有大量的可选平面将他们两人的嘴分开。再好比下图中的异或问题

 

 

 

 接下来又有另外一个问题,咱们已经用高维向量计算表示出了最大分类间隔,那怎样去表示具体的高维向量呢,考虑到维度可能会很高,计算复杂度可能会很大,咱们能够采用核函数来进行等价计算

 

 

 

 支持向量机的核心就是以上两点,更多细节能够看一下其余的博客或书籍,篇幅缘由再也不展开

 

问题:除了SVM以外,还有其余方法能够解决线性不可分问题吗?

 

6、神经网络

神经网络经过特征之间的组合(多层),不只可以解决线性不可分问题,还可以保留数据的时空结构(有位置关系的图像数据和有时间前后关系的天然语言),再该类数据集上表现出强大的应用能力。

总之,当前kaggle上表现最好的两类算法,梯度提高算法更加适合于表格类型结构的数据,须要进行特征工程,对少许样本也能学习到较好的模型;神经网络更加适合有时空结构的数据,不须要复杂的特征工程,是端对端的学习,但须要大量的训练数据做为支撑。

我的认为神经网络的强悍之处在于对时空数据的保留与学习能力+无处不在的特征组合。

 

 

 

神经网络具体内容略多,不展开啦,本文重点梳理思路。

 

 

参考:

https://www.cnblogs.com/huangyc/p/9706575.html
https://blog.csdn.net/qq_36523839/article/details/82924804

李航-统计学习方法

周志华-机器学习

相关文章
相关标签/搜索