1.3归纳偏好
归纳偏好(lnductive Bias): 机器学习算法在学习过程中对某种类型假设的偏好
偏好就是对某一种东西有特别的喜好。
下面两个机器学习算法,A和B,现在我们考虑一个简单的问题,A和B哪个算法更好 (当AB都可以完美解释训练数据的情况下,在图中体现为A、B都穿过图中的6个点)?
要记住, 任何一个有效的机器学习算法必有其偏好
虽然AB形式上有很大的差别,体现在具体算法中它可能是个决策树、可能是个神经网络、也可能是个支持向量机,但是本质上是需要做出某种选择的, 这种选择是我们的算法相信什么样的模型是更好的
什么样的模型更好呢?
一般原则:奥卡姆剃刀
基本思想: 若非必要,勿增实体
简单来说,当我们发现有很多假说可以解释某个问题的时候,选择最简单的那一个
对于机器学习,我们看到的训练样本 (即现实世界反映出的现象),而如果有多个模型可以解释这个现象,我们就找最简单的那个模型
继续上面这个问题,我们很可能一眼看去就选择A曲线,因为看着简单、舒服、不像B曲线弯弯绕绕那么复杂。如果要写出函数方程,A无疑比B更简单。 我们这种朴素的思想也是奥卡姆剃刀原则的一个体现
⭐ 那么问题来了,面对诸多模型,哪个是最简单的那个呢?这个问题本身并不简单
举个栗子,给出两个曲线方程:①y = ax2+bx+c②y = ax3 +bx
📙①是二阶②是三阶,我可以说①更简单; 我也可以换一个角度,因为②只有ab两个系数,我说②更简单 所以①和②哪个更简单呢?不好说,这个问题本身就不是一个简单的问题
什么样的算法比较好?
// 这个问题最关键的一点是, 学习算法的归纳偏好是否与问题本身匹配,这实际上决定了这个算法在这个任务上到底能用的多好( 能否取得好的性能)
💻不要说什么算法是好的,真正起作用的不是某个算法,而是其背后的那个假设。“某个算法是好的or不好的” 实际上说的是这个算法的偏好是什么,这个偏好是不是和当下要解决的问题更合适,更匹配
👉回到一开始那个问题,实际情况如果是某个东西非常频繁发生变化的,(在AB都正确的情况下) 这时候我们应该取B;相反,如果变化的非常平缓,那我们最好取A
1.4NFL定理
🌏没有免费的午餐定理(No Free Lunch,简称NFL) : 无论学习算法σa有多聪明,学习算法σb有多笨拙,他们的期望性能是相同的!
📗该定理的结论是,由于对所有可能函数的相互补偿,最优化算法的性能是等价的。
NFL定理的前提:
所有“问题”出现的机会相同、或所有问题同等重要。
但是,实际情况并不是这样
NFL定理的寓意:
NFL定理让我们清楚地认识到, 脱离具体问题,空泛的谈论“什么学习算法更好”毫无意义。 因为如果考虑所有潜在的问题,那么所有学习算法都一样好;要谈论算法的相对优劣,必须要针对具体的学习问题