机器学习——神经网络简单了解

一、神经网络基本概念

     神经网络可以分为生物神经网络和人工神经网络

     (1)生物神经网络,指的是生物脑内的神经元、突触等构成的神经网络,可以使生物体产生意识,并协助生物体思考、行动和管理各机体活动。
     (2)人工神经网络,是目前热门的深度学习的研究基础。目前对人工神经网络的定义多种多样,本书采用TKohonen1988年在NeuralNetworks 创刊号上给出的定义,即:“人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它能够模拟生物神经系统对真实世界物体所做出的交互反应”(Kohonen,1988)

二、最初的神经网络模型——M-P模型 

     回忆生物神经元的结构,细胞体作为神经元的主体,由细胞体向外延伸的多个突起神经纤维称为树突,树突作为细胞体的输入端,轴突为细胞体向外延伸最长的突起,末端由很多细的分支被称为神经末梢,每一条神经末梢相当于细胞体的输出端。每个神经元通过轴突的神经末梢与其他神经元的细胞体或树突相连接,这种连接称为突触

    细胞体的细胞膜在正常状态下形成内负外正的膜电位,当神经元突触与上千个其他神经元连接时,接受不同输入对神经元点位的影响也不用(视为不同输入具有权重),当膜电位升高到一个阈值时,就会产生一个脉冲。突触也可以分为兴奋性和抑制性两种,兴奋性的突触可能引起下一个神经元兴奋,否则会抑制下一个神经元的兴奋。

 

M-P模型就是模拟生物神经元模型建立的数学神经元模型,多个输入各自具有权重,神经元本身就有一个阈值,输出值由输入权和减去阈值通过激活函数f得到。激活函数通常是当输入权和大于阈值时输出响应。

 三、感知机模型

感知机模型以M-P模型为基础,但是能通过“学习“确定输入的权重和神经元的阈值。如果在输入层和输出层添加隐层,形成多层映射网络那就由单层感知机形成多层感知机。

 学习修正的过程并不复杂,对于真实值和预测值引入损失函数,通过最小化损失函数(类比最小二乘确定系数a、b),不断修正w、θ,得到最优的输出结果。

 四、BP神经网络

下面介绍最成功的神经网络之一:BP神经网络,BP即back propagation(误差逆传递)

 

 

% Solve an Input-Output Fitting problem with a Neural Network
% Script generated by Neural Fitting app
% Created 23-Mar-2024 10:31:29
%
% This script assumes these variables are defined:
%
%   iris_1 - input data.
%   iris_2 - target data.x = iris_1';
t = iris_2';% Choose a Training Function
% For a list of all training functions type: help nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory. Suitable in low memory situations.
trainFcn = 'trainlm';  % Levenberg-Marquardt backpropagation.% Create a Fitting Network
hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize,trainFcn);% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 60/100;
net.divideParam.valRatio = 20/100;
net.divideParam.testRatio = 20/100;% Train the Network
[net,tr] = train(net,x,t);% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)% View the Network
view(net)% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, ploterrhist(e)
%figure, plotregression(t,y)
%figure, plotfit(net,x,t)

五、卷积神经网络

深度学习:自主层层抽取特征,从简单特征抽象到复杂特征

人类的视觉皮层处理视觉信息是通过一系列复杂且分层的步骤完成的。这个过程开始于眼睛,然后信息传递至大脑的不同区域进行进一步的处理。以下是这一过程的简化描述:

  1. 光线接收

    • 光线首先通过眼睛的角膜和晶状体,聚焦到视网膜上。视网膜含有两种类型的感光细胞:视杆细胞和视锥细胞。视杆细胞对光线非常敏感,适合在暗光条件下工作,而视锥细胞负责感知颜色和细节。
  2. 初步的视觉信息处理

    • 在视网膜上,光信号转换为电信号,这一过程涉及到神经元的活动。视网膜内的神经元通过不同的方式处理这些信息,例如,通过增强图像的边缘对比度来准备进一步分析。
  3. 通过视神经传输

    • 经过初步处理的信号通过视神经传送到大脑。值得注意的是,左视网膜的信号被传送到大脑的右半球,而右视网膜的信号则传送到大脑的左半球。
  4. 初级视觉皮层(V1区域)

    • 信号首先到达大脑后部的初级视觉皮层,也称为V1区。V1区负责处理视觉信息的基本属性,如方向、大小、形状、颜色和运动等。
  5. 进一步的信息处理

    • 从V1区开始,视觉信息被传送到大脑的其他区域进行更复杂的处理。这些区域包括V2、V3、V4等,每个区域都对特定类型的视觉信息专门化。
      • 例如,V4区更专注于颜色的处理,
      • 而V5区(或MT区)主要处理运动信息。
  6. 高级视觉处理

    • 在经过多个视觉处理区域之后,信息被传递到大脑的高级视觉区域,如顶叶和颞叶。这些区域负责更复杂的视觉任务,例如物体识别、面孔识别和空间感知。

整个过程涉及到的是一个从简单到复杂,从局部到整体的信息处理机制。视觉信息在经过层层处理后,最终形成我们对外界的视觉感知。这种分层和专业化的处理机制使得人类能够快速、有效地理解复杂的视觉环境。

卷积是一种数学运算,广泛应用于信号处理、图像处理、深度学习以及许多其他领域。它代表了两个函数(或信号、数据序列)之间的关系,表明了一个函数如何通过另一个函数进行“形状修改”。

数学定义

在数学上,两个函数(f)和(g)的卷积被定义为:

                                 (f * g)(t) = \int f(\tau)g(t-\tau)d\tau

这里,(*)表示卷积操作,(t)通常表示时间位置,(f(\tau))和(g(t-\tau))是参与卷积的两个函数或序列。

形象意义

卷积可以被视为一个函数(g)在另一个函数(f)上的“滑动加权平均”。在这个过程中,(g)函数被反转并滑动过(f),在每个位置(t),计算(g)与(f)重叠部分的加权和。这个操作有助于提取(f)中的特征,其中(g)的形状决定了哪些类型的特征被提取。

应用

信号处理

  • 滤波:通过与一个定义好的滤波器函数(比如低通、高通滤波器)进行卷积,可以从信号中提取信息或去除噪声。

  • 系统响应:在系统分析中,系统对输入信号的响应可以通过将输入信号与系统的冲激响应进行卷积来计算。

图像处理

  • 边缘检测:通过与边缘检测器(如Sobel、Canny滤波器)进行卷积,可以从图像中提取边缘信息。

  • 模糊和锐化:通过与高斯滤波器(模糊)或拉普拉斯滤波器(锐化)进行卷积,可以实现图像的模糊和锐化处理。

 

卷积神经网络(Convolutional Neural Networks,CNNs)是一种在计算机视觉、图像处理、自然语言处理等多个领域中广泛使用的深度学习模型。它们特别适合于处理具有明显层次结构或空间关系的数据,如图像。

核心概念

卷积层

CNN的核心构成部分是卷积层,它通过滤波器(或称为卷积核)在输入数据上进行卷积操作,以提取数据的特征。每个滤波器负责从输入数据中检测特定类型的特征,比如边缘、颜色或者纹理。通过堆叠多个卷积层,CNN能够捕捉从简单到复杂的特征。

池化层

池化层(Pooling Layer)通常跟在卷积层后面,其主要目的是降低数据的空间维度(高度和宽度),从而减少计算量并防止过拟合。最常见的池化操作是最大池化和平均池化。

全连接层

在一系列卷积层和池化层之后,CNN通常会包含一个或多个全连接层(Fully Connected Layer),其目的是将前面提取的局部特征综合起来完成最终的任务,比如分类或回归。

工作流程

  1. 输入层: 输入层接收原始数据,如图像的像素值。
  2. 卷积层: 使用多个不同的滤波器在输入数据上进行卷积操作,产生一组特征图(Feature Maps)。
  3. 激活函数: 卷积层后通常会接一个激活函数,如ReLU(Rectified Linear Unit),以引入非线性。
  4. 池化层: 应用池化操作(如最大池化)来降低特征图的空间尺寸。
  5. 全连接层: 将前面的输出拉直并通过一个或多个全连接层来为最终的分类或回归任务做出决策。
  6. 输出层: 输出层给出模型的最终预测,如图像的分类。

应用

CNN在许多领域都有广泛应用:

  • 图像识别和分类: 如识别照片中的对象。
  • 物体检测: 检测图像中对象的位置和类别。
  • 图像分割: 将图像分割成多个部分或对象。
  • 人脸识别: 在照片或视频中识别个人的身份。
  • 自然语言处理: 虽然CNN主要用于图像数据,但它们也可以用于文本数据的处理。

CNN通过其独特的架构能够有效地捕捉数据的空间层次结构,使其成为处理图像和其他类型空间数据的理想选择。

 

 

 

 六、循环神经网络

循环神经网络(Recurrent Neural Network,RNN)是一种专门设计来处理序列数据的神经网络架构。与传统的前馈神经网络不同,RNN能够处理输入数据之间的时间序列关系,使其非常适合语言模型、时间序列分析、语音识别等任务。

核心特性

序列数据处理

RNN的主要特点是它们能够处理任意长度的序列数据。这是通过在模型中引入循环来实现的,使得网络能够保持对先前状态的记忆,并利用这些信息影响当前的输出。

参数共享

在RNN中,对序列中的每个元素执行相同的任务,且参数在各个时间步之间是共享的。这种参数共享机制使得RNN能够以相同的方式处理序列中的所有元素,无论序列有多长。

基本结构

RNN的基本单元包含三个主要部分:输入层、隐藏层和输出层。在每个时间步,RNN接收两个输入:当前时间步的输入数据以及前一个时间步的隐藏状态。基于这两个输入,RNN计算出当前时间步的隐藏状态,该隐藏状态随后被用于计算输出,并传递给下一个时间步作为其输入之一。

 

 

 

 

卷积神经网络(CNN)和循环神经网络(RNN)是深度学习中两种非常强大的神经网络架构,各自在不同的应用领域内表现出色。以下是对它们的擅长应用场景的概述:

卷积神经网络(CNN)

CNN主要用于处理网格状数据(如图像),并且特别擅长于以下场景:

  1. 图像处理:在图像识别、分类和分割中,CNN能够有效地识别并利用图像中的空间层次结构。例如,在面部识别、医疗图像分析等领域中非常有效。
  2. 视频分析:CNN可以用于处理视频帧以进行场景理解、活动识别或人流量分析。
  3. 物体检测:CNN能在图像中定位和识别多个对象,这在自动驾驶车辆的环境感知中非常重要。
  4. 风格迁移:利用CNN可以将一张图片的风格迁移到另一张图片上,这在艺术创作中被广泛应用。

循环神经网络(RNN)

RNN设计用来处理序列数据,擅长于以下场景:

  1. 语言模型和文本生成:RNN能够根据前面的文本来预测接下来的单词或字符,因而在文本自动生成、机器翻译等领域中表现出色。
  2. 语音识别:RNN能够处理音频信号中的时间序列数据,并且在将语音转换为文本的任务中得到应用。
  3. 时间序列预测:预测股票市场趋势、天气变化等需要分析时间序列数据的任务中,RNN能够利用之前的数据点来预测未来的数据点。
  4. 序列标记:比如命名实体识别(NER)或词性标注,RNN可以为序列中的每个元素分配一个标签。

综合对比

  • 数据结构:CNN擅长处理空间信息(例如,图像中的像素),而RNN擅长处理序列信息(例如,时间序列或文本序列)。
  • 模式识别:CNN通过学习局部特征来识别空间模式,例如,形状和边缘,而RNN通过时间步骤来学习序列中的模式。
  • 参数共享:CNN通过卷积层实现参数共享,这使它们在处理图像时非常高效,因为图像的不同部分可以共享相同的特征检测器。而RNN在时间步骤之间共享参数,适合于处理长度可变的序列数据。
  • 时间依赖性:RNN特别设计用来处理具有时间依赖性的数据,它们能够在时间步骤间传递信息,而CNN则不具备这种能力。

尽管CNN和RNN在不同的任务中有着各自的优势,但在实践中,往往会将它们结合起来,以发挥两者的优点。例如,在视频处理任务中,可能会用CNN来处理每一帧图像,然后用RNN来理解帧与帧之间的时间关系。此外,对于某些任务,如机器翻译,可能会用到一种叫做编码器-解码器(encoder-decoder)架构,其中编码器可能是CNN,而解码器可能是RNN。

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

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

相关文章

【第二部分--Python之基础】02

二、运算符与程序流程控制 1、运算符 1.1 算术运算符 算术运算符用于组织整数类型和浮点类型的数据,有一元运算符和二元运算符之分。 一元算术运算符有两个:(正号)和-(负号),例如&#xff1…

【C++11】thread线程库

【C11】thread线程库 目录 【C11】thread线程库thread类的简单介绍函数指针lambda表达式常用在线程中 线程函数参数join与detach利用RAII思想来自动回收线程 原子性操作库(atomic)atomic中的load函数:atomic中对变量进行原子操作的一些函数 CAS(Compare-And-Swap)无…

Git学习笔记之基础

本笔记是阅读《git pro》所写,仅供参考。 《git pro》网址https://git-scm.com/book/en/v2 git官网 https://git-scm.com/ 一、git起步 1.1、检查配置信息 git config --list查看所有的配置以及它们所在的文件 git config --list --show-origin可能有重复的变量名…

科技云报道:从“算力核弹”到生成式AI,新纪元还有多远?

科技云报道原创。 “我们需要更大的GPU”! 3月19日凌晨,一年一度的“AI风向标”重磅会议——GTC 2024如期而至。 英伟达CEO黄仁勋在大会上发布了包括新一代加速计算平台NVIDIA Blackwell、Project GR00T人形机器人基础模型、Omniverse Cloud API、NVI…

【prompt六】MaPLe: Multi-modal Prompt Learning

1.motivation 最近的CLIP适应方法学习提示作为文本输入,以微调下游任务的CLIP。使用提示来适应CLIP(语言或视觉)的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中,我们提出了针对视觉和语言分支的多模态提示学习(MaPLe),以…

大数据开发(日志离线分析项目)

大数据开发(日志离线分析项目) 一、项目需求1、使用jqueryecharts的方式调用程序后台提供的rest api接口,获取json数据,然后通过jquerycss的方式进行数据展示。工作流程如下:2、七大角度1、用户基本信息分析模块2、浏览…

【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征

文章目录 0. 实验环境1. 理论基础1.1 滤波器(卷积核)1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架,相关操作…

openGauss学习笔记-252 openGauss性能调优-使用Plan Hint进行调优-Scan方式的Hint

文章目录 openGauss学习笔记-252 openGauss性能调优-使用Plan Hint进行调优-Scan方式的Hint252.1 功能描述252.2 语法格式252.3 参数说明252.4 示例 openGauss学习笔记-252 openGauss性能调优-使用Plan Hint进行调优-Scan方式的Hint 252.1 功能描述 指明scan使用的方法&#…

【计算机操作系统】深入探究CPU,PCB和进程工作原理

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

【二叉树】Leetcode 102. 二叉树的层序遍历【中等】

二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点) 示例1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 解题思路…

elasticsearch基础应用

1._cat接口 | _cat接口 | 说明 | | GET /_cat/nodes | 查看所有节点 | | GET /_cat/health | 查看ES健康状况 | | GET /_cat/master | 查看主节点 | | GET /_cat/indices | 查看所有索引信息 | es 中会默认提供上面的几个索引,表头…

Spring 自定义 CustomQualifier

为什么写这篇文章 Spring 支持类型注入,并且可以通过Qualifier 或者Mate 调整类型注入的范围。但是通过自定义注解结合现有的 Qualifier 使用起来有种种困难。 将 Qualifier 融合在自定义注解中,在使用 AliasFor 遇到问题仅仅检查注解中的一部分内容是否…

外包干了10天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

Tomcat下载安装以及配置

一、Tomcat介绍 二、Tomcat下载安装 进入tomcat官网,https://tomcat.apache.org/ 1、选择需要下载的版本,点击下载 下载路径一定要记住,并且路径中尽量不要有中文 8、9、10都可以,本博文以8为例 2、将下载后的安装包解压到指定位…

【小黑送书—第十四期】>>重磅升级——《Excel函数与公式应用大全》(文末送书)

今天给大家带来AI时代系列书籍:《Excel 2019函数与公式应用大全》全新升级版,Excel Home多位微软全球MVP专家打造,精选Excel Home海量案例,披露Excel专家多年研究成果,让你分分钟搞定海量数据运算! 由北京…

YOLOv8官方仓库正式支持RT-DETR训练、测试以及推理

YOLOv8太卷啦 | YOLOv8官方仓库正式支持RT-DETR训练、测试以及推理 RT-DETR由百度开发,是一款端到端目标检测器,在保持高精度的同时提供实时性能。它利用ViT的强大特性,通过解耦尺度内交互和跨尺度融合来有效处理多尺度特征。 RT-DETR具有很强…

关闭Elasticsearch built-in security features are not enabled

禁用Kibana安全提示(Elasticsearch built-in security features are not enabled) Kibana提示#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.e…

C语言中位运算介绍

在C语言中,位运算是一种对二进制位进行操作的运算方式,它可以对数据的二进制表示进行位级别的操作,包括按位与、按位或、按位异或、按位取反等。位运算常用于处理底层数据结构、优化代码性能以及实现各种算法。本文将深入介绍C语言中的位运算…

spring 的理解

spring 的理解 spring 是一个基础的框架,同时提高了一个Bean 的容器,用来装载Bean对象spring会帮我们创建Bean 对象并维护Bean对象 的生命周期。在spring 框架上,还有springCloud,spring Boot 的技术框架,都是以Spring为基石的sp…

AIGC工具系列之——基于OpenAI的GPT大模型搭建自己的AIGC工具

今天我们来讲讲目前非常火的人工智能话题“AIGC”,以及怎么使用目前的AI技术来开发,构建自己的AIGC工具 什么是AIGC? AIGC它的英文全称为(Artificial Intelligence Generated Content),中文翻译过来就是“人工智能生成内容”&…