深度学习与神经网络 | 邱锡鹏 | 第四章学习笔记 神经网络
四、神经网络
文章目录
- 四、神经网络
- 4.1 神经元
- 4.2 神经网络
- 4.3 前馈神经网络
- 4.4 反向传播算法
- 4.5 计算图与自动微分
- 4.6 优化问题
4.1 神经元
w表示每一维(其他神经元)的权重,b可以用来调控阈值,z
经过激活函数得到最后的值a来判断神经元是否兴奋,1就兴奋,0就不兴奋
这就相当于一个简单的线性模型
第二点要求函数和导函数尽可能简单是因为,我们的网络可以设计的比较复杂,所以函数就设计的比较简单,有利于提高网络计算效率
最后一点,函数并不一定是单调递增的,可能局部会递减,但是我们希望的是a可以反映出z的变化
现在复合用的挺多的
非零中心化去w求导,前面是标量,后面seigema (x)是大于0的,导致导函数都大于0或者小于0,有些地方的梯度优化就取不到了
减少非零中心化带来的影响:1.规划一下2.给原来的函数加一个偏置b,使得它变得中心化
ReLU函数有上述好处之外,有一个缺点就是死亡ReLU问题
就是说,由于左边x小于0,那么如果数据集选的时候过于集中,都是小于0的话,那函数值一直是0,那就一直都不会兴奋了,就产生了问题
解决方法:
1.进行规划,就是说选数据集不要过于集中,并且参数也要精心的进行初始化
2.改进ReLU函数LeakyReLU,也就是x小于0的时候乘上一个很小的数,让他不为0
然后ReLU也是一个非零中心化的函数,那也存在上面的问题,可以用ELU函数进行优化
最后还有一个更加平滑的版本Rectifier
常见激活函数及其导函数
4.2 神经网络
前馈网络是信息都是从前往后传递的没有循环边
记忆网络允许循环边的存在,说明一定要记录历史状态,说明这种网络具有记忆功能
图网络中每个方框是一组神经元而不是一个,否则就太复杂了
一般我们用的都是复合形式的网络而不是单个
信息表示是分布式:如果把神经元看做信息的载体,那么一个信息可以分散存储在多个神经元上由它们共同表示这个信息,而不是像符号主义一个符号就表示一组信息
记忆和知识存储在单元之间的连接上:也可以说是神经元的连接上的,它的连接权重定义了它的知识
通过逐渐改变单元之间的连接强度来学习新的知识
4.3 前馈神经网络
定义网络层数的时候一般不算输入层,从输入层下一层开始算是第一层。所以输入层也可以叫第0层,图中的网络层数就是3层
前三个是超参数,我们自己输入的
4-5这两个是参数,是要学习的东西
剩下两个是活性值,是动态的,对于每组不同的x进来之后,这两个值是不同的,其实就是之前的z(x)和激活函数f算出来的结果a
就简单来说就是前一层的结果是后一层的自变量,带入进去进行学习就是了
通用近似定理:根据通用近似定理,对于具有线性输出层和至少一个使用“挤压”性质的激活函数的隐藏层组成的前馈神经网络,只要其隐藏层神经元的数量足够,它可以以任意的精度来近似任何从一个定义在实数空间中的有界闭集函数;
感觉其实就是一个函数必然可以用多层神经网络来无限逼近;即神经网络可以作为一个“万能”函数来使用,可以用来进行复杂的特征转换,或逼近一个复杂的条件分布。
关于该定理的内容了解即可
可以把神经网络看做一个非常复杂的分类器来使用,用神经网络进行之前学过的那些模型的参数进行学习,最后再套一层分类器g(),就把神经网络和该分类器和二为一了
看一个例子,我们输入一张图片,经过三个隐藏层,分别提取不同的特征,越到后面的隐藏层越是提取高级的特征,然后把结果给到最后一层的分类器,最后进行分类
学习的是z(x)中的权重w和偏置b
由于反向传播算法是根据前馈神经网络特点设计的,所以当网络变得复杂之后,不太适用,又提出了自动微分
4.4 反向传播算法
这玩意的数学推导有点难搞,笔者就记了大概意思以应付考试,要更加深入的读者可以去看视频
链式法则(Chain Rule)是在微积分中求复合函数导数的一种常用方法。
先计算矩阵中某个向量的导数,然后再给拼回来,这样就回避了求导比较难的问题
计算出这三个偏导就可以算出要求的两个偏导,第一个和第三个已经有了,所以核心就是怎么求这个误差项
可以看到第l层的误差项是可以由第l+1层的误差项乘以l+1层权重矩阵再乘以激活函数的导数得到,那么这个过程就是反向传播
对于计算一个任何参数的偏导数,可以算损失函数对于最后一层的偏导数,就是最后一层的误差项,计算出来后,然后一层一层迭代往前传递
有了误差项,就可以结合那三个算出损失函数关于参数的偏导数了
4.5 计算图与自动微分
反向传播算法缺点就是梯度是需要手工计算的,并且这个计算比较复杂,容易出错,特别是网络复杂的时候
下面是更加高效的方法:不用手工而是用程序完成计算
就是利用算子把每一阶段的导数都算出来存储了,相当于把递归给转换成备忘录了,比如h6对h5的导数,并不会关心h5内部怎么实现,是什么函数,而只关心h6和h5的关系;
反向模式就是把h6,h5,h4到h1全都算出来再去求偏导
前向模式就是从h1对w的偏导一直往后计算
由于前向模式要保存的中间变量很多,占用内存很大,所以一般使用反向模式
如果网络结构一开始并不可以确定,就适合用动态计算图
而梯度计算的问题计算机程序会帮我们搞定
4.6 优化问题
就是每一项都属于(0,1)这个区间,那么很多项连乘导致梯度趋近于0,这就是梯度消失问题
当网络很深的时候呢,那么后面的梯度就为0了,那么更新起来就很奋费劲,就很难学习
所以激活函数导数最好能在1附近,因为不管怎么连乘都还是1
用ReLU也是因为在其一端,它的梯度一直为1
参数过多,可能比训练集还要多,那很大可能导致过拟合,而且参数解释也很困难,我们不知道哪个参数更加重要
相关文章:
深度学习与神经网络 | 邱锡鹏 | 第四章学习笔记 神经网络
四、神经网络 文章目录 四、神经网络4.1 神经元4.2 神经网络4.3 前馈神经网络4.4 反向传播算法4.5 计算图与自动微分4.6 优化问题 4.1 神经元 w表示每一维(其他神经元)的权重,b可以用来调控阈值,z 经过激活函数得到最后的值a来判…...
去产能、去库存、去杠杆、降成本、补短板的智慧工业开源了。
智慧工业视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上…...
【嵌入式系统设计师】知识点:第4章 嵌入式系统软件基础知识
提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…...
Scala基础知识
数组 不可变数组 第一种方式定义数组 定义:val arr1 new Array[Int](10) (1)new 是关键字 (2)[Int]是指定可以存放的数据类型,如果希望存放任意数据类型,则指定Any (3&#x…...
scala课后总结(7)
不可变数组与可变数组的转换 arr1.toBuffer :将不可变数组 arr1 转换为可变数组,原 arr1 不变,返回新的可变数组 。 arr2.toArray :把可变数组 arr2 转为不可变数组, arr2 本身不变,返回新的不可…...
【T2I】MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis
code:CVPR 2024 MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis [CVPR 2024] MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis - 知乎 Abstract 我们提出了一个多实例生成(Multi-Instance Generation, MIG)任务…...
MyBatis的第三天笔记
4. MyBatis核心配置文件详解 4.1 配置文件结构 MyBatis核心配置文件采用XML格式,主要用于配置数据库连接、事务管理、映射文件等信息。以下是一个基本的配置文件示例: <?xml version"1.0" encoding"UTF-8" ?> <!DOCTY…...
03_docker 部署 nginx 配置 HTTPS 并转发请求到后端服务
03_Docker 部署 Nginx 配置 HTTPS 并转发请求到后端服务 一、在 Docker 内部署 Nginx 拉取 Nginx 镜像 docker pull nginx:1.19.4 //如果能直接拉取使用这个命令 docker pull docker.xuanyuan.me/nginx:1.19.4 //不能直接拉取需要在前面加上镜像地址拉取成功后,创建…...
位运算题目:N 天后的牢房
文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:N 天后的牢房 出处:957. N 天后的牢房 难度 5 级 题目描述 要求 8 \texttt{8} 8 间牢房排成一排,每间牢房的状态是被占用或…...
OceanBase V4.3.5 上线全文索引功能,让数据检索更高效
近日,OceanBase 4.3.5 BP1 版本正式推出了企业级全文索引功能。该版本在中文分词、查询效率及混合检索能力上进行了全面提升。经过自然语言模式和布尔模式在不同场景下的对比测试,OceanBase 的全文索引性能明显优于 MySQL。 点击下载 OceanBase 社区版…...
【MySQL 数据库】数据表的操作
🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 表的查看 1.1 语法 2. 表的创建 2.1 语法 2.2 练习 3. 查看表结构 3.1 语法 3.2 示例 4. 表的修改 4.1 语法 4.2 示例操作 4.2.1 向表中添加字段…...
(三十七)Dart 中使用 Pub 包管理系统与 HTTP 请求教程
Dart 中使用 Pub 包管理系统与 HTTP 请求教程 Pub 包管理系统简介 Pub 是 Dart 和 Flutter 的包管理系统,用于管理项目的依赖。通过 Pub,开发者可以轻松地添加、更新和管理第三方库。 使用 Pub 包管理系统 1. 找到需要的库 访问以下网址,…...
几款开源网盘的比较
开源网盘 1. Nextcloud2. Seafile3. ownCloud4. Syncthing5. FileBrowser6. Z-File7. kiftd总结对比推荐选择 1. Nextcloud 开发语言:PHP (后端) JavaScript (前端) 官网:https://nextcloud.com/ 特点: 功能全面(文件同步、共享…...
python中的in关键字查找的时间复杂度
列表(List) 对于列表来说, in 运算符的复杂度是 O(n),其中n是列表的长度。这意味着如果列表中有n个元素,那么执行 in 运算符需要遍历整个列表来查找目标元素。 以下是一个示例,演示了在列表中使用 in 运算…...
Windows注册鼠标钩子,获取用户选中的文本
注册鼠标钩子 // 注册鼠标钩子 HHOOK hMouseHook; hMouseHook SetWindowsHookEx(WH_MOUSE_LL, MouseProc, GetModuleHandle(NULL), 0);// 取消鼠标钩子 UnhookWindowsHookEx(hMouseHook); hMouseHook nullptr; 上述代码中MouseProc方法用于处理系统的鼠标消息 处理鼠标消息…...
UE5 蓝图里的反射
蓝图支持使用名字调用函数 使用SetTimerByFunctionName节点即可,该节点是指延后多少时间调用函数,注意时间不能是0也不能是负数,否者不会执行...
私有化视频会议系统,业务沟通协作安全不断线
BeeWorks Meet视频会议平台具备丰富而强大的功能,能够满足企业多样化的业务场景需求。其会议管理功能,让企业能够轻松安排和管理各类会议。 从创建会议、设置会议时间、邀请参会人员到会议提醒,一应俱全,确保会议的顺利进行。多人…...
大数据学习(100)-kafka详解
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...
unittest测试模块:Python 标准库中的单元测试利器
在当今的软件开发中,测试的必要性不言而喻。为了确保代码的质量和稳定性,开发者需要一种高效的方式去编写和运行单元测试。Python 提供了一个强大的工具——unittest。这是一个标准库模块,专为编写和运行测试而设计,帮助开发者减少…...
java后端对时间进行格式处理
时间格式处理 通过java后端,使用jackson库的注解JsonFormat(pattern "yyyy-MM-dd HH:mm:ss")进行格式化 package com.weiyu.pojo;import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import …...
Spring的简单介绍
Spring的简单介绍 Spring 是一个开源的 Java 企业级应用开发框架,旨在简化企业应用的开发过程。它通过提供全面的基础设施支持,帮助开发人员构建可靠的、高效的、可扩展的企业级应用程序。Spring 提供了多种功能模块,支持开发不同类型的应用…...
Python基础知识点(函数2)
#需求 打印stu_info def show_info(name,age): print(f"姓名:{name},年龄:{age}") #1.必要参数 在调用函数的时候必须传值 show_info("tom",3) #注意!对于形参,除了个数要匹配,顺序也要匹配 …...
MySQL的左连接、右连接、内连接、外连接
一、前言 MySQL中的左连接、右连接、内连接和全外连接是用于多表关联查询的核心操作。 二、内连接(INNER JOIN) 定义:返回两个表中完全匹配的行,即只保留两个表连接字段值相等的行。示例场景:查询所有有选课记录的学…...
Springboot JPA ShardingSphere 根据年分表
Spring Boot集成JPA与ShardingSphere实现按年分表,需重点关注分片算法选择、时间字段映射及动态表管理。以下是实现方案: 一、依赖配置 1. 核心依赖引入 <!-- ShardingSphere JDBC --> <dependency><groupId>org.apache.shardi…...
巧记英语四级单词 Unit1-3【晓艳老师版】
light 光,轻的、 grant v.准予,承认 gr官人,ant蚂蚁,外面下着大雨,官人让蚂蚁进来了grind v.摩擦,磨碎 官人在里面的 磨刀,准备找法海给白娘子报仇slight v.稍微的,有点的 light 光…...
Flink 任务调度机制
一、Task 任务调度执行流程 一、Graph 的概念 Flink 中的执行图可以分为四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。 StreamGraph:执行用户代码中的 env.execute() 方法后,根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的…...
设计模式之享元模式
1. 概念 享元模式(Flyweight Pattern), 运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。 在享元模式中可以共享的相同内容称为内部状态(Intrinsic State)&…...
设计模式 - 策略模式Strategy
设计思想: 策略模式的就是定义一系列算法,将他们一个个封装起来,并且使它们可以相互替换,通常我们的代码中出现大量的if...else...或者switch语句时,我们都可以使用策略模式来优化代码 典型场景: 支付系…...
23种设计模式-行为型模式-策略
文章目录 简介场景解决代码关键实现细节 总结 简介 策略是一种行为设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法对象能够被替换。 场景 你在开发一款导航应用,类似高德。你要实现自动路线规划的功…...
Ubuntu16.04配置远程连接
配置静态IP Ubuntu16.04 修改超管账户默认密码 # 修改root账户默认密码 sudo passwd Ubuntu16.04安装SSH # 安装ssh服务: sudo apt-get install ssh# 启动SSH服务: sudo /etc/init.d/ssh start # 开机自启 sudo systemctl enable ssh# 如无法连接&…...
window部署虚拟机VirtualBox来部署flink
window通过Cygwin部署flink-1.15.0失败 按理来说Cygwin可以在window模拟unix环境来部署运行flink, 但是在flink 不知从哪个版本开始,flink启动时会在window时创建临时文件夹,传递的文件夹名称参数中有冒号,导致文件夹创建失败&a…...
mac 卸载流氓软件安全助手
之前个人电脑在公司使用过一段时间,为了使用网线联网安装了公司指定的 联软上网助手,谁知安装容易卸载难,后来找运维来卸载,输入管理员密码后,也无反应,最后不了了之了,这个毒瘤软件长期在后台驻…...
java基础使用- 泛型
泛型 泛型作用泛型语法(1) 泛型类/接口(2) 泛型方法 类型参数命名习惯类型通配符(Wildcards)(1) 无界通配符 <?>表示“未知类型”(2) 上界通配符 <? extends T>表示“T 或 T 的子类”。(3) 下界通配符 <? super T>表示“T 或 T 的父…...
Appium的学习总结-Inspector参数设置和界面使用(5)
环境搭建好后,怎么使用呢? 环境这里使用的是: Appium的Server端GUI 22版本 Inspector需要单独下载安装,GUI里并没有集成。 (使用Appium v1.22.0,查看元素信息需要另外安装下载Appium Inspector) 操作&…...
多孔介质电化学:原理、应用与展望
引言 多孔介质广泛存在于自然界与人工材料体系中,从土壤、岩石到电池电极、催化剂载体等。多孔介质电化学作为一门交叉学科,融合了电化学与多孔介质理论,聚焦于电流在充满电解液的多孔介质内的传输规律以及电化学反应在复杂多孔结构中的发生…...
使用Prometheus监控systemd服务并可视化
实训背景 你是一家企业的运维工程师,需将服务器的systemd服务监控集成到Prometheus,并通过Grafana展示实时数据。需求如下: 数据采集:监控所有systemd服务的状态(运行/停止)、资源占用(CPU、内…...
网络游戏服务器如何构建全方位防御体系?DDoS与CC攻击实战防护指南
一、DDoS与CC攻击:游戏服务器的两大“隐形杀手” DDoS攻击:通过僵尸网络发起海量流量冲击,常见形式包括SYN Flood(占满连接队列)、UDP Flood(耗尽带宽)、DNS放大攻击(小查询引发大流…...
geoserver搭建Docker一键直接安装并上传tif影像预览
geoserver搭建Docker一键直接安装 文章目录 geoserver搭建Docker一键直接安装前言一、Docker拉取Geoserver二、运行后使用geoserver进行数据管理进入geoserver调整语言登录geoserver上传一个tif影像建立工作空间并上传自己的tif数据建立图层预览 总结 前言 使用docker安装geos…...
ragflow本地部署(WSL下Ubuntu)
本地docker及 docker-compose版本 安装参考: 实践笔记-docker安装及配置镜像源实践笔记-docker-compose安装 1.下载源码 git clone https://github.com/infiniflow/ragflow.git2.运行docker-compose拉取镜像 cd ragflow/docker docker-compose up -d3.启动报错…...
面试题ing
1、js中set和map的作用和区别? 在 JavaScript 中,Set 和 Map 是两种非常重要的集合类型 1、Set 是一种集合数据结构,用于存储唯一值。它类似于数组,但成员的值都是唯一的,没有重复的值。Set 中的值只能是唯一的,任何…...
我的NISP二级之路-02
目录 一.数据库 二.TCP/IP协议 分层结构 三.STRIDE模型 四.检查评估与自评估 检查评估 自评估 五.信息安全应急响应过程 六.系统工程 七.SSE-CMM 八.CC标准 九.九项重点工作 记背: 一.数据库 关于数据库恢复技术,下列说法不正确的是:…...
私有云平台总体建设方案
一、总体规划 二、项目建设...
前端使用正则表达式提取经纬度 度分秒值
经纬度:1240′0.0″,我想提取度分秒 const regex /(\d\.\d)\s*(\d\.\d)′\s*(\d\.\d)″/; const latMatches record.latDegreeMinuteSecond.match(regex); if (latMatches) {record.latDegree latMatches[1]; // 提取度record.latMinute latMatches[…...
如何在 Windows 11 上查找计算机的 IP 地址?
原文:如何在 Windows 11 上查找计算机的 IP 地址? | w3cschool笔记 在开始之前,我们先来了解一下什么是 IP 地址: 假设你住在一栋公寓楼里,快递员需要把包裹送到你家。为了确保快递能准确送到,你需要提供…...
JavaEE vs JavaSE:Java开发的两大世界深度解析
JavaEE vs JavaSE:Java开发的两大世界深度解析 🌐☕ 前言:Java世界的双子星座 作为一名Java开发者,你是否曾经困惑过JavaSE和JavaEE的区别?是否在选择学习路径时感到迷茫?别担心!今天我们将彻…...
[环境配置] 2. 依赖库安装
依赖库安装 本文档详细介绍深度学习项目所需的核心依赖库安装过程,包括 CUDA、PyTorch 等组件的安装和配置。 CUDA和cuDNN安装 CUDA安装 检查显卡是否支持CUDA: 访问NVIDIA官网查看支持列表使用命令 nvidia-smi 查看显卡信息 下载安装CUDA Toolkit&a…...
No module named ‘keras.api._v2‘
No module named keras.api._v2 解解方法,同: No module named ‘keras.engine‘-CSDN博客...
线性方程组的解法
文章目录 线性方程组的解法认识一些基本的矩阵函数MATLAB 实现机电工程学院教学函数构造1.高斯消元法2.列主元消去法3. L U LU LU分解法 线性方程组的解法 看到以下线性方程组的一般形式:设有以下的 n n n阶线性方程组: A x b \mathbf{Ax}\mathbf{b} A…...
OpenHarmony-5.0.0-Risc-V架构搭建DeepSeek-R1
OpenHarmony-5.0.0-Risc-V架构搭建DeepSeek-R1 参考laval社区的文章:OpenHarmony带你玩转DeepSeekR1大模型 文章目录 OpenHarmony-5.0.0-Risc-V架构搭建DeepSeek-R1前言一、前期准备二、获取源码1.错误示范2.下载 三、编译llama.cpp1.生成makefile2.编译 四、模型文…...
Elixir语言的函数定义
Elixir语言的函数定义 Elixir是一种基于Erlang虚拟机(BEAM)的函数式编程语言,因其并发特性及可扩展性而受到广泛欢迎。在Elixir中,函数是程序的基本构建块,了解如何定义和使用函数对于掌握这门语言至关重要。本文将深…...