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

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. Mongo Delete-19

    数据初始化 db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: &q ...

  2. 设计模式-11享元模式(Flyweight Pattern)

    1.模式动机 在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题.创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈. 享元模式就是把相同或相似对象的公共部分提取出 ...

  3. 修改gridfilters.js源码,往后台多传递一个参数,并设置NumericFilter、StringFilter默认提示信息

    创作不易,转载请注明出处!!! 效果 修改:ext-extend.js源码 在最后面添加3行,重写方法 代码拷贝区 Ext.override(Ext.ux.grid.GridFilters, { me ...

  4. css 进度条的文字根据进度渐变

    需求 1.进度条里面的文字需要根据进度的长度而变化 原理 用两个一模一样的样式的 div 重叠起来 效果 字体开始为 蓝色,跟随进度条变为 白色 在线预览: https://jsfiddle.net/ ...

  5. SpringBoot1.5.10.RELEASE整合druid

    1.先在pom文件中导入druid的jar包 <dependency> <groupId>com.alibaba</groupId> <artifactId& ...

  6. Mysql(Mariadb)之SET语法分析以及系统变量和用户变量分析(英文&中文)(转载)

    SET Syntax SET variable_assignment [, variable_assignment] ... variable_assignment: user_var_name = ...

  7. Golang中database/sql包

    驱动 github.com/go-sql-driver/mysql 请求一个连接的函数有好几种,执行完毕处理连接的方式稍有差别,大致如下: db.Ping() 调用完毕后会马上把连接返回给连接池. d ...

  8. Vue2.0 【第二季】第4节 Vue的生命周期(钩子函数)

    目录 Vue2.0 [第二季]第4节 Vue的生命周期(钩子函数) 第4节 Vue的生命周期(钩子函数) Vue2.0 [第二季]第4节 Vue的生命周期(钩子函数) 第4节 Vue的生命周期(钩子函 ...

  9. 【猫狗数据集】使用预训练的resnet18模型

    数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xi ...

  10. py123第一次作业

      绘制五角星<br>import turtle turtle.setup(600,350,200,200) turtle.pensize(2) turtle.pencolor(" ...