第三章 浅层神经网络

1.神经网络概览

图3.1 神经网络概览

        如图3.1,logistic回归模型的流程就是,输入特征x、参数w和参数b,然后算出z,再使用sigmoid函数算出a即是 y^,,然后计算损失函数L,这就是神经网络。可以把很多sigmoid单元堆叠起来构成一个神经网络,每个单元都对应一个z运算和a运算。用[1]表示第一层,[i]表示第i层,第i层的输出即为第i+1层输入,逐层计算z和a,最后计算L,当然也会有反向计算求导过程。

2.神经网络的表示

图3.2 神经网络的表示

        如图3.2,先看看一个隐藏层的情况,第0层为输入层,输出特征集;第1层为隐藏层,因为在训练过程中我们看不到(或者说不需要看到)隐藏层的值,所以称之为隐藏层;第2层为输出层,输出预测值y^, 。每一层输出值称之为激活值a[i],一般不把输入层看成一个层,所以这是个双层神经网络。

3.计算神经网络的输出

图3.3 神经网络输出计算
图3.4 神经网络输出计算详细步骤
图3.5 神经网络输出计算完整步骤

        神经网络输出的计算其实是同一步骤重复很多遍的过程。单隐藏层神经网络中,输入层输入特征x即a^{[0]}a^{[0]}_1a^{[0]}_2a^{[0]}_3),接着第一层计算出z^{[1]}z^{[1]}_1z^{[1]}_2z^{[1]}_3z^{[1]}_4)和a^{[1]}a^{[1]}_1a^{[1]}_2a^{[1]}_3a^{[1]}_4),把a^{[1]}传递给第二层,第二层重复第一层的步骤,把a^{[1]}作为输入计算出z^{[2]}a^{[2]},最后得到预测值 y^,=a^{[2]}。假设输入特征x形状为(3,1),则W^{[1]}形状为(4,3),b^{[1]}形状为(4,1),a^{[1]}形状为(4,1),z^{[2]}形状为(1,1),a^{[2]}形状为(1,1)。

4.多个样本的向量化

        上面计算了一个输入样本的输出,下面用向量化方式计算多个输入样本的的输出。

图3.6 向量化

        如图3.6,描述了多个样本向量化过程,用上标(i)表示第几个样本。

5.向量化实现的解释

图3.7 向量化详细图形过程      

        如图3.7,假设有3个样本,紫色代表第1个样本,绿色代表第2个样本,黄色代表3个样本,暂且忽略b,由X计算得到Z再利用广播机制加上b,计算结果和一个个样本计算是一致的。

6.激活函数

        要搭建一个神经网络,可以在隐藏层选择使用什么激活函数,也可以在输出单元选择使用什么激活函数,这些可以根据情况选择,不同层激活函数可以不一样。在目前为止,我们一直用的都是sigmoid作为激活函数,但有时其他激活函数效果会更好。

图3.8 选择不同的激活函数

        如图3.8,a^{[1]}=σ(z^{[1]})改成a^{[1]}=g^{[1]}(z^{[1]}),g代表非线性函数,并不一定是σ(sigmoid函数)。在使用sigmoid作为激活函数的场合,一般使用tanh函数代替,tanh函数表现往往比sigmoid函数更好。有一特例就是当输出必须是0<y^, <1,则使用sigmoid函数,sigmoid函数值域是(0,1)。

sigmoid函数和tanh函数都有共同不足地方,当z特别大或者特别小时,函数的斜率接近0,这样会导致梯度下降算法变得非常慢。而Relu函数就不会有这问题,当z<0函数斜率为0,当z>0函数斜率为1,当z=0时斜率不存在,但实践中取值到这一点概率不大,我们也可以给这一点的斜率手动赋值为0或1。

选择激活函数有一些经验法则:

1.如果是二分类,输出为0<y^, <1,则选sigmoid函数作为输出层激活函数,其他地方使用Relu函数作为激活函数。

2.Relu函数是激活函数默认选择,如果隐藏层不知道选哪个作为激活函数,就选Relu函数。因为Relu函数没有斜率接近0的情况,不会减慢梯度下降速度。

3.有人担心Relu函数当z<0时斜率为0会影响梯度下降,实际会有足够多的隐藏单元使z>0,对于大多数样本的训练还是挺快的。

4.也可以使用leaky Relu函数,这样就不会有斜率为0情况,但使用的比较少。

图3.9 不同的激活函数坐标图      

        tanh函数比sigmoid函数优越,是因为sigmoid函数优化路径容易出现zigzag现象。

图3.10 zigzag现象

        在logistic回归模型中,z=w^Tx+b,a=g(z),L=L(a,y),则dL/dw=dL/da * da/dw=dL/dw * z,由于sigmoid函数值大于0,所以每个节点的dL/dw方向相同,则会导致如图3.10的zigzag现象(红色箭头),导致梯度下降算法缓慢。

7.为什么需要非线性激活函数

图3.11 换成线性激活函数      

        如图3.11,把非线性激活函数换成线性激活函数,这时神经网络只是把输入线性组合再输出,多个隐藏层和一个隐藏层没什么区别。所以非线性激活函数可以记录每一层的状态,这样神经网络才能计算出有趣的函数。

8.神经网络的梯度下降法

图3.12 神经网络梯度下降完整过程    

如图3.12,假设是双层神经网络,则正向过程为

Z^{[1]}=W^{[1]}X+b^{[1]}

A^{[1]}=g^{[1]}(Z^{[1]}),

Z^{[2]}=W^{[2]}A^{[1]}+b^{[1]}

A^{[2]}=g^{[2]}(Z^{[2]}),

反向过程为

dZ^{[2]}=A^{[2]}-Y,

dW^{[2]}=1/m* dZ^{[2]}A^{[1]T}

db^{[2]}=1/m* np.sum(dZ[2],axis=1,keepdims=True),

dZ^{[1]}=W^{[2]T}dZ^{[2]}* g^{[1]’}(Z^{[1]}),

dw^{[1]}=1/m* dZ^{[1]}X^T

db^{[1]}=1/m *np.sum(dZ^{[1]},axis=1,keepdims=True)。

9.随机初始化

        训练神经网络时,随机初始化权重w非常重要,如果将神经网络所有权重w都初始化为0或者都一样,那么梯度下降算法将完全无效。

图3.13 参数初始化为0      

        如图3.13,参数都初始化为一样,那么a1^{[1]}=a2^{[1]},dw也相等,两个单元都做一样的事,相当于一个单元,所以不允许权重w初始化为一样,偏置可以一样或者为0。

图3.14 参数随机初始化

        如图3.14,权重随机初始化后应该乘于0.01(或者其他值),避免权重过大,避免梯度过小,影响神经网络梯度下降。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,671评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,442评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,524评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,623评论 1 275
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,642评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,584评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,953评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,621评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,865评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,608评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,698评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,378评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,958评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,940评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,173评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,419评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,425评论 2 342

推荐阅读更多精彩内容