个人学习笔记,有兴趣的朋友可参考。

1.感知机的描述

感知机(perceptron)由美国学者Frank Rosenblatt在1957年提出来的。是作为神经网络(深度学习)的起源的算法、

学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想

感知机接收多个输入信号,输出一个信号。如下图:

其中:

  • x1、x2是输入信号,y是输出信号
  • w1、w2是权重
  • 图中的○,代表一个个“神经元”
  • 通过一个固定的权重算法(w1x1、w2x2),当超过θ这个阈值,输出1,代表“神经元被激活”。否则为0,代表未激活、

公式如下:

\[Y=
\begin{cases}
0,(w1x1+w2x2<= θ)\\
1,(w1x1+w2x2> θ)
\end{cases}
\]

2.感知机解决简单逻辑电路,与门的问题。

与门的真值表如下:

就是两个输入都为1的情况下,输出才为1。

代码如下:

def AND(x1,x2):
w1,w2,theta =0.5,0.5,0.6
tmp =x1*w1 +x2*w2
if tmp <= theta:
return 0
elif tmp >theta:
return 1 print(AND(0,0))
print(AND(1,0))
print(AND(0,1))
print(AND(1,1))

演示效果如下:

(zsdpy1) zsd@zsd-virtual-machine:~/ZAI$ python section04.py
0
0
0
1

2.多层感应机,解决异或门

异或门的真值表



可以看到,异或门用一层没有办法解决。所以我们可以再来一个"叠加层"、通过多层的结构。来达到异或门的效果。

如下图:

代码的实现,可能需要把与门,非门,与非门的函数都实现一遍。通过它们的组合完成异或门(大学时期学的逻辑电路终于派上了一点点用场了)

代码如下:

import numpy as np

def AND(x1,x2):
w1,w2,theta =0.5,0.5,0.6
tmp =x1*w1 +x2*w2
if tmp <= theta:
return 0
elif tmp >theta:
return 1 def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1 def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1 def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y if __name__ == '__main__':
for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
y = XOR(xs[0], xs[1])
print(str(xs) + " -> " + str(y))

演示效果如下:

(zsdpy1) zsd@zsd-virtual-machine:~/ZAI$ python section05.py
(0, 0) -> 0
(1, 0) -> 1
(0, 1) -> 1
(1, 1) -> 0

【深度学习】perceptron(感知机)的更多相关文章

  1. 动手学深度学习11- 多层感知机pytorch简洁实现

    多层感知机的简洁实现 定义模型 读取数据并训练数据 损失函数 定义优化算法 小结 多层感知机的简洁实现 import torch from torch import nn from torch.nn ...

  2. (转)神经网络和深度学习简史(第一部分):从感知机到BP算法

    深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chen ...

  3. 利用Theano理解深度学习——Multilayer Perceptron

    一.多层感知机MLP 1.MLP概述 对于含有单个隐含层的多层感知机(single-hidden-layer Multi-Layer Perceptron, MLP),可以将其看成是一个特殊的Logi ...

  4. 动手学深度学习9-多层感知机pytorch

    多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetro ...

  5. Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理

    前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...

  6. 深度学习基础-基于Numpy的感知机Perception构建和训练

    1. 感知机模型   感知机Perception是一个线性的分类器,其只适用于线性可分的数据.          f(x) = sign(w.x + b) 其试图在所有线性可分超平面构成的假设空间中找 ...

  7. 从感知机到 SVM,再到深度学习(三)

        这篇博文详细分析了前馈神经网络的内容,它对应的函数,优化过程等等.     在上一篇博文中已经完整讲述了 SVM 的思想和原理.讲到了想用一个高度非线性的曲线作为拟合曲线.比如这个曲线可以是: ...

  8. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

  9. paper 53 :深度学习(转载)

    转载来源:http://blog.csdn.net/fengbingchun/article/details/50087005 这篇文章主要是为了对深度学习(DeepLearning)有个初步了解,算 ...

随机推荐

  1. 【转载】Oracle Spatial中SDO_Geometry详细说明

    转载只供个人学习参考,查看请前往原出处:http://www.cnblogs.com/upDOoGIS/archive/2009/05/20/1469871.html 相关微博:oracle 创建SD ...

  2. NumPy的随机函数子库——numpy.random

    NumPy的随机函数子库numpy.random 导入模块:import numpy as np 1.numpy.random.rand(d0,d1,...,dn) 生成一个shape为(d0,d1, ...

  3. scrapy爬虫-scrapy-redis分布式

    1.如何将一个scrapy爬虫项目修改成为一个简单的分布式爬虫项目 官方文档:https://scrapy-redis.readthedocs.io/en/stable/ 只用修改scrapy项目的两 ...

  4. Java入门教程七(数组)

    数组是最常见的一种数据结构,它是相同类型的用一个标识符封装到一起的基本类型数据序列或者对象序列.数组使用一个统一的数组名和不同的下标来唯一确定数组中的元素.实质上,数组是一个简单的线性序列,因此访问速 ...

  5. SpringCloud入门(六): Hystrix监控

    Hystrix.stream 监控 <!--. 配置pom文件,引入actuator包--> <dependency> <groupId>org.springfra ...

  6. 完全依赖QML实现播放器

    前言 一直听闻QML无比强大好用,工作中需要扣一个同时播放视频的Demo,所以就趁这个机会研究了一下. 效果图和源码 源码仓库 主要设计 主页面QML import QtQuick 2.12 impo ...

  7. git上传命令步骤

    1.登陆github后,进入Github首页,点击New repository新建一个项目 2. 填写相应信息后点击create repository即可 Repository name: 仓库名称( ...

  8. Git 相关问题分享,git reset与git revert的区别?

    1.如果我在git add 后想要撤销操作,该怎么做? 使用 git rm --cache [文件名/ *] 或者 git reset HEAD, 为什么这个命令也会有效果呢,实际上reset将 HE ...

  9. 【CSS3】自定义设置可编辑元素闪烁光标的颜色

    前言 因为业务需求, 要求我们的input框内的文本与悬浮的光标颜色不同, 这样的问题肯定在书本上很难找到解决办法, 需要通过平时的基础积累和经验. 解决方案 使用 ::first-line 伪元素 ...

  10. Python爬虫抓取微博评论

    第一步:引入库 import time import base64 import rsa import binascii import requests import re from PIL impo ...