全连接神经网络
单个神经元
人们根据生物神经元(Neuron)的结构抽象出了神经元的的数学模型。
神经元输入向量,经过函数映射: 后得到输出,其中 为函数 自身的参数。
考虑一种简化的情况,即线性变换:,展开为标量形式:
参数 确定了神经元的状态。这就是神经元线性模型(单神经元模型)。
感知机
1943 年,美国神经科学家 Warren Sturgis McCulloch 和数理逻辑学家 Walter Pitts 从生物神经元的结构上得到启发,提出了人工神经元的数学模型,这进一步被美国神经物理学家 Frank Rosenblatt 发展并提出了感知机(Perceptron)模型。
感知机接受长度为n的一维向量,每个输入节点通过权值为, ????????[1,n]的连接汇集为变量,即:
其中 ???? 称为感知机的偏置(Bias),一维向量 称为感知机的权值(Weight),称为感知机的净活性值(Net Activation)。感知机是线性模型,并不能处理线性不可分问题。通过在线性模型后添加**函数后得到活性值(Activation) :
其中**函数可以是阶跃函数(Step function),也可以是符号函数(Sign function)。添加**函数后,感知机可以用来完成二分类任务。但是,阶跃函数和符号函数在 = 0处是不连续的,其他位置导数为 0,所以无法利用梯度下降算法进行参数优化。
阶跃函数:
符号函数:
以感知机为代表的线性模型不能解决异或(XOR)等线性不可分问题,这直接导致了当时新兴的神经网络的研究进入了低谷期。
全连接神经网络
感知机模型的不可导特性严重约束了它的潜力,使得它只能解决极其简单的任务。实际上,现代深度学习动辄数百万甚至上亿的参数规模,但它的核心结构与感知机并没有多大差别。它在感知机的基础上,将不连续的阶跃**函数换成了其它平滑连续可导的**函数,并通过堆叠多个网络层来增强网络的表达能力。
通过替换感知机的**函数,同时并行堆叠多个神经元,可以实现多输入、多输出的网络层结构。例如,构建一个3输入节点、2输出节点的网络层。
整个网络层可以通过矩阵关系式表达:
即
@ 表示矩阵乘法。
由于每个输出节点与全部的输入节点相连接,这种网络层称为全连接层(Fully-connected Layer),或者稠密连接层(Dense Layer),矩阵叫做全连接层的权值矩阵,????向量叫做全连接层的偏置向量。
通过层层堆叠全连接层,保证前一层的输出节点数与当前层的输入节点数匹配,即可堆叠出任意层数的网络。这种由神经元相互连接而成的网络就叫做全连接神经网络。
由于感知机模型与神经元模型的本质是一样的,所以有时候多层全连接神经网络也被叫做多层感知机(MLP)。