CV工程师
2023-01-18 08:19:33 阅读:429
深度学习是机器学习的一个重要分支,机器学习的过程就是:根据数据集来确定当下的“最佳参数集”,这些参数通过某种性能度量来获取完成任务的最佳性能。
那么到底什么是参数呢? 我们可以把参数看作是旋钮,我们可以转动旋钮来调整程序的行为。 任一调整参数的程序后,我们称为模型(model)。 通过操作参数而生成的所有不同程序(输入-输出映射)的集合称为“模型族”。 使用数据集来选择参数的元程序被称为学习算法(learning algorithm)。
每个数据集都由一个个样本(example)组成,样本有时也叫做数据点(data point)或者数据实例(data instance),通常每个样本由一组称为特征(features,或协变量(covariates))的属性组成。 机器学习模型会根据这些属性进行预测。 在监督学习问题中,要预测的是一个特殊的属性,它被称为标签(label,或目标(target))。
与传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据。
一般来说,我们拥有的数据越多,我们的工作就越容易。 当我们有了更多的数据,我们通常可以训练出更强大的模型,从而减少对预先设想假设的依赖。 数据集的由小变大为现代深度学习的成功奠定基础。 在没有大数据集的情况下,许多令人兴奋的深度学习模型黯然失色。 就算一些深度学习模型在小数据集上能够工作,但其效能并不比传统方法高。(数据一定要正确,数据中如果充满了错误,生成的模型很有可能就是无效模型)
ps. 数据集要大而全,且能保证正确。
大多数机器学习会涉及到数据的转换。 比如,我们建立一个“摄取照片并预测笑脸”的系统。再比如,我们摄取一组传感器读数,并预测读数的正常与异常程度。 虽然简单的模型能够解决如上简单的问题,但本书中关注的问题超出了经典方法的极限。 深度学习与经典方法的区别主要在于:前者关注的功能强大的模型,这些模型由神经网络错综复杂的交织在一起,包含层层数据转换,因此被称为深度学习(deep learning)。 在讨论深度模型的过程中,我们也将提及一些传统方法。
前面,我们将机器学习介绍为“从经验中学习“。 这里所说的“学习”,是指自主提高模型完成某些任务的效能。 但是,什么才算真正的提高呢? 在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,我们称之为目标函数(objective function)。 我们通常定义一个目标函数,并希望优化它到最低点。因为越低越好,所以这些函数有时被称为损失函数(loss function, 或cost function)。 但这只是一个惯例,你也可以取一个新的函数,优化到它的最高点。这两个函数本质上是相同的,只是翻转一下符号。
当任务为试图预测数值时,最常见的损失函数是平方误差(squared error),即预测值与实际值之差的平方。 当试图解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。 有些目标函数(如平方误差)很容易被优化,有些目标(如错误率)由于不可微性或其他复杂性难以直接优化。 在这些情况下,通常会优化替代目标。
通常,损失函数是根据模型参数定义的,并取决于数据集。 在一个数据集上,我们通过最小化总损失来学习模型参数的最佳值。 该数据集由一些为训练而收集的样本组成,称为训练数据集(training dataset,或称为训练集(training set))。 然而,在训练数据上表现良好的模型,并不一定在“新数据集“上有同样的效能,这里的“新数据集“通常称为测试数据集(test dataset,或称为测试集(test set))。
综上所述,我们通常将可用数据集分成两部分:训练数据集用于拟合模型参数,测试数据集用于评估拟合的模型。 然后我们观察模型在这两部分数据集的效能。 你可以把”一个模型在训练数据集上的效能“想象成”一个学生在模拟考试中的分数“。 这个分数用来为一些真正的期末考试做参考,即使成绩令人鼓舞,也不能保证期末考试成功。 换言之,测试性能可能会显著偏离训练性能。 当一个模型在训练集上表现良好,但不能推广到测试集时,我们说这个模型是“过拟合”(overfitting)的。 就像在现实生活中,尽管模拟考试考得很好,真正的考试不一定百发百中
一旦我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,我们接下来就需要一种算法,它能够搜索出最佳参数,以最小化损失函数。 深度学习中,大多流行的优化算法通常基于一种基本方法–梯度下降(gradient descent)。 简而言之,在每个步骤中,梯度下降法都会检查每个参数,看看如果你仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。
监督学习就是数据集就是样本的格式为:“特征-标签”,我简单理解为:输入参数-结果,然后选择有监督的学习算法
回归(regression)是最简单的监督学习任务之一。判断回归问题的一个很好的经验法则是,任何有关“多少”的问题很可能就是回归问题。比如:
最简单的理解就是OCR的问题叫做分类(classification)问题。假设所有的文字都是一个分类,那么OCR就是将图像分类到某个文字下。在分类问题中,我们希望模型能够预测样本属于哪个类别(category,正式称为类(class))。 例如,对于手写数字,我们可能有10类,分别数字0到9。 最简单的分类问题是只有两类,我们称之为“二元分类”。当我们有两个以上的类别时,我们把这个问题称为多类分类(multiclass classification)问题。
强化学习(Reinforcement Learning, RL)又称为再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
强化学习是智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏,强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。
在强化学习问题中,agent(智能体) 在一系列的时间步骤上与环境交互。 在每个特定时间点,agent 从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后 agent 从环境中获得 奖励(reward)。 此后新一轮循环开始,agent 接收后续观察,并选择后续操作,依此类推。 强化学习的过程在 fig_rl-environment 中进行了说明。 请注意,强化学习的目标是产生一个好的策略(policy)。 强化学习 agent 的选择的”动作“受策略控制,即一个从环境观察映射到行动的功能。
当环境可被完全观察到时,我们将强化学习问题称为马尔可夫决策过程(markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。
机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计学、数据挖掘和优化的思想。通常,它被用作实现人工智能解决方案的一种手段。
表示学习作为机器学习的一类,其研究的重点是如何自动找到合适的数据表示方式。深度学习是通过学习多层次的转换来进行的多层次的表示学习。
深度学习不仅取代了传统机器学习的浅层模型,而且取代了劳动密集型的特征工程。
最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。
整个系统优化是获得高性能的关键环节。有效的深度学习框架的开源使得这一点的设计和实现变得非常容易。
评论
扫描二维码获取文章详情
更多精彩内容尽在:WWW.ZNGG.NET