深度学习入门-基于python的理论与实现-神经网络的学习

1 如何根据数据训练出最优权重参数?

1.1 从数据中学习

我们知道在神经网络的学习过程中,参数个数是成千上万的,这不可能要求我们自己一个个手动输入,所以这些参数是根据数据设置相应的参数。这就是神经网络的学习。

1.1.1 数据驱动

在这里插入图片描述
深度学习与机器学习的联系
深度学习有时候称为端到端机器学习,端到端是从原始数据获得目标结果。
神经网络的一个优点就是端到端的机器学习,从原始数据中学习,与处理的问题无关,只与数据有关。

1.1.2 训练数据与测试数据

训练数据:称为监督数据
泛化能力:处理测试数据的能力
过拟合:只能处理某一个数据集,而无法处理其他数据集,也就是泛化能力过小

1.1.3 损失函数

损失函数是神经网络中所用的指标,这个指标可以用来寻找最优权重参数。
一般:均方误差,交叉熵误差函数

1.1.4 均方误差

在这里插入图片描述
在这里插入图片描述

1.1.5 交叉熵误差

在这里插入图片描述

因为只有t为1时才计算,所以计算量比均方误差小,同时log是个负数的单调递增函数,趋向于0,所以y越大则E的结果越趋向于0,那么其误差结果就越小。

1.1.6 mini-batch学习

机器学习就是指从全部的训练数据中进行学习,我们求得损失函数也是求他们的和再求平均数。如下图
在这里插入图片描述
在这里插入图片描述

当训练数据量比较大的时候,我们就需要计算很长时间,这时候从训练数据中取出一部分,就是mini-batch学习。

1.1.7 mini-batch 版交叉熵误差的实现

1) 单个数据的mini-batch 实现
在这里插入图片描述
2)多个数据的交叉熵
在这里插入图片描述

1.1.8 设置损失函数的原因

用识别精度作为神经网络学习的指标的时候,识别精度函数的导数可能一直为0或者发生阶跃性变化。所以用损失函数就会发生连续的变化,然后一步步使得训练结果更加精确,使得损失函数更小。
也就是sigmoid 函数。
在这里插入图片描述

1.2数值微分

在介绍梯度函数之前先介绍一下导数。

1.2.1 导数

是瞬时变化的量,利用定义带入数据求得的导数为数值微分
在这里插入图片描述
上面代码的最后一行求得的误差比较小。
在这里插入图片描述

1.2.2 数值微分的例子

这里高等数学中都学过

1.2.3偏导数

讨论有多个变量的函数的导数称为偏导数

1.3 梯度

偏导数汇总而成的函数为梯度。
在这里插入图片描述
重要性质:梯度的值会指向函数值降低最低的地方。
在这里插入图片描述

1.3.1 梯度法

机器学习:在学习时候寻找最优参数
神经网络:寻找最优权重和偏置
最优参数就是使得损失函数最小的参数,使用梯度法

无法保证梯度指向的值是最小值,但是一般是损失函数最小值。
求梯度,找到梯度最小值,然后再求梯度最小值,一直沿着梯度最小值的方向前进,然后损失函数值逐渐减少,精度越来越高,这就是梯度法。
是解决机器学习中最优问题。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以学习率n太大太小都不好,他被称为超参数,一般认为多次设定后取一个合理值。

1.3.2 神经网络的梯度

在这里插入图片描述
在这里插入图片描述

总结:学习算法实现的过程

SGD:随机梯度下降算法
1) mini-batch
2)计算梯度
3)更新参数
4)重复以上步骤

1.4 两层神经网络

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据图可以看到随着学习的进行,权重参数的损失函数在不断的减小,神经网络在向最优参数靠近。在学习中!
在这里插入图片描述
实线表示训练数据的识别精度,虚线表示测试数据的识别精度,随着epochs(学习)的进行,1)训练数据和测试数据的识别精度都提高了 2)两条线拟合了
并没有发生过拟合。

小结

本章中介绍了神经网路的学习,神经网路学习的过程就是参数最优化的过程,我们引入了损失函数和梯度,为了介绍梯度,我们又引入了微分,导数,偏导数,后来又介绍了多层神经元学习类,最后得出确实随着神经网路学习,损失函数在不断减小,并且训练数据和测试数据的识别精度提高并重合。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 深度学习是一种机器学习技术,可以通过模拟人类大脑的神经网络结构来实现智能决策和预测。Python是一种广泛使用的编程语言,也是深度学习中使用最多的语言之一。 如果你想入门深度学习并使用Python进行实现,可以参考一些经典的教材和资源,例如《Python深度学习》(Francois Chollet著)、《深度学习入门:基于Python理论实现》(斋藤康毅著)等。这些教材通常会介绍深度学习的基础理论Python的基本语法和深度学习框架(如TensorFlow、Keras等)的使用方法,同时也会提供一些实例代码和练习题帮助你快速上手。 此外,你也可以通过在线课程和MOOC平台学习深度学习Python编程。例如,Coursera、Udacity和edX等平台都提供了相关课程,可以根据自己的需求和兴趣进行选择。 ### 回答2: 深度学习入门:基于Python理论实现,是一本介绍深度学习的较为全面的教程。本书主要介绍了人工神经网络,包括基于反向传播算法的多层感知器、卷积神经网络、循环神经网络等基本模型以及它们的实现方法,同时还介绍了一些高级话题,如深度强化学习、生成模型等等。 在本书中,作者通过大量的编程实例来演示深度学习的应用。这些实例包括用深度学习算法进行手写数字识别、图像分类、语音识别和自然语言处理等任务。由于Python是目前流行的机器学习工具之一,因此这本书的实现过程都使用了Python编程语言。 具体来说,本书的主要内容包括人工神经网络基础知识、多层感知器模型、卷积神经网络模型、循环神经网络模型、生成模型、 强化学习深度学习框架等方面,同时还包括很多深度学习的应用案例。作者采用了基础理论、数学公式、实例程序和实验数据等不同形式的阐释方法,使读者既能够理解深度学习的基本原理,也能够掌握它的实现方法。 此外,本书还提供了大量的参考文献和网上资源,使读者可以进一步深入学习和研究深度学习。在阅读本书的同时,读者可以根据作者提供的代码和数据,通过实际操作来进一步巩固理论知识和应用技能。 总之,深度学习入门:基于Python理论实现是一本非常实用的深度学习教材,可以帮助初学者更好地了解深度学习的基本概念和方法,提高实际应用的技能。 ### 回答3: 深度学习是一种人工智能技术,可用于训练计算机识别和理解大量数据。《深度学习入门:基于Python理论实现》这本书是入门学习深度学习的必读之书。以下是本书的内容概述。 本书的第一部分介绍了深度学习的基础概念和理论,包括神经网络、反向传播算法、损失函数等。介绍了基本的深度学习模型,如前馈神经网络、卷积神经网络和循环神经网络。此外,还介绍了优化算法和正则化技术。 在第二部分中,作者使用Python编程语言实现了各种深度学习模型,使用的是许多广泛使用的深度学习框架,如TensorFlow和PyTorch。学习者获得从头开始编写深度学习算法的经验,同时实际应用中必备的PyTorch和TensorFlow经验。 在第三部分中,本书涵盖了几个应用案例,包括图像分类、语音识别和自然语言处理。幸运的是,这些案例通过代码演示展示,确保即使您没有实际应用经验也能操作成功。 总的来说,《深度学习入门:基于Python理论实现》是一本适合想要学习深度学习的初学者的绝佳书籍。其提供了深度学习的基本理论和核心技术,同时应用Python编程语言演示了实现技术。由此学习者可以建立深度学习专业的技术栈和能力,在人工智能领域有更广阔的发展空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nefelibat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值