深度学习实践指南:打造强大AI应用的关键步骤和技巧

news2025/1/16 1:51:33

深度学习发展总图 

深度学习发展总图



深度学习(deep learning)发展史 - 知乎

不同的神经元模型 

麦卡洛克 - 皮茨神经元模型(McCulloch - Pitts Neuron Model)

 麦卡洛克 - 皮茨神经元模型McCulloch - Pitts Neuron Model)是模仿生物学神经元功能的简单线性模型,由心理学家 Warren McCulloch 和 数学家 Walter Pitts 在 1943 年提出。该模型针对输入的 x_{1}, x_{2}, x_{3}... x_{n},分别赋予不同的权重w_{1},w_{2},w_{3}...w_{n},形成  \oint (x,y)=\sum_{i=1}^{n} x_{i}w_{i}检验函数用以模仿生物神经元的膜电位,再通过 o_{j}(t+1)=f ((\sum_{i=1}^{n} x_{i}w_{ij}(t))-T_{j}) 模仿在每个 t 时刻神经元细胞的输出(信号空间的求和与神经元阀值 T_{j}差值的正负),完成分类。同时 MP 模型也存在不足之处,即权重需要人为给定,一旦权重分配不合理,将无法得出期望的分类结果

感知器(Perceptron)

 感知器Perceptron)是 Frank Rosenblatt 在 1957 年就职于 Cornell 航空实验室(Cornell Aeronautical Laboratory)时所发明的一种人工神经网络。它可以被视为一种最简单形式的前馈神经网络,是一种二元线性分类器。感知器,解决了 MP 模型的无法自主学习的问题,成为第一个能根据每个类别的输入样本来学习权重的模型。此外,Frank Rosenblatt 给出了相应的感知器学习算法,常用的有 感知器学习、最小二乘法和梯度下降法。譬如,感知器利用梯度下降法对损失函数进行极小化,求出可将训练数据进行线性划分的分离超平面,从而求得感知器模型。感知器也被称为 单层人工神经网络,以区别于较复杂的多层感知器(Multilayer Perceptron)。尽管结构简单,感知器却能学习并解决相当复杂的问题。不过,感知器存在本质上的缺陷,就是无法处理线性不可分问题

多层感知器(MLP, Multilayer Perceptron)

 多层感知器MLPMultilayer Perceptron)是一种前馈神经网络(Feedforward Neural Network),映射一组输入向量到一组输出向量。MLP 可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。另外,MLP 是(单层)感知器的推广,摆脱了早期离散传输函数的束缚,使用 激活函数(Sigmoid / Tanh / ReLU / …)模拟神经元对激励的响应,在训练算法上则使用反向传播算法,解决了感知器不能对线性不可分数据进行处理的问题

深度神经网络(DNN, Deep Neural Networks)

 深度神经网络DNNDeep Neural Networks)是一种判别模型,可以使用反向传播算法进行训练。DNN 通过 “预训练” 和 “ReLU、Maxout 等激活函数” 解决了 多层感知器 中的 “局部最优解” 和 “梯度衰减” 问题。不过,与其他神经网络模型类似,如果仅仅是简单地训练,深度神经网络可能会存在很多问题。常见的两类问题是过拟合(Overfiting)和过长的运算时间

 因为增加了隐藏层,会使得模型对训练数据中较为罕见的依赖关系进行建模,所以深度神经网络很容易出现过拟合现象。对此,可以利用 稀疏(�1 正则化)或者 权重递减(�2 正则化) 等方法在训练过程中减少过拟合现象。另外,还有一种叫做丢弃法(Dropout)的正则化方法,即在训练中随机丢弃一部分隐层单元,来避免对较为罕见的依赖进行建模

 反向传播算法梯度下降法由于其实现简单,并且相比其他方法,能够收敛到更好的局部最优值,因而成为神经网络训练的通行方法。但是,这些方法的计算代价很高,尤其是在训练 DNN 时,因为其规模(即层数和每层的节点数)、学习率、初始权重等众多参数都需要考虑。考虑到时间代价,想要扫描所有的参数是不可行的,因而考虑将多个训练样本组合进行 小批量训练(mini-batching),而非每次只使用一个样本进行训练,从而加速模型训练。而最显著地速度提升来自 GPU,因为矩阵和向量计算非常适合使用 GPU 实现。但使用大规模集群进行 DNN 训练仍然存在瓶颈,因而在并行化方面仍有很大的提升空间

卷积神经网络(CNN, Convolutional Neural Network)

 卷积神经网络CNNConvolutional Neural Network)是一种前馈神经网络,由哈弗医学院生理学家 Hubel 和 Wiesel 通过对猫视觉皮层细胞的研究,在 1962 年提出了感受野(Receptive Field)的概念,随后在 1984 年日本学者 Fukushima 基于 RF 的概念,设计出了神经感知机(Neocognitron)。其人工神经元可以响应一部分覆盖范围内的周围单元,对于图像处理和语音识别有着出色的表现

 卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(Pooling Layer)。这一结构使得 CNN 能够利用输入数据的二维结构,也可以使用反向传播算法进行训练。相比较其他的前馈神经网络,CNN 通过卷积核控制只在同一个核内的神经元进行全连接,使得需要估计的参数很少,从而在根本上解决了 DNN 的参数膨胀的问题。但是,CNN 仍然存在无法对时间序列进行建模的缺陷

递归神经网络(RNN, Recurrent Neural Networks)

 递归神经网络RNNRecurrent Neural Networks)是两种人工神经网络的总称。一种是时间递归神经网络(Recurrent Neural Network),另一种是结构递归神经网络(Recursive Neural Network)。前者的神经元间连接构成有向图,而后者利用相似的 神经网络结构 递归构造更为复杂的深度网络。RNN 一般指代 时间递归神经网络。单纯递归神经网络因为无法处理随着递归,权重指数级爆炸或消失的问题(Vanishing Gradient Problem),所以难以捕捉长期时间的关联;而结合不同变种的 LSTM 网络 可以很好解决这个问题

长短期记忆网络(LSTM, Long Short Term Memory Networks)

 长短期记忆LSTMLong Short Term Memory Networks)是 时间递归神经网络(RNN) 的一种,论文首次发表于 1997 年。由于巧妙的设计结构,LSTM 适合于处理和预测时间序列中间隔和延迟非常长的重要事件。因为 时间递归神经网络 和 前馈神经网络(Feedforward Neural Network)接受较特定结构的输入不同,RNN 将状态(Cell State) 在自身网络中循环传递,使得 LSTM 可以接受更广泛的时间序列结构的输入,进而更好地描述动态时间行为

 一般的,LSTM 的表现会比 时间递归神经网络(RNN)及隐马尔科夫模型(HMM)更好,比如用在不分段连续手写识别上。在 2009 年,用 LSTM 构建的人工神经网络模型就赢过了 ICDAR 手写识别比赛冠军。同时,LSTM 还普遍应用于自主语音识别,2013 年运用 TIMIT 自然演讲数据库达成 17.7% 错误率的纪录。而作为非线性模型,LSTM 又可当作复杂的非线性单元用于构造更庞大的深度神经网络

标题

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

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

相关文章

《深入解析windows操作系统》第1章读书笔记

1、服务:指操作系统中可以被调用的例程(即函数,等价于系统调用?)、设备驱动程序或者服务器进程。一些特定术语如下: 1)Windows API函数:指Windows API中已经被文档化、可被调用的子例…

基层设备人如何开展TPM:从理念到实践的深度心得

在制造业的基层工作中,设备维护与管理如同稳固的基石,为生产流程的顺畅运作提供了坚实的保障。TPM,这一全面生产维护的理念,已在众多企业中落地生根,成为提升设备效能和企业竞争力的有力工具。那么,作为基层…

学习操作系统路线

操作系统 简介 本课程为计算机专业学生量身定制,补足计算机操作系统相关知识,查漏补缺,也可用于考研复习。内容包括:操作统概述、进程管理、内存管理、文件管理、输入/输出管理等章节。内容力求精炼、重点突出、条理清晰、深入浅…

【ruoyi-vue】axios的封装理解和基本使用

axios的配置 ruoyi的前端对axios进行了封装,让我们发get请求或者是post请求更加方便了。 ruoyi对axios的封装在下面文件中:打开文件,可以看到它有三个显眼的方法,分别是request拦截器、response拦截器和通用下载方法。ruoYi接口地…

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对,我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示,第五行开始进行第一次…

Multitouch 1.27.28 免激活版 mac电脑多点触控手势增强工具

Multitouch 应用程序可让您将自定义操作绑定到特定的魔术触控板或鼠标手势。例如,三指单击可以执行粘贴。通过执行键盘快捷键、控制浏览器的选项卡、单击鼠标中键等来改进您的工作流程。 Multitouch 1.27.28 免激活版下载 强大的手势引擎 精心打造的触控板和 Magic …

js 模拟鼠标移动事件,并监听鼠标移动

代码实现 function simulateClick( x, y) {// 获取目标元素 const element document.querySelector("xxxxx"); // 创建一个鼠标移动事件 var mouseMoveEvent new MouseEvent(mousemove, {screenX: x window.screenX, screenY: y window.screenY, clientX: x,…

使用gdb调试遇到No symbol table is loaded. Use the “file“ command.怎么办?

问题排查 出现下面问题,通常是没有处于调式模式环境下,所以我们需要在gcc指令后加 【-g】。 因为,我么的gcc编辑器默认是动态链接,而且是realese发布版本。 想要解决也很简单 主要思路就是在gcc -g。 在makefile文件如下进行修改即…

cpp-tbox 之 RPC 通信服务

jsonrpc 序列化与反序列化基于的是json Proto 该类设计用于处理网络或传输层数据接收和发送,同时提供一些回调函数接口来定义如何处理接收到的数据和发送数据,也就是整个RPC的框架类 对于接收请求的回调函数,参数是请求id,方法…

科技云报道:AIGC掀算力需求革命,边缘计算将不再“边缘”

科技云报道原创。 随着以大模型为代表的AIGC时代拉开序幕,算力需求持续爆发,AI与边缘深度融合已是大势所趋,越来越多的企业开始积极布局GenAI。 GenAI技术的商用化部署和应用成为企业竞逐的新阵地,勾勒出大模型从“技术力”转向…

测试开发高频面试题(持续更新)

什么是测试开发以及其在软件开发流程中的作用。在过去项目中的测试策略和方法。是如何确保测试的全面性和质量的?讲解一下测试金字塔(Test Pyramid)模型,并解释各个层级的测试类型和其重要性。描述一下持续集成(CI&…

AI:165-Coze自定义赛博风格Bot-图片生成操作指南

Coze是由字节跳动推出的一个AI聊天机器人和应用程序编辑开发平台,旨在帮助用户快速创建各种类型的聊天机器人、智能体、AI应用和插件,并将其部署在社交平台和即时聊天应用程序中,如Discord、WhatsApp、Twitter、飞书、微信公众号等。 这个平…

02、java语言为什么要配置环境变量?配置环境变量的两种方案?遇到问题的几种解决办法

探讨笔记 1、java 语言为什么要配置环境变量?其一、未配置环境变量之前,能否执行 java、javac 的命令?其二、未配置环境变量之前,在 Windows 命令行窗口,如何执行相关命令?其三、未配置环境变量之前&#x…

1小时学会SpringBoot3+Vue3前后端分离开发

首发于Enaium的个人博客 引言 大家可能刚学会Java和Vue之后都会想下一步是什么?那么就先把SpringBoot和Vue结合起来,做一个前后端分离的项目吧。 准备工作 首先你需要懂得Java和Vue的基础知识,环境这里就不多说了,直接开始。 …

Spring Boot-基础操作,常用工具,配置文件

lombok工具 首先将lombok的依赖引入 Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。 日志操作 自定义日志打印 有以下两步: 在一个类中先获…

Vue3 实现 Three.js粒子特效

效果 <template><div id"waves" /> </template><script setup> import { ref, onMounted, onUnmounted } from "vue"; import * as THREE from "three";const amountX ref(50); const amountY ref(50); const color …

MySQL统计一个表的行数,使用count(1), count(字段), 还是count(*)?

为什么要使用count函数&#xff1f; 在开发系统的时候&#xff0c;我们经常要计算一个表的行数。比如我最近开发的牛客社区系统&#xff0c;有一个帖子表&#xff0c;其中一个功能就是要统计帖子的数量&#xff0c;便于分页显示计算总页数。 CREATE TABLE discuss_post (id i…

线性模型算法-完结总结篇

简介 该篇文章就是在CSDN上更新的最终版本。 本文章将介绍&#xff1a;机器学习中的线性模型有关内容&#xff0c;我将尽可能做到 详细地介绍线性模型的所有相关内容,模块如下&#xff0c;希望这些将有助于读者了解这种最初步但却强大的算法&#xff1a; 线性回归逻辑回归 S…

【ENSP】VRRP配置方法

VRRP配置步骤 1.配置虚拟ip地址作为网关&#xff0c;进行切换路由器 2.配置vrrp优先级&#xff0c;越大越优先 3.配置延迟抢占时间 4.配置备份组监视接口 AR1路由器配置 u t m #关闭提示 sys …

Zilliz Cloud 助力 AI 在线教育:智慧树的创新之路

在信息技术飞速发展的今天&#xff0c;教育行业正经历着一场深刻的变革。智慧树&#xff0c;作为全球领先的学分课程运营服务平台&#xff0c;始终站在教育创新的前沿。 为了进一步提升教育质量和效率&#xff0c;智慧树携手 Zilliz Cloud&#xff0c;共同开启了一场教育与技术…