前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )

【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )

作者头像
韩曙亮
发布2023-03-27 19:39:28
3440
发布2023-03-27 19:39:28
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

I . 线性回归 与 逻辑回归

1 . 神经元单元本质 : 一个 神经元 单元 , 其本质是 逻辑回归单元 ;

2 . 逻辑回归 与 线性回归 :

① 回归 : 用于预测连续的值 , 叫做回归 ; 预测离散的值叫做分类 ;

② 线性回归 : 确定若干变量之间的相互依赖关系 ; 回归分析中 , 自变量

x

, 因变量

y

,

y=wx +b

, 自变量和因变量之间的关系是一条直线 , 叫做一元线性回归分析 ; 如果有多个自变量 , 自变量与因变量是线性关系 , 叫做多远线性回归分析 ;

③ 逻辑回归 : 是广义的线性回归 , 类似于多重线性回归分析 , 其模型都包含

wx+b

; 多重线性回归将

wx+b

作为因变量 ; 逻辑回归 通过函数

L

, 将

wx+b

转为状态

p

, p 决定因变量的值 ,

L

函数如果是逻辑函数 , 该回归就是逻辑回归 ;

④ sigmod 激活函数 : 这里的 sigmod 激活函数就是逻辑回归函数 , 因此该回归也叫作逻辑回归 ;

⑤ 线性支持向量机 : 某种程度上是逻辑回归 ;

II . sigmod 非线性激活函数

1 . sigmod 非线性变换函数的作用 : 目的是为了进行非线性变换 ;

没有逻辑回归后果 : 如果没有非线性变换 , 不管神经网络是多少层的 , 只能进行

1

个线性变换 ; 每一层的输出都是上一层的输出的线性变换结果 , 即使有

100

层 , 其变换还是线性的 , 无法拟合复杂的的函数变换 ;

sigmod 函数是非线性的激活函数 , 目的是将线性的计算 , 转为非线性的计算方式 ;

引入了非线性激活函数 , 使整个神经网络的模型更加 灵活 ;

2 . 线性计算 : 神经元单元 输入的计算方式是 将上一层单元的输出进行线性叠加 , 乘以一个权值 , 再加上偏置 , 这是线性计算 , 该操作执行

100

次也是线性操作 ;

3 . 非线性计算 : 神经元单元 输出的计算方式是 将输入的数值 , 经过 sigmod 激活函数 , 转为一个

(0,1)

的输出结果 , 该计算过程是非线性的操作 ;

III . 神经元单元 逻辑

神经元单元 逻辑 :

h_{w,b}(x) = f(w x + b)
f(z) = \dfrac{1}{1 + e^{-z}}
x

是上一层连接单元的输出 ;

w

指的是单元之间连接的权重 ;

b

指的是单元本身的偏置属性 , 可能是一个单元的偏置 , 如果有多个连接 , 就是多个单元的偏置之和 ;

h

就是将线性的

wx+b

结果转为

(0,1)

区间值的隐藏状态 ;

w x + b

是本层的输入 ;

f

函数是一个非线性的激活函数 , 这里指的是 sigmod 激活函数 , 将本层的输入转为本层的输出 , 该函数将全体实数映射到

(0,1)

之间 ;

h_{w,b}(x)

是将上一层的输出 , 转为本层的输出 ;

IV . 单个 神经元单元 总结

1 . 单个 神经元单元 总结 :

① 线性回归转换成输入 : 计算中间层单元的输入时 , 通过上一层的输出值 乘以 连接权值 , 加上偏置 , 等一系列线性计算 , 得到输入值 , 这是线性回归变换 ;

② 逻辑回归转换成输出 : 将上述线性回归变换的结果 , 经过 sigmod 激活函数计算 , 将多个线性输入 , 转化成了

(0, 1)

区间内的 单个输出 ,

2 . 通过线性回归将输出转为输入 ;

然后通过 sigmod 激活函数 , 将输入转换成了

(0,1)

区间的 输出值 ;

单层的 多个神经元单元 , 可以看做是同时并发运行的逻辑回归单元 ;

V . 神经网络 每一层分析

1 . 神经网络本质 : 神经元的本质是运行单个逻辑回归单元 , 神经网络的本质是 在每一层并行运行多个逻辑回归单元 , 先后运行多层 ( 输入层 / 隐藏层 / 输出层 ) ;

2 . 神经网络每层单元运行机制 ( 并行运行多个单元 ) : 对于神经网络中的每一层 , 有若干个神经元单元 , 该层的运行相当于若干个 神经元单元 并行运行 , 即 该层的神经元单元同时进行 输入计算 , 同时进行输出计算 , 然后根据输出 , 计算后一层的每个单元的输入值 ;

3 . 神经网络每层的输入输出 :

① 线性输入 : 神经网络每一层的输入 , 可以看做若干线性回归 计算 ;

② 逻辑输出 : 神经网络每一层的输出 , 可以看做若干逻辑回归 计算 ;

4 . 神经网络层计算本质 : 将 向量值 ( 多个单元的输入值 ) 传入一组逻辑回归函数 ( sigmod 激活函数 ) , 得到的也是向量值输出 ( 多个单元的输出值 ) ;

向量值就是多个变量组成的一维矩阵 ;

VI . 神经网络 矩阵形式

1 . 使用上一篇博客的示例 : 以计算下图中的

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_5 = (w_{15}O_1 + b_1 ) + (w_{25}O_2 + b_2 ) + (w_{35}O_3 + b_3 )

② 连接权值 :

w_{14} , w_{24} , w_{34}, w_{15} , w_{25} , w_{35}

6

条有向弧连接的权值 ; 如

w_{14}

是单元

1

与 单元

4

连接的权值 ;

③ 偏置 :

b_1 , b_2, b_3

分别是 单元

1 , 2 , 3

的偏置 ;

④ 上层单个单元输出对应的输入值 :

(w_{14}O_1 + b_1 )

对应单元

1

输出到单元

4

的输入值 ;

(w_{24}O_2 + b_2 )

对应单元

2

输出到单元

4

的输入值 ;

(w_{34}O_3 + b_3 )

对应单元

3

输出到单元

4

的输入值 ;

(w_{15}O_1 + b_1 )

对应单元

1

输出到单元

5

的输入值 ;

(w_{25}O_2 + b_2 )

对应单元

2

输出到单元

5

的输入值 ;

(w_{35}O_3 + b_3 )

对应单元

3

输出到单元

5

的输入值 ;

2 . 隐藏层 输入 计算的矩阵形式 :

隐藏层输入计算 :

Z = Wx + b

隐藏层输出计算 :

a = f(z)

w

矩阵 : 上一层单元 与 本层单元 连接的 权值矩阵 , 共有

6

个连接 , 如

w_{14}

代表单元

1

和单元

4

的连接 ;

W = \begin{bmatrix} w_{14} & w_{24} & w_{34} \\\\ w_{15} & w_{25} & w_{35} \end{bmatrix}

x

矩阵 : 代表上一层单元的输出值 矩阵 ,

O_1

代表单元

1

的输出 ,

O_2

代表单元

2

的输出 ,

O_3

代表单元

3

的输出 ;

x=\begin{bmatrix} O_1 \\\\ O_2 \\\\ O_3 \end{bmatrix}

b

矩阵 : b 代表上一层单元的偏置矩阵 ;

b=\begin{bmatrix} b_1 \\\\ b_2 \\\\ b_3 \end{bmatrix}

z

矩阵 : 代表隐藏层输入值矩阵 , 使用上面的

w, x , b

三个矩阵计算出的结果也是矩阵 , 结果是线性计算输入的值组成的矩阵 ;

z=\begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix}

a

矩阵 : 代表隐藏层的

2

个单元的输出值 ;

a=\begin{bmatrix} O_1 \\\\ O_2 \end{bmatrix}

即 :

O_1 = \dfrac{1}{1 + e^{-I_1}}
O_2 = \dfrac{1}{1 + e^{-I_2}}

3 . 矩阵形式 展开 :

① 隐藏层输入计算 :

Z = Wx + b

② 隐藏层输出计算 :

a = f(z)

③ 隐藏层输入计算矩阵形式展开后为 :

\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}

④ 隐藏层输出计算矩阵形式展开后为 :

\begin{bmatrix} O_1 \\\\ O_2 \end{bmatrix} = f( \begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix} )
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
    • I . 线性回归 与 逻辑回归
      • II . sigmod 非线性激活函数
        • III . 神经元单元 逻辑
          • IV . 单个 神经元单元 总结
            • V . 神经网络 每一层分析
              • VI . 神经网络 矩阵形式
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档