单层神经网络

1. 线性回归

对于含有n个特征的样本i,其回归结果对应如下方程:

z i = b + w 1 x i 1 + w 2 x i 2 + . . . + w n x i n z_i = b+w_1x_{i1} + w_2x_{i2}+ ... +w_nx_{in} zi=b+w1xi1+w2xi2+...+wnxin

其中, w w w b b b是模型的参数;b是截距(intercept),也叫偏差(bias); w 1 w_1 w1~ w n w_n wn是回归系数,也叫权重(weights)。

假设当前数据是2个特征,则上面的方程可写成如下形式:

z = b + w 1 x 1 + w 2 x 2 z = b+w_1x_{1} + w_2x_{2} z=b+w1x1+w2x2

对于上述方程,输入特征取值 x 1 x_1 x1, x 2 x_2 x2就可以得到预测结果 z z z的值。而在神经网络中,也是从神经元左侧输入特征,接着神经元对数据处理后,右侧输出结果。所以,可以用神经网络来表达线性回归过程:

在这里插入图片描述
特征对应的权重即 w w w越大,表明传到下一层神经元信息就越大。

上面这种网络结构一般被称为“单层神经网络”(不考虑输入层)。

2. 模拟实现

用下面这组数据

x 1 x_1 x1 x 2 x_2 x2 z z z
1 0 -0.05
1 1 0.05
0 1 -0.05
0 0 -0.15
import numpy as np
X = np.array([[1, 0], [1, 1], [0, 1], [0, 0]])
z = np.array([-0.05, 0.05, -0.05, -0.15])


def linear_regression(x1, x2):
    w1, w2, b = 0.1, 0.1, -0.15  # 给定回归系数和截距
    z = w1*x1 + w2*x2 + b
    return z


z_re = linear_regression(X[:, 0], X[:, 1])
print(z_re)

输出结果:

[-0.05  0.05 -0.05 -0.15]

猜你喜欢

转载自blog.csdn.net/weixin_41857483/article/details/109638811