【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )
I . 线性回归 与 逻辑回归II . sigmod 非线性激活函数III . 神经元单元 逻辑IV . 单个 神经元单元 总结V . 神经网络 每一层分析VI . 神经网络 矩阵形式
文章目录
I . 线性回归 与 逻辑回归
1 . 神经元单元本质 : 一个 神经元 单元 , 其本质是 逻辑回归单元 ;
2 . 逻辑回归 与 线性回归 :
① 回归 : 用于预测连续的值 , 叫做回归 ; 预测离散的值叫做分类 ;
② 线性回归 : 确定若干变量之间的相互依赖关系 ; 回归分析中 , 自变量 x x x , 因变量 y y y , y = w x + b y=wx +b y=wx+b , 自变量和因变量之间的关系是一条直线 , 叫做一元线性回归分析 ; 如果有多个自变量 , 自变量与因变量是线性关系 , 叫做多远线性回归分析 ;
③ 逻辑回归 : 是广义的线性回归 , 类似于多重线性回归分析 , 其模型都包含 w x + b wx+b wx+b ; 多重线性回归将 w x + b wx+b wx+b 作为因变量 ; 逻辑回归 通过函数 L L L , 将 w x + b wx+b wx+b 转为状态 p p p , p 决定因变量的值 , L L L 函数如果是逻辑函数 , 该回归就是逻辑回归 ;
④ sigmod 激活函数 : 这里的 sigmod 激活函数就是逻辑回归函数 , 因此该回归也叫作逻辑回归 ;
⑤ 线性支持向量机 : 某种程度上是逻辑回归 ;
II . sigmod 非线性激活函数
1 . sigmod 非线性变换函数的作用 : 目的是为了进行非线性变换 ;
没有逻辑回归后果 : 如果没有非线性变换 , 不管神经网络是多少层的 , 只能进行 1 1 1 个线性变换 ; 每一层的输出都是上一层的输出的线性变换结果 , 即使有 100 100 100 层 , 其变换还是线性的 , 无法拟合复杂的的函数变换 ;
sigmod 函数是非线性的激活函数 , 目的是将线性的计算 , 转为非线性的计算方式 ;
引入了非线性激活函数 , 使整个神经网络的模型更加 灵活 ;
2 . 线性计算 : 神经元单元 输入的计算方式是 将上一层单元的输出进行线性叠加 , 乘以一个权值 , 再加上偏置 , 这是线性计算 , 该操作执行 100 100 100 次也是线性操作 ;
3 . 非线性计算 : 神经元单元 输出的计算方式是 将输入的数值 , 经过 sigmod 激活函数 , 转为一个 ( 0 , 1 ) (0,1) (0,1) 的输出结果 , 该计算过程是非线性的操作 ;
III . 神经元单元 逻辑

神经元单元 逻辑 :
h w , b ( x ) = f ( w x + b ) h_{w,b}(x) = f(w x + b) hw,b(x)=f(wx+b)
f ( z ) = 1 1 + e − z f(z) = \dfrac{1}{1 + e^{-z}} f(z)=1+e−z1
x x x 是上一层连接单元的输出 ;
w w w 指的是单元之间连接的权重 ;
b b b 指的是单元本身的偏置属性 , 可能是一个单元的偏置 , 如果有多个连接 , 就是多个单元的偏置之和 ;
h h h 就是将线性的 w x + b wx+b wx+b 结果转为 ( 0 , 1 ) (0,1) (0,1) 区间值的隐藏状态 ;
w x + b w x + b wx+b 是本层的输入 ;
f f f 函数是一个非线性的激活函数 , 这里指的是 sigmod 激活函数 , 将本层的输入转为本层的输出 , 该函数将全体实数映射到 ( 0 , 1 ) (0,1) (0,1) 之间 ;
h w , b ( x ) h_{w,b}(x) hw,b(x) 是将上一层的输出 , 转为本层的输出 ;
IV . 单个 神经元单元 总结
1 . 单个 神经元单元 总结 :
① 线性回归转换成输入 : 计算中间层单元的输入时 , 通过上一层的输出值 乘以 连接权值 , 加上偏置 , 等一系列线性计算 , 得到输入值 , 这是线性回归变换 ;
② 逻辑回归转换成输出 : 将上述线性回归变换的结果 , 经过 sigmod 激活函数计算 , 将多个线性输入 , 转化成了 ( 0 , 1 ) (0, 1) (0,1) 区间内的 单个输出 ,
2 . 通过线性回归将输出转为输入 ;
然后通过 sigmod 激活函数 , 将输入转换成了 ( 0 , 1 ) (0,1) (0,1) 区间的 输出值 ;
单层的 多个神经元单元 , 可以看做是同时并发运行的逻辑回归单元 ;
V . 神经网络 每一层分析
1 . 神经网络本质 : 神经元的本质是运行单个逻辑回归单元 , 神经网络的本质是 在每一层并行运行多个逻辑回归单元 , 先后运行多层 ( 输入层 / 隐藏层 / 输出层 ) ;
2 . 神经网络每层单元运行机制 ( 并行运行多个单元 ) : 对于神经网络中的每一层 , 有若干个神经元单元 , 该层的运行相当于若干个 神经元单元 并行运行 , 即 该层的神经元单元同时进行 输入计算 , 同时进行输出计算 , 然后根据输出 , 计算后一层的每个单元的输入值 ;
3 . 神经网络每层的输入输出 :
① 线性输入 : 神经网络每一层的输入 , 可以看做若干线性回归 计算 ;
② 逻辑输出 : 神经网络每一层的输出 , 可以看做若干逻辑回归 计算 ;
4 . 神经网络层计算本质 : 将 向量值 ( 多个单元的输入值 ) 传入一组逻辑回归函数 ( sigmod 激活函数 ) , 得到的也是向量值输出 ( 多个单元的输出值 ) ;
向量值就是多个变量组成的一维矩阵 ;
VI . 神经网络 矩阵形式
1 . 使用上一篇博客的示例 : 以计算下图中的 4 , 5 4 , 5 4,5 两个节点的输入 和 输出为例 ;

① 节点 4 , 5 4 , 5 4,5 输入计算
I 4 = ( w 14 O 1 + b 1 ) + ( w 24 O 2 + b 2 ) + ( w 34 O 3 + b 3 ) I_4 = (w_{14}O_1 + b_1 ) + (w_{24}O_2 + b_2 ) + (w_{34}O_3 + b_3 ) I4=(w14O1+b1)+(w24O2+b2)+(w34O3+b3)
I 5 = ( w 15 O 1 + b 1 ) + ( w 25 O 2 + b 2 ) + ( w 35 O 3 + b 3 ) I_5 = (w_{15}O_1 + b_1 ) + (w_{25}O_2 + b_2 ) + (w_{35}O_3 + b_3 ) I5=(w15O1+b1)+(w25O2+b2)+(w35O3+b3)
② 连接权值 : w 14 , w 24 , w 34 , w 15 , w 25 , w 35 w_{14} , w_{24} , w_{34}, w_{15} , w_{25} , w_{35} w14,w24,w34,w15,w25,w35 是 6 6 6 条有向弧连接的权值 ; 如 w 14 w_{14} w14 是单元 1 1 1 与 单元 4 4 4 连接的权值 ;
③ 偏置 : b 1 , b 2 , b 3 b_1 , b_2, b_3 b1,b2,b3 分别是 单元 1 , 2 , 3 1 , 2 , 3 1,2,3 的偏置 ;
④ 上层单个单元输出对应的输入值 :
( w 14 O 1 + b 1 ) (w_{14}O_1 + b_1 ) (w14O1+b1) 对应单元 1 1 1 输出到单元 4 4 4 的输入值 ;
( w 24 O 2 + b 2 ) (w_{24}O_2 + b_2 ) (w24O2+b2) 对应单元 2 2 2 输出到单元 4 4 4 的输入值 ;
( w 34 O 3 + b 3 ) (w_{34}O_3 + b_3 ) (w34O3+b3) 对应单元 3 3 3 输出到单元 4 4 4 的输入值 ;
( w 15 O 1 + b 1 ) (w_{15}O_1 + b_1 ) (w15O1+b1) 对应单元 1 1 1 输出到单元 5 5 5 的输入值 ;
( w 25 O 2 + b 2 ) (w_{25}O_2 + b_2 ) (w25O2+b2) 对应单元 2 2 2 输出到单元 5 5 5 的输入值 ;
( w 35 O 3 + b 3 ) (w_{35}O_3 + b_3 ) (w35O3+b3) 对应单元 3 3 3 输出到单元 5 5 5 的输入值 ;
2 . 隐藏层 输入 计算的矩阵形式 :
隐藏层输入计算 : Z = W x + b Z = Wx + b Z=Wx+b
隐藏层输出计算 : a = f ( z ) a = f(z) a=f(z)
① w w w 矩阵 : 上一层单元 与 本层单元 连接的 权值矩阵 , 共有 6 6 6 个连接 , 如 w 14 w_{14} w14 代表单元 1 1 1 和单元 4 4 4 的连接 ;
W = [ w 14 w 24 w 34 w 15 w 25 w 35 ] W = \begin{bmatrix} w_{14} & w_{24} & w_{34} \\\\ w_{15} & w_{25} & w_{35} \end{bmatrix} W=⎣⎡w14w15w24w25w34w35⎦⎤
② x x x 矩阵 : 代表上一层单元的输出值 矩阵 , O 1 O_1 O1 代表单元 1 1 1 的输出 , O 2 O_2 O2 代表单元 2 2 2 的输出 , O 3 O_3 O3 代表单元 3 3 3 的输出 ;
x = [ O 1 O 2 O 3 ] x=\begin{bmatrix} O_1 \\\\ O_2 \\\\ O_3 \end{bmatrix} x=⎣⎢⎢⎢⎢⎡O1O2O3⎦⎥⎥⎥⎥⎤
③ b b b 矩阵 : b 代表上一层单元的偏置矩阵 ;
b = [ b 1 b 2 b 3 ] b=\begin{bmatrix} b_1 \\\\ b_2 \\\\ b_3 \end{bmatrix} b=⎣⎢⎢⎢⎢⎡b1b2b3⎦⎥⎥⎥⎥⎤
④ z z z 矩阵 : 代表隐藏层输入值矩阵 , 使用上面的 w , x , b w, x , b w,x,b 三个矩阵计算出的结果也是矩阵 , 结果是线性计算输入的值组成的矩阵 ;
z = [ I 1 I 2 ] z=\begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix} z=⎣⎡I1I2⎦⎤
⑤ a a a 矩阵 : 代表隐藏层的 2 2 2 个单元的输出值 ;
a = [ O 1 O 2 ] a=\begin{bmatrix} O_1 \\\\ O_2 \end{bmatrix} a=⎣⎡O1O2⎦⎤
即 :
O 1 = 1 1 + e − I 1 O_1 = \dfrac{1}{1 + e^{-I_1}} O1=1+e−I11
O 2 = 1 1 + e − I 2 O_2 = \dfrac{1}{1 + e^{-I_2}} O2=1+e−I21
3 . 矩阵形式 展开 :
① 隐藏层输入计算 : Z = W x + b Z = Wx + b Z=Wx+b
② 隐藏层输出计算 : a = f ( z ) a = f(z) a=f(z)
③ 隐藏层输入计算矩阵形式展开后为 :
[ I 1 I 2 ] = [ w 14 w 24 w 34 w 15 w 25 w 35 ] × [ O 1 O 2 O 3 ] + [ b 1 b 2 b 3 ] \begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix} = \begin{bmatrix} w_{14} & w_{24} & w_{34} \\\\ w_{15} & w_{25} & w_{35} \end{bmatrix} \times \begin{bmatrix} O_1 \\\\ O_2 \\\\ O_3 \end{bmatrix} + \begin{bmatrix} b_1 \\\\ b_2 \\\\ b_3 \end{bmatrix} ⎣⎡I1I2⎦⎤=⎣⎡w14w15w24w25w34w35⎦⎤×⎣⎢⎢⎢⎢⎡O1O2O3⎦⎥⎥⎥⎥⎤+⎣⎢⎢⎢⎢⎡b1b2b3⎦⎥⎥⎥⎥⎤
④ 隐藏层输出计算矩阵形式展开后为 :
[ O 1 O 2 ] = f ( [ I 1 I 2 ] ) \begin{bmatrix} O_1 \\\\ O_2 \end{bmatrix} = f( \begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix} ) ⎣⎡O1O2⎦⎤=f(⎣⎡I1I2⎦⎤)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)