定义一组函数(模型) ->函数的优良性 ->选择最佳函数
machine Learning的三个步骤:
- 定义一个model即function set
- 定义一个goodness of function损失函数去评估该function的好坏
- 找一个最好的function
Supervised Learning(监督学习)
需要大量的training data,这些training data告诉我们说,一个我们要找的function,它的input和output之间有什么样的关系而这种function的output,通常被叫做label(标签),数据集中的每个样本有相应的“正确答案”,根据这些样本做出预测,分有两类:回归问题和分类问题
y=b+ω⋅x
确定了一个Model,确定Funtion Set中的Function对预测结果是好是坏,并把好的Function挑选出来。首先,需要收集一些Training Data(训练数据),有了这些Data以后,就可以来衡量Function Set中的Function中的好坏。为了衡量这些Function中的好坏,我们需要引入一个新的Function—Loss Function。Loss Function的Input是Model(Function Set)里的一个Function,Output是这个Function的好坏。
第三步骤就是要找一个最好的Function,这实际上是一个Optimization Problem(最优化问题),也就是说,我们要找一个Function,可以让L ( f ) L(f)L(f)的值最小,
对损失函数求解的方式是Gradient Descent(梯度下降)
Gradient Descent(梯度下降)
learning rate(学习率),它决定了学习的速度有多快。不能太大也不能太小
泛化(Generalization)能力——通俗来讲就是指学习到的模型对未知数据的预测能力。在实际情况中,我们通常通过测试误差来评价学习方法的泛化能力。如果在不考虑数据量不足的情况下出现模型的泛化能力差,那么其原因基本为对损失函数的优化没有达到全局最优。
Overfitting(过拟合)的根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。过度的拟合了训练数据,而没有考虑到Generalization(泛化)能力。
Where does the error from?
在[Machine Learning] 回归(Regression)中,我们发现,越复杂的Model不见得会给Testing Data(测试数据)越好的Performance(效果)。相反,最复杂的Model其实Performance(效果)是最差的,即Error是最大的!
Error有两个来源:
bias(偏差)
bias是模型本身导致的误差,即错误的模型假设所导致的误差,它是模型的预测值和真实值之间的差距。
variance(方差)
variance是由于对训练样本集的小波动敏感而导致的误差,它可以理解为模型预测值的变化范围,即模型预测值的波动程度。
如果bias过大,需要选择更多的特征,或者选择一个更复杂的模型
如果variance过大,需要收集更多数据集,或者是Regularization正则化。