【BIAI】lecture 3 - GD BP CNN Hands-on

GD & BP & CNN & Hands-on

专业术语

gradient descent (GD) 梯度下降
back propagation (BP) 向传播
Convolutional Neural Network (CNN) 卷积神经网络
forward propagation 前向传播
biologically symmetry 生物对称性
synaptic 突触
axon 轴突

课程大纲

在这里插入图片描述

The goal of AI: minimize the loss function

AI的任务目标就是解决优化函数,找到使得损失函数最小的参数 θ \theta θ在这里插入图片描述

Q: 什么是GD?
A: 梯度下降是一种优化算法,用于最小化或最大化目标函数。在神经网络中,我们通常希望最小化损失函数,以便使网络的预测结果与实际结果更接近。梯度下降通过迭代地更新网络参数来逐步调整模型,使损失函数逐渐减小

使用线性回归举例说明如何实现这个目标
如下图,线性回归模型y= β \beta βx,参数是 β \beta β,损失函数L( β \beta β)。
可以直接求出二次函数的最小值,如下图中(b)所示,也可以使用GD求出最小值。
在这里插入图片描述
当参数很多的时候,依旧可以使用GD,比如有两个参数,最开始初始化 θ \theta θ θ 0 {\theta}^0 θ0第一次GD:先对 θ 0 {\theta}^0 θ0求偏导,即对 θ 0 {\theta}^0 θ0中的两个参数分别求偏导,然后乘上学习率 η \eta η,得到的值用 ▽ L ( θ ) {\bigtriangledown}L(\theta) L(θ)表示, θ 0 {\theta}^0 θ0- ▽ L ( θ ) {\bigtriangledown}L(\theta) L(θ)便得到 θ 1 {\theta}^1 θ1 。一直不断地GD,直到L收敛,便找使得L最小的 θ {\theta} θ
在这里插入图片描述

Gradient Descent to train Neural networks

在神经网络中,往往有上亿个参数,如果使用GD,每一次计算,都会有上亿个参数需要做GD,那如果要做到L收敛,GD的计算量是非常大的。所以,我们借助反向传播来解决问题。
在这里插入图片描述

Q: 直接使用梯度下降有什么问题?
A:

  • 参数数量庞大:神经网络通常有大量的参数,特别是在深度神经网络中。如果直接计算每个参数对于损失函数的梯度,将需要非常大的计算开销和存储空间。
  • 计算效率:在计算梯度时,需要通过前向传播计算网络的输出,然后通过反向传播计算每个参数对于损失函数的梯度。直接通过数值计算梯度需要执行大量的重复计算,效率较低。

BG

反向传播解决了这些问题,并提供了一种高效计算梯度的方法。通过使用链式法则,反向传播可以将梯度从输出层向输入层传播,利用相同的前向传播过程中计算的中间结果,避免了重复计算。这样可以大大减少计算开销,并使得神经网络的训练更加高效。

关于为什么反向传播可以利用前向传播的计算结果,大家可以参考这篇博客:深度学习——P13 Backpropagation,是李宏毅课程内容的笔记,大家也可去看李宏毅深度学习课程视频。

最后总结一下反向传播,如下图所示,在GD中是计算 L L L w w w的偏导(等同于上文的 θ \theta θ,在反向传播中转化为 L L L z z z求偏导乘以 z z z w w w求偏导 z z z w w w的偏导结果其实就是前项传播中计算的每一层输入,因为 z = w 1 x 1 + w 2 x 2 z=w_1x_1+w_2x_2 z=w1x1+w2x2,所以对 w w w求偏导,就得到 x 1 x_1 x1 x 2 x_2 x2。这在前项传播中计算得到,不用再次计算。而 L L L z z z的偏导的计算也比较好算,因为 L L L的公式给出了,只需要根据公式计算就行,并且是一阶函数求导,这样大大简化了计算量。

在这里插入图片描述

Backpropagation (BP) in the Brain?

大脑是使用反向传播算法去学习?现在没有直接的证据证明。
在大脑中实施BP有几个困难:
在这里插入图片描述

The Architecture of CNN

这部分大家可以直接看李宏毅老师的课程,也可以参考这篇博客——【李宏毅】深度学习-CNN(影像辨识为例)

Hands-on

自己手动建立CNN网络,使用CNN实现EEG降噪。输入:原始神经信号,输出:降噪后的神经信号。
在这里插入图片描述

因为有时候采集的EEG信号存在噪声,我们可以使用神经网络来降噪,怎么做到呢?我们有许多的原始的EEG信号和这些信号降噪后的数据(label),将原始的EEG信号输入model,输出的结果和label计算loss,然后进行BP,这样我们的model就能够拟合出一个合适的参数,使得model的输出和label的差距最小,从而在训练结束后,我们可以使用这个model处理我们的数据进行降噪。

代码实现

首先,调包并读取数据
在这里插入图片描述
然后构建CNN
在这里插入图片描述开始训练
在这里插入图片描述
训练结果可视化
在这里插入图片描述
结果
在这里插入图片描述

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

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

相关文章

BUUCTF crypto做题记录(6)新手向

一、Unencode 得到的密文&#xff1a;89FQA9WMD<V1A<V1S83DY.#<W3$Q,2TM] 看题目名字&#xff0c;我们可以知道这是一个解码的题目&#xff0c;但是unencode 好像是不可解码的意思&#xff0c;我们可以对照着解码方式看一下哪个更适合&#xff0c;可以进行尝试一下C…

Linux系统操作——重启oracle服务:监听器和实例

目录 一、重启Oracle数据库及监听器 【方法一】 【方法二】 【方法三】 二、查看oracle监听状态 三、重启实例 一、重启Oracle数据库及监听器 【方法一】 获取root权限 su root 进入oracle的安装目录 cd $ORACLE_HOME 重启数据库 dbstart 重启监听器 lsnrctl st…

RocketMQ 投递消息方式以及消息体结构分析:Message、MessageQueueSelector

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

H5的3D游戏开源框架

在H5的3D游戏框架中&#xff0c;Three.js、Babylon.js和Turbulenz是比较受欢迎的选择。 Three.js是一个广泛应用并且功能强大的JavaScript 3D库&#xff0c;可以创建简单的3D动画到创建交互的3D游戏。 Babylon.js是David Catuhe对3D游戏引擎热爱的结果&#xff0c;是最好的Jav…

腾讯云取消免费10G CDN流量包:免费CDN时代结束

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 免费送了7-8年的腾讯云10G免费流量包&#xff0c;从2024年开始&#xff0c;停止赠送了!自此&#xff0c;国内绝大多数互联网大厂的CDN都开收费了! 大概从2016年开始&#xff0c;腾讯云为了抢夺CDN客户&#xff0…

基于Spring-boot-websocket的聊天应用开发总结

目录 1.概述 1.1 Websocket 1.2 STOMP 1.3 源码 2.Springboot集成WS 2.1 添加依赖 2.2 ws配置 2.2.1 WebSocketMessageBrokerConfigurer 2.2.2 ChatController 2.2.3 ChatInRoomController 2.2.4 ChatToUserController 2.3 前端聊天配置 2.3.1 index.html和main.j…

从0开始python学习-43.通过yaml实现不同文件之间参数的关联

目的&#xff1a; 1. 统一管理接口关联的中间变量 2. 解决多个py文件中间的中间变量关联的问题 新建一个yaml_util.py进行封装读写清空yaml方法 # 读取 def read_yaml(key): with open("extract.yaml",encoding"utf-8") as f: #这里的文件如果没有会自…

mnn-llm: 大语言模型端侧CPU推理优化

在大语言模型(LLM)端侧部署上&#xff0c;基于 MNN 实现的 mnn-llm 项目已经展现出业界领先的性能&#xff0c;特别是在 ARM 架构的 CPU 上。目前利用 mnn-llm 的推理能力&#xff0c;qwen-1.8b在mnn-llm的驱动下能够在移动端达到端侧实时会话的能力&#xff0c;能够在较低内存…

MySQL之视图外连接、内连接和子查询的使用

一、视图 1.1 含义 虚拟表&#xff0c;和普通表一样使用 1.2 操作 创建视图 create view 视图名 as 修改视图 方式一&#xff1a; create or replace view 视图名 as 【查看视图相关字段】 方式二&#xff1a; alter view 视图名 as 【查看的SQL语句】 查看视图 方式一&…

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C#)

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为视频格式&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的图像转换为OpenCV的图像的技术背景在NEOAPI SDK里实现相机图像转换为视频格式 工业相机通过OpenCV实现相机图像转换为视频格式的优…

Docker Zookeeper 安装 简单教程

现在各种组件大部分都能找到Docker的镜像了&#xff0c;Docker容器化安装很多复杂中间件都变得非常轻松了。 1.拉取镜像 以下命令默认是拉取最新版本 zookeeper:latest docker pull zookeeper 注: 若要拉取指定版本如3.7&#xff0c;则可以执行命令 docker pull zookeeper:…

Nginx快速入门:Nginx实现高可用|结合keepalived实现主备节点(九)

0. 引言 在生产中我们要尽可能避免单点故障&#xff0c;nginx也不例外&#xff0c;因此搭建主备节点必不可少&#xff0c;今天我们来学习下如何利用keepalived实现主备 1. keepalived简介 keepalived 是一个LINUX系统中开源的负载均衡和故障转移软件&#xff0c;它主要用于高…

2024年阿里云、腾讯云、华为云、LightNode、硅云服务器如何选?怎么买最划算?[最新价格表]

很多小伙伴都有一颗上云的心&#xff0c;包括我自己 有事没事的折腾一下自己的小破站&#xff0c;也挺有意思的&#xff01; 那么&#xff0c;云服务器哪家好&#xff1f;优惠力度哪家大&#xff1f;活动入口哪里进&#xff1f;云服务器如何配置&#xff1f;如何选型&#xf…

K8S集群部署解决工作节点couldn‘t get current server API group list问题

最近在自己电脑上装了VMWare Player&#xff0c;在上面装了两个Ubuntu虚拟机&#xff0c;为了方便学习云原生技术&#xff0c;决定在上面装一个2个节点&#xff08;一个控制面&#xff0c;一个工作节点&#xff09;的K8S集群。 参考这篇文章&#xff1a; Ubuntu 22.04 搭建K8…

kubectl的插件安装工具krew

最近得知一个kubectl插件安装工具&#xff0c;叫做krew。 官网地址是&#xff1a;Krew – kubectl plugin manager 安装krew 按照官网的做法&#xff0c;一直安装失败&#xff0c;于是拆解步骤&#xff0c;一步一步下载离线安装。 1、下载krew.yaml 地址&#xff1a;https:…

体验ubuntu,windows双系统

大家好&#xff0c;这里是七七&#xff0c;今天来分享一下安装双系统的经历&#xff0c;这不是用虚拟机来运行哦。 一、安装过程 首先是下载一个ubuntu&#xff08;对于新手建议下载ubuntu kylin,这是国产的哦&#xff09;的镜像&#xff0c;并且对内存进行压缩、分区。然后用…

Proteus 各版本安装指南

Proteus下载链接 https://pan.baidu.com/s/1vHgg8jK9KSHdxSU9SDy4vQ?pwd0531 1.鼠标右击【Proteus8.15(64bit&#xff09;】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到Proteus8.15(64bit&#xff09; 】。 2.打开解压后的文件夹&#…

自建数据库如何选择阿里云服务器配置?

阿里云服务器配置如何选择&#xff1f;用于自建数据库可以第七代云服务器ECS计算型c7、通用型g7或内存型r7实例&#xff0c;企业级独享型云服务器&#xff0c;CPU采用第三代Intel Xeon可扩展处理器&#xff08;Ice Lake&#xff09;&#xff0c;基频2.7 GHz&#xff0c;全核睿频…

适用于生物行业的生信云平台

随着基因检测技术的不断发展&#xff0c;生物信息云平台在基因检测行业的应用越来越广泛。生物信息云平台是一种基于云计算的技术&#xff0c;可以将基因检测数据存储在云端&#xff0c;并通过数据分析、挖掘等技术手段&#xff0c;对基因数据进行处理、分析和解读。 这种技术的…

Linux安装nginx(带http ssl)

nginx安装 nginx文件 以及gcc pcre zlib openssl 网盘下载 1.安装gcc yum -y install gcc gcc-c 2.安装pcre rpm -ivh pcre-8.32-17.el7.x86_64.rpm --force --nodeps rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm --force --nodeps 3.安装zlib tar -zxvf zlib-1.2.11.ta…