常用模型:BP神经网络,RBF神经网络

一、神经元模型 |  连接权,阈值,激活函数

1. 输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,

然后通过“激活函数”处理以产生神经元的输出。#“激活函数”对应于图中f(.)

2. 激活函数理想中是阶跃函数,实际中常用连续可微的Sigmoid函数代替——

#神经元等价于“对数回归”模型

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

从数学角度看,神经网络是

二、感知机与多层网络 |  如何解决非线性可分

1. 感知机由两层神经元组成(即不含隐层,只有输入、输出层)

2. 学习过程中,权重这样调整:

η∈(0, 1)称为学习率,控制每次更新的步长

3. 可以证明,样本若是线性可分的,则感知机的学习过程一定会收敛而求得适当的权重ω

否则感知机学习过程将会发生振荡,不能求得合适解。

4. 解决非线性可分问题,需使用多层功能神经元,即含有“隐含层”神经元的网络

神经元之间不存在同层连接,也不存在跨层连接

这种结构称为“多层前馈神经网络”,前馈不是指信号不能向后传而是指网络拓扑结构上不存在环或回路;

隐层与输出层包含功能神经元,图(a)通常称为“两层网络”

神经网络“学”到的东西,蕴涵在连接权重与阈值中。

#

SVM看成一种特殊的神经元模型:

  1. L-SVM本质上跟单神经元(即逻辑回归)模型的最大差别,只是代价函数的不同,所以可以将SVM也理解成一种神经元,只不过它的激活函数不是sigmoid函数,而是SVM独有的一种激活函数的定义方法。
  2. K-SVM只是比起L-SVM多了一个负责用于非线性变换的核函数,这个跟神经网络的隐层的思想也是一脉相承的。所以K-SVM实际上是两层的神经元网络结构:第一层负责非线性变换,第二层负责回归。
  3. 《基于核函数的SVM机与三层前向神经网络的关系》一文中,认为这两者从表达性来说是等价的。(注:这里的“三层前向神经网络”实际上是带一个隐层的神经网络,说是三层是因为它把网络的输入也看成一个层。

三、误差反向传播算法

BP神经网路,BP算法训练的多层前馈神经网络

1. 算法:通过输出误差(y'-y)反向去调整权重ωi(和阈值)

BP是一个迭代学习算法

1)学习率η控制迭代中的更新步长,太大容易振荡,太小收敛速度过慢;

2)BP算法基于梯度下降策略,对参数ω进行调整,对误差Ek,给定学习率η,有

3)迭代过程循环进行,知道达到某些停止条件,例如训练误差已达到一个很小的值;

2. 如何选择隐层神经元个数?

可以证明,只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。

如何选择隐层神经元个数仍是未决问题,实际中靠“试错法”

3.缓解BP网络过拟合的策略

1)“early stopping”,将数据分成训练集和验证集,训练集来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值

2)“正则化”:在误差目标函数中增加一个用于描述网络复杂度的部分

四、全局最小与局部极小

优化:对于神经网络在训练集上的误差E,调整连接权ω和阈值θ,使得E全局最小

但是基于梯度的搜索,在局部极小值停止

采用以下方法试图“跳出”局部极小,逼近全局最小——

1)以多组不同参宿初始化多个神经网络,训练后取误差最小的解作为最终参数

2)“模拟退火”技术:以逐渐缩小的概率接受“次优解”

3)使用随机梯度下降

4)遗传算法

五、其他常见神经网络

RBF:两层网络,使用径向基/高斯函数作为激活函数,能以任意精度逼近任意连续函数

#优点——非线性拟合能力强;局部逼近;具有唯一最佳逼近的特性,且无局部极小问题存在;收敛速度快;结构简单

RBF: 的神经元是一个以gaussian函数为核函数的神经元。

Radial basis function: .

          x 是自变量, b: 是bias,一般为固定常数,决定Gaussian函数的宽度。参数意义(对应于libsvm中的gamma)

          w:weight (权重),决定Gaussian 函数的中心点,是一个可变常数。

输出结果: 不再是非0 即1,而是一组很smooth的小数,在特定的weight处具有最大的函数值。

“感知域” —— receptive field.

一个神经元,只负责对某一块局部进行响应。速度当然快得多。

ART

SOM

级联相关网络:结构自适应,网络的结构也当作学习的目标之一

六、深度学习

1.模型:很深层的神经网络

2. 如何训练?——难以直接用经典的BP算法训练

解决:“无监督逐层训练”,也即“预训练+微调”;

或者“权共享”策略,典型是CNN

补充:

神经网络是一种很难解释的“黑箱模型”

【基础知识五】神经网络NN的更多相关文章

  1. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  2. Android学习之基础知识五—创建自定义控件

    下面是控件和布局的继承关系: 从上面我们看到: 1.所有控件都是直接或间接继承View,所有的布局都是直接或间接继承ViewGroup 2.View是Android中最基本的UI组件,各种组件其实就是 ...

  3. python基础知识五

    数据结构基本上就是---它们可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python中有三种内建的数据结构---列表.元祖和字典. 我们将会学习如何使用它们,以及它们如何使编程变得 ...

  4. Android学习之基础知识五—编写聊天界面

    第一步:在app/build.grandle添加RecyclerView依赖库 第二步:在activity_main.xml文件中编写主界面:聊天.发送框.发送按钮三个部分 第三步:编写Message ...

  5. Android学习之基础知识五—RecyclerView(滚动控件)

    RecyclerView可以说是增强版的ListView,不仅具有ListVIew的效果,还弥补许多ListView的不足. 一.RecyclerView的基本用法 与百分比布局类似,Recycler ...

  6. Android学习之基础知识五—ListView控件(最常用和最难用的控件)

    ListView控件允许用户通过上下滑动来将屏幕外的数据拉到屏幕内,把屏幕内的数据拉到屏幕外. 一.ListView的简单用法第一步:先创建一个ListViewTest项目,在activity_mia ...

  7. Android学习之基础知识五—Android常用的七大控件

    一.TextView控件:在界面上显示一段文本信息 先看XML代码和执行效果:         代码分析: 1.android:id属性,给当前控件定义了一个唯一的标识符 2.android:layo ...

  8. 数组、栈、堆(java基础知识五)

    1.数组概述.定义格式 * A:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引用数据类型. * B:数组定义格式 格式1:数据类型[ ...

  9. Go语言核心36讲(Go语言基础知识五)--学习笔记

    05 | 程序实体的那些事儿(中) 在前文中,我解释过代码块的含义.Go 语言的代码块是一层套一层的,就像大圆套小圆. 一个代码块可以有若干个子代码块:但对于每个代码块,最多只会有一个直接包含它的代码 ...

随机推荐

  1. Android 获取联系人和电话号码

    获取联系人和电话号码 private void queryContactPhoneNumber() { String[] cols = {ContactsContract.PhoneLookup.DI ...

  2. This App does not have access to your photos or videos in iOS 9

    出现这个总是由于info.plist文件内的CFBundleDisplayName没有值或者为空.把名称填进去就可以用了.

  3. SWIFT中函数返回值为Tuple

    在playgroundm内键入以下代码,求一个成绩数组内最大分值和最小分值 func maxminScore(scores:Array<Int>) -> (maxScore:Int, ...

  4. C语言基础:二维数组 分类: iOS学习 c语言基础 2015-06-10 21:42 16人阅读 评论(0) 收藏

    二维数组和一位数组类似. 定义: 数据类型 数组名[行][列]={{ },{ }....}; 定义时,一维(行)的长度可以省略,但是二维(列)的长度不可以省略.但是访问时,一定使用双下标. 二维数组的 ...

  5. 软考------(抽象类、接口) 策略设计模式(strategy) 应用

    某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征.需要模拟的飞机种类及其特征如表5-1所示. #include <iostream> #include ...

  6. ZOJ 3211dream city dp(效率优化)

    Dream City Time Limit: 1 Second      Memory Limit:32768 KB JAVAMAN is visiting Dream City and he see ...

  7. Linux操作系统网络配置

  8. Wireless Network 并查集

    An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...

  9. (转)C++ 容器及选用总结

    目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五 ...

  10. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件

    转载至:https://blog.csdn.net/wo541075754/article/details/75150267 一个标准的规则文件的格式为已“.drl”结尾的文本文件,因此可以通过记事本 ...