深度学习第一章:感知机

声明:此博客为个人笔记。参考书籍详见https://www.ituring.com.cn/book/1921

目录

  • 1、感知机是什么
  • 2、理解感知机
    • 2.1与门(AND gate)
    • 2.2与非门(NAND gate)
    • 2.3或门(OR gate)
    • 2.4异或门(XOR gate)
      • 2.41多层感知机
    • 总结

1、感知机是什么

感知机是神经网络(深度学习)的起源的算法。感知机接受多个输入信号输出一个信号(输出是目的)
感知机图示如下:
深度学习第一章:感知机_第1张图片
感知机数学表达式如下:
在这里插入图片描述
其中x1、x2 是输入信号,y 是输出信号,w1、w2 是权重(w 是 weight 的首字母)。图中的○称为“神经元”或者“节点”。输入信号被送往神经元时,会被分别乘以固定的权重(w1x1、w2x2)。神经元会计算传送过来的信号的总和,只有当这个总和超过了某个界限值时,才会输出 1。这也称为“神经元被激活”。这里将这个界限值称为阈值,用符号 θ 表示。

2.1式的另外一种表达为:
在这里插入图片描述
式(2.1)和式(2.2)虽然有一个符号不同,但表达的内容是完全相同的。此处,b 称为偏置(即阈值 θ的相反数),w1 和 w2 称为权重。如式(2.2)所示,感知机会计算输入信号和权重的乘积,然后加上偏置,如果这个值大于 0 则输出 1,否则输出 0。

在机器学习中,就是将决定参数w的工作交由计算机自动进行。机器学习的本质就是确定合适参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据交给计算机。

2、理解感知机

感知机就是接受多个信号并输出一个信号。我们从逻辑电路原理(两个输入一个输出)中进一步理解感知机。主要包括四个逻辑:与门、非与门、或门以及 异或门

2.1与门(AND gate)

当x1个x2均为1时,输出的y值为1。
深度学习第一章:感知机_第2张图片

与门代码实现如下:

import numpy as np
def AND(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.6
    temp = np.sum(w*x)+b
    if temp <=0:
        return 0
    else:
        return 1

2.2与非门(NAND gate)

与非门就是颠倒了与门的输出
深度学习第一章:感知机_第3张图片
代码试下如下:

import numpy as np
def NAND(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.6
    temp = np.sum(x*w) + b
    if temp >0:
        return 0
    else:
        return 1

2.3或门(OR gate)

只要有一个输入信号为1,输出结果就为1
深度学习第一章:感知机_第4张图片

def OR_gate(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.5
    temp = np.sum(x*w) + b
    if temp >= 0:
        return 1
    else:
        return 0

2.4异或门(XOR gate)

深度学习第一章:感知机_第5张图片

异或门也被称为逻辑异或电路。使用感知机可以简单实现与门、与非门和或门,实际上,用单层感知机是无法实现异或门的。为什么呢?原因如下:
深度学习第一章:感知机_第6张图片
图1中:
在这里插入图片描述

在图1中有灰色和白色两个区域,分别代表两种不同的类别,可以找到一条直线把两个区域分开;但是要想把图2中的灰色区域和白色区域分开,直线是不可能的,只能用曲线,由图2这样的曲线分割二而成的空间称为非线性空间
那么如何在线性空间中将两类别分类呢?答案是多层感知机

2.41多层感知机

异或门的制作方法有很多,其中之一就是组合我们前面做好的与门、与非门、或门进行配置。这里,与门、与非门、或门用图 2-9 中的符号表示。另外,图 2-9 中与非门前端的○表示反转输出的意思。
深度学习第一章:感知机_第7张图片
异或门可以通过图 2-11 所示的配置来实现。这里,x1 和 x2 表示输入信号,y 表示输出信号。x1 和 x2 是与非门和或门的输入,而与非门和或门的输出则是与门的输入。
深度学习第一章:感知机_第8张图片
深度学习第一章:感知机_第9张图片
深度学习第一章:感知机_第10张图片
由此,实现了异或门。
异或门的代码如下:

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

总结

感知机就是建立多个输入值和一个输出值之间关系的一种映射,它是深度学习的基础,我们需要做的有两件事:构建与非门、调参,其余的交给计算机。
理论上说,2层感知机就能构建计算机(通过与非门的组合),毕竟计算机的二进制中只有0和1。

你可能感兴趣的:(深度学习,深度学习,python,神经网络)