机器学习基本概念(李宏毅课程)

一、概念:

1、机器学习概念:

机器学习 ≈ 训练生成一个函数f(.) ,这个函数相当复杂。

例如:

在这里插入图片描述

2、深度学习概念:

机器学习的目的是寻找一个满足需求的函数f(.),但是具体使用什么方式寻找f(.)没有说明。

深度学习为机器学习领域的一个子领域,故深度学习给出了寻找函数的方法,即通过“神经网络”来训练生成一个函数f(.) 。

例如:
在这里插入图片描述

二、深度学习中f(.)的输入和输出:

1、输入:

函数f(.)的输入可以是向量、矩阵、序列,根据不同场景使用不同的输入。

  • 向量
  • 矩阵:图像识别领域,一张图片可以转换成矩阵表示
  • 序列:序列预测、语音辨识、文字翻译领域输入可以转换成序列表示

在这里插入图片描述

2、输出:

根据不同任务需求f(.)的输出不同。

  • 数值
  • 类别:分类任务
  • 句子、图片:翻译任务、图片生成
    在这里插入图片描述

三、三种机器学习任务:

1、Regression回归任务介绍:

函数输入:过往PM2.5数据以及影响PM2.5的特征值
函数输出:预测未来PM2.5的值
在这里插入图片描述

2、Classification分类任务介绍:

函数输入:棋盘中黑子白子位置
函数输出:从19*19个选项中选择下一个落子位置
在这里插入图片描述

3、Structured Learning创造性学习:

函数输出:图片、文档等有结构的文件

四、机器学习步骤(模型训练阶段):

这里以回归任务为例:目标是根据2/25日浏览量数据预测2/26日浏览量数据。

第一步:定义一个含有未知参数的函数(以线性函数为例):

在这里插入图片描述
以最简单的线性回归函数y=b+Wx为例(当然机器学习的函数基本上不会这么简单):

  • 函数y=b+Wx即为平时称呼的模型
  • x为函数输入,输入的是2/25日浏览量数据
  • y为函数输出,输出的是未来2/26日浏览量数据
  • w和b都是超参数,初始为位置数,在模型训练过程中不断更新参数使得函数的输出值不断精确(模型训练阶段的最终目的是:训练集训练+验证集预测过程不断更新w和b),力图训练一个预测效果最优的模型
  • 其中w为x的权重,b为偏置值

第二步: 定义损失函数:

在这里插入图片描述
损失函数L(b,w)是一个已写好的函数,用于模型训练阶段每次更新超参数w和b时都会在验证集上使用该组w和b计算预测值,然后比较预测值和真实值的差异(损失),从而衡量本组训练得到的超参数w和b是否能使得模型预测效果最优。

  • 损失函数的输入为超参数b和w
  • Loss越大,即表示当前的一组b和w越差,Loss越小,即表示当前的一组b和w越优秀。

第三步: 寻找最优的w、b使得Loss最小:

1.梯度下降:

使用梯度下降法不断更新w和b,使得每次获得一组新的w和b(wn和bn)。

不断执行第二步和第三步使得获得最优的w和b(w和b)。
在这里插入图片描述

  • 其中η为学习率,用来控制梯度下降的快慢程度,也是一个超参数。

五、线性函数和复杂函数:

1、线性函数定义:

在这里插入图片描述

同(五),以最简单的线性回归函数y=b+Wx为例(当然机器学习的函数基本上不会这么简单):

  • x为函数输入,输入的是2/25日浏览量数据
  • y为函数输出,输出的是未来2/26日浏览量数据
  • w和b都是超参数,初始为位置数,在模型训练过程中不断更新参数使得函数的输出值不断精确(模型训练阶段的最终目的是:训练集训练+验证集预测过程不断更新w和b),力图训练一个预测效果最优的模型
  • 其中w为x的权重,b为偏置值

2、非线性函数定义:

线性函数y=wx+b不管超参数w和b如何变化,函数始终是一条直线,所以线性函数在处理具有复杂关系的xy时不适用。

  • 对于复杂函数,我们可以用简单的蓝色函数(Hard Sigmoid函数)叠加的方式来获得一个复杂函数,如下图所示:
    在这里插入图片描述
  • 对于曲线函数,我们可以对曲线每段取微分,每个微元看做是一个蓝色函数(Hard Sigmoid函数),无数个蓝色函数叠加也可以获得任意的曲线函数。
    在这里插入图片描述

3、如何表示出Hard Sigmoid函数:

各种曲线都可以通过蓝色函数(Hard Sigmoid)的叠加来表示,那么Hard Sigmoid函数又要如何表示?
在这里插入图片描述
有一种函数叫做sigmoid函数,该函数可以逼近任何的hard sigmoid函数,所以一般使用sigmoid函数来表示hard sigmoid函数。

从sigmoid函数的公式可以看出:

  • 通过改变w可以改变函数的斜率
  • 通过改变v可以改变函数的位置
  • 通过改变c可以改变函数的高度
    在这里插入图片描述
    因此,通过不同的sigmoid函数叠加我们可以获得任意的函数曲线。

4、对(四)中案例的深入理解(以非线性函数为例):

(四)中我们以线性函数y=wx+b为例,假设x和y是线性关系。其中x输入为2/25日浏览量数据,y输出为2/26日浏览量数据。而在现实中x和y不可能是简单的线性关系,那么函数应该如何表示?当然是使用我们的sigmoid函数:
在这里插入图片描述
进一步设想,案例中我们用2/25日浏览量数据预测2/26日浏览量数据,属于单特征,此时仅有一个输入x和一个输出y,如果我们输入数据为多特征,即要用2/01~2/25这25天的浏览量预测2/26日浏览量数据,函数应如何表示?很简单,数据中有25个特征,每个特征xi与y之间都有一个权重值wi, 因此多特征预测单变量的线性函数关系和非线性函数关系表示如下:
在这里插入图片描述

5.多特征预测单变量+非线性函数:

下面我们举个例子来深度理解多特征预测单变量+非线性函数

相关推荐

  1. 2020机器学习课程笔记(二)- 深度学习

    2024-02-22 07:56:01       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 07:56:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 07:56:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 07:56:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 07:56:01       18 阅读

热门阅读

  1. http缓存?强制缓存和协商缓存?

    2024-02-22 07:56:01       27 阅读
  2. 利用System.Web.HttpRuntime.Cache制作缓存工具类

    2024-02-22 07:56:01       31 阅读
  3. 神经网络量化

    2024-02-22 07:56:01       29 阅读
  4. C语言K&R圣经笔记 8.1文件描述符 8.2低级IO

    2024-02-22 07:56:01       26 阅读
  5. Gson 库的使用

    2024-02-22 07:56:01       24 阅读
  6. Linux常见命令 | 文件传输命令scp

    2024-02-22 07:56:01       25 阅读
  7. [opencvsharp]将Mat转float数组

    2024-02-22 07:56:01       30 阅读
  8. CSS总结

    CSS总结

    2024-02-22 07:56:01      28 阅读
  9. scss导出颜色变量为空对象

    2024-02-22 07:56:01       28 阅读
  10. 事件流 事件委托

    2024-02-22 07:56:01       33 阅读
  11. Vue中v-model的原理

    2024-02-22 07:56:01       26 阅读
  12. docker入门介绍

    2024-02-22 07:56:01       32 阅读