【啃书】《深度学习入门 基于Python的理论与实现》第4章 神经网络的学习


神经网络的学习,这里所说的 学习是指从训练数据中自动获取最优权重参数的过程。学习的目的就是以 损失函数为基准,找出能使损失函数的值达到最小的权重参数。为了找出尽可能小的损失函数的值,本章我们将介绍利用了函数斜率的梯度法。

4.1 从数据中学习

神经网络的特征就是可以从数据中学习。数据是机器学习的核心。数据驱动的方法,也可以说脱离了过往以人为中心的方法。
在这里插入图片描述
在这里插入图片描述
机器学习中,一般将数据分为训练数据测试数据两部分。首先,使用训练数据进行学习,寻找最优的参数;然后,使用测试数据评价训练得到的模型的泛化能力。训练数据也可以称为监督数据

4.2 损失函数

神经网络的学习中所用的指标称为损失函数(loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。
均方误差(mean squared error)
在这里插入图片描述
将 正 确 解 标 签 表 示 为 1 , 其 他 标 签 表 示 为 0 的 表 示 方 法 称 为 o n e − h o t 表 示 。 \color{#f00}{将正确解标签表示为1,其他标签表示为0的表示方法称为one-hot表示。} 10onehot

交叉熵误差(cross entropy error)
在这里插入图片描述

神经网络的学习也是从训练数据中选出一批数据(称为mini-batch,小批量),然后对每个mini-batch进行学习。比如,从60000个训练数据中随机选择100笔,再用这100笔数据进行学习。这种学习方式称为mini-batch学习。

在进行神经网络的学习时,不能将识别精度作为指标。因为如果以识别精度为指标,则参数的导数在绝大多数地方都会变为0。

4.3 数值微分

梯度法使用梯度的信息决定前进的方向。
在这里插入图片描述

4.4 梯度

梯度(gradient)

梯度会指向各点处的函数值降低的方向。更严格地讲,梯度表示的是各点处的函数值减小最多的方向。因此,无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。实际上,在复杂的函数中,梯度指示的方向基本上都不是函数值最小处。
用数学式来表示梯度法
在这里插入图片描述

4.5 学习算法的实现

本章所学的内容

  • 机器学习中使用的数据集分为训练数据和测试数据。
  • 神经网络用训练数据进行学习,并用测试数据评价学习到的模型的
    泛化能力。
  • 神经网络的学习以损失函数为指标,更新权重参数,以使损失函数
    的值减小。
  • 利用某个给定的微小值的差分求导数的过程,称为数值微分。
  • 利用数值微分,可以计算权重参数的梯度。
  • 数值微分虽然费时间,但是实现起来很简单。下一章中要实现的稍
    微复杂一些的误差反向传播法可以高速地计算梯度。

系列文章:
【啃书】《深度学习入门 基于Python的理论与实现》第1章 Python入门
【啃书】《深度学习入门 基于Python的理论与实现》第2章 感知机
【啃书】《深度学习入门 基于Python的理论与实现》第3章 神经网络

中 深度学习入门 基于Python的理论与实现 原作名- Deep Learning from Scratch[文字版][[日]斋藤康毅[译] 陆宇杰][人民邮电出版社][2018-7][9787115485588]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值