更多内容关注公众号:数学的旋律
tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物
一、人工神经元
1. 感知器
感知器是一种人工神经元,在 20 世纪五、六⼗年代由科学家Frank Rosenblatt发明。⼀个感知器接受⼏个二进制输⼊ x 1 , x 2 , . . . x_1, x_2, . . . x1,x2,...,并产⽣⼀个二进制输出:
⽰例中的感知器有三个输⼊: x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3,引入权重 w 1 , w 2 , w 3 w_1, w_2, w_3 w1,w2,w3表⽰相应输⼊对于输出重要性的实数。输出值0或者1,则由分配权重后的总和 ∑ j w j x j \sum_jw_jx_j ∑jwjxj小于或者大于一些阈值决定。和权重⼀样,阈值是⼀个实数,⼀个感知器的参数。⽤更精确的代数形式:
把阈值移到不等式的另⼀边,并⽤感知器的偏置 b ≡ − t h r e s h o l d b ≡ −threshold b≡−threshold 代替。⽤偏置⽽不是阈值,那么感知器的规则可以重写为:
2. S型神经元
S 型神经元和感知器类似,但是被修改为权重和偏置的微⼩改动只引起输出的微⼩变化。正如⼀个感知器,S 型神经元有多个输⼊ x 1 , x 2 , . . . x_1, x_2, . . . x1,x2,...,但是这些输⼊可以取0和1中的任意值,如0.618…是⼀个 S 型神经元的有效输⼊,⽽不仅仅是二进制输入0或1。同样,S 型神经元对每个输⼊有权重 w 1 , w 2 , . . . w_1, w_2, . . . w1,w2,...和⼀个总的偏置 b b b,但输出不再是0或1,而是 σ ( w ⋅ x + b ) σ(w · x+b) σ(w⋅x+b),这⾥ σ σ σ 被称为S型函数,定义为:
σ ( z ) ≡ 1 1 + e − z σ(z) ≡ \frac1{1+e^{-z}} σ(z)≡1+e−z1
把它们放在⼀起来更清楚地说明,⼀个具有输⼊ x 1 , x 2 , . . . x_1, x_2, . . . x1,x2,...,权重 w 1 , w 2 , . . . w_1, w_2, . . . w1,w2,...和偏置 b b b 的S型神经元的输出是:
1 1 + e − ∑ j w j x j − b = 1 1 + e x p ( − ∑ j w j x j − b ) \frac1{1+e^{-\sum_jw_jx_j-b}} = \frac1{1+exp(-\sum_jw_jx_j-b)} 1+e−∑jwjxj−b1=1+exp(−∑jwjxj−b)1
3. t a n h tanh tanh 神经元
t a n h tanh tanh 函数的定义为:
t a n h ( z ) ≡ e z − e ( − z ) e z + e ( − z ) tanh(z) ≡ \frac{e^z - e^(-z)}{e^z + e^(-z)} tanh(z)≡ez+e(−z)ez−e(−z) S型神经元和 t a n h tanh tanh 神经元之间的⼀个差异就是 t a n h tanh tanh 神经元的输出的值域是 (−1, 1) ⽽⾮ (0, 1)。这意味着如果你构建基于 t a n h tanh tanh 神经元,你可能需要正规化最终的输出(取决于应⽤的细节,还有你的输⼊),跟S型神经元略微不同。
4. 修正线性神经元(rectified linear neuron)或者修正线性单元(rectified linear unit),简记为 ReLU
输⼊为 x x x,权重向量为 w w w,偏置为 b b b 的 R e L U ReLU ReLU 神经元的输出是:
m a x ( 0 , w ⋅ x + b ) max\ (\ 0, w · x + b\ ) max ( 0,w⋅x+b )
二、神经网络
本文我们讨论的神经⽹络,都是以上⼀层的输出作为下⼀层的输⼊。这种⽹络被称为前馈神经⽹络。这意味着⽹络中是没有回路的,信息总是向前传播,从不反向回馈。
1. 神经网络的架构
上图⽹络中最左边的称为输⼊层,其中的神经元称为输⼊神经元。最右边的称为输出层,其中的神经元称为输出神经元,在本例中,输出层只有⼀个神经元。中间层既不是输⼊也不是输出,被称为隐藏层。
2. 神经网络的代数形式
我们⾸先给出⽹络中权重的清晰定义。我们使⽤ w j k l w_{jk}^l wjkl 表⽰从 ( l − 1 ) t h (l − 1)^{th} (l−1)th 层的 k t h k^{th} kth 个神经元到 l t h l^{th} lth 层的 j t h j^{th} jth 个神经元的链接上的权重。例如,下图给出了⽹络中第⼆层的第四个神经元到第三层的第⼆个神经元的链接上的权重:
我们对⽹络的偏置和激活值也会使⽤类似的表⽰。显式地,我们使⽤ b j l b_j^{l} bjl 表⽰在 l t h l^{th} lth 层第 j t h j^{th} jth 个神经元的偏置,使⽤ a j l a_j^{l} ajl 表⽰ l t h l^{th} lth 层第 j t h j^{th} jth 个神经元的激活值(即神经元的输出)。下⾯的图清楚地解释了这样表⽰的含义:
有了这些表⽰, l t h l^{th} lth 层的第 j t h j^{th} jth 个神经元的激活值 a j l a_j^{l} ajl 就和 ( l − 1 ) t h (l − 1)^{th} (l−1)th 层的激活值通过⽅程关联起来了(其中 σ σ σ 称为激活函数,本文选用S型神经元进行讨论,即选择激活函数为S型函数)
a j l = σ ( ∑ k w j k l a k l − 1 + b j l ) {a_j}^l = σ(\sum_kw_{jk}^la_k^{l-1}+b_j^l) ajl=σ(k∑wjklakl−1+bjl) 其中求和是在 ( l − 1 ) t h (l − 1)^{th} (l−1)th 层的所有 k k k 个神经元上进⾏的。为了⽤矩阵的形式重写这个表达式,我们对每⼀层 l l l 都定义⼀个权重矩阵 w l w^l wl。权重矩阵 w l w^l wl 的元素正是连接到 l t h l^{th} lth 层神经元的权重,更确切地说,在第 j t h j^{th} jth ⾏第 k t h k^{th} kth 列的元素是 w j k l w_{jk}^l wjkl。类似的,对每⼀层 l l