机器学习虾扯淡之线性回归No.39

今天晚上,整理了一下线性回归的完整的数学推导过程以及应用。

0x00甩定义

首先什么是线性回归?

就是面包屑嘛,我们跟着一个一个面包屑走,然后duang~~在脑里脑补出一条路,然后预测下一个面包屑的位置。

"鲁迅曾经说过:世界上本没有路,走的人多了也就成了路,因为草长不起来。"

鲁迅:我没说过这句话。

线性回归就是要找出这条笔直的路,来拟合数据,然后预测未来。

“JoeJoe老师你这图好丑啊”

“你信不信我疼你一百次啊?!!”

假设我们有N个面包屑。N等于5.

小一 ( x1 , y1 )

小二 ( x2 , y2 )

小三 ( x3 , y3 )

小四 ( x4 , y4 )

小五 ( x5 , y5 )

怎么找到这条路呢?

思考人生ing。

去他妈的思考人生。

啊啊啊啊,找路要紧找路要紧。

好了,就决定这条线,就

f(x) = wx + b

完美!!!完美符合一切情况。

(本文完)

等等等等,啥玩意叫完美符合一切情况?这尼玛啥也没干啊等于。w是几啊?b又是几啊?bbbbb就你bb。

好嘛。。

那我们肯定是误差越小越好,越符合情况越好啊。搬出小学课本查了查,嗯,最小二乘法。

简单来说,就是尽量让直线上预测的点跟实际的点欧拉距离最小。

啥玩意叫欧拉距离啊大蕉,你能不能别卖关子了?

就是我们现在所有说的空间距离,都是欧拉距离,比如,大蕉和小蕉,距离只有1毫米,这样。

也就是要这样。

L(w,b) = ∑ ( f(x) - y )^2

使上面这个值最小。

喔!!!!!我知道了,那这样就可以让曲线完美符合了。

知道你个大头鬼啦!!

作为一个小学生,我知道上面这个是一元二次方程,我直接抛物线求最小值就可以了。完美。

但是吖,我们生活中,遇到的可不仅仅是一元二次吖,可能是N元N次啊,你怎么求?

0x01求最优解

今天只介绍一种解法,就是梯度下降法。

我们定义一个学习率,也叫步长就是每一次走的步伐,步子大了会扯到什么你们自己知道的,我们叫做 α 。首先随便初始化一个w和b。

L(w,b) = ∑ ( f(x) - y )^2 = ∑ (wx + b - y) ^ 2

上面这里x和y都是已知的定值,所以直接代进去就可以求啦。

然后我们分别对w和b求导。

d(w) = dL / dw

d(b) = dL / db

然后令w = w - α * d(w) , b = w - α * d(b)

每次挪一步每次挪一步,总结找到一个局部最小值的,至于能不能找到全局最小值呢?

看运气,步子不要太大,不扯到,有可能可以喔。但是步子大了,又可能跳出局部最小值,找到另外一个局部最小值喔,万一找到了呢?

这里会有三种模式,上面说的是Batch - Gradiant Descent,批量梯度下降,也就是每次把所有的值都代进去算一遍。

第二种是 Stochastic - Gradiant Descent。随机梯度下降,每一次只代入一个值。随机算法随机解,解到哪里算哪里。

还有一种折中算法 Mini-Batch Gradiant Descent。小批量梯度下降。每次代入一小批,然后算一下。

第三种其实是最常用的。第一种把耗时太长,第二种吧太随机了。第三种,马马虎虎,多算几次还是能算好的。

谁叫人丑就要多学习呢?

0x01核函数

有时候我们会发现,这他妈直线哪能描述我的想法啊?不行,我要换,换换换。

我们可以这样,用一个叫核函数的东西,把低维的东西,映射到高维上。

map ( x , y ) => exp ( x , y)

啥叫映射呢?就是我们反过来想。

你关上灯,然后拿起小电筒,照在墙上。

墙就是你这束三维的光在墙这个二维面上的投影。

反过来,我们人脑也可以用一个映射,把这个小投影,还原想象成这束三维的光。

哈?你问我这样做有什么用?

比如说,桌子上猪肉中间有一小块肥肉(二维问题),你要把他挑出来(分类),只能切一刀,还只能切直线,咋办?

机智的小蕉,会把猪肉提起来(变成三维的),然后横着一切,完美。最中间的肥肉就飞了飞了。

从分类来说。

有线性核,多项式核,高斯核,径向基核。

越复杂的核函数,越容易过拟合喔,小心为妙。

0x02正则化

我从两个方面来说这个东西吧,分别是防止过拟合要怎么办?以及为什么这样能防止过拟合。

好了,怕过拟合,咋办?加正则项咯。有这三种,可以单独用也可以打组合拳。

L0 = ||w||0 使得参数非零的个数最小

L1 = ||w||1 使得参数的绝对值的和最小

L2 = ||w||2 使得参数的平方的和最小

这三个都可以防止过拟合,但是L0比较难受,是一个NP-Hard问题,所以一般都用L1或者L2。

好那我们要使得

||w|| <= C 也就是 ||w|| - C <= 0

C是某一个常数。这样怎么去求解呢?

拉格朗日乘子法。

不熟悉的小朋友自行度娘,简单来说就是把约束条件也丢到损失函数里边。

所以损失函数就变成了

L(w,b) = ∑ ( f(x) - y )^2 - λ * (||w|| - C)

然后跟上面一样去求最小值就可以啦。

下面这些听起来很炫酷的算法,其实就是加正则项啦

Lasso 回归 -> 加了L1正则项的线性回归

Ridge 回归 -> 加了L2正则项的线性回归

ElasticNet -> 加了L1和L2正则项混合双大的线性回归

原文发布于微信公众号 - 一名叫大蕉的程序员(DaBananaTalk)

原文发表时间:2017-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

使用Python进行描述性统计

目录 1 描述性统计是什么? 2 使用NumPy和SciPy进行数值分析   2.1 基本概念   2.2 中心位置(均值、中位数、众数)   2.3 发散程度...

77740
来自专栏图形学与OpenGL

模拟试题B

1.灰度等级为256级,分辨率为2048*1024的显示器,至少需要的帧缓存容量为( )

39310
来自专栏Petrichor的专栏

深度学习: ILSVRC竞赛

Large Scale Visual Recognition Challenge (ILSVRC):

64730
来自专栏杨熹的专栏

深度学习与自然语言处理 主要概念一览CS224d-Day 1:

---- CS224d-Day 1: 要开始系统地学习 NLP 课程 cs224d,今天先来一个课程概览。 课程一共有16节,先对每一节中提到的模型,算法,工...

385110
来自专栏人工智能头条

胡新辰:LSTM学习教程、资料以及最新进展介绍总结

37620
来自专栏深度学习自然语言处理

word2vec理论与实践

导读 本文简单的介绍了Google 于 2013 年开源推出的一个用于获取 word vector 的工具包(word2vec),并且简单的介绍了其中的两个训练...

34560
来自专栏小小挖掘机

实战深度强化学习DQN-理论和实践

1、Q-learning回顾 Q-learning 的 算法过程如下图所示: ? 在Q-learning中,我们维护一张Q值表,表的维数为:状态数S * 动作数...

1.2K50
来自专栏人工智能头条

推荐收藏 | AI术语中英文对照

16710
来自专栏腾讯高校合作

【犀牛鸟论道】深度哈希方法及其在移动视觉搜索中的应用

1. 简介 移动视觉搜索技术是多媒体搜索领域中一个前沿的研究课题。近年来,移动设备的飞速发展,改变了互联网上图像和视频等视觉内容的产生,以及人们检索和观看的方式...

397100
来自专栏机器之心

专栏 | 监督&amp;强化学习模型在金融市场的应用

53640

扫码关注云+社区

领取腾讯云代金券