【漫漫转码路】Day 45 机器学习 day04
创始人
2024-05-23 19:37:14
0

梯度下降

梯度下降法是常用于求解无约束情况下凸函数的极小值,是一种迭代类型的算法,因为凸函数只有一个极值点,故求解出来的极小值点就是函数的最小值点
公式
在这里插入图片描述
第一个θ,是更新之后的θ,第二个θ是更新之前的θ,求偏导也是更新之前的θ,
需要对θ设置一个初始化的值,
α是学习率,α过大,可能会产生振荡,导致找不到极值点,甚至可能反向更新
α过小,会导致在限制的迭代次数之内没有找到极值点
迭代终止条件:偏差不再下降或下降很小,即误差控制在限定范围内;或迭代达到迭代次数上限要求

相关算法

SDG(随机梯度下降算法):随机选取单个样本的θ值作为当前模型的θ更新,每次迭代只计算一个样本梯度
在这里插入图片描述
BGD(批量梯度下降算法):选取所有样本的θ值作为当前模型的θ值更新,每次迭代计算所有样本的梯度
在这里插入图片描述
MBGD(小批量梯度下降算法):选取部分样本的θ值作为当前模型的θ值更新,每次迭代计算部分样本的梯度
在这里插入图片描述
总结:
SGD的迭代次数更少
由于SGD是随机选取的样本,所以有可能跳出局部最优解
SGD和MBGD可能会出现波动
BGD一定能得到最优解,由于SGD的随机性,且每次迭代一个样本,在有限迭代次数内可能看不到最优解

案例

对一元函数的收敛案例

import sys
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import random# 设置字符集,防止中文乱码
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = Falsex = 100
input_x = np.arange(x) * 0.1
m = 10
step_max = 150
learn_rate = 0.0003
true_y = 5 * input_xdef pre_y(x, k):return k * x# SDG
K = 0.0
G_KS = [0.0]
for step in range(step_max):x1_num = np.random.randint(len(input_x))tidu = (pre_y(input_x[x1_num], K) - true_y[x1_num]) * input_x[x1_num]K -= learn_rate * tiduG_KS.append(K)
# print(G_KS)# BGD
K = 0.0
G_KB = [0.0]
for step in range(step_max):sum_tidu = 0for i in range(len(input_x)):tidu = (pre_y(input_x[i], K) - true_y[i]) * input_x[i]sum_tidu += tiduK -= learn_rate * sum_tiduG_KB.append(K)
# print(G_KB)# MBGD
K = 0.0
G_KM = [0.0]
for step in range(step_max):sum_tidu = 0r_n = random.sample(range(0, len(input_x)), m)# print(r_n)for i in r_n:tidu = (pre_y(input_x[i], K) - true_y[i]) * input_x[i]sum_tidu += tiduK -= learn_rate * sum_tiduG_KM.append(K)
# print(G_KM)## 画图
plt.figure(facecolor='w')
plt.plot(range(step_max + 1), G_KS, 'r', label='SGD')
plt.plot(range(step_max + 1), G_KB, 'b', label='BGD')
plt.plot(range(step_max + 1), G_KM, 'k', label='MBGD')
plt.legend(loc='lower right')
plt.title('一维函数不同梯度下降对比')
plt.xlabel('step')
plt.ylabel('K')
plt.show()

结果显示
在这里插入图片描述

相关内容

热门资讯

《青瓷》经典台词 《青瓷》经典台词  1、什么是哥们儿?一起扛过枪,一起下过乡,一起同过窗,一起嫖过娼,一起分过脏。 ...
婚礼家长致辞 婚礼家长致辞六篇  篇一:婚礼家长致辞  我女儿与××先生结为百年夫妻,身为父母感到十分高兴。他们透...
会开场白主持词   主持人男:时光荏苒,青春在这里绽放,为了理想我们在这里摩拳擦掌  主持人女:岁月更迭,梦想依然灿...
中式浪漫婚礼主持词 中式浪漫婚礼主持词  主持人在台上表演的灵魂就表现在主持词中。在当今中国社会,各种场合中活跃现场气氛...
学术年会主持词 学术年会主持词范文(精选10篇)  根据活动对象的不同,需要设置不同的主持词。现今社会在不断向前发展...
年会董事长致辞 年会董事长致辞15篇  在我们平凡的日常里,大家或多或少都用到过致辞吧,致辞讲求条理性,有思路、层次...
六一文艺汇演主持稿 六一文艺汇演主持稿六一文艺汇演主持稿1  甲:尊敬的各位领导、各位老师  乙:亲爱的同学们  合:大...
公司元旦致辞 公司元旦致辞(精选10篇)  在平日的学习、工作和生活里,大家都对致辞很是熟悉吧,致辞要注意人物的身...
欢喜姻缘--较婚礼主持词 欢喜姻缘--较实用的婚礼主持词  尊敬的各位来宾、亲爱的朋友们、女士们、先生们大家上午好!  欢迎您...
企业年终颁奖晚会主持词   主持人:又是一年芳草绿,又是一年逢春意,又是一年春风起,又是一年听春雨。先生们、女士们 、各位领...
婚礼新郎致辞 婚礼新郎致辞列位宾客:各人午时好!本日是我儿子x与xx喜结良缘的大喜日子,承蒙列位宾客远道而来介入我...
中华诵读主持词 中华诵读主持词(通用11篇)  主持词要尽量增加文化内涵、寓教于乐,不断提高观众的文化知识和素养。随...
开门红总结大会主持词 开门红总结大会主持词(通用5篇)  根据活动对象的不同,需要设置不同的主持词。在如今这个中国,主持人...
农村婚庆的司仪主持词 农村婚庆的司仪主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在当今不断发展的世...
小品主持串词 小品主持串词范文  小品主持串词(一)  女主持人:首先我向大家介绍一下参加今天xx乡**多彩贵州宏...
我们结婚了的经典台词 关于我们结婚了的经典台词  1、最喜欢的食物,五花肉。  2、我喜欢幼稚的东西victoria(宋茜...
哈利波特中魔法石经典台词 哈利波特中魔法石经典台词  在当下社会,需要使用台词的场合越来越多,台词起着揭示人物性格,表达思想感...
企业开业主持词 企业开业主持词  主持词是主持人在节目进行过程中用于串联节目的串联词。在当下这个社会中,主持人在各种...
欢送退休职工致辞 欢送退休职工致辞(通用5篇)  在日常学习、工作和生活中,要用到致辞的情况还是蛮多的,致辞要注意人物...
演出节目串词2文 演出节目串词2文(男)尊敬的领导、老师、亲爱的同学们。 (合)大家好。 (女)当鲜红的太阳跃上地平线...