西瓜书之神经网络

news2024/11/18 15:32:51

一,神经元模型

所谓神经网络

目前用得最广泛的一个定义是“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统真实世界物体所做出的交互反应”。

M-P神经元

M-P神经元:接收n个输入(通常是来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值θ进行比较(作减法),最后经过激活函数f(模拟“抑制"和“激活”)处理得到输出(通常是给下一个神经元)

神经元的基本形式:

1.png

 

 西瓜的一系列特征通过线性组合相加

 通过上述两种激活函数(activation function)——挤压函数(非线性模型)

来产生相应地输出。

  • 与线性分类十分相似,神经元模型最理想的激活函数也是阶跃函数,
  • 即将神经元输入值与阈值的差值映射为输出值1或0,若差值大于零输出1,对应兴奋;
  • 若差值小于零则输出0,对应抑制。

但阶跃函数不连续,不光滑,故在M-P神经元模型中,也采用Sigmoid函数来近似,

 Sigmoid函数将较大范围内变化的输入值挤压到 (0,1) 输出值范围内,所以也称为挤压函数(squashing function)。

 将多个神经元按一定的层次结构连接起来,就得到了神经网络

它是一种包含多个参数的模型,比方说10个神经元两两连接,则有100个参数需要学习(每个神经元有9个连接权以及1个阈值),若将每个神经元都看作一个函数,则整个神经网络就是由这些函数相互嵌套而成。

 

二,感知机与多层网络

感知机(Perceptron)是由两层神经元组成的一个简单模型,但只有输出层是M-P神经元

即只有输出层神经元进行激活函数处理,也称为功能神经元;

输入层只是接受外界信号(样本属性)并传递给输出层(输入层的神经元个数等于样本的属性数目),而没有激活函数。

激活函数为sgn (阶跃函数)的神经元

 

 

 感知机的几何解释:

感知机学习策略

  • 假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练集正实例点和负实 例点完全正确分开的超平面。
  • 为了找出这样的超平面S,即确定感知机模型参数w和b,需要确定一个学习策略, 即定义损失函数并将损失函数极小化。
  • 损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是参数w和b的连续可导函数,不易优化,所以感知机采用的损失函数为误分类点到超平面的总距离。

 

可以把(bias)并到里面

 求解

已知损失函数的梯度:

 

 

 前馈网络:

由于像感知机这种单个神经元分类能力有限, 只能分类线性可分的数据集,

对于线性不可分的数据集则无能为力, 但是多个神经元构成的神经网络能够分类线性不可分的数据集(西瓜书上异或问题的那个例子),且有理论证明(通用近似定理):只需一个包含足够多神经元的隐层, 多层前馈网络(最经典的神经网络之一)就能以任意精度逼近任意复杂度的连续函数。
 

  神经网络既能做回归, 也能做分类, 而且不需要复杂的特征工程

要解决非线性可分问题,需考虑使用多层功能神经元.例如下图中这个简单的两层感知机就能解决异或问题.在下图a中,输出层与输入层之间的一层神经元,被称为隐层或隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元.

 

 常见的神经网络是形如下图所示的层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接.这样的神经网络结构通常称为“多层前馈神经网络”

 其中输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元."连接权"以及每个功能神经元的阈值;神经网络“学”到的东西,蕴涵在连接权与阈值中.

三,误差逆传播算法(BP)icon-default.png?t=N6B9https://blog.csdn.net/NickHan_cs/article/details/112295451?ops_request_misc=&request_id=&biz_id=102&utm_term=%E8%AF%AF%E5%B7%AE%E9%80%86%E4%BC%A0%E6%92%AD%E8%AE%A1%E7%AE%97&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-0-112295451.268^v1^control&spm=1018.2226.3001.4450

 

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

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

相关文章

存算分离实践:构建轻量、云中立的大数据平台

今天我们将分享社区用户多点 DMALL 的案例。多点 DMALL 是亚洲领先的全渠道数字零售解决方案服务商,目前已与 380 家零售企业达成合作,覆盖 6 个国家和地区。 面对 B 端客户日益增长的企业数据,存算一体的架构显得力不从心。计算资源冗余浪费…

CAS问题汇总

CAS的执行流程? CAS比较比替换的大致流程是这样的: 首先它有三个参数 : V 内存值 A 预期的旧值 B 新值比较V的值与A的值是否相等如果相等的话,则将V的值替换成B,否则就提示修改失败。 一般正常情况的话就是没有其他线程修改内存…

解决内网GitLab 社区版 15.11.13项目拉取失败

问题描述 GitLab 社区版 发布不久,搭建在内网拉取项目报错,可能提示 unable to access https://github.comxxxxxxxxxxx: Failed to connect to xxxxxxxxxxxxxGit clone error - Invalid argument error:14077438:SSL routines:SSL23_GET_S 15.11.13ht…

工业互联网产业联盟发布《2023可信工业数据流通应用案例集》

导读 随着新一代信息技术与制造业的深度融合发展,全球工业数据应用已经进入纵深发展的新阶段,数据作为新型生产要素和重要战略资源,正在制造业数字化转型过程中发挥出更大的作用。在这一进程中,工业数据的流通共享受到广泛关注。…

深入探索JavaEE单体架构、微服务架构与云原生架构

课程链接: 链接: https://pan.baidu.com/s/1xSI1ofwYXfqOchfwszCZnA?pwd4s99 提取码: 4s99 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 课程介绍: 🔍【00】模块零:开营直播&a…

LeetCode集

目录 1、算法1.1 排序1.1.1 冒泡排序1.1.1.1 简单交换排序1.1.1.2 冒泡排序 1.1.2 简单选择排序1.1.3 直接插入排序1.1.4 希尔排序1.1.5 堆排序1.1.6 归并排序1.1.7 快速排序 1.1 位运算/二进制1.1.1 Java中的正数、负数1.1.2 Java中的位运算1.1.3 比特位计数1.1.4 2的幂1.1.5 …

【腾讯云Cloud Studio实战训练营】Cloud Studio + iPad,让代码之舞飞扬在指尖

Cloud Studio iPad,让代码之舞飞扬在指尖 妙手偶得,开启神奇之旅立即反馈,一切尽在掌握版本控制,简单易用MetaWork 协作,摸鱼变得不再轻松 ​一直以来,开发者大多都习惯在电脑端开发,而iPad只是…

Swift 基础

工程目录 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 点击下载代码:swift-01

windows 删除桌面右键菜单多余项

Step1:打开注册表 winr输入 regedit Step2:输入以下路径,跳转到相应位置 计算机\HKEY_CLASSES_ROOT\Directory\Background\shell 即可查看当前所有的右键选项,如下图所示 Step3:删除不需要的选项 直接删掉相应的文…

javaScript:数组检测

目录 一.前言 二.数组检测方法 1.every() 2.some() 3.filter() 一.前言 数组检测是指在编程中对数组进行验证和检查的过程。数组检测可以涉及以下方面: 确定数组的存在:在使用数…

NLP中的RNN、Seq2Seq与attention注意力机制

目录 NLP自然语言处理 的RNN、Seq2Seq与attention注意力机制 RNN循环神经网络 前馈网络入门 前馈网络 循环网络 多层感知器架构示例 循环神经网络的运作原理 展开 RNN seq2seq模型 Attention(注意力机制) 总结 引用 NLP自然语言处理 的RNN、…

Vite更新依赖缓存失败,强制更新依赖缓存

使用vitets开发一段时间了,感觉并不是想象中的好用,特别是出现些稀奇古怪的问题不好解决,比如下面这个问题 上午9:50:08 [vite] error while updating dependencies: Error: ENOENT: no such file or directory, open E:/workspace-dir/node…

2023年备受欢迎的5款团队任务管理工具

任务管理是团队协作的重要环节,选择合适的团队任务管理软件可以提高工作效率、明确责任分工、加强沟通协作。在互联网领域,有许多好用的团队任务管理软件可供选择。下面介绍5款比较知名的团队任务管理软件,并从互联网场景的相关背景内容上进行…

懵了,面试官问我Redis怎么测,直接凉了...

前言 有些朋友来问我,redis要怎么测试?首先我们需要知道,redis是什么?它能做什么? redis是一个key-value类型的高速存储数据库。 redis常被用做:缓存、队列、发布订阅等。 所以,“redis要怎么测…

JavaEE初阶:多线程 - Thread 类的基本用法

上次我们了解了多线程的五种创建方法,今天来学习Thread的基本用法。 目录 run和start Thread常见的构造方法 Thread的几个常见属性 后台线程 是否存活 线程终止 1.使用标志位 2.使用Thread自带的标志 等待线程 run和start 首先需要理解Thread的run和star…

小程序商品如何设置指定的配送规则

小程序配送规则包括商品是否包邮、包邮金额、起总金额、计费方式、配送区域等,这些规则直接影响到商家的运营和用户的购物体验。下面将详细介绍如何给商品设置配送规则。 1. 添加配送规则。商家在配送设置->配送规则,添加配送规则。配送规则支持的功…

openpnp - 做一个抛料盒

文章目录 openpnp - 做一个抛料盒概述效果图零件 - 抛料盒主体零件 - 磁铁仓盖板END openpnp - 做一个抛料盒 概述 8mm散料飞达做回来了, 上面用的长方形磁铁(4x6x10mm)透过0.8mm的3D打印薄壁, 和固定铁板的吸力很大, 用磁力固定的非常好. 正好缺一个抛料盒, 就按照散料飞达的…

Vue中拖动排序功能,引入SortableJs,前端拖动排序。

背景: 作为一名前端开发人员,在工作中难免会遇到拖拽功能,分享一个github上一个不错的拖拽js库,能满足我们在项目开发中的需要,支持Vue和React,下面是我在vue后台项目中中使用SortableJS的使用详细流程&am…

现代C++:使用 shared_from_this 防止 this 提前被释放

首先概括一下shared_from_this的作用:可以在类的成员函数中直接通过this得到指向当前所在对象的shared_ptr的智能指针,具体操作如下。 使用方法 设需要提供shared_from_this方法的类为C0定义为类,首先需要将C0定义为 std::enable_shared_fr…