首先,我也是一个机器学习初学者,这里跟大家聊一下自己的最近学习感悟。我认为在面对一件事务的时候,首先对这个事务来一个深刻的认识很重要。首先我们来看一下统计学习具体由什么构成或者有什么重要的要素?
这一点我参造《统计学习方法》里面写道,统计机器学习方法是由模型、策略和算法构成的。
方法 = 模型+策略+算法
模型Model
在监督学习过程中,模型就是要学习的条件概率分布或者决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。
举个栗子:假设函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数组成的函数集合。假设空间中的模型的模型一般有无穷多个。假设空间用F表示,
决策函数的集合,则F={f|Y = f(X)}
条件概率的集合,则 F={P|P(Y|X)}
于是这里一个重要的概念出现,F是由一个参数向量决定的函数族或者参数向量决定的条件概率分布族,这个参数向量也称为参数空间。
策略Strategy
- 损失函数
- 0-1损失函数
- 平方损失函数
- 绝对损失函数
- 对数损失函数
- 风险函数
- 经验风险(损失),是模型关于样本集的平均损失。根据大数定律,当样本量趋于无穷大的时候,经验风险趋于期望风险。所以一个简单自然的想法就是用经验风险来估计期望风险。但是现实中的训练样本的数目比较有限,甚至很小,所以用经验风险来估计期望风险不是那么的理想,因此需要对经验风险进行一定的矫正,因此这就关于到监督学习的两个基本的策略:经验风险最小化和结构风险最小化。
- 当样本量很大的时候,经验风险最小化保证有很好的学习效果,现实中我们一般广泛采用。
- 比如,极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
- 但是当样本量很小的时候,会产生过拟合现象(over-fitting).结构风险最小化是为了防止过拟合而提出来的策略。
- 贝叶斯估计中的最大后验概率估计(MAP)就是结构化风险最小化的一个例子。当模型由模型的先验概率表示时,结构风险最小化就等价于最大后验概率分布。此外,正则化可以分为(L0,L1(Lasso),L2(Ridge))等等。
- 监督学习问题就变成了优化经验风险和结构风险的最优化问题。所以求最优模型,就是求解最优化问题。
关于成本函数、目标函数和风险函数有疑问的童鞋可以看看这篇机器学习Machine Learning:成本(cost) 函数,损失(loss)函数,目标(Objective)函数的区别和联系?
算法Algorithm
算法也就是学习模型的具体计算方法。机器学习基于训练数据集,根据学习策略,从假设向量(空间)中选取最优的模型,最后需要考虑用什么样的计算方法求解最优模型。这时候机器学习主要归结为求解最优化问题,如何找到全局最优解,成为一个重要的问题。既可以利用现有的优化算法,有时候也需要开发自己的优化算法。BP算法就是一个经典的例子。
机器学习中所谓的训练其实就是损失函数的优化过程,可以有不同的优化方法,这些方法并不是机器学习算法的一部分,这属于凸优化或者启发式优化算法。而不同的优化(训练、学习)算法效果也不同,突出的表现为
1、不同的优化算法适应于不同的场景(大规模数据、较深较复杂网络、稀疏数据、收敛速率高)等
2、不同优化算法可以解决特定问题:学习率固定不变、在极值点附近收敛缓慢、收敛波动较大等。
3、启发式优化算法可以用于寻找全局最优点,避免陷入局部最优点和鞍点,但收敛太慢。
具体可以参考以下博主文章:机器学习常见的几种优化方法
那么我们在具体面对数据的时候机器学习模型设计应该注意哪些呢?机器学习模型设计五要素
当然具体的实战过程中还会具体一些考虑,下次待续….