当前位置: 首页 > article >正文

【第5章 | 神经网络】(python机器学习)

一、感知机原理与单层感知器网络


假设现在要判别是否给某个用户办理信用卡,我们已有的是用户的性别、年龄、学历、工作年限、负债情况等信息,用户金融信息情况统计表如表所示。


感知机(Perceptron)

感知机算法于1957年由Rosenblatt提出,是对生物神经细胞的简单抽象, 是神经网络与支持向量机的基础。

神经网络之所以能够发挥强大的作用就是在感知机的结构上作了调整。 而支持向量机(support vector machine,SVM)算法的基础就是感知机。因此,有必要了解基础的感知机算法(perceptron learning algorithm,PLA)思想及其原理。

• 输入为实例的特征向量,输出为实例的类别,取+1和-1;

• 感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型;

• 导入基于误分类的损失函数;

• 利用随机梯度下降法对损失函数进行极小化;

• 感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式;

感知机的基本思想

感知机是一种线性分类模型。也就是说针对的是线性可分的数据。最常见的例子就是二维平面内的一堆数据可以通过一条直线分割开。

显然,这种分割并不是唯一的:

PLA算法就是找到其中一种可分的方案。如果推广至高维空间,就是寻找一个超平面。

•学习的过程就是寻找合适的损失函数,并尽可能使损失函数最小化。

感知机模型


感知机学习策略

假设训练数据集是线性可分的,则感知机学习的目标就是求得一个能够将训练数据集中正负实例完全分开的分类超平面。和前面一样,采取损失函数最小策略,即定义一个损失函数,并通过将损失函数最小化来求w和b 。

这里选择的损失函数是误分类点到分类超平面S的总距离。输入空间中任意一点Xi 到超平面S的距离为:


感知机优化算法

可见,感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。

• 算法的收敛性:经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。

感知机模型的基本思想是:先随机选择一个超平面对样本点进行划分,然后当一个实例点被误分类,即位于分类超平面错误的一侧时,则调整w和b ,使分类超平面向该误分类点的一侧移动,直至超平面越过该误分类点为止。所以,如果给的初始值不同,则最后得到的分割超平面wx+ b = 0也可能不同,即感知机模型的分割超平面可能存在很多个。

感知机模型有两个缺点,即当训练数据集线性不可分时,感知机的学习算法不收敛,迭代过程会发生震荡。另外,感知机模型仅适用于二分类问题,在现实应用中存在一定局限性。

单层感知器的基本结构

如图,单层感知器可以有多个输入,它们通过与权值相乘,再相加(即加权求和)后,经过一定的偏置,再由激活函数处理,最后输出得到预测结果。这里面存在两种变化:线性变化与非线性变化。其中,加权求和属于线性变化,激活函数做的是非线性变化。通过上述两种变化,可以把输入的数据空间扭曲, 使得只需要一个超平面就可以将其分开(线性可分),从而达到分类的目的。

(多选题)关于感知机模型的描述,以下哪项是正确的?( B、D)

A.感知机模型不能能用于二分类问题。

B.感知机学习算法的原始形式是通过迭代式更新权重和偏置。

C.感知机模型的分割超平面是唯一的。

D.感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。

二、多层网络与误差逆传播算法

2.1多层网络

什么是神经网络?

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

• 神经网络是一个很大的学科,本课程仅讨论它与机器学习的交集

• 神经网络学得的知识蕴含在连接权与阈值中

激活函数

• 理想激活函数是阶跃函数, 0表示抑制神经元而1表示激活神经元

• 阶跃函数具有不连续、不光滑等不好的性质, 常用的是Sigmoid 函数

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


多层前馈网络结构

以下关于神经网络的描述中,哪项是正确的? ( B

A.阶跃函数具有连续、光滑等性质。

B. 神经网络是由具有学习能力的简单单元组成的广泛并行互连的网络,能够学习并模拟生物神经系统的处理方式。

C. 多层前馈网络中,每个神经元都与其他所有神经元直接相连。

D.神经网络的学习过程不涉及调整神经元之间的连接权。

2.2误差逆传播算法(Back Propagation BP)

BP 算法推导

2.3神经网络

标准BP 算法vs累积BP 算法

标准BP 算法累积BP 算法

• 每次针对单个训练样例更新权值与阈值

• 参数更新频繁, 不同样例可能抵消, 需要多次迭代

• 其优化目标是最小化整个训练集上的累计误差

• 读取整个训练集一遍才对参数进行更新, 参数更新频率较低

在很多任务中, 累计误差下降到一定程度后, 进一步下降会非常缓慢, 这时标准BP算法往往会获得较好的解, 尤其当训练集非常大时效果更明显。

(多选题)以下哪些方法被提及作为缓解神经网络过拟合的策略?( A、B

A.早停         B.正则化         C.增加网络层数         D.减少训练数据量


http://www.kler.cn/a/399727.html

相关文章:

  • 第6章详细设计 -6.7 PCB工程需求表单
  • PG-DERN 解读:少样本学习、 双视角编码器、 关系图学习网络
  • 7.揭秘C语言输入输出内幕:printf与scanf的深度剖析
  • 大数据如何助力干部选拔的公正性
  • 【java】链表:判断链表是否成环
  • ReactPress与WordPress:两大开源发布平台的对比与选择
  • node版本升级,从卸载到使用nvm管理node版本并配置vue环境(学习趟雷版)
  • 【技术解析】Dolphinscheduler实现MapReduce任务的高效管理
  • Python蓝桥杯刷题1
  • 【hacker送书第16期】Python数据分析、挖掘与可视化、AI全能助手ChatGPT职场工作效率提升技巧与案例
  • k8s集群扩容
  • React状态管理之Zustand
  • AIGC----教育领域的AIGC:个性化学习材料生成
  • 【taro react】 ---- 解决 input 、textarea 层级穿透
  • 在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)
  • 2411rust,1.75.0
  • EasyExcel在SpringBoot中的简单使用
  • linux-字符替换
  • vue的声明周期
  • django从入门到精通(六)——auth认证及自定义用户
  • Flink是如何实现 End-To-End Exactly-once的?
  • three.js实现地球 外部扫描的着色器
  • react学习篇--创建项目
  • ScreenAgent CogAgent 安装日志
  • 乘法器为例:概述MCU与FPGA通过APB总线实现交互(fpgaAPB的简单使用)
  • opencv(c++)---访问图像像素、增加白噪点