1.神经网络
(1) 机器学习(Meachine Learning, ML)
机器学习是人工智能的特定子集,指训练机器进行学习。机器学习是基于使用计算机探测数据结构的能力而开发的,即使我们没有任何关于该结构样子的理论。机器学习通常使用迭代方法从数据中学习,其会不断对数据进行遍历,直到找到稳健模式为止。使用机器学习解决问题的一般流程:
最广泛采用的机器学习方法中的两种是监督学习(Supervised Learning)和无监督学习(Unsupervised Learning )
监督学习中,每个样本均有一个对应的标签,其主要用于实现对已知数据集的学习,完成分类和回归任务。而在无监督学习中,需要用某种算法去训练无标签的训练集从而能让我们我们找到这组数据的潜在结构。无监督学习大致可以分为聚类和降维两大类。
监督学习:
无监督学习:
(2) 神经网络(Neural Networks)
下图中每个圆圈都是一个神经元,每条线表示神经元之间的连接.神经网络按照层的方式进行组织,层与层之间的神经元有连接,而层内及跨层之间的神经元没有连接.最左边的层称为输入层,负责接收输入数据;最右边的层称为输出层,可以从这层获取神经网络输出数据.输入层和输出层之间的层称为隐藏层.隐藏层较多的神经网络叫做深度神经网络.而深度学习(Deep Learning, DL),就是使用深层架构的机器学习方法.
比起浅层网络(Shallow Learning, SL), 深层网络能够表达力更强.事实上,一个仅有一个隐藏层的神经网络就能拟合任何一个函数,但是它需要很多的神经元.而深层网络用少得多的神经元就能拟合同样的函数.也就是为了拟合一个函数,要么使用一个浅而宽的网络,要么使用一个深而窄的网络.而后者往往更节约资源.深层网络也有劣势,就是它不太容易训练,需要大量的数据及技巧才能训练好一个深层网络.
2.神经网络的运行
(1)感知器
神经元是神经网络的组成单元,神经元也称感知器。感知器算法在上个世纪50-70年代提出,成功解决了很多问题。下图为一个感知器单元:
但普通感知器不能完成线性不可分任务,因此它连简单的异或运算也做不了:
(2)BP神经网络
(2.1)基本概念
为提高感知器的表达能力,研究者将多个感知器进行了组合,这些单独的单元按照一定的规则相互连接在一起便形成了神经网络,从而获得强大的学习能力,因此神经网络可认为是一个多神经元系统。而不同的神经元连接方式组成了不同的神经网络模型, 其中BP(Back-Propagation neural network, BP)神经网络就是早期提出的一种,也称为全连接神经网络(Fully Connected Neural Network)。
可见它有如下特点:
特点:
1. 层结构布局,输入层,隐藏层,输出层。
2. 同层节点无连接。
3. 后一层节点与前层每一节点连接,即全连接。
4. 每一连接均有权重。
(2.2)前向传播
设定 aj 表示节点 j 的输出,netj 表示节点j的加权输入, wji 表示节点i到节点j的连接权重,设定 f 表示各层激活函数,此处设为sigmoid(), x1,x2....为输入层对应节点输入。 则:
我们写成向量形式即
则可以得出各层输出矢量,以第一层为例:
相应可得:
这样我们便完成了整个前向传播过程,为方便大家理解,下面我们举一个例子:
如下图网络,写出它的前向传播过程:
这里我们直接写出,即:
则输出矢量:
Y = f(W4 f( W3 f(W2f(W1X))))
其为各层权值的函数。
我们可以看出, 权值就是模型的参数,也就是模型要学习的东西。而对于一个神经网络的连接方式、网络的层数、每层的节点数等参数不是学习出来的,而是人为事先设置的,对于这些人为设置的参数,称之为超参数(Hyper-Parameters)。
(2.3)梯度下降算法
(1)目标/损失函数
在监督学习中,采用目标函数来表示神经网络输出值和样本标签值之间的接近程度,此处我们以t(样本标签)和y(神经网络输出)均方差的1/2来表示它们的接近程度,则一个样本的损失值可以表示如下:
整个样本集上的损失值计算:
对于一个训练数据集来说,误差最小越好,也就是损失函数的值越小越好,由此可见,模型的训练,实际上就是求取合适的W,使损失函数取得最小值.在数学上称作优化问题,而J(W)就是优化的目标,称之为目标函数(损失函数)。
(2)梯度下降算法
w的修改值每次都是向函数J(w)的梯度的相反方向进行。梯度是一个向量,它指向函数值上升最快的方向。显然,梯度的反方向就是函数值下降最快的方向。每次沿着梯度相反方向去修改 w的值,就能走到函数的最小值附近, 即:
其中 称为学习率,即有权重移动步长的含义,学习率越大,则权重随梯度更新越快,
但学习率过大,会使得神经网络发散,失去回归或分类精度。
(4)BP神经网络的反向传播
节点j要区分输出层节点和隐藏层节点:
以上就是关于神经网络的基本知识,限于个人水平难免有不恰当之处,请读者多多包容,同时整理不易,有帮助记得点个赞,也是我的动力了,谢谢。