【深度学习】2 浅层神经网络

1 问题的引入

给一张图片,如何判断它是不是一只猫呢?前文已给出了从数学角度判断的方式,让我们抛开这些,从生理角度想一想。

从眼睛接收到图片的光学信号,到大脑给出判断,中间存在一个隐藏的过程。我们在初中生物课本已经学过,身体的一切感知都会生成分泌物,作用在一个个神经元上,个个神经元组成复杂的网络,他们之间通过电信号传递信息,直至最后大脑做出判断。如何将上述过程以数学的角度复现呢?

某公司开会,到场的有各部门的领导以及大boss,boss该如何判断当前公司情况呢?

2 浅层神经网络

我们知道,Logistic回归的正向运算可以用下图形象概括,我们输入 X , W , b X,W,b X,W,b最终得到一个输出值 y ^ \hat{y} y^。中间的小圆圈里进行了计算,包括 z z z的求值以及激活函数 s i g m o i d sigmoid sigmoid的求值。此时,这个小圆圈就可以代表一个神经元,因为它依靠它具有的功能,对传递给它的东西进行了“思考”,并输出了一个值。
图1 Logistic回归正向运算*
图1 Logistic回归正向运算

依据常识我们知道,参与“思考”神经元不可能只有一个,于是我们往里加入更多的神经元参与“思考”。
图2 加入更多神经元之后的Logistic回归正向运算
图2 加入更多神经元之后的Logistic回归正向运算

图2与图1相比,多了不少神经元,且它们的位置关系也有所不同,因为生理角度来说,大脑中的神经元错综复杂相互联系,图中只是一个简化版本。我们将靠近 y ^ \hat{y} y^的那个神经元所在的层次称为输出层,即在这一层,“大脑”已经做出了判断。其余的神经元都属于隐藏层,因为在这些神经元中,我们无法看到输入值与输出值。我们以符号 [ 𝑚 ] ^ {[𝑚]} [m]表示第 m m m层网络中节点相关的数,这些节点的集合被称为第 m m m层网络。图2中,输入层 m = 0 m=0 m=0;输出层 m = 2 m=2 m=2

3 神经元如何“思考”?

让我们回想Logistic回归的正向运算,我们输入了样本值,经过平移旋转以及激活函数的运算,得到了一个 a a a值,这个 a a a值,就是图1中那个神经元经过思考后的结果,即这个神经元认为,输入值可以由它“思考”过后的值来代替!

将这种“思考”方式推广至图2中所有的神经元,即每个神经元都要进行一次求 z z z与利用激活函数求 a a a的计算过程!

[ 𝑚 ] ^ {[𝑚]} [m]表示该值在第𝑚层,以下角标 i _i i表示该值为当前层的第 i i i个,我们可以得到隐藏层的计算,如图所示:
隐藏层计算
隐藏层计算

将隐藏层的输出值排列得到 a [ 1 ] a^{[1]} a[1]
隐藏层的输出值排列
隐藏层的输出值排列

再将其输入输出层的神经元中计算得到最终的 y ^ \hat{y} y^也就是 a [ 2 ] a^{[2]} a[2]
输出层的神经元计算输出层的神经元计算

可为什么是这样思考的呢?

4 神经元如此思考的合理性
人与人是不同的,看问题的角度也是不同的,对问题的加工以及表述也是不同的。企业效益不好,员工想到了减薪,主管想到了裁员,老板想到了破产跑路。

反映到神经元计算中,输入层中三个输入值,隐藏层的神经元就要中三个角度对他进行思考,然后做一些自己的加工,最后得到一个自己思考后的输出值。

图中输入层有三个特征值,则对应隐藏层第一个神经元,它就得有三个思考角度,也就是说,他的 w w w是一个三维的矩阵。最后的思考结果是一个实数,所以 w w w矩阵要转置后才能正确的参与运算。

同样的,隐藏层的其他神经元也进行了相同的计算方式,最后将结果汇总,得到 a [ 1 ] a^{[1]} a[1]。此时 a [ 1 ] a^{[1]} a[1]为一个四维矩阵,因为有四个神经元参与了思考。他们将作为输入值传递给输出层神经元。

对于输出层神经元,它需要有四个思考角度,即他的 w w w是一个四维的矩阵,同样是在转置后,分别对 a [ 1 ] a^{[1]} a[1]中的值进行思考,然后做一些变换,得到自己思考后的结果。

5 神经网络的计算

有了上述分析,我们对神经元的思考过程有了认识,也同样对这些矩阵维度的来历有了把握。将其向量化,我们有了如下单样本的计算公式:
单样本神经网络计算
单样本神经网络计算

如何将其推广至多样本呢?

首先明确一点,在反向计算前,神经元的思考方式是确定的,即 W , b W,b W,b是确定的,以及激活函数也是确定的。

当我们仿照Logistic回归中推广多样本的方式,将其他样本的特征值当做列向量,纵向排列至 x x x中,将其记做 X X X,我们会发现, z [ 1 ] z^{[1]} z[1]横向拓展值,作为神经元对于后续添加样本的思考结果,因此, a [ 1 ] a^{[1]} a[1]也会横向拓展值, a [ 2 ] a^{[2]} a[2]也会横向拓展值,即样本的加入最终会在结果中反映出来。将其向量化,
在这里插入图片描述
最后我们得到公式如下(求 z [ 1 ] z^{[1]} z[1]未写),
多样本向量化
多样本向量化

6 神经网络的梯度下降
和Logistic基本一致,只不过在结果的基础上又多了一次运算,公式如下。
在这里插入图片描述在这里插入图片描述

7 思考与总结

神经网络中神经元都各种负责一个Logistic回归单元的计算,最后结果汇总,由输出层计算后得到结果。

为什么要使用神经网络?为什么要有神经元?神经元个数的选择有何学问?

让我们回到 1 问题的引入 中预设的公司开会场景,

我们把员工反映的问题以及外界对于公司的评价作为输入值,各部门的领导作为隐藏层,大boss作为输出层。

问题一:为什么要使用神经网络?为什么要有神经元?

此时大老板单枪匹马,无各部门的协同,一个人就是一个军队,有自己单独的一套思考方式,对于销量增加这一输入,做出的反应只有增加产量,但是他忽略了整个市场的情况,导致产量过剩,产品滞销。

后来他建立了不同部门,生产部、市场部、研发部等等,各部门各司其职,在大会中把各部门的不同角度的报告提交给了老板,老板最后汇总,拍板做出正确的决定。

所以为什么要使用神经网络,因为单个思考单元思考的角度总是单一的,无法从尽量多的角度挖掘出原始数据的所有信息,因此才需要建立神经网络,使用若干神经元对原始信息思考,挖掘出更多角度的信息,使得输出值于输入值的关系更拟合。

问题二:神经元个数的选择有何学问?

部门多了人就多了,工作总量是不变的,人多了就意味着有人吃闲饭,神经网络的计算,如果神经元过多,就会造成计算资源的浪费,应当依据生活经验确定合适的神经元数量。

上述情景属于理想化情况,因为现实生活中的企业管理不会这么僵化死板,如果老板深入基层,输出层也参与了隐藏层的计算会怎么样?如果部门领导添油加醋,隐藏层的 b b b出了问题怎么办?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值