创建单个感知器进行训练

Sid*_*Sid 5 python neural-network python-3.x pandas jupyter-notebook

了解感知器如何工作,并尝试从中创建功能。

我最近在youtube上观看了一个视频,作为对上述主题的介绍。

现在,我试图模仿他的功能,我想尝试将其应用到样本数据集中:

#         x1    x2  y
data = [ [3.5, 1.5, 1],
         [2.0, 1.0, 0],
         [4.0, 1.5, 1],
         [3.0, 1.0, 0],
         [3.5, 0.5, 1],
         [2.0, 0.5, 0],
         [5.5, 1.0, 1],
         [1.0, 1.0, 0],
         [4.5, 1.0, 1] ]

data = pd.DataFrame(data, columns = ["Length", "Width", "Class"])
Run Code Online (Sandbox Code Playgroud)

乙状结肠功能:

def sigmoid(x):
    x = 1 / (1 + np.exp(-x))
    return x
Run Code Online (Sandbox Code Playgroud)

感知器功能:

w1 = np.random.randn()
w2 = np.random.randn()
b = np.random.randn()

def perceptron(x1,x2, w1, w2, b):

    z = (w1 * x1) + (w2 * x2) + b

    return sigmoid(z)
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在Perceptron中添加成本函数,并根据一个参数循环n次以使用成本函数调整权重?

def get_cost_slope(b,a):
    """
    b = predicted value
    a = actual value
    """

    sqrerror = (b - a) ** 2
    slope = 2 * (b-a)

    return sqrerror, slope
Run Code Online (Sandbox Code Playgroud)