深度学习入门之神经网络概述

深度学习入门之神经网络概述

参考书籍:深度学习入门——基于pyhthon的理论与实现



前言

上一篇博客中,我们学习了多层感知机处理非线性问题,尽管多层感知机可能可以隐含表达复杂函数,但是一个很重要的过程,就是设定权重参数的工作依旧是人工给定,这样就会存在问题,当我们不知道权重参数或者问题过于复杂,权重参数过于庞大时,我们就无法使用多层感知机,因为确定合适的、能符合预期的输入输出权重参数,难以确定。上一次博客中,不管是构建与门、与非门、或门、异或门,都是我们根据已知的输入输出来确定相对应的权重参数,即根据真值表情况确定权重参数。当一个问题过于复杂,权重参数过于庞大,人工设定权重就变得困难,于是就有了神经网络,它的出现解决了人工确定权重参数困难,它根据输入数据自动学习权重参数。


一、神经网络是什么?

神经网络包括三个层,输入层、隐藏层和输出层。每个节点代表一个神经元。节点之间的连接对应权重值。当输入变量通过神经元时,会运行激活函数,对输入值进行加权和偏置。输出传递给下一层的神经元,在训练过程中不断修改权重和偏置神经网络。


用图形来表示神经网络的话,最左边的那一列称为输入层,中间的一列称为中间层,有时也称为隐藏层,最右边的一列是输出层;
神经网络
隐藏层的神经元(和输入层、输出层不同)肉眼不可见。另外,有的也会将输入层、中间层、输出层依次称为第0层、第1层、第2层,层号之所以从0 开始,是为了方便后面基于python进行实现。
上图中的网络一共由3层神经元过程,但是实际上2层神经元有权重,因此也有人会将其称为‘2层网络’,也有人根据神经元过程,称为‘3层网络’。为了统一,我们将根据实际上拥有权重的层数来表示网络。

二、复习感知机

感知机

感知机
如上图,当感知机接收x2和x1两个输入信号,输出y。这个给过程用数学公式来表示如下:
y = { 0 ( b + w 1 x 1 + w 2 x 2 < = 0 ) 1 ( b + w 1 x 1 + w 2 x 2 > 0 ) y = \begin{cases} 0& (b+w1x1+w2x2<=0)\\1&(b+w1x1+w2x2>0) \end{cases} y={01(b+w1x1+w2x2<=0)(b+w1x1+w2x2>0)
b称为偏置参数,用于控制神经元被激活的容易程度;而w1和w2称为各个信号的权重参数,用于控制各个输入信号的重要程度。
从数学公式上来看,还有一个偏置参数b,但是我们发现在上图中确没有出现b这个参数,这是因为上图中我们并没将b参数画出来。
网络
如图,如果将b参数绘制出来,就是在输入信号添加一个权重为b的输入信号1。这样这个感知机将x1、x2和1三个信号作为神经元的输入,将各自和其权重相乘后传递给下一个神经元。下一个神经元中,计算这些加权信号的总和,总和超过0,则输出1,否则输出0。

三、激活函数

1.引言

在第二小节中,我们得到了各个输入信号的加权和表达式:
y = { 0 ( b + w 1 x 1 + w 2 x 2 < = 0 ) 1 ( b + w 1 x 1 + w 2 x 2 > 0 ) y = \begin{cases} 0& (b+w1x1+w2x2<=0)\\1&(b+w1x1+w2x2>0) \end{cases} y={01(b+w1x1+w2x2<=0)(b+w1x1+w2x2>0)
为了简化这个表达式,我们引入一个函数h来表示这种分情况的动作(超过0输出1,反之输出0)。引入h(x),将上面的分段函数改写为:
y = h ( b + w 1 x 1 + w 2 x 2 ) y=h(b+w1x1+w2x2) y=h(b+w1x1+w2x2)
输出值根据h(x)函数的值进行输出,输入信号的总和会被函数h(x)转换,转换后的值就是输出y。
h ( x ) = { 0 ( x < = 0 ) 1 ( x > 0 ) h(x) = \begin{cases} 0& (x<=0)\\1&(x>0) \end{cases} h(x)={01(x<=0)(x>0)

2.激活函数登场

上面叙述的函数h(x)会将输入信号的总和转换为输出信号,这种函数一般称为激活函数(activation function)。激活函数作用在于决定如何来激活输入信号的总和。
因此,将感知机计算的过程分为两个阶段进行处理,先计算输入信号的加权和,再利用激活函数的转换,将加权和转换为输出值。转换过程的数学表达如下:
a = ( b + w 1 x 1 + w 2 x 2 ) − − − ( 1 ) a=(b+w1x1+w2x2) ---(1) a=(b+w1x1+w2x2)(1)
y = h ( a ) − − − ( 2 ) y=h(a)---(2) y=h(a)(2)
计算输入信号和偏置的加权和为a,利用h()函数将a转换为输出信号y。过程如图所示:
含激活函数的神经网络
激活函数是连接感知机和神经网络的桥梁。
激活函数以阈值为界,一旦输入超过阈值,就切换输出,这样的函数称为‘阶跃函数’。因此,可以说感知机中使用了阶跃函数作为激活函数。


总结

以上就是介绍的内容,本文仅仅简单介绍了神经网络的概述,通过对感知机和神经网络的差异进行描述,简单介绍了作为桥梁的激活函数,从感知机到神经网络的开始就是通过激活函数开始,通过激活函数,将感知机的单一的0、1输出变成为以一个具体数值作为输出的神经网络。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值