机器学习、深度学习和神经网络
机器学习、深度学习和神经网络
术语及相关概念
在深入了解人工智能(AI)的工作原理以及它的各种应用之前,让我们先区分一下与AI密切相关的一些术语和概念:人工智能、机器学习、深度学习和神经网络。这些术语有时会被交替使用,但它们并不指代同样的东西:
- 人工智能是计算机科学的一个分支,处理智能行为的模拟。AI系统通常会展示与人类智能相关的行为,如规划、学习、推理、问题解决、知识表示、感知、运动和操控,较少涉及社会智能和创造力。
- 机器学习是AI的一个子集,它使用计算机算法分析数据,并根据所学做出智能决策,而无需明确编程。机器学习算法通过大量数据进行训练,并从示例中学习。它们不遵循基于规则的算法。机器学习使机器能够自己解决问题,并使用提供的数据做出准确的预测。
- 深度学习是机器学习的一个专门子集,它利用分层的神经网络模拟人类决策。深度学习算法能够标记和分类信息,识别模式。这使得AI系统能够在工作中不断学习,并通过判断决策是否正确,改进结果的质量和准确性。
- 人工神经网络,通常简称神经网络,受生物神经网络的启发,尽管它们的工作原理有所不同。AI中的神经网络是由小型计算单元(称为神经元)组成,它们接受输入数据并随着时间的推移学习做出决策。神经网络通常有多层,它们是深度学习算法在数据集增加时变得更加高效的原因,而与其他机器学习算法不同,后者可能会在数据增加时出现平台效应。
现在,你已经对一些关键AI概念的区别有了广泛的理解,接下来还有一个重要的区分,即人工智能与数据科学的区别:
- 数据科学是从大量不同的数据中提取知识和洞察的过程和方法。它是一个跨学科的领域,涉及数学、统计分析、数据可视化、机器学习等。它使我们能够从大量数据中获取信息、看到模式、找出意义,并用它来做出推动业务决策的判断。
- 数据科学可以使用许多AI技术来从数据中提取洞察。例如,它可以使用机器学习算法甚至深度学习模型来提取意义并做出推论。AI和数据科学之间有一些交集,但它们并不是彼此的子集。相反,数据科学是一个涵盖整个数据处理方法论的广泛术语,而AI包括所有允许计算机学习如何解决问题并做出智能决策的技术。
- AI和数据科学都可以涉及使用大数据,也就是极为庞大的数据量。后面我们将更详细地讨论机器学习、深度学习和神经网络的相关术语。
机器学习
机器学习是人工智能的一个子集,它使用计算机算法分析数据,并根据所学做出智能决策。与基于规则的算法不同,机器学习通过构建模型来对数据进行分类和预测:
- 让我们通过一个问题来理解机器学习的应用:如果我们想判断一个人的心脏是否会衰竭,机器学习能否解决这个问题?答案是肯定的。
- 假设我们有一些数据,比如每分钟心跳数、身体质量指数(BMI)、年龄、性别以及结果(心脏是否衰竭)。通过机器学习,给定这些数据集,我们能够学习并创建一个模型,基于输入预测结果。
- 那么,这与使用统计分析创建算法有什么区别呢?算法是一种数学技术。传统编程中,我们会拿到数据和规则,并使用它们来开发一个算法,给出答案。在前面的例子中,如果使用传统算法,我们会利用如心跳数和BMI等数据,创建一个算法来判断心脏是否会衰竭。这本质上是一个if-then-else语句。当我们提交输入时,基于我们确定的算法得到结果,而这个算法不会改变。
- 而机器学习则不同,它接受数据和答案,并创建算法。机器学习不直接给我们最终答案,而是给我们一组规则,确定模型会是什么样的。模型确定规则,当它收到输入时,会通过这些规则来做出判断。与传统算法不同,机器学习模型可以不断训练,并将来用于预测结果。
机器学习依赖于通过检查和比较大量数据集来定义行为规则,找到共同模式。例如,我们可以向机器学习程序提供大量鸟类的图片,并训练模型在看到鸟类图片时标记为“鸟”。同样,我们也可以为“猫”创建标签,并提供猫的图片进行训练。当机器模型看到猫或鸟的图片时,它会根据一定的置信度标记图片:
- 这种机器学习类型被称为监督学习,即通过人工标注的数据训练算法。你提供更多的样本,监督学习算法会变得更加精确地对新数据进行分类。
- 另一种机器学习类型是无监督学习,它依赖于提供未标注的数据,并让算法自己发现数据中的模式。你提供输入数据,但不提供标签,让机器自行推断数据的特征。这种学习方式对于聚类数据很有用,即根据数据与邻近数据的相似性,将数据分组。在数据聚类之后,可以使用不同技术来探索数据,寻找模式。例如,你可以提供一个持续的网络流量数据流,机器学习算法会自主学习网络的正常活动以及异常行为和可能的恶意行为。
- 第三种机器学习算法是强化学习,它依赖于给机器学习算法提供一组规则和约束条件,并让它学会如何实现目标。你定义状态、目标、允许的行动和约束条件。算法通过尝试不同的组合来实现目标,并根据决策的好坏给予奖励或惩罚。算法会尽力在给定的约束下最大化奖励。例如,你可以使用强化学习来教机器玩棋类游戏或通过障碍物。机器学习模型是一种用于在数据中发现模式的算法,而不需要程序员显式编程这些模式。
机器学习技术与训练
机器学习是一个广泛的领域,我们可以将其分为三种不同的类别:监督学习、无监督学习和强化学习。通过这些方法,我们可以解决许多不同的任务:
- 监督学习是指当我们在数据集中有类别标签时,使用这些标签来构建分类模型。也就是说,当我们接收到数据时,它已经有标签,告诉我们数据代表的是什么。例如,在之前的例子中,我们有一个包含年龄、性别等标签的表格。
- 无监督学习则不同,我们没有类别标签,必须从无结构的数据中发现类别标签。这通常涉及深度学习等技术,例如通过观察图片来训练模型,通常采用聚类的方式进行。
- 强化学习是另一种子集,它使用奖励函数来惩罚不好的行为或奖励好的行为。
监督学习的细分
监督学习可以进一步细分为回归(Regression)、分类(Classification)和神经网络(Neural Networks)三类。
- 回归模型通过观察特征x与结果y之间的关系来构建,其中y是一个连续变量。本质上,回归用于估算连续值。
- 神经网络指的是模仿人类大脑结构的结构。
- 分类则侧重于识别离散值。我们可以根据许多输入特征x为输出y分配离散的类别标签。例如,在之前的例子中,给定一组特征x(如每分钟心跳、身体质量指数、年龄和性别),算法将输出y分类为两个类别:True或False,预测心脏是否会衰竭。
在其他分类模型中,我们可以将结果分类为多个类别。例如,预测一个菜谱是印度菜、中国菜、日本菜还是泰国菜。一些分类方法包括决策树、支持向量机、逻辑回归和随机森林。
通过分类,我们可以从数据中提取特征。在这个例子中,特征可能是每分钟心跳或年龄。特征是输入模式的独特属性,帮助确定输出类别或类标签。每一列是一个特征,每一行是一个数据点。分类是预测给定数据点所属类别的过程。我们的分类器使用一些训练数据来理解输入变量与类别之间的关系。
训练模型
那么,训练到底意味着什么呢?训练是指使用学习算法来确定和开发模型的参数。虽然有许多算法可以做到这一点,用通俗的话来说,如果你正在训练一个预测心脏是否衰竭的模型(True或False的值),你会向算法展示一些标记为True的实际数据,然后再次向算法展示一些标记为False的数据,你会不断重复这个过程,直到算法学会从标记为True的心脏衰竭数据中识别出来,标记为False的数据则相反。
数据集划分
在机器学习中,我们通常将数据集分为三部分:训练集、验证集和测试集。
- 训练集是用于训练算法的数据。
- 验证集用于验证结果并微调算法的参数。
- 测试集是模型从未见过的数据,用于评估模型的效果。
通过这些评估方法,我们可以使用如准确率、精确度和召回率等指标来表示模型的好坏。
深度学习
机器学习是人工智能(AI)的一个子集,深度学习则是机器学习的一个专门子集。深度学习通过分层算法创建神经网络,这是一种人工复制大脑结构和功能的方式,使得AI系统能够在工作中持续学习,并提高结果的质量和准确性。这就是为什么深度学习可以让系统从非结构化数据中学习,例如照片、视频和音频文件。例如,深度学习使得AI系统具备自然语言理解的能力,能够理解传达的信息的上下文和意图。
- 深度学习算法并不直接将输入映射到输出。相反,它们依赖于多个处理层。每一层将其输出传递给下一层,下一层再处理这些输出并传递给下一层。由于有很多层,因此称之为深度学习。
- 在创建深度学习算法时,开发人员和工程师配置层数和连接每一层输出与下一层输入的函数类型。然后,他们通过提供大量带注释的示例来训练模型。例如,你可以给深度学习算法提供成千上万张图片和与每张图片内容对应的标签。算法会通过其分层的神经网络运行这些示例,并调整每一层神经网络中变量的权重,从而能够检测出定义相似标签的图片的共同模式。
深度学习解决了旧版本学习算法中的一个主要问题。尽管机器学习算法的效率和性能在数据集增长时会达到瓶颈,深度学习算法在数据不断增加时仍然能持续改进。深度学习在多个任务中已经证明了其高效性,包括图像字幕生成、语音识别与转录、人脸识别、医学影像和语言翻译等。深度学习也是自动驾驶汽车的主要组成部分之一。
神经网络

人工神经网络
人工神经网络是由一组较小的单元称为神经元组成的计算单元,这些神经元模拟了人类大脑处理信息的方式。人工神经网络借鉴了生物神经网络的一些思想,目的是近似其处理结果。这些单元或神经元像生物神经网络一样,接受输入数据,并随着时间的推移学习做出决策。
- 神经网络通过反向传播(Backpropagation)进行学习。反向传播使用一组训练数据,将已知的输入与期望的输出匹配。首先,输入数据被传入网络并产生输出。然后,误差函数会计算给定输出与期望输出之间的差距。最后,网络会进行调整,以减少误差。
- 神经网络中的一组神经元被称为层,每一层接受输入并提供输出。每个神经网络至少有一个输入层和一个输出层,它还可能包含一个或多个隐藏层,这些隐藏层模拟了人脑中的活动。隐藏层接受一组加权输入,并通过激活函数产生输出。如果一个神经网络有多个隐藏层,它就被称为深度神经网络(Deep Neural Network)。

- 感知机(Perceptrons)是最简单且最早的神经网络类型,它是单层神经网络,由输入节点直接连接到输出节点。输入层将输入值通过乘以权重并求和的方式传递给下一层。隐藏层接收来自其他节点的输入,并将其输出传递给其他节点。隐藏层和输出层的节点具有一种叫做偏置(Bias)的属性,它是应用在节点上的一种特殊类型的权重,用来在考虑其他输入后进行调整。

- 最后,激活函数决定了节点如何响应其输入。激活函数会根据输入值的总和和偏置进行计算,结果将作为输出传递。激活函数有不同的形式,选择合适的激活函数是神经网络成功的关键。
卷积神经网络CNNs

卷积神经网络(Convolutional Neural Networks,CNNs)是多层神经网络,它们受到动物视觉皮层的启发。CNNs在图像处理、视频识别和自然语言处理等应用中非常有用。卷积(Convolution)是一种数学运算,将一个函数应用于另一个函数,结果是两个函数的混合。卷积非常擅长检测图像中的简单结构,并将这些简单特征结合起来构建更复杂的特征。
在卷积神经网络中,这一过程通过一系列层进行,每一层对前一层的输出进行卷积。CNNs擅长从较简单的特征中构建复杂的特征。
递归神经网络RNNs

递归神经网络(Recurrent Neural Networks,RNNs)之所以叫做“递归”神经网络,是因为它们对每个序列元素执行相同的任务,且前一步的输出会作为后续阶段的输入。在一般的神经网络中,输入通过多层处理后产生输出,假设两个连续的输入是相互独立的,但在某些情况下,这种假设并不成立。例如,当我们需要考虑一个单词的上下文时,必须考虑前一步的观察结果才能产生正确的输出。
RNNs可以利用长序列中的信息,每一层网络代表某一时刻的观察值。
总结
- 机器学习是人工智能的一个子集,它使用计算机算法来分析数据,并根据所学内容做出智能决策。机器学习算法的三个主要类别包括监督学习、无监督学习和强化学习。
-
- 监督学习是指我们在数据集中有类别标签,并使用这些标签来构建分类模型。
- 监督学习分为三个类别——回归、分类和神经网络。
- 机器学习算法通过使用分为训练数据、验证数据和测试数据的数据集进行训练。
- 深度学习是机器学习的一个专门子集,它通过分层算法创建神经网络,使人工智能系统能够从非结构化数据中学习,并在工作中持续学习。
- 神经网络,一种模仿生物神经元的计算单元集合,随着时间的推移学习对数据进行决策。不同的神经网络类型包括感知器、卷积神经网络或 CNN 以及循环神经网络或 RNN。
- 进阶学习(可选但是推荐)
-
- 机器学习模型Models for Machine Learning
- 神经网络深度探索A Neural Networks deep dive
相关文章:
机器学习、深度学习和神经网络
机器学习、深度学习和神经网络 术语及相关概念 在深入了解人工智能(AI)的工作原理以及它的各种应用之前,让我们先区分一下与AI密切相关的一些术语和概念:人工智能、机器学习、深度学习和神经网络。这些术语有时会被交替使用&#…...
数字孪生在智慧城市中的前端呈现与 UI 设计思路
一、数字孪生技术在智慧城市中的应用与前端呈现 数字孪生技术通过创建城市的虚拟副本,实现了对城市运行状态的实时监控、分析与预测。在智慧城市中,数字孪生技术的应用包括交通流量监测、环境质量分析、基础设施管理等。其前端呈现主要依赖于Web3D技术、…...
黑莓手机有望回归:搭载 Android 15、支持 AI
据 3 月 31 日快科技消息,有博主称一家英国的初创公司正悄悄努力复活 BlackBerry Classic 及 OnwardMobility 未完成的产品。 从爆料的信息看,黑莓新手机将具备 5G、AMOLED 显示屏、12GB RAM 和 256GB 或 512GB 存储空间等高端配置,同时运行 …...
Android OpenGLES 360全景图片渲染(球体内部)
概述 360度全景图是一种虚拟现实技术,它通过对现实场景进行多角度拍摄后,利用计算机软件将这些照片拼接成一个完整的全景图像。这种技术能够让观看者在虚拟环境中以交互的方式查看整个周围环境,就好像他们真的站在那个位置一样。在Android设备…...
LETTERS(DFS)
【题目描述】 给出一个rowcolrowcol的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。 【输入】 第一行,输入字母矩阵行数RR和列数SS,1≤R,S≤…...
嵌入式海思Hi3861连接华为物联网平台操作方法
1.1 实验目的 快速演示 1、认识轻量级HarmonyOS——LiteOS-M 2、初步掌握华为云物联网平台的使用 3、快速驱动海思Hi3861 WIFI芯片,连接互联网并登录物联网平台...
CMDB平台(进阶篇):3D机房大屏全景解析
在数字化转型的浪潮中,数据中心作为企业信息架构的核心,其高效、智能的管理成为企业竞争力的关键因素之一,其运维管理方式也正经历着革命性的变革。传统基于二维平面图表的机房监控方式已难以满足现代企业对运维可视化、智能化的需求。乐维CM…...
NVM 多版本Node.js 管理全指南(Windows系统)
🧑 博主简介:CSDN博客专家、全栈领域优质创作者、高级开发工程师、高级信息系统项目管理师、系统架构师,数学与应用数学专业,10年以上多种混合语言开发经验,从事DICOM医学影像开发领域多年,熟悉DICOM协议及…...
C,C++语言缓冲区溢出的产生和预防
缓冲区溢出的定义 缓冲区是内存中用于存储数据的一块连续区域,在 C 和 C 里,常使用数组、指针等方式来操作缓冲区。而缓冲区溢出指的是当程序向缓冲区写入的数据量超出了该缓冲区本身能够容纳的最大数据量时,额外的数据就会覆盖相邻的内存区…...
《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 2】【vscode搭建调试内核环境】
1. 如何调试我们的内核 1. GDB调试 安装gdb sudo apt-get install gdb-multiarchgdb-multiarch是多架构版本,可以通过set architecture aarch64指定架构 QEMU参数修改添加-s -S #!/usr/bin/shqemu-7.2.0-rc1/build/aarch64-softmmu/qemu-system-aarch64 \-nogr…...
Flutter项目之登录注册功能实现
目录: 1、页面效果2、登录两种状态界面3、中间按钮部分4、广告区域5、最新资讯6、登录注册页联调6.1、网络请求工具类6.2、注册页联调6.3、登录问题分析6.4、本地缓存6.5、共享token6.6、登录页联调6.7、退出登录 1、页面效果 import package:flutter/material.dart…...
mybatis 自带的几个插入接口的区别
研究这个的原由是应为需求对一张表新增了一个有默认值的字段,然后调用插入接口的时候发现这个字段没有传默认值但是还是以null值入库了,数据库中设置的默认值没有生效。 通过排查之后发现是使用了insertUseGeneratedKeys 方法进行插入,此方法…...
ctfshow VIP题目限免 源码泄露
根据题目提示是源代码泄露,右键查看页面源代码发现了 flag...
移动神器RAX3000M路由器变身家庭云之七:增加打印服务,电脑手机无线打印
系列文章目录: 移动神器RAX3000M路由器变身家庭云之一:开通SSH,安装新软件包 移动神器RAX3000M路由器变身家庭云之二:安装vsftpd 移动神器RAX3000M路由器变身家庭云之三:外网访问家庭云 移动神器RAX3000M路由器不刷固…...
《函数基础与内存机制深度剖析:从 return 语句到各类经典编程题详解》
一、问答题 (1)使用函数的好处是什么? 1.提升代码的复用性 2.提升代码的可维护性 3.增强代码的可读性 4.提高代码的灵活性 5.方便进行单元测试 (2)如何定义一个函数?如何调用一个函数? 在Pytho…...
Python | 使用Matplotlib绘制Swarm Plot(蜂群图)
Swarm Plot(蜂群图)是一种数据可视化图表,它用于展示分类数据的分布情况。这种图表通过将数据点沿着一个或多个分类变量轻微地分散,以避免它们之间的重叠,从而更好地显示数据的分布密度和分布趋势。Swarm Plot特别适用…...
风云可测:华为AI天气大模型将暴雨预测误差缩至3公里内
华为云正式发布全球首个气象专用人工智能大模型"盘古气象",实现台风路径24小时预测误差<30公里、暴雨落区72小时精度91%,较传统数值预报效率提升10000倍。本文基于对西北太平洋10个台风回溯测试、全国2360个气象站验证数据,解析…...
JavaScript基础-window.sessionStorage
在Web开发中,数据存储是一个非常重要的环节。它不仅关系到用户体验的提升,还影响着应用的状态管理与性能优化。window.sessionStorage 是一种轻量级的数据存储机制,允许网页在同一会话期间内保存数据。本文将详细介绍 sessionStorage 的基本概…...
新版本Xmind结合DeepSeek快速生成美丽的思维导图
前言 我的上一篇博客(https://quickrubber.blog.csdn.net/article/details/146518898)中讲到采用Python编程可以实现和Xmind的互动,并让DeepSeek来生成相应的代码从而实现对内容的任意修改。但是,那篇博客中提到的Xmind有版本的限…...
lodash库介绍(一个现代JavaScript实用工具库,提供模块化、性能优化和额外功能)JavaScript库(防抖、节流、函数柯里化)JS库
文章目录 Lodash库全解析简介核心优势一致性API模块化设计性能优化 常用功能分类数组操作对象操作函数增强 高级应用场景数据转换链函数组合 性能考量大数据集处理 最佳实践按需引入利用FP模块 结语 Lodash库全解析 简介 Lodash是一个现代JavaScript实用工具库,提…...
禾赛科技社招面经
下面面经内容是禾赛科技社招面经 Linux bsp软件工程师 一面: 1、自我介绍 2、中断里用什么锁 答:自旋锁 3、自旋锁和互斥锁的区别 答:自旋锁用在中断上下文中,适合于极短的临界区,CPU开销小,不可以阻塞 互斥锁用在进程上下文中,适用于较长的临界区,CPU开销大,可以阻塞…...
set和map封装
目录 set和map区别 set和map的插入 set和map的实现 修改红黑树的模板参数 修改比较时使用的变量 迭代器的实现 迭代器的定义 *解引用重载 ->成员访问重载 自增重载 重载 封装迭代器 RBTree迭代器封装 封装set迭代器 对set迭代器进行修改 封装map迭代器 修改…...
【Linux】Orin NX + Ubuntu22.04配置国内源
1、获取源 清华源 arm 系统的源,可以在如下地址获取到 https://mirror.tuna.tsinghua.edu.cn/help/ubuntu-ports/ 选择HTTPS,否则可能报错: 明文签署文件不可用,结果为‘NOSPLIT’(您的网络需要认证吗?)查看Orin NX系统版本 选择jammy的源 2、更新源 1)备份原配…...
Bazel中的Symbol, Rule, Macro, Target, Provider, Aspect 等概念
学习Bazel ,就要学习Bazel 的规则定义, 弄清各个概念是重要的一个步骤。 在 Bazel 规则定义中,Symbol、Rule 和 Macro 是常见的概念。除此之外,Bazel 还有 Target、Provider、Aspect Repository、Package、 Workspace、 Configura…...
Open-Sora:开源AI视频生成的新星
一.引言 近年来,AI视频生成技术快速发展,从文本生成图像(如Stable Diffusion、DALLE)到文本生成视频(如Runway、Pika),AI在多媒体创作领域的应用日益广泛。近期,Open-Sora作为一款开…...
【堆】《深入剖析优先级队列(堆):数据结构与算法的高效搭档》
文章目录 前言例题一、最后一块石头的重量二、数据流中的第 K 大元素三、前K个高频单词四、数据流的中位数 结语 前言 什么是优先级队列算法呢?它的算法原理又该怎么解释? 优先级队列(堆)算法是一种特殊的数据结构和算法…...
【CMOS输出缓冲器驱动强度】
一 、学习笔记 原始资料:https://www.ti.com.cn/cn/lit/an/zhcae18/zhcae18.pdf?ts1743589394832 Q1、电平转换芯片的其中一个关键指标是转换速率,转换速率跟什么因素有关系呢? 1、瞬态驱动强度 上升或下降时间用于评估瞬态驱动强度。需要…...
【C++】Cplusplus进阶
模板的进阶: 非类型模板参数 是C模板中允许使用具体值(而非类型)作为模板参数的特性。它们必须是编译时常量,且类型仅限于整型、枚举、指针、引用。(char也行) STL标准库里面也使用了非类型的模板参数。 …...
透明的卡组收费模式IC++
IC是信用卡处理商用来计算每笔交易相关费用的定价模型。与统一或混合定价相比,IC提供了额外的透明度。 作为企业主,了解IC定价的来龙去脉至关重要,以确定它是否对您的运营有意义。 什么是IC? IC或interchange plus是一种流行的定…...
虚拟试衣间微信小程序解决方案
目录 项目名称: 云尚衣橱 核心功能模块: 技术栈选型: 架构设计概览: 详细功能点实现思路: 数据库设计 (MongoDB 示例): 开发步骤建议: 关键注意事项和挑战: 项目名称: 云尚衣橱 核心功能模块: 用户系统 (User System) 我的衣柜 (My Wardrobe) 虚拟试衣间 (Vir…...
