【】AI八股-神经网络相关
Deep-Learning-Interview-Book/docs/深度学习.md at master · amusi/Deep-Learning-Interview-Book · GitHub
网上相关总结:
小菜鸡写一写基础深度学习的问题(复制大佬的,自己复习用) - 知乎 (zhihu.com)
CV面试问题准备持续更新贴 - 知乎 (zhihu.com)
Epoch
- Epoch 是指完成一次完整的数据集训练的过程。
- 比如,有一个数据集有1000个样本,当网络用这些样本训练一次后,这就是一个epoch。
Iteration
- Iteration 是指在一个epoch中,使用一个batch进行训练的次数。
- 如果你的数据集有1000个样本,batch size是100,那么一个epoch就会有10次iteration(1000/100=10)。
Batch Size
- Batch Size 是指每次iteration中用于训练的样本数量。
- 如果你的batch size是100,每次训练就使用100个样本。
反向传播(BP)推导
假设我们有一个简单的三层神经网络(输入层、隐藏层和输出层):
- 输入层: xxx
- 隐藏层: hhh
- 输出层: yyy
前向传播
-
输入到隐藏层: h=f(Wxhx+bh)h = f(W_{xh} x + b_h)h=f(Wxhx+bh) 其中 WxhW_{xh}Wxh 是输入到隐藏层的权重矩阵,bhb_hbh 是隐藏层的偏置向量,fff 是激活函数。
-
隐藏层到输出层: y^=g(Whyh+by)\hat{y} = g(W_{hy} h + b_y)y^=g(Whyh+by) 其中 WhyW_{hy}Why 是隐藏层到输出层的权重矩阵,byb_yby 是输出层的偏置向量,ggg 是输出层的激活函数,通常在分类问题中是softmax函数。
损失函数
假设我们使用均方误差损失函数:![]()
其中 yyy 是实际输出,y^\hat{y}y^ 是预测输出。
反向传播
我们需要计算损失 LLL 对每个权重和偏置的梯度,然后更新这些参数。我们从输出层开始,逐层向后推导。
-
输出层梯度:

-
隐藏层到输出层权重梯度:

-
隐藏层到输出层偏置梯度:

-
隐藏层误差:

-
输入层到隐藏层权重梯度:

-
输入层到隐藏层偏置梯度:

参数更新
使用梯度下降法更新权重和偏置:

其中 η 是学习率。
深度神经网络(DNN)反向传播算法(BP) - 刘建平Pinard - 博客园 (cnblogs.com)

感受野计算
如何计算感受野(Receptive Field)——原理 - 知乎 (zhihu.com)
池化
1. 池化的作用
池化的主要作用有两个:
- 降低计算复杂度:通过减少特征图的尺寸,减少后续卷积层和全连接层的计算量。
- 减小过拟合:通过降低特征图的分辨率,可以使模型更具鲁棒性,对输入数据的小变化不那么敏感。
2. 池化类型
池化操作通常有两种类型:
- 最大池化(Max Pooling):从池化窗口中选择最大值。
- 平均池化(Average Pooling):从池化窗口中选择平均值。
池化(Pooling)的种类与具体用法——基于Pytorch-CSDN博客
一图读懂-神经网络14种池化Pooling原理和可视化(MAX,AVE,SUM,MIX,SOFT,ROI,CROW,RMAC )_图池化-CSDN博客
卷积神经网络(CNN)反向传播算法 - 刘建平Pinard - 博客园 (cnblogs.com)
Sobel边缘检测
是图像处理中常用的技术,它使用卷积核(滤波器)来突出图像中的边缘。Sobel算子通过计算图像灰度值的梯度来检测边缘。
1. Sobel算子
Sobel算子有两个卷积核,一个用于检测水平方向的边缘,另一个用于检测垂直方向的边缘。
水平Sobel卷积核(Gx)
diff
复制代码
-1 0 1 -2 0 2 -1 0 1
垂直Sobel卷积核(Gy)
diff
复制代码
-1 -2 -1 0 0 0 1 2 1
2. Sobel卷积操作
通过将这两个卷积核分别与图像进行卷积操作,可以得到图像在水平方向和垂直方向上的梯度图。
卷积计算过程
假设有一个3x3的图像块:
css
复制代码
a b c d e f g h i
水平方向的梯度计算(Gx):
css
复制代码
Gx = (c + 2f + i) - (a + 2d + g)
垂直方向的梯度计算(Gy):
css
复制代码
Gy = (g + 2h + i) - (a + 2b + c)
3. 组合梯度
最终的梯度强度可以通过组合Gx和Gy计算得到:
scss
复制代码
G = sqrt(Gx^2 + Gy^2)
梯度计算
通过这些卷积核,我们可以计算图像在水平方向和垂直方向的梯度。梯度表示图像灰度值的变化速率,变化速率大的地方就是边缘。具体来说:
- 水平方向梯度(Gx):表示图像从左到右的变化。如果有明显的水平边缘,Gx会有大的值。
- 垂直方向梯度(Gy):表示图像从上到下的变化。如果有明显的垂直边缘,Gy会有大的值。
4. 组合梯度
最终,通过组合水平方向和垂直方向的梯度(通常使用欧几里得距离),我们可以得到图像的梯度强度:
计算力(flops)和参数(parameters)数量
(31 封私信 / 80 条消息) CNN 模型所需的计算力(flops)和参数(parameters)数量是怎么计算的? - 知乎 (zhihu.com)


参数共享的卷积环节



不可导的激活函数如何处理



BN
BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm总结_四维layernormal-CSDN博客
Batch Normalization原理与实战 - 知乎 (zhihu.com)
Normalization操作我们虽然缓解了ICS问题,让每一层网络的输入数据分布都变得稳定,但却导致了数据表达能力的缺失。BN又引入了两个可学习(learnable)的参数 𝛾 与 𝛽 。这两个参数的引入是为了恢复数据本身的表达能力,对规范化后的数据进行线性变换

重点最后一句





感受野计算
卷积神经网络物体检测之感受野大小计算 - machineLearning - 博客园 (cnblogs.com)
卷积神经网络的感受野 - 知乎 (zhihu.com)


资源 | 从ReLU到Sinc,26种神经网络激活函数可视化 (qq.com)
非线性激活函数的线性区域


从 SGD 到 Adam —— 深度学习优化算法概览(一) - 知乎 (zhihu.com)
一个框架看懂优化算法之异同 SGD/AdaGrad/Adam - 知乎 (zhihu.com)
指数移动平均公式
EMA指数滑动平均(Exponential Moving Average)-CSDN博客
动量梯度下降法(Momentum)
Adagrad
RMSprop
Adam
Adam那么棒,为什么还对SGD念念不忘 (2)—— Adam的两宗罪 - 知乎 (zhihu.com)
dropout
深度学习-Dropout详解_深度学习dropout-CSDN博客
Dropout的深入理解(基础介绍、模型描述、原理深入、代码实现以及变种)-CSDN博客
一文看尽12种Dropout及其变体-腾讯云开发者社区-腾讯云 (tencent.com)
Pytorch——dropout的理解和使用 - Circle_Wang - 博客园 (cnblogs.com)
1x1卷积
(31 封私信 / 80 条消息) 卷积神经网络中用1*1 卷积有什么作用或者好处呢? - 知乎 (zhihu.com)
深度学习笔记(六):1x1卷积核的作用归纳和实例分析_1x1卷积降维-CSDN博客




AlexNet网络结构详解(含各层维度大小计算过程)与PyTorch实现-CSDN博客
深度学习——VGG16模型详解-CSDN博客


3乘3卷积代替5乘5卷积
经典卷积神经网络算法(4):GoogLeNet - 奥辰 - 博客园 (cnblogs.com)
1x1卷积降维再接3x3卷积

resnet
两种ResNet设计

channel不同怎么相加
通过卷积调整
ResNet解析-CSDN博客


(31 封私信 / 80 条消息) resnet(残差网络)的F(x)究竟长什么样子? - 知乎 (zhihu.com)

(31 封私信 / 80 条消息) Resnet到底在解决一个什么问题呢? - 知乎 (zhihu.com)

残差连接使梯度稳定


ResNet中的恒等映射是一种直接将输入添加到输出的操作方式,确保了信息和梯度可以稳定地传递。它通过保持梯度的稳定性,防止了梯度消失和爆炸问题,从而使得训练非常深的网络成为可能。

(31 封私信 / 80 条消息) ResNet为什么不用Dropout? - 知乎 (zhihu.com)


人工智能 - [ResNet系] 002 ResNet-v2 - G时区@深度学习 - SegmentFault 思否
DenseNet详解_densenet网络-CSDN博客
yolo系列
YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!-CSDN博客
【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)_yolo论文-CSDN博客
YOLO系列算法精讲:从yolov1至yolov8的进阶之路(2万字超全整理)-CSDN博客
NMS
v2引入anchor
分割
计算机视觉—浅谈语义分割、实例分割及全景分割任务 (深度学习/图像处理/计算机视觉)_全景分割和实例分割-CSDN博客
【计算机视觉】最全语义分割模型总结(从FCN到deeplabv3+)-CSDN博客
目标检测与YOLO(2) + 语义分割(FCN)_yolo模型和fcn-CSDN博客
【yolov8系列】yolov8的目标检测、实例分割、关节点估计的原理解析-CSDN博客
yolo实现实例分割和关键点预测,都是在head部分增加新的检测头实现



Bounding-box regression详解(边框回归)_bbox regression-CSDN博客

反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)_反卷积和上采样-CSDN博客
形象解释:
反卷积(Transposed conv deconv)实现原理(通俗易懂)-CSDN博客
相关文章:
【】AI八股-神经网络相关
Deep-Learning-Interview-Book/docs/深度学习.md at master amusi/Deep-Learning-Interview-Book GitHub 网上相关总结: 小菜鸡写一写基础深度学习的问题(复制大佬的,自己复习用) - 知乎 (zhihu.com) CV面试问题准备持续更新贴 …...
NodeJs的安装与环境变量配置
Node.js的环境变量配置主要涉及设置Node.js的安装路径、npm(Node Package Manager)的全局模块安装路径和缓存路径,以及可能需要的国内镜像源配置。以下是详细的配置步骤: 一、安装Node.js 下载Node.js安装包: 访问Nod…...
进程输入输出及终端属性学习
进程的标准输入输出 当主进程fork或exec子进程,文件描述符被继承,因此0,1,2句柄也被继承,从而使得telnet等服务,可以做到间接调用别的shell或程序。比如如果是远程登录使用的zsh,那么其会重定向到相应的pts $ ps|gre…...
关于redis集群和事务
最近为了核算项目的两个架构指标(可用性和伸缩性),需要对项目中使用的Redis数据库的集群部署进行一定程度的了解,当然顺便再学习一遍它的事务细节。 既然我在上面把Redis称之为数据库,那么在我们目前的项目里…...
ctfshow-web入门-文件包含(web88、web116、web117)
目录 1、web88 2、web116 3、web117 1、web88 没有过滤冒号 : ,可以使用 data 协议,但是过滤了括号和等号,因此需要编码绕过一下。 这里有点问题,我 (ls) 后加上分号发现不行,可能是编码结果有加号,题目…...
My sql 安装,环境搭建
以下以MySQL 8.0.36为例。 一、下载软件 1.下载地址官网:https://www.mysql.com 2. 打开官网,点击DOWNLOADS 然后,点击 MySQL Community(GPL) Downloads 3. 点击 MySQL Installer for Windows 4.点击Archives选择合适版本 5.选择后下载…...
JVM原理(二十):JVM虚拟机内存的三特性详解
1. 原子性、可进行、有序性 1.1. 原子性 Java内存模型围绕着在并发过程中如何处理原子性、可见性和有序性这三个特征来建立的。 Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write这六个。我们大致可以认为,基本数据类型的访问、…...
Flink 窗口触发器(Trigger)(二)
Flink 窗口触发器(Trigger)(一) Flink 窗口触发器(Trigger)(二) Apache Flink 是一个开源流处理框架,用于处理无界和有界数据流。在 Flink 的时间窗口操作中,触发器(Trigger)是一个非常重要的概念,它决定了窗口何时应…...
CH12_函数和事件
第12章:Javascript的函数和事件 本章目标 函数的概念掌握常用的系统函数掌握类型转换掌握Javascript的常用事件 课程回顾 Javascript中的循环有那些?Javascript中的各个循环特点是什么?Javascript中的各个循环语法分别是什么?…...
Android- Framework 非Root权限实现修改hosts
一、背景 修改system/etc/hosts,需要具备root权限,而且remount后,才能修改,本文介绍非root状态下修改system/etc/hosts方案。 环境:高通 Android 13 二、方案 非root,system/etc/hosts只有只读权限&…...
mac安装达梦数据库
参考:mac安装达梦数据库 实践如下: 1、下载达梦Docker镜像文件 同参考链接 2、导入镜像 镜像可以随便放在某个目录,相当于安装包,导入后就没有作用了。 查找达梦镜像名称:dm8_20240613_rev229704_x86…...
14-41 剑和诗人15 - RLAIF 大模型语言强化培训
介绍 大型语言模型 (LLM) 在自然语言理解和生成方面表现出了巨大的能力。然而,这些模型仍然存在严重的缺陷,例如输出不可靠、推理能力有限以及缺乏一致的个性或价值观一致性。 为了解决这些限制,研究人员采用了一种名为“人工…...
每日一题~oj(贪心)
对于位置 i来说,如果 不选她,那她的贡献是 vali-1 *2,如果选他 ,那么她的贡献是 ai. 每一个数的贡献 是基于前一个数的贡献 来计算的。只要保证这个数的前一个数的贡献是最优的,那么以此类推下去,整体的val…...
成人高考报名条件及收费标准详解
成人高考报名条件及收费标准详解 您想通过成人高考改变自己的命运,但不知道报名条件和收费标准?本文将为您详细介绍成人高考报名条件和收费标准,并为您提供专业的成人教育服务。 深圳成人高考www.shenzhixun.com 成人高考报名条件 成人高考…...
openmetadata1.3.1 自定义连接器 开发教程
openmetadata自定义连接器开发教程 一、开发通用自定义连接器教程 官网教程链接: 1.https://docs.open-metadata.org/v1.3.x/connectors/custom-connectors 2.https://github.com/open-metadata/openmetadata-demo/tree/main/custom-connector (一&…...
PostgreSQL 如何优化存储过程的执行效率?
文章目录 一、查询优化1. 正确使用索引2. 避免不必要的全表扫描3. 使用合适的连接方式4. 优化子查询 二、参数传递1. 避免传递大对象2. 参数类型匹配 三、减少数据量处理1. 限制返回结果集2. 提前筛选数据 四、优化逻辑结构1. 分解复杂的存储过程2. 避免过度使用游标 五、事务处…...
普中51单片机:数码管显示原理与实现详解(四)
文章目录 引言数码管的结构数码管的工作原理静态数码管电路图开发板IO连接图代码演示 动态数码管实现步骤数码管驱动方式电路图开发板IO连接图真值表代码演示1代码演示2代码演示3 引言 数码管(Seven-Segment Display)是一种常见的显示设备,广…...
web缓存代理服务器
一、web缓存代理 web代理的工作机制 代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并指定目标原始服务器,然后代理服务器向原始…...
容器:queue(队列)
以下是关于queue容器的总结 1、构造函数:queue [queueName] 2、添加、删除元素: push() 、pop() 3、获取队头/队尾元素:front()、back() 4、获取栈的大小:size() 5、判断栈是否为空:empty() #include <iostream> #include …...
探索 WebKit 的后台同步新纪元:Web Periodic Background Synchronization 深度解析
探索 WebKit 的后台同步新纪元:Web Periodic Background Synchronization 深度解析 随着 Web 应用逐渐成为我们日常生活中不可或缺的一部分,用户对应用的响应速度和可靠性有了更高的期待。Web Periodic Background Synchronization API(周期…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...






