机器学习-梯度下降

本文探讨了梯度下降法在机器学习中的应用,包括参数同步更新、初始化对结果的影响、收敛速度变化及特征量纲对算法效率的作用。此外,还讨论了学习率的选择,指出其对损失函数收敛的影响,并建议通过绘制损失函数图像来调整学习率。对于多元回归问题,当特征数量较少时,最小二乘法可能比梯度下降法更快,但特征数量增加会导致最小二乘法计算复杂度显著上升。
摘要由CSDN通过智能技术生成

1.参数要同时更新

2.初始化不同,获得的最小值也不同,即得到的参数也不同,算法收敛到不同的局部最优解。凸函数只有全局最优解,无论如何初始化,不必担心陷入局部最优解

3.越接近最小值时,收敛的速度最逐渐减慢,在学习率不变的情况下,越接近最小值(最优解),偏导数的绝对值会越来越小,所以算法收敛的速度会逐渐的减慢

4.梯度下降求解参数时,如果特征处在相近的范围时(量纲相近)时,算法收敛得更快

5.学习率较小时,算法每一次迭代,损失函数都是在不断减小的,但是如果学习率取值过小就会导致算法收敛需要的迭代次数更多,需要消耗更多的时间;如果发现算法不收敛(损失函数随着迭代次数不断增加或者振荡)(画图),很有可能就是学习率取值偏大所导致的

如何选择合适的学习率:可以绘制损失函数和迭代次数的图像来判断学习率的取之是偏大还是偏小,学习率取一系列值(0.001,0.003,0.01,0.03,0.1,0.3,1.....),不同的学习率对于梯度下降法的影响非常大,选择合适的学习率至关重要

import numpy as np
import random
import matplotlib.pyplot as plt

np.random.seed(10) #设置随机数种子
x=np.random.randint(1,10,100).reshape(100,1)
# x1=(x-x.min())/(x.max()-x.min()) #特征缩放

y=x*5+1
alpha=0.01 #学习率


#一元回归梯度下降
def gd(x,y,alpha):

    Cost = [] #损失函数的取值
    Count &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值