月度归档:2016年08月

机器学习(五)——神经网络的学习算法

代价函数与反向传播

神经网络是当今最强大的学习算法之一,我将开始讲述一种在给定训练集下,为神经网络拟合参数的学习算法,正如我们讨论大多数学习算法一样,我们准备从拟合神经网络参数的代价函数开始讲起,我准备重点讲解神经网络在分类问题中的应用。我还是和以前一样,用m表示训练样本的数量,用大写字母L来表示神经网络结构的总层数,然后我准备用sl表示第L层的单元的数量,也就是神经元的数量,这其中不包括L层的偏差单元,输出层也就是sL,因为L本身等于总层数。我们将会讨论两种分类问题,第一种是二元分类,在这里y只能等于0或1,也就是神经网络的输出结果h(x)会是一个实数,在这类问题里,输出单元的个数sL将是1,为了简化记法,我会把K设为1,这样你可以把K看作输出层的单元数目。我们要考虑的第二类分类问题,就是多类别的分类问题,也就是会有K个不同的类,我们的假设输出就是一个K维向量,输出单元的个数就等于K,通常这类问题里,我们都有K大于或等于3,因为如果只有两个类别,我们就不需要使用这种一对多的方法。我们在神经网络里使用的代价函数,应该是逻辑回归里使用的代价函数的一般化形式,对于逻辑回归而言,我们通常使代价函数J(θ)最小化,也就是-1/m 乘以后面这个代价函数,然后再加上这个额外正则化项,这里是一个j从1到n的求和形式,因为我们并没有把偏差项0正则化。

继续阅读

机器学习(四)——神经网络的表层结构

动机

神经网络实际上是一个相对古老的算法,并且后来沉寂了一段时间,不过到了现在,它又成为许多机器学习问题的首选技术,既然我们已经有线性回归和逻辑回归算法了,为什么还要研究神经网络?有时我们要解决的问题可能依赖于研究复杂的非线性分类器,在此之前,我们只是简单的增加二次项或者三次项之类的逻辑回归算法,但这并不是一个解决复杂非线性问题的好办法,因为当n很大时,将会产生非常多的特征项,最后的结果很有可能是过拟合的,此外,在处理这么多项时,也存在运算量过大的问题。然而对于许多实际的机器学习问题,特征个数n是很大的,比如计算机视觉,神经网络在解决复杂的非线性分类问题上,被证明是一种好得多的算法,即使你输入特征空间或输入的特征维数n很大也能轻松搞定。

继续阅读

机器学习(三)——逻辑回归与正则化

分类及表示

在分类问题中,你要预测的变量y是离散的值,我们将学习一种叫做逻辑回归(Logistic Regression)的算法,这是目前最流行、使用最广泛的一种学习算法。在所有的这些问题中,我们想要预测的变量是变量y,我们可以认为它能够取两个值0或1,是或者不是垃圾邮件,是或者不是欺诈,恶性或良性。标记为0的类,还有一个名字,叫做负类(negative class),标记为1的类,也叫做正类(positive class)。因此0可能代表良性肿瘤,1可能标记一个恶性肿瘤,将两个类别标记为正类或负类,0或1是任意的,其实怎样都可以,但是通常从直觉上来讲,负类总是表达缺少某样东西的意思,比如缺少恶性肿瘤,而正类就会表示存在某样我们寻找的东西,但是哪个是负类,哪个是正类的定义,有时是任意的,它并不太重要。现在,我们要开始研究只有两类0和1的分类问题,以后我们将讨论多类别问题,多类别问题中的变量y的取值可以是 0 1 2 和 3,或更多,这就是所谓的多类分类问题。那我们怎样开发一个分类算法呢?应用线性回归来解决分类问题通常不是一个好主意,通常来说,对一组数据使用线性回归,你可能会很幸运,但往往不是一个好想法,所以我不会用线性回归算法来解决分类问题。这里还有一个有趣的事情,如果我们要用线性回归算法来解决一个分类问题,对于分类,我们知道y取值为0或者1,但如果你使用的是线性回归,那么假设函数的输出值可能远大于1或者远小于0,这看起来有点儿奇怪,所以我们在接下来要研究的算法就叫做逻辑回归算法,这个算法的性质是,它的输出值永远在0到1之间,并不会大于1也不会小于0。顺便说一下,逻辑回归算法是分类算法,有时候可能因为这个算法的名字中出现了“回归”使你感到困惑,这只是因为历史原因而被这样称呼,所以千万不要被迷惑。

继续阅读

机器学习(二)——多变量线性回归

多变量线性回归

我们将开始介绍一种新的更为有效的线性回归形式,这种形式适用于多个变量,或者多特征量的情况。先简单介绍一下记法,现在我们有四个特征量,我要用x下标1 、x下标2等等,来表示这种情况下的四个特征量,然后仍然用Y来表示,我们所想要预测的输出变量,我要用小写n来表示特征量的数目,之前我们是用的“m”来表示样本的数量,然后我要用x上标(i)来表示第i个训练样本的输入特征值,x上标(2)这样表示,就是一个四维向量,事实上更普遍地来说,这是n维的向量,我用x上标(i)下标j来表示第i个训练样本的第j个特征量,因此具体的来说x上标(2)下标3代表着,第2个训练样本里的第3个特征量。既然我们有了多个特征量,我们的假设形式应该是怎样的,我们就不能再使用以前那种简单的表示方式了,取而代之的,我们将把线性回归的假设改成这样:

继续阅读

机器学习(一)——单变量线性回归

监督学习与无监督学习

监督学习(Supervised learning),意指给出一个算法,需要部分数据集已经有正确答案。比如给定房价数据集,对于里面每个数据,算法都知道对应的正确房价,即这房子实际卖出的价格。算法的结果就是算出更多的正确价格。监督学习中的一种即回归问题,意指要预测一个连续值的输出,比如房价。虽然从技术上来说,一般把房价记到美分单位,所以实际还是个离散值,但通常把它看作实际数字,是一个标量值,一个连续值的数,而术语回归,意味着要预测这类连续值属性的种类。另一个监督学习的例子是:你能否估算出一个概率,即肿瘤为恶或为良的概率?专业地说,这是个分类问题。分类是要预测一个离散值输出,这里是恶性或良性。事实证明,在分类问题中,有时输出的值可能超过两种。监督学习中,对于数据集中的每个数据,都有相应的正确答案,(训练集)算法就是基于这些来做出预测。回归问题,即通过回归来预测一个连续值输出。分类问题,目标是预测离散值输出。

继续阅读