二、AI知识(神经网络)
二、AI知识(神经网络)
1.常用算法
-
FNN
-
CNN
-
RNN
-
LSTM
-
DNN
-
GRU
2.深度学习中概念及算法
1. 感知机
- 感知机(Perceptron)是一种最早的人工神经网络模型之一,通常用来解决二分类问题。它由弗兰克·罗森布拉特(Frank Rosenblatt)于1958年提出,是单层的线性分类模型,也是深度学习和神经网络发展的起点之一。
2. 激活函数(如Sigmoid、ReLU、Softmax)
一、Sigmoid
- Sigmoid函数(也叫逻辑斯蒂函数或S型函数)是一种常用的数学函数,它的输出值总是介于0和1之间。
二、ReLU
- ReLU(Rectified Linear Unit)函数是一种常用的激活函数,尤其在深度学习神经网络中应用广泛。它将输入值小于0的部分“修剪”掉,并且对输入值大于或等于0的部分保持不变。
三、Softmax
- Softmax 函数(也称为归一化指数函数)是一个常用于分类任务,尤其是多类别分类问题中的激活函数。它的作用是将一个向量转换为一个概率分布,每个输出值介于 0 和 1 之间,且所有输出值的和为 1。
3. 损失函数(如回归损失:MSE、MAE;分类损失:交叉熵损失Cross Entropy Loss、二元交叉熵BCE、Dice Loss)
一、MSE
- MSE损失函数(Mean Squared Error Loss Function)是一种常用的回归问题中的损失函数,用于衡量模型预测值与真实值之间的误差。它计算预测值与实际值之间差异的平方的平均值,因此常用于衡量模型预测的准确性。
二、MAE
- MAE损失函数(Mean Absolute Error Loss Function,平均绝对误差)是回归问题中另一种常见的损失函数,用于衡量模型预测值与真实值之间的差异。与MSE(均方误差)不同,MAE计算的是误差的绝对值的平均值,因此它对异常值的敏感度较低。
三、交叉熵损失Cross Entropy Loss
- 交叉熵损失(Cross Entropy Loss) 是一种广泛用于分类问题,尤其是多分类 和二分类闵比方法的损失函数。它衡量的是模型输出的概率分布与实际标签之间的差异,尤其是在分类问题中经常使用。
四、二元交叉熵BCE
- 二元交叉熵(Binary Cross-Entropy, BCE),又称二分类交叉熵损失函数,是用于二分类问题的常见损失函数。它用于衡量模型预测的概率与实际标签之间的差异,尤其是在目标是二分类(0或1)问题时。二元交叉熵损失非常适合用于输出为概率值的模型(如使用 Sigmoid 激活函数的模型)。
五、Dice Loss
- Dice Loss 是一种常用于 图像分割(特别是医学图像分割)任务中的损失函数。它基于 Dice 相似系数(Dice Similarity Coefficient, DSC),一种衡量两个样本相似度的指标,常用来评估两个集合的重叠程度。Dice Loss 主要用于处理 类别不平衡 或 小目标检测 的问题,因为它能够对小区域的预测更加敏感。
4. 前向传播/反向传播(深度学习框架,如TensorFlow、PyTorch)
一、TensorFlow
- 原理
- TensorFlow 是一个开源的机器学习框架,最初由 Google Brain 团队开发,并于2015年发布。它广泛用于深度学习模型的构建、训练和部署,支持从小型实验到大规模生产环境的各类机器学习任务。TensorFlow 提供了丰富的 API,支持各种机器学习任务,尤其在深度学习、神经网络和深度强化学习方面表现突出。它支持多种计算平台,包括 CPU、GPU 和 TPU(Google 的专用硬件加速器),并可以运行在多个操作系统和设备上,如 Linux、Windows、macOS、Android 和 iOS。
- 优点
- 强大的功能:TensorFlow 提供了丰富的功能,支持从研究到生产的全流程。
- 支持多种平台:支持 CPU、GPU、TPU 的加速,并且支持不同平台(如移动端、嵌入式设备、Web 等)。
- 良好的社区支持:拥有一个活跃的开发者社区,丰富的文档和教程资源。
- 灵活性和可扩展性:适用于小规模的实验,也能支持大规模的分布式计算任务。
- 缺点
- 学习曲线较陡:TensorFlow 的学习曲线较陡,尤其是对初学者来说,理解计算图和低级 API 可能较为困难。
- 调试不方便:相比于 PyTorch 等框架,TensorFlow 的动态图调试相对较为复杂。
- 开发速度较慢:TensorFlow 2.0 虽然改进了易用性,但相比其他一些框架(如 PyTorch),开发速度可能略显缓慢。
二、PyTorch
1.原理
- PyTorch 是一个广泛使用的开源深度学习框架,由 Facebook 的人工智能研究实验室(FAIR)开发。它提供了灵活的接口来构建和训练深度学习模型,特别适用于神经网络和大规模数据处理任务。PyTorch 的设计原则强调易用性、动态计算图和强大的 GPU 支持。
2.优点
- 易于学习和使用:PyTorch 提供了非常直观和简洁的 API,适合初学者和研究人员。尤其对于 Python 程序员来说,PyTorch 是“更 Pythonic”的,语法和结构更符合 Python 编程习惯。
- 动态计算图:动态计算图的设计允许在运行时定义模型结构,这对复杂、动态变化的模型(如循环神经网络 RNN)尤其有用。在调试时,你可以像调试普通 Python 程序一样调试模型,灵活性极高。
- 强大的自动微分功能:PyTorch 的 autograd 使得反向传播计算变得非常简单,只需要在模型中定义 forward() 方法,自动微分将处理其他所有操作。
- 深度学习社区和生态系统:PyTorch 在学术界的应用广泛,许多前沿研究和论文都采用了 PyTorch。PyTorch 也有强大的生态系统,包括 torchvision、torchtext、torchaudio 等模块,可以快速构建计算机视觉、自然语言处理等任务的模型。
- 灵活性:由于其动态计算图和灵活的接口,PyTorch 能够更容易地处理那些需要动态计算图的任务(如变长序列处理、条件计算等)。
- 良好的 GPU 加速支持:PyTorch 可以轻松利用 GPU 进行加速计算,且支持多 GPU 训练(如通过 torch.nn.DataParallel 或 torch.nn.parallel.DistributedDataParallel)。
3.缺点
- 生产环境部署不如 TensorFlow:相比 TensorFlow,PyTorch 在生产环境中的部署和优化工具相对较弱。TensorFlow 提供了强大的生产部署工具,如 TensorFlow Serving、TensorFlow Lite 和 TensorFlow.js,而 PyTorch 在这方面的支持相对较少,尽管通过 TorchServe 和 ONNX,这一差距逐步在缩小。
- 不如 TensorFlow 对跨平台的支持全面:TensorFlow 提供了更多的跨平台支持,例如 TensorFlow.js(用于在浏览器中运行深度学习模型)、TensorFlow Lite(用于移动设备)等。而 PyTorch 在这一领域的工具相对较少。
- 学习曲线相对较高(在某些方面):尽管 PyTorch 在很多情况下很易于使用,但当你开始进行更复杂的分布式训练、大规模数据处理等操作时,可能会遇到一些挑战,尤其是涉及到多节点、多 GPU 等复杂配置时。
- 不如 TensorFlow 的文档和教程丰富:虽然 PyTorch 的文档相当好,但 TensorFlow 在社区支持、文档、教程等方面有更广泛的覆盖,特别是在企业和大规模生产系统中。
5. 梯度下降(如BGD、SGD、MBGD)
一、BGD
- 批量梯度下降(Batch Gradient Descent,简称BGD)是梯度下降算法的一种形式。在批量梯度下降中,整个训练数据集都会被用来计算损失函数的梯度,然后更新模型的参数。也就是说,BGD 在每次迭代时使用所有的训练数据来计算梯度,并根据该梯度更新参数。
二、SGD
- 随机梯度下降(Stochastic Gradient Descent,简称 SGD) 是梯度下降算法的一种变种。与批量梯度下降(BGD)不同,SGD 每次迭代只使用单个样本来计算梯度并更新参数。这个过程相比于批量梯度下降计算更高效,并且能够在更短的时间内开始优化,但也有一些波动。
三、MBGD
- MBGD(Mini-Batch Gradient Descent,迷你批量梯度下降)是梯度下降方法的一个变种。它结合了批量梯度下降(BGD)和随机梯度下降(SGD)的优点,常用于优化机器学习算法,尤其是在处理大量数据时。
6. 梯度消失、梯度爆炸(产生原因、缓解策略)
一、梯度消失
- 产生原因
- 梯度消失主要由不适合的激活函数、深度网络结构和不良的权重初始化引起。
- 缓解策略
- 为了解决这个问题,可以采用如ReLU激活函数、合适的权重初始化、批归一化、残差网络等多种策略。这些方法通过使梯度在深层网络中更稳定,从而确保网络能够有效地训练。
二、梯度爆炸
- 产生原因
- 梯度爆炸是深度学习训练中可能出现的一个问题,通常由不当的权重初始化、过大的学习率、深层网络架构等因素引起。
- 缓解策略
- 常用的缓解策略包括权重初始化方法的选择、梯度裁剪、学习率调整、优化算法选择、批归一化、网络结构优化和正则化等。这些策略可以有效地避免梯度爆炸,使得训练过程更加稳定,最终得到一个更为健壮的模型。
7. 优化器(如:梯度下降系列(批量梯度下降BGD、随机梯度下降SGD、小批量梯度下降MBGD)、动量法、NAG、Adagrad、RMSprop、Adam)
一、动量法
二、NAG
三、Adagrad
四、RMSprop
五、Adam
8. 超参数(概念、调优算法)
1.概念
2.调优算法
相关文章:

二、AI知识(神经网络)
二、AI知识(神经网络) 1.常用算法 FNN CNN RNN LSTM DNN GRU 2.深度学习中概念及算法 1. 感知机 感知机(Perceptron)是一种最早的人工神经网络模型之一,通常用来解决二分类问题。它由弗兰克罗森布拉特&#…...

node.js之---子线程(child_process)模块
为什么需要子线程(child_process)模块 Worker Threads 的基本概念 如何使用 Worker Threads Worker Threads 的性能 Worker 线程的优势和限制 进阶用法:共享内存 为什么需要子线程(child_process)模块 在 Node.js…...

Json字符串解析失败
通过第三方服务,拿到响应体的data对象(拿到的时候对象是有值的) 通过JSON.parseObject方法,拿到的对象,值为null 通过查看对应的json字符串,发现命名不一样... JSONField SeriealizedName注解是用来解析j…...

LeetCode算法题——螺旋矩阵ll
题目描述 给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix 。 示例 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]题解 思路: 将整个过程分解为逐圈填充的过程…...

【开源社区openEuler实践】hpcrunner
title: 探索 Hpcrunner:高性能计算的得力助手 date: ‘2024-12-31’ category: blog tags: Hpcrunner高性能计算任务调度资源优化 sig: HPC archives: ‘2024-12’ author:way_back summary: Hpcrunner 作为高性能计算领域的一款实用工具,专注于优化任务…...

linux下安装达梦数据库v8详解
目录 操作系统、数据库 1、下载达梦数据库 2、安装前准备 2.1、建立数据库用户和组 2.2、修改文件打开最大数 2.3、挂载镜像 2.4、新建安装目录 3、数据库安装 4、配置环境变量 5、初始化数据库实例 6、注册服务 7、使用数据库 8、卸载数据库 9、多实例管理 10、…...

Redis的常用命令
Redis中文字典网站 redis 命令手册https://redis.com.cn/commands.html Keys * 查看当前库所有的key exists ke 判断某个key是否存在 type key查看你的key是什么类型 Del key删除执行的key数据 unlink key非阻塞删除,仅仅将keys从keyspace元数据中删除…...

Docker入门常用命令总结
1.从远程仓库拉取一个纯净的镜像 docker pull docker .io/centos 2.创建并进入容器(左外右内) docker run --name xxx -dit 镜像id(镜像名称:Tag) /bin/bash 【参数必须放在镜像ID之前】 -i 让Docker分配一个伪终端,并…...

【Qt】容器控件、布局管理控件
目录 容器控件 QGroupBox QTabWidget 布局管理控件 QVBoxLayout 例子: QHBoxLayout 例子: QGridLayout 例子: 例子: QFormLayout 例子: QSpacerItem 例子: 容器控件 QGroupBox 表示一个带有…...

cesium小知识:常见的20多种property详解
要详细解释 Cesium 中所有的 Property 类,内容确实会非常丰富且详尽。 Property 基础 Property 是 Cesium 中用于表示随时间或条件变化的值的基础类。它允许你定义属性值如何根据时间、用户交互或其他逻辑动态改变。Property 的设计使得你可以创建复杂的动画和交互效果,而…...

图数据库 | 17、高可用分布式设计(上)
我们在前面的文章中,探索了多种可能的系统扩展方式,以及每种扩展方式的优劣。 本篇文章将通过具体的架构设计方案来对每一种方案的设计、投入产出比、各项指标与功能,以及孰优孰劣等进行评价。 在设计高性能、高可用图数据库的时候…...

1.运控概述
以下并不是我原创(包括图片),都是来源于网络收集。如CSDN博主,朝夕教育,AI等。 什么是运动控制 运控是指“控制移动”之意,可以利用各种电机进行位置控制等操作,让机器听懂你的指令。 什么是…...

DuckDB:密钥管理器及其应用
密钥管理器(Secrets Manager)为所有使用密钥的后端提供了统一的用户界面。密钥信息可以被限定范围,因此不同的存储前缀可以有不同的密钥信息,例如允许在单个查询中连接跨组织的数据。密钥也可以持久化,这样就不需要在每次启动DuckDB时都指定它…...

单元测试4.0+思路总结
Jmockit使用笔记_增加代码覆盖率_覆盖try catch_使用new MockUp私有方法-CSDN博客 一般使用new MockUp模拟被测试代码中的私有方法(常用) 使用new Expetations模拟被测试代码中的方法?...

epoll 水平ET跟边缘LT触发的区别是什么
epoll默认的是水平触发 意思就是当我们depoll默认的是水平触发 LT 模式(水平触发) 工作机制:在 LT 模式下,只要文件描述符(例如套接字)对应的 I/O 缓冲区中有数据可读或者可写空间(对于写操作…...

设计模式 创建型 单例模式(Singleton Pattern)与 常见技术框架应用 解析
单例模式(Singleton Pattern)是一种创建型设计模式,旨在确保某个类在应用程序的生命周期内只有一个实例,并提供一个全局访问点来获取该实例。这种设计模式在需要控制资源访问、避免频繁创建和销毁对象的场景中尤为有用。 一、核心…...

Java项目实战II基于微信小程序的家庭大厨(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在快节奏的生活中,家庭聚餐成为了连接亲情…...

【JVM】总结篇-字节码篇
字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box&…...

HTML——28.音频的引入
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>音频引入</title></head><body><!--audio:在网页中引入音频当属性名和属性值一样,可以只写属性名src属性:指定音频文件路径,必…...

Visual Point Cloud Forecasting enables Scalable Autonomous Driving——点云论文阅读(12)
此内容是论文总结,重点看思路!! 文章概述 这篇文章介绍了一个名为 ViDAR 的视觉点云预测框架,它通过预测历史视觉输入生成未来点云,作为自动驾驶的预训练任务。ViDAR 集成了语义、三维几何和时间动态信息,有效提升了感知、预测和规划等自动驾驶核心任务的性能。实验表明…...

《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开
《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开,本次讲座中来自Xsens的人形机器人与动捕技术专家Jeffrey Muller与Dennis Kloppenburg不仅将就Xsens动作捕捉系统与人形机器人行为训练中的实际应用进行详细讲解,同时还会对目前大家所关注…...

Mac 安装 Flutter 提示 A network error occurred while checking
错误信息 A network error occurred while checking "https://maven.google.com/": Operation timed out原因 在中国大陆(由于访问 Google 服务器的限制导致超时),无法连接到 https://maven.google.com/ 解决方案 需要使用镜像网站 #flutter 使用国内的镜像 export …...

形态学:图像处理中的强大工具
在图像处理中,形态学(Morphology) 是一类基于形状的操作,主要用于提取、分析和处理图像中的几何结构。尽管形态学操作最初是为二值图像设计的,但它也可以应用于灰度图像,帮助提取图像中的结构特征。形态学操…...

树莓派 Pico RP2040 教程点灯 双核编程案例
双核点亮不同的 LED 示例,引脚分别是GP0跟GP1。 #include "pico/stdlib.h" #include "pico/multicore.h"#define LED1 0 // 核心 0 控制的 LED 引脚 #define LED2 1 // 核心 1 控制的 LED 引脚// the setup function runs once when you press …...

2024年大型语言模型(LLMs)的发展回顾
2024年对大型语言模型(LLMs)来说是充满变革的一年。以下是对过去一年中LLMs领域的关键进展和主题的总结。 GPT-4的壁垒被打破 去年,我们还在讨论如何构建超越GPT-4的模型。如今,已有18个组织拥有在Chatbot Arena排行榜上超越原…...

实现单例模式的五种方式
如何实现一个单例 1、构造器需要私有化 2、提供一个私有的静态变量 3、暴露一个公共的获取单例对象的接口 需要考虑的两个问题 1、是否支持懒加载 2、是否线程安全 1、饿汉式 public class EagerSingleton {private static final EagerSingleton INSTANCE new EagerSi…...

pcl源码分析之计算凸包
文章目录 前言一、应用案例二、源码分析1.ConvexHull类2.reconstruct函数3.performReconstruction 函数4.calculateInputDimension 函数 总结 前言 本文分析一下pcl里凸包的源码。什么是凸包以及怎么求解,可以了解一下概念。 一、应用案例 #include <pcl/surfa…...

在K8S中,Pod请求另一个Pod偶尔出现超市或延迟,如何排查?
在Kubernetes中,当Pod请求另一个Pod时偶尔出现超时或延迟,可能是由于多种原因造成的。以下是一些建立的排查步骤: 1. 检查网络配置和插件: 确认你的kubernetes集群使用了合适的网络插件(如Calico、Flannel等…...

3blue1brow线代笔记
向量 物理:空间中的箭头,长度和方向决定一个向量。只要两者相同,可以任意移动保持不变 计算机:有序的数字列表 (数组) 数学:向量可以是任何东西,只要保证两个向量相加以及数字与向量…...

【前端系列】优化axios响应拦截器
文章目录 一、前言🚀🚀🚀二、axios响应拦截器:☀️☀️☀️2.1 为什么前端需要响应拦截器element ui的消息组件 一、前言🚀🚀🚀 ☀️ 回报不在行动之后,回报在行动之中。 这个系列可…...