梯度下降法

梯度下降法可以做什么?

在 测试集上,通过最小化代价函数(成本函数)\(J(w,b)\)来训练的参数\(w\)和\(b\),

如图,在第二行给出和之前一样的逻辑回归算法的代价函数(成本函数)

梯度下降法的形象化说明

在这个图中,横轴表示 的空间参数\(w\)和\(b\),在实践中,\(w\)可以是更高的维度,但是为了更好地绘图, 定义\(w\)和\(b\),都是单一实数,代价函数(成本函数)\(J(w,b)\)是在水平轴\(w\)和\(b\)上的曲面,因此曲面的高度就是\(J(w,b)\)在某一点的函数值。 所做的就是找到使得代价函数(成本函数)\(J(w,b)\)函数值是最小值,对应的参数\(w\)和\(b\)。

如图,代价函数(成本函数)\(J(w,b)\)是一个凸函数(convex function),像一个大碗一样。

如图,这就与刚才的图有些相反,因为它是非凸的并且有很多不同的局部最小值。由于逻辑回归的代价函数(成本函数)\(J(w,b)\)特性, 必须定义代价函数(成本函数)\(J(w,b)\)为凸函数。

初始化\(w\)和\(b\),

可以用如图那个小红点来初始化参数\(w\)和\(b\),也可以采用随机初始化的方法,对于逻辑回归几乎所有的初始化方法都有效,因为函数是凸函数,无论在哪里初始化,应该达到同一点或大致相同的点。

以如图的小红点的坐标来初始化参数\(w\)和\(b\)。

2. 朝最陡的下坡方向走一步,不断地迭代

朝最陡的下坡方向走一步,如图,走到了如图中第二个小红点处。

可能停在这里也有可能继续朝最陡的下坡方向再走一步,如图,经过两次迭代走到第三个小红点处。

3.直到走到全局最优解或者接近全局最优解的地方

通过以上的三个步骤 可以找到全局最优解,也就是代价函数(成本函数)\(J(w,b)\)这个凸函数的最小值点。

梯度下降法的细节化说明(仅有一个参数)

假定代价函数(成本函数)\(J(w)\) 只有一个参数\(w\),即用一维曲线代替多维曲线,这样可以更好画出图像。

迭代就是不断重复做如图的公式:

\(:=\)表示更新参数,

$a $ 表示学习率(learning rate),用来控制步长(step),即向下走一步的长度\(\frac{dJ(w)}{dw}\) 就是函数\(J(w)\)对\(w\) 求导(derivative),在代码中 会使用\(dw\)表示这个结果

对于导数更加形象化的理解就是斜率(slope),如图该点的导数就是这个点相切于 \(J(w)\)的小三角形的高除宽。假设 以如图点为初始化点,该点处的斜率的符号是正的,即\(\frac{dJ(w)}{dw}>0\),所以接下来会向左走一步。

梯度下降

整个梯度下降法的迭代过程就是不断地向左走,直至逼近最小值点。

假设 以如图点为初始化点,该点处的斜率的符号是负的,即\(\frac{dJ(w)}{dw}<0\),所以接下来会向右走一步。

整个梯度下降法的迭代过程就是不断地向右走,即朝着最小值点方向走。

梯度下降法的细节化说明(两个参数)

逻辑回归的代价函数(成本函数)\(J(w,b)\)是含有两个参数的。

$\partial $ 表示求偏导符号,可以读作round

\(\frac{\partial J(w,b)}{\partial w}\) 就是函数\(J(w,b)\) 对\(w\) 求偏导,在代码中 会使用\(dw\) 表示这个结果,

\(\frac{\partial J(w,b)}{\partial b}\) 就是函数\(J(w,b)\)对\(b\) 求偏导,在代码中 会使用\(db\) 表示这个结果,

小写字母\(d\) 用在求导数(derivative),即函数只有一个参数,

偏导数符号$\partial $ 用在求偏导(partial derivative),即函数含有两个以上的参数。

神经网络基础篇:梯度下降法(Gradient Descent)的更多相关文章

  1. <反向传播(backprop)>梯度下降法gradient descent的发展历史与各版本

    梯度下降法作为一种反向传播算法最早在上世纪由geoffrey hinton等人提出并被广泛接受.最早GD由很多研究团队各自发表,可他们大多无人问津,而hinton做的研究完整表述了GD方法,同时hin ...

  2. (3)梯度下降法Gradient Descent

    梯度下降法 不是一个机器学习算法 是一种基于搜索的最优化方法 作用:最小化一个损失函数 梯度上升法:最大化一个效用函数 举个栗子 直线方程:导数代表斜率 曲线方程:导数代表切线斜率 导数可以代表方向, ...

  3. 梯度下降法Gradient descent(最速下降法Steepest Descent)

    最陡下降法(steepest descent method)又称梯度下降法(英语:Gradient descent)是一个一阶最优化算法. 函数值下降最快的方向是什么?沿负梯度方向  d=−gk

  4. matlab实现梯度下降法(Gradient Descent)的一个例子

    在此记录使用matlab作梯度下降法(GD)求函数极值的一个例子: 问题设定: 1. 我们有一个$n$个数据点,每个数据点是一个$d$维的向量,向量组成一个data矩阵$\mathbf{X}\in \ ...

  5. 梯度下降(gradient descent)算法简介

    梯度下降法是一个最优化算法,通常也称为最速下降法.最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的.最速下降法是用 ...

  6. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  7. 机器学习(1)之梯度下降(gradient descent)

    机器学习(1)之梯度下降(gradient descent) 题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记. 梯度下降是线性回归的一种(Line ...

  8. 理解梯度下降法(Gradient Decent)

    1. 什么是梯度下降法?   梯度下降法(Gradient Decent)是一种常用的最优化方法,是求解无约束问题最古老也是最常用的方法之一.也被称之为最速下降法.梯度下降法在机器学习中十分常见,多用 ...

  9. 梯度下降(Gradient Descent)小结 -2017.7.20

    在求解算法的模型函数时,常用到梯度下降(Gradient Descent)和最小二乘法,下面讨论梯度下降的线性模型(linear model). 1.问题引入 给定一组训练集合(training se ...

  10. 梯度下降算法 Gradient Descent

    梯度下降算法 Gradient Descent 梯度下降算法是一种被广泛使用的优化算法.在读论文的时候碰到了一种参数优化问题: 在函数\(F\)中有若干参数是不确定的,已知\(n\)组训练数据,期望找 ...

随机推荐

  1. 归并排序 nO(lgn) 审核中

    大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常 ...

  2. MMKV源码解读与理解

    概述 通过 mmap 技术实现的高性能通用 key-value 组件.同时选用 protobuf 协议,进一步压缩数据存储. 标准 protobuf 不提供增量更新的能力,每次写入都必须全量写入.考虑 ...

  3. 实用的命令行终端增强软件:Tabby

    还是那句话:出众的软件有很多,适合自己的才是最好的. 一.软件介绍 Tabby是一个开源免费软件,支持Windows.macOS和Linux系统.它提供了一个高度可定制的终端界面,可以通过多种方式添加 ...

  4. 《流畅的Python》 读书笔记 第7章_函数装饰器和闭包

    第7章 函数装饰器和闭包 装饰器这个名称可能更适合在编译器领域使用,因为它会遍历并注解句法树 函数装饰器用于在源码中"标记"函数,以某种方式增强函数的行为.这是一项强大的功能,但是 ...

  5. 题解 CF916C

    题目大意: 要求构造一张图,并让该图满足以下条件: 有 \(n\) 个点,\(m\) 条边. 每条边的边权范围是 \([1,10^9]\). 图中从 \(1\) 到 \(n\) 的最短路径长度是个质数 ...

  6. .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth

    前言 我相信做开发的同学应该都对接过各种各样的第三方平台的登录授权,来获取用户信息(如:微信登录.支付宝登录.QQ登录.GitHub登录等等).今天给大家推荐一个.NET开源好用的.全面的.方便第三方 ...

  7. HarmonyOS 实战项目

    引言 本章将介绍如何在 HarmonyOS 上进行实际项目开发.我们将从项目需求分析开始,逐步完成项目的设计.开发.测试和上线过程. 目录 项目需求分析 项目设计 项目开发 项目测试 项目上线 总结 ...

  8. ubuntu20 安装 mysql5.7.31 , 卸载mysql 8.0, Mysql只能本地登录,无法远程登录

    ubuntu 18 可以直接命令安装:# 安装mysql服务sudo apt-get install mysql-server# 安装客户端sudo apt install mysql-client# ...

  9. Excel表格函数公式出现溢出怎么办?

    Excel是一款广泛使用的电子表格软件,它可以帮助我们进行各种计算.数据分析与处理等操作.在使用Excel时,我们通常需要使用到各种函数公式来完成不同的任务.然而,在使用函数公式时有时会出现" ...

  10. 基于python的Linux服务器资源监控

    介绍 项目地址: https://github.com/leeyoshinari/performance_monitor 已完成如下功能 1.监控整个服务器的CPU使用率.io wait.内存使用.磁 ...