代码之家  ›  专栏  ›  技术社区  ›  bob

这个神经网络能进行分离吗?

  •  0
  • bob  · 技术社区  · 6 年前

    我有三类分数:

    C1:{(4,1),(2,3),(3,5),(5,4),(1,6)}

    C2:{(0,2),(-2,2),(-3,2),(-2,4)}

    C3:{(1,-2),(3,-2)}

    我还有一个单层感知器,有两个输入、一个偏置项和三个输出。

    a) 网络能学会分离样本吗?(假设我们想要yi=1,如果x Ci,yj=1,对于j!=i)

    b) 将样品(-1,6)添加到C1中。现在,网络能学会分离样本吗?

    我不知道如何处理这个问题。我不需要指定实际权重,但如何确定网络是否能够分离样本?这可以纯粹以图形方式完成,还是有书面证据?

    1 回复  |  直到 6 年前
        1
  •  2
  •   shahaf    6 年前

    您可以从以下代码生成的图中看到

    import matplotlib.pyplot as plt
    
    C1 = [(4,1), (2,3), (3,5), (5,4), (1,6), (-1,6)]
    C2 = [(0,2), (-2,2), (-3,2), (-2,4)]
    C3 = [(1,-2), (3,-2)]
    
    plt.scatter([i[0] for i in C1],[i[1] for i in C1], c='b')
    plt.scatter([i[0] for i in C2],[i[1] for i in C2], c='r')
    plt.scatter([i[0] for i in C3],[i[1] for i in C3], c='g')
    plt.show()
    

    enter image description here

    数据可以很容易地用线性线分开,只有一层的感知器又称神经网络可以学习分离线性数据

    只有几层的全神经网络可以产生非线性分离,因此很容易实现