深度学习是机器学习的一个分支,它主要通过使用称为神经网络的复杂结构来学习数据的表征。在深度学习中,"训练"和"模型"是两个核心概念。
在深度学习中,"训练"是指用数据来训练一个神经网络。这个过程涉及以下几个步骤:
输入数据: 这些数据可以是图片、文本、声音或其他任何形式的信息。对于不同类型的问题,输入数据的形式会有所不同。
标签: 在监督学习中,每个输入数据通常都会有一个对应的标签,这个标签是我们想要模型预测的目标。
学习过程: 在这个过程中,神经网络通过调整其内部参数(通常是权重和偏置)来尝试正确地预测输入数据的标签。
损失函数: 用于衡量模型的预测结果和实际标签之间的差异。训练的目标是最小化这个损失函数。
优化算法: 如梯度下降,用于调整网络参数以最小化损失函数。
迭代过程: 整个训练过程是迭代的,通常需要多次遍历训练数据集,这些遍历称为"epoch"。
在深度学习中,"模型"指的是从输入数据到输出预测的映射。这个映射是通过神经网络的多层结构来实现的,每层都进行特定的数学运算。模型的具体特点包括:
结构: 如层数、每层的类型(全连接层、卷积层、循环层等)和大小。
参数: 神经网络的权重和偏置,这些在训练过程中学习和调整。
激活函数: 如ReLU、Sigmoid等,它们决定了神经元的输出。
输出: 根据问题的类型(分类、回归等),输出可以是一个类别、一个值或者一系列值。
总的来说,深度学习的训练过程是指用数据来调整模型的参数,以便模型能够准确地从输入数据中预测出结果。而模型本身是指这个从输入到输出的映射及其内部结构和参数。
解释一:
深度学习中大概有如下步骤:?
确定模型----训练模型----使用模型。
模型简单说可以理解为函数。
确定模型是说自己认为这些数据的特征符合哪个函数。
训练模型就是用已有的数据,通过一些方法(最优化或者其他方法)确定函数的参数,参数确定后的函数就是训练的结果,使用模型就是把新的数据代入函数求值。
解释二:
你可以把机器想象成一个小孩子,你带小孩去公园。公园里有很多人在遛狗。
简单起见,咱们先考虑二元分类问题。你告诉小孩这个动物是狗,那个也是狗。但突然一只猫跑过来,你告诉他,这个不是狗。久而久之,小孩就会产生认知模式。这个学习过程,
就叫“训练”。所形成的认知模式,就是”模型“。
训练之后。这时,再跑过来一个动物时,你问小孩,这个是狗吧?他会回答,是/否。这个就叫,预测。
一个模型中,有很多参数。有些参数,可以通过训练获得,比如logistic模型中的权重。但有些参数,通过训练无法获得,被称为”超参数“,比如学习率等。这需要靠经验,过着grid search的方法去寻找。
上面这个例子,是有人告诉小孩,样本的正确分类,这叫有督管学习。
还有无督管学习,比如小孩自发性对动物的相似性进行辨识和分类。
链接:https://www.zhihu.com/question/29271217/answer/83272460
解释三:
假设现在我们要开发一个识别鸟类的计算机程序。我们已经收集了很多鸟类样本数据,比如下面这样:
这个识别鸟类的程序要完成的功能:输入一只鸟的“体重”、“翼展”、“有/无脚蹼”、“后背颜色”,输出这只鸟的种类。
换句话说,这是一个分类系统。
怎么让计算机帮助我们对鸟类进行分类?这就需要使用机器学习的方法。机器学习可以让计算机从已有的数据(上面收集的已经有分类信息的鸟类样本数据)中学习出新的知识(如何对鸟进行分类)。
那么什么是训练?在这个例子里,训练指的就是利用收集的鸟类样本数据让计算机学习如何对鸟类进行分类这一过程。
已有类别信息的鸟类样本数据集合,称为训练数据集、训练集。训练的目的是让计算机程序知道“如何进行分类”。
至于“训练的是什么”、“参数是什么”,这依赖于我们所选取的“模型”。训练的结果简单来说就是得到一组模型的参数,最后使用采用这些参数的模型来完成我们的分类任务。
再举一个简单例子说明“模型”和“模型的参数”。
假设现在我们收集了一些二维平面上的点:红色的点记为A类,绿色的点记为B类,这些点的坐标和类别信息都是已知的。现在任务是,给出一个新的点的坐标,判断它是A类还是B类。
简单观察一下数据,好像我们可以用一条平行于 y 轴的直线把 A 类点和 B 类点分开。大概是这个样子:
我们希望找到这样一条直线 x = k,直线左边绝大多数点都是 A 类,直线右边绝大多数点都是 B 类。
于是我们的分类器模型就是 x = k 这样的直线,k 就是我们的模型参数。
训练的过程就是利用已有的数据点确定参数 k 的过程。假设我们的训练结果是 k = k_0 ,那么我们就可以用 x = k_0 这条直线作为分类器对新的点进行分类了。
当然实际应用中的模型可能要复杂的多,模型参数也不会只有一个 k 这么简单。
链接:https://www.zhihu.com/question/29271217/answer/44134218
如何训练模型:
首先得定义一个损失函数,加入输入样本,根据前向传播得到预测试。跟真实样本比较,得到损失值,接着采用反向传播,更新权值(参数),来回不断地迭代,直到损失函数很小,准确率达到理想值即可。这时的参数就是模型需要的参数。即构建了理想的模型。