第四节--导数复习以及多线性回归

一、导数复习

1、正切 tan
定义:tanθ=y/x 如下图
在这里插入图片描述
2、导数
在这里插入图片描述
在这里插入图片描述
3、偏导数
偏导数:当有多元函数是,针对于不同的自变量,描述函数变化率的公式。
在这里插入图片描述

二、梯度下降的几个问题

1、梯度下降
梯度下降是一种非常通用的优化算法,能够为大范围的问题找到最优解。梯度下降的中心思想就是迭代的调整参数从而使损失函数最小化。

假设你迷失在山上的浓雾之中,你能感觉到的只有你脚下路面的坡度。快速到达山脚的一个策略就是沿着最陡的方向下坡。这就是梯度下降的做法:通过测量参数向量θ相关的误差函数的局部梯度,并不断沿着降低梯度的方向调整,直到梯度降为0,到达最小值。

具体来说,首先使用一个随机的θ值(这被称为随机初始化),然后逐步改良,每次踏出一步,每一步都尝试降低一点损失函数(如MSE),直到算法收敛出一个最小值。
2、梯度下降的方向

  • 梯度下降的方向1:只要对损失函数求导,θ的变化方向永远趋近于损失函数的最小值。
  • 梯度下降的方向2: 如果θ已经在最低点,那么梯度将不会发生变化。

3、梯度下降的步长

  • 梯度下降的步长1:梯度下降中一个重要参数是每一步的步长,这取决于超参数的学习率。
  • 梯度下降的步长2:梯度下降的步长会逐渐变小。

3、如何应对梯度下降的局部最小值问题

  1. 对于MSE来说,因为损失函数是个凸函数,所以不存在局部最小值,只有一个全局最小值。
  2. 通过随机初始化θ,可以避开局部最小值。
  3. 对于多变量,高维度的值,就算在某个维度上陷入和局部最小值,但是还能从别的维度跳出。

三、多变量线性回归

1、多变量线性回归引入
模型:
之前: hθ(x) = θ0 + θ1x
现在: hθ(x) = θ0 + θ1x1 + θ2x2 + … + θnxn
为了保证模型的统一性,我们给模型加上x0 ,并使 x0 = 1。
多项型回归代码案例:

"""
多项式回归
"""

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X ** 2 + X + 2 + np.random.randn(m, 1)

plt.plot(X, y, 'b.')
# plt.show()

d = {
   1: 'g-', 2: 'r+', 10: 'y*'}
for i in d:
    # include_bias 可以理解为w0 =False 意思就是不要w0
    poly_features = PolynomialFeatures(degree=i, include_bias=False)
    """
    fit 和 fit_transform的区别
    fit: 简单来说,就是求得训练集X的均值,方差,最大值,最小值这些训练集X固有的属性
    fit_transform: 首先fit,然后在此基础上,进行标准化,降维,归一化等操作
    """
    X_poly = poly_features.fit_transform(X)
    print(X[0])
    print(X_poly[0])
    # print(X_poly[:, 0])

    lin_reg = LinearRegression()
    lin_reg.fit(X_poly, y)
    # print(lin_reg.intercept_, lin_reg.coef_)

    y_predict = lin_reg.predict(X_poly)
    plt.plot(X_poly[:, 0], y_predict, d[i])

plt.show()

2、多元梯度下降方法
模型: hθ(x) = θT x = θ0x0 + θ1x1 + θ2x2 + … + θnxn
参数: θ0 θ1…θn
损失函数:在这里插入图片描述
梯度下降公式:在这里插入图片描述
一元与多元梯度下降对比:
在这里插入图片描述
3、特征缩放(归一化)
一般情况下我们我们使用特征缩放,把特征值会缩放到接近 -1 ≤ xi ≤ 1的区域。
 左图的梯度下降算法直接走向最小值,可以快速到达。而在右图中,先是沿着与全局最小值方向近乎垂直的方向前进,接下来是一段几乎平坦的长长的山谷。最终还是会抵达最小值,但是这需要花费大量的时间
左图的梯度下降算法直接走向最小值,可以快速到达。而在右图中,先是沿着与全局最小值方向近乎垂直的方向前进,接下来是一段几乎平坦的长长的山谷。最终还是会抵达最小值,但是这需要花费大量的时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值