第四章 神经网络的学习

该篇博客介绍了神经网络的学习过程,包括从数据中学习权重参数,详细阐述了mini-batch学习的原理和实际操作,以及在大量数据中如何通过梯度法寻找最优参数。此外,还讨论了基于测试数据的评价标准,如epoch的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1 从数据中学习

  • 从数据中学习,是指可以由数据自动决定权重参数的值。

4.2.3 mini-batch学习

为什么使用mini-batch:
当数据很多很多时,一次性计算全部数据的损失函数是很漫长且不现实的。因此,从中挑选出一部分,作为全部数据的“近似”。

从代码中看具体流程:

    1. 假设总共有10000个数据,batch_size设置为500,总共训练80伦
    1. 训练中的每一轮,从10000个数据中随机挑选出500数据,用于训练

4.4 梯度

使用定义计算梯度。

def numerical_gradient(f, x):
	h = 1e-4
	grad = np.zeros_like(x)
	
	for idx in range(x.size):
		tmp_val = x[idx]
		# f(x+h)
		x[idx] = tmp_val + h
		fxh1 = f(x)
		
		#f(x-h)
		x[idx] = tmp_val - h
		fxh2 = f(x)	
		
		grad[idx] = (fxh1 - fxh2) / (2*h)
		x[idx] = tmp_val
	return grad

4.4.1 梯度法

  • 机器学习的主要任务是在学习时寻找最优参数。
  • 使用梯度来寻找函数最小值的方法就是梯度法。
  • 梯度表示的是各点处函数值减小最多的方向。
def gradient_descent(f, init_x, lr=0.01, step_num = 100):
	x = init_x 
	
	for i in range(step_num):
		grad = numerical_gradient(f, x)
		x -= lr * grad
	return x

4.5.3 基于测试数据的评价

epoch:epoch是一个单位。一个epoch表示学习中所有训练数据均被使用过一次时的更新次数。比如,对于10000笔训练数据,用大小为100 笔数据的mini-batch进行学习时,重复随机梯度下降法100次,所 有的训练数据就都被“看过”了。此时,100次就是一个epoch。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值