美文网首页
机器学习之梯度下降算法

机器学习之梯度下降算法

作者: 雪地小奶狗 | 来源:发表于2017-04-16 18:41 被阅读0次

    机器学习之梯度下降算法

    原文地址:blog.csdn.net/tianse12/article/details/70172494

    算法背景:

    以房价问题为由:

    房价变化可能有多种因素比如说房屋面积,房屋位置,房间数量等:

    我们假设一个向量x表示输入特征:x = [x0,x1.x2.......,xn],其中n为影响房价因素的数量

    估计函数:

    其中Θ为特征参数或者学习参数,该参数决定了特征变量Xi对估计的影响,用向量形式表示为:

    为了使得估计值与实际的值差别最小:

    我们建立一个函数去衡量输出模型的拟合效果,一般称为损失函数(loss functon)或者(cost function):

    函数选择了最小二乘法的原理,我们要做的便是最小化损失函数,取得的Θ值便是我们需要的参数。

    算法思想:

    随机找一个点,沿着下降最快的方向走到一个局部最低点,因此Gradient Descent存在局部最优的缺点。

    梯度的方向由J(Θ)对Θ的偏导数决定,可以得到参数的更新法则为:

    此算法Θ 随机生成初始值,再根据更新法则不断迭代更新Θ的值,其中α是学习率,表征的是下降的速度,若太大则可能越过最低点,太小则学习的速率太慢容易陷入局部最优点。迭代实则是循环,我们应当设置一定的条件终止循环,比如说循环达到一定的次数,或者Θ更新的差分值低于某个值等。

    另外,还需要提一点就是,当样本的数量达到一定的数量时,更新参数的计算量以及时间变大,因此一般选择随机梯度下降算法来增加参数的更新速率和频度,也即每次选取一定的训练样本进行更新计算,以便更快的收敛,随机梯度下降算法下降速度快,但不能收敛到全局最优,一般在最小值边缘徘徊。

    代码实现python:

    结果演示:

    结论:可以看出数据越来越接近。

    相关文章

      网友评论

          本文标题:机器学习之梯度下降算法

          本文链接:https://www.haomeiwen.com/subject/mlnaattx.html