神经网络

一、神经网络介绍(Neural network)

        神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系。

经典的神经网络结构

        经典的神经网络。这是一个包含三个层次的神经网络。我们称图中的圆圈为神经元,左边三个神经元组成的一列为输入层,中间神经元列为隐藏层,右边神经元列为输出层,神经元之间的箭头为权重(或参数)。权重具体的值需要通过神经网络的训练才能获得。

       我们实际生活中的学习体现在大脑中就是一系列神经网络回路的建立与强化,多次重复的学习能让回路变得更加粗壮,使得信号的传递速度加快,最后对外表现为“深刻”的记忆。人工神经网络的训练也借鉴于此,如果某种映射关系出现很多次,那么在训练过程中就相应调高其权重。

1、感知器(单层神经网络):

感知器是一种二元分类器,它是神经网络的基石。感知器是对神经细胞的模拟:

神经细胞

        一个神经元通常具有多个树突 ,主要用来接受传入信息,而轴突只有一条,轴突尾端有许多轴突末梢,可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。

感知器

         神经元是计算单元,相当于神经元细胞的细胞核,利用输入的数据进行计算,然后输出,一般由一个线性计算部分和一个非线性计算部分组成;输入层和输出层实现数据的输入输出,相当于细胞的树突和轴突末梢;隐藏层指既不是输入也不是输出的神经元层,一个神经网络可以有很多个隐藏层。

用感知器表示“与”门,激活函数为线性的

        输入以向量的形式表示x=(x0,x1, x2),你可以把它们理解为不同的特征维度,其中的x0是偏置单元(bias unit),相当于线性回归中的常数项。在经过“神经元”(激活函数)的计算后,感知器会输出一个大于0或小于0的数。箭头上的数字代表每个特征的权量(weights),相当于线性回归模型的参数,是收集信息的神经突触。


用感知器表示“与”门,激活函数是Sigmoid函数

总结:单层的神经网络其实就是一个逻辑回归函数。


2、多层神经网络

        单层感知器虽然可以建立与门、或门、非门等,但无法建立更为复杂的异或门(XOR),即两个输入相同时输出1,否则输出0。

        为了更为直观地理解这个问题,我们可以看下图:

        模型有两个输入(input1和input2),我们可以线性地区分或门的两类情况:即同时为0时在左下角,其它情况在右上角;与门的情况也可以线性地区分,即输出同时为1时在右上角,其它情况在左下角。但异或门呢?这种情况是无法作出线性区分的,也就是说,单层感知器无法实现异或门。

        我们在输入层和输出层之间加入两个单元的隐藏层:对于隐藏层的a_1单元(上标2代表这是第2层)来说,它实际上是且门(都为1时才输出1);对a_2单元来说,它的逻辑是(not x_1) and (not x_2),即同时为0时才输出1。而从隐藏层到输出层,是逻辑或。如下图所示:

用神经网络如何实现异或门?

线性激活函数下的神经网络  

 因为上面感知器的激活函数是线性函数。这种情况下,神经网络的输出也只是输入的某种线性函数,只不过是通过网络的形式来进行加权。线性函数的线性组合仍然是线性函数。也就是说,即便是多层的感知器,激活函数为线性时也无法实现输入00和输入11时的输出比输入01和10时大,即非线性。

把激活函数换为Sigmoid函数:

Sigmoid激活函数下的神经网络

总结: 多层神经网络其实就是一组神经元连接在一起的集合

        神经网络的第一层是输入层,值为xi,最后一层是输出层,如果作为分类算法训练则有多少个类别就应该有多少个对应的输出单元,对应的输出单元被激活代表着分类的结果。隐藏层可以有多层,每层可以有多个单元,规模越大训练的模型越复杂。而对于隐藏层中的每个单元本身都是一个逻辑回归的过程,也就是说每个隐藏单元都训练出了一个比前一层更加复杂的特征,这样一层接一层我们就可以训练出越来越复杂的特征,直到得到结果。一般凭经验来确定隐藏层到底应该有多少个节点,在测试的过程中也可以不断调整节点数以取得最佳效果。

双层神经网络模型

二、为什么需要神经网络

        首先,神经网络应用在分类问题中效果很好。 工业界中分类问题居多。LR或者linear SVM更适用线性分割。如果数据非线性可分(现实生活中多是非线性的),LR通常需要靠特征工程做特征映射,增加高斯项或者组合项;SVM需要选择核。 而增加高斯项、组合项会产生很多没有用的维度,增加计算量。GBDT可以使用弱的线性分类器组合成强分类器,但维度很高时效果可能并不好。

        从逻辑回归看,单层感知器只能解决线性问题。要解决非线性问题,需要引入多层感知器(加入隐层)。

三、神经网络的发展历程

三起三落的神经网络

        从单层神经网络(感知器)开始,到包含一个隐藏层的两层神经网络,再到多层的深度神经网络,一共有三次兴起过程。神经网络为什么能这么火热?简而言之,就是其学习效果的强大。随着神经网络的发展,其表示性能越来越强。

  从单层神经网络,到两层神经网络,再到多层神经网络,下图说明了,随着网络层数的增加,以及激活函数的调整,神经网络所能拟合的决策分界平面的能力。

随着层数增加,其非线性分界拟合能力不断增强

快速发展的外因:更强的计算性能,更多的数据,以及更好的训练方法。

四、前向传播

        在已经训练好权值的神经网络上,预测的工作是通过前向传播来实现的,所谓的“前向”就是从输入层到输出层的方向。整个传播过程就是沿着神经网络的方向在每个神经元上做逻辑回归,不断训练出更加复杂的特征,最后得到输出。以下图的神经网络为例:

五、代价函数与正则化

六、后向传播(bp算法)

        BP算法是一种计算偏导数的有效方法,它的基本原理是:利用前向传播最后输出的结果来计算误差的偏导数,再用这个偏导数和前面的隐藏层进行加权求和,如此一层一层的向前传下去,直到输入层(不计算输入层),最后利用每个节点求出的偏导数来更新权重。

        BP的思想就是:利用输出后的误差来估计输出层前一层的误差,再用这层误差来估计更前一层误差,如此获取所有各层误差估计。这里的误差估计可以理解为某种偏导数,我们就是根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误差。直到输出的误差达到符合的要求或者迭代次数溢出设定值。

BP网络的数学原理:

激活函数的求导:

        用什么方法最小化L?用随机梯度下降。也就是对每个训练样本都使权重往其负梯度方向变化。现在的任务就是求L对连接权重w的梯度。

这样反向传播得到所有的δ以后,就可以更新权重了。  

直观的BP神经网络的工作过程总结如下:

实例:

学习率是一个预先设置好的参数,用于控制每次更新的幅度。  

此后,对全部数据都反复进行这样的计算,直到输出的误差达到一个很小的值为止。

        这里介绍的是计算完一条记录,就马上更新权重,以后每计算完一条都即时更新权重。实际上批量更新的效果会更好,方法是在不更新权重的情况下,把记录集的每条记录都算过一遍,把要更新的增值全部累加起来求平均值,然后利用这个平均值来更新一次权重,然后利用更新后的权重进行下一轮的计算,这种方法叫批量梯度下降(Batch Gradient Descent)。

七、随机初始化权重参数

        在神经网络中训练初始化时,要特别注意不能使Θ中的值都相同,这样会使每一层的神经元都训练出完全相同的特征,神经网络就完全无法工作了。因此,在训练开始前,应该对Θ进行随机的初始化。

        对每一个Θ值(权重参数)随机初始化为一个[ -ε , ε ]范围的值:

八、梯度检测

当Θ为实数时:[ J(Θ+ε)- J(Θ - ε)] / 2 给出图像在改点的导数的近似值。

当Θ是一个n维向量时:

        反向传播是计算代价函数关于所有参数的导数或偏导数的一种有效方法。

        用梯度检测得到的导数值与反向传播所计算出的导数值进行比较,如果一样或者数值相近,就可以确定反向传播的实现是正确的。

总结:

神经网络的整个过程:

1、选择网络架构:多少个隐藏层(默认一个最合理),每层多少个隐藏单元(越多越好)

2、构建网络,随机初始化权重参数

3、计算出代价函数(损失函数)

4、反向传播计算出代价函数J(Θ)关于所有参数的导数或偏导数

5、梯度检测方法计算出导数值,把反向传播计算得到的导数值与其进行比较,看是否相等或相近。

6、比较后,值相近,以后停用梯度检测

7、用最优化算法,如梯度下降算法来最小化J(Θ)

参考:

神经网络浅讲:从神经元到深度学习

BP神经网络的数学原理及其算法实现

【深度学习】神经网络入门(最通俗的理解神经网络)

如何简单形象又有趣地讲解神经网络是什么

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

推荐阅读更多精彩内容

  • 原文地址:http://www.cnblogs.com/subconscious/p/5058741.html 神...
    Albert陈凯阅读 5,417评论 0 48
  • 假如你将远走 请不要悄然离去, 可否与我再把酒杯斟满醉一次, 青山月下多少事 林间绿水多少诗, 初见若似恍梦 再见...
    鲸鱼飞上天阅读 1,071评论 0 1
  • 问苍苍,几回寒暑?值此还同病树。翰林如若精魂在,应有百千词赋。君莫语,道染浊,流落红尘无归路。笑人堪住,恐词仙嫌耻...
    宗定法师阅读 405评论 0 3
  • 倒映的垂柳婀娜 落日的余晖羞红的脸 绿荷流淌着生命的颜色 莲花绽放着热情的火焰 离别后的重聚 一样的笑语不一样的沉...
    香自苦寒阅读 207评论 2 3