什么是神经网络?

0 前言

神经网络是一种人工智能方法,用于教计算机以受人脑启发的方式处理数据。这是一种机器学习过程,称为深度学习,它使用类似于人脑的分层结构中的互连节点或神经元。它可以创建自适应系统,计算机使用该系统来从错误中进行学习并不断改进。因此,人工神经网络可以尝试解决复杂的问题,例如更准确地总结文档或人脸识别。

1 为啥重要?

神经网络可在有限的人类协助下,帮助计算机制定明智的决策。这是因为它们可以学习非线性和复杂的输入数据与输出数据之间的关系,并为其建模。

如它们可执行以下任务。

1.1 进行归纳和推理

神经网络无需显式训练即可理解非结构化数据以及进行一般性观察。例如,它们可以识别具有相似含义的两种不同输入语句:

  • 您能否告诉我如何付款?
  • 我如何转账?

神经网络会知道这两个句子的含义相同。或者它能广泛地识别 Baxter Road 是地名,而 Baxter Smith 是人名。

2 神经网络的用途

很多使用案例:

  • 通过医疗影像分类进行医疗诊断
  • 通过社交网络筛选和行为数据分析进行有针对性的营销
  • 通过处理金融工具的历史数据进行金融预测
  • 电力负载和能源需求预测
  • 流程和质量控制
  • 化合物鉴定

提供神经网络的四种重要应用。

2.1 计算机视觉

计算机视觉是指计算机从图像和视频中提取信息及见解的能力。借助神经网络,计算机可以区分和识别与人类相似的图像。计算机视觉具有多种应用,如下所示:

  • 自动驾驶汽车中的视觉识别,以使汽车能够识别道路标志和其他道路使用者
  • 内容审核,用于从图像和视频归档中自动删除不安全或不适当的内容
  • 面部识别,用于识别面部和多项属性,如睁开的眼睛、眼镜以及面部毛发
  • 图像标记,用于识别品牌徽标、服装、安全装备和其他图像细节

2.2 语音识别

神经网络可以分析人类语音,尽管说话模式、音调、语气、语言和口音不尽相同。虚拟助手(如 Amazon Alexa)和自动转录软件使用语音识别执行诸如以下任务:

  • 帮助呼叫中心座席并对呼叫进行自动分类
  • 将临床对话实时转换为文档
  • 为视频和会议记录添加准确的字幕以实现更广泛的内容覆盖范围

2.3 自然语言处理

自然语言处理 (NLP) 是指处理自然、人类创建的文本的能力。神经网络可以帮助计算机从文本数据和文档中收集见解和含义。NLP 具有多种使用案例,包括在以下功能中:

  • 自动虚拟座席和聊天机器人
  • 写入数据的自动组织和分类
  • 长格式文档(如电子邮件和表格)的业务情报分析
  • 用于表示情绪(如社交媒体上的正面和负面评论)的关键短语索引
  • 给定主题的文档摘要和文章生成

2.4 推荐引擎

神经网络可以跟踪用户活动,以提供个性化推荐。它们还可以分析所有用户行为,然后发现能够吸引特定用户的新产品或服务。例如,Curalate 是一家总部位于菲律宾的初创公司,它可帮助各个品牌将社交媒体文章转化为销售额。众多品牌使用 Curalate 的智能产品标签 (IPT) 服务,自动收集和管理用户生成的社交内容。IPT 使用神经网络自动查找和推荐与用户的社交媒体活动相关的产品。消费者无需通过社交媒体图像搜寻整个在线目录来查找特定产品。相反,他们可以使用 Curalate 的自动产品标记轻松购买产品。

3 工作原理

神经网络架构的灵感源自人脑。人脑细胞称为神经元,构成了一个复杂、高度互联的网络,并能互相发送电信号,以帮助人类处理信息。同样,人工神经网络由人工神经元组成,它们共同合作以解决问题。人工神经元是软件模块,称为节点;人工神经网络是软件程序或算法,在其核心,使用计算系统求解数学计算。

3.1 简单神经网络架构

基本神经网络的相互连接的人工神经元分为三层:

① 输入层

来自外部世界的信息通过输入层进入人工神经网络。输入节点对数据进行处理、分析或分类,然后将其继续传递到下一层。

② 隐藏层

隐藏层从输入层或其他隐藏层获取其输入。人工神经网络可以具有大量的隐藏层。每个隐藏层都会对来自上一层的输出进行分析和进一步处理,然后将其继续传递到下一层。

③ 输出层

输出层提供人工神经网络对所有数据进行处理的最终结果。它可以包含单个或多个节点。

如要解决一个二元(是/否)分类问题,则输出层包含一个输出节点,它将提供 1 或 0 的结果。但如要解决一个多类分类问题,则输出层可能由一个以上输出节点组成。

3.2 深度神经网络架构

深度神经网络又名深度学习网络,拥有多个隐藏层,包含数百万个链接在一起的人工神经元。名为权重的数字代表节点之间的连接。如果节点之间相互激励,则该权重为正值,如果节点之间相互压制,则该权重为负值。节点的权重值越高,对其他节点的影响力就越大。 从理论上讲,深度神经网络可将任何输入类型映射到任何输出类型。但与其他机器学习方法相比,它们也需要更多大量的训练。它们需要数百万个训练数据示例,而不像较简单的网络那样,可能只需数百或数千个训练数据示例。

4 类型

按数据从输入节点到输出节点的流动方式,对人工神经网络分类:

4.1 前馈神经网络

前馈神经网络以从输入节点到输出节点的单向方式处理数据。一层中的每个节点均与下一层中的每个节点连接。前馈网络使用反馈流程随着时间推移改进预测。

4.2 反向传播算法

人工神经网络使用校正反馈循环不断学习,以改进其预测分析。简而言之,您可以认为数据通过神经网络中的很多不同路径从输入节点流动到输出节点。只有一条路径是正确的,可将输入节点映射到正确的输出节点。为了找到这条路径,神经网络将使用反馈循环,其工作原理如下:

  1. 每个节点都会猜测该路径中的下一个节点。
  2. 它将检查猜测是否正确。节点将为引发更正确猜测的路径分配更高的权重值,而为引发不正确猜测的节点路径分配更低的权重值。
  3. 对于下一个数据点,节点将使用更高权重的路径进行新的预测,然后重复第 1 步。

4.3 卷积神经网络

卷积神经网络中的隐藏层执行特定的数学函数(如汇总或筛选),称为卷积。它们对于图像分类非常有用,因为可从图像中提取对图像识别和分类有用的相关特征。这种新形式更易于处理,而不会丢失对做出良好预测至关重要的特征。每个隐藏层提取和处理不同的图像特征,如边缘、颜色和深度。

5 咋训练?

神经网络训练是教授神经网络执行任务的过程。神经网络通过首先处理几大组标记或未标记数据来进行学习。通过使用这些示例,可更准确地处理未知输入。

5.1 有监督学习

数据科学家为人工神经网络提供标记数据集,这些数据集提前提供正确答案。如面部识别领域内的某项深度学习网络训练首先处理数十万张人脸图像,使用各种与种族、国家/地区或情绪相关的术语描述每幅图像。

该神经网络将通过这些提前提供正确答案的数据集慢慢构建知识。在该网络完成训练后,即可开始对以前未处理过的新人脸图像进行关于种族或情绪的猜测。

6 啥是神经网络环境下的深度学习?

人工智能这一计算机科学领域,研究的是如何使机器具备执行需要人类智能的任务的能力。机器学习是一种人工智能技术,它将提供访问权限,使计算机能够访问非常大的数据集,并教授计算机如何通过这些数据进行学习。机器学习将寻找现有数据中的模式,然后将这些模式应用于新数据,以制定明智的决策。深度学习是机器学习的一个子集,它使用深度学习网络来处理数据。

6.1 机器学习 V.S 深度学习

传统机器学习需人类为机器学习软件提供输入,才能充分发挥作用。人工确定此类软件必须分析的相关特征的集合。这会限制此类软件的能力,使创造和管理过程繁琐。

深度学习中,数据科学家只向软件提供原始数据。深度学习网络自行推导特征,并更独立学习。它可分析非结构化数据集(如文本文档),确定优先考虑哪些数据属性,并能解决更复杂问题。

如正在训练某一机器学习软件正确识别宠物的图像的步骤:

  • 手动查找和标记数千张宠物图像,如猫、狗、马、仓鼠、鹦鹉等
  • 告诉机器学习软件需寻找哪些特征,使其能用排除法识别图像。如它可能会计算腿的数量,然后检查眼睛形状、耳朵形状、尾巴、皮毛等
  • 手动评估和更改标记的数据集,以提高软件的准确性。例如,如果您的训练集包含过多黑猫图片,则软件能够正确识别黑猫,而不能正确识别白猫。
  • 但在深度学习中,神经网络将处理所有图像,并自动判断他们需要首先分析腿的数量和面部形状,然后查看尾巴,最后正确识别图像中的动物

本文已收录在Github关注我,紧跟本系列专栏文章,咱们下篇再续!

  • 🚀 魔都架构师 | 全网30W+技术追随者
  • 🔧 大厂分布式系统/数据中台实战专家
  • 🏆 主导交易系统亿级流量调优 & 车联网平台架构
  • 🧠 AIGC应用开发先行者 | 区块链落地实践者
  • 🌍 以技术驱动创新,我们的征途是改变世界!
  • 👉 实战干货:编程严选网 本文由博客一文多发平台 OpenWrite 发布!
相关推荐
考虑考虑2 小时前
Jpa使用union all
java·spring boot·后端
用户3721574261353 小时前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊4 小时前
Java学习第22天 - 云原生与容器化
java
渣哥6 小时前
原来 Java 里线程安全集合有这么多种
java
间彧6 小时前
Spring Boot集成Spring Security完整指南
java
间彧6 小时前
Spring Secutiy基本原理及工作流程
java
Java水解7 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆9 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学10 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole10 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端