Posted on Jul 30, 2018 By Keyu Zhao
要说深度学习deep learning
,就先要谈到神经网络,或者称为人工神经网络artificial neural network,ANN
.神经网络时一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系.
神经元
在了解神经网络前,先了解它的基本组成单元–神经元.上图就算是一个简单的神经元了,它有3个输入,分别是a1,a2,a3.
我们所使用的神经元通常由两个部分组成.一个是线性模型
,另一个是激励函数
.
我们先说这个神经元的线性模型. 这里的a是一个3维的向量,当然它可以是其它维数的.我们由此建立了一个有3个
输入项
的神经元f(a),展开先为f(a1,2,a3).然后带有一个输出函数值output,这个output的输出值就是函数的输出值f(x).这个函数我们写作:
y=f(x)=wx+b
这种方式也是神经元最核心部分对a所做的线性处理,其中a时一种1n的矩阵,而w是一个n1的权重矩阵
,b是偏执项
.
举个例子,有一个房地产商用于对客户质量所用的评价函数,所用的假如a矩阵元素分别为
34,20,1\.
分别代表
年龄,年收入,性别.
而w矩阵为
[0.8,2.4,10]
分别代表
[年龄权重,年收入权重,性别权重]
f(x)=34*0.8+20*2.4+1*10=85.2
这种评价体式下这位客户获得的评分为85.2分.这样,在对一系列的客户进行评分后就可以进行进一步的工作了.
以上便是神经元工作时的简单场景.但是这些权重又是如何得到的呢?
大多时候是又逆向
的方法得到的.我们首先要有庞大的客户样本,然后通过数据对权重的训练最后得到最合适的值.
激励函数
是神经元的重要组成部分,它在神经元当中紧跟在一个f(x)=wx+b
函数后,用于加入一些非线性的因素,从而得到输出z
.在目前深度学习框架中,大家大多选取比较好用的哪几种激励函数.
Loss函数
又名损失函数
在统计学,统计决策理论和经济学中,损失函数是指一种将一个事件(在一个样本空间中的一个元素)映射到一个表达与其事件相关的经济成本或机会成本的实数上的一种函数。更通俗地说,在统计学中损失函数是一种衡量损失和错误(这种损失与“错误地”估计有关,如费用或者设备的损失)程度的函数。`
在机器学习中,我的理解是衡量机器学习过程中判断和理想值偏差的函数,当它的值足够小时,我们就大功告成了.
以这种方式的损失函数为例:
Loss=∑|w*xi+b-yi|
继续按照上面的客户评分举例.
w是权重矩阵,xi为第i个客户的数据向量,假设有n个客户的数据用于测试,y为实际的观测值.取绝对值的含义在于不论比实际观测值小或者大,都是一样的差距.Loss的值为每个数据映射后的值与实际观测值的差的和.理论上来说,当Loss值为0时,w就是理想权重,但是这种状况太理想化了,在实际的生活中几乎见不到.但有一点可以肯定,Loss越小就说明,映射关系越准确.我们在训练过程中,根据实际要求,设置不同的精度,达到精度范围内那便可以算作合格了.
神经网络
一旦多个神经元首位链接形成了一个类似网络结构来协同工作的时候,那便可以被称作神经网络
了.神经网络没有规定有多少层,也没有规定每一层有多少个神经元,全是在各个场景下,通过测试,最后得到的一个适用于当前场景的网络设计.
一个神经网络通常分为这样几层:
输入层
(input layer),隐藏层
(hidden layer).输出层
(output layer).
输出层
在整个网络的最前端部分,直接接受输入的向量,它不对数据做任何处理,因此这层不计入层数.
隐藏层
可以有一层,或者多层.输出层
是最后一层,它用于输出整个网络处理的值,这个值可能是一个分类向量值,也可能时一个类似线性回归那样产生的连续的值,也可能时别的复杂类型的值,根据需求不尽相同.
神经元像图中所示首尾相接,前一个神经元接收数据,数据经过处理后传递给下一个神经元,像这样逐层传递.
深度学习
所谓深度学习
(Deep Learning),指的便是基于深度神经网络的学习,这个Deep指的时神经网络的深度,即层数多.