013:深度学习之神经网络

news/2025/1/14 4:24:14/

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。

合集完整版请参考这里。

深度学习是机器学习中重要的一个学科分支,它的特点就在于需要构建多层且“深度”的神经网络。

人们在探索人工智能初期,就曾设想构建一个用数学方式来表达的模型,它可以模拟人的大脑。

大脑我们都知道,有很多神经元,每个神经元之间通过突触链接。
在这里插入图片描述

神经网络的设计就是模仿了这一结构。

只不过,在数学上,将每一个神经元换成了一个个的算法,比如卷积算法。突触对于神经元的激活则换成了激活函数,比如Relu激活函数。
在这里插入图片描述

上图是我用 Netron 打开的一个真实的自动驾驶领域用到的一个AI神经网络模型。可以看到该模型是由一层一层的算法(算子)堆积而成。该神经网络最终就可以完成一些图像的识别或者汽车周围环境的感知任务。

如果把上面的一部分放大,可以看到如下的样子:
在这里插入图片描述

这里面就有一些经典的算法,比如Conv(代表的是卷积运算)、Relu(代表的是激活运算)等。这些算法模拟了人类大脑中的神经元,组织在一起构成了一个非常庞大的神经网络。

本专栏在后面会一步步来搭建一个类似的神经网络。

需要说明的,完成不同任务的神经网络的结构是不同的,但都有一个特点:网络的深度很深。

你可能会有疑问,这样通过一层层算法搭建起来的神经网络真的有效吗?

答案是肯定的。

大量的实验已经验证了这种深度的神经网络是可以学习到很多图片或文本的重要特征,从而在神经网络输出结果时可以输出正确的结果。

比如,进行图像识别的神经网络可以正确的输出一个图像类别,图像检测的神经网络可以正确的输出物体在图像中的坐标和类别,如下:

在这里插入图片描述

而涉及语音和文本翻译的神经网络则可以正确的输出中文对应的英文翻译等。

至于为什么神经网络有效,也就衍生出一个新的研究领域:神经网络的可解释性。很多人试图通过研究探究神经网络中深层次的原理,进行解释,该领域目前仍然是一个比较前沿的研究方向。

人脑的原理人们研究了很多年,至今也无法真正说清其中的原理,神经网络的可解释性同样任重道远。

但不管怎样,如此深度的神经网络已经取得了举世瞩目的成就,基于yolo的目标检测已经大规模应用于工业检测中,基于transformer的大模型也几乎成为了目前提高生产力的工具。

神经网络的分类

神经网络的分类有很多种,下面介绍两种你可能会经常听到的。

CNN_52">卷积神经网络(Convolutional Neural Networks, CNN)

该神经网络指的是神经网络中以卷积为主,辅助的有一些激活或者池化,只要是符合这种特性的神经网络,都可以称之为卷积神经网络。上面展示的那个,也可以看作是一种卷积神经网络。

卷积神经网络一般用于计算机视觉领域,用于图像分类、检测、分割等,这是由于卷积的局部性特征所决定的。

循环神经网络

该神经网络指的是可以处理带时序数据的网络。什么是时序呢,就是数据中带有时间序列。

比如语音和文本,我说一句话“你欠我100万”,这句话就带有时序信息,神经网络处理这类数据,需要找到“你”、“我、“欠”这些词之间的先后关系,才能正确的理解这句话。

否则“你欠我100万”和“我欠你100万”是两种完全不一样的意思。

典型的循环网络有 RNN 以及在此基础之上发展出来的 lstm,甚至基于transformer的架构都可以处理这种时序信息。

至于其他分类,感兴趣的话可以去搜一搜看看。本专栏学习的内容主要集中在卷积神经网络,也就是适用于计算机视觉的一大类网络。


http://www.ppmy.cn/news/1562956.html

相关文章

对智能的一种新理解

在人类思想史中,“智能”的概念并非一成不变。随着科学、哲学以及社会实践的不断发展,我们对智能的认识也在不断拓展和更新。传统上,人们往往将“智能”与逻辑推理、学习记忆等认知能力紧密联系在一起,认为谁在数学考试或智力测试…

linux 内核OOM问题定位-SLAB_DEBUG

1,配置menuconfig Kernel hacking > Memory Debugging 配置 configy [*] SLUB debugging on by default [*] Enable SLUB performance statistics 配置之前 larkubuntu:~/Public/rk356x…

解决Oracle SQL语句性能问题——常用Hint及语法(查询转化相关Hint)

10.5.3. 常用Hint 10.5.3.5. 查询转化相关Hint 1)merge:显式的指示优化器合并SQL语句中的视图。该Hint具体语法如下所示。 SQL> select /*+ merge[(@qb)|([@qb] view)] */ ...; --注: 1)这里,参数(@qb|[@qb] view)为可选参数,指定查询语句块名和进行合并的视图。…

STM32: 输入捕获基本结构

输入捕获基本结构 1. GPIO GPIO: 通用输入输出引脚,用于接收外部信号。滤波器: 对GPIO接收到的信号进行滤波处理,以去除噪声干扰。 2. 边沿检测/极性选择 边沿检测: 检测GPIO信号的上升沿或下降沿。极性选择: 选择触发事件的边沿(上升沿、…

设计模式从入门到精通之(四)建造者模式

建造者模式:逐步构建复杂对象的艺术 在实际开发中,我们经常需要创建复杂对象,比如一份精美的菜单、一辆配置丰富的汽车,或者一套搭配完美的家居。而这些对象的构建往往需要分步骤进行,并且每一步都可能有不同的选择。 …

后端技术选型 sa-token校验学习 下 结合项目学习 后端鉴权

目录 后端注册拦截器 实现对 WebMvcConfigurer 接口的类实现 静态变量 方法重写 注册 Spring Framework拦截器 Sa-Token中SaServletFilter拦截器 思考 为什么使用两个拦截器 1. Spring Framework 拦截器 2. SaServletFilter 为什么要注册两个拦截器? 总结 …

Linux内核学习——数据结构

文章目录 链表双向链表哈希链表 红黑树无锁环形缓冲区映射参考 内核版本:linux-6.6.69 longterm 链表 双向链表 Linux内核实现了一套纯链表的封装,链表节点数据结构只有指针区而没有数据区,另外还封装了各种操作函数,如创建节点…

Linux一键安装Docker和Docker Compose

Centos docker安装脚本 #!/bin/bash# docker_manager.sh # 用于管理 Docker 和 Docker Compose 的交互脚本# # 配置变量 # # Docker 仓库地址 DOCKER_REPO"https://download.docker.com/linux/centos/docker-ce.repo"# # 函数定义 # # 安装 Docker 和 Docker Comp…