神经网络初探

神经网络初探

在本文中,我将初步介绍神经网络有关的概念和推导,本文是后续深度学习的入门,仅对神经网络做初步理解,后续文章中会继续进行学习。

定义

什么是神经网络呢?这里引用Kohonen的定义:

神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。

可以看出神经网络的几个重要特点:简单的基本单元、互连、模拟生物、具有交互反应

这里写图片描述

为什么使用神经网络?

既然已经有了线性回归、决策树等机器学习方法,为什么还要使用神经网络的方法呢?

  • 生物大脑内的神经网络即采用基本单元互联通信的模型,部分机器学习的专家相信,如果能在机器上模拟这种结构,也将部分的实现生物体的智能。
  • 在对非线性的数据进行预测时,如果使用线性回归来进行拟合,将会使用大量幂次交叉项,例如对最高三次项函数,就有 x21x2,x1x22,x31,x32...... x 1 2 x 2 , x 1 x 2 2 , x 1 3 , x 2 3 . . . . . . ,而对于含有n个特征,最高m次的数据,其项数的复杂度为O( nm n m ),高昂的复杂度使得预测代价极为高昂。

由此,神经网络应运而生。

M-P神经元模型

神经网络中的基本单元被称为M-P神经元模型,如图所示:

这里写图片描述

在生物中,一个神经元接受其他神经元传来的化学性物质,改变它的点位,如果达到该神经元的阈值,它会被激活,向其他神经元发送化学信号

在该M-P神经元中,该神经元结构其他神经元的输入信号 x1,x2......xn x 1 , x 2 . . . . . . x n ,由于每个神经元对它的作用大小不同,于是有不同的权重 w1,w2......wn w 1 , w 2 . . . . . . w n ,收到的信号总和为

X=i=1nwixi X = ∑ i = 1 n w i x i

该信号与阈值 θ θ 比较,如果大于阈值,就激活,反之不激活,该比较有函数f完成,故输出信号为:

y=f(i=1nwixiθ) y = f ( ∑ i = 1 n w i x i − θ )

激活函数

一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出,上文中的函数f即为激活函数。

理论上而言,激活函数应该具有这样的功能:大于阈值时激活,小于阈值时不激活。故理想的激活函数如下最左所示:

这里写图片描述

但是在实际运用中,由于需要该函数光滑可导,经常使用如图的sigmoid函数和ReLU函数。

感知机

感知器(英语:Perceptron)是Frank Rosenblatt在1957年就职于康奈尔航空实验室(Cornell Aeronautical Laboratory)时所发明的一种人工神经网络。它可以被视为一种最简单形式的前馈神经网络,是一种二元线性分类器

其模型如下,和M-P神经元模型如出一辙:

这里写图片描述

利用单层感知机可以解决逻辑与、或、非问题,但是不能解决异或问题,因为感知机是一个线性分类器,而异或问题不可以被线性划分。

这里写图片描述

但是利用如下的双隐层感知机可以解决异或问题。

这里写图片描述

多层神经网络

定义

感知机是最简单的前馈神经网络,如果我们增加神经网络的层数和每层的数目,便会形成多层神经网络。

多层网络包含输入层、输出层、隐藏层,输入层用来接收外界输出,隐层和输出层对信号进行加工,最终结果由输出层神经元进行输出。
这里写图片描述

图中第一层即为输入层,最后一层为输出层,中间为三个隐层。

前向传播算法

前向传播算法即神经网络进行识别匹配的算法,从输入信号得到输出信号,如下图,为具有两个隐层的神经网络。

这里写图片描述

先对图中符号进行定义, x1,x2,x3 x 1 , x 2 , x 3 是原始输入信号, aij a i j 是隐层和输出层得到的输入信号, wij w i j 为权重, zij z i j 是隐层得到的进一步传播的信号, H(x) H ( x ) 是激活函数, y1,y2,y3 y 1 , y 2 , y 3 是输出结果。

首先我们得到了原始输入信号 x1,x2,x3 x 1 , x 2 , x 3 ,通过加权和进入隐层1:

a2j=i=13xiwji a 2 j = ∑ i = 1 3 x i w j i

然后通过激活函数得到隐层1的输出

zij=H(zijθij) z i j = H ( z i j − θ i j )

重复此过程通过隐层2,得到 a41,a42,a43 a 41 , a 42 , a 43 ,即为输出层的输入信号。在前面已经说过,输出层也要对信号进行加工,所以再次通过H(x)进行处理,得到最终结果 y1,y2,y3 y 1 , y 2 , y 3

输出类型

对于二分类问题而言,只需要输出为0或1即可,所以只需要有一个输出单元,就像之前的感知机。

对于多分类问题而言,可以有k个分类,则需要有k个输出单元,每个输出单元输出0或1,共同组成一个k维向量,分别代表k个类别。如下四个向量便可以别代表1、2、3、4的类别。

1000010000100001 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

反向传播算法

反向传播算法的数学推导较复杂,在这里不详细介绍,只大体介绍其思想:

  1. 定义神经网络输出值与实际值的误差,一般情况下有两种误差定义方法( θ θ 为神经网络中的权重):

    • 均方误差:

      J(θ)=12j=1l(ykjyk2j)2 J ( θ ) = 1 2 ∑ j = 1 l ( y j k − y j k 2 ) 2

    • 对数误差这里写图片描述

  2. 反向传播算法的目的是使得 J(θ) J ( θ ) 最小,可以采用梯度下降的方法,求得使之最小的 θ θ

  3. 于是我们需要求得 J(θ) J ( θ ) 对于每一个参数 θij θ i j 的导数,然后利用梯度下降的公式对 θ θ 进行迭代

  4. 但是我们无法直接求得导数,经过推导,可以发现每一层的误差导数和后一层的导数存在关系,所以可以先求得后一层的导数,然后依次向前推导,故称之为反向传播

这里写图片描述

这里写图片描述

综合流程

由上可知,一个多层神经网络的训练流程如下:

  • 随机初始化
  • 对于训练数据,利用前向传播计算出预测结果
  • 利用预测结果和训练数据的标签计算误差
  • 利用反向传播计算误差对于各个参数的导数
  • 梯度下降,并重复此过程

避免局部最小的方法

由于梯度下降可能导致神经网络陷入局部最小,而达不到全局最小值,所以在这里有以下集中方法缓解这个问题

  • 以多组不同的初始值初始化神经网络进行训练,找出其中最好的结果作为最终参数
  • 使用模拟退火技术,有一定概率接受更差的结果,且接受的概率随时间推移而降低
  • 使用随机梯度下降法

深度学习

实际上,科学家已经证明

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

但后来人们发现:

参数越多的模型复杂多越高,容量越大,这意味着它可以完成更复杂的学习任务。而增大网络深度有时比增多单隐层参数个数更有效。

随着云计算、大数据的到来,深度学习开始流行。

典型的深度学习就是很深层的神经网络,在后面的章节会进一步介绍。

查看更多

所有的文章都会在我的博客和我的知乎专栏同步进行更新,欢迎阅读

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PSO-BP神经网络是一种结合了粒子群优化(PSO)算法和反向传播(BP)算法的神经网络模型。PSO-BP神经网络的目的是解决传统BP神经网络容易陷入局部极小点的问题,从而提高预测精度。在PSO-BP神经网络中,PSO算法用于优化BP神经网络的初始权值和阈值,以减少误差并提高拟合效果。 BP算法是一种基于梯度的优化方法,用于调整神经网络的权重,以最小化预测输出与实际目标之间的误差。它通过计算误差并通过网络反向传播来更新权重,从而不断减少误差。BP算法被广泛应用于图像识别、自然语言处理和控制系统等领域。 PSO算法是一种基于群体智能的优化算法,模拟了鸟群觅食的行为。在PSO算法中,每个粒子代表一个解,通过不断调整速度和位置来搜索最优解。在PSO-BP神经网络中,PSO算法用于搜索BP神经网络的最佳权重和阈值,以提高网络的性能和预测精度。 综上所述,PSO-BP神经网络是一种结合了PSO算法和BP算法的神经网络模型,用于优化权重和阈值,提高预测精度。它在实际应用中可以用于多特征分类预测等任务。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [分类预测 | MATLAB实现PSO-BP粒子群优化BP神经网络多特征分类预测](https://blog.csdn.net/kjm13182345320/article/details/128194438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [PSO优化BP神经网络初探](https://blog.csdn.net/zypiverson001/article/details/130245421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值