机器学习中使用的神经网络第五讲:CNN

Geoffery Hinton教授的Neuron Networks for Machine Learning的第五讲主要介绍物体识别问题的难点及克服这些难点的方法,重点介绍了数字识别和物体识别中使用的卷积网络。

Why object recognition is difficult

我们知道识别真实场景中的物体是很困难的,这一小节我们来介绍造成这些困难的一些东西。

  • Segmentation: 在一个图像中,我们很难将其中的一个物体与其他的物体分隔开。在现实生活中,我们人类有两只眼睛且我们身体可以移动,这样在视觉上可以很容易做到分辨物体。而图像是静态的,且一个物体很可能被另一个物体遮住一部分,这就造成了信息的缺失。
  • Lighting: 像素点的密度/亮度(intensity)是由物体的亮度决定的,我们从不同亮度的图像中得到的信息是不同的。
  • Deformation: 非仿射方式的变形也使得识别变得困难
  • Affordances: 这里还涉及到功能可见性(affordance)的问题,有很多物体是从用途角度去定义的,而非从视觉角度,例如椅子有着各种各样的物理性状。
  • Viewpoint: 视角的变化会造成图像的变化,而标准的学习方法是无法应付的。

阅读更多

机器学习中使用的神经网络第四讲

Geoffery Hinton教授的Neuron Networks for Machine Learning的第四讲主要介绍如何使用back propagation算法来学习到词汇的特征表示、Neuron-probabilistic language models和处理大规模输出的方法。

Learning to predict the next word

接下来的几小节主要介绍如何使用back propagation算法来学习到词汇的特征表示。我们从一个很简单的例子开始,介绍使用back propagation算法来将词汇间的相关信息转换成特征向量。

下图给出了一个家庭的树状图,我们要做的就是让神经网络去理解树状图中的信息,将其中的信息翻译成一个个命题,如下面第二张图所示。

阅读更多

机器学习中使用的神经网络第三讲:线性/逻辑神经网络和BackPropagation

Geoffrey Hinton教授的Neuron Networks for Machine Learning的第三讲主要介绍了线性/逻辑神经网络和BackPropagation,下面是整理的笔记。

Learning the weights of a linear neuron

这一小节介绍线性神经网络的学习算法。线性神经网络很像感知机,但又有不同:在感知机中,权值向量总是越来越接近好的权值设定;在线性神经网络中,输出总是越来越接近目标输出。在感知机中,每一次更新权值向量,其就更接近每一个“一般可行”的权值向量,这限制了感知机不能应用于更加复杂的网络,因为两个好的权值向量的平均可能是一个坏的。故在多层神经网络中,我们不能使用感知机的学习流程,也不能使用类似的方法来证明学习的可行性。

在多层神经网络中,我们通过判断实际输出是否越来越接近目标输出来判断学习的性能是否在提高。这一策略在解决非凸问题时仍然奏效,但不适合应用于感知机的学习。最简单的例子是使用平方误差的线性神经网络(linear neurons),也称为线性过滤器(linear filter)。如下图所示,y是神经网络对期望输出的一个估计,w是权值向量,x是输入向量,学习的目标是最小化在所有训练样本上犯的错误之和。

阅读更多

机器学习中使用的神经网络第二讲笔记:神经网络的结构和感知机

最近在Cousera上学习多伦多大学Geoffrey Hinton教授的Nerual Networks for Machine Learning,为保证学习效果,特整理了学习笔记,一方面加深理解,一方面试图将学到的东西讲清楚。

这一讲主要介绍神经网络的结构。

Types of nerual network architectures

这一小节介绍了三种不同的神经网络结构。

首先介绍向前反馈网络(feed forward network),其常见形式如下图所示,第一层是输入(input layer),最后一层是输出(output layer),中间是一层或多层隐匿单元(hidden layer,被称之为deep nerual network)。

阅读更多

机器学习基石第九讲:linear regression

机器学习基石第十讲介绍线性回归问题(linear regression problem),从这一讲开始课程介绍具体的机器学习算法。后面的大部分内容,博主已经学过,所以笔记可能会简略。

Linear Regression Problem

借助信用卡发放的问题来介绍线性回归,不过这一次不再是分类,而是要让算法根据客户信息给出信用额度。算法为每一个特征赋予一个权重,然后直接计算加权值,以此得到信用额度。

阅读更多

机器学习基石第八讲:noise and error

机器学习基石第八讲主要介绍噪声和误差度量,笔记整理在下面。

Noise and Probabilistic Target

现实中的数据很可能含有噪声(noise),例如前面的信用卡发放问题中,有的顾客符合发放标准但没有发给,或者同样情况的顾客有人发了有人没法,再或者顾客的信息不正确等等,VC bound是否在由噪声的情况下工作呢?

继续使用前面抽弹珠的例子,罐子中每一个弹珠代表一个数据,如果$f(x) \not= h(x)$,则将弹珠漆成橘色;如果$f(x) = h(x)$,则将弹珠漆成绿色。引入了噪声之后,原来的y就不是真正的f(x)了。现在想象这样每一个弹珠,它的颜色不停变化,称为probablistic(noisy) marbles,不过罐子内橘色弹珠的比例还是一定的。现在我们记录弹珠被抽出瞬间的颜色,比如一次抽取100颗弹珠,抽出瞬间有20颗是橘色的,那我们就可以估计抽出瞬间整个罐子的橘色弹珠比例为20%。

阅读更多

机器学习基石第七讲:the vc dimension

机器学习基石第七讲主要介绍了VC dimension,笔记整理在下面。

Definition of VC Dimension

上一讲我们找到了B(N,k)的上限,拿它和$N^{k-1}$做一个比较,发现当N够大时,前者比后者小得多。

阅读更多

机器学习基石第六讲:theory of generalization

机器学习基石第六讲继续讨论“学习是否可行的问题”。

Restriction of Break Point

继续前面的讨论,我们看$m_H(N)$是否会有一个很小的增长速度。回顾前面的四种成长函数及其break point。我们知道k是一个成长函数的break point,那比k大的值全是break point。

阅读更多

机器学习基石第五讲:training versus testing

机器学习基石第五讲继续讨论“学习是否可行”这一问题,这一讲比较难,建议大家多看两遍。

Recap and Preview

前面的课程得出了这样一个结论:在训练数据集足够大,H中包含的hypothesis个数有限的前提下,我们可以证明每一个hypothesis的$E_{in}$和$E_{out}$是相当的。在这样的结论下,我们就可以从H中选择一个$E_{in}(g) \approx 0$的hypothesis作为我们的g,且大概差不多(PAC)可以说$E_{out}(g) \approx 0$,也就说明了学习是可行的。

阅读更多

机器学习基石第四讲:feasibility of learning

刚刚完成机器学习基石的第四节,这一节讨论机器学习的可行性,用到了Hoeffding’s inequality等概率的知识,需要仔细揣摩。笔记整理在下面。

Learning is Impossible?

前面的课程中曾提到过说学习可能是不可行的,为此我们还通过推导来证明PLA算法是否会停下来。那我们再来考虑这个问题,看看学习是否可行。

我们先来用我们的’human learning’来解决一个二元分类问题,如下图示,图中给出了3个标记为-1的图案和标记为+1的图案,然后我们来猜一下下面的那个图案应该标记为什么。

阅读更多