Machine Learning:机器学习解读(二)

发布于:2022-12-22 ⋅ 阅读:(312) ⋅ 点赞:(0)

导语

自学机器学习的进程已经差不多一半了。我说真的,开始有点乱了,脑海里对机器学习构建的整个框架有待整理完善。

有句话说,“学好数理化,走遍天下都不怕。”其实学习专业级知识不算难,就是要在高中学习的数理知识基础上,于了解并充实专业级知识的概念、思维与理念的过程中,从学习数理知识逐步发展到运用数理知识。我想那句话就是这样作用吧。

正所谓温故而知新,学习时不仅要有输入,也得要有输出。所以趁着中秋节假期,俺又来一波键盘上的知识杀戮了。

上一章知识链接(回归模型)

还记得上一章的“有监督”的机器学习方法——Supervised Learning吗?
我们知道,用这个机器学习方法,所得到的模型,所预测的输出值 y − h a t y-hat yhat的取值范围,通常是可预测的,或是人为规定的。(一般,线性回归模型与逻辑回归模型,就是通过Supervised Learning得到的。)

  • 常见的Supervised Learning有 RegressionClassification ,中文意思请自行百度。
  • 常见的Unsupervised Learning有Clustering(说Grouping你总明白吧)。

这一篇将会讲讲机器学习的第一个模型,线性回归模型(Linear Regression Model)。

下表包含的对于各个量的标记符号。

专业术语 标记
特征(features) x, x_train
目标(targets) y,y_train
参数(parameters) w(weight),b(bias),w,b
样本容量(parameters) m,m
第i个样本( i t h i_{th} ithTraining Example) x ( i ) x^{(i)} x(i), y ( i ) y^{(i)} y(i), x_i, y_i
第i个样本的预测值(The result of i t h i_{th} ithtraining Example) f w , b ( x ( i ) ) f_{w,b}(x^{(i)}) fw,b(x(i)),f_wb
预测值(prediction) y − h a t y-hat yhat,y-hat

线性回归模型(Linear Regression Model)

什么是线性回归?
最简单的例子,就是你在A4纸上画上x轴和y轴(也就是平面直角坐标系),再放上你的校卡,在上面画任意一条直线, 就得到了任意一个线性回归方程的直线了。
好了,
我们知道这条直线上点的横坐标与纵坐标有个一次函数关系,也就是直线方程 y = w x + b y=wx+b y=wx+b.,只是目前不能看出纸上的这条线里 y y y x x x之间的数学关系具体是什么,也就是满足该直线方程的参数(parameters), w w w b b b具体的值是什么(知道 y , x y,x y,x之间有关系,是用 w , b w,b w,b去描述 y , x y,x y,x之间的关系就好啦)。

还记得高中做题的时候时,常常会遇到有函数关系的题,比如说……(写到这语塞了半天,硬是没想起来有啥研究相关性的函数题)

我希望的是,你能联想到有解释两者关系的函数关系图的某道题目,并了解到,这些函数关系图既不是凭空而出的,也不是通过人工分析大量数据,进行各种高难度计算而出的。这些恰到好处的、严谨的事物关系图,来自于,机器分析数据集、得出模型后的函数可视化。

还是直接上图吧。

假装这个图里 y y y x x x分别代表两个事物。而且“由图可知”,这两个事物呈正相关性。
对于直线方程,高中生嘛(没有鄙视的意思),通常用两个点来确立一条直线,从而得出目标直线方程,从而确定两者之间的函数关系。
y=wx+b
但是,大学生知道(没有鄙视的意思),我们拿到含有特征与目标的数据集,为了计算两者之间关系,倘若选出的恰好是受外界因素影响最大的两个点(特征,目标)时,我们最终确立的这条直线就不够客观、实用与公平了,不能以此作为我们的目标函数。
因为,我们寻求两者关系的目的,是为了输入特征值 x x x,最终能得到一个接近实际值 y y y的输出预测值 y − h a t y-hat yhat,从而将来,在未知输出实际值的情况下,我们也可以通过输入特征值于训练好的模型,得到一个合理的输出预测值 y − h a t y-hat yhat,所以,我们为了最终函数关系的严谨性,抛弃了“两点确定一条直线”的数学思维,发明了关于“不呈线性的数据关系分析”的一套流程,也就是开始进行机器学习了。线性回归在机器学习里的应用是十分常见的。
找到合适的直线

我们实现一个Linear Regression Model跟高中时确立直线方程,非常不一样。

线性回归算法公式?
f w , b = w x + b (1) f_{w,b}=wx+b\tag{1} fw,b=wx+b(1)
这个公式,就是线性回归(Linear Regression)最原始的本体了,称它为线性回归模型的学习算法(Learning Algorithm)。所有可以大致用直线来表示的数据关系,就可以用到机器学习方法里的这个Learning Algorithm。
emm虽然开头表格里已经写明了:
x x x代表training set里的特征,也是输入值; w w w代表权重(特征值所占的比重); b b b代表基础量(特征值为0时的参数); f w , b f_{w,b} fw,b在训练算法的时候是目标,在我们测试、使用算法时是预测值,统称为输出值。
如何得到线性回归模型?
看下面两个图,分别展示两种状态,图里的红蓝点均来自于数据集(training set)。
A状态:参数的值尚未知,模型还没有被我们训练出来。
我们现在的目标,就是要找到合适的参数值让它匹配数据集(training set)。
在这里插入图片描述
B状态:红线则是训练好的模型的线性回归,它的参数是已知的。
此时在横坐标选出任意一个新的点,在纵坐标都有一个合理预测值了。
匹配

损失函数引言(Cost Function)

要从A,到达B,对于机器来说,并不是简简单单描出一条线的过程,而是基于Learning Algorithm的计算过程。
为了判断函数匹配数据集的好坏,我们定义了一个loss函数。顾名思义,损失函数就是计算线性回归的损失值的,一个模型的好不好,就看loss小不小。公式如下:
J ( w , b ) = 1 2 m ∑ i = 0 m − 1 ( f w , b ( x ( i ) ) − y ( i ) ) 2 (2) J(w,b) = \frac{1}{2m} \sum\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})^2 \tag{2} J(w,b)=2m1i=0m1(fw,b(x(i))y(i))2(2)

从单一特征线性回归模型出发,我们已经认识并了解了机器学习的一个最简单的学习算法了。那么我们到底是怎样从A到达B的?简单来说就是“改参降损”,详细的,就看看下一篇文章,会讲讲损失函数的定义与原理,引出我们是怎么用梯度下降(Gradient Descent)的方法降低损失,从而训练出线性回归模型。

感谢您的阅读。


网站公告

今日签到

点亮在社区的每一天
去签到