详解深度学习感知机原理( 三 )
def AND(x1, x2):x = np.array([x1, x2])w = np.array([0.5, 0.5])theta = 0.7return w.dot(x) > theta
同样我们也可以写出或门或者是非门 , 这也并不困难 。 但是也会发现有一种情况我们无法解决 , 就是异或的情况 。 我们先来看下异或的真值表:
文章插图
【详解深度学习感知机原理】我们是没有办法通过一个感知机来实现异或数据的分割 , 这个问题我们之前在SVM模型当中曾经介绍过 , 因为异或的数据不是线性可分的 , 也就是说我们没办法通过一条分割线将它分割 。
文章插图
但是异或问题并非是不可解决的 , 我们用单独的感知机不能够分割 , 但是我们可以将感知机串联起来 , 形成一张简单的神经网络 , 这个问题就变得可解了 。 假设我们已经把与门、或门、非门都实现了一遍 。 我们可以这样来实现异或门:
def XOR(x1, x2):# 非门s1 = NAND(x1, x2)s2 = OR(x1, x2)return AND(s1, s2)
整个感知机的结构是这样的:
文章插图
TensorFlow官网提供了一个叫做playground的网页应用 , 可以让我们自己直观地感受神经网络的组成以及它的训练过程 。 比如刚才的异或问题 , 我们就可以自己来设置神经网络的层数以及每一层包含的神经元的数量 。 并且还可以设置神经元的激活函数 , 可以非常直观地体会神经网络的训练过程以及各种参数的作用 。
文章插图
到这里 , 关于感知机的介绍就差不多结束了 。 感知机是神经网络的基础 , 其实也没有太多的内容 , 无论是结构上还是形式上都和之前机器学习介绍过的逻辑回归很近似 , 也没有太多技术难点和要点 , 大家只需要直观地感受就可以了 。
衷心祝愿大家每天都有所收获 。 如果还喜欢今天的内容的话 , 请来一个三连支持吧~(点赞、关注、转发)
最后 , 小编想说:我是一名python开发工程师 , 整理了一套最新的python系统学习教程 , 想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助.
- 系统性学习Node.js(5)—手写 fs 核心方法
- 无需入耳的蓝牙,南卡骨传导蓝牙耳机深度体验
- 使用半监督学习从研究到产品化的3个教训
- Rust语言学习:Beginning_Rust
- 如何编写JAVA小白第一个程序
- 不需要负样本对的SOTA的自监督学习方法:BYOL
- Linux培训完能到什么水平,之后还需要学习哪些技术?
- 向蚂蚁学习“跳一跳”战略,持续打磨公文写作核心竞争力
- 从Bengio演讲发散开来:探讨逻辑推理与机器学习
- Java学习路线图