ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

深度学习---感知机

2019-05-22 09:49:52  阅读:242  来源: 互联网

标签:return x2 学习 感知机 深度 np array x1


  1. 感知机是什么
  2. 简单逻辑电路
  3. 感知机的实现
  4. 感知机的局限性
  5. 多层知感机

1.感知机

感知机接受多个信号,输出一个信号(感知机的信号只对应1/0两种情况)

x1,x2为输入信号,w1.w2为一开始给定的权重,y为输出的信号,每个圈为一个神经元,神经元会计算传送过来的信号的总和,只有当这个总和超过了某个界限值时,才会输出 1。这也称为“神经元被激活”。这里将这个界限值称为阈值,用符号 θ 表示。

2.简单逻辑电路

学习是确定合适的参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据交给计算机。

与门,与非门,或门

与门:   

          输入    输出
   X1    X2      y
0 0
0 1 0
1 0 0
1 1 1

与非门:

          输入    输出
   X1    X2      y
0 1
0 1 1
1 0 1
1 1 0

 

或门:

          输入    输出
   X1    X2      y
0 0
0 1 1
1 0 1
1 1 1

3.感知机的实现

主要是权重和偏置不同,b为偏置,也为神经元的易激活的程度

与门:

import numpy as np
def AND(x1,x2):
    t = np.array([x1,x2])
    w = np.array([0.5,0.5])
    g = np.sum(t*w)
    f = g - 0.7'''(偏置b)'''
    if f >=0:
        return 1
    else:
        return 0

与非门:
import numpy as np
def NAND(x1,x2):
    t = np.array([x1,x2])
    w = np.array([-0.5,-0.5])
    g = np.sum(t*w)
    f = g + 0.7
    if f >=0:
        return 1
    else:
        return 0

 

或门:

import numpy as np
def OR(x1,x2):
    t = np.array([x1,x2])
    w = np.array([1,1])
    g = np.sum(t*w)
    f = g - 0.1
    if f >=0:
        return 1
    else:
        return 0

4.感知机的局限性

单层感知机可表示线性空间,但不能表现非线性空间

XOR(异或)要区分0,1区域,必须借用曲线区分,如图:

 

异或要用二次感知机才能实现

 

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

5.多层感知机

与,或,与非叫做单层感知机

异或需要两层感知机才能实现,所以叫做多层感知机

 

 

标签:return,x2,学习,感知机,深度,np,array,x1
来源: https://blog.csdn.net/qq_34158241/article/details/90417749

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有