精华内容
下载资源
问答
  • Logistic回归代价函数的梯度下降公式推导过程Logistic回归代价函数梯度下降公式数学推导过程数学推导过程如下 Logistic回归代价函数梯度下降公式数学推导过程 因为最近在学习吴恩达的机器学习,这只是个人顺手保存...

    Logistic回归代价函数的梯度下降公式推导过程

    Logistic回归代价函数梯度下降公式数学推导过程

    因为最近在学习吴恩达的机器学习,这只是个人顺手保存一下自己认为比较重要的数学推导公式,之后也会继续保存之前未保存的一些算法的数学推导过程。

    数学推导过程如下

    J(θ)是Logistic回归算法的代价函数在这里插入图片描述
    在这里插入图片描述
    以上就是代价函数的求导过程,只是自己的一个笔记,不喜勿喷,谢谢。

    展开全文
  • 在gradient descent 梯度下降公式中,一般的表达都是如下: ​ 论坛链接:为什么用这个公式

    在gradient descent 梯度下降公式中,一般的表达都是如下:
    这里写图片描述
    之前没有认真思考这个公式为什么这样定义?只理解到学习率如何影响到最小值的获得。
    这里写图片描述
    但是学习率 α 后为什么用 θ1处的求导呢?在吴恩达的课程论坛中也看到类似的提问:
    论坛链接:为什么用这个公式

    有个回答很清楚,我直接贴过来了。可以看出,其实可以不必使用cost function的导数。
    这里写图片描述

    但是用cost fucntion求导肯定有其好处,这篇文章阐述的很清楚,如 链接:Gradient Descent Derivation
    Why does gradient descent use the derivative of the cost function? Finding the slope of the cost function at our current Ѳ value tells us two things.
    为什么梯度下降公式中使用 cost function的导数?在当前的 θ点上,计算出cost function的导数有两个好处:

    The first is the direction to move theta in. When you look at the plot of a function, a positive slope means the function goes upward as you move right, so we want to move left in order to find the minimum. Similarly, a negative slope means the function goes downard towards the right, so we want to move right to find the minimum.
    第一:可以决定移动的方向,在cost function函数曲线中,当斜率为正时,如果向右移动,那么函数值向上增加,所以此时需要向左移动以找到最小值。

    The second is how big of a step to take. If the slope is large we want to take a large step because we’re far from the minimum. If the slope is small we want to take a smaller step. Note in the example above how gradient descent takes increasingly smaller steps towards the minimum with each iteration.
    第二:可以决定移动的幅度。

    展开全文
  • 机器学习之多元线性回归模型梯度下降公式与代码实现(篇二)

    微信公众号:大数据左右手
    专注于大数据技术,人工智能和编程语言
    个人既可码代码也可以码文字。欢迎转发与关注

    上一篇我们介绍了线性回归的概述和最小二乘的介绍,对简单的一元线性方程模型手推了公式和python代码的实现。

    机器学习之线性回归模型详细手推公式与代码实现(篇一)

    今天这一篇来介绍多元线性回归模型

    多元线性回归模型介绍

    在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大

    比如糖尿病人的血糖变化可能受胰岛素、糖化血红蛋白、血清总胆固醇、甘油三酯等多种指标的影响。但很多情况下,由于自变量的单位是不一样的,需要做标准化处理。比如在消费水平预测模型中,工资水平、受教育程度、职业、地区、家庭负担等因素都会影响到消费水平,而这些影响因素的单位和量级肯定是不同的,虽然不会影响自变量的重要程度,但是对回归系数的大小还是有直接影响作用的。标准化回归系数没有单位,其值越大,说明该自变量对因变量的影响越大。

    数学模型

    1.描述因变量 y 如何依赖于自变量 X1,X2,…,Xn 和误差项ε的方程,称为多元回归模型

    2.涉及n个自变量的多元回归模型可表示为

    • 应变量Y可以近似地表示为自变量x1,x2,…,xm的线性函数

    • ω0为常数项

    • ω1,ω2,…,ωm是偏回归系数,表示在其他变量不变时时候x增加一个或者减少一个单位时候,Y的平均变化量

    • ε是被称为误差项的随机变量,又称为残差

    3.参数𝜃 ∶= {𝑤1,𝑤2,𝑤3,…,𝑤𝑛,𝑏}确定了模型的状态,通过固定𝜃参数即可确定此模型的处理逻辑。当输入节点数𝑛 = 1时,数学模型可进一步简化为最简单的模型

    𝑦 = 𝑤𝑥 + 𝑏

    4.对于某个神经元来说,𝑥和𝑦的映射关系f。𝑤,𝑏是未知但确定的。两点即可确定一条直线,为了估计𝑤和𝑏的值,我们只需从图中直线上采样任意2个数据点就可以表示这条直线。

    5.可以看到,只需要观测两个不同数据点,就可完美求解单输入线性模型的参数,对于n输入的现象模型,只需要采样n + 1组不同数据点即可,似乎线性模型可以得到完美解决。那么上述方法存在什么问题呢?考虑对于任何采样点,都有可能存在观测误差

    𝑦 = 𝑤𝑥 + 𝑏 +  𝜖

    6.一旦引入观测误差后,即使简单如线性模型,如果仅采样两个数据点,可能会带来较大估值偏差。如果基于蓝色矩形块的两个数据点进行估计,则计算出的蓝色虚线与真实橙色直线存在较大偏差。为了减少观测误差引入的估计偏差,可以通过采样多组数据样本集合𝔻 =

    ,然后找出一条“最好”的直线,使得它尽可能地让所有采样点到该直线的误差之和最小

    7.由于观测误差𝜖的存在,当我们采集了多个数据点𝔻时,可能不存在一条直 线完美的穿过所有采样点。退而求其次,我们希望能找到一条比较“好”的位于采样点中 间的直线。那么怎么衡量“好”与“不好”呢?一个很自然的想法就是,求出当前模型的 所有采样点上的预测值𝑤𝑥(𝑖) +𝑏与真实值𝑦(𝑖)之间的差的平方和作为总误差ℒ

    1. 然后搜索一组参数𝑤∗,𝑏∗使得ℒ最小,对应的直线就是我们要寻找的最优直线

    梯度下降法介绍

    根据上面数学分析,我们确定用梯度下降法来计算多元线性模型,当然还有更多计算方式。

    梯度下降法又称最速下降法,是求解无约束最优化问题的一种最常用的方法,在对损失函数最小化时经常使用。梯度下降法是一种迭代算法。选取适当的初值x(0),不断迭代,更新x的值,进行目标函数的极小化,直到收敛。由于负梯度方向时使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新x的值,从而达到减少函数值的目的

    关于梯度下降算法的直观理解,我们以一个人下山为例。比如刚开始的初始位置是在红色的山顶位置,那么现在的问题是该如何达到蓝色的山底呢?按照梯度下降算法的思想,它将按如下操作达到最低点:

    • 第一步,明确自己现在所处的位置

    • 第二步,找到相对于该位置而言下降最快的方向

    • 第三步, 沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低

    • 第四部, 回到第一步

    • 第五步,终止于最低点

    按照以上五步,最终达到最低点,这就是梯度下降的完整流程。当上图并不是标准的凸函数,往往不能找到最小值,只能找到局部极小值。所以你可以用不同的初始位置进行梯度下降,来寻找更小的极小值点,当然如果损失函数是凸函数就没必要了

    计算梯度

    根据之前介绍的梯度下降算法,我们需要计算出函数在每一个点上的梯度信息

    • ∂ℒ/∂𝑤

    • ∂ℒ/∂b

    • 需要优化的模型参数是𝑤和𝑏,因此我们按照下面方式循环更新参数,其中𝜼为学习率 

       

     

    学习率(步长)介绍

    我们可以通过𝜼来控制每一步走的距离,以保证不要走的太快,错过了最低点(右图所示),同时也要保证收敛速度不要太慢

    所以在选择𝜼大小的时候在梯度下降中是非常重要的,不能太大也不能太小

    代码实现

    • 引入依赖

    import numpy as np
    import matplotlib.pyplot as plt
    

     

    • 导入数据

    points = np.genfromtxt('linear.csv', delimiter=',')
    
    points[0,0]
    
    # 提取points中的两列数据,分别作为x,y
    x = points[:, 0]
    y = points[:, 1]
    
    # 用plt画出散点图
    plt.scatter(x, y)
    plt.show()
    

    效果

     

    • 定义损失函数

    # 损失函数是系数的函数,另外还要传入数据的x,y
    def compute_cost(w, b, points):
        total_cost = 0
        M = len(points)
    
        # 逐点计算平方损失误差,然后求平均数
        for i in range(M):
            x = points[i, 0]
            y = points[i, 1]
            total_cost += ( y - w * x - b ) ** 2
    
        return total_cost/M
    

     

    • 定义模型的超参数

      alpha:学习率

      num_iter:训练优化 10次(可以自行设定)

    alpha = 0.0001
    initial_w = 0
    initial_b = 0
    num_iter = 10
    

     

    • 定义核心梯度下降算法函数

    def grad_desc(points, initial_w, initial_b, alpha, num_iter):
        w = initial_w
        b = initial_b
        # 定义一个list保存所有的损失函数值,用来显示下降的过程
        cost_list = []
    
        for i in range(num_iter):
            cost_list.append( compute_cost(w, b, points) )
            w, b = step_grad_desc( w, b, alpha, points )
    
        return [w, b, cost_list]
    
    def step_grad_desc( current_w, current_b, alpha, points ):
        sum_grad_w = 0
        sum_grad_b = 0
        M = len(points)
    
        # 对每个点,代入公式求和
        for i in range(M):
            x = points[i, 0]
            y = points[i, 1]
            sum_grad_w += ( current_w * x + current_b - y ) * x
            sum_grad_b += current_w * x + current_b - y
    
        # 用公式求当前梯度
        grad_w = 2/M * sum_grad_w
        grad_b = 2/M * sum_grad_b
    
        # 梯度下降,更新当前的w和b
        updated_w = current_w - alpha * grad_w
        updated_b = current_b - alpha * grad_b
    
        return updated_w, updated_b
    

     

    • 测试:运行梯度下降算法计算最优的w和b

    w, b, cost_list = grad_desc( points, initial_w, initial_b, alpha, num_iter )
    
    print("w is: ", w)
    print("b is: ", b)
    
    cost = compute_cost(w, b, points)
    
    print("cost is: ", cost)
    
    plt.plot(cost_list)
    plt.show()
    

    效果

    • w is:  xxxxxxxx

    • b is:  xxxxxxxx

    • cost is:  xxxxxxxx

     

    • 画出拟合曲线

    plt.scatter(x, y)
    # 针对每一个x,计算出预测的y值
    pred_y = w * x + b
    
    plt.plot(x, pred_y, c='r')
    plt.show()
    

    效果

    上述例子比较好地展示了梯度下降算法在求解模型参数上的强大之处。需要注意的 是对于复杂的非线性模型,通过梯度下降算法求解到的𝑤和𝑏可能是局部极小值而非全局 最小值解,这是由模型函数的非凸性决定的。但是我们在实践中发现,通过梯度下降算法 求得的数值解,它的性能往往都能优化得很好,可以直接使用求解到的数值解𝑤和𝑏来近似作为最优解。

    思考

    首先假设𝑛个输入的数学模型为线性模型之后,只采样𝑛 + 1个数据点就可以估计线性模型的参数𝒘和𝑏。引入观测误差后,通过梯度下降算法,我们可以采样多组数据点循环优化得到𝒘和𝑏的数值解。如果我们换一个角度来看待这个问题,它其实可以理解为一组连续值(向量)的预测问题。给定数据集𝔻,我们需要从𝔻中学习到数据的真实模型,从而预测未见过的样本的输出值。在假定模型的类型后,学习过程就变成了搜索模型参数的问题,比如我们假设为线性模型,那么训练过程即为搜索线性模型的𝒘和𝑏参数的过程。训练完成后,利用学到的模型,对于任意的新输入𝒙,我们就可以使用学习模型输出值作为真实值的近似。从这个角度来看,它就是一个连续值的预测问题。

    未完待续 ……欢迎关注

    微信公众号:大数据左右手
    专人要去的地方,除了远方,还有未来
    欢迎关注我,一起学习,一起进步!

     

     

    展开全文
  • 该课程在讲到梯度下降时。有一个公式。如下图 难点就是求导过程,求导结果如下: 但老师直接给出了求导的答案。没有讲解推导过程。我便学了两天微积分的导数。试图推导该公式。若有什么不正确的地方望指正。 ...

    该课程在讲到梯度下降时。有一个公式。如下图

    难点就是求导过程,求导结果如下:

    但老师直接给出了求导的答案。没有讲解推导过程。我便学了两天微积分的导数。试图推导该公式。若有什么不正确的地方望指正。

    首先是j=0时的求导公式推导:

    j=1时的求导公式推导

     

    其实只要学下导数就可以进行推导了

    课程链接:

    微分课程:http://open.163.com/special/Khan/differentialcalculus.html

    结果

    多元梯度下降求导

     

    结果

    展开全文
  • mllib之梯度下降公式推导

    千次阅读 2015-03-25 00:15:14
    梯度下降(GD)是最小化风险函数、损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路,下面从公式和实现的角度对两者进行分析,如有哪个方面写的不对,希望网友纠正。 下面的h(x)是要拟合的...
  •  注意,在迭代过程中,θ的所有特征是同步更新的,所以根据给定的数据集,就能使用梯度下降算法来求解θ了,迭代终止条件即是将当前θ带入cost函数,求出代价值,与上一个代价值相减,结果小于阈值,立即停止迭代。...
  • 逻辑回归梯度下降公式详细推导

    千次阅读 2015-09-30 00:40:57
    标签(空格分隔): 机器学习 在一次面试中被问道了逻辑回归公式的推导,虽然知道原理,但是从来未从头到尾推导过,面试时估计有点困,又不完全熟悉,又略有紧张(借口找的齐全了…)。面试官还算仁慈,没有太严格...
  • 之前在看批量梯度下降的时候,看到代价函数J(w)的求导过程中,一直搞不明白它是怎么推导出来的,今天终于把它推导出来了。
  •  注意,在迭代过程中,θ的所有特征是同步更新的,所以根据给定的数据集,就能使用梯度下降算法来求解θ了,迭代终止条件即是将当前θ带入cost函数,求出代价值,与上一个代价值相减,结果小于阈值,立即停止迭代。...
  • 文中元学习(Meta Learning)是学习了李宏毅教授的视频... 提出问题: 根据参数更新的第一,二两个公式,可以将公式一中的梯度写成如下: 此时,有一个问题,梯度是 那么 公式推导 所以
  • 梯度下降公式 损失函数公式 梯度下降(Gradient Descent),一次更新θ,使用训练样本中所有样本 随机梯度下降(Stochastic Gradient Descent),一次更新θ,使用训练样本中一个数据 批量梯度下降(Batch ...
  • 梯度下降算法原理讲解——机器学习

    万次阅读 多人点赞 2019-01-21 20:27:48
    详细来讲讲梯度下降算法的原理,感受数学和程序的魅力吧!!
  • 梯度下降、随机梯度下降、小批量梯度下降、动量梯度下降、Nesterov加速梯度下降法前言梯度下降法(Gradient Descent / GD)单变量线性回归模型(Univariate Linear Regression)批梯度下降法(Batch Gradient ...
  • 梯度下降算法公式推导

    千次阅读 2020-03-03 15:36:48
    梯度下降数学解释: 场景假设 梯度下降法的基本思想可以类比为一个下山的过程。 假设这样一个场景:一个人被困在山上,需要从山上下来(找到山的最低点)。但此时山上的浓雾很大,导致可视度很低;因此,下山的路径...
  • 梯度下降公式推导

    千次阅读 2019-07-28 15:52:22
    梯度下降梯度下降法是求解无约束最优化问题的一种最常用的方法,是一种迭代算法,每一步需要求解目标函数的梯度向量。 梯度的定义: 某一函数沿着某点处的方向导数可以以最快速度到达极大值,该方向导数我们...
  • 梯度下降算法

    2018-09-05 22:10:36
    梯度下降法(gradient descent)是一个最优化算法,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型...4.批量梯度下降公式(BGD)  其中a为学习率 如果a太大,那么梯度下降算法可能汇越过最低点,甚至...
  • 在机器学习领域,体梯度下降算法分为三种 - 批量梯度下降算法(BGD,Batch gradient descent algorithm) - 随机梯度下降算法(SGD,Stochastic gradient descent algorithm) - 小批量梯度下降算法(MBGD,Mini-...
  • TensorFlow可视化梯度下降/公式调参

    千次阅读 2018-07-20 15:45:46
    本篇博客主要介绍TensorFlow中的可视化梯度下降和参数调参。 首先是可视化梯度下降,使用的是python中Axes3d模块。 示例代码: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt ...
  • 批量梯度下降、随机梯度下降、小批量梯度下降的python实现 之前写线性回归那一块内容的时候,发过手写二元线性回归梯度下降的博,由于基于方程的写法过于复杂,于是有了这一篇基于矩阵的梯度下降实现~
  • 在学习了有关梯度下降算法后,自己动手实现了一边,选用的也是最为简单的线性回归作为例子梯度下降的的相关原理及推导网上有很多,由于个人不擅长推理总结,我就不再画蛇添足了,贴几个我看完之后觉的不错的帖子,在...
  • 但是为什么梯度下降会很慢,我们先看线性回归最小二乘的梯度下降公式: 第一个公式是对每个theta求偏导数,第二个公式是对theta的更新 从两个公式中可以看出 这个公式中是要用到从1到m的所有样本,因此迭代...
  • 随机梯度下降公式实现

    千次阅读 2017-06-27 11:26:50
    一、梯度下降算法理论知识 我们给出一组房子面积,卧室数目以及对应房价数据,如何从数据中找到房价y与面积x1和卧室数目x2的关系? 为了实现监督学习,我们选择采用自变量x1、x2的线性函数来评估因变量y值,...
  • Tensorflow_25_可视化梯度下降_公式调参__(神经网络_教学教程tutorial)
  • 梯度下降及反向传递公式推导 之前发布在作业部落了,可以通过这个链接访问,其中的数学公式转过来比较麻烦,先看作业部落的链接吧:https://www.zybuluo.com/JackMeGo/note/1052246 ...
  • 梯度下降法 我手写在纸上了,思路是先这样,然后再那样,之后这样,最后再那样,是不是很简单? 函数单调 导数与方向导数 方向导数与梯度 梯度下降公式由来 ...
  • 梯度下降法和泰勒公式

    千次阅读 2019-05-22 19:24:21
    第一部分:泰勒公式 在高数中,引出相关需求,其描述如下: 对于一些较复杂的函数,为了便于研究,往往希望用一些简单的函数来近似表达。由于用多项式表示的函数,只要对自变量进行有限次的加,减,乘三种算数运算...
  • 随机梯度下降梯度下降讲解: 公式: http://blog.csdn.net/lilyth_lilyth/article/details/8973972 实例: http://blog.csdn.net/zbc1090549839/article/details/38149561 很好的帮助理解了什么损失函数,梯度...
  • 梯度下降与随机梯度下降概念及推导过程

    万次阅读 多人点赞 2018-11-03 14:43:52
    同这一章的梯度下降部分加起来,才是我们要讲的如何求解多元线性回归.如果写在一章中,内容过长,担心有的同学会看不完,所以拆分成两章.[坏笑] 上一章中有提到利用解析解求解多元线性回归,虽然看起来很方便,但是在...
  • 这里我相信题主对梯度下降法的整体理念是认可的,只是不清楚这个更新公式的实质含义。首先这个梯度更新公式确实不是推导而是创造出来的,所以只能从概念上去理解。设想下有个函数,你的目标是:找到一个参数 使得...
  • 文章目录线性回归学习目标2.5 梯度下降法介绍1 全梯度下降算法(FG)2 随机梯度下降算法(SG)3 小批量梯度下降算法(mini-bantch)4 随机平均梯度下降算法(SAG)5 算法比较6 梯度下降优化算法(拓展) 学习目标 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,713
精华内容 23,485
关键字:

梯度下降公式