Machine Learning

Deep Learning Note: 4-5 卷积神经网络案例分析(1)

1. 经典网络 1.1. LeNet-5   LeNet-5 是一个用于识别手写数字的网络,由 Yann LeCun 等人于 1998 年提出。其结构如图 1 所示。   LeNet-5 的输入是一张 $32 \times 32$ 的灰度图像,只有一个通道。先是两组卷积层和池化层的组合,然后是两个全连接层,输出 $84 \times 1$ 的向量,再通过一个特定的分类器得到预测值 $\hat{y}…
Read more

Deep Learning Note: 4-4 卷积神经网络:一个例子

1. 一个卷积神经网路的例子   图 1 展示了一个用于识别手写数字的卷积神经网络。   网络输入为 $32 \times 32 \times 3$ 的手写数字图像,第 1 个卷积层 CONV 1 使用 6 个 $5 \times 5$ 的过滤器,步长为 1,输出大小为 $28 \times 28 \times 6$,然后通过第 1 个池化层 POLL 1,数据大小降至原来的一半,即 $14 \t…
Read more

Deep Learning Note: 4-3 卷积神经网络:基本结构

1. RGB 图像上的卷积   前文中展示了灰阶图像上的卷积,对于 RGB 图像,它有三个颜色通道,此时需要使用三个过滤器进行卷积,如图 1 所示:   使用 $高 \times 宽 \times 通道数$ 的方式表示图像的大小,在图 1 中,一个 $6 \times 6 \times 3$ 的图像与一个 $3 \times 3 \times 3$ 的过滤器相卷积,可以将 $3 \times 3 …
Read more

Deep Learning Note: 4-2 卷积神经网络:填充和步长

1. 填充   在上面的例子中,使用 $6 \times 6$ 的图像与 $3 \times 3$ 的过滤器卷积,得到一个 $4 \times 4$ 的矩阵,这是因为在 $6 \times 6$ 的图像中,$3 \times 3$ 的过滤器有 $4 \times 4$ 个可以放置的位置。   更一般地,将 $n \times n$ 的图像与 $f \times f$ 的过滤器相卷积,结果的大小为:…
Read more

Deep Learning Note: 4-1 卷积神经网络:边缘检测

1. 计算机视觉   一些计算机视觉问题有: 图像分类(Image Classification):判断图像中物体的分类,如输入一张图像,判断它是否为猫的照片。 对象检测(Object Detection):不仅要判断图像中是否有目标物体,还找出各个目标物体的位置,如检测汽车前方路况图像中障碍物的具体位置。 神经风格迁移(Neural Style Transfer):使用一张图像的风格迁移到量一张…
Read more

Deep Learning Note: 3-7 端到端学习

1. 端到端深度学习   一些复杂的学习系统通常会具有多个处理阶段,端到端深度学习(End-to-End Deep Learning)将这些不同的处理阶段替换为一个神经网络。   例如对于语音识别,输入为语音数据,输出为语音对应的文本。传统的语音识别系统对语音数据的处理分为多个阶段,首先从语音中提取一些人工设计的特征(如 MFCC),然后通过机器学习算法提取音素(Phoneme),接着将音素串连成…
Read more

Deep Learning Note: 3-6 从多个任务中学习

1. 迁移学习   深度学习的一个强大之处在于,有时候可以将一个神经网络从某个任务中习得的知识应用到另一个任务上,这称为迁移学习(Transfer Learning)。例如一个网络学会了如何识别猫,可以将该网络学到的知识应用于读取 X 光片上。   假设训练了一个用于图像识别的神经网络,如图 1 所示:   现在想要将其学到的知识迁移到放射诊断上,即输入 X 光片,输出诊断结果。一种做法是移除原网…
Read more

Deep Learning Note: 3-5 不匹配的训练集和开发/测试集

1. 使用具有不同分布的训练集和测试集   深度学习算法需要大量的数据,有时候不得不从各种途径收集尽可能多的数据用作训练,导致训练集和开发/测试集具有不同的分布。   以从用户上传的图片中识别猫的应用为例,可以从两种途径获得训练数据:其一是使用应用用户实际上传猫的图片,这些图片通常分辨率不高,拍摄质量也不佳,这是我们真正关心的数据,即我们希望应用能在这些数据上有较好的性能,但这些数据的数量较少,比…
Read more

Deep Learning Note: 3-4 错误分析

1. 进行错误分析   对于人类也可以解决的问题,如果算法的性能不及人类,则可以通过对算法出现的错误进行手工检查,来指导下一步的行动,这一过程称为错误分析(Error Analysis)。   例如对于某个从图片中识别猫的分类器,发现其错误率为 10%,远高于预期。通过检查这个分类器分类错误的图片,发现它把一些图片中的狗也错误地识别成了猫。那么问题来了:是否应当着力提高分类器在狗的图片上的性能,如…
Read more

Deep Learning Note: 3-3 比较人类水平

1. 与人类水平做比较的原因   最近几年,将机器学习系统的性能与人类水平进行比较越来越流行,一个原因是随着深度学习的发展,机器学习算法的性能有了大幅的提升,在很多领域,机器学习算法的性能已经可以与人类相比。另一个原因是在一些人类也可以解决的问题上,更容易设计和搭建机器学习系统来解决这些问题。   对于很多机器学习任务,随着时间的推进,在算法的性能到达人类水平之前,进展会比较快;而当算法性能超过人…
Read more