神经网络基础-神经网络补充概念-50-学习率衰减

概念

学习率衰减(Learning Rate Decay)是一种优化算法,在训练深度学习模型时逐渐减小学习率,以便在训练的后期更加稳定地收敛到最优解。学习率衰减可以帮助在训练初期更快地靠近最优解,而在接近最优解时减小学习率可以使模型更精细地调整参数,从而更好地收敛。

实现方式

学习率衰减可以通过以下几种方式实现:

定期衰减:在训练的每个固定的迭代步骤,将学习率乘以一个衰减因子(通常小于1)。

指数衰减:使用指数函数来衰减学习率,例如每隔一定迭代步骤,将学习率按指数函数进行衰减。

分段衰减:将训练过程分成多个阶段,每个阶段使用不同的学习率。

代码实现(定期衰减)

python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 生成随机数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# 添加偏置项
X_b = np.c_[np.ones((100, 1)), X]

# 初始化参数
theta = np.random.randn(2, 1)

# 初始学习率
initial_learning_rate = 0.1

# 衰减因子
decay_factor = 0.9

# 迭代次数
n_iterations = 1000

# 学习率衰减
for iteration in range(n_iterations):
    learning_rate = initial_learning_rate / (1 + decay_factor * iteration)
    gradients = 2 / 100 * X_b.T.dot(X_b.dot(theta) - y)
    theta = theta - learning_rate * gradients

# 绘制数据和拟合直线
plt.scatter(X, y)
plt.plot(X, X_b.dot(theta), color='red')
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression with Learning Rate Decay')
plt.show()

print("Intercept (theta0):", theta[0][0])
print("Slope (theta1):", theta[1][0])
相关推荐
文火冰糖的硅基工坊1 分钟前
[人工智能-大模型-116]:模型层 - 用通俗易懂的语言,阐述离散卷积的神奇功能和背后的物理意义
人工智能·深度学习·cnn
rengang663 分钟前
13-卷积神经网络(CNN):探讨CNN在图像处理中的应用和优势
图像处理·人工智能·深度学习·神经网络·cnn
DO_Community6 分钟前
裸金属 vs. 虚拟化 GPU 服务器:AI 训练与推理应该怎么选
运维·服务器·人工智能·llm·大语言模型
科技峰行者10 分钟前
华为发布Atlas 900 DeepGreen AI服务器:单机柜100PF算力重构AI训练基础设施
服务器·人工智能·华为·aigc·gpu算力
weixin_3077791321 分钟前
应对不规则负载的异步ML模型服务AWS架构设计
人工智能·深度学习·机器学习·云计算·aws
Xander W32 分钟前
基于K8s集群的PyTorch DDP 框架分布式训练测试(开发机版)
人工智能·pytorch·分布式·python·深度学习·kubernetes
Wah-Aug36 分钟前
基于 PyTorch 的 UNet 与 NestedUNet 图像分割
人工智能·pytorch·计算机视觉
云和数据.ChenGuang37 分钟前
感知机之争,杀死神经网络的“人工智能之父”
人工智能·深度学习·神经网络
rengang6639 分钟前
10-神经网络的工作原理:分析神经网络如何学习和推理
人工智能·深度学习·神经网络·学习
无风听海41 分钟前
神经网络之向量降维
人工智能·神经网络·机器学习