1. 线性分类器
别嫌我罗嗦,从这里开始看你不会后悔的。
下面直线把平面分成两部分,平面上的点被分为两类:
w1x1+w2x2+w0=0(1)
w_1x_1+w_2x_2 +w_0= 0\tag1
w1x1+w2x2+w0=0(1)
显然,给定坐标 (x1,x2)(x_1, x_2)(x1,x2) 我们可以根据 w1x1+w2x2+w0w_1x_1+w_2x_2 +w_0w1x1+w2x2+w0 结果是大于零还是小于零,判断坐标落在了直线的哪一侧。为让判定结果更明确,我们把 (1) 式改造成下面的形式:
y=w1x1+w2x2+w0z=β(y)(2)
y = w_1x_1+w_2x_2 +w_0 \tag2\\
z = \beta(y)
y=w1x1+w2x2+w0z=β(y)(2)
其中,
β(y)={1,(y>0)0,(y≤0)(3)\tag3
\beta(y) =
\begin{cases}
1,&&(y>0)\\
0,&&(y\le 0)
\end{cases}
β(y)={1,0,(y>0)(y≤0)(3)
函数 β(∗)\beta(*)β(∗) 称为激活函数。深究一下取“激活函数”这个名字,可能是因为它把大于零、小于零这种结果量化成了0、1这样具体的布尔值,于是激活了其应用价值。
把 (2) 式画成神经元的形式,我们就得到一个最简单的神经网络,输入平面点的坐标,输出一个布尔值。
2. 非线性分类
我们可以组合多个线性分类器,对稍微复杂一点的线性不可分问题建立网络模型。接下来构造一个神经网络,求两个半平面的交集
z1=β(w11x1+w12x2+w10)z2=β(w21x1+w22x2+w20)z=z1∧z2(4)\tag4
z_1=\beta(w_{11}x_1+w_{12}x_2+w_{10})\\
z_2=\beta(w_{21}x_1+w_{22}x_2+w_{20})\\
z=z_1 \land z_2
z1=β(w11x1+w12x2+w10)z2=β(w21x1+w22x2+w20)z=z1∧z2(4)
逻辑运算很容易用神经元实现,假设 x,x1,x2x,x_1,x_2x,x1,x2 都是布尔值,则
x1∧x2=β(x1+x2−1.5)x1∨x2=β(x1+x2−0.5)¬x=β(1.0−x)(5)\tag5
x_1 \land x_2 = \beta(x_1 + x_2 - 1.5)\\
x_1 \lor x_2 = \beta (x_1 + x_2 - 0.5)\\
\lnot x =\beta (1.0-x)
x1∧x2=β(x1+x2−1.5)x1∨x2=β(x1+x2−0.5)¬x=β(1.0−x)(5)
于是,(4)式可以写成
y1=β(w11x1+w12x2+w10)y2=β(w21x1+w22x2+w20)z=β(y1+y2−1.5)
y_1=\beta(w_{11}x_1+w_{12}x_2+w_{10})\\
y_2=\beta(w_{21}x_1+w_{22}x_2+w_{20})\\
z= \beta(y_1 + y_2 - 1.5)
y1=β(w11x1+w12x2+w10)y2=β(w21x1+w22x2+w20)z=β(y1+y2−1.5)
对应的神经网络简图如下,
3. 复杂分类网络模型
上面的结构只能求若干个半平面的交集,也就是所谓的凸集。遇到一些更复杂的分类,需要把分类区域分解成若干的凸集的并,这样神经网络就需要增加一层,例如
凸集1:
y1=β(w11x1+w12x2+w10)y2=β(w21x1+w22x2+w20)z1=β(y1+y2−1.5)(6)\tag6
y_1=\beta(w_{11}x_1+w_{12}x_2+w_{10})\\
y_2=\beta(w_{21}x_1+w_{22}x_2+w_{20})\\
z_1= \beta(y_1 + y_2 - 1.5)
y1=β(w11x1+w12x2+w10)y2=β(w21x1+w22x2+w20)z1=β(y1+y2−1.5)(6)
凸集2:
y3=β(w31x1+w32x2+w30)y4=β(w41x1+w42x2+w40)z2=β(y3+y4−1.5)(7)\tag7
y_3=\beta(w_{31}x_1+w_{32}x_2+w_{30})\\
y_4=\beta(w_{41}x_1+w_{42}x_2+w_{40})\\
z_2= \beta(y_3 + y_4 - 1.5)
y3=β(w31x1+w32x2+w30)y4=β(w41x1+w42x2+w40)z2=β(y3+y4−1.5)(7)
最终结果,凸集的并集
z=β(z1+z2−0.5)(8)\tag8
z=\beta(z_1+z_2-0.5)
z=β(z1+z2−0.5)(8)
对应的神经网络模型,
4. 小结
本文给出了平面分类模型的构建方法,对于多维空间分类问题,道理是一样的:第一层利用神经元构造一组(超)半平面,第二层利用半平面构造一组多维凸集,第三层求凸集的并集,形成对复杂空间的分类能力。
本文给说明人工建立模型的原理和方法,如何利用大数据通过算法自动建立对应的神经网络模型?下一篇文章我来讨论这个问题。