前言
本文对本书前言的一些思考。归纳一些概念及讲述参数模型与非参数模型的特点。
基本概念
深度学习的基础是机器学习中的分散表示(distributed representation)。
分散表示假定观测值是由不同因子相互作用生成。在此基础上,深度学习进一步假定这一相互作用的过程可分为多个层次,代表对观测值的多层抽象。
深度学习是“深度”的,模型学习许多转换的“层”,每⼀层提供⼀个层次的表⽰。不同的层数和层的规模可用于不同程度的抽象。
例如,靠近输⼊的层(浅层)可以表⽰数据的低级细节,而接近分类输出的层(深层)可以表⽰⽤于区分的更抽象的概念。
-
在NLP中,浅层特征代表语法特征,深层特征代表语义特征
-
在CV中,浅层特征表示的是粗粒度的
更高层次的概念从低层次的概念学习得到。这一分层结构常常使用贪心算法逐层构建而成,并从中选取有助于机器学习的更有效的特征
由于表⽰学习的⽬的是寻找表⽰本⾝,因此深度学习可以称为“多级表⽰学习”。
深度神经网络是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。
学习
在机器学习中,学习(learning)是⼀个模型的训练过程。通过这个过程,我们可以发现正确的参数集,从而使模型强制执⾏所需的⾏为。
训练过程通常包含如下步骤(这里可以从广义上去理解):
- 构建一个随机初始化参数的模型
- 获取任务相关的数据(也可以不相关)
- 通过训练调整参数
- 重复2和3,直到模型在任务中的表现令你满意
关键组件
⽆论遇到什么类型的机器学习问题,都需要如下几个组件:
-
可以学习的数据(data)
-
如何转换数据的模型(model)
-
⼀个⽬标函数(objective function),⽤来量化模型的有效性
-
调整模型参数以优化⽬标函数的算法
特点
除了端到端的训练,我们正在经历从参数统计描述到完全⾮参数模型的转变(这里解释了我一直以来的一个困惑,就是构建模型时的分布假设到底对不对,原来还有非参数统计的模型啊)。
当数据稀缺时,⼈们需要依靠简化对现实的假设来获得有⽤的模型。当数据丰富时,可以⽤更准确地拟合实际情况的⾮参数模型来代替。
表⽰学习作为机器学习的⼀类,其研究的重点是如何⾃动找到合适的数据表⽰⽅式。
参数模型与非参数模型
机器学习可以归结为学习一个函数(f),把输入变量(X)映射到输出变量(Y)
算法可从训练数据中学习这样的目标映射函数。但函数的形式是未知的,我们的工作是为机器学习从业人员评估不同的机器学习算法,从而看一看哪一个算法更接近潜在的函数。
不同的算法对函数的形式有不同的假设或者偏见,以及如何学习目标函数。
任何模型都有参数(非超参数),非参数模型与参数模型的不同之处在于未指定模型结构先验而是根据数据确定的。
即二者的本质区别是:是否有对数据分布的假设。
参数模型
这种算法需要选择一种目标函数的形式,然后从训练数据中学习目标函数的系数。
一种最容易理解目标(映射)函数的形式就是一条直线,用于线性回归。此处的参数是直线的系数,用于控制直线的截距和斜率。这里把目标函数的形式假设为一条直线,大大简化了学习过程。现在,我们需要做的是估计这个直线等式的系数。
通常假设函数的形式是一个输入变量的线性组合,因此这种参数机器学习算法经常也称为“线性机器学习算法”。
但问题是,实际的未知潜在函数可能不是一个线性函数。在这种情况下,假设就是错误的,这种方法将会产生很差的结果。
逻辑回归、朴素贝叶斯、简单的神经网络等都属于参数模型。
优点
- 简单:这些算法很容易理解和解释结果;
- 快速:参数模型可以很快从数据中学习;
- 少量的数据:它们不需要太多的训练数据,甚至可以很好地拟合有缺陷的数。
局限性
- 约束:这些算法选择一种函数形式高度低限制模型本身;
- 有限的复杂性:这种算法可能更适合简单的问题;
- 不适合:在实践中,这些方法不太可能匹配潜在的目标(映射)函数。
非参数模型
不对目标函数的形式作出强烈假设的算法称为非参数机器学习算法。通过不做假设,它们可以从训练数据中自由地学习任何函数形式。
在构造目标函数时,非参的方法寻找最合适的训练数据,同时保留一些对不可见数据的泛化能力。因此,这些非参方法能够拟合大多数的函数形式。
一种理解非参模型的最好例子是KNN算法,对于一个新的数据实例,KNN的分类标准是基于K个最相似的已标记的实例。这种方法不需要对目标函数的形式作出任何的假设。
非参数统计是统计的分支,它不仅仅基于参数化的概率分布族(常见的参数示例是均值和方差)。
非参数统计基于无分布或具有指定的分布,但未指定分布的参数。
模型由训练数据本身构成。非参数模型对数据的分布没有任何假设。只关注样本数据,并不关心其整体分布。
由于没有任何假设,所以也不存在假设错误的问题。理论上数据量足够大,一定能逼近真实模型。
决策树模型,K近邻、SVM就是典型的非参数模型。
优点
- 灵活性:拟合大量的不同函数形式;
- 能力:关于潜在的函数不需要假设(或者弱假设);
- 性能:可以得到用于预测的高性能模型。
局限性
- 更多的数据:需要更多的训练数据用于估计目标函数;
- 慢:训练很慢,因为它们常常需要训练更多的参数;
- 过拟合:更多的过度拟合训练数据风险,同时它更难解释为什么要做出的具体预测,这也是深度学习的缺陷