梯度下降算法(高中生都能看懂的例子演示)

梯度下降算法在机器学习与神经网络中有广泛的应用,主要用来求最优参数,下面我们通过一个最简单的例子来演示梯度下降算法过程

示例:

举例:y = x ^ 2 ,通过梯度下降算法求y取最小值(极小值)时候的最优解x

求解过程主要通过迭代完成

迭代的方程为:

x = x - y'(x) * α

其中x为要求的解,y'(x)为梯度(也就是导数或偏导,我们在这里用最简单的一元函数演示,所以直接写成导数)

α为学习率(或称步长,是一个重要的参数,α的选择直接影响这着算法的效率)

算法过程:

1.首先任取一点,我们取x = 3,计算其导数y'(x) = 6

2.我们设定学习率为α = 0.4

3.开始算法的迭代:

(1)x = 3,y'(x) = 6,x = x - y'(x) * α = 0.6

(2)x = 0.6,y'(x) = 1.2,x = x - y'(x) * α = 0.12

(3)x = 0.12,y'(x) = 0.24,x = x - y'(x) * α = 0.024

(4)x = 0.024,y'(x) = 0.048,x = x - y'(x) * α = 0.0048

。。。

4.当梯度(导数)下降到很小或为0时,则求得的解x趋向最优解,比如本例中迭代到第四步时y'(x) = 0.048已经非常小了,x = 0.0048基本趋向于本例的真正解x = 0

算法图像演示:

图片是吴恩达视频里的图,但是和本例也差不多

梯度下降算法(高中生都能看懂的例子演示)_第1张图片

你可能感兴趣的:(算法,神经网络,深度学习,机器学习,人工智能)