Task1:机器学习是什么
机器学习:机器学习是一种通过从数据中自动学习和改进的算法或模型,使计算机能够在没有明确编程的情况下执行特定任务的技术。它属于人工智能的一个分支,核心思想是通过构建和训练模型,从数据中发现模式或规律,然后利用这些模式或规律进行预测或决策。具体来讲,机器学习就是让机器具备找一个函数的功能。
机器学习的类别:
(1)回归:是一种常用的统计分析和机器学习方法,用于研究和描述因变量(目标变量)与一个或多个自变量(特征)之间的关系。回归模型的主要目的是预测或估计因变量的值,基于自变量的已知值。
在回归分析中,因变量通常是连续的数值,而自变量可以是连续的或分类的。回归分析的应用非常广泛,包括经济预测、风险管理、工程设计、市场分析等领域。
(2)分类:旨在根据输入数据将样本分配到不同的类别或标签中。分类问题的目标是训练一个模型,使其能够根据特征将新数据正确分类到预定义的类别中。与回归不同,分类的输出是离散的,即类别标签,而不是连续的数值。分类在许多领域有广泛的应用,例如:垃圾邮件过滤、图像分类、文本分类、疾病诊断等。
(3)结构化学习:是一种机器学习方法,用于处理输出具有复杂结构或依赖关系的任务。在传统的监督学习中,模型通常预测的是简单的单个标签或数值(如分类或回归问题)。而在结构化学习中,输出不是单一的标签或数值,而是具有内部依赖关系的复杂结构。结构化学习的目标是学习一个模型,使其能够直接预测复杂结构,如序列、树、图等。具体应用包括自然语言处理中的句法解析、图像分割、语音识别中的序列标注等。
案例学习:
以视频的点击次数预测为例介绍下机器学习的运作过程。假设有人想要通过视频平台赚钱,他会在意频道有没有流量,这样他才会知道他的获利。假设后台可以看到很多相关的信息,比如:每天点赞的人数、订阅人数、观看次数。根据一个频道过往所有的信息可以预测明天的观看次数。找一个函数,该函数的输入是后台的信息,输出是隔天这个频道会有的总观看的次数.
机器学习找函数的过程,分成 3 个步骤:
(1)假设有一个带有未知参数的函数f,其输出结果代表未来的观看人数。比如将函数简化成:
其中y是要预测的东西,即明天的观看人数,x1是已知数,代表着今天的观看人数,b跟w是未知数,它们是需要通过大量数据去猜测的。而猜测需要对这个问题本质上的了解,即领域知识(domain knowledge)。带有未知参数(parameter)的函数称为模型(model),模型在机器学习里面,就是一个带有未知的参数的函数,特征(feature) x1 是这个函数里面已知的,它是来自于后台的信息,而 w 跟 b 是未知的参数。w 称为权重(weight),b 称为偏置(bias)。
(2)定义损失(loss),损失也是一个函数。这个函数的输入是模型里面的参数,模型是 y = b + w ∗ x1,而 b 跟 w 是未知的,损失是函数 L(b, w),其输入是模型参数 b 跟w。损失函数输出的值代表,现在如果把这一组未知的参数,设定某一个数值的时候,这笔数值好还是不好。
(3)解一个最优化的问题。找一个w跟b,把未知的参数找一个数值出来,看代哪一个数值进去可以让损失L的值最小,就是要找的w跟b,这个可以让损失最小的w跟b称为w∗跟b∗,代表它们是最好的一组w跟b,可以让损失的值最小。
梯度下降(gradient descent)是经常会使用优化的方法。为了要简化起见,先假设只有一个未知的参数w,b是已知的。w代不同的数值的时候,就会得到不同的损失,这一条曲线就是误差表面,只是刚才在前一个例子里面,误差表面是2维的,这边只有一个参数,所以这个误差表面是1维的。怎么样找一个w让损失的值最小呢?
如下图所示:
首先要随机选取一个初始的点w0。接下来计算∂L/∂w|w=w0,即在w等于w0的时候,参数w对损失的微分。计在这一个点,在w0这个位置的误差表面的切线斜率,也就是这一条蓝色的虚线,它的斜率,如果这一条虚线的斜率是负的,代表说左边比较高,右边比较低。在这个位置附近,左边比较高,右边比较低。如果左边比较高右边比较低的话,就把w的值变大,就可以让损失变小。如果算出来的斜率是正的,就代表左边比较低右边比较高。左边比较低右边比较高,如果左边比较低右边比较高的话,就代表把w变小了,w往左边移,可以让损失的值变小。这个时候就应该把w的值变小。我们可以想像说有一个人站在这个地方,他左右环视一下,算微分就是左右环视,它会知道左边比较高还是右边比较高,看哪边比较低,它就往比较低的地方跨出一步。这一步的步伐的大小取决于两件事情:
•第一件事情是这个地方的斜率,斜率大步伐就跨大一点,斜率小步伐就跨小一点。
•另外,学习率(learning rate)η也会影响步伐大小。学习率是自己设定的,如果η
大一点,每次参数更新就会量大,学习可能就比较快。如果η设小一点,参数更新就很
慢,每次只会改变一点点参数的数值。这种在做机器学习,需要自己设定,不是机器自己找出来的,称为超参数(hyperparameter)。
梯度下降有一个很大的问题,没有找到真正最好的解,没有找到可以让损失最小的 w。在下图所示的例子里面,把 w 设定在最右侧红点附近这个地方可以让损失最小。但如果在梯度下降中,w0 是随机初始的位置,也很有可能走到 wT 这里,训练就停住了,无法再移动 w 的位置。右侧红点这个位置是真的可以让损失最小的地方,称为全局最小值(global minima),而 wT 这个地方称为局部最小值(local minima),其左右两边都比这个地方的损失还要高一点,但是它不是整个误差表面上面的最低点。