神经元模型介绍

2023-11-12

一、深度学习的背景

目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫。深度学习是机器学习领域中的一个新的研究方向,模仿生人类神经网络,学习样本数据的内在规律的一种方法,神经网络属于监督学习的过程,可以处理:回归、分类。

机器学习:数据输入——人工特征提取——分类——输出

深度学习:数据输入——神经网络特征提取和分类——输出

要学习深度学习,那么首先要熟悉神经网络的一些基本概念。当然,这里所说的神经网络不是生物学的神经网络,我们将其称之为人工神经网络(Artificial Neural Networks,简称ANN)。神经网络最早是人工智能领域的一种算法或者说是模型,目前神经网络已经发展成为一类多学科交叉的学科领域,它也随着深度学习取得的进展重新受到重视和推崇。

二、神经元模型(MP模型)

人工神经网络是受到人类大脑结构的启发而创造出来的。如下图所示,在我们的大脑中,有数十亿个称为神经元的细胞,它们互相连接形成成了一个神经网络。

从生物书上,我们可以概括出生物神经网络的假定特点: 

1. 每个神经元都是一个 多输入单输出的信息处理单元;
2. 神经元输入分兴奋性输入抑制性输入两种类型;
3. 神经元具有 空间整合特性阈值特性
4. 神经元输入与输出间有固定的 时滞,主要取决于突触延搁

神经网络算法正是模仿了上面的网络结构。

下面是一个人工神经网络的构造图。每一个圆代表着一个神经元,他们连接起来构成了一个网络。

 人类大脑神经元细胞的树突用于接收来自外部的多个强度不同的刺激,并在神经元细胞体内进行处理,然后将其转化为一个输出结果。在这里,神经元是神经网络的基本单元,我们学过生物的同学都知道,神经元有两种状态:兴奋和抑制。一般情况下,大多数的神经元是处于抑制状态,但是一旦某个神经元收到刺激,导致它的电位超过一个阈值,那么这个神经元就会被激活,处于“兴奋”状态,进而向其他的神经元传播化学物质(其实就是信息),下图为生物学上的神经元结构示意图:

人工神经元也有相似的工作原理。如下图所示。

上面的x是神经元的输入,相当于树突接收的多个外部刺激。w是每个输入对应的权重,代表了每个特征的重要程度,它对应于每个输入特征,影响着每个输入x的刺激强度。假设只有3个特征,那么x就可以用(x1,x2,x3)。b表示阈值[yù zhí],用来影响预测结果。z就是预测结果。

所以有:z = (x1 * w1 + x2 * w2 + x3 * w3) - b。

上面这个式子在业内我们称之为逻辑回归。

三、使用激活函数

根据输出的计算可以发现,其实隐层的每个神经元是由输入特征x的线性组合构成。然而如果仅仅是线性组合,那么不管这个神经网络有多少层,结果都将与特征线性相关。于是我们在每个神经元结果z之后,添加一个激活函数(Activation Function),改变线性规则,比如使用Sigmoid函数。

激活函数非常非常重要,如果没有它,那么神经网络的智商永远高不起来。为什么要使用激活函数:大家可以想像火车站排队的栏杆,激活函数就是这样不断的约束引导输入走向我们想要的目标,这才是它的底层含义,而它的用途就是把线性问题变成非线性,以及把输出映射到概率分布,方便我们进行分类。

在1943年,McCulloch和Pitts将上图的神经元结构用一种简单的模型进行了表示,构成了一种人工神经元模型,也就是我们现在经常用到的“M-P神经元模型”,如下图所示:

从上图M-P神经元模型可以看出,神经元的输出

 其中θ为我们之前提到的神经元的激活阈值,函数f(⋅)也被称为是激活函数。激活函数不止一种,如上图所示,函数f(⋅)可以用一个阶跃方程表示,大于阈值激活;否则则抑制。但是这样有点太粗暴,因为阶跃函数不光滑,不连续,不可导,因此我们更常用的方法是用sigmoid函数来表示函数函数f(⋅),它的公式和图像如下。

我们在这里先只介绍它的一个用途——把z映射到[0,1]之间。上图中的横坐标是z,纵坐标我们用y’来表示,y’就代表了我们最终的预测结果。从图像可以看出,z越大那么y’就越靠近1,z越小那么y’就越靠近0。那为什么要把预测结果映射到[0,1]之间呢?因为这样不仅便于神经网络进行计算,也便于我们人类进行理解。例如在预测是否有猫的例子中,如果y’是0.8,就说明有80%的概率是有猫的。 

接下里我们给出常用的几个激活函数以及其图像:

图上左上角,即为上文所述的sigmoid函数,其导数为a· = a(1 - a)

右上角为tanh函数:

左下角为ReLU(修正线性单元):a = max(0,z)

右下角为Leaky ReLU:a = max(0.01,z)

四、使用损失函数

在神经网络的训练中,我们通过损失函数(Loss Function)来衡量这个神经网络的训练是否到位了。

一般情况下,使用平方差来衡量:

事实上,我们一般不使用平方差来作为二分类问题的损失函数,因为平方差损失函数一般是非凸函数,我们可能会得到局部最优解,而不是全局最优解。因此我们选择如下函数:

其实,y为样本真实值,yhat为样本预测值;

当y=1时,yhat越接近1,L(yhat,y)越接近0,表示预测效果越好;

当y=0时,yhat越接近0,L(yhat,y)越接近0,预测效果越好。

那么我们的目标即为使损失函数到达最小值,其中损失函数针对单个样本。

五、使用代价函数(Cost Function)

全部训练数据集的损失函数的平均值,即为训练集的代价函数:

根据上述公式,可以发现代价函数其实是w和b的函数,实际上我们的目标是迭代来计算出最佳的w和b的值(矩阵),使代价函数最小化(接近0),也就是最好的训练结果

六、总结

大脑的结构越简单,那么智商就越低。单细胞生物是智商最低的了。人工神经网络也是一样的,网络越复杂它就越强大,所以我们需要深度神经网络。这里的深度是指层数多,层数越多那么构造的神经网络就越复杂。网络构建好了后,我们只需要负责不停地将训练数据输入到神经网络中,它内部就会自己不停地发生变化不停地学习。打比方说我们想要训练一个深度神经网络来识别猫。我们只需要不停地将猫的图片输入到神经网络中去。训练成功后,我们任意拿来一张新的图片,它都能判断出里面是否有猫。

参考:

1.1.1 什么是神经网络 - 床长人工智能教程
https://aistudio.csdn.net/62e38a71cd38997446774c7d.html?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-8-81137911-blog-127875746.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-8-81137911-blog-127875746.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=11

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

神经元模型介绍 的相关文章

  • mongo 复制一个表的数据到另一个表中

    club表 id ObjectId 592e94fee820cc1813f0b9a2 id 1 name test club preload 表 id ObjectId 592e94fee820cc1813f07383 club id 1
  • 使用python爬取英雄联盟官方英雄皮肤图片

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 PS 如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可
  • EA使用教程

    文章目录 创建新工程 属性设置 导出图片到剪切板 时序图中取消消息后面自动生成的括号 在文本框中回车 取消流程图的背景渐变 导出更清晰图片 组合片段 设置字体和字体大小 官方教程地址 https sparxsystems cn enterp

随机推荐

  • 详解C#中的反射

    反射 Reflection 2008年01月02日 星期三 11 21 两个现实中的例子 1 B超 大家体检的时候大概都做过B超吧 B超可以透过肚皮探测到你内脏的生理情况 这是如何做到的呢 B超是B型超声波 它可以透过肚皮通过向你体内发射B
  • Web开发中的AJAX技术介绍

    读音 e j ks AJAX即 Asynchronous JavaScript and XML 异步JavaScript和XML AJAX并非缩写词 而是由Jesse James Gaiiett创造的名词 是指一种创建交互式网页应用的网页开
  • 软件大厂,环境检测思路和规避思路,安卓改机应该改什么数据和参数,安卓boot内核修改 环境检测对抗 部分参数解析

    前言 现在大厂的设备指纹层出不穷 但是想要确保稳定性和唯一性高精准其实也挺难的一件事 有的是通过设备信息比重进行的设备ID唯一值确认 比如A设备信息占比10 B设备信息占比20 当比重超过60 以上 设备指纹才会发生变化 这样的好处就是当你
  • Mybatis学习笔记--2:CRUD操作与动态代理

    增删改查对应Mapper配置文件里的标签 select update delete insert 1 封装MyBatisUtils工具类 public class MybatisUtils public static final SqlSe
  • const、指针、引用的关系

    const 指针 引用的关系 const 与指针 const 与引用 const 与指针 引用 const 与指针 我们写一段代码来探究以下 int a 10 b 20 int p1 a p1 100 p1 b const int p2 a
  • 基本类型、包装类型与自动拆装箱

    Java的8种数据类型 Java 的每个基本类型都对应了一个包装类型 比如说 int 的包装类型为 Integer double 的包装类型为 Double 基本类型 包装类 boolean Boolean byte Byte short
  • 最适合练手的第一个Qt小程序,所有代码均可复制

    文章目录 前言 一 最适合新手的第一个Qt小程序 1 1 按钮的创建 1 2 对象模型 对象树 二 Qt窗口坐标体系 三 信号和槽机制 3 1 系统自带的信号和槽 3 2 自定义信号和槽 3 3 信号槽的扩展 3 4 Qt4版本的信号和槽写
  • JWT Token 的构成以及生成过程

    一 jwt token 是什么样子的 JWT是由三段信息构成的 将这三段信息文本用点链接一起就构成了Jwt字符串 JWT字符串 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 eyJzdWIiOiIxMjM0NTY
  • 06-1_Qt 5.9 C++开发指南_对话框与多窗体设计_标准对话框

    在一个完整的应用程序设计中 不可避免地会涉及多个窗体 对话框的设计和调用 如何设计和调用这些对话框和窗体是搞清楚一个庞大的应用程序设计的基础 本章将介绍对话框和多窗体设计 调用方式 数据传递等问题 主要包括以下几点 Qt 提供的标准对话框的
  • 给定一个非负整数数组,你最初位于数组的第一个位置... --错误方法纠正

    力扣55题 闹心 太闹心了 上周空闲时间写了一个自动钻取的 结果发现把0搞进去之后各种问题 房子越补漏雨越大 刚才琢磨了一下 真的是方向错了 先来聊聊之前的方案 以此数组为例 int nums 2 1 1 1 3 lastIndex num
  • 最新deepin-wine下微信的安装方法,非常简单 Ubuntu linux可用

    deepin wine阿里云镜像访问异常 可以使用以下脚本安装最新版deepin wine 微信最新版本 deepin com wechat 2 6 8 65deepin0 i386 deb 下载网址 Index of deepin poo
  • 数据结构与算法目录

    前言 数据结构与算法系列先看这里 有助于你更好地获取内容 首先明白一个问题 为什么要研究数据结构 这是因为所有的程序本质上是对数据进行处理 如何高效的处理数据 这依赖于数据本身的结构 如类型 整型 浮点型等 维数 是否为复杂类型 结构体类型
  • 常用Python PDF库对比

    2022 06 07修订 新增第三方库borb 初稿写于2021 01 02 彼时borb才发布1 0版没几个月 两年不到 Github上已近三千赞 PDF Portable Document Format 是一种便携文档格式 便于跨操作系
  • 故障树

    故障树 时间20210105 可以根据这道题目学习故障树 假设系统的可靠性逻辑框图如下所示 故障树的定义 用以表明产品哪些组成部分的故障或外界事件或它们的组合将导致产品发生一种给定故障的逻辑图 故障树是一种逻辑因果关系图 构图的元素是事件和
  • Keil编译错误error: #20: identifier "XXXX" is undefined

    问题 在使用Keil编译工程时 经常遇到提示identifier XXXX 未定义的error信息 Build target canopen mx v1d61 compiling main c Src main c 104 warning
  • SMT贴片制造:发挥的作用和价值]

    SMT贴片制造作为一项重要的电子制造技术 发挥着举足轻重的作用 并提供了巨大的价值 首先 SMT贴片制造为电子产品的制造商提供了高效 准确和可靠的生产方式 相比于传统的手工焊接 SMT贴片制造具有更高的自动化和智能化程度 大幅提高了生产效率
  • day21网络编程(下)

    day21 网络编程 下 课程目标 学会网络编程开发的必备知识点 今日概要 OSI7 层模型 TCP和UDP 粘包 阻塞和非阻塞 IO多路复用 1 OSI 7层模型 OSI的7层模型对于大家来说可能不太好理解 所以我们通过一个案例来讲解 假
  • 安装【sonar】【sonarQube】免费社区版9.9

    文章目录 sonarQube 镜像容器 Linux 安装镜像 出现 Permission denied的异常 安装sonarQube 中文包 重启服务 代码上传到sonarQube扫描 java语言配置 配置 JS TS Php Go Py
  • gitee项目克隆到本地并运行

    首先电脑上要先安装node js和git 配置一下 在gitee上找到需要克隆到本地的项目 点击克隆 下载 在点击HTTPS下面的复制 github上也是类似的方式 把项目地址复制下来 在本机电脑 新建一个文件夹 命名任意 打开新建的文件夹
  • 神经元模型介绍

    一 深度学习的背景 目前 深度学习 Deep Learning 简称DL 在算法领域可谓是大红大紫 深度学习是机器学习领域中的一个新的研究方向 模仿生人类神经网络 学习样本数据的内在规律的一种方法 神经网络属于监督学习的过程 可以处理 回归