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

一、神经网络基本概念

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

     (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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++初阶:反向迭代器模板,dequeue与模板进阶

目录 1. 反向迭代器的实现2. 容器deque的数据结构(双端队列)3. 模板的进阶知识与使用3.1 非类型模板参数3.2 模板特化3.2.1 全特化3.2.2 偏特化(半特化) 3.3 模板的分离编译 1. 反向迭代器的实现 反向迭代器与正向迭代器的行为与定…

【C++中的STL(未完成)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

java 8 stream api将List<T>转换成树形结构

1、新建实体类 package com.example.springboot3.entity;import lombok.Builder; import lombok.Data;import java.util.List;Data Builder public class Menu {/*** id*/public Integer id;/*** 名称*/public String name;/*** 父id ,根节点为0*/public Integer p…

vue3+threejs新手从零开发卡牌游戏(十七):模拟对方手牌上场

写一个模拟对方手牌上场的事件,其中注意上场后卡牌需要翻转下,同时调整攻击力文字位置,主要代码如下: utils/common.ts: import { nextTick } from vue; import * as THREE from three; import * as TWEEN from tween…

【Java程序设计】【C00377】基于(JavaWeb)Springboot的社区医疗服务系统(有论文)

【C00377】基于(JavaWeb)Springboot的社区医疗服务系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发&#x…

javaSSM公司招聘管理系统IDEA开发mysql数据库web结构计算机java编程maven项目

一、源码特点 IDEA开发SSM公司招聘管理系统是一套完善的完整企业内部系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发)MAVEN方式加 载,系统具有完整的源代码和…

极端道路天气数据集 雨天 雾天 道路晴朗

极端道路天气数据集 是一系列专为自动驾驶、智能交通系统研发以及计算机视觉算法测试而设计的真实世界或模拟的道路环境图像和视频集合。这些数据集包含了在各类极端天气条件下捕捉到的道路场景,例如大雾、暴雨、暴雪、冰雹、雾霾、道路结冰等,这些都是…

Vue3 + Vite + TS + Element-Plus + Pinia创建新项目(1)

1、cmd进入命令行后,输入npm create vite 2、使用vs code打开文件夹 3、在VS Code的终端里面输入命令:npm i 安装依赖 4、安装依赖库 npm i vue-router 路由安装 npm i pinia 全局状态管理 npm i axios 请求库 npm i element-p…

30---SDRAM电路设计

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

国内ip切换app,让切换ip变得简单

在数字化快速发展的今天,互联网已经成为我们生活中不可或缺的一部分。然而,随着网络应用的深入,用户对于网络环境的需求也日益多样化。其中,IP地址作为网络中的关键标识,其切换与管理显得尤为重要。为了满足用户对于IP…

推荐5款测试数据生成工具!

一个成功、有效的测试策略由下面几个基本部分组成:完整的测试覆盖率、最小化的环境影响和健壮的测试数据。 其中测试数据尤其重要,其质量直接关系到测试的有效性。可以把测试数据看作是保持测试引擎运行的燃料——高质量的测试数据有助于确保测试执行的…

气体放电的基本物理过程

本篇为本科课程《高电压工程基础》的笔记。 和固体液体介质相比,气体绝缘有不老化的有点,而且击穿后具有完全的绝缘自恢复特性,是绝缘部分的重点。 带电质点的产生与消失 中性气体不到点,但是由于宇宙射线和地壳中的放射性物质…

【鸿蒙HarmonyOS开发笔记】使用@Preview装饰器预览组件

概述 ArkTS应用/服务支持组件预览,要求compileSdkVersion为8或以上。组件预览支持实时预览,不支持动态图和动态预览。组件预览通过在组件前添加注解Preview实现,在单个源文件中,最多可以使用10个Preview装饰自定义组件。 Preview…

NIO与AIO

NIO与AIO NIO模型 在 LInux 环境中,java.nio.channels.Selector 的子类叫做 sun.nio.ch.EPollSelectorImpl ,其底 层是基于 Epoll 模型去实现的 IO 多路复用器。 对于 Epoll 模型 我们需要了解到它底层的三个函数 在 JDK 实现的底层中,EPol…

由浅到深认识Java语言(27):异常

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

mysql如何存Emoji表情

如何存Emoji表情 背景解决方案一: 如果是自己搭建的数据库,参考如下。 1:先创建数据库,utf8编码2: 修改mysql 的配置文件 /etc/my.cnf 文件3:然后把你的表和字段也要支持utf8md4编码4:修改你连…

分页功能制作

使用HTML,css,js和json假数据制作分页功能。 以下为分页功能结构,下面可以点击上一页,下一页及数字,还可以自己输入想要跳转的页面点击跳转。下面每页显示的内容也会跟着改变。还可以选择不同的每页显示数据的条数。默…

备考ICA----Istio实验11---为多个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验11—为多个主机配置TLS Istio Ingress Gateway实验 1. 部署应用 kubectl apply -f istio/samples/helloworld/helloworld.yaml -l servicehelloworld kubectl apply -f istio/samples/helloworld/helloworld.yaml -l versionv12. 证书准备 接上一个实验…

【孙子级介绍语言模型的原理,实战和评估】

🔥博主:程序员不想YY啊🔥 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家💫 🤗点赞🎈收藏⭐再看💫养成习惯 🌈希望本文对您有所裨益,如有…

超级爆火项目 壁纸取图小程序源码系统 带完整的安装代码包以及安装部署教程

在当今数字化时代,手机壁纸已经成为人们展示个性和品味的重要载体。为了满足广大用户对精美壁纸的需求,小编给大家分享一款超级爆火的“壁纸取图小程序源码系统”。该系统不仅提供了完整的安装代码包,还附带了详尽的安装部署教程,…