deep learning入门:感知机

Posted draymonder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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))

与门 与非门 或门

技术图片

异或门

技术图片

# 求 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层感知机来表示

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

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




以上是关于deep learning入门:感知机的主要内容,如果未能解决你的问题,请参考以下文章

机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

Deep Learning之感知器

Deep Learning之线性单元和梯度下降

Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释

从4条脉络看Deep Learning 模型最近若干年的重要进展