前言
博主大二工科在读,学深度学习的目的在于训练机器识别魔方六面颜色并给予相应编号,优化魔方复原机器人的识别速度。同时为保研夏令营做准备。
1.1通过案例了解机器学习
机器学习约等于让机器具备选择函数的能力
机器学习的类别:回归(regression)、分类(classification)、结构化学习(structured learning)
回归:输入一串数组,输出一个数值
分类:类别由人类设定,由机器进行分拣。例如,邮箱中分为垃圾邮件和工作邮件
结构化学习:让机器创造一个自带结构的东西,例如,图形结构,一篇文章。。具体还待学习
1.1案例学习
书中以预测视频平台的隔天观看次数为例,向读者介绍了机器学习的一般步骤。简分为:
设置带有未知参数的模型函数,从训练数据中定义损失函数(loss function),优化模型函数
如何设置模型函数?
书中给出一词名叫领域知识(domain knowledge),“对模型的猜测往往来源于对问题本质的理解”。简单来说,当你想要做出一个机器人,你总会先了解与它有关的学术资料,以及前人做出的类似机器人,就是前期储备。书中将模型简单设置为 y = b + wx 。
其中,x称为特征(feature),w称为权重(weight),b被称为偏置(bias),y就是我们预测的结果。
第二步就是计算损失(loss),当然,损失也是一个函数。
如何计算损失?
有两种方法。
书中以过去三年每天的观看次数制作数据集(data set)。
e = |y - |,及预测值与真实值之差的绝对值。称为平均绝对误差(Mean Absolute Error,MAE)。
e = (y - )
,及预测值与真实值之差的平方。称为均方误差(Mean Squared Error,MSE)。
损失: L =
通过调整不同的w和b,最终可以得到不同的loss,通过登高线图表示他们的关系,结果如图所示。
越偏蓝色的部分误差就越小,可见,w大约1附近数值,b取100多一些的数值得到的效果最好。
最后就到寻找最优w与b的时候,也就是最常见的问题优化。
解一个最优化问题
最常用的优化方法是梯度下降(gradient descent)。
首先随机选取一个,随后计算
简单来说就是计算损失函数在该点的斜率,我们期望找到损失最低的w,那么可以将损失函数想象成一个山谷
,谷底就是我们要到达的地方。
若该点斜率大于0,则说明我们处于右侧山坡上,需要将现在的w值减小;若该点斜率小于0,则说明我们处于左侧山坡上,需要将现在的w值增大。
很好理解吧!
而w增大or减小的值仅取决于它的斜率与学习率(learning rate)的大小,学习率是我们自己设置的,称为超参数(hyperparameter)。把
移动到
的方法:
可见学习率越大移动的步伐也越大。
经过反复以上操作,最终一定会停下,停下的原因通常有两个:
a.反复次数已达你自己预定的上限。例如,你给一个程序规定循环100次,那么100次后无论它有没有达到最佳点都会停下。
b.已经到达loss最低点,最低点斜率为零,则无论再重复操作多少次,都还是停留在该点。
而梯度下降有个问题在于最低点一般为局部最低点,而非全局最低点。但这不妨是,至于原因,博主尚在学习中。。
尾声
进行到这里,算是初步了解了机器学习的一般步骤,但这还只是一个开始,我希望以博客方式记录自己坚持的点滴。
未来路长道远,愿与诸君共勉。