《零基础实践深度学习》波士顿房价预测任务1.3.3.5 总结

简介: 使用Numpy实现梯度下降算法来构建和训练线性模型进行波士顿房价预测的过程,并提供了模型保存的方法,同时提出了几个关于梯度计算、参数更新和神经网络训练的作业题目。

2.5 模型保存

Numpy提供了save接口,可直接将模型权重数组保存为.npy格式的文件。

In [53]

np.save('w.npy', net.w)
np.save('b.npy', net.b)

总结

本节我们详细介绍了如何使用Numpy实现梯度下降算法,构建并训练了一个简单的线性模型实现波士顿房价预测,可以总结出,**使用神经网络建模房价预测有三个要点:**

  • 构建网络,初始化参数w和b,定义预测和损失函数的计算方法。
  • 随机选择初始点,建立梯度的计算方法和参数更新方式。
  • 将数据集的数据按batch size的大小分成多个mini-batch,分别灌入模型计算梯度并更新参数,不断迭代直到损失函数几乎不再下降。

作业1-2

  1. 样本归一化:预测时的样本数据同样也需要归一化,但使用训练样本的均值和极值计算,这是为什么?

我看课程中老师说的是为了尽可能地模拟真实的环境,不过这个我不是很明白,我自己的理解是这样,我觉得一开始我们是将数据集进行划分的,80%划分为训练集,20%划分为测试集,因此测试集的归一化需要使用训练集的均值和极值进行计算,因为训练集更多嘛,测试集相对来说数据还是有点少的。

  1. 当部分参数的梯度计算为0(接近0)时,可能是什么情况?是否意味着完成训练?

这个呢,一开始我是以为那应该就是到达极值点了,但实际上我把我的数学知识都还给老师了。这个应该是不一定的,首先它有可能是确实到达了全局的极值点;但是也有可能只是一个局部的极值点,这个时候我们就要去和其他的极值点进行比较,判断哪个是全局的极值点如图1所示;同样它还有可能根本不是一个极值点,比如说马鞍这样一个特殊的图形,如图2所示,沿着y轴来看,确实是一个极小值,但是沿着x轴来看却不是极小值,而是一个极大值了,这就很有意思,所以说我们在考虑问题的时候一定要从多个角度去考虑,另外数学基础真的很重要,一定要好好学习数学知识。

作业 1-3

  1. 随机梯度下降的batchsize设置成多少合适?过小有什么问题?过大有什么问题?提示:过大以整个样本集合为例,过小以单个样本为例来思考。

随机梯度下降的batchsize应该根据自身的情况进行设定,如果数据集不是很大,可以将全部数据读入;如果数据太大,可以考虑使用mini-batch。

如果设置过小的话,如单个样本,那么每个epoch就会花费较多的时间,同时由于每次都按照一个样本进行更新梯度,那么可能梯度会方向混乱,最后导致无法收敛;如果设置过大的话,如整个样本集合,虽然epoch的时间减少了,但是可能需要更大的epoch,同时对于数据集很大的情况来说,可能会导致内存崩溃。所以要合理地选择batchsize。

此题目在1.5.2.4也有解答

  1. 一次训练使用的配置:5个epoch,1000个样本,batchsize=20,最内层循环执行多少轮?

在《1.5训练过程和校验效果》的8:35左右,老师解答 一个epoch会执行1000/20 = 50次,50*5(epoch)=250轮:最内层循环执行250轮

作业1-4

基本知识

1. 求导的链式法则

链式法则是微积分中的求导法则,用于**求一个复合函数的导数**,是在微积分的求导运算中一种常用的方法。复合函数的导数将是构成**复合这有限个函数在相应点的导数的乘积**,就像锁链一样一环套一环,故称链式法则。如图9所示,如果**求最终输出对内层输入(第一层)的梯度,等于外层梯度(第二层)乘以本层函数的梯度**

图9:求导的链式法则

2. 计算图的概念

(1)为何是反向计算梯度?即**梯度是由网络后端向前端计算**。当前层的梯度要依据处于网络中后一层的梯度来计算,所以只有先算后一层的梯度才能计算本层的梯度。

(2)案例:购买苹果产生消费的计算图。假设一家商店9折促销苹果,每个的单价100元。计算一个顾客总消费的结构如图10所示。

图10:购买苹果所产生的消费计算图

  • 前向计算过程:以黑色箭头表示,顾客购买了2个苹果,再加上九折的折扣,一共消费100*2*0.9=180元。
  • 后向传播过程:以**红色箭头表示,根据链式法则,本层的梯度计算 * 后一层传递过来的梯度,所以需从后向前计算**

最后一层的输出对自身的求导为1。导数第二层根据图11所示的乘法求导的公式,分别为0.9(本层梯度(乘法公式)为那个折扣0.9)*1(上层的梯度)和200(0.9下面的本层梯度是200)*1(上层的梯度)。同样的,第三层数量的反向梯度为100 (本层梯度)* 0.9(第二层的反向梯度)=90,2 * 0.9=1.8。

图11:乘法求导的公式

作业题
  1. 根据 图12 所示的乘法和加法的导数公式,完成 图13 购买苹果和橘子的梯度传播的题目。

图12:乘法和加法的导数公式

图13:购买苹果和橘子产生消费的计算图

加法不太会???看了大佬的感觉很对,加法就应该这样

  1. 挑战题:用代码实现两层的神经网络的梯度传播,中间层的尺寸为13【房价预测案例】(教案当前的版本为一层的神经网络),如 图14 所示。

图14:两层的神经网络

相关文章
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
9月前
|
机器学习/深度学习 人工智能 监控
河道塑料瓶识别标准数据集 | 科研与项目必备(图片已划分、已标注)| 适用于YOLO系列深度学习分类检测任务【数据集分享】
随着城市化进程加快和塑料制品使用量增加,河道中的塑料垃圾问题日益严重。塑料瓶作为河道漂浮垃圾的主要类型,不仅破坏水体景观,还威胁水生生态系统的健康。传统的人工巡查方式效率低、成本高,难以满足实时监控与治理的需求。
|
9月前
|
机器学习/深度学习 传感器 人工智能
火灾火焰识别数据集(2200张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在人工智能和计算机视觉的快速发展中,火灾检测与火焰识别逐渐成为智慧城市、公共安全和智能监控的重要研究方向。一个高质量的数据集往往是推动相关研究的核心基础。本文将详细介绍一个火灾火焰识别数据集,该数据集共包含 2200 张图片,并已按照 训练集(train)、验证集(val)、测试集(test) 划分,同时配有对应的标注文件,方便研究者快速上手模型训练与评估。
3402 10
火灾火焰识别数据集(2200张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
|
9月前
|
机器学习/深度学习 人工智能 监控
坐姿标准好坏姿态数据集(图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
坐姿标准好坏姿态数据集的发布,填补了计算机视觉领域在“细分健康行为识别”上的空白。它不仅具有研究价值,更在实际应用层面具备广阔前景。从青少年的健康教育,到办公室的智能提醒,再到驾驶员的安全监控和康复训练,本数据集都能发挥巨大的作用。
坐姿标准好坏姿态数据集(图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
|
9月前
|
机器学习/深度学习 数据采集 算法
PCB电路板缺陷检测数据集(近千张图片已划分、已标注)| 适用于YOLO系列深度学习检测任务【数据集分享】
在现代电子制造中,印刷电路板(PCB)是几乎所有电子设备的核心组成部分。随着PCB设计复杂度不断增加,人工检测PCB缺陷不仅效率低,而且容易漏检或误判。因此,利用计算机视觉和深度学习技术对PCB缺陷进行自动检测成为行业发展的必然趋势。
PCB电路板缺陷检测数据集(近千张图片已划分、已标注)| 适用于YOLO系列深度学习检测任务【数据集分享】
|
9月前
|
机器学习/深度学习 编解码 人工智能
102类农业害虫数据集(20000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在现代农业发展中,病虫害监测与防治 始终是保障粮食安全和提高农作物产量的关键环节。传统的害虫识别主要依赖人工观察与统计,不仅效率低下,而且容易受到主观经验、环境条件等因素的影响,导致识别准确率不足。
|
机器学习/深度学习 人工智能 监控
单车、共享单车已标注数据集(图片已划分、已标注)|适用于深度学习检测任务【数据集分享】
数据是人工智能的“燃料”。一个高质量、标注精准的单车与共享单车数据集,不仅能够推动学术研究的进步,还能为智慧交通、智慧城市的建设提供有力支撑。 在计算机视觉领域,研究者们常常会遇到“数据鸿沟”问题:公开数据集与真实业务需求之间存在不匹配。本次分享的数据集正是为了弥补这一不足,使得研究人员与工程师能够快速切入单车检测领域,加速模型从实验室走向真实应用场景。
|
9月前
|
机器学习/深度学习 自动驾驶 算法
道路表面缺陷数据集(裂缝/井盖/坑洼)(6000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
随着城市化与交通运输业的快速发展,道路基础设施的健康状况直接关系到出行安全与城市运行效率。长期高强度的使用、气候变化以及施工质量差异,都会导致道路表面出现裂缝、坑洼、井盖下沉及修补不良等缺陷。这些问题不仅影响驾驶舒适度,还可能引发交通事故,增加道路养护成本。
道路表面缺陷数据集(裂缝/井盖/坑洼)(6000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
|
机器学习/深度学习 人工智能 编解码
AI虫子种类识别数据集(近3000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含近3000张已划分、标注的虫子图像,适用于YOLO系列模型的目标检测与分类任务。涵盖7类常见虫子,标注采用YOLO格式,结构清晰,适合农业智能化、小样本学习及边缘部署研究。数据来源多样,标注精准,助力AI虫害识别落地应用。
|
机器学习/深度学习 数据采集 人工智能
《零基础实践深度学习》基于线性回归实现波士顿房价预测任务1.3.3
这篇文章详细介绍了如何使用线性回归算法实现波士顿房价预测任务,包括数据读取、形状变换、集划分、归一化处理、模型设计、前向计算以及损失函数的计算等步骤,并提供了相应的Python代码实现。
 《零基础实践深度学习》基于线性回归实现波士顿房价预测任务1.3.3