Datawhale AI+X 深度学习入门(一)

news/2024/10/12 12:33:38

一.机器学习的定义和核心

1.机器学习就是让机器具备找一个函数的能力。机器具备找函数的能力以后,它可以做很多事。

2.在机器学习领域里面,除了回归跟分类以外,还有结构化学习(structured learning)。机器不只是要做选择题或输出一个数字,而是产生一个有结构的物体,比如让机器画一张图,写一篇文章。这种叫机器产生有结构的东西的问题称为结构化学习。

3.机器学习找函数的过程,分成 3 个步骤。第一个步骤是写出一个带有未知参数的函数 f,其能预测未来观看次数。比如将函数写成

其中,y 是准备要预测的东西,y 跟 x1 都是数值,b 跟 w 是未知的参数,它是准备要通过数据去找出来的,w 跟 b 是未知的,只是隐约地猜测。猜测往往来自于对这个问题本质上的了解,即领域知识(domain knowledge)。机器学习就需要一些领域知识。总之,y = b + w ∗ x1,而 b 跟 w 是未知的。带有未知的参数(parameter)的函数称为模型(model)。模型在机器学习里面,就是一个带有未知的参数的函数,特征(feature) x1 是这个函数里面已知的而 w 跟 b 是未知的参数。w 称为权重(weight),b 称为偏置(bias)。这个是第一个步骤。

第 2 个步骤是定义损失(loss),损失也是一个函数。这个函数的输入是模型里面的参数,模型是 y = b + w ∗ x1,而 b 跟 w 是未知的,损失是函数 L(b, w),其输入是模型参数 b 跟w。损失函数输出的值代表,现在如果把这一组未知的参数,设定某一个数值的时候,这笔数值好还是不好。举一个具体的例子,假设未知的参数的设定是 b = 500,w = 1,预测未来的观看次数的函数就变成 y = 500 + x1。

估测的值跟实际的值之间的差距,其实有不同的计算方法,计算 y 与 yˆ 之间绝对值的差距,称为平均绝对误差(Mean Absolute Error,MAE)。如果算 y 与 yˆ 之间平方的差距,则称为均方误差(Mean SquaredError,MSE)。

有一些任务中 y 和 yˆ 都是概率分布,这个时候可能会选择交叉熵(cross entropy),这个是机器学习的第 2 步。

接下来进入机器学习的第 3 步:解一个最优化的问题。找一个 w 跟 b,把未知的参数找一个数值出来,看代哪一个数值进去可以让损失 L 的值最小,就是要找的 w 跟 b,这个可以让损失最小的 w 跟 b 称为 w∗ 跟 b∗ 代表它们是最好的一组 w 跟 b,可以让损失的值最小。梯度下降(gradient descent)是经常会使用优化的方法。为了要简化起见,先假设只有一个未知的参数 w,b 是已知的。w 代不同的数值的时候,就会得到不同的损失,这一条曲线就是误差表面。这一步的步伐的大小取决于两件事情:
(a)第一件事情是这个地方的斜率,斜率大步伐就跨大一点,斜率小步伐就跨小一点。
(b)另外,学习率(learning rate)η 也会影响步伐大小。学习率是自己设定的,如果 η 设大一点,每次参数更新就会量大,学习可能就比较快。如果 η 设小一点,参数更新就很慢,每次只会改变一点点参数的数值。这种在做机器学习,需要自己设定,不是机器自己找出来的,称为超参数(hyperparameter)。

梯度下降有一个很大的问题,没有找到真正最好的解,没有找到可以让损失最小的 w。图示如下:

右侧红点这个位置是真的可以让损失最小的地方,称为全局最小值(global minima),而 wT 这个地方称为局部最小值(local minima),其左右两边都比这个地方的损失还要高一点,但是它不是整个误差表面上面的最低点。所以常常可能会听到有人讲到梯度下降不是个好方法,这个方法会有局部最小值的问题,无法真的找到全局最小值。事实上局部最小值是一个假问题,在做梯度下降的时候,真正面对的难题不是局部最小值。有两个参数的情况下使用梯度下降,其实跟刚才一个参数没有什么不同。如果一个参数没有问题的话,可以很快的推广到两个参数。

在深度学习框架里面,比如 PyTorch 里面,算微分都是程序自动帮计算的。就是反复同样的步骤,就不断的更新 w 跟 b,期待最后,可以找到一个最好的 w,w∗ 跟最好的 b∗。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/53347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

浅谈二分算法

浅谈二分算法 二分 首先知道一下二分是什么。 二分,是一种快速处理大型数据的方法。基本逻辑是折半查找。 设有一个共有 \(n\) 个数字的数组,要从中查询某个元素,就可以用二分查找。 注:这里的数组默认其成员数值具有单调性。这个点十分重要。 还记得小时候(我现在才新初一…

推荐

DIN假设 \(V_i^{shop},V_i^{good},V_i^{cate}\) 分别表示历史第 \(i\) 次点击的 shop_id,good_id,cate_id, \(V_a^{shop},V_a^{good},V_a^{cate}\) 分别表示候选商品的 shop_id,good_id,cate_id,则两个不同版本用户兴趣表达 \(V_u\) 计算方式如下 \[\begin{align} g\left…

优化器

优化器 目录优化器SGDAdagradAdadeltaRMSpropAdamAdamW SGD 随机梯度下降 问题:训练轨迹会呈现锯齿状,这无疑会大大延长训练时间。同时,由于存在摆动现象,学习率只能设置的较小,才不会因为步伐太大而偏离最小值。 Momentum:将一段时间内的梯度向量进行了加权平均,分别计…

读软件开发安全之道:概念、设计与实施10安全设计审查

安全设计审查1. 安全设计审查 1.1. Security Design Review,SDR 1.2. 将安全性融入软件设计的最佳方法之一是戴上“安全帽”进行单独的设计审查 1.3. 安全审查员是熟悉软件运行的系统和环境,以及知道如何使用它的人,但他们不参与设计工作,这能够给予他们距离感以保持客观性…

【Java】FastJson 利用JSONPath.eval快速获取目标json的属性值

一、需求场景: JSON串格式化之后,JSON树的属性深度太长了 二、代码实现: 语法等效MySQL的JSON读取方式 方法调用的返回类型为Object,强转至String进行处理/* 读取报告时间 */ Object reportDateEval = JSONPath.eval(jsonObject, "$.categories[0].children[0].data.…

10.网络安全技术

12-1 数据备份策略和盘阵列备备份方式12-2 加密技术12-3 入侵检测系统IDS12-4 入侵防护系统IPS脚本属于应用12-5 网络版防病毒软件的安装及配置12-6 防火墙PIX配置过程下面nameif常考内网100外网0下面管道第二常考www是默认的80端口C,监视模式TCPorUDPfixup nat global

30 分钟内了解 IEC 61850

30 分钟内了解 IEC 61850 索引术语——IEC 61850 配置、语义分层对象数据模型、客户端 - 服务器、发布 - 订阅。平时学习标准或调试IEC61850设备,需要IEC61850模拟器,推荐一款:客户端下载地址:IEC61850客户端模拟器 服务端下载地址:IEC61850服务端模拟器谣传 IEC 61850 过…

6.2K star!推荐一款开源混沌工程测试平台:Chaos Mesh

1、Chaos Mesh 介绍 Chaos Mesh是一个开源的混沌工程平台,旨在帮助用户在生产环境中测试、验证和优化其应用程序的可靠性和稳定性。通过引入故障注入和混沌工程原则,Chaos Mesh可以模拟各种故障场景,如网络延迟、节点故障、磁盘故障等,以帮助用户发现和解决系统中的潜在问题…