几分钟看懂神经网络原理

1. 线性分类器

别嫌我罗嗦,从这里开始看你不会后悔的。

下面直线把平面分成两部分,平面上的点被分为两类:
w 1 x 1 + w 2 x 2 + w 0 = 0 (1) w_1x_1+w_2x_2 +w_0= 0\tag1
显然,给定坐标 ( x 1 , x 2 ) (x_1, x_2) 我们可以根据 w 1 x 1 + w 2 x 2 + w 0 w_1x_1+w_2x_2 +w_0 结果是大于零还是小于零,判断坐标落在了直线的哪一侧。为让判定结果更明确,我们把 (1) 式改造成下面的形式:

y = w 1 x 1 + w 2 x 2 + w 0 z = β ( y ) (2) y = w_1x_1+w_2x_2 +w_0 \tag2\\ z = \beta(y)
其中,
β ( y ) = { 1 , ( y > 0 ) 0 , ( y 0 ) (3) \tag3 \beta(y) = \begin{cases} 1,&&(y>0)\\ 0,&&(y\le 0) \end{cases}
函数 β ( ) \beta(*) 称为激活函数。深究一下取“激活函数”这个名字,可能是因为它把大于零、小于零这种结果量化成了0、1这样具体的布尔值,于是激活了其应用价值。

把 (2) 式画成神经元的形式,我们就得到一个最简单的神经网络,输入平面点的坐标,输出一个布尔值。

在这里插入图片描述

2. 非线性分类

我们可以组合多个线性分类器,对稍微复杂一点的线性不可分问题建立网络模型。接下来构造一个神经网络,求两个半平面的交集
z 1 = β ( w 11 x 1 + w 12 x 2 + w 10 ) z 2 = β ( w 21 x 1 + w 22 x 2 + w 20 ) z = z 1 z 2 (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
逻辑运算很容易用神经元实现,假设 x , x 1 , x 2 x,x_1,x_2 都是布尔值,则
x 1 x 2 = β ( x 1 + x 2 1.5 ) x 1 x 2 = β ( x 1 + x 2 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)

于是,(4)式可以写成
y 1 = β ( w 11 x 1 + w 12 x 2 + w 10 ) y 2 = β ( w 21 x 1 + w 22 x 2 + w 20 ) z = β ( y 1 + y 2 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)
对应的神经网络简图如下,
在这里插入图片描述

3. 复杂分类网络模型

上面的结构只能求若干个半平面的交集,也就是所谓的凸集。遇到一些更复杂的分类,需要把分类区域分解成若干的凸集的并,这样神经网络就需要增加一层,例如

凸集1:
y 1 = β ( w 11 x 1 + w 12 x 2 + w 10 ) y 2 = β ( w 21 x 1 + w 22 x 2 + w 20 ) z 1 = β ( y 1 + y 2 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)

凸集2:
y 3 = β ( w 31 x 1 + w 32 x 2 + w 30 ) y 4 = β ( w 41 x 1 + w 42 x 2 + w 40 ) z 2 = β ( y 3 + y 4 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)

最终结果,凸集的并集
z = β ( z 1 + z 2 0.5 ) (8) \tag8 z=\beta(z_1+z_2-0.5)

对应的神经网络模型,
在这里插入图片描述

4. 小结

本文给出了平面分类模型的构建方法,对于多维空间分类问题,道理是一样的:第一层利用神经元构造一组(超)半平面,第二层利用半平面构造一组多维凸集,第三层求凸集的并集,形成对复杂空间的分类能力。

本文给说明人工建立模型的原理和方法,如何利用大数据通过算法自动建立对应的神经网络模型?下一篇文章我来讨论这个问题。

发布了174 篇原创文章 · 获赞 80 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/quicmous/article/details/104883837
今日推荐