aihot  2017-10-14 10:54:18  深度学习 |   查看评论   

浅谈深度学习基础 

  第二个Topic讲深度学习,承接前面的《浅谈机器学习基础》。

深度学习简介

  前面也提到过,机器学习的本质就是寻找最优模型,比如讲语音识别,就是将一段语音通过若干模型精准的转化为对应的文字,图像识别转化为识别结果,围棋程序转化为下一步走子,智能对话系统转化为对用户的回答。

  而深度学习是机器学习的一个大分支,深度学习的概念源于对人工神经网络的研究,深度学习的基本结构(也即模型)是深度神经网络。

  讲到人工神经网络就不得不先讲感知机,感知机是最简单的一种人工神经网络,是一种二元线性分类器。感知机抽象于生物神经细胞,神经细胞结构大致可分为:树突、突触、细胞体及轴突。单个神经细胞可被视为一种只有两种状态的机器——激动时为『是』,而未激动时为『否』。神经细胞的状态取决于从其它的神经细胞收到的输入信号量,及突触的强度(抑制或加强)。当信号量总和超过了某个阈值时,细胞体就会激动,产生电脉冲。电脉冲沿着轴突并通过突触传递到其它神经元。为了模拟神经细胞行为,与之对应的感知机基础概念被提出,如权重(突触)、偏置(阈值)及激活函数(细胞体)。

感知机

感知机

  不同的输入a与其对应的权重w相乘后全部加和,再与偏置值相加后送入激活函数,经激活函数后得到该感知机的输出。在人工神经网络中,规定神经元函数只能对输入变量(指向它的节点的值)线性组合后的结果进行一次非线性变换(激活函数)。这里的激活函数可以采用Sigmoid函数,前面的《浅谈机器学习基础》对其有讲述,Sigmoid函数的输出值在0到1之间:

浅谈深度学习基础

 

  感知机也被用来特指单层人工神经网络,以区别于多层感知机。感知机无法处理线性不可分问题。什么叫线性不可分?举个例子,二维平面上有两类点,无法用一条一维直线将其完全分开;N维空间中有两类点,用N-1维的分隔超平面无法将两类点完全分开,就叫做线性不可分。

  感知机(神经元)之间采用不同的连接方式,也就构成了不同的网络结构。每个神经元都拥有自己的权重值和偏置值。权重值和偏置值构成了这个网络的参数Θ

简单的前馈神经网络

简单的前馈神经网络

  给定Θ参数值可以定义一个神经元,也即定义一个函数;再给定网络结构,就可以定义一个神经网络,也即一组函数。

  深度神经网络中的深度意味着神经网络的层数很多,神经网络中第一层是输入层,最后一层是输出层,中间数层是隐藏层,每一层都由若干神经元构成。

  我们可以选择应用Softmax层作为输出层,Softmax层可以将输出层神经元的输出值进行处理,使其总和为1。这在分类场景,判定属于哪类的概率最大时,提供了方便,也使得数据更容易被理解。

  那具体处理问题时到底选多少层?每一层多少个神经元?这个只能靠直觉和试错。

  我们已经选定了深度学习的基本结构,也就是深度神经网络,接下来要谈的是对神经网络输出结果好坏的量化评估以及如何找到最佳的参数值。

  就拿我们刚才提到过的分类场景来谈,具体一些,手写数字识别场景,对于一个神经网络,我们给定其一组初始参数值,然后将手写数字以图片的形式输入,在输出层,我们有10个输出层神经元,每个神经元的输出分别代表了判定输入是数字0~9的概率,哪个神经元的输出值最大,也即该神经网络的判定结果是该神经元对应的数字。

  但是,在初始参数条件,一般神经网络的输出结果并不完全正确,我们需要对其参数进行优化,要优化参数,首先要度量误差,误差来源于预测结果与实际结果的距离,比如对于手写数字识别,给定一张写着『2』的图片,最理想的输出是,只有2对应的那个神经元输出为1,其它输出均应该为0。我们可以选择计算每个神经元的输出与理论结果的误差,然后将其加和,由此得到了我们对神经网络的优化目标,也即通过调整参数让整个损失函数的函数值最小。

  那我们该如何确定最佳参数值呢?遍历肯定不行,如果D层,每层N个神经元,那复杂度就是N的D次方。我们终究还是要选择梯度下降方法,梯度下降方法的原理在《浅谈机器学习基础》中有详细的原理介绍。

 1/16    1 2 3 4 5 6 下一页 尾页
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈深度学习基础(上)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]