神经元与感知机
概念
神经网络 | 人脑智慧的物质基础 |
神经元/神经细胞 | 生物神经系统基本单位 |
突触 | 神经元之间的连接 |
神经冲动 | 信息传递 |
抑制<->兴奋 | 状态改变 |
感知机发展:
1943M-P神经元模型 | 使用阶跃函数来模拟神经兴奋(0表示抑制,1表示兴奋) 阶跃函数又称为激活/激励函数 | W不能自动更新,不具备学习能力 |
1949神经心理学 | 学习的过程在于突触处的改变 激发—>强化 不激发->消失 突触联结强度与神经元活性之和正相关 | 人工神经网络:通过算法调节权值,模拟学习 |
1957感知机模型 | 包含两层:输入层、输出层(输入层接收信号,输出层是M-P神经元模型) 由于输入层不进行计算,故不计入神经网络层数,它任然是单层神经网络 | 感知及训练法则:自自动调节权值,具备学习能力 第一个用算法来精确定义的神经网络模型 线性二分类的分类器 感知器算法存在多个解,收到权值向量初始值、错误样本数许影响 对于非线性可分的数据集,感知机训练法则无法收敛 |
两个问题的解决:
1.对于非线性分类无法收敛的问题:
Delta法则:使用梯度下降法,找到能够最佳拟合训练集的权向量
2.感知机解决二分类问题,对于多分类:
设置多个输出结点
图解:
练习一
1下列说法中错误的是______。
A.神经网络的学习过程是发生在神经元之间的突触部位
B.人脑智慧的物质基础是人脑的神经网络
C.生物神经系统的基本单元是突触
D.生物神经元有两种状态:兴奋和抑制
正确答案:C,生物神经系统的基本单元是神经元
2下列关于Frank Rosenblatt提出的感知机模型,说法错误的是______。
A.感知机由输入层和输出层两层神经元组成
B.感知机的输入层是可以进行运算的功能神经元
C.感知机的学习过程是给定一个有标记的训练数据集,确定权重向量的过程
D.感知机是第一个用算法来精确定义的神经网络模型
正确答案:B,输入层只接收信号不进行计算
3下列关于感知机算法,描述错误的是______。
A.感知机训练法则不能根据训练样本的标签值与输出之间的误差来自动调整权值
B.对于非线性可分的数据集,感知机训练法则的迭代结果会一直振荡
C.Delta法则可以解决非线性数据集无法收敛的问题
D.感知机算法中不同的权值向量初始值可能会导致不同的决策边界
正确答案:A感知机可以根据算法自动调节参数,进行学习
4M-P神经元模型能够模拟生物神经元,但其权值向量无法自动学习和更新,因此不具备学习能力。
A.对
B.错
正确答案:A
5
人工神经网络是通过算法来自动调整神经元中的权值,模拟人类神经网络的学习能力。
A.对
B.错
正确答案:A
6通过设置感知机输出节点的个数,可以实现线性多分类问题。
A.对
B.错
正确答案:A
单层神经网络实例
b是偏置值,之前用w0标识,现在将它分离出来,是为了使实现多层神经网络方便直观
流程:
1.导库
出现错误:显存分配错误,是因为调用gpu运行程序时,由GPU显存空间不足引起
解决方案:允许内存增长,设置GPU使用模式
2.数据预处理
数据分为:测试集、训练集
将数据分为属性、标签
3.设置超参,显示间隔
4.设置模型参数初始值
5.训练模型
6.训练结果展示
7.结果可视化
练习二
1.在设计神经网络时,下列______需要考虑。
①神经网络的层数 ②激活函数 ③损失函数 ④节点间的连接方式
A.①②④
B.②③④
C.①③④
D.①②③④
正确答案:D
2为了实现多分类问题,输出层应该使用______作为激活函数。
A.softmax函数
B.sigmod函数
C.step函数
D.ReLU函数
正确答案:A
3下列关于tf.one_hot(indices, depth)函数说法正确的是______。
A.tf.one_hot()函数也可以写成tf.onehot()函数
B.参数indices表示输入值,输入值的类型无限制
C.参数depth表示独热编码的范围
D.该函数将输入的数值转化为独热编码类型的张量数据
正确答案:D
4tf.config.experimental.set_memory_growth(gpus[0],True)是对GPU的使用模式进行设置。在程序运行过程中,根据需要为tensorflow进程分配显存。
A.对
B.错
正确答案:A
多层神经网络
多层神经网络就是添加了隐含层的神经网络,为了解决线性不可分问题,比如异或运算
异或运算的解决:
对于曲线分割的类型,可将曲线看作多个直线的组合:
练习三
1关于多层神经网络,下列说法错误的是______。
A.多层神经网络可以解决线性不可分的问题
B.输出层和隐含层都是具有计算能力的功能
C.多层神经网络是指增加了隐含层的神经网络
D.规模大且复杂的多层人工神经网络可以代替人类的大脑
正确答案:D
2下列逻辑______是线性不可分的,无法使用单层神经网络实现。
A.与运算
B.或运算
C.异或运算
D.与非运算
正确答案:C
3下列关于前馈型神经网络的说法中,错误的是______。
A.神经元分层排列,每层神经元只与前一层神经元相连
B.层间信息的传送沿着同一方向进行,但各层之间互相有反馈
C.同一层的神经元之间相互没有连接
D.各层神经元不存在跨层连接
正确答案:B
4关于多隐含层神经网络,下列说法错误的是______。
A.能够表示非连续的函数或空间区域
B.有效减少泛化误差
C.增加隐含层可以减少每层神经元的数量
D.增加足够多的隐含层可以使泛化误差最小
正确答案:D
5下列关于超参数,说法正确的是______。
A.超参数的取值是通过学习算法训练出来的
B.学习率和误差值均不是超参数
C.隐含层的层数和节点个数都是超参数
D.可以通过测试集来确定超参数
正确答案:C
6下列关于数据集的说法,正确的是______。
A.训练集用来训练模型,确定模型参数
B.验证集用来评估模型的泛化能力
C.测试集用来确定网络的超参数
D.A、B、C均错误
正确答案:A
7如果神经网络中有足够的隐含层,每个隐含层中有足够多的神经元,那么神经网络就可以表示任意复杂的函数或空间分布。
A.对
B.错
正确答案:A
8神经网络的层数和每层中神经元的个数是比较灵活的,因此当训练结果不理想时,可以通过调整层数或神经元个数来得到满意的结果。
A.对
B.错
正确答案:A
9全连接网络中,每一层中的任何一个节点都和其后一层中的所有节点连接。
A.对
B.错
正确答案:A
误差反向传播算法
练习四
1关于误差反向传播算法,下列说法正确的是______。
A.误差反向传播算法仅仅适用于多层神经网络模型
B.误差反向传播算法是多层神经网络的学习算法
C.使用误差反向传播算法可计算损失函数对网络中所有模型参数的梯度
D.使用误差反向传播算法可以更新权值,最小化损失函数
正确答案:C
2根据______步骤可完成一轮神经网络的训练。
①设置模型参数初始值
②将预测值与标签值比较,计算损失
③正向计算神经网络的预测值
④根据梯度下降法逐层反向更新网络模型参数
⑤采用误差反向传播算法计算梯度信息
A.①②③④⑤
B.①③②⑤④
C.①③②④⑤
D.①②③⑤④
正确答案:B
3训练多层神经网络时,通过误差反向传播算法来训练模型参数。
A.对
B.错
正确答案:B
4当隐含层或输出层中有多个神经元进行误差反向传播时,误差项会根据不同神经元的贡献程度进行反向传播,即按照权重系数的比例进行更新。
A.对
B.错
正确答案:A
激活函数
练习五
1下列关于激活函数的性质,说法错误的是______。
A.激活函数是非线性函数
B.激活函数不一定是单调函数
C.激活函数中包含越充分的梯度信息,就能够捕获更多的信息
D.激活函数及其导函数应尽可能简单
正确答案:B
2使用对数几率函数logistic和双曲正切函数Tanh作激活函数时,其输出范围分别是______。
A.(0, 1) (-1, 1)
B.(0, 0.5) (0, 1)
C.(-∞,+∞) (-1, 1)
D.(-1, 1) (0, 1)
正确答案:A
3下列______可以缓解梯度的消失问题且计算速度快。
A.sigmod激活函数
B.logistic激活函数
C.ReLU激活函数
D.Tanh激活函数
正确答案:C
4Leaky-ReLU激活函数不仅可以避免神经元死亡,而且能够高效计算和训练神经网络。
A.对
B.错
正确答案:A
5好的激活函数需要有持续捕获信息的能力,并且能够识别阈值,抑制或激活神经元。
A.对
B.错
正确答案:A
多层神经网络的实现
练习六
1下列程序的执行结果为______。
import tensorflow as tf
a = tf.Variable([1., 2.])
b = tf.Variable([2., 1.])
with tf.GradientTape() as tape:
y = tf.square(a) + 2*tf.square(b) + 1
grads= tape.gradient(y, [a,b])
a.assign_sub(grads[0]* b)
print(a.numpy())
A.[4.4.]
B.[-3. -2.]
C.[2.2.]
D.[5.6.]
正确答案:B
2本节例程中实现鸢尾花分类神经网络模型的步骤是______。
①设置超参数和模型参数的初始值
②导入相关的库
③加载训练集和测试集数据
④数据预处理(对属性值进行中心化处理,将标签值转换为独热编码)
⑤训练模型
A.②①③④⑤
B.①③②⑤④
C.①②③④⑤
D.②③④①⑤
正确答案:D
3本节的鸢尾花分类例程实现了一个两层人工神经网络。
A.对
B.错
正确答案:A
4tf.keras.losses.categorical_crossentropy(y_true, y_pred)语句表示通过调用tf.keras库中的交叉熵损失函数计算标签值与预测值之间的误差。
A.对
B.错
正确答案:A