【机器学习】详解回归(Regression)

文章目录


是什么的问题

  1. 回归分析(Regression Analysis) 是研究自变量与因变量之间数量变化关系的一种分析方法,它主要是通过因变量Y与影响它的自变量 X i ( i 1 , 2 , 3 ... ) X_i(i1,2,3...) Xi(i1,2,3...)之间的回归模型,衡量自变量 X i X_i Xi对因变量Y的影响能力的,进而可以用来预测因变量Y的发展趋势。
  1. 损失函数(Cost Function/Lost Function) 用于估计模型的预测值和真实值之间的不一致程度,损失函数越小代表模型预测结果与真实值越相近。

定义线性回归的损失函数,可采用最小二乘法,通过最小化误差的平方和寻找数据的最佳函数匹配。

单个样本(example)的误差函数:

总体n的误差函数:
线性回归模型的函数: y ^ = w 1 x 1 + w 2 x 2 + . . . + w d x d + b = W T X + b \hat{y}=w_1x_1+w_2x_2+...+w_dx_d+b=W^TX+b y^=w1x1+w2x2+...+wdxd+b=WTX+b

在训练模型时,我们希望寻找⼀组参数(w∗, b∗),这组参数能最⼩化在所有训练样本上的总损失。

  1. 如何找到最优的w,b来优化我们的模型?

用数学的方法就是把w,b看成未知变量,分别对其求偏导。

L ( w , b ) = ∑ i = 1 n ( W T X + b i − y i ) 2 L(w,b)=\sum_{i=1}^{n} (W^TX+bi-y_i)^2 L(w,b)=i=1∑n(WTX+bi−yi)2

因为我们求L最小时,w和b的值,去掉前面的非0正系数不影响。

求参数w:
求参数b:同上


案例说明

问题:预测宝可梦升级后的cp值
Step1: model (设计网络模型)define a set of function

b 是bias(偏置), w i w_i wi是weight(权重), X c p X_{cp} Xcp是我们输入的cp值

线性模型: y = b + w 1 x 1 + w 2 x 2 + . . . + w i x i y = b + w_1x_1 + w_2x_2 + ... + w_ix_i y=b+w1x1+w2x2+...+wixi

b和w的值是有很多个的,所以有a set of function,需要通过这个train data去找到这个最合适的function。

step 2 : Goodness of function(函数的好坏)
通过第一另外一个function:Loss来判断上面的function的好坏

Loss function 是去衡量y的好坏,去判断我们找到的w,b的好坏

step 3: Best Funciton(Gradient Descent)
很显然,就是求L分别对w,b的偏导,通过梯度下降的方式来找到最小的L。

单个参数的考虑:
通过不断更新,使得L最小,会到达一个局部最优(local optimal),斜率为0或接近于0,这个时候就无法再更新w了,所以是不能找到全局最优(global optimal)。

俩个参数的考虑:

最后,通过上面的10个宝可梦的数据,得到参数b,w,然后进行测试:

怎样获得更好的结果呢?怎样让预测更加准确呢?

其实就是需要改变模型:(这里改成二次式)

多项式回归(Polynomial Regression), 多项式回归与线性回归的概念相同,只是它使用的是曲线而不是直线(线性回归使用的是直线)。多项式回归学习更多的参数来绘制非线性回归曲线。对于不能用直线概括的数据,它是有益的。多项式回归是将自变量x与因变量y之间的关系建模为n次多项式的一种线性回归形式。多项式回归拟合了x值与y相应条件均值之间的非线性关系,记为E(y |x)。

或者说还想更好,那么可以尝试从二次转化为三次

四次:
从这里开始,虽然换成了更复杂的Mode。但是测试的结果,average error变大了,results become worse...

五次:
综上:
模型model越复杂,包含的train data越多,在训练集上的误差越小。

但是更加复杂的模型不一定能在测试数据中带来更好的表现。会出现【过拟合】,所以,我们要选择一个最适合我们的model而不是最复杂的model。因为,可能会导致过拟合。上图中最好的model是三次式的。

当增加更多的宝可梦数据时,会发现不仅仅只有一个cp值的影响,还有物种的影响,所以需要重新设计我们的model

重新设计的model,增加了物种因素:
结果:
上分类后得到的linear model,结果明显比原来的没有分类的好太多了。尝试增加更多因素,修改model:(量,高度,HP值)
重新设计的model:
最终结果训练误差小了很多,但是测试误差太大了,过拟合了。遇到这个情况需要引出一个新的概念:正则化(Regularization)

Back to step 2: Regularization(正则化) 正则化就是说给需要训练的目标函数加上一些规则(限制),让我们的函数尽量平缓,别过于膨胀,我们在梯度函数中加上 w e i g h t 2 weight^2 weight2这一项,这样就可以很好控制weight的大小。

重新训练的结果:
当λ=100时,达到这个模型的最佳测试Loss


相关推荐
羊小猪~~几秒前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
AI小杨2 分钟前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测
晨曦_子画6 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
道可云8 分钟前
道可云人工智能&元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
大数据·人工智能·3d·机器人·ar·vr
人工智能培训咨询叶梓17 分钟前
探索开放资源上指令微调语言模型的现状
人工智能·语言模型·自然语言处理·性能优化·调优·大模型微调·指令微调
zzZ_CMing17 分钟前
大语言模型训练的全过程:预训练、微调、RLHF
人工智能·自然语言处理·aigc
newxtc18 分钟前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr
成都古河云19 分钟前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
UCloud_TShare22 分钟前
浅谈语言模型推理框架 vLLM 0.6.0性能优化
人工智能
软工菜鸡26 分钟前
预训练语言模型BERT——PaddleNLP中的预训练模型
大数据·人工智能·深度学习·算法·语言模型·自然语言处理·bert