- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习题
2.1什么是感知机?感知机的基本结构是什么样的?
解答:感知机是Frank Rosenblatt在1957年就职于Cornell航空实验室时发明的一种人工神经网络。它可以被视为一种最简单形式的前馈人工神经网络,是一种二元线性分类器。
感知机结构:
2.2单层感知机与多层感知机之间的差异是什么?请举例说明。
解答:单层感知机与多层感知机的区别:
1. 单层感知机只有输入层和输出层,多层感知机在输入与输出层之间还有若干隐藏层;
2. 单层感知机只能解决线性可分问题,多层感知机还可以解决非线性可分问题。
2.3证明定理: 样本集线性可分的充分必要条件是正实例点集所构成的凸壳与负实例点集构成的凸壳互不相交.
解答:首先给出凸壳与线性可分的定义
凸壳
定义1:设集合S?Rn,是由Rn中的k个点所组成的集合,即S={x
conv
线性可分
定义2:给定一个数据集
T=
其中xi∈X=
w
能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有的正例点即yi= +1的实例i,有w?x+b0,对所有负实例点即yi= ?1的实例
必要性:线性可分→凸壳不相交
设数据集T中的正例点集为S+,S+的凸壳为convS+,负实例点集为S?
w
能够将S+和S?完全分离。假设对于所有的正例点
w
易知εi0,i=1,2,?,S+。若convS
w
因此w?s++b=i=1kλiεi0,同理对于S?中的元素s?有
充分性:凸壳不相交→线性可分
设数据集T中的正例点集为S+,S+的凸壳为convS+,负实例点集为S?,S?的凸壳为convS?,且
dist
定义convS+与
dist
设x+∈convS+,x?∈
w
其中
w=
b=?
则对于所有的正例点x(易知w?x++b
w
=
=
=
若distx,x?≤distx,x+,则
2.4请设计一个感知机程序实现2.3节中介绍的逻辑“或”、逻辑“与”功能,并绘出判别界面。
代码:
import numpy as np
or_samples = [
[0, 0, 0],
[1, 0, 1],
[0, 1, 1],
[1, 1, 1]
]
and_samples = [
[0, 0, 0],
[1, 0, 0],
[0, 1, 0],
[1, 1, 1]
]
def perception(samples):
#权重
w = np.array([1,2])
#偏置
b = 0
#学习率
lr = 1
#迭代10次
for i in range(10):
for j in range(4):
x = np.array(samples[j][:2])
#sgn函数
if np.dot(w, x) + b 0:
y = 1
else:
y = 0
#真实值
t = np.array(samples[j][2])
delta_b = lr * (t - y)
delta_w = lr * (t - y) * x
# 更新权重
w = w + delta_w
b = b + delta_b
print(fweight[0]:{w[0]} weigt[1]:{w[1]} b:{b})
print(logical or:)
perception(or_samples)
print(logical and:)
perception(and_samples)
判别界面:
2.5使用下面的训练集来训练一个感知机网络,其中初始偏置w=[0,0]
类别1:x
类别2:x
代码:
import numpy as np
samples = [
[0, 1, 0],
[-1, 0, 0],
[-1, 1, 0],
[0, 2, 1],
[2, 0, 1],
[1, 2, 1]
]
def perception(samples):
#权重
w = np.array([1,1])
#偏置
b = 0.5
#学习率
lr = 1
#迭代10次
for i in range(10):
文档评论(0)