深度学习入门(第二天)——走进深度学习的世界 神经网络模型

一、反向传播计算方法

简单的例子:

如何让 f 值更小,就是改变x、y、z,而损失函数也是这样,那么我们分别求偏导,则能得出每个值对结果的影响

链式法则

  • 梯度是一步一步传的

复杂的例子:

二、神经网络整体架构

类生物神经元

左半边是生物学上的神经元,右半边是数学上的“神经元”,可以说是非常像。

整体架构

  • input layer输入层:比如输入X,有多少个x即有多少个input,比如前面的猫有3千多像素点,那么就有3千多个“圈”进行input。

  • hidden layer 1:指将X做了某些变换,且每个圈与前者的全部圈都连接,即是全连接,为什么多了1个圈,是表示可能会在原始特征的基础上做变换,变成4个特征。具体如:假设X输入的是年龄,第一圈表示对年龄做平方,第二个圈表示将年龄与其它值相加相乘等等。

  • W1:input是3个,hidden layer 1是4个,那么夹在中间的W1就是[3,4]的权重矩阵。

  • hidden layer 2:指在1的基础上再进行变换,防止如果hidden layer 1的效果不好,那么加多一层,进行再加工。

  • W2:hidden layer 1是4个,hidden layer 2是4个,那么夹在中间的W2就是[4,4]的权重矩阵。

  • output layer:输出结果。

  • W3:hidden layer 2是4个,output layer 2是1个,那么夹在中间的W3就是[4,1]的权重矩阵。

整体大致公式:

  • 基本架构:

  • 继续堆叠一层:

  • 神经网络的强大之处在于,用更多的参数来拟合复杂的数据

三、神经元个数对结果的影响

ConvNetJS demo: Classify toy 2D data

越多的神经元个数,切分的越明显

如1个神经元:

目的是区分绿色和红色的点,当只有1个神经元时,可以明显看到类似一刀切。

如10个神经元:

可以看到已经切分的非常明显了

另外:在机器学习中,如果数据是完全随机的情况,模型是无法分辨的,但神经网络可以。如下图

这就是神经网络的强大之处,越多神经元区分的越明显,不过也可能存在过拟合,因为太强大了。

四、正则化与激活函数

  • 惩罚力度对结果的影响:

惩罚力度过小(左图),导致的结果是过拟合,有几个红色点明明应该更靠近绿色也被评定为红色。这些一般是训练集的情况,有标签能学到,但是在测试集可能就是灾难了。随着lambda的增大,切分的会相对平滑。

  • 参数个数对结果的影响:

同样,神经元个数越多,也越容易过拟合

  • 激活函数

做非线性变换,如Sigmoid、Relu、Tanh等

激活函数对比

  • Sigmoid:

    其缺点是,靠两边的线过于平缓,无法计算梯度或者约等于0,那么值就不会进行更新或者前向传播,而我们恰恰需要传播来更新我们的W值(前面讲到)

  • Relu:

    市面上绝大多数神经网络用的激活函数,这个是绝对会有梯度,不会出现梯度消失。

五、神经网络过拟合解决方法

  • 不同的预处理结果会使模型的结果发生很大的差异:

    如常见的标准化

  • 参数初始化:通常使用随机策略进行参数初始化

  • DROP-OUT:在神经网络训练过程中,随机去掉部分神经元,以减少神经元的个数,并不是简单的去掉部分,而且每次训练都随机去掉部分。

    这样保证每次训练的神经网络都相对简单,每次训练可以DROP-OUT一部分神经元

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/188336.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACM练习——第一天

因为最近要去农大参加他们的算法邀请赛,然后赛制是ACM赛制的,所以我就直接很迷茫。 然后我就找到了牛客的ACM练习题,好好的练习一下ACM写法,而且我还要被迫写C,哭了。 开始钻研 1.从Java过度到C 题目源于牛客网&…

超越视觉:探索The Foundry NUKE 15 的无限可能性

你是否曾被电影中那些令人震撼的特效所吸引?是否曾梦想过自己也能制作出这样的特效?现在,这个梦想即将成为现实。今天,我们将向你介绍一款引领影视后期特效制作潮流的软件——The Foundry NUKE 15。 The Foundry NUKE 15是一款专…

07.智慧商城——商品详情页、加入购物车、拦截器封装token

01. 商品详情 - 静态布局 静态结构 和 样式 <template><div class"prodetail"><van-nav-bar fixed title"商品详情页" left-arrow click-left"$router.go(-1)" /><van-swipe :autoplay"3000" change"onCha…

结合 Django 和 Vue.js 打造现代 Web 应用

概要 在 Web 开发的世界里&#xff0c;Django 和 Vue.js 分别是后端和前端两个非常流行的框架。Django 以其强大的后端能力、快速开发以及安全性而著称&#xff0c;而 Vue.js 因其简洁、灵活和易于上手在前端开发领域广受欢迎。 本篇文章将详细介绍如何将 Django 与 Vue.js 结…

双点双向重发布

配置IP [R1-GigabitEthernet0/0/0]ip ad 192.168.12.1 24 [R1-GigabitEthernet0/0/1]ip ad 192.168.13.1 24 [R1-LoopBack0]ip address 1.1.1.1 24 [R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24 [R2-GigabitEthernet0/0/1]ip address 192.168.24.2 24 [R2-LoopBack0…

多媒体领域顶会ACM MM 2023 获奖论文一览

ACM 国际多媒体会议是计算机科学领域中多媒体领域的顶级会议&#xff0c;属于CCF A类。今年的ACM MM 2023 已于2023年10月29日至11月2日在加拿大渥太华举行。 ACM MM会议专注于推动多媒体研究和应用&#xff0c;其研究领域广泛涉及触觉、视频、VR/AR、音频、语音、音乐、传感器…

解析 Python requests 库 POST 请求中的参数顺序问题

在这篇文章中&#xff0c;我们将探讨一个用户在使用Python的requests库进行POST请求时遇到的问题&#xff0c;即参数顺序的不一致。用户通过Fiddler进行网络抓包&#xff0c;发现请求体中的参数顺序与他设置的顺序不符。我们将深入了解POST请求的工作原理&#xff0c;并提供解决…

Mysql超详细安装配置教程(保姆级)

目录 一、下载Mysql 二、安装Mysql 三、配置Mysql 四、连接Mysql 五、部分疑难问题 一、下载Mysql 从官网下载MySQL&#xff0c;这里我选用的是Mysql8.0.34版本 二、安装Mysql 下载完成后直接双击进行安装&#xff0c;打开后的页面如下所示&#xff1a; “Developer Defa…

echarts双轴刻度线y轴刻度线对齐

splitNumber属性主要用于设置坐标轴分割的段数。例如&#xff0c;在类目轴&#xff08;category&#xff09;中&#xff0c;可以通过设置splitNumber属性来控制坐标轴被分割成的段数。需要注意的是&#xff0c;这个分割段数只是一个预估值&#xff0c;最终实际显示的段数会在这…

C#调用C++ dll教程

文章目录 一、创建C dll项目二、C#程序员调用C dll三、C与C#数据类型对应基本数据类型对应表C指针类型与C#类型 在使用C#开发客户端时&#xff0c;有时需要调用C dll&#xff0c;本篇博客来介绍C#程序如何调用C dll。 一、创建C dll项目 首先使用VS2022创建C dll项目&#xf…

【MySQL】聚合函数:汇总、分组数据

文章目录 学习目标MAX()、MIN()、AVG()、SUM()、COUNT()COUNT(*) 得到所有记录条目DISTINCT去重练习1&#xff08;使用UNION &#xff0c; SUM&#xff0c; BETEEN AND&#xff09;GROUP BY子句练习2&#xff08;使用sum&#xff0c;group by&#xff0c; join on&#xff0c; …

一文带你了解docker技术

什么是Docker Docker是一种虚拟技术&#xff0c;诞生于2013年&#xff0c;是dotCloud公司研发的开源项目&#xff0c;因为docker这个公司后来改名docker inc&#xff0c;docker的目标是实现轻量级的操作系统虚拟化解决方案。通俗点说&#xff0c;我们想在一台机器上运行多个系…