Datawhale组队学习_Task04:详读西瓜书+南瓜书第5章
第5章 神经网络
5.1 神经元模型
- 基本定义:神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。
- M-P神经元模型:

在此模型中,神经元接收到来自其他n个神经元传递过来的带有权重的信号,并将总输入值与神经元的阈值进行比较,处理后以产生神经元的输出。
通常使用挤压函数来作为激活函数,即如下图:

5.2 感知机与多层网络
- 感知机:两层神经元(输入层+输出层)组成,期中输入层接受外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。

- 感知机的逻辑运算:
假设对于阶跃函数y=\({f(\sum_{i}w_ix_i-\Theta)}\)- “与”(\({x_1\bigwedge x_2}\)):令\({w_1=w_2=1,\Theta=2}\),则y=\({f(1·x_1+1·x_2-2)}\),仅在\({x_1=x_2=1}\)时,y=1;
- “或”(\({x_1\bigvee x_2}\)):令\({w_1=w_2=1,\Theta=0.5}\),则y=\({f(1·x_1+1·x_2-0.5)}\),仅在\({x_1=1或x_2=1}\)时,y=1;
- “非”(\({\neg x_1}\)):令\({w_1=-0.6,w_2=0,\Theta=-0.5}\),则y=\({f(-0.6·x_1+0·x_2+0.5)}\),当\({x_1=1}\)时,y=0;当\({x_1=0}\)时,y=1;
- 对于一般常见神经网络的缺陷:
由于感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力较为有限。若学习两类模式时线性可分的,则一定存在一个线性超平面将二者分开;否则若感知机在学习过程中发生振荡,无法求合适解。
处理非线性可分问题时,通常考虑使用多层功能神经元。
多层前馈神经网络:每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。
5.3 误差逆传播算法
- BP算法的主要工作流程:先将输入样例提供给输入层神经元,然后逐层将信号前传,知道产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和与之进行调整,循环整个迭代过程,直到某些条件停止。
- BP算法的目标是要最小化训练集D上的积累误差
伪代码如下所示:
#输入:训练集D={(${x_k,y_k}^m_{k=1}$)};
#学习率${\eta}$
过程:
1.在(0,1)范围内随机初始化网络中所有连接权和阈值
2.repeat
3. for all(x_k,y_k)∈D do
4. 根据当前参数计算当前样本的输出${\hat y_k}$;
5. 计算出输出层神经元的梯度项g_j;
6. 计算出隐层神经元的梯度项e_h;
7. 更新连接权与阈值;
8. end for
9. until 达到停止条件
#输出:连接权与阈值确定的多层前馈神经网络
具体的公式推导内容在纸上,由于符号太多不想敲上来了,这里贴一个参照的博客 [神经网络值反向传播算法公式推导](https://www.cnblogs.com/jsfantasy/p/12177275.html)
Datawhale组队学习_Task04:详读西瓜书+南瓜书第5章的更多相关文章
- Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文
前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...
- iPhone应用开发 UITableView学习点滴详解
iPhone应用开发 UITableView学习点滴详解是本文要介绍的内容,内容不多,主要是以代码实现UITableView的学习点滴,我们来看内容. -.建立 UITableView DataTab ...
- android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升
android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升
- Eclipse IDE for C/C++ Developers和MinGW安装配置C/C++开发学习环境详解
Eclipse IDE for C/C++ Developers和MinGW安装配置C/C++开发学习环境详解 操作系统:Windows 7 JDK版本:1.6.0_33 Eclipse版本:Juno ...
- 《C++ Primer》学习总结;兼论如何使用'书'这种帮助性资料
6.25~ 6.27,用了3天翻了一遍<C++ Primer>. ▶书的 固有坏处 一句话: 代码比 文字描述 好看多了.————> 直接看习题部分/ 看demo就行了 看文字在描述 ...
- 《C++ Primer Plus》啃书计 第1~4章
<C++ Primer Plus>啃书计 第1~4章 第一章 预备知识 1.1-1.3略过 1.4 程序创建的技巧 1. cfront,它将C++源代码翻译成C源代码,然后再使用标准C编译 ...
- JAVA学习之Ecplise IDE 使用技巧(2)第二章:键盘小快手,代码辅助
上一篇:JAVA学习之Ecplise IDE 使用技巧(1)第一章:我的地盘我做主,工作空间 第二章:键盘小快手,代码辅助 内容包括: 第一:显示行号 如何设置行号:Ecplice菜单Windows& ...
- noj 2033 一页书的书 [ dp + 组合数 ]
传送门 一页书的书 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 53 测试通过 : 1 ...
- 《如何正确学习JavaScript》读后小结
在segmentfault上读的一篇学习JavaScript路线的文章,做个小结. 一.简介.数据类型.表达式和操作符 (1)<JavaScript权威指南>前言1-2章&< ...
- Gradle学习系列之三——读懂Gradle语法
在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...
随机推荐
- MySQL数据库中配置文件 read_only 参数的有关说明
1.对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置: 将MySQL设置为只读状态的命令(可以登录mysql执行下面命令, 或者在my.cnf配置文件中添加& ...
- MongoDB 的用户和角色权限
副本和分片集群的安全设置参考这个:高级:https://files.cnblogs.com/files/sanduzxcvbnm/mongodb_advance.pdf 默认情况下,MongoDB实例 ...
- 2. 在 Kubernetes 上安装 Gitlab
总结: 所需要的三个yaml文件的下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/k8s-gitlab.zip Gitlab官方提供了 Helm 的 ...
- P3008 [USACO11JAN]Roads and Planes G (最短路+拓扑排序)
该最短路可不同于平时简单的最短路模板. 这道题一看就知道用SPFA,但是众所周知,USACO要卡spfa,所以要用更快的算法. 单向边不构成环,双向边都是非负的,所以可以将图分成若干个连通块(内部只有 ...
- BinaryBombs(二进制炸弹实验)
实验介绍 使用所学知识拆除Binary Bombs来增强对程序的机器级表示.汇编语言.调试器和逆向工程等理解. Binary Bombs(二进制炸弹)是一个可执行程序,是C语言编译链接成的,包含pha ...
- 使用docker-compose安装Prometheus
Prometheus监控 一. 总览 主要组件: Prometheus server: 用于收集和存储时间序列数据 exporter: 客户端生成监控指标 Alertmanager: 处理警报 Gra ...
- ARC144 D - AND OR Equation
ARC144 D - AND OR Equation Solution 首先可以猜测和答案仅和每一个二进制位以及\(f(0)\)有关系,不妨把按位\(\operatorname{AND}\)和按位\( ...
- 前端性能优化——首屏时间&&白屏时间
1.首屏时间概念 首屏时间是指用户打开一个网站时,直到浏览器首页面内容渲染完成的时间. 2.白屏时间概念 白屏时间即是,浏览器开始显示内容的时间,所以我们一般认为解析完<head>的时刻, ...
- 【原创】All in One i.MXRT1050/RT1020 SPI Flash Algorithm for J-Flash
2020年,这个给大家一种很漫长的恍惚感的一年,终于是过去了.这一年我们很多新的人生第一次就这么被发生了,第一次居家办公这么长时间(很多人肥膘都长了不少,我却瘦了2斤,不知是工作太积极了还是被家里小怪 ...
- node.js:《接口实现文件的上传和下载》
使用node.js写上传文件和下载文件的接口 上传接口: 开始写接口前,我们先安装一个上传文件的插件:npm install multer 安装成功在package.json或package-lock ...