我的编程空间,编程开发者的网络收藏夹
学习永远不晚

AI怎么训练机器学习的模型

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

AI怎么训练机器学习的模型

这篇文章将为大家详细讲解有关AI怎么训练机器学习的模型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.Training: 如何训练模型

一句话理解机器学习一般训练过程 :通过有标签样本来调整(学习)并确定所有权重Weights和偏差Bias的理想值。

训练的目标:最小化损失函数

(损失函数下面马上会介绍)

机器学习算法在训练过程中,做的就是:检查多个样本并尝试找出可最大限度地减少损失的模型;目标就是将损失(Loss)最小化

AI怎么训练机器学习的模型

上图就是一般模型训练的一般过程(试错过程),其中

  • 模型: 将一个或多个特征作为输入,然后返回一个预测 (y') 作为输出。为了进行简化,不妨考虑一种采用一个特征并返回一个预测的模型,如下公式(其中b为 bias,w为weight)

AI怎么训练机器学习的模型

  • 计算损失:通过损失函数,计算该次参数(bias、weight)下的loss。

  • 计算参数更新:检测损失函数的值,并为参数如bias、weight生成新值,以降低损失为最小。

例如:使用梯度下降法,因为通过计算整个数据集中w每个可能值的损失函数来找到收敛点这种方法效率太低。所以通过梯度能找到损失更小的方向,并迭代。

举个TensorFlow代码栗子,对应上面公式在代码中定义该线性模型:

y_output = tf.multiply(w,x) + b

假设该模型应用于房价预测,那么y_output为预测的房价,x为输入的房子特征值(如房子位置、面积、楼层等)

2. Loss Function:损失和损失函数

损失是一个数值 表示对于单个样本而言模型预测的准确程度。

如果模型的预测完全准确,则损失为零,否则损失会较大。

训练模型的目标是从所有样本中找到一组平均损失“较小”的权重和偏差。

损失函数的目标:准确找到预测值和真实值的差距

AI怎么训练机器学习的模型

如图 红色箭头表示损失,蓝线表示预测。明显左侧模型的损失较大;右侧模型的损失较小

要确定loss,模型必须定义损失函数 loss function。例如,线性回归模型通常将均方误差用作损失函数,而逻辑回归模型则使用对数损失函数。

正确的损失函数,可以起到让预测值一直逼近真实值的效果,当预测值和真实值相等时,loss值最小。

举个TensorFlow代码栗子,在代码中定义一个损失loss_price 表示房价预测时的loss,使用最小二乘法作为损失函数:

loss_price = tr.reduce_sum(tf.pow(y_real - y_output), 2)

这里,y_real是代表真实值,y_output代表模型输出值(既上文公式的y' ),因为有的时候这俩差值会是负数,所以会对误差开平方,具体可以搜索下最小二乘法公式

3. Gradient Descent:梯度下降法

理解梯度下降就好比在山顶以最快速度下山:

好比道士下山,如何在一座山顶上,找到最短的路径下山,并且确定最短路径的方向

原理上就是凸形问题求最优解,因为只有一个最低点;即只存在一个斜率正好为 0 的位置。这个最小值就是损失函数收敛之处。

AI怎么训练机器学习的模型

通过计算整个数据集中 每个可能值的损失函数来找到收敛点这种方法效率太低。我们来研究一种更好的机制,这种机制在机器学习领域非常热门,称为梯度下降法。

梯度下降法的目标:寻找梯度下降最快的那个方向

梯度下降法的第一个阶段是为 选择一个起始值(起点)。起点并不重要;因此很多算法就直接将 设为 0 或随机选择一个值。下图显示的是我们选择了一个稍大于 0 的起点:

AI怎么训练机器学习的模型

然后,梯度下降法算法会计算损失曲线在起点处的梯度。简而言之,梯度是偏导数的矢量;它可以让您了解哪个方向距离目标“更近”或“更远”。请注意,损失相对于单个权重的梯度(如图 所示)就等于导数。

请注意,梯度是一个矢量,因此具有以下两个特征:

  • 方向

  • 大小

梯度始终指向损失函数中增长最为迅猛的方向。梯度下降法算法会沿着负梯度的方向走一步,以便尽快降低损失

为了确定损失函数曲线上的下一个点,梯度下降法算法会将梯度大小的一部分与起点相加

AI怎么训练机器学习的模型

然后,梯度下降法会重复此过程,逐渐接近最低点。(找到了方向)

  • 随机梯度下降法SGD:解决数据过大,既一个Batch过大问题,每次迭代只是用一个样本(Batch为1),随机表示各个batch的一个样本都是随机选择。

4. Learning Rate:学习速率

好比上面下山问题中,每次下山的步长。

因为梯度矢量具有方向和大小,梯度下降法算法用梯度乘以一个称为学习速率(有时也称为步长)的标量,以确定下一个点的位置。这是超参数,用来调整AI算法速率

例如,如果梯度大小为 2.5,学习速率为 0.01,则梯度下降法算法会选择距离前一个点 0.025 的位置作为下一个点。

超参数是编程人员在机器学习算法中用于调整的旋钮。大多数机器学习编程人员会花费相当多的时间来调整学习速率。如果您选择的学习速率过小,就会花费太长的学习时间:

AI怎么训练机器学习的模型

继续上面的栗子,实现梯度下降代码为:

train_step = tf.train.GradientDescentOptimizer(0.025).minimize(loss_price)

这里设置梯度下降学习率为0.025, GradientDescentOptimizer()就是使用的随机梯度下降算法, 而loss_price是由上面的损失函数获得的loss

至此有了模型、损失函数以及梯度下降函数,就可以进行模型训练阶段了:

Session = tf.Session()Session.run(init)for _ in range(1000):Session.run(train_step, feed_dict={x:x_data, y:y_data})

这里可以通过for设置固定的training 次数,也可以设置条件为损失函数的值低于设定值,

x_data y_data则为训练所用真实数据,x y 是输入输出的placeholder(代码详情参见TensorFlow API文档)

5. 扩展:BP神经网络训练过程

BP(BackPropagation)网络的训练,是反向传播算法的过程,是由数据信息的正向传播和误差Error的反向传播两个过程组成。

反向传播算法是神经网络算法的核心,其数学原理是:链式求导法则

  • 正向传播过程:

输入层通过接收输入数据,传递给中间层(各隐藏层)神经元,每一个神经元进行数据处理变换,然后通过最后一个隐藏层传递到输出层对外输出。

  • 反向传播过程:

正向传播后通过真实值和输出值得到误差Error,当Error大于设定值,既实际输出与期望输出差别过大时,进入误差反向传播阶段:

Error通过输出层,按照误差梯度下降的方式,如上面提到的随机梯度下降法SGD,反向修正各层参数(如Weights),向隐藏层、输入层逐层反转。

通过不断的正向、反向传播,直到输出的误差减少到预定值,或到达最大训练次数。

AI怎么训练机器学习的模型

关于“AI怎么训练机器学习的模型”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

AI怎么训练机器学习的模型

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

AI怎么训练机器学习的模型

这篇文章将为大家详细讲解有关AI怎么训练机器学习的模型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.Training: 如何训练模型一句话理解机器学习一般训练过程 :通过有标签样本来调整(学习)并确定
2023-06-14

训练自己的ai模型(一)学习笔记与项目实操

ai模型大火,作为普通人,我也想做个自己的ai模型 训练自己的ai模型通常需要接下来的的六步一、收集和准备数据集:需要收集和准备一个数据集,其中包含想要训练模型的数据。这可能需要一些数据清理和预处理,以确保数据集的质量和一致性。二、选择和设
2023-08-17

C++技术中的机器学习:使用C++训练机器学习模型的最佳实践

在 c++++ 中训练机器学习模型的最佳实践包括:使用高效的数据结构。优化内存管理。利用多线程。集成流行的机器学习库。关注代码简洁性。C++ 技术中的机器学习:训练机器学习模型的最佳实践引言C++ 是机器学习领域中一种功能强大且广泛使用
C++技术中的机器学习:使用C++训练机器学习模型的最佳实践
2024-05-11

Golang技术在机器学习中加速模型训练的技术

通过利用 go 的高性能并发性,可加快机器学习模型训练:1. 并行数据加载,充分利用 goroutine 加载数据;2. 优化算法,通过通道机制分布计算;3. 分布式计算,使用原生网络支持在多台机器上训练。使用 Go 加速机器学习模型训练
Golang技术在机器学习中加速模型训练的技术
2024-05-09

怎么使用R语言进行机器学习模型训练和评估

在R语言中,可以使用各种机器学习库和包来进行模型训练和评估。以下是一个简单的步骤来使用R语言进行机器学习模型训练和评估的示例:准备数据:首先加载数据集,将数据集分为训练集和测试集。#加载数据data <- read.csv("data.c
怎么使用R语言进行机器学习模型训练和评估
2024-03-04

使用C++训练机器学习模型:从数据预处理到模型验证

在 c++++ 中训练 ml 模型涉及以下步骤:数据预处理:加载、转换并工程化数据。模型训练:选择算法并训练模型。模型验证:划分数据集,评估性能,并调整模型。通过遵循这些步骤,您可以成功地在 c++ 中构建、训练和验证机器学习模型。使用 C
使用C++训练机器学习模型:从数据预处理到模型验证
2024-05-11

云服务器训练模型怎么用的

编写代码:使用云服务器可以使编写代码更加灵活和方便。在云服务器上运行的代码可以跨平台运行,从而使开发人员可以在不同的设备上使用相同的代码库。另外,云服务器上的代码可以自动化部署和管理
2023-10-27

云服务器训练模型怎么用

1.选择云服务器在使用云服务器训练模型之前,首先需要选择一款适合的云服务器。常见的云服务器提供商有阿里云、腾讯云、AWS等。选择云服务器时需要考虑以下因素:服务器配置:包括CPU、内存、硬盘等配置,需要根据模型大小和训练数据量来选择。服务器地理位置:需要选择距离自己所在地较近的服务器,以减少网络延迟。服务器价格:需要根据自己的预算来选择。2.安装深度学习框架在云服务器上训练模型需要使用深度学习框架,如...
2023-10-27

在浏览器中怎么实现训练模型

这篇“在浏览器中怎么实现训练模型”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“在浏览器中怎么实现训练模型”文章吧。识别鸢尾花
2023-07-02

云服务器训练模型是什么样的

在使用云服务器的过程中,用户需要关注以下几个方面:数据库:云服务器可以使用数据库服务来存储和管理数据。用户需要购买云服务器提供商的数据库服务,并且需要配置云服务器提供商的服务器地址、用户名和密码等基本信息。负载均衡:云服务器可以使用负载均衡服务来分担用户的请求。当用户请求较大时,云服务器可以自动将请求分配到其他云服务器
2023-10-27

Python 机器学习模型评估:如何衡量机器学习模型的性能

本文探讨了评估 Python 机器学习模型性能的常见技术,包括准确度、召回率、精确率和 F1 分数。还介绍了 ROC 曲线和混淆矩阵等更高级的评估指标。
Python 机器学习模型评估:如何衡量机器学习模型的性能
2024-02-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录