本文主要参考周志华老师的《机器学习》和Tom M. Mitchell老师的《机器学习》。

神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。

一、神经网络的基本要素

如下为一个简单的“M-P神经元模型”。在这个模型中,神经元接收来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。

其中常用的激活函数为sigmoid函数,tanh函数等。

把许多个如上类似的神经元按照一定的层次连接起来,就得到了神经网络。

感知机就是一个简单的神经网络。感知机的内容可以参考:https://zhuanlan.zhihu.com/p/47878242

但感知机不能解决异或等线性不可分问题,因此,可以通过改变神经网络的结构来解决更多问题。

一般来说,神经网络的结构如下图所示:

输入:训练样本,神经网络的结构

输出:训练后的神经网络(主要学习到的为神经网络的权重)

二、神经网络的模型、策略、算法

1、反向传播算法(BackPropagaton)

对于由一系列确定的单元互连形成的多层网络,反向传播算法可以用来学习这个网络的权重。它采用梯度下降方法试图最小化网络输出值和目标值之间的误差平方。

首先定义误差E

其中outputs是网络输出单元的集合,

是与训练样例d和第k个输出单元相关的输出值。

如下描述了一个适用于包含两层sigmoid单元的分层前馈网络,并且每一层的单元与前一层的所有单元相连(全连接)。

输入:

1) training_example中每一个训练样本的形式为

的序偶,其中
是网络输入值向量,
是目标输出值。

2)

是学习速率(例如0.05)。

3)

是网络输入的数量,
是隐藏层单元数,
是输出层单元数。

步骤:

1) 按照输入创建神经网络;

2) 初始化所有网络权值为小的随机值;

3) 在遇到终止条件前:

对于训练样本training_example中的每个

把输入沿网络前向传播:

1. 把实例

输入网络,并计算网络中每个单元u的输出

使误差沿网络反向传播:

2.对于网络的每个输出单元k,计算它的误差项

3.对于网络的每个隐藏单元h,计算它的误差项

4.更新每个网络权值

其中

反向传播的终止条件有很多:可以在迭代的次数到了一个固定值时停止,或者当在训练样例上的误差讲到某个阈值以下时,或者在分离的验证样例集合上的误差符合某个标准时。

2、局部极小值

反向传播算法实现了一种对可能的网络权值空间的梯度下降搜索,它迭代地减小训练样例的目标值和网络输出间的误差。因此对于多层网络,误差曲面可能含有多个不同的局部极小值,梯度下降可能陷入这些局部极小值中的任何一个。

为了缓解局部极小值问题,一些常见的启发式规则包括:

1)为梯度更新法则加一个冲量项。

2)使用随机的梯度下降而不是真正的梯度下降。

3)使用同样的数据训练多个网络,但用不同的随机权值初始化每个网络。如果不同的训练产生不同的局部最小值,那么对分离的验证集合性能最好的那个网络将被选中。或者保留所有的网络,并且把它们当做一个网络“委员会”,它们的输出是每个网络输出的平均值。

3、前馈网络的表征能力:

1)布尔函数:任何布尔函数都可以被具有两层单元的网络准确表示,尽管在最坏的情况下所需隐藏单元的数量随着网络输入数量的增加成指数级增长。

2)连续函数:每个有界的连续函数可以由一个两层的网络以任意小的误差逼近。这个理论适用于在隐藏层使用sigmoid单元、在输出层使用线性单元的网络,所需要的隐藏单元数量依赖于要逼近的函数。

3)任意函数:任意函数可以被一个有三层单元的网络以任意精度逼近。输出层使用线性单元,两个隐藏层使用sigmoid单元,每一层所需的单元数量一般不确定。

4、神经网络的过拟合:

由于神经网络强大的表征能力,很容易遭遇过拟合,训练误差持续降低,但测试误差却可能上升。有两种策略常用来缓解网络的过拟合。

第一种策略是早停:将数据分成训练集合验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。

第二种策略是正则化,其基本思想是在目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和。令

表示第k个训练样例上的误差,
表示连接权和阈值,则误差目标函数变为:

三、其他常用神经网络:

RBF(径向基函数)网络是一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。

典型的深度学习模型就是很深层的神经网络,深度学习模型通常由八九层甚至更多的隐层。

输入:训练集

学习率

过程:

1) 在(0,1)范围内随机初始化网络中所有连接权和阈值

2) repeat

3) for all

do

4) 根据当前参数和

径向基函数神经网络_神经网络相关推荐

  1. cnn神经网络_神经网络之CNN和RNN

    点击上方"认知计算与云安全",然后点击"关注"关键时刻,第一时间送达! 卷积神经网络(CNN)和递归神经网络(RNN)如今在ML中普遍使用.但是,它们通常用于完 ...

  2. 介绍神经网络_神经网络介绍

    介绍神经网络 It is time to set our goals and introduce the framework for creating a machine learning algor ...

  3. 神经网络与卷积神经网络_神经网络与人的思想

    神经网络与卷积神经网络 If you are familiar with the terms Artificial Intelligence, Machine Learning , Deep Lear ...

  4. acc定义代码 神经网络_神经网络的这几个坑,你都躲过了吗

    因为AI这两年的火爆,大家拿着锤子到处找钉子,锤子当然也砸到了我头上,有很多做业务的同事尝试通过AI的方法解决需要一些很复杂的业务逻辑算法,同时需要很多参数组合才能搞定的问题.但因为都是非科班出身也没 ...

  5. 曲线 神经网络_神经网络的数学基础-8(完结)

    详细内容请阅读<Deep Learning with Python> 中文翻译为:<Python深度学习> [美] 弗朗索瓦·肖莱 著 张亮 译 1.随机梯度下降 给定一个可微 ...

  6. gan神经网络_神经联觉:当艺术遇见GAN

    gan神经网络 Neural Synesthesia is an AI art project that aims to create new and unique audiovisual exper ...

  7. 径向基函数神经网络_基于RBF神经网络的网络安全态势感知预测研究

    点击上方"网络空间安全学术期刊"关注我们 基于RBF神经网络的网络安全态势 感知预测研究 钱建, 李思宇 摘要 针对网络安全态势的感知问题,结合巨龙山和者磨山风电场的运行情况,文章 ...

  8. 径向基函数神经网络_卷积神经网络的发展

    1968 Hubel & Wiesel 猫脑实验 Hubel和Wiesel干了一件事,他们将猫麻醉后,把电极插到其视觉神经上连接示波器,并给它们看不同的图像,观察脑电波的反应.他们发现猫看到鱼 ...

  9. python自带rbf函数吗_径向基函数(RBF)神经网络

    RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近.时间序列分析.数据分类.模式识别.信息处理.图像处理.系统 ...

最新文章

  1. 【算法数据结构Java实现】欧几里得算法
  2. 长短期记忆(LSTM)相关知识
  3. 分享一个基于jQuery,backbone.js和underscore.js的消息提示框架 - Backbone.Notifier
  4. GX works2 中的块的创建与使用方法
  5. java会跳出problem_docs/java/concurrent/ConcurrencyProblem.md · wt1814/wt-note - Gitee.com
  6. linux中板子烧写环境配置,3、在Linux下搭建51单片机的开发烧写环境(makefile版)...
  7. 缓冲池、顺序读取与随机读取
  8. Citespace、vosviewer 文献信息可视化分析
  9. python学习 - 52周存钱挑战
  10. 《Head First Java(第2版)中文版》辅导书
  11. Delphi程序破解技术概要
  12. IDEA - 官方定制主题,Dark Purple theme,Cyan Light Theme,Gray Theme
  13. 12 个华丽的 UI 组件,为您提供设计灵感✨
  14. Trinity(3)
  15. java excel 插入文件_Java 添加OLE对象到Excel文档
  16. LINUX从零开始——ENGINEER(云计算应用管理)——Day4-1 [配置Linux网络 、源码编译安装、自定义Yum仓库、日志管理]
  17. 探索 Android 网络优化方法
  18. 计算机二级c语言选择题及答案,全国计算机二级c语言练习题及答案
  19. 3月29日工作总结及次日计划
  20. 如何将风险应用加入白名单_我告诉你风险应用白名单怎么设置

热门文章

  1. 给二维码加密,防止内部资料外泄
  2. 用moment获取一年内指定周的起始时间和结束时间、用户所选时间和前端传参时间不一致问题
  3. SDN和NFV的主要区别
  4. Vue3 - Element plus 实现 “带分页“ 表格组件,实现跨页进行 “分页勾选“ 的多选功能(解决分页表格组件 <el-table> 跨页后已前勾选的行自动消失问题)详细示例解决教程
  5. vxworks,bootrom启动时由7s减少到1s
  6. pyecharts 主题:颜色渐变实例(线性渐变)
  7. C语言利用图的邻接矩阵的存储方式实现拓扑排序
  8. 卸载Autodesk系列之后电脑屏幕灰白怎么解决
  9. 感恩,生命的馈赠(2014年终总结)
  10. 5-ipv6基础知识之-域名解析dns