第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章的更多相关文章

  1. Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文

    前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...

  2. iPhone应用开发 UITableView学习点滴详解

    iPhone应用开发 UITableView学习点滴详解是本文要介绍的内容,内容不多,主要是以代码实现UITableView的学习点滴,我们来看内容. -.建立 UITableView DataTab ...

  3. android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

    android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

  4. 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 ...

  5. 《C++ Primer》学习总结;兼论如何使用'书'这种帮助性资料

    6.25~ 6.27,用了3天翻了一遍<C++ Primer>. ▶书的 固有坏处 一句话: 代码比 文字描述 好看多了.————> 直接看习题部分/ 看demo就行了 看文字在描述 ...

  6. 《C++ Primer Plus》啃书计 第1~4章

    <C++ Primer Plus>啃书计 第1~4章 第一章 预备知识 1.1-1.3略过 1.4 程序创建的技巧 1. cfront,它将C++源代码翻译成C源代码,然后再使用标准C编译 ...

  7. JAVA学习之Ecplise IDE 使用技巧(2)第二章:键盘小快手,代码辅助

    上一篇:JAVA学习之Ecplise IDE 使用技巧(1)第一章:我的地盘我做主,工作空间 第二章:键盘小快手,代码辅助 内容包括: 第一:显示行号 如何设置行号:Ecplice菜单Windows& ...

  8. noj 2033 一页书的书 [ dp + 组合数 ]

    传送门 一页书的书 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 53            测试通过 : 1 ...

  9. 《如何正确学习JavaScript》读后小结

    在segmentfault上读的一篇学习JavaScript路线的文章,做个小结. 一.简介.数据类型.表达式和操作符 (1)<JavaScript权威指南>前言1-2章&< ...

  10. Gradle学习系列之三——读懂Gradle语法

    在本系列的上篇文章中,我们讲到了创建Task的多种方法,在本篇文章中,我们将学习如何读懂Gradle. 请通过以下方式下载本系列文章的Github示例代码: git clone https://git ...

随机推荐

  1. .Net 不受 EAR 的约束

    NPUlrk :https://github.com/NPUlrk  同学在 dotnet/runtime 仓库提出了一共问题: https://github.com/dotnet/runtime/d ...

  2. Docker和containerd在容器日志及相关参数配置方面的一些差异

  3. ProxySQL 审计

    1.审计日志 ProxySQL 2.0.5 引入了审计日志.此功能允许跟踪某些连接活动.要启用此功能,需要配置变量 mysql-auditlog_filename,也就是审计日志的文件名.此变量的默认 ...

  4. 讲讲 tcp_tw_recycle,tcp_tw_reuse

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485332&idx=1&sn=59823ce1 ...

  5. prometheus告警规则模板:MySQL,nginx,node

    rules_up.yml groups: - name: up rules: - alert: mysql expr: up{instance="db1",job="my ...

  6. kibana知识点

    1.Kibana 有 Linux.Darwin 和 Windows 版本的安装包.由于 Kibana 基于 Node.js 运行,我们在这些平台上包含了一些必要的 Node.js 二进制文件.Kiba ...

  7. Visual Studio 2022 开发 STM32 单片机 - 环境搭建点亮LED灯

    安装VS2022社区版软件 选择基础的功能就好 安装VisualGDB软件(CSDN资源) 按照提示一步一步安装就好 VisualGDB激活软件(CSDN资源) 将如下软件放在VisualGDB的安装 ...

  8. STM32F10x SPL V3.6.2 集成 FreeRTOS v202112

    STM32F10x SPL 集成 FreeRTOS 在整理 GCC Arm 工具链的Bluepill代码示例, 常用外设都差不多了, 接下来是 FreeRTOS, 网上查到的基本上都是基于旧版本的集成 ...

  9. Spring笔记三

    Spring-03 1. AOP 1.1 概念 ​ AOP为Aspect Oriented Programming的缩写,意为:面向切面编程.他是一种可以在不修改原来的核心代码的情况下给程序动态统一进 ...

  10. HQL中出现XXX is not mapped的错误

    我的代码如下 @Test public void testCollection(){ String hql = "from Order where orderItems is not emp ...