人工智能-神经网络

目录

1 神经元

2 MP模型

3 激活函数

      3.1 激活函数

      3.2 激活函数作用

      3.3 激活函数有多种

4、神经网络模型

5、神经网络应用

6、存在的问题及解决方案

6.1 存在问题

6.2 解决方案-反向传播


1 神经元

       神经元是主要由树突、轴突、突出组成,树突是从上面接收很多信号,经过轴突处理后传递给突触突触会进行选择性向下一级的树突传递信号。突触输出的信号只有两种可能,要么输出,要么不输出,即只有0和1两种情况。

       在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

 下图错误请忽略(留作自用)

2 MP模型

       每个神经网络单元抽象出来的数学MP模型如下,也叫感知器,它接收多个输入(x1,x2,x3...),产生一个输出 即 y= W1X1+W2X2+W3X3+...+WnXn + b。

       这就好比是神经末梢感受各种外部环境的变化(感知外部刺激),产生不同的电信号(也就是输入:x1,x2,x3...xn),这些强度不同(也就是参数w1,w2,w3...wn)的电信号汇聚到一起,会改变这些神经元内的电位,如果神经元的电位超过了一个“阈值”(参数 b),它就会被激活(激活函数),即“兴奋”起来,向其他神经元发送化学物质。

        MP模型:麦卡洛克一皮茨模型(McCulloch-Pitts model )简称,一种早期的神经元网络模型.

       由美国神经生理学家麦卡洛克(McCulloch, W.)和数学家皮茨 <Pitts,W.)于1943年共同提出。设有n个神经元相互连结,每个神经元的状态Si (i=1,2,…,n)取值0或1,分别表示该神经元的抑制和兴奋,每个神经元的状态都受其他神经元的制约,B是第i个神经元的阂值,W是神经元i与神经元J 之间的连结强度。

MP模型过程:

  • 每个神经元都是一个多输入端
  • 如x1,x2,x3
  • 每个输入都会乘以权重w1,w2,w3
  • 再加一个阈值 b
  • 最后我们会得到 y = w1x1 + w2x2 + w3x3 + b
  • 最终我们得到一个值 y
  • 得到这个值后是否会向下游输出则取决于激活函数f(x)
  • 向下游输出的结果Oj的值要么是0,要么是1。

3 激活函数

      3.1 激活函数

        就是人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。

      3.2 激活函数作用

       如果不用激活函数:每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。
        如果使用激活函数:激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

      3.3 激活函数有多种

  • Sigmoid激活函数

        Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间 。

  • ReLU函数

       Relu激活函数(The Rectified Linear Unit),用于隐层神经元输出。

  • Tanh函数

       Tanh是双曲函数中的一个,Tanh()为双曲正切。在数学中,双曲正切“Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。

4、神经网络模型

       单个的感知器(也叫单感知机)就构成了一个简单的模型(MP模型),但在现实世界中,实际的决策模型则要复杂得多,往往是由多个感知器组成的多层网络,如下图所示,这也是经典的神经网络模型(也叫多感知机,也叫人工神经网络),由输入层、隐含层、输出层构成。

       人工神经网络可以映射任意复杂的非线性关系,具有很强的鲁棒性、记忆能力、自学习等能力,在分类、预测、模式识别等方面有着广泛的应用。 

5、神经网络应用

      神经网络如何帮助我们做一些事情呢?例如语音如何识别?例如图片如何识别?

      其本质上都是可以转换为数字,将转换后的数字通过神经网络进行操作。

      例如下图,图像显示的是字母X,是一个单通道的5x5=25个像素的黑白图像(像素值只有0和255)。它代表的就是一堆数字(x1,x2,...,x25)=(0,255,255,0,....225,0),这堆数字就是代字母表X。

      我们就是通过训练,找到一堆参数,来判断它是不是一个字母X。

      目前我们判断图片是不是x,只是通过一层的1个神经元(一个神经元MP模型)就可以判断。 

      当然,这个1层单个神经元需要的找到的参数是25个参数(W1,W2,W3,...,W25)。

      如果是 彩色图像,就是3通道 5*5*3 个像素,1层单个神经元需要的找到的参数就是75个参数(W1,W2,W3,...,W75)。

        所以,从本质上讲,无论什么图,本质上都是一堆数字,我们就是把这些数字输入到神经元中进行训练参数,直到找到一个误差最小的函数,这就是成功的训练。

     但在现实世界中,实际的决策模型则要复杂得多,例如阅读文章、语音识别、图像识别等,仅仅用一层神经元很难达到效果。于是就需要使用多层神经元,就是多层神经网络模型。

    首先先有一个输入,输入端连接第一隐层的每一个神经元,第一隐把这些数据输出后,选择向下游输出到第二隐层,第二隐层输出结果输出到第三隐层。这就是所谓的多层神经网络。
每两层的神经网络连接都会有大量的参数,通过一定的算法,能让大量的参数调节到最优,使得最后的误差函数最小,这样就是一个成功的训练。

6、存在的问题及解决方案

6.1 存在问题

      我上面可以说是使用一层单个神经元训练需要找到(单通道)25个或(3通道)75个参数,使用的是全连接方式 y=W1X1+W2X2+W3X3+...+W25X25+b 或y=W1X1+W2X2+W3X3+...+W25X75+b ,但全连接网络存储在最大问题就是太复杂。

例如 有 5x5 图片,有三层神经网路,每个神经网络层有25个神经元。
        25个像素(x1,x2,...,x25)作为输入,
        输入到第1层第1个神经元需要确定25个参数
        输入到第1层第2个神经元需要确定25个参数
        ....
        输入到第1层第25个神经元需要确定25个参数
        因此(x1,x2,...,x25)输入到第1层25个神经元需要参数 25 *25 = 625
        第1层25个神经元的输出结果又是新的输入(x1,x2,...,x25)
        同理,(x1,x2,...,x25)输入到第2层25个神经元需要参数 25 *25 = 625
        同理,(x1,x2,...,x25)输入到第3层25个神经元需要参数 25 *25 = 625
        因此3层神经网络就需要 625 * 3 = 1875 个 参数需要调。
     
        这还是在 5x5 最简单的图片神经网络才3层的情况下,如果图片是彩色的呢?如果图片是1个比较的图片(3000x1000)呢?如果是彩色大图且网络层数更多如10层呢?

        此时的参数量就是 3000x1000 x 3000x1000 x 10 = 300000000000 。这时候识别起来就会更复杂,计算也比较慢。

        这也是前几次人工智能陷入低谷的原因。因为不管是算力还是算法,都跟不上。

6.2 解决方案-反向传播

        正因为存在上述问题,所以采用辛顿提出的反向传播算法,即BP算法。

       BP算法在调整参数时候,不用向以前一样调参,可以先调最后一层,调完最后一层往前调,最后调到最前面一层。这种算法就叫反向传播。这种算法比以前算法复杂度要低得多。所以 反向传播算法 也引领了第三次人工直智能的浪潮。

       到这里初步有了对人工智能的粗浅的认识。

7 反向传播

   见 人工智能反向传播

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

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

相关文章

【DeepLabCut】初识姿势估计 | DeepLabCut教程 | 单动物实现

&#x1f4e2;前言&#xff1a;姿势估计作为计算机视觉领域中的一个重要分支&#xff0c;本章将介绍姿势估计和一个用于姿势估计的工具。并以斑马鱼的运动视频为例&#xff0c;手把手教你如何用deeplabcut训练自己的数据。 目录 Ⅰ 初识姿势估计 0x00 姿势估计介绍 Ⅱ 初…

Android ART虚拟机系列: 虚拟机CheckPoint机制分析

背景 在Android ART虚拟机中&#xff0c;GC的部分流程中会执行stop the world的操作&#xff0c;那么&#xff0c;STW在虚拟机中如何实现呢&#xff1f;本文就深入到ART虚拟机源码中&#xff0c;探寻STW的实现过程。 【本文基于android12源码分析】 CheckPoint机制 ART虚拟机…

如何用Stable Diffusion模型生成个人专属创意名片?

目录 1 什么是二维码&#xff1f;2 什么是扩散模型&#xff1f;3 Stable Diffusion环境搭建4 开始制作创意名片结语 1 什么是二维码&#xff1f; 二维码是一种用于存储和传输信息的方便而广泛使用的图像编码技术。它是由黑色方块和白色空白区域组成的二维图形&#xff0c;可以…

简化生活之让AI以指定格式输出

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 合集地址 今天京东也宣布即将发布了自己的大模型&#xff0c;那么使用AI大模型进行工作或者生活将是必不可少的步骤。 建立命令 AI大模型是一种生成式聊天对话模型&#xff0c;我们可以通过预先定义命令的方式…

SpringBoot集成Flowable工作流

SpringBoot集成Flowable工作流 Flowable是什么&#xff1f;一、添加依赖二、flowable配置三、定义流程文件1.使用流程文件定义工作流2.idea使用插件来定义流程图1.安装插件2.创建bpmn文件并画流程图3.右击流程用模型设计器打开文件 四、测试controller Flowable是什么&#xff…

IDEA运行TOMCAT出现404

就这种问题&#xff0c;每个人的原因都不一定一样&#xff0c;我出现这种问题的解决方法在这里记录一下。顺便把我的配置记录一下。 除了本文的问题&#xff0c;还有可能是默认打开的文件名错了&#xff0c;或者端口被占用。 软件版本IDEA2023 TOMCAT9 亲测&#xff1a;IDE…

linux文件锁(保证只能同时启动一个实例,不同时启动多个实例)

文章目录 C如果程序异常退出&#xff0c;会自动释放锁码&#xff1f; shell脚本python脚本 C 可以使用Linux中的进程锁来实现只能启动一个实例的功能。一种常见的方法是使用文件锁&#xff08;File Locking&#xff09;。 可以在程序启动时创建一个特定的文件&#xff0c;并尝…

54、Mysql索引的数据结构,各自优劣

Mysql索引的数据结构&#xff0c;各自优劣 索引的数据结构和具体存储引擎的实现有关在MySQL中使用较多的索引有Hash索引&#xff0c;B树索引等InnoDB存储引擎的默认索引实现为: B树索引。对于哈希索引来说&#xff0c;底层的数据结构就是哈希表&#xff0c;因此在绝大多数需求…

Jmeter四种关联方法讲解

目录 方法一&#xff0c;从前一个请求中取&#xff0c;用正则表达式提取器。 二、json path extractor 三、json extractor 四、XPath Extractor 方法一&#xff0c;从前一个请求中取&#xff0c;用正则表达式提取器。 具体方法&#xff0c;在需要获得数据的请求上右击添加…

python+selenium进行cnblog的自动化登录测试

Web登录测试是很常见的测试&#xff0c;手动测试大家再熟悉不过了&#xff0c;那如何进行自动化登录测试呢&#xff01;本文就基于pythonselenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试&#xff0c;可提供点参考&#xff01;下面就包括测试代…

出海企业系列风险分析--网站需要验证码吗?

最近接待了几位从discuz来的用户&#xff0c;说是想要给自己海外的网站安装验证码&#xff0c;但是discuz境外服务器还要解析安装中心的DNS到境外服务器上&#xff0c;所以基于discuz建站的不好之处就在这里。 而且我们还讨论到一个问题&#xff0c;海外的网站&#xff0c;需要…

你知道mp3转换器怎么用吗?分享在线音频转换mp3怎么弄

飒飒&#xff1a;嘿&#xff0c;你有没有想过如何将在线音频转换为mp3格式&#xff1f; 潇潇&#xff1a;是的&#xff0c;我确实有过这个需求。在网上找到了一些工具和方法&#xff0c;可以帮助我们完成这个任务。 飒飒&#xff1a;那太好了&#xff01;你能告诉我一些详细的…

JS代码加密技术:僵尸代码植入

JS混淆加密&#xff1a;僵尸代码 僵尸代码植入&#xff0c;是JS混淆加密中一项很有用的技术。 比如JShaman&#xff0c;作为国内知名的JS混淆加密产品&#xff0c;便具备这一功能。 它可以给原始代码中增加一些额代的功能代码&#xff0c;比如&#xff1a;变量定义、函数调用…

Linux dpkg和dpkg-deb常用参数使用说明

名词解释 “dpkg ”是“ Debian Packager ”的简写。为“Debian” 专门开发的套件管理系统&#xff0c;方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都会使用 “dpkg”&#xff0c;例如 “ Ubuntu ”、“Knoppix ”等。 dpkg-deb和dpkg的区别 dpkg-de…

一次元数据空间内存溢出的排查记录 | 京东云技术团队

在应用中&#xff0c;我们使用的 SpringData ES的 ElasticsearchRestTemplate来做查询&#xff0c;使用方式不对&#xff0c;导致每次ES查询时都新实例化了一个查询对象&#xff0c;会加载相关类到元数据中。最终长时间运行后元数据出现内存溢出&#xff1b; 问题原因&#xf…

Node.js下载安装和环境变量配置(详细教程)

目录 一、官网地址下载安装包 二、安装程序 三、环境配置 四、测试 五、安装淘宝镜像 5.1、附加&#xff1a;如果有出现问题的小伙伴们可以检查一下自己的配置有没有出错 一、官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择你的项目或系统对应的node.js版本…

Openlayers实战:加载GeoJSON

在OPenlayers的交互中,经常性的我们要加载一些数据,在这个实战中,演示的是加载GeoJSON文件。 GeoJSON 是一种使用JavaScript 对象表示法(JSON) 对地理数据结构进行编码的格式。简而言之,GeoJSON 为你提供了一种简单的格式来表示简单的地理特征以及它们的非空间属性。 效果…

【CentOS安装make】

问题&#xff1a; bash: make: command not found 1、去官网查找最新版本 http://ftp.gnu.org/pub/gnu/make/ 查找最新安装包 2、下载解压缩 wget http://ftp.gnu.org/pub/gnu/make/make-4.2.tar.gz tar -zxvf make-4.2.tar.gz cd make-4.2mkdir buildcd build../configure…

在vite创建的vue3项目中使用Cesium加载czml路径信息和无人机模型

在vite创建的vue3项目中使用Cesium加载czml路径信息和无人机模型 用到的区域文件、地图标记文件、路径信息文件、模型文件 提取码&#xff1a;99jq 使用vite创建vue3项目 npm create vitelatestcd到创建的项目文件夹中 npm install安装Cesium npm i cesium vite-plugin-cesium…

opencv实战--角度测量和二维码条形码识别

文章目录 前言一、鼠标点击的角度测量二、二维码条形码识别 前言 一、鼠标点击的角度测量 首先导入一个带有角度的照片 然后下面的代码注册了一个鼠标按下的回调函数&#xff0c; 还有一个点的数列&#xff0c;鼠标事件为按下的时候就记录点&#xff0c;并画出点&#xff0c;…