机器学习故事汇-梯度下降
今天咱们的故事继续上一次线性回归来说,还不熟悉的小伙伴机票在这!机票直达-线性回归
当时咱们怎么唠的,是不是很多情况下要求解的目标没办法直接求呀!那该怎么办呢?咱们来用机器学习中最常用的套路-优化求解,也就是一步一步朝着最优解的方向前进!
首先给出目标函数(还记得线性回归中的目标函数吗?)也就是我们要达到的目标是使得目标函数最小(最小对应着梯度下降问题,也就是下山,那么最大也就是梯度上升,求极大值)可以把我们的优化目标看成一座山,山是由我们两个参数组成的,从上图可以看出在山中有一个山谷的最低点,这个最低点所对应的参数就是我们要求解的值!
那该怎么求解呢?下山要一步一步来,第一步要找到合适的下山方向,也就是参数所对应的梯度方向(偏导)因为我们要沿着最快的方向去下山,所以梯度的方向是最合适的(多个参数的时候需要各自求其偏导)。找到方向之后我们就该实际的去走啦,那一次走多大呢?经验表明一次走那么一小小小小步是比较合适的,因为如果步伐太大容易偏离全局最优解只得到局部最优解。方向与步长都搞定了,接下来按着我们设计好的路线更新参数就可以啦!
下山的方式也有很多种,我们来对比一下。
批量梯度下降:如上式需要综合考虑所有养那本,这就太慢了,但是效果还是蛮好的。
随机梯度下降:观察发现,每一次进行参数更新,只选择了一个样本,这样速度极快,但是代价就是一旦样本有瑕疵,会对结果产生很大的干扰!所以随机梯度下降会产生很大的浮动。
小批量梯度下降:这个就友好多了,综合了上面两位的优缺点,在迭代的时候选择一批(32,64,128比较常见)个样本来平均计算梯度的更新方向,这个就是现在应用最广的梯度下降方法啦!一个字,实用!
接下来我们再来研究一下步长(学习率)对结果产生的影响,从图中可以看到很多条线并且它们之间有着明显的差异,为啥模型不收敛!效果不好!没达标!罪魁祸首就是学习率了,它对我们结果会产生非常大的影响,一般情况下我们都是用较小的学习率,较多的迭代次数来满足它!
这张图是一个在真实数据集下使用逻辑回归进行迭代的目标函数变化情况,可以看到当我们使用梯度下降的时候目标函数最终达到了一个收敛状态,现在已经最好了吗?我们可以再增大些迭代次数再看看!
继续增大迭代次数,发现目标函数又发生了变化,所以要让模型更完美,需要更多轮次的训练!我们再来对比下不同的梯度下降策略!
这张图看起来有点乱呀,没有达到熟练状态,损失函数值还在乱蹦跶,这个就是随机梯度下降的结果,可以看出来这样的模型是不好的,只用一个样本来更新参数是不够的!所以现在我们很少使用随机梯度下降来解决实际问题。(那真的没办法用它了吗?也可以代价就是用极小的学习率配上极大的迭代次数,那为啥不用小批量的呢?)
最后的这张图就是收尾图啦,首先观察只用了4000次迭代就比之前的效果要好很多!这里做了如下两个工作。
(1):对数据进行了标准化,让数据各个特征均值为0方差为(数据预处理的常规套路)
(2):使用了小批量梯度下降进行迭代(保证了收敛性同时也加快了速度)
两个简单的操作就使得我们的模型效果快速达到了收敛状态,请记住这俩套路,你会一直沿用下去的!
数据分析咨询请扫描二维码
数据分析需要学习的内容非常广泛,涵盖了从理论知识到实际技能的多个方面。以下是数据分析所需学习的主要内容: 数学和统计学 ...
2024-11-24数据分析师需要具备一系列多方面的技能和能力,以应对复杂的数据分析任务和业务需求。以下是数据分析师所需的主要能力: 统计 ...
2024-11-24数据分析师需要学习的课程内容非常广泛,涵盖了从基础理论到实际应用的多个方面。以下是根据我搜索到的资料整理出的数据分析师需 ...
2024-11-24《Python数据分析极简入门》 第2节 6 Pandas合并连接 在pandas中,有多种方法可以合并和拼接数据。常见的方法包括append()、conc ...
2024-11-24《Python数据分析极简入门》 第2节 5 Pandas数学计算 importpandasaspdd=np.array([[81,&n ...
2024-11-23数据分析涉及多个方面的学习,包括理论知识和实践技能。以下是数据分析需要学习的主要方面: 基础知识: 数据分析的基本概念 ...
2024-11-22数据分析适合在多个单位工作,包括但不限于以下领域: 金融行业:金融行业对数据分析人才的需求非常大,数据分析师可以从事经 ...
2024-11-22数据分析是一种涉及从大量数据中提取有用信息和洞察力的过程。其工作内容主要包括以下几个方面: 数据收集与整理:数据分析师 ...
2024-11-22数据分析师需要掌握多种技能,以确保能够有效地处理和分析数据,并为业务决策提供支持。以下是数据分析师需要掌握的主要技能: ...
2024-11-22数据开发和数据分析是两个密切相关但又有所区别的领域。以下是它们的主要区别: 定义和目标: 数据开发:数据开发涉及数据的 ...
2024-11-22数据架构师是负责设计和管理企业数据架构的关键角色,其职责涵盖了多个方面,包括数据治理、数据模型设计、数据仓库构建、数据安 ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列的技能和能力,以确保能够有效地处理、分析和解释数据,从而支持业务决策。以下是数据分析师所需的主要 ...
2024-11-22需求持续增长 - 未来数据分析师需求将持续上升,企业对数据驱动决策的依赖加深。 - 预测到2025年,中国将需要高达220万的数据人 ...
2024-11-22《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21