深度学习入门之感知机

举报
kongla 发表于 2022/01/20 12:24:38 2022/01/20
【摘要】 深度学习入门第二章

感知机(perceptron)是神经网络起源的算法

感知机是什么

感知机接收多个信号,输出一个信号(0不传递信号,1传递信号)
在这里插入图片描述
输入信号x1,x2,乘以固定的权重w1,w2,如果总和超过了某个界限值,则会输出1,否则为0,用底下数学式来表示:
在这里插入图片描述
不知道为啥mathtype保存的图片放大就有点模糊了
在这里插入图片描述
总之,感知机的运行原理就是这个,多个输入信号都有自己的权重。权重越大,对信号重要性越高

简单逻辑电路

与门

两个输入均为1的时候输出1,否则为0
比如说当(w1,w2,θ)=(0.5,0.5,0.7)时,就满足与门的条件

与非门和或门

与非门就是颠倒与门的输出,,只有x1,x2同为1的时候输出0,其他时候输出1,可以采用(w1,w2,θ)=(-0.5,-0.5,-0.7)这种组合

或门是只要有1就输出1,可以采取(w1,w2,θ)=(1.0,1.0,0.8)组合

感知机的实现

def AND(x1,x2):
    w1,w2,theta=0.5,0.5,0.7
    tmp = x1*w1 + w2*x2
    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))

在这里插入图片描述
这样就实现了与门

导入权重与偏置

就是数学式中的b为偏置

import numpy as np
x = np.array([0,1])
w = np.array([0.5,0.5])
b = -0.7
print(np.sum(w*x) + b)

在这里插入图片描述
使用权重和配置实现和上面差不多。具体来说,偏置是调整神经元被激活的容易程度的参数。

与非门和或门同理

import numpy as np

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 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

就是设置权重的区别

感知机的局限性

异或门(XOR gate)无法实现,两者相同输出为0,两者不同输出为1

多层感知机

可以通过叠加层来表示异或门
例如通过组合与门,与非门,或门来实现异或门
在这里插入图片描述

异或门的实现

import numpy as np

def AND(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 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 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 XOR(x1,x2):
    s1 = NAND(x1,x2)
    s2 = OR(x1,x2)
    y = AND(s1,s2)
    return y

print(XOR(0,0))

从与非门到计算机

仅通过与非门就能实现计算机,感知机通过叠加层能够进行非线性的表示,理论上2层感知机就能构建计算机

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。