【Datawhale X 李宏毅苹果书 AI夏令营】第一章学习笔记

yagi2016 2024-09-11 13:31:02 阅读 80

第一部分        名词解释

术语

定义

个人理解

机器学习

机器具备有学习的能力。具体来讲,机器学习就是让机器具备找一个函数的能力。

预测结果=函数(各种参数),机器学习的主要任务是找到这个“函数”。

深度学习

深度学习是机器学习的一种特殊形式,它利用了神经网络的结构来实现更高级的学习和预测能力。

利用神经网络结构实现机器学习的一种方法。

回归

假设要找的函数的输出是一个数值,一个标量(scalar),这种机器学习的任务称为回归。

标量(scalar)= 函数(各种参数),寻找这类函数的任务称为“回归”

分类

人类先准备好一些选项,这些选项称为类别(class),现在要找的函数的输出就是从设定好的选项里面选择一个当作输出,该任务称为分类。

类别(class) = 函数(各种参数),寻找这类函数的任务称为“分类”

结构化学习

产生一个有结构的物体,比如让机器画一张图,写一篇文章。这种叫机器产生有结构的东西的问题称为结构化学习。

包含结构的结果 = 函数(各种参数),寻找这类函数的任务称为“结构化学习”

模型

带有未知的参数(parameter)的函数称为模型(model)。

Y = b + ω * X1

特征

自变量x1,来自于已知的历史数据

特征是影响函数结果的某一方面的因素

权重

w 称为权重(weight)。

权重是针对某一方面的因素对函数结果的影响大小的调解参数

偏置

b 称为偏置(bias)。

偏置是除了所有影响因素之外的对函数结果影响的偏差,可以是系统误差或随机误差。

标签

利用历史数据得到的函数真实值。

标签主要用于模型结果的评价和训练。

损失函数

损失是函数 L(b, ω ),其输入是模型参数 b 跟w。损失函数输出的值代表,现在如果把这一组未知的参数,设定某一个数值的时候,这笔数值好还是不好。

损失函数用于检验某一组模型参数计算所得到的函数结果的优劣。

平均绝对误差(Mean Absolute Error,MAE)

估测的值跟实际的值之间的差距

均方误差(Mean SquaredError,MSE)

估测的值跟实际的值之间差距的平方

交叉熵(cross entropy)

衡量两个分布之间的差异

误差表面(error surface)

不同的参数,计算它的损失,画出来的等高线图

梯度下降(gradient descent)

一种求解最优化问题的方法

超参数(hyperparameter)

在做机器学习,需要自己设定,不是机器自己找出来的参数。

例如学习率η、预先设定的更新次数等

学习率(learning rate)η

也会影响步伐大小。学习率是自己设定的,如果 η 设大一点,每次参数更新就会量大,学习可能就比较快。如果 η 设小一点,参数更新就很慢,每次只会改变一点点参数的数值。

全局最小值(global minima)

整个误差表面上面的最低点。

局部最小值(local minima)

w0 是随机初始的位置,也很有可能走到 wT 这里,训练就停住了,无法再移动 w 的位置, wT 这个地方称为局部最小值(local minima)

第二部分        学习笔记

1、机器学习和深度学习

机器学习是一种让机器自动寻找某种函数的能力。一般解决较为简单的函数关系问题,比如回归、分类或结构化对象。

深度学习是机器学习的一种特殊形式,是指采用神经网络算法实现机器学习的目标。一般用于解决较为复杂的问题,比如NLP、语音、图像、视频等。

2、机器学习的运作过程

步骤一        写出一个带有未知参数的函数 f

这个函数f可以是各种形式的,最简单的形式是:y=b+w*x

这里y是因变量,x是自变量(在机器学习领域也被称为“特征”,可以理解为造成y这个函数结果变化的一个因素)。b和w都是参数:w是x的权重,意思是1个单位的x的变化,会引起w个单位的y的变化;b是偏置(数学里称为“截距”),意思是初始状态下(不考虑x这个因素的情况下),y的初始值是多少。

当然,函数f的形式还可以是各种类型的,特征x的数量也可以是更多个(比如x1、x2、......),随着特征数量的增加,参数w也会随之增加,于是,这个模型就变得越来越庞大(复杂),这是后话。

步骤二        定义损失函数L(b, ω )

还记得我们为什么出发吗?(不忘初心,牢记使命)

采用机器学习方法的目的是要找到一组(b,w),使得已知的x通过函数f,可以获得与真实的y(实际结果)最为接近的y'(预测(计算)值)。

为了可以度量一组参数(b,w)的优劣,于是我们定义了一个损失函数:

L=\frac{1}{N}*\sum e

公示中的e是某一组参数下,通过函数f计算出来的函数值和真实值之间的差,如果一共有N组特征值x1、x2......xN,那么就能得到N个函数计算结果y1'、y2'......yN',分别和真实的y1、y2......yN相减,会得到N个差,把这些差相加并除以N,就得到差的平均数,也就是要计算的损失值,这个结果标称了在某一组参数(b,w)下所有各组特征值计算结果与实际值的平均差。L越大,代表这一组参数越不好(计算结果y'与真实结果y差距越大),反之则越好。当然,根据不同的特征类型,差值e的计算方法也可以不同,比如可以采用上面的绝对平均数,也可以采用差值的平方(均方差),甚至对于符合某种概率分布的y和y',可以使用交叉熵。

步骤三        求最优化问题的解

既然有一组参数(b,w)最利于减小计算结果y'与真实值y之间的差,那么这一步就是要通过一种方法来找到这组参数,我们称为“求最优化问题的解”,这里提出了一种称为“梯度下降(gradient descent)”的方法。

这种方法的思想是这样的:先假设一个b参数的值,这样我们就只需要找到一个最优的w的值就可以了。我们通过损失函数,画出L-w曲线,我们通过微分求出每一个w对应的曲线上的点的斜率,如果这个斜率是负的,那么说明曲线左边高于右边,我们的目的是找到更小的L,所以应该往右移动一个微小的w;反之,如果这个斜率是正的,那么说明曲线左边低于右边,所以应该往左移动一个微小的w。重复上述过程,我们便可以找到曲线上“最低”的那个点,对应的w就是我们要找的最优的那个参数。

推广到两个参数的情形,于是我们画出了一个三维立体坐标图像L-b,w,此时我们需要找的是如何到达b,w平面的最低的洼地点,算法是一样的。

使用“梯度下降”的方法有个前提:参数b和w是连续的,如果不满足连续性,那么就无法求解微分。

还有一个问题:局部最小值问题,这个问题可以用“牛顿迭代法”求极小点的方法解决。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。