IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 神经网络的基础——朴素的感知机 -> 正文阅读

[人工智能]神经网络的基础——朴素的感知机

概述

感知机(perceptron)是美国人在1957年提出来的一个算法,是神经网络的起源算法。
它能接受多个信号(输入),输入一个信号。
对于感知机而言,信号只有两种0或者1。
通过设置合理的权重与偏置,感知机就可以达到我们想要的目的。

一个简单的例子

有输入源 x 1 , x 2 , x 3 x_1,x_2,x_3 x1?,x2?,x3?,其对于的权重是 w 1 , w 2 , w 3 w_1,w_2,w_3 w1?,w2?,w3?,感知机的偏置为 b b b,其中 x 1 , x 2 , x 3 x_1,x_2,x_3 x1?,x2?,x3?为0或者1。
则当 x 1 × w 1 + x 2 × w 2 + x 3 × w 3 + b > 0 x_1\times w_1 + x_2\times w_2 + x_3\times w_3+b>0 x1?×w1?+x2?×w2?+x3?×w3?+b>0的时候,该感知机的输出就为1,否则就为0。

对感知机各参数的理解

权重可以理解为每一个输入源在该感知机的所有输入源中的重要程度,或者说它影响力的大小。权重越大,它就越重要,对该感知机输出的影响程度就越大。
而偏置其实就是一个阈值,当超过这个设定阈值的时候,就会输出1,否则就输出0。

几种基础的逻辑电路

首先说明一点,达到某个特定条件所设置的权重与偏置不是唯一的,是有很多种设置方法的。

与门AND

有两个输入源,部分记为 x 1 , x 2 x_1,x_2 x1?,x2?,根据运算的性质可以知道,这两个输入源是等价的,即它们对最终感知机输出的影响是一样大的,因此它们的权重 w 1 = w 2 w_1=w_2 w1?=w2?
现在考虑偏置,只要满足 w 1 = w 2 ≤ ? b < w 1 + w 2 w_1=w_2\le -b < w_1+w_2 w1?=w2??b<w1?+w2?都是满足条件的。
这也再次说明了达到某个特定条件的参数设置方法不是唯一的。
运用numpy库来实现:

def AND(x1, x2):
    x = numpy.array([x1, x2])
    w = numpy.array([1, 1])
    b = -1.5
    tmp = numpy.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

或门OR

同理,只需要稍微修改一下偏置的取值就好了。
只要满足 0 ≤ ? b < w 1 = w 2 0\le-b < w_1=w_2 0?b<w1?=w2?都是满足条件的。
运用numpy库来实现:

def OR(x1, x2):
    x = numpy.array([x1, x2])
    w = numpy.array([1, 1])
    b = -0.5
    tmp = numpy.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

与非门NAND

不难发现,只需要将与门的所有参数都取各负号,就能得到与非门了。
运用numpy库来实现:

def NAND(x1, x2):
    x = numpy.array([x1, x2])
    w = numpy.array([-1, -1])
    b = 1.5
    tmp = numpy.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

从几何空间来理解感知机

对于一个有 n n n个输入源的感知机,可以看作一个 n n n维空间。
现在空间上分布在 2 n 2^n 2n个点,分别为 ( w 1 , 0 , 0 , ? ? , 0 ) 、 ( 0 , w 2 , 0 , ? ? , 0 ) 、 ( 0 , 0 , w 3 , ? ? , 0 ) 、 ? 、 ( 0 , 0 , 0 , ? ? , w n ) 、 ( w 1 , w 2 , 0 , ? ? , 0 ) 、 ? \pod{w_1,0,0,\cdots,0}、\pod{0,w_2,0,\cdots,0}、\pod{0,0,w_3,\cdots,0}、\cdots、\pod{0,0,0,\cdots,w_n}、\pod{w_1,w_2,0,\cdots,0}、\cdots (w1?,0,0,?,0)(0,w2?,0,?,0)(0,0,w3?,?,0)?(0,0,0,?,wn?)(w1?,w2?,0,?,0)?
可以看出,每一个点就对应着一种输入的可能。
现在用一个线性的东西,将它们分为两部分,一部分输出1,另一部分就输出0。

以与门AND为例

在二维平面上有四个点,分别是 ( 0 , 0 ) , ( 0 , 1 ) , ( 1 , 0 ) , ( 1 , 1 ) \pod{0,0},\pod{0,1},\pod{1,0},\pod{1,1} (0,0),(0,1),(1,0),(1,1)
现在用直线 x + y ? 1.5 = 0 x+y-1.5=0 x+y?1.5=0把整个平面分成两部分,一部分是 ( 1 , 1 ) \pod{1,1} (1,1),另一部分是 ( 0 , 0 ) , ( 0 , 1 ) , ( 1 , 0 ) \pod{0,0},\pod{0,1},\pod{1,0} (0,0),(0,1),(1,0)
通过图像,也可以非常形象地看出来满足条件的参数设置不是唯一的,因为你可以画和多条直线,都能做到这样对点的划分。

感知机在神经网络中的作用

一句精炼的话来概况:感知机就是神经网络中的神经元
它的重要性不言而喻。
0就表示这个神经元是静息状态,1就表示这个神经元是兴奋状态。

朴素的感知机的局限性

来考虑另一种比较常见的异或门,不难发现无论我们如何设置参数,都无法找到合适的参数。
通过图像来看,显然是不存在一条直线将点 ( 0 , 0 ) , ( 1 , 1 ) \pod{0,0},\pod{1,1} (0,0),(1,1)与点 ( 0 , 1 ) , ( 1 , 0 ) \pod{0,1},\pod{1,0} (0,1),(1,0)分在两个不同的集合中。
那这种情况有没有解决方案呢?
答案是肯定的。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:12:44  更:2021-08-04 11:12:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 15:32:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码