第二部分深度学习算法
1-1、神经元和大脑
每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输入,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重
新网络为什么现在才兴起?
1-2、神经网络的模型表示
1-2-1、单个神经元的数学模型
上节中从生物学家角度上讲述了神经元的结构,模拟神经元,我们设计出如下图的数学模型:
x0是手动加的偏置,x1,x2,x3可以将其看成输入神经树突,黄色的圆圈则可以看成中心处理器细胞核,hθ(x) 则可看成输出神经轴突。因为这里是逻辑单元,所以我们的输出函数为:
一般把它称为一个由s 型函数(逻辑函数)作为激励的人工神经元。
激励函数的作用是非线性化,还有其他几种常用的:
阶跃函数,这是最简单直接的形式,也是人工神经网络定义时一般采用的。
逻辑函数,就是S型函数(Sigmoid函数),具有可无限微分的优势。
斜坡函数,RELU函数,最近比较火
高斯函数
1-2-2、神经网络的数学模型
将单个神经元,组成完整的神经网络如下图所示:
左边第一层 Layer1 被称为输入层。在输入层我们输入我们的特征项x 1,x 2,x 3。
右边最后一层被称为输出层。输出函数为:hΘ(x) 。
中间的所有层统称为隐藏层(还有多隐层的情况)。
1-2-3、神经网络模型的计算
如图
其中隐藏层中的元素我们用 表示。上标 j 表示的是第几层从左往右第j层(有时候我们并不只有简单一层),下标 i 表示第几个。就是第j层的第i个节点(神经元)的“激活值”。
注意:最左边是第1层,j从2开始。
输入层到隐含层
隐含层到输出层
上面的只是将特征矩阵中的一行交给了神经网络,我们需要将整个训练集都交给神经网络。每一个a都是由上一层所有的x和每一个x所对应的Θ决定的。
多隐层神经网络
可以推导出,前向传播的通用公式,如下:可以推导出,前向传播的通用公式,如下:
其中,当j = 1时,上述公式就是一个逻辑回归神经元;当j∈[ 1 , 2 ],则其表示单隐层神经网络的计算;依次类推。
神经网络正是这样解决比较复杂的函数,当层数很多的时候,我们有一个相对简单的输入量,通过加以权重和不同的运算送到第二层,而第三层在第二层作为输入的基础上再来进行一些更复杂的运算,每一层都可以看成是一种新的特征的构造,一层一层下去解决问题。
1-3、神经网络的应用
1-3-1、逻辑运算
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。
以and为例
这就是AND函数。
接下来再介绍一个OR函数:
OR与AND整体一样,区别只在于的取值不同。
1-3-2、多元分类
当我们有不止两种分类时(也就是 y=1,2,3,,, ),比如以下这种情况,该怎么办?如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。例如,第一个值a为1或0用于预测是否是行人,第二个值b用于判断是否为汽车。
输入向量 x 有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每一个数据在输出层都会出现 ,且 a,b,c,d 中仅有一个为1,表示当前类。下面是该神经网络的可能结构示例:
神经网络算法的输出结果为四种可能情形之一:
1-4、总结
本周通过探讨非线性回归的困境引入了神经网络,神经网络简单讲就是对大脑系统的模拟。
单个神经元,就是一个简单的逻辑回归(或者其他激活函数),神经网络是多神经元的组合。
通过增加隐含层,对特征进行非线性化和升维处理从而得到新的构造特征,从而解决复杂的非线性回归问题。