机器学习中为什么需要梯度下降_机器学习算法——梯度下降(Gradient Descent)小结...

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。下面这篇刘老师的博客从数学角度已经介绍的很详细了,此篇文章主要是用具体的实例代码复现梯度下降算法。这一篇是一次函数的特例,在下面的文章中会用梯度下降算法求解多次函数的问题。

梯度下降(Gradient Descent)小结​www.cnblogs.com
3f71dc4013be590a388a0369c4c179ff.png

上面的博客是从数学角度来解释了梯度下降,初学者看到这一大推数学公式难免一头雾水,如何从多角度理解啥是梯度下降,它是如何来的,它又有什么现实的意义,用于解决什么问题,本人认为一个算法要多看几篇不同的文章,才能取长补短,才能形成自己的理解,面试的时候可以和面试官侃侃而谈,即可以从现实生活中举例说明,也可以从数学角度阐述,侃侃而谈,而不是机械的背文字说明,具体的可以参看下面这两篇文章。

马同学高等数学​www.matongxue.com 机器学习--什么是梯度?为什么梯度方向就是函数上升最快的方向?本文将给你解惑_人工智能_进击的菜鸟-CSDN博客​blog.csdn.net
92ac382689f91bca386adfaebb7ab9d0.png

代码需要有初级的py,numpy基础,可以看这两个教程:

Python多线程和多进程编程(并发编程)​c.biancheng.net
0d1ff8e80912d8375a8e250145311451.png
NumPy 教程 | 菜鸟教程​www.runoob.com
0828ec7f2bf7500362468502327b7b58.png

梯度下降法举例:
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt

求 = 2+2 +5的最小值并画函数图像:
x = np.linspace(-6,4,100)
y = x**2+2*x+5
plt.plot(x,y)
# plt.show()

87ad94768391d509735d3a476f68b9d6.png

初始化 x , α 和迭代次数:

x = 3

alpha = 0.8

iterationNum = 100

y的导数为2x+2,迭代求 theta:

for i in range(iterationNum):

x = x - alpha*(2*x+2)

输出最后的值:

print(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值