二、AI知识(神经网络)

二、AI知识(神经网络)

1.常用算法

  1. FNN

  2. CNN

  3. RNN

  4. LSTM

  5. DNN

  6. 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
  1. 原理
  • TensorFlow 是一个开源的机器学习框架,最初由 Google Brain 团队开发,并于2015年发布。它广泛用于深度学习模型的构建、训练和部署,支持从小型实验到大规模生产环境的各类机器学习任务。TensorFlow 提供了丰富的 API,支持各种机器学习任务,尤其在深度学习、神经网络和深度强化学习方面表现突出。它支持多种计算平台,包括 CPU、GPU 和 TPU(Google 的专用硬件加速器),并可以运行在多个操作系统和设备上,如 Linux、Windows、macOS、Android 和 iOS。
  1. 优点
  • 强大的功能:TensorFlow 提供了丰富的功能,支持从研究到生产的全流程。
  • 支持多种平台:支持 CPU、GPU、TPU 的加速,并且支持不同平台(如移动端、嵌入式设备、Web 等)。
  • 良好的社区支持:拥有一个活跃的开发者社区,丰富的文档和教程资源。
  • 灵活性和可扩展性:适用于小规模的实验,也能支持大规模的分布式计算任务。
  1. 缺点
  • 学习曲线较陡: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. 梯度消失、梯度爆炸(产生原因、缓解策略)

一、梯度消失
  1. 产生原因
  • 梯度消失主要由不适合的激活函数、深度网络结构和不良的权重初始化引起。
  1. 缓解策略
  • 为了解决这个问题,可以采用如ReLU激活函数、合适的权重初始化、批归一化、残差网络等多种策略。这些方法通过使梯度在深层网络中更稳定,从而确保网络能够有效地训练。
二、梯度爆炸
  1. 产生原因
  • 梯度爆炸是深度学习训练中可能出现的一个问题,通常由不当的权重初始化、过大的学习率、深层网络架构等因素引起。
  1. 缓解策略
  • 常用的缓解策略包括权重初始化方法的选择、梯度裁剪、学习率调整、优化算法选择、批归一化、网络结构优化和正则化等。这些策略可以有效地避免梯度爆炸,使得训练过程更加稳定,最终得到一个更为健壮的模型。

7. 优化器(如:梯度下降系列(批量梯度下降BGD、随机梯度下降SGD、小批量梯度下降MBGD)、动量法、NAG、Adagrad、RMSprop、Adam)

一、动量法
二、NAG
三、Adagrad
四、RMSprop
五、Adam

8. 超参数(概念、调优算法)

1.概念

2.调优算法

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

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

相关文章

Unity-Mirror网络框架-从入门到精通之Basic示例

文章目录 前言Basic示例场景元素预制体元素代码逻辑BasicNetManagerPlayer逻辑SyncVars属性Server逻辑Client逻辑 PlayerUI逻辑 最后 前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人…

wx015基于springboot+vue+uniapp的经济新闻资讯的设计与实现

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

CSS 中 content换行符实现打点 loading 正在加载中的效果

我们动态加载页面内容的时候,经常会使用“正在加载中…”这几个字,基本上,后面的 3 个点都是静态的。静态的问题在于,如果网络不流畅,加载时间比较长,就会给人有假死的 感觉,但是,如…

ESLint+Prettier的配置

ESLintPrettier的配置 安装插件 ​​​​​​ 在settings.json中写下配置 {// tab自动转换标签"emmet.triggerExpansionOnTab": true,"workbench.colorTheme": "Default Dark","editor.tabSize": 2,"editor.fontSize": …

Windows系统下载、部署Node.js与npm环境的方法

本文介绍在Windows电脑中,下载、安装并配置Node.js环境与npm包管理工具的方法。 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,其允许开发者使用JavaScript编写命令行工具和服务器端脚本。而npm(Node Package Manager)则…

Ubuntu 24.04 LTS 解决网络连接问题

1. 问题描述 现象:ens33 网络接口无法获取 IPv4 地址,导致网络不可用。初步排查: 运行 ip a,发现 ens33 接口没有分配 IPv4 地址。运行 ping www.baidu.com,提示“网络不可达”。查看 NetworkManager 日志&#xff0c…

Tauri2+Leptos开发桌面应用--Sqlite数据库操作

在之前工作(使用Tauri Leptos开发带系统托盘桌面应用-CSDN博客)的基础上,继续尝试对本地Sqlite数据库进行读、写、删除操作,开发环境还是VS CodeRust-analyzer。 最终程序界面如下: 主要参考文章:Building…

每日一些题

题解开始之前,给大家安利一个上班偷偷学习的好搭档,idea中的插件有一个叫 LeetCode with labuladong,可以在idea中直接刷力扣的题目。 朋友们上班没事的时候,可以偷偷摸几题。看八股的话,可以用面试鸭,也是…

Docker--Docker Container(容器) 之 操作实例

容器的基本操作 容器的操作步骤其实很简单,根据拉取的镜像,进行启动,后可以查看容器,不用时停止容器,删除容器。 下面简单演示操作步骤 1.创建并运行容器 例如,创建一个名为"my-nginx"的交互…

高频 SQL 50 题(基础版)_1068. 产品销售分析 I

销售表 Sales: (sale_id, year) 是销售表 Sales 的主键(具有唯一值的列的组合)。 product_id 是关联到产品表 Product 的外键(reference 列)。 该表的每一行显示 product_id 在某一年的销售情况。 注意: price 表示每…

linux进阶

目录 变量 shell变量 环境变量 预定义变量 位置变量 其他 管道与重定向 管道 重定向 shell脚本 分支结构 循环结构 数组 脚本实例 变量 shell变量 shell变量:shell程序在内存中存储数据的容器 shell变量的设置:colorred 将命令的结果赋值…

“TypeScript版:数据结构与算法-初识算法“

引言 在算法与编程的广阔世界里,总有一些作品以其独特的魅力和卓越的设计脱颖而出,成为我们学习和研究的典范。今天,我非常荣幸地向大家分享一个令人印象深刻的算法——Hello算法。 Hello算法不仅展现了作者深厚的编程功底,更以…

【复盘】2024年终总结

工作 重构风控系统 今年上半年其实就是整体重构系统,经历了多次加班的,其中的辛酸苦辣只有自己知道,现在来看的话,其实对自己还有一定的成长,从这件事情上也明白 绩效能不能拿到A,在分配的任务的时候就决…

RedisDesktopManager新版本不再支持SSH连接远程redis后

背景 RedisDesktopManager(又名RDM)是一个用于Windows、Linux和MacOS的快速开源Redis数据库管理应用程序。这几天从新下载RedisDesktopManager最新版本,结果发现新版本开始不支持SSH连接远程redis了。 解决方案 第一种 根据网上有效的信息,可以回退版…

[卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析

目录 [卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析 1. 卫星目标跟踪的核心挑战 1.1 目标的高速与不确定性 1.2 卫星传感器的局限性 1.3 数据处理与融合问题 1.4 大尺度与实时性要求 2. 当前卫星目标跟踪的主流技术 2.1 卡尔曼滤波(Kalman …

OpenCV-Python实战(9)——滤波降噪

一、均值滤波器 cv2.blur() img cv2.blur(src*,ksize*,anchor*,borderType*)img:目标图像。 src:原始图像。 ksize:滤波核大小,(width,height)。 anchor:滤波核锚点&#xff0c…

【查询函数】.NET开源ORM框架 SqlSugar 系列

目录 一、基本用法 💎 二、C#函数 🔎 三、逻辑函数 🎡 3.1 case when 3.2 IsNulll 四、时间函数 🕰️ 4.1 是否是同一天 4.2 是否是同一月 4.3 是否是同一年 4.4 是否是同一时间 4.5 在当前时间加一定时间 4.6 在当前…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview(概览)1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories(仓库)1 libusb_stm322 savedata3 Fi…

Elasticsearch VS Easysearch 性能测试

压测环境 虚拟机配置 使用阿里云上规格:ecs.u1-c1m4.4xlarge,PL2: 单盘 IOPS 性能上限 10 万 (适用的云盘容量范围:461GiB - 64TiB) vCPU内存 (GiB)磁盘(GB)带宽(Gbit/s)数量1664500500024 Easysearch 配置 7 节点…

Echarts+vue电商平台数据可视化——webSocket改造项目

websocket的基本使用,用于测试前端能否正常获取到后台数据 后台代码编写: const path require("path"); const fileUtils require("../utils/file_utils"); const WebSocket require("ws"); // 创建WebSocket服务端的…