最近在学习复旦邱锡鹏老师的《神经网络与深度学习》,并对书中推荐的论文进行了阅读。感觉这本书对深度学习讲解得很好,即有全面严谨的讲述,也有高屋建瓴的理解。
本文的行文结构是按邱老师的书籍结构来的,并结合自己的理解总结了书籍中的相关要点。想要对神经网络和深度学习有更好了解的,推荐大家看邱老师写的《神经网络与深度学习》。
本文地址:http://blog.csdn.net/qq_31456593/article/details/77865155
机器学习是对能通过经验自动改进的机器学习算法的研究。
从观测数据中学到规律,并用这种规律预测未知数据。
机器学习就是给定训练数据 x(i),y(i),i∈N (其中 x(i)为训练样本,y(i)为训练标签 ),学习一个决策函数f(x)来预测 x(i),y(i) 之间的关系,是其可用过新数据x来预测其标签y:
按训练数据提供的信息和反馈的方式的可以将机器学习分为以下几类
- | 监督学习 | 非监督学习 | 增强学习 |
---|---|---|---|
输入 | 有标记数据 | 无标记数据 | 动作 |
反馈方式 | 直接反馈 | 无反馈 | 奖励 |
目标 | 分类、预测 | 发现隐藏结构 | 动作 |
监督学习(supervised learning):
利用输入x和y来学习模型参数,以对新输入数据所得的y_与真实的标签y相同。根据标签y的不同,监督学习可以分为分类问题和回归问题:
分类问题(classification)- y为离散值;此时 f 又称分类器,可对输入数据进行分类。根据类别数量不同,分为二分类(binary classification)、多分类(multi-class classification)
回归问题(regression)- y为连续值;使预测的y_尽量接近y。
非监督学习(unsupervised learning):
通过学习不包含标签的数据学习一些有用的信息。常见的有:聚类(clustering)、降维,密度估计等。
增强学习(Reinforction learing):
又称强化学习,强调如何基于环境做出一系列动作,已获得最佳的收益。每做一个动作不一定立即收益。不需要显式的用输入\输出对的方式训练,是在线学习。
数据 :计算机可以处理的对象,可以是数字、字母、符号。对于不同的场景可以是图像、语音、文字、传感器数据。
样本 :按一定抽取规则或概率分布P,从样本空间 χ 取出的数据。一张灰度图片样本空间为 [0,255]N ,N为像素数,句子(长度L)的样本空间为 νL,ν 为词典集合。
特征 :表示样本的一组固定属性或特征,一般用向量表示,也称特征向量。对于一个样本如果由d个特征表示,则特征向量 Φ∈Rd 。
数据集 :一组样本集合称作数据集。数据集包含训练集和测试集。
参数 : f(x,θ) 中,需要通过学习算法训练数据进行学习的 θ 。
超参数 :定义模型结构或训练策略的参数。超参数的优化是组合优化,难以用学习算法学习,经验性较强。
特征学习 :自动学习稳定有效的特征,也叫表示学习。特征学习有2种,特征选择和特征提取。
特征选择:从特征集合中选择较为有效稳定的特征。
特征提取:将特征映射到拥有更加稳定有效特征的特征空间。
机器学习是从有限的观测数据中学习出一般性规律。
以监督学习为例,训练集 (x,y)∈χ×γ,是从χ,γ的联合空间的某个未知分布p(x,y)中随机产生的 。其中p是不随时间变换的,这样才有学习的语义。所以数据集D是由N个独立同分布(Indentically and Independly Distributed,IID)的样本组成。
对于样本空间 (x,y)∈χ×γ ,存在目标函数g: χ→γ 使得
g(x)=y
机器学习要做的就是找到一个函数f(x),使得 ∀x,y有f(x) ~ y。f(x)又称假设,一个好的f应该尽量在(x,y)取和目标函数一样的值。f在潜在分布p(x,y)上的期望误差为
R=E(x,y)∼p(x,y)[L(f(x),y)]
其中 L(f(x),y) 为损失函数。实际上我们无法计算 Rf ,不过我们可以计算经验误差,即数据集上的错误率。
给定 训练集D和模型f(x,θ) ,机器学习训练的目的就是找到最优的 θ ,而我们一般实验损失函数 L(f(x),y) 来评价我们是否找到来足够好的 θ 。
0-1损失函数(0-1 loss function)
Hinge损失函数(hinge loss function)
因为训练数据只是真实数据的一个小的子集,为了避免过拟合,我们可以在经验风险最小化原则的基础上加上正则化,即结构风险最小化原则。
∥θ∥2 是正则化项,用来减少参数空间,避免过拟合, λ 用来控制正则化强度。
在特征空间如果可以用f(z)=0的决策平面可以将不同的类别分隔开,则f(z)就是判别函数。
学习算法就是如何通过训练样本学习,自动学习决策函数的参数的算法。不同机器学习算法的区别就是决策函数和学习算法的区别。
一般,感知器使用在线被动更新方法学习参数,logistic使用梯度下降,支持向量机使用SMO(sequential minimal optimization )算法。
在选择好适当的风险函数后,参数学习就是要找 θ∗ 使得风险函数最小化,这样我们就将机器学习的问题转化为一个最优化的问题。
批量梯度下降算法: 从全体样本在 θ 的梯度的反方向上不断降低风险函数。
随机梯度下降算法: Stochastic Gradient Discent(SGD)每个样本都按梯度下降的方法进行更新。
还有一种折中的部分是小批量(mini-batach)随机梯度下降算法,即每次随机选取一批量数据进行训练。
提前停止: 在验证集上的错误率不在下降就停止训练。
动量法: Momentum, 在当前迭代的更新中加入上一次迭代的更新。记 ∇θt=θt−θt−1 ,则第t次更新为
AdapGrad: adaptive gradien,借鉴L2正则化的思想,加了约束。
参考资料
《神经网络与深度学习》邱锡鹏