写完才感觉自己可能用了很多术语= =大家听不懂就问就行,我之前可能写过但是很杂,我自己都感觉写的太乱了= =。
笔记参考:方巍的Python数据挖掘与机器学习实战

标题

  • 1、基础概念
  • 2、结构特点
  • 3、网络模型
  • 4、人工神经网络简介
    • 4.1、神经元
    • 4.2、单层神经网络
    • 4.3、双层神经网络
    • 4.4、多层神经网络
  • 5、Bp神经网络
  • 6、实战

1、基础概念

人工神经网络的概念:其从信息处理角度对人脑神经元网络进行抽象,构建某种简单的模型,按不同的连接方式组成不同的网络。在工程与学术界我们通常把人工神经网络简称为神经网络或类神经网络。

神经网络的概念:是一种运算模型,由大量的节点(也可以说神经元)之间连接构成。每个节点代表一种特定的输出函数,称为激励函数或者激活函数。每两个节点间的连接都代表一个对于通过连接信号的加权值,称之为权重。这相当于人神经的记忆(就是仿生),神经网络的输出则根据网络的连接方式、权重值和激活函数的不同而不同。而网络本身通常都是对自然界某种算法或函数的逼近,也可能是一种逻辑策略的表达。简单来说,人工神经网络搭建利用函数拟合的性质体现自然规律。

2、结构特点

人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。具有四个特征。

  • 非线性 :人工神经元处于激活或抑制两种不同的状态,这种行为在数学上表现为一种非线性关系。
  • 非局限性:一个神经网络一般由很多神经元组成。一个系统的整体行为不仅取决于单个神经元的特征,而且由单元之间相互作用,相互连接组成,通过单元之间的大量连接模拟大脑的非局限性。
  • 非常定性:处理信息的时候,信息可以有各种变化,非线性动力系统本身也在变化,通常用迭代描述这个动力系统的过程。(可以用EM去理解)
  • 非凸性:一个系统的演化方向,在一定条件下取决于某个特定的状态函数。

3、网络模型

目前有很多种神经网络模型,这里说下四种

  • 前向型:网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。
  • 反馈型:网络内神经元有反馈,可以用一个无向的完备图表示。
  • 随机型:具有随机性质的模拟退火(SA)算法解决了优化计算过程陷于局限性极小的问题。
  • 竞争型:自组织神经网络模拟人脑行为,根据过去经验自动适应周围的环境变化,由于无监督通常采用竞争原则进行网络学习和自动聚类。

4、人工神经网络简介

主要说一下传统神经网络的基本组成部分和前向传播等内容。

4.1、神经元

高中生物上学过(对文科生抱歉= =这个俺真没法讲明白),一个神经元有多个树突主要用来接受传入信息,轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这就是突触。

图片来自:http://keertech.blog.ifeng.com/article/29465278.html

神经元模型是一个包含输入、输出与计算功能的模型。具体可以类比人体的神经元。神经元可以使用任何标准函数来处理数据,这些函数就叫激活函数(需要这些函数磕到而且光滑)。一个个神经元连成一个神经网络。

4.2、单层神经网络


这里神经元是由a1、a2、a3、a4作为输入,w1、w2、w3、w4是权重,输入节点后经过激活节点,输出z,中间那一个激活节点的函数就是激活函数。
我们来看一下sigmoid函数:
f(z) = 1 / (1 + exp(-z))

对于上图: g(WT*a) = z
W就是[w1,w2,w3,w4]
a是[a1,a2,a3,a4]

4.3、双层神经网络

单层神经元无法解决异或问题,所以我们可以加一给计算层,而且还具有很好的非线性分类效果,但是两层神经网络的计算是个问题。但是这时候我们就可以用BP来解决两层神经网络所需要的复杂计算量问题。两层神经网络除了包含输入层和输出层外还增加了一个中间层,这时候中间层和输出层都是计算层。

以上就是双层神经网络的格式,中间那个就是中间层。

中间层的节点是默认存在的,它本质上是一个只含有存储功能,且存储值永远为1的单元。在神经网络的每个层次中,除了输出层,都会有一个偏置单元。也就是咱们常说的y = wx + b的b。
所以,每一次神经元的计算可以写成如下:
g(W*a + b) = z

与单层神经网络不同。两层神经网络可以无限逼近任意连续函数。也就是说,面对复杂的非线性分类任务,两层神经网络可以很好的分类。

4.4、多层神经网络

既然有单层神经网络,双层神经网络,现在也存在多层神经网络。Hinton在2006年提出深度信念网络与传统神经网络的不同点在于,多层神经网络有一个预训练的过程,方便神经网络的权值找到一个最优解,之后不断微调,对整个网络进行训练。大幅度减少了寻变脸多层神经网络的时间。
也是一层层进行计算。有点像向前不断推进的感觉,这个过程也叫正向传播。
多层神经网络有什么好处?
能够使神经网络有更强的表现函数的能力。(比如第一层学到的是点的特征,第二层就是学到的是由点组成的线的特征,第三层就是由线组成的面的特征)

5、Bp神经网络

Bp神经网络是一种非线性多层前向反馈网络,一般分三层,分别是输入层、隐含层和输出层,这三层中的每一层只影响下一层的神经元状态,若预期预测结果得不到期望输出,网络则进行反向传播。
主要思路:输入数据,利用反向传播算法不断调整参数,根据最终调整的参数建立模型。
下面是Bp神经网络拓扑结构,来源于百度百科:

图中输入值为X1,X2…Xn,输出值为Y1,Y2,…,Ym,权值为V、W.由图可以看出神经网络是从n个自变量到m个因变量的映射过程。
具体步骤:

  1. 初始化网络,通过输入样本来确定输入的维数(n),输出的维数(m)。初始化输入层、隐含层和输出层神经元之间的权值V、W,初始化隐含层和输出阈值,并设置学习率和激活函数。

  2. 计算隐含层输出:
    Hj = f(Σni=1 шijxi+aj),j = 1,2,…,I
    其中X表示输入变量,шij、aj表示输入层和隐含层间的连接权值及隐含层阈值,隐含层输出为H,I是隐含层节点数,f为隐含层激活函数。

  3. 计算输出层:
    Yk = ΣIj=1Hj шjk+bk,k = 1,2…,m
    其中шjkb分别是连接权值和阈值。

  4. 计算误差,误差e的计算为(也就是验证集的作用)
    ek = Yk - Ok,k=1,2,…m
    Yk是预测值,Ok也就是实际期望的值。

  5. 更新权值和阈值,通过预测误差e对网络连接权值更新。
    шij = шij+лHj(1-Hj)xiΣmk=1шjkek,i=1,2,…,n;j=1,2,…,I
    шjkjk+лHjek,j=1,2…,I;k=1,2,…m
    aj = aj +лHj(1-Hjmk=1шjkek,j=1,2,…,I
    bk = bk+ лek,k=1,2,…m
    其中л是学习率

  6. 判断迭代是否可以结束,如果没有结束,就返回第(2)步,直到算法结束。

ps:前三步是信号前馈过程,第(4)步到第(7)步是神经网络反向更新参数的过程。

6、实战

#构建一个结构为[10,15,1]的BP神经网络
model = tf.keras.Sequential([tf.keras.layers.Dense(15,activation='relu',input_shape=(10,)),tf.keras.layers.Dense(1)])
model.summary()  #显示网络结构
model.compile(optimizer='SGD',loss='mse')  #定义优化方法为随机梯度下降,损失函数为mse
#x->训练集,y——>bia标签,epochs=10000训练的次数,validation_data=(test_x,test_y)——>验证集
history = model.fit(x,y,epochs=10000,validation_data=(test_x,test_y))

机器学习笔记(四)BP神经网络模型相关推荐

  1. bp神经网络预测模型例题,bp神经网络模型是什么

    1.BP神经网络中隐藏层节点个数怎么确定最佳? 1.神经网络算法隐含层的选取 1.1 构造法 首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误 ...

  2. bp神经网络模型拓扑结构,bp神经网络的建模步骤

    如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...

  3. bp神经网络预测模型优点,什么是BP神经网络模型?

    灰色理论预测和BP神经网络预测哪个难 谷歌人工智能写作项目:神经网络伪原创 初学者对BP神经网络的疑惑 伤寒.副伤寒流行预测模型(BP神经网络)的建立 由于目前研究的各种数学模型或多或少存在使用条件的 ...

  4. bp神经网络模型拓扑结构,bp神经网络模型是什么

    神经网络BP模型 一.BP模型概述误差逆传播(ErrorBack-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型. PallWerbas博士于1974年在他 ...

  5. bp神经网络的应用案例,bp神经网络模型的建立

    BP人工神经网络 人工神经网络(artificialneuralnetwork,ANN)指由大量与自然神经系统相类似的神经元联结而成的网络,是用工程技术手段模拟生物网络结构特征和功能特征的一类人工系统 ...

  6. BP神经网络模型用什么软件,bp神经网络数学模型

    1.如何建立bp神经网络预测 模型 建立BP神经网络预测 模型,可按下列步骤进行: 1.提供原始数据 2.训练数据预测数据提取及归一化 3.BP网络训练 4.BP网络预测 5.结果分析 现用一个实际的 ...

  7. bp神经网络的拓扑结构,bp神经网络模型结构图

    试画出BP神经网络结构输入层3节点,隐层5节点,输出层2节点 BP(BackPropagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播 ...

  8. matlab 动态加权综合评价_动态加权综合评价、灰色关联度分析、BP神经网络模型汇总...

    大气污染预报问题 摘要 本文针对大气污染问题, 采用动态加权综合评价方法建立了合理的空气质量评价模 型,同时,采用灰色关联度分析方法和 BP 神经网络模型较好地研究了空气质量和气象 参数之间的关系. ...

  9. bp神经网络模型结构图,bp神经网络拓扑结构图

    试画出BP神经网络结构输入层3节点,隐层5节点,输出层2节点 BP(BackPropagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播 ...

  10. 用matlab自己搭建bp神经网络,怎样在matlab里建立一个BP神经网络模型?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用以下的数据怎样在matlab里建立一个BP神经网络模型?求高手帮忙!!最好是有详细步骤以及代码 年份 WTI(美元/桶) 2007-1 54.26 20 ...

最新文章

  1. 【开源项目】之智能鞋柜(STM32)
  2. Warning: Illegal string offset ‘account‘ in 解决方法
  3. TreeView查获节点并选中节点
  4. python3.7.3安装selenium2library_python+selenium自动化的准备 2:安装python 3.7.4 和selenium 2.53.1...
  5. 什么是activemq_什么是ActiveMQ?
  6. 【C++】C++中的迭代器
  7. 交互设计实用指南系列(9)— 一次点击
  8. 面向过程编程与面向对象编程
  9. Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  10. [软件启动就报错退出]的问题解决
  11. 进程间通信 IPC interprocess communication
  12. 点餐系统小程序源码|小程序点餐系统
  13. ADS学习记录--元器件库列表
  14. 解决LaTeX中文表格单行文本太长导致水平溢出,表格内长文本换行
  15. 计算机图书封面也疯狂
  16. Dialog和DialogActivity
  17. OLTP和OLAT的区别
  18. linux启动优化 内核裁剪详细说明(2)
  19. mysql非安装_mysql非安装版的装配
  20. Android开发常用网站推荐以及代码库推荐

热门文章

  1. Siemens 软件下载
  2. SVN server安装步骤
  3. 连接打印机错误0x000000bcb解决方法
  4. pyhive、pyspark配置
  5. SVN:本地项目与SVN项目进行关联
  6. win10多合一原版系统_win10多合一原版系统
  7. PX4姿态解算磁偏补偿
  8. python毕业设计作品基于django框架的鲜花水果商城毕设成品(6)开题答辩PPT
  9. ADS入门,使用ADS创建和仿真一个简单的线路
  10. macOS 如何设置壁纸