神经网络

一、什么是神经网络?

  • 神经网络是具有适应性的简单单元组成的广泛并行互连的网络。
  • 机器学习把神经网络当做一个学习算法,通过数据,学习出模型。研究的是神经网络学习,属于连接主义学习。
  • 神经网络模型两个最重要的要素是:网络结构、神经元模型。

二、简单单元,神经元模型

  •  神经元传送的是电位,当累计电位超过阈值时,神经元被激活,产生输出,由f函数来处理。
  •  x是神经元信号,w进行放大,将全部的 x*w 累加,超过原来的阈值 θ,就用f函数处理,输出y。
  •  需要学习的参数: w 和 θ, 和线性模型一样,不考虑 f 函数就是一个线性模型,考虑 f 函数的话,就能处理非线性问题,就需要用到神经元的激活函数。

 

三、神经元的 “激活函数”

  • 激活函数,activation function, 也叫做响应函数,挤压函数。
  • 理想激活函数是阶跃函数, 0 表示抑制神经元而1表示激活神经元 。
  • 阶跃函数具有不连续,不光滑等不好的性质,常用的是Sigmoid函数。

 

  • Sigmoid函数表示的是正负几率的乘积

 

 

四、多层前馈网络结构

4.1、概念:

  • 目前神经网络最常用的网络结构是多层前馈网络。
  • 多层网络:包含隐层的网络
  • 前馈网络:神经元之间不存在同层连接也不存在跨层连接
  • 隐层和输出层神经元亦称“功能单元” (Functional Unit)
  • 前馈神经网络可以用BP算法优化。

 

4.2、万有逼近性:

  • 多层前馈网络有强大的表示能力称为神经网络的万有逼近性。
  • 仅需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数。
  • 具有万有逼近性的模型包括:泰勒展开,傅里叶变换,决策树等。
  • 具有万有逼近性是将神经网络做为机器学习模型的前提,而不是神经网络独有的性质。

4.3、问题

如何设置隐层神经元数是未解问题(Open Problem),实际常用 “试错法”。

 

五、BP算法

5.1、BP算法概念:

  • BackPropagation 误差逆传播算法,简称BP算法。
  • BP算法是迄今最成功,最常用的神经网络算法。正式完整描述最早出现在1974年Werbos的博士学位论文中。
  • BP是一个迭代学习算法,在迭代的每一轮中采用广义感知机学习规则  v ← v + △v 
  • BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。
  • BP算法适用于平方损失等许多常用损失函数。

 

5.2、BP算法推导:

 

 

 

链式法则:

 

 

 

 

5.3、优化思路:

  • 得到误差后,要调整误差,就对误差求偏导。如果是凸函数的话,求导,令导数为0,求得极值点 ,如果不是凸函数的话,就用梯度下降法。
  • 求导是明确了误差调整的方向,每次走多少,由学习率参数 η 决定。
  • 学习率(步长)不能太大,太大容易产生震荡现象,也不能太小,太小可以较好的避免震荡现象,但是训练速度太慢,最好的方式是,先大步走,后小步走。

 

posted @   wangpengcufe  阅读(1099)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf
点击右上角即可分享
微信分享提示