zoukankan      html  css  js  c++  java
  • 为什么负梯度方向函数下降最快?

    什么是梯度?

    首先梯度是一个向量,其次梯度是多元函数对各个分量求偏导数得到的向量,但是这里很容易和切向量混淆。切向量是对各个分量对共同的自变量求偏导,这是不同之处。

    为什么梯度垂直于切平面?

    首先引入等值面的概念,对于函数W,比如说W = c的所有解是一个等值面。

    在c等值面上假设任意一条曲线$vec r = vec r (t)$,其中$vec v = frac{dr}{dt} $是曲线的切向量方向, 因为每个分量对t求偏导就得到切向量。

    那么根据链式法则,对t求导

    $$frac{dW}{dt} = abla W * frac{dr}{dt} $$

    因为W = c, 等式左边为0,所以有$ abla W * v = 0$,即某点上的梯度与任意切线垂直,也就与切平面垂直。

    为什么负梯度方向函数下降最快?

    首先定义任意一个方向向量$vec u$,如果函数W在u方向取一个截面,那么问题转化为对于某一个点,哪个截面的曲线下降最快?

    对于每个截面的自变量向量$vec r = vec r (s)$,s是在这个方向上的步长,有$vec r (s) = vec r_{0} + s * vec u$,所以$frac {dr}{ds} =vec u$

    同样地通过链式法则,W在u方向对s求导

    $$frac{dW}{ds_{u}} = abla W * frac{dr}{ds} $$

    于是

    $$frac{dW}{ds_{u}} = abla W * vec u $$

    通过向量点乘公式

    $$frac{dW}{ds_{u}} =|| abla W|| * ||vec u|| cos heta $$

    $vec u$为单位向量,模长为1

    $$frac{dW}{ds_{u}} =|| abla W|| * cos heta $$

    也就是说,W在任一方向的导数就是梯度在这个方向的投影的长度,所以导数最大的方向就是在梯度方向,反之在负梯度方向导数最小

    参考:

    1. https://blog.csdn.net/silence1214/article/details/8875809

  • 相关阅读:
    SGX技术初探
    DH 密钥交换算法
    SSM整合框架实现ajax校验
    为什么要重写toString()方法和hashcode()方法
    java数组实现简单的DVD管理
    java冒泡排序
    windows下java环境变量配置
    Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能
    Eclipse SVN 冲突的 介绍 及 四种解决方式
    java中的重载(overload)和重写(override)区别
  • 原文地址:https://www.cnblogs.com/learninglife/p/9238547.html
Copyright © 2011-2022 走看看