zoukankan      html  css  js  c++  java
  • deep learning入门:感知机

    权重和偏置

    与门公式

    import numpy as np
    
    # 求x1 and x2
    def AND(x1, x2):
        x = np.array([x1, x2])
        w = np.array([0.5, 0.5])
        b = -0.7
        # tmp = w[0]*x[0] + w[1]*x[1] + b
        tmp = np.sum(w * x) + b
        if tmp <= 0:
            return 0
        else:
            return 1
    
    print(AND(0,0), AND(0,1), AND(1,0), AND(1,1))
    
    # 求not (x1 and x2)
    def NAND(x1, x2):
        x = np.array([x1, x2])
        w = np.array([-0.5, -0.5])
        b = 0.7
        # tmp = w[0]*x[0] + w[1]*x[1] + b
        tmp = np.sum(w * x) + b
        if tmp <= 0:
            return 0
        else:
            return 1
    
    print(NAND(0,0), NAND(0,1), NAND(1,0), NAND(1,1))
    
    # 求 x1 or x2
    def OR(x1, x2):
        x = np.array([x1, x2])
        w = np.array([0.5, 0.5])
        b = -0.1
        # tmp = w[0]*x[0] + w[1]*x[1] + b
        tmp = np.sum(w * x) + b
        if tmp <= 0:
            return 0
        else:
            return 1
    
    print(OR(0,0), OR(0,1), OR(1,0), OR(1,1))
    

    与门 与非门 或门

    EkH7MF.jpg

    异或门

    EkHWan.jpg

    # 求 x1 xor x2
    def XOR(x1, x2):
        s1 = NAND(x1, x2)
        s2 = OR(x1,x2)
        y =  AND(s1,s2)
        return y
    
    print(XOR(0,0), XOR(0,1), XOR(1,0), XOR(1,1))
    

    小结

    • 感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值

    • 感知机将权重和偏置设定为参数

    • 使用感知机可以表示与和或门等逻辑电路

    • 异或门无法通过单层感知机来表示,可以使用2层感知机来表示

    • 单层感知机只能表示线性空间,而多层感知机可以表示非线性空间。

    • 多层感知机(理论上)可以表示计算机

  • 相关阅读:
    【javaSE】Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
    property
    多继承与super
    GIL全局解释器锁
    深浅拷贝
    生成器
    迭代器
    设置ll命令
    修改Centos中的ll命令(以 K 为单位显示文件大小)
    打包解压缩命令
  • 原文地址:https://www.cnblogs.com/Draymonder/p/10753424.html
Copyright © 2011-2022 走看看