我最初在AI StackExchange here上问过这个问题,但由于这是一个算法问题,在这里可能更合适。
我在2D平面上有一个形状,我想绘制一个神经网络来检测一个点(x,y)是在该形状内还是在该形状之外。
作为一个测试,假设我有一个矩形,它的四个点的边界是:
(1,3), (2,3), (1,1) and (2,1).此形状的线条的方程式为:
x=2
x=1
y=1
y=3我的最终问题是如何将其转换为神经网络中的一组权重和阈值。对于算法,我认为我的神经网络将有两个输入神经元(每个x坐标一个,y坐标一个),然后是一个包含两个神经元的隐藏层,然后是一个输出层,其中一个神经元在矩形中,或者不在矩形中。所以这是一个完全连接的网络?
我在想,我希望形状中的值是:
1 ≤ x ≤ 2 (I want x to be between 1 and 2) AND
1 ≤ y ≤ 3 (I want y to be between 1 and 3)但我不明白如何将其转换为权重和阈值?我遇到了这个方程式
y = -(Wx/Wx)x - (Wb/Wy) 没有y值的...but在这种情况下,我不确定这是如何应用的?我想解决这个例子,但使用的方法将适用于其他形状(例如,立方体或三角形)。
更新1:类似于手动为AND/NOT etc门绘制感知器的方式,我希望手动将2D形状转换为NN,以便我可以理解过程。
因此,目前我有一个NN,它有三个输入节点(X,Y和B),以及一层中的四个隐藏节点(每行矩形一个)。但是给定一个矩形,我不知道如何求解直线方程,比如直线(3,3) (3,6),因为斜率是未定义的(6-3/3-3),所以我不知道如何在y=-Wx/Wy(x) - Wb/Wy中计算权重和偏置。
发布于 2021-05-11 20:23:02
对于单层感知器,你需要四个神经元。假设您使用Heaviside函数作为您想要的激活函数,
y1=numpy.heaviside(x1-1,1)
y2=numpy.heaviside(2-x1,1)
y2=numpy.heaviside(x2-1,1)
y3=numpy.heaviside(3-x2,1)
y=y1+y2+y3+y4
z=numpy.heaviside(y-4,1) x1和x2是输入;z是输出,如果一个点在正方形内,则输出为1,否则为0。
https://stackoverflow.com/questions/65432746
复制相似问题