当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第十章:实例分析与实践 >  10.1认识回归问题

返回《计算思维与人工智能基础》慕课在线视频课程列表

10.1认识回归问题在线视频

下一节:10.2房价的预测

返回《计算思维与人工智能基础》慕课在线视频列表

10.1认识回归问题课程教案、知识点、字幕

大家好

下面我们给大家介绍第十章实例

这章呢

我们主要给大家介绍几个实例

比如房价的预测

手写数字识别

和服饰图片的分类

那么在这些案例中呢

我们用到了神经网络的搭建

以及训练和最后的预测

主要大家需要掌握的是

全连接神经网络的搭建与应用

以及卷积神经网络的搭建与应用

下面我们和大家一起来认识一下回归问题

如果我们给定一些离散的点

那么通过调整若干的参数

来去拟合一个函数

那么这样的一个过程

其实就是一个拟合的过程

那么这个

我们主要的目的就是

使这个函数与已知点的这个差别是最小

那么就说我们拟合的比较准确

那么有的时候可以拟合成什么呀

一个线性的关系

也可以拟合成一个非线性关系

如果是线性的回归的话

那如果是一个单变量的

我们就称之为单变量线性回归

多变量的时候就是多变量线性回归

比如说我们可以看的到房间的这个面积大小

跟我们这个房价之间的

那么这个它有这样的一些离散点

我们可以把他拟合成一条什么呀

直线

那么这个就是一个单变量的线性回归

那么如果我们把它表示成一个数学表达式的话

我们很熟悉就是一个什么呀

y=w *x+b

那么我们X

就常说和这个b就是我们这两个参数来进行什么啊

寻优的

或者说我们

这个w就是我们的斜率

b就是我们截距

那么这个模型定了以后

那么我们说是如何求到这个最优的w和b值呢

那么这个呢其实它就是转化的

也就说我们已经知道了一些值和预测的值

他们之间什么呀

如果差距越来越小的话

那么就说我们拟合的就越来越好

这个去描述的话

那我们预测值和我们这个标签的这个值

它的之差的平方能把它称之为叫损失

那损失是一个数值

它表示用于什么呀

单个样本而言呢是模型预测的一个准确的程度

如果模型的预测完全准确

这个损失当然是零了啊

否则呢

它这个损失呢

总会是一个值

那么训练的目标呢

就是从所有的样本中找到一个平均损失最小的

这个刚才我们说的那个w权重和这个b偏差

那么一样

我们可以来可以看的到

这是我们给定的这几个点

那么给定这几个点

我们可以拟合出来这样一个曲线

也可以拟合出来这样的一个曲线

我们可以看到这个点到这个线之间的距离

距离其实就可以描述他损失

那么只不过我们的均方把这个损失给它扩大了

可以看的到

当然这条曲线比这条曲线拟合的可能要更好一点

也就是它的损失更小一些

那么这个里面呢

线性回归模型我们使用了一种称之为平方损失

又称为L2损失的损失函数

那就是我们均方误差MSE。

那么这个是指的是每个样本的平均平方损失

这个公式呢就是这样子的

我们可以看得到

这是我们的给的这个点的值

标签的值

那么这个是我们预测出来值

这是他的一个均方误差

那么这个它跟这个权值之间的关系呢是一个

我们可以看的到这是这样的一个

是一个二次函数

那么这个二次函数呢是一个什么啊

是个凸函数

那么我们可以找到斜率为0

那么也是它拟合最好的一个值

那么如何降低这个损失呢

在这里呢我们通常用的就是梯度下降法

那么什么是梯度呢

相对所有自变量偏导的这个具有方向和大小的一个矢量

就是梯度

梯度的方向指出了函数在给定点的上升最快的一个方向

那么梯度这个矢量值

在单变量的函数中

梯度其实就是我们的函数的一个微分

代表着函数在某个给定点了一个期限的一个斜率

那么多变量时呢

其实计算的就分别对每个变量进行微分

梯度下降法是一种通过计算并且减小梯度

将损失降至最低的一个技术

它主要是以这个训练数据为条件

来计算损失相对于模型参数的梯度

那么通俗的来说呢

梯度下降法是以迭代方式来调整参数

那么逐渐找到我们的这个w和b的一个最佳的组合

从而让我们这个损失降到最低的一个过程

那么梯度下降法一般的就是我们实现的时候

就是通过这个梯度乘一个学习率

那么来确定下一个位置

那么这样的话就可以不断地

我们找到这个最小值这样一个过程

那么在这个学习率的设置的时候呢

它的大小呢是对我们的学习速度是有影响的

如果我们太小的话

他的学习速度就比较慢

也就说他需要更多的时间

训练速度比较慢

但如果太大的时候

他会就有个震荡

这样呢也会有影响我们的什么呀

影响我们的这个学习的时间

那么每一个回归问题都存在一个合适的学习率

那么与损失函数的平坦程度是相关的

对于模型的训练呢

其实这个过程就是通过有标签的样本学习

来确定所有的这个我们的w和b的这个理想值

那么这是一种有监督式的学习呢

在这个学习的过程呢

是这样子的

我们首先我们给定了一个预测模型

也就是我们的一个y=wx+b

那么这个里面初始我们给了一个w和b的一个值

这样的话我们就可以预测出来

预测出来我们的这个预测点y的一些值

标签也有y的值

那么预测y值和标签y值就可以计算出损失函数

计算出损失函数啊

那我们再通过什么呀

再通过我们的梯度啊

那么通过我们的梯度下降法

来去下更新我们的参数

更新参数我们得到了新的模型里面的参数

来再得到预测值

跟我们这个实际的标签值来再计算损失

那我们这是一个不断优化这个参数

那么参数的优化

我们的梯度损失也是在不断的减小的

是这样的一个过程

那么具体的过程的描述我们可以是这样

初始化w、b的值

并且我们说要给一个学习率啊

那么根据当前的W值和B值就可以

算出我们前面讲的均方MSE

均方差损失

那么然后我们根据这个梯度下降法先计算我们什么呀

W的梯度

然后再计算b的梯度

然后再通过我们学习率 来去进行更新新的梯度

然后新的这个权重W的梯度和这个偏差b的梯度

然后再去计算损失

那么这就是一个迭代寻优的一个过程

下面呢我们可以通过一段代码

来观察一下我们一个线性模型的一个寻优的一个过程

我们来看一下

这是我们已知的一组x值和y值啊

一共有什么呀

有一百个这样的散点值啊

首先我们把这个值通过我们的图像把它什么呀

把它画出来啊

我们导入一下我们的numpy

我们这个数据呢

就放在我们这个是以csv的方式啊

放在这个文件里面

我们把它读出来

然后我们通过散点图

把它展示出来

我们可以看到

刚才看到那组数据呢

我们用散点图把它表示出来的话

它就是这样子的啊

一百个点

我们如何去用线性规划来去找到这个

我们的最佳的这条直线呢

那么这里面就要去找到这个w和b的值

那从上面的介绍过程我们首先我们来看

首先我们第一步呢

需要初始化我们的w值和b值

以及我们的学习率

初始化

那下面一步呢

其实我们就是一个什么如何去从这个初始的w、b值啊

然后拟合到我们损失最小的这样的一个过程

这个里面的我们迭代过程

我们假设给迭代什么呀

一定的次数

我们迭代是十次啊

下面这个跟刚上面一样

我们首先把这个散点图什么画出来

然后呢

这是我们定了一个迭代的次数

十次

这个是用来放我们的损失值的

那么放我们的损失

我们可以看到我们对于这个我们给定的数据

获得每一个x每一个y

然后我们求它的什么呀

每一个X+的什么

根据我们y等于什么呀

给定的w、b来去取这个预测值y

然后我们求出了损失的和

这是我们的什么呀

均方差

这是均方损失求和

然后我们再除以它就是均方差的损失

我们最后把它输出来啊

这个下面的就是我们按照现在的w、b

把这条这个函数得到这个预测值然后把我们这个什么呀

这个这条线把它画出来啊

这是第一步

也就说我们第一个给了一个的w和b的值

我们画出这条线

那下面是怎么样去我们去优化我们的w和b呢

通过梯度下降法

那么梯度w和b的梯度初值是

我们给了一个0

然后呢按照我们按照我们这个数据

这里面是我们的数据的长度

其实是一百个

那么每一个x值y值读进来

读进来以后我们求

我们前面已经有了损失函数嘛

在损失函数下的什么呀

w梯度

b的梯度

也就是我们这个损失函数对于这个它

wx加b减去y括号的平方

那么他对于我们这个w求导

这个求偏导

然后我们这个是对b的求导函数

那么这是一个啊

那么这个里面的我们可以循环

那么就是说每一个数据都来去求他的什么呀

w的梯度值求和

b的梯度值求和

最后呢我们可以得到它一个平均的w的梯度和b的梯度

然后我们去要更新的值

按照梯度下更新的值

我们前面讲过新的值就等于什么呀

我们原来的值

减去我们这个学习率乘以我们这个新的梯度值w

b的值也是同理

那么这就是我们得到了新的w和b

然后我们再到什么循环上面来去计算它的损失

然后按照我们现在这个梯度来画这样一部线

应该循环里画到什么

画到十条线

我们画到十条线

那么可以执行一下可以看

那么这个值呢其实就是我们这个地方有一个输出

就是我们这个把他的一个损失

均方差损失

那么均方差MSE的值可以看得到

它是不断的在什么呀

不断的在变小、变小、变小

到这个地方它的变化已经不是特别明显了

十次以后

那么这个曲线的变化的过程也是

我们看第一个是什么呀

w和b都等于0

w=0 b=0其实就是这条线

然后它在不断的优化优化

那么到最后这样的一个过程

那么这个就是我们

线性拟合通过我们梯度下降法来去寻优把w和b的

这样的一个过程

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

10.1认识回归问题笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。