算法笔记一:梯度下降线性回归与分类

算法构成

目前算法模型主要解决回归、分类、聚类问题。也可以通过训练数据集中有无标签分为,有监督学习和无监督学习。下面主要探讨下回归问题的一般数据表达。

【1】假设函数,即通过数学公式标准化模拟的参数与目标间的函数关系,可以理解为函数关系中的H(X)。

【2】参数,即认为会影响到目标的变量。可以理解为函数关系中的X。

【3】代价函数,即通过在相同参数下“假设函数”与“真实值”之间的差距计算得到。代价函数最小时,则拟合效果最好,但是存在过拟合问题。就是在训练集中能完全预测,但是在真实情况下预测失误率高。同时“假设函数”关系也是通过逐步缩小与代价函数的值,能逐步训练算法的。(也可以理解为求偏导,逐步梯度下降)。

【4】目标,回归问题中一般表现为缩短相同参数情况下,假设函数预测值与真实值之间的差。

图1 数学描述目标


算法目标

线性回归中,假设函数H(X)中X为变量,有真实世界中可以获取,所以只能通过改变H(X)中的参数来优化预测情况。如下图所示,简化为与两个变量相关的函数,通过不断改变和的值实现真实值与目标值之间的差值最小,即最小。


图2:目标函数可视化


将上述的图片转化为下面的等高图,可以发现必然存在和使目标函数有最小值。那么到底何时能使预测值和真实值最接近呢?

图3:目标函数等高图

梯度下降

在分析问题时,定义了目标函数、假设函数后,一定会给假设函数中参数和确定一个初始值,也即图上任意一点。我们期望改变初始值和,能前往途中的最低值的方法,类似下山的感觉,就是梯度下降,数学意义上就是导数或者偏导数。

图4:梯度下降可视化
图5:梯度下降的数学含义

上图4是一个非常理想情况的函数图像。对于比较复杂的函数,如图6所示,可能有一个全局最优解,多个局部最优解。而且参数初始值、参数学习效率改变的情况下,很可能只能取到局部最优解,而不是全局最优解。

图6:回归问题非理想情况图示


学习效率与梯度下降

学习效率的值,如果值定的太小,学习次数会增加,算法时长会上升;如果学习效率定的太大可能永远无法学习到最优解。学习效率取值可以参考,在拟合初期定个较大的值,但是在拟合后期差距逐渐减小时,学习效率也逐步降低。

图7:学习效率与梯度下降


图8:偏导数推导
图9:线性回归取到最佳拟合点

图像分类

图像分类问题,有较大的应用前景。比如内容的审核,疾病治疗,人脸识别等。本文将讲述较为简单的图像分类方法,K近邻与线性分类。

K近邻

数据有训练数据集和预测验证数据集,我们定义预测图片在训练集中取到的最近N张图片,取出占比最大的标签,即预测出图像的标签。这是一种仅仅只是记录数据就预测的方法。

图1:左侧为训练集,右侧为预测集

定义图像间距离

图像的分辨率,是指一个图片由多少个小方格组成的,分辨率越大,小方格越多,图片质量越好。

RGB,即一个小方格上的色彩,范围越大,表示每个小方格能取到的色彩越多。一般用uint8和unit16,表示的是单个像素的信息。uint8白色和黑色写成16进制是【白:0xFFFFFFFF】【黑:0xFF000000】。其他颜色举例,如【红色:0xFFFF0000】【绿色:0xFF00FF00】取值都在0-255之间。

定义图像间的距离,既然每一张图片由多个像素点构成。那么可以考虑所有像素点间的绝对值,相加即两张图片间的距离。

这种算法最大的问题时,训练时算法的复杂度为O(1),但是预测时算法的复杂度为O(n)

图2:图像间距离举例


K值会影响分类结果,K值越大分类越平滑。

图3:K值在K近邻中影响


L1距离就是刚才说的,每个像素点间绝对值的和;而L2距离则是距离开平方。参数间有区别,需要选择L1,对距离有影响;参数间没啥区别选择L2,对距离无影响。

图4:L1和L2距离不使用K近邻原因


图5:K近邻认为上图距离相同


图6:K近邻预测维问题耗时长


线性分类

参考之前的线性回归预测,线性分类的数学意义就是通过多个参数,通过线性分类器将图片分类,以下图片是二维解释,当参数更多时,可以拓展到更高维的解释。

图7:线性分类图片


线性分类是,将图片看成一维数组。每个标签有属于自己的函数表达式,然后计算出最高得分的标签,即预测的标签。

图8:线性分类数学解释


图9:多个分类器预测一张图片取最大值


线性分类的问题

线性分类无法处理,标签间相互混合的情况,如下图所示。所以就有后续的神经网络算法。

图10:线性分类存在的问题

你可能感兴趣的:(算法笔记一:梯度下降线性回归与分类)