深度学习之感知机

深度学习

感知机

感知机 (perceptron)这一算法。感知机是由美国学者Frank Rosenblatt在1957年提出来的。为何我们现在还要学习这一很久以前就有 的算法呢?因为感知机也是作为神经网络(深度学习)的起源的算法。因此, 学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。 本章我们将简单介绍一下感知机,并用感知机解决一些简单的问题。
感知机接收多个输入信号,输出一个信号。这里所说的“信号”可以想 象成电流或河流那样具备“流动性”的东西。像电流流过导线,向前方输送 电子一样,感知机的信号也会形成流,向前方输送信息。但是,和实际的电 流不同的是,感知机的信号只有“流/不流”(1/0)两种取值。在本书中,0 对应“不传递信号”,1对应“传递信号”。

可以很简单的解决 与 和 非问题

例如有n个输入数据,通过权重之间的计算和比较激活函数结果得出输出:是或不是的结论

w 1 x 1 + w 2 x 2 + w 3 x 3 . . . w n x n + b = y w_1x_1+w_2x_2+w_3x_3...w_nx_n + b = y w1x1+w2x2+w3x3...wnxn+b=y

看上去好像是线性回归的公式,但是需要添加一个阈值(门槛)threshold,当 y < = t h r e s h o l d y<=threshold y<=threshold是1类别, y > t h r e s h o l d y>threshold y>threshold是0类别,现在看上去像是一个零一回归

但是很遗憾我们可以看出问题,感知机中其实不能解决一下非线性问题,比如异或线性不可分问题。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.style as style
style.use('fivethirtyeight')
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
​
data = np.random.randn(200,2)
target = np.logical_xor(data[:,0]<0,data[:,1]<0)
plt.scatter(data[:,0],data[:,1],c=target,cmap='autumn')
plt.title('异或类型线性不可分问题')
plt.show()

在这里插入图片描述

多层感知机

感知机不能表示异或门让人深感遗憾,但也无需悲观。实际上,感知机 的绝妙之处在于它可以“叠加层”。 这里,我们暂且不考虑叠加层具体是指什么,先从其他视角来思考一下异或 门的问题。

在这里插入图片描述

先在第0层和第1层的神经元之间进行 信号的传送和接收,然后在第1层和第2层之间进行信号的传送和接收,具 体如下所示。

1.第0层的两个神经元接收输入信号,并将信号发送至第1层的神经元。
2.第1层的神经元将信号发送至第2层的神经元,第2层的神经元输出y。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值