机器学习就是让机器具备找函数的能力。
机器学习监督学习的两大类任务:回归与分类
Regression(回归):回归用于预测连续值(数值型)的输出。
输出是连续的(如价格、温度、销量等)。
目标是建立一个模型,描述输入变量(特征)与连续输出变量之间的关系。
Classification(分类):分类用于预测离散的类别标签(即数据属于哪个类别)。
输出是离散的(如“是/否”、“猫/狗/鸟”、“垃圾邮件/正常邮件”)。
目标是确定数据点所属的类别。
在Regression和Classification之外的机器学习的任务是Structured Learning(让机器生成图片、文章等有结构的输出结果)
机器如何寻找函数?
1.写出一个带有未知参数的函数(猜测寻找的函数f,其数学式长什么样子)
Linear Model :y = b + wx Model是带有未知参数的函数
y是准备预测的数据,x(feature)是上一个数据(已知),b(bias偏差)和w(weight权重)是未知参数(要通过资料和数据进行寻找)。
2.定义Loss(也是一个函数,损失函数)
Loss函数的输入是model中的参数、
L(b,w)
Loss输出的值代表:如果将这一组未知的参数设定为某一组数值时,这组数值好还是不好,是否恰当与合适。从训练资料中计算Loss。
将预估的结果与真实的结果进行比对,观察其差距(拟合程度)。label是指现实中正确的数值。
e代表估测值跟实际值之间的差距,N代表训练资料的个数,将所有误差求和,然后求其平均值。L即为Loss,L的值越大表示这组参数越不好,L的值越小表示这组参数越好。
计算误差e有不同的计算方法:
尝试不同的参数,然后计算出其Loss,画出等高线图(Error Surface)。
3.解最佳化问题(Optimization)
把未知参数w和b代入某个数值,使得L的值最小。该值就是未知参数的最佳值,即w*和b*。
最佳化方法Gradient Descent:
一个参数的情况:
假设现在只有一个未知参数w,当w为不同数值时,会得到不同的Loss。
随机选取一个初始的点w0(Randomly),初始点一般来说是随机的。
计算|w = w0,在w0这个点时的Error Surface的切线斜率。如果切线的斜率为负,代表左高右低,应该增加w的值。从而得到较低的L值;如果切线的斜率为正,代表左低右高,应该降低w的值。从而得到较低的L值。 斜率的绝对值越大,w所移动的步伐越大。
:learning rate学习速率,是自己设定的,同样会影响w所移动的步伐大小。
越大参数改变的数据就会越大。
在机器学习中需要自己设定的参数,称为hyperparameters。
w0移动到w1,其中w1 =w0- |w = w0
一直不断移动,直到有两种情况发生:
1.到达提前设置计算次数(也是一个hyperparameters)的上限。
2.不断调整参数w,调整到wn的微分值为0。
其中第二种情况可能导致没有找到全局最小的Loss值(Local minima),只找到了Loss的局部最小值(global minima)
两个参数的情况:
两个参数的情况与一个参数的情况相同。
给其随机的初始值为w0和b0。
计算w和b的偏微分:
|w = w0,b = b0
|w = w0,b = b0
计算完成后,将b0和w0更新为b1和w1。其中b1 =b1 - |w = w0,b = b0,w1 = w0 -
|w = w0。
添加负号是因为梯度方向是函数增长最快的方向,反向就是下降最快的方向。
以上的三个步骤合起来称为训练