[机器学习-2]梯度下降法及实现(python)

样例(Example)

!!想看实现,直接跳转回溯线算法与精确线算法。
今天,在做机器学习的作业的时候,我的室友和我说线性回归那道题目应该用步长来做,如果大于步长减半,后来我实现这种算法以后,发现和题目要求不一样。我室友说的是回溯线算法(backtracking line search),而我最后实现的是精确线算法(exact line search)。现在和大家介绍这两种经典算法
在这里插入图片描述
Figure 1
题目长这样,就是用线性回归求一个二范数的最小值.
下面简单介绍一下GD所需的数学知识

利普西斯连续(L-continuity)

在这里插入图片描述

利普西斯光滑(L-smoothness)

在这里插入图片描述
由利普西斯光滑我们可以得到一个重要的结论
在这里插入图片描述
在这里插入图片描述

凸集(Convex Set)

在这里插入图片描述

凸函数(Convex Function)

需要说明的是,目前仍有许多数提到上凸与下凸的概念,这种定义已经过时而且明显没有搞清楚凸函数的真正定义是什么,凸函数指的是从函数上任意两点连线,线段与函数包围的区域为凸集
在这里插入图片描述

强凸(Strong Convexity)

在这里插入图片描述
类似的,根据强凸性,我们又可以得到机器学习中一些比较好的性质
在这里插入图片描述
在这里插入图片描述

方向导数

在这里插入图片描述

泰勒展开

机器学习中常见的泰勒展开为二阶,二阶导为海森矩阵,根据精度要求可能会高阶展开
在这里插入图片描述

局部与全局最优解

以最小解为例
在这里插入图片描述
在这里插入图片描述
对于凸集,有一个非常好的性质,也是机器学习里非常关心的一个性质就是局部最优解即全局最优解,所以很多时候会把一个集合拆成多个凸集进行优化

梯度下降法

梯度下降法通俗地讲就是沿负梯度方向迭代
在这里插入图片描述
在步长不变时可能会出现这种问题
在这里插入图片描述
在这里插入图片描述

回溯线算法(backtracking line search)

在这里插入图片描述

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
def load_csv(path, data):
    data_read = pd.read_csv(path)
    list = data_read.values.tolist(</
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值