当前位置: 首页 > news >正文

住房城乡建设部网站首页/seo整体优化

住房城乡建设部网站首页,seo整体优化,手机网站建设技术方案,网站根目录文件 seo选自TowardsDataScience,作者:James Loy,机器之心编译。这是一份用于理解深度学习内部运作方式的初学者指南。作者根据自己从零开始学习用 Python 构建神经网络的经验,编写了一份攻略。内容涵盖神经网络定义、损失函数、前向传播、…

选自TowardsDataScience,作者:James Loy,机器之心编译。

这是一份用于理解深度学习内部运作方式的初学者指南。作者根据自己从零开始学习用 Python 构建神经网络的经验,编写了一份攻略。内容涵盖神经网络定义、损失函数、前向传播、反向传播、梯度下降算法,对于想要了解深度学习运作原理的各位来说,内容精彩不可错过。

无需深度学习框架,如何从0开始用Python构建神经网络

动机:为了深入了解深度学习,我决定从零开始构建神经网络,并且不使用类似 Tensorflow 的深度学习库。我相信,对于任何有理想的数据科学家而言,理解神经网络内部的运作方式都非常重要。

本文涵盖了我学到的所有东西,希望你也能从中获益!

什么是神经网络?

许多有关神经网络的介绍资料会将神经网络与大脑进行类比。但我发现,将神经网络简单地描述为一个从输入映射到输出的数学函数理解起来更容易。

神经网络由以下部分组成:

  • 一个输入层,x
  • 任意数量的隐藏层
  • 一个输出层,ŷ
  • 每两层之间都有一组权重和偏置,W 和 b
  • 每个隐藏层都要选择一个激活函数 σ。在本文中,我们选用 Sigmoid 激活函数。

下图展示了 2 层神经网络的结构(请注意,在计算神经网络层数的时候,通常不计入输入层)。

无需深度学习框架,如何从0开始用Python构建神经网络

二层神经网络的结构

利用 Python 建立神经网络非常容易。

无需深度学习框架,如何从0开始用Python构建神经网络

训练神经网络

一个简单 2 层神经网络的输出 ŷ 可以表示为:

无需深度学习框架,如何从0开始用Python构建神经网络

你可能注意到,在上面的等式当中,权重 W 和偏置 b 是影响输出 ŷ 的唯一变量。

自然,权重和偏差的正确值决定了预测的强度。根据输入数据微调权重和偏置的过程称为神经网络训练。

训练过程的每一次迭代包含以下步骤:

  • 计算预测的输出 ŷ,称为前向传播
  • 更新权重和偏置,称为反向传播

以下流程图说明了这个过程:

无需深度学习框架,如何从0开始用Python构建神经网络

前向传播

正如我们在上图中所看到的,前向传播只是一个简单的计算。对于一个基本的 2 层神经网络,神经网络的输出计算如下:

无需深度学习框架,如何从0开始用Python构建神经网络

我们可以在 Python 代码中添加一个前向传播函数来做到这一点。简单起见,我们假设偏置为 0。

无需深度学习框架,如何从0开始用Python构建神经网络

然而,我们仍然需要一种方法来评估我们的预测的「优秀程度」(即,我们的预测与真实值相差多少?)这就需要用到损失函数了。

损失函数

损失函数有很多种,而我们问题的性质会决定我们使用哪种损失函数。在本文中,我们将采用简单的误差平方和。

无需深度学习框架,如何从0开始用Python构建神经网络

误差平方和,即每个预测值和真实值之间差值的平均值。这个差值是取了平方项的,所以我们测量的是差值的绝对值。

在训练过程中,我们的目标是找到一组最佳的权重和偏置,使损失函数最小化。

反向传播

现在,我们已经找到了预测误差的方法(损失函数),那么我们需要一种方法将错误「传播」回去,从而更新权重和偏置。

为了确定权重和偏置调整的适当值,我们需要知道损失函数对权重和偏置的偏导数。

从微积分的角度来看,函数的偏导数也就是函数的斜率。

无需深度学习框架,如何从0开始用Python构建神经网络

梯度下降算法

如果我们知道了偏导数,我们可以通过简单增加或减少偏导数(如上图所示)的方式来更新权重和偏置。这就是所谓的梯度下降。

然而,由于损失函数的方程不包含权重和偏置,所以我们不能直接计算损失函数对权重和偏置的偏导数。因此,我们需要链式法则来帮助计算。

无需深度学习框架,如何从0开始用Python构建神经网络

以上是用于计算损失函数对权重偏导数的链式法则。简单起见,我们只展示了一层神经网络的偏导数。

唷!这看起来不大好看,但这能让我们获得所需——损失函数对权重的偏导数(斜率),以便相应调整权重。

既然我们已经有了链式法则公式,接下来我们把反向传播函数添加到 Python 代码中。

无需深度学习框架,如何从0开始用Python构建神经网络

整合

既然我们已经有了做前向传播和反向传播的完整 Python 代码,我们可以将神经网络应用到一个示例中,看看它的效果。

无需深度学习框架,如何从0开始用Python构建神经网络

我们的神经网络应该能够习得理想的权重集合以表示这个函数。请注意,对于我们来说,仅通过检查来计算权重并非一件小事。

如果我们将神经网络进行 1500 次迭代,看看会发生什么。下图展示了每次迭代的损失函数值,我们可以清晰地发现损失函数单调下降到最小值。这与我们前面讨论的梯度下降算法是一致的。

无需深度学习框架,如何从0开始用Python构建神经网络

让我们看看神经网络在进行 1500 次迭代后的最终预测(输出):

无需深度学习框架,如何从0开始用Python构建神经网络

进行 1500 次迭代后的预测值

我们成功了!我们的前向传播和反向传播算法成功训练了神经网络,且预测值收敛到了真实值。

请注意,预测值和真实值之间还是有一些轻微差异的。这是可取的,因为它防止了过度拟合,并且使得神经网络具有更强的泛化能力。

下一步

幸运的是,我们的探索还没有结束。关于神经网络和深度学习还有很多需要学习的地方。例如:

  • 除了 Sigmoid 函数之外,我们还可以使用哪些激活函数?
  • 在训练神经网络时使用学习率
  • 使用卷积进行图像分类任务

写在最后

前几天有私信我要Python的学习资料,我连夜整理了一些有深度的Python教程和参考资料,从入门到高级的都有,文件已经打包好了,正在学习Python的同学可以免费下载学习学习。文件下载方式:点击我的头像,关注后私信回复“资料”即可下载。首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。“编程是门手艺活”。什么意思?得练啊。

无需深度学习框架,如何从0开始用Python构建神经网络

http://www.lbrq.cn/news/1341271.html

相关文章:

  • 青岛知名网站建设多少钱/网站流量分析的指标有哪些
  • 免费定制网页/山东济南seo整站优化公司
  • 怎么用lamp做网站/每日财经要闻
  • 个人可以做网站么/种子搜索器
  • 网页设计师简历模板/长沙seo推广
  • 初中生怎样做网站赚钱/新站快速收录
  • 湖南省建设厅建管处/北海seo快速排名
  • windows7PHP网站建设/张北网站seo
  • 虎门外贸网站建设公司/百度如何免费打广告
  • 个人网站域名注册/推广普通话宣传周
  • 专业建站哪家好/南京关键词网站排名
  • 长沙制作网站软件/创建一个网站
  • 同城换物网站为什么做不起来/seo服务公司招聘
  • 俄罗斯b2b网站大全/b站免费版入口
  • 电脑网站开发手机上可以打开吗/中国站长素材网
  • 郑州品牌营销网站建设/网站设计与网页制作
  • 男女做那个的免费视频网站/软件开发外包
  • 网站建设目标分析/百度公司网站推广怎么做
  • 怎么做网页商城/seo和sem推广
  • 外贸网站建设公司排名/重庆网站制作系统
  • 推荐大良网站建设/新app推广去哪里找
  • 网站加载等待/海南百度推广开户
  • 静态网站用什么做/杭州网站
  • 怎么查网站建设是哪家公司/百度seo课程
  • 贵阳疫情爆发时间/谷歌seo优化公司
  • 建站合同/万能搜索引擎
  • 莱芜网站建设资情况介绍/网络营销的三大基础
  • 个人网站开发/广州网络广告推广公司
  • 上海做网站找谁/重庆自动seo
  • 做英文网站内容来源/上海关键词排名优化怎样
  • 【走进Docker的世界】Docker环境搭建
  • ShadowKV 机制深度解析:高吞吐长上下文 LLM 推理的 KV 缓存“影子”方案
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • AI推理的“灵魂五问”:直面2025算力鸿沟与中国的破局之路
  • 计算机网络1-6:计算机网络体系结构
  • 笔试——Day32