深度学习入门笔记(一)

深度学习入门学习笔记一

感知机

一.感知机是什么

感知机接收多个输入信号,输出一个信号。
在这里插入图片描述

图1

图1是一个接收两个输入信号的感知机的例子。x1、x2是输入信号,y是输出信号,w1、w2是权重(w是weight的首字母)。图中的圆圈称作神经元或者节点。输入信号呗送往神经元时,会被分别乘以固定的权重(w1x1, w2x2)。神经元会计算过来的信号的总和只有当这个总和超过了某个界限值,才会输出1。这也称为神经元被 激活。这里将找个界限称为 阈值,用符号θ表示。
将上述内容用数学式表示为
在这里插入图片描述
感知机得多个输入信号都有各自固定得权重,这些权重发挥着控制各个信号得重要性得作用。也就是说,权重越大,对应权重的信号的重要性就越高。

二.简单逻辑电路
1.与门

在这里插入图片描述

与门的真值表

下面用Python来实现与门找个逻辑电路

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

在函数内初始化参数w1、w2、theta,当输入的加权总和超过阈值时返回1, 否则返回0。
输出结果为:

AND(0, 0) # 输出0
AND(1, 0) # 输出0
AND(0, 1) # 输出0
AND(1, 1) # 输出1

上面的实现比较直接,但是考虑到之后的学习,我们将其修改为另外一种实现形式。在此之前,首先把图1中的θ换成−b。
在这里插入图片描述

此处,b称为偏置, w1和w2为权重,下面利用Numpy来实现

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

请注意:偏置和权重的作用是不相同的。权重w1,w2是控制输入信号的重要性的参数,而偏置是调整神经元被激活的难易程度。

2.与非门

在这里插入图片描述

与非门的真值表

代码实现:

import numpy as np
def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])  # 仅权重和偏置与AND不同
    b = 0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1
3.或门

在这里插入图片描述

或门的真值表

代码实现:

import numpy as np
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
感知机的局限
1.异或门

异或门也被成为逻辑异或电路,仅当x1或者x2中的一个为1时,才输出1。
在这里插入图片描述

异或门的真值表

由于异或逻辑电路无法像以上三种逻辑电路一样可进行线性分割出两种输出结果。
比如或门:
在这里插入图片描述
上图表示的感知机会生成直线-0.5 + x1 + x2 = 0分隔开的两个空间。其中一个空间输出1,另一个空间输出0,如下图所示:
在这里插入图片描述
而异或的问题在于无法通过一个线性函数来区分0和1

如图:
在这里插入图片描述

2.线性和非线性

由曲线分割而成的空间称为非线性空间,由直线分割而成的空间称为线性空间。形如下图异或逻辑电路的分割曲线即为非线性
在这里插入图片描述

2.多层感知机

可以通过与门,与非门,或门组合起来的方式来获得异或的结果。
在这里插入图片描述

与门、与非门、或门的符号

在这里插入图片描述

通过组合与门、与非门、或门实现异或门
这里把s1作为与非门的输出,把s2作为或门的输出,输入真值表中,来确定是否正确输出。

在这里插入图片描述

3.异或门的实现

我们继续使用python来实现异或门。此处用到了之前给出的与门、与非门和或门的函数实现。

def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y

输出结果:

XOR(0, 0) # 输出0
XOR(1, 0) # 输出1
XOR(0, 1) # 输出1
XOR(1, 1) # 输出0

异或门时一种多层结构的神经网络。通常,将最左端的一列称为第0层,中间的一列称为第1层,最右端的一列称为第2层。
同时,叠加了多层的感知机也成为多层感知机(multi-layered perceptron)
在这里插入图片描述

1.第0层的两个神经元接收输入信号,并将信号发送至第1层的神经元。
2.第一层的神经元将信号发送至第2层的神经元,第2层的神经元输出y

总结

  • 感知机是具有输入和输出的算法。给定一个输入后,将输入一个既定的值
  • 感知机将权重和偏置设定为参数
  • 使用感知机可以表示与、与非、或、异或等逻辑电路
  • 异或门无法通过单层感知机来表示
  • 使用2层感知机可以表示异或门
  • 单层感知机只能表示线性空间,而多层感知机可以表示非线性空间
  • 多层感知机(在理论上)可以表示计算机
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值