极客时间
21天打卡行动 16/21
<<人工智能基础课18>>多层感知器
回答老师问题:
反向传播算法是在 1986 年由乔弗雷·辛顿提出的,可今天,作为反向传播之父的辛顿却要大义灭亲。辛顿的观点是没有目标函数就无法进行反向传播,而如果数据没有标签自然就没有目标函数了。因此,要实现无监督学习就必须告别反向传播算法。那么应该如何看待辛顿的观点呢?
前面老师也讲了,无监督算法:聚类(1,k-均值聚类,2,层次聚类,3,基于密度聚类,4高斯混合模型,5,);降维;这类正与监督学习的目标相反,我觉得是对的;
今日所学:
1,多层感知器(multilayer perceptron)包含一个或多个在输入节点和输出节点之间的隐藏层(hidden layer),除了输入节点外,每个节点都是使用非线性激活函数的神经元;
2,多层感知器是一类前馈人工神经网络;
3,多层感知器的训练包括以下步骤:首先确定给定输入和当前权重下的输出,再将输出和真实值相减得到误差函数,最后根据误差函数更新权重。在训练过程中,虽然信号的流向是输出方向,但计算出的误差函数和信号传播的方向相反,也就是向输入方向传播的,正因如此,这种学习方式得名反向传播(backpropagation)。
4,反向传播算法通过求解误差函数关于每个权重系数的偏导数,以此使误差最小化来训练整个网络
5,在反向传播算法中,首先要明确误差函数的形式;
6,在反向传播算法中,每个输出神经元的误差都被写成平方项的形式,整个神经网络的误差则是所有输出神经元的误差之和;
7,明确定义了误差函数后,就要想方设法让它取得最小值。影响误差函数的因素无外乎三个:输入信号、传递函数和权重系数;
8,多层感知器采用对数几率函数作为传递函数;
9,求解误差函数的最小值就要找到误差函数的梯度,再根据梯度调整权重系数,使误差函数最小化;
10,链式法则是个非常有用的数学工具,它的思想是求解从权重系数到误差函数这个链条上每一环的作用,再将每一环的作用相乘,得到的就是链条整体的效果;
11,多层感知器的核心结构就是隐藏层,之所以被称为隐藏层是因为这些神经元并不属于网络的输入或输出。
12,在多层神经网络中,隐藏神经元的作用在于特征检测。随着学习过程的不断进行,隐藏神经元将训练数据变换到新的特征空间之上,并逐渐识别出训练数据的突出特征。
13,一个经验法则是训练样本数目应该是权重系数数目的 10 倍,这显然对计算能力提出了较高的要求;
14,多层感知器的训练要需要多次遍历整个数据集,因而迭代次数就成为另一个重要的问题。预先设定迭代次数无法保证训练效果,预先设定误差阈值则可能导致算法无法终止。因而常用的办法是:一旦误差函数停止减小,就终止学习算法。
15,多层感知器的训练要需要多次遍历整个数据集,因而迭代次数就成为另一个重要的问题。预先设定迭代次数无法保证训练效果,预先设定误差阈值则可能导致算法无法终止。因而常用的办法是:一旦误差函数停止减小,就终止学习算法。
总结:
讲课重点:
1,在感知器的输入层和输出层之间添加隐藏层,就可以得到多层感知器;
2,多层感知器是一类前馈神经网络,采用的是反向传播的学习方式;
3,反向传播算法要根据误差函数的梯度来调整权重系数,需要应用求导的链式法则;
4,单个隐藏层就能使多层感知器以任意精度逼近任意复杂度的连续函数。
展开