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

一、神经网络基本概念

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

     (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.mzph.cn/news/774140.shtml

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

相关文章

计算坤是如何工作的

White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🙉 内容推荐:🙉 🐹今日诗词:🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac…

进程、线程、协程与虚拟线程(进程相关)

进程、线程、协程与虚拟线程 这一次我们从头,从最大的先开始说,我们从进程开始,因为内容比较多,所以我们分为几个不同的文章来介绍。先从进程,再从线程,最后介绍协程与虚拟线程。 简介 我们以一张操作系…

ehters.js:provider

ethers.jsV5.4文档 安装ethers npm install ethers5.4.0// 引入 import { ethers } from ethersProviders /** Provider类* Provider类是对以太坊网络连接的抽象,为标准以太坊节点功能提供简洁、一致的接口。 */ const provider new ethers.providers.Web3Provider…

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日,2024年第16届大广赛发布了新的命题,爱华仕箱包命题,自2017年起,爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…

左值引用、右值引用及移动语义

个人主页:Lei宝啊 愿所有美好如期而遇 左值 概念 可以取到地址的值就是左值,并且一般情况下可以修改(const类型左值不可修改)。 左值举例: //左值 int a 0; const int b 1; int* p &a; 右值 概念 不能…

三相四线智能电表直接接入式接线图

大家好,今天我们要聊的是三相四线智能电表的直接接入式接线方式。别担心,我会用简单易懂的语言来解释这个看似复杂的主题。 首先,我们得知道什么是三相四线电表。在我们的生活中,电力供应通常分为单相和三相。三相电,就…

vue 下载图片/视频到浏览器

方法1:直接在当前页面打开图片或者视频 window.location.href url;//借用a标签实现同样效果 const link document.createElement(a) link.href url // 文件地址 link.click(); 方法2:新开一个窗口打开图片或视频 window.open(url); 方法3&#xf…

分页-PageHelper原理以及实时分页-键集分页

一.PageHelper原理 1.使用 PageHelper 是国内非常优秀的一款开源 mybatis 分页插件,它支持常用的主流数据库,例如 Oracle、Mysql、MariaDB、SQLite、Hsqldb 等。 PageHelper 的安装很简单,只需要在 pom.xml 中加入以下依赖即可&#xff1a…

网络类型及数据链路层协议

目录 一、网络的分类 二、数据链路层协议 1、MA网络以太网协议 2、P2P网络 3、HDLC ---高级数据链路控制协议 HDLC地址借用 三、PPP协议 1、PPP协议的优点 2、PPP数据帧封装结构 3、PPP会话的搭建 4、LCP建立——链路建立阶段 4.1协商阶段 4.2认证阶段 4.3 PAP---密…

深入聊聊企业数字化转型这个事儿

01 什么是数字化? 聊数字化,就不得不聊聊信息化、智能化。佛性的说:信息化是数字化的前世,智能化是数字化的来生!我习惯用一个结构化的图形来表示事物之间的关系,信息化、数字化、智能化的关系如下&#…

尤大大正式官宣推出VitePress 1.0

VitePress 在现代Web开发领域,构建快速、响应式的文档网站是开发者经常面临的任务之一。VitePress应运而生,它结合了Vue.js和Vite的强大功能,为开发者提供了一个简单易用的静态站点生成器。Vue.js作为一种流行的前端框架,以其简洁…

网络安全:Kali Linux 进行SQL注入与XSS漏洞利用

目录 一、实验 1.环境 2.Kali Linux 进行SQL注入 3.Kali Linux 进行XSS漏洞利用 二、问题 1.XSS分类 2.如何修改beef-xss的密码 3.beef-xss 服务如何管理 4.运行beef报错 5.beef 命令的颜色有哪些区别 6.owasp-top-10 有哪些变化 一、实验 1.环境 (1&a…

30---SDRAM电路设计

视频链接 SDRAM电路设计01_哔哩哔哩_bilibili SDRAM电路设计 1、SDRAM简介 SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器。 同步是指其时钟频率和CPU前端总线的系统时钟相同,并且内部命令的发送与数据的传输都以…

如何避免SQL注入攻击?

🐓序言 当涉及到数据库操作时,防止SQL注入攻击至关重要。SQL注入是一种常见的网络安全威胁,攻击者通过在用户输入中插入恶意的SQL代码,从而可以执行未经授权的数据库操作。 🐓避免方式 使用参数化查询 使用参数化查询…

【漏洞复现】用友U8 login2.RegisterServlet接口处存在SQL注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

MyBatis3源码深度解析(二十五)级联映射与关联查询(二)级联映射的实现原理

文章目录 前言10.2 MyBatis级联映射的实现原理10.2.1 ResultMap详解10.2.2 ResultMap解析过程10.2.3 级联映射的实现原理10.2.3.1 handleRowValuesForSimpleResultMap()10.2.3.2 handleRowValuesForNestedResultMap() 前言 上一节【MyBatis3源码深度解析(二十四)级联映射与关联…

为什么Solana在区块链生态系统中脱颖而出

当我们在不断发展的区块链技术世界中航行时,认识到平台不仅要跟上创新的步伐,还要突破可能的界限,这一点至关重要。#Solana 已成为领先的竞争者,这就是为什么这个高性能区块链的未来看起来很光明。 🌟 可扩展性和速度&…

单臂路由和三层交换机

目录 一.单臂路由 1.单臂路由的工作原理 2.单臂路由的配置 2.1画出拓扑图 2.2配置PC 2.3配置交换机 2.4配置路由器 2.5测试 二.三层交换机 1.三层交换机的概述 2.三层交换机的配置 2.1画出拓扑图 2.2配置PC 2.3配置二层交换机 2.4配置三层交换机 2.5测试 3.拓展 三.总结 一.…

Trello国内替代工具有哪些?分享5款

盘点5款类似Trello的本地部署项目管理工具:1.PingCode;2.Worktile;3.Teambition;4.redmine;5.TAIga.io。 Trello是一款杰出的协作与工作管理应用,专为追踪团队项目、凸显当前活动任务、分配责任人&#xff…

web全栈架构师第16期教程

教程介绍 互联网时代已进入后半场,行业环境发生了显著变化。互联网人,尤其是技术人员,如何在加速更迭的技术浪潮中持续充电,提升自身价值,是当下必须面对的挑战。课程涉及了现下前端实际开发时所需要的各块内容&#…