首页 > 其他分享 >第一讲、机器学习介绍

第一讲、机器学习介绍

时间:2023-03-01 14:44:16浏览次数:58  
标签:机器 函数 一个 模型 介绍 学习 参数 分段

第一讲、 机器学习基本概念简介

01.什么是机器学习

机器学习就可以了理解为使用机器具备找一种函数的能力,帮我们找到一个函数

深度学习就是找到一个函数,这个函数是一个类神经网络

其输入可以是一个向量、一个矩阵、也可以是一个序列,输出可以是一个数值(此任务叫做regression回归任务)、可以是一个类别(此任务叫做classification分类任务)、也可以叫机器写一段话写一篇文章

什么是kaggle

http://www.kaggle.com/是一个线上平台,平台上有很多和机器学习有关的比赛

专有名词介绍

  1. Regression:回归,找到的函数输出是一个数值。比如:预测未来某一个时间pm2.5的数值

  1. Classification:分类,给定机器类别选项,从这些选项中选择一个进行输出。比如:判断邮件是否是垃圾邮件

阿尔法狗其本身也是一个分类模型,但是其选项是很多的,交给机器下围棋的问题,其实就是有19*19个选项的选择题。

  1. Structured Learning:现在的机器学习领域已经不满足仅仅输出一串数字和亿个选项,而是想去输出一个有结构的物件,比如让机器画一张图,写一篇文章,此类问题就是Structured Learning

02.怎么让机器找一个函数

假设我们可以找到一个函数,这个函数的输入是youtube后台播放的各种数据(点赞人数、打赏人数、播放次数等),函数的输出就是预测明天视频会有多少观看次数。那接下来要考虑的就是如何找出这个函数呢?

机器学习找这个函数的步骤分为三个步骤(训练的步骤):

  1. 写出一个带有未知参数的函数,即对函数的样子有一个最初步的猜测,这个带有未知参数的函数就称为模型model

  2. 定义一个Loss(也是一个函数,其输入是模型里面的参数,其输出的值代表着,当把输入的参数设定为某一个数值时,这个数值是好还是不好)

  1. 找出最佳化的问题,找一组参数带入到Loss函数里面,让Loss函数得出来的值最小,这一组最好的参数就是函数模型的参数

    • 先选择一个参数值w

    • 在计算这个参数值的偏导

    • 如果是正数则减小参数w,如果是复数则增大参数w

  • 学习率η也是需要选择适当的大小

  • 使用梯度下降更多的是找到局部最优解而不是 全局最优解

03.Piecewise Linear(分段线性函数)

Linear models线性回归模型

该模型有着很大的局限性,即不论如何改变w和b的值,该模型永远都是一条直线,放入模型中的意义就是:前一天观看人数越多,后一天的观看人数就会越多,但事实可能是很复杂的函数模型或者是一个折线模型。这种来自于模型的限制叫做Model Bias

所以需要写出一个更加复杂的带有位置参数的函数模型。假设更复杂的模型可以看作是一个一个常数值加上多个特定的函数

这个常数项的值是红色线与y轴的交点在哪里,这个常数项设置成为和y轴交点大小一样大,蓝色函数斜坡的起点设置在红色坡度起点处,斜坡的终点设在斜坡的转角处,并且设置蓝色函数的斜坡和红色函数的胁迫保持一致!

之后再加第二个蓝色的函数,其起点和红色第一个转折点保持一致,斜坡终点和第二个转折点保持一致,斜坡的坡度和红色函数保持一致,最后加上给定的常数值

最后以同样的方法加上第三个函数,最终得到红色函数

Piecewise Linear(分段线性函数)的Curves(曲线)都有办法用常数项加一大堆的蓝色函数组合起来,如果分段函数的转折点越多越复杂,则需要的蓝色函数就会越多

如果考虑到x和y的关系并不是线性的规则的分段函数,那我们可以在此函数上取一些点,将点相连可以得到分段线性函数,取得点越多越能更加接近原来的曲线。所以我们可以用分段函数的曲线去逼近任何的连续曲线,而每一个分段函数曲线,都可以用一大堆蓝色函数表示出来

上文中提到的蓝色曲线函数可能并没有那么容易写出来,但是可以使用一个Sigmoid曲线来逼近它,蓝色的函数就叫做Hard Sigmoid

我们需要各种的各式各样的hard sigmoid函数所以就可以通过调整不同的w、c和b来制造各式各样的斜率的蓝色函数,不同的w有不同的坡度,不同的b会让函数左右移动,不同的c会让函数有不同的高度

所以上方函数用数学语言表达出来后

如果只考虑前三天的观看人数,其中j的取值是1、2、3表示前一天到三天的观看人数,i的取值也是1到3,每一个i代表也一个蓝色的函数,每一个x都乘以对应的w再相加最后加上b这是一个sigmoid函数里面的内容

类似的可以分别得出来三个sigmoid函数里面的内容

用线性代数的矩阵进行表示是

再把r1到r3再通过sigmoid函数模型(也就是分段函数的三段)

再将函数最后整合得到想要的y

将所有用到的数值进行分类,其中x叫做feature特征项,其余的都是位置参数,如果将这些参数进行整合,得到的一个很长的向量,称为θ,其内容是来自于各个未知参数。所有的未知参数都统称θ

至此相对于前面的线性回归函数来说,分段函数找函数模型的第一步被进行了改变,第二部的loss函数其实并没有什么改变,处理方式依旧是找到预测值和实际值之间的差距只是loss函数从L(W,b)变成了L(θ)

要计算θ的最小值θ*,则要先选定一个初始值θ0,之后对θ里面的每一个值进行偏导数的微分,之后的结果集合起来就是一个向量g(名字叫做gradient)之后进行参数θ的更新,直到参数无法再更新,找到了局部最优解(不一定是全局最优)

在实际实验中通常并不是使用全部的数据进行计算,而是将数据随机分成batch之后用不同的batch计算出不同的gradient,把所有的batch都使用一次,叫做Epoch,每一次更新参数叫做一次update

有时候想要使用其他函数,比如可以选择hard sigmoid或者使用Rectified Linear Unit(ReLU函数),两个ReLU函数可以加和成一个hard Sigmund函数

模型还可以从其他的方面进行改进,比如将一次计算的结果再放入一次sigmoid函数,得到的结果还可以迭代放入sigmoid函数,这样得到的loss函数可能会降低很多,至于进行多少次迭代则是人为进行决定的。因为可能会发生在训练资料上表现变得更好,在没有看过需要预测的资料上表现变得不好,这就是overfitting过拟合问题

至此上述的内容有了响亮的名字神经网络Neural Network,后来每一层很多的神经元都叫做隐藏层,很多个隐藏层共通组成了深度学习Deep Learning

标签:机器,函数,一个,模型,介绍,学习,参数,分段
From: https://www.cnblogs.com/bolunwei/p/17168111.html

相关文章