Deep learning for Computer Vision with Python(1)从零开始入门计算机视觉

Deep learning for Computer Vision with Python(1)从零开始入门计算机视觉_第1张图片

本书的内容分成三个部分:

1. 初始阶段

初始阶段学习:机器学习、神经网络、卷积神经网络、建立数据集。

2. 实践阶段

实践阶段:深入学习深度学习,理解先进技术,发现最佳实践方式。

3. 图像网络阶段

完成计算机视觉领域的经验积累。使用大规模数据集和真实图片案例作为数据集,包括年龄和性别预测,交通工具模型识别。


本书提供了对应网站:http://pyimg.co/fnkxk

本文介绍前两章内容:基本介绍和深度学习简介。


1. 第一章 Introduction

本书介绍了如何实践计算机视觉,使用了目前真实世界常用的python语言和Keras和mxnet库。通过这本书的学习,能够掌握如何实现图像分类、目标检测、大规模数据集的训练网络。

会用到的是:Keras和mxnet库,不需要了解OpenCV,OpenCV仅仅会被用到图像加载上。

2. 第二章 什么是深度学习?

深度学习强调的是:模式识别(pattern recognition)和通过数据学习。

人工神经网络(ANNs)就是在模式识别领域通过数据进行学习。深度学习是ANNs的众多算法之一,这两者的概念在多数情况可以相互代替。深度学习的发展已经有60多年了,其实它很早就以其他名词存在,例如cybernetics,connectionism,Artificial Neural Networks。

了解深度学习的发展历史实际上是对前人的学习过程进行反思和复盘的过程。1943年第一个神经网络是一个二分类器,它对于每层的权重设置完全由人工决定。然后,1950年的感知算法权重就能够自动进行学习了。它使用了随机梯度下降(SGD)的方法。

在感知机的发展过程中,大家发现,感知机使用的线性函数只能解决线性分类问题。而XOR异或数据集就是一个非线性问题。

另外,随着计算机性能的发展,九十年代开发了前向神经网络。与非线性激活函数相结合,研究者可以解决XOR问题了。这让神经网络的研究到达新的阶段。

目前深度学习区别于先前神经网络的地方在于,现在有高性能硬软件设备,海量数据集来支撑训练,可以实现更多隐藏层(即输入层和输出层之间的层)。卷积神经网络目前被认为是最有用的图像分类器,在解决典型的计算机视觉问题的表现优于机器学习。

Deep learning for Computer Vision with Python(1)从零开始入门计算机视觉_第2张图片

 如图所示,对于一张图片,会从颜色特征、纹理特征和形状特征三个方面进行描述。传统的机器学习算法需要人工定义图像特征(类似上述的颜色、纹理、形状),并通过特征提取的步骤,将图片数据转成特征向量,作为机器学习模型的输入。但是,深度学习,尤其是卷积神经网络是另一个思路,并不需要手动实现特征筛选的算法,而是自动在训练过程中提取特征。

对于深度学习来说,隐藏层是用来提取特征的。从一些简单特征(边缘),到中等特征(角度),到抽象特征(目标对象),每一层的输入自动的由上一层来决定,通过边缘特征和角度特征的联合输入,就会得到目标对象部分的特征。输出层就会输出类似分类label的结果。深度学习的好处是跳过了人工特征提取的部分,但是,通过训练网络来获得有说服力的结果并非一件简单的事。

深度学习网络的“深度”

我们知道,深度学习的网络层数通常很多,但是多少层以上算是深度学习,目前仍然没有一个共识。在过去,阻碍一个任务使用的网络不能超过两层的主要因素有三点:

  • 没有大型带标签的数据集;
  • 电脑的运行速度过慢;
  • 没有找到合适的激活函数。

而目前这些问题都得到了解决。一般来说,随着网络的加深,分类的精确度也更高。一个经典的图展示了机器学习和深度学习的优劣:随着数据集的增加,深度学习的表现在超过机器学习。

Deep learning for Computer Vision with Python(1)从零开始入门计算机视觉_第3张图片

我们可以通过以下几个规则判断是否是在深度学习:

  1. 是否使用了特定的网络,例如卷积神经网络(CNN),循环神经网络(RNN),长短记忆网络(LSTM);
  2. 网络深度 > 2

下文链接:Deep learning for Computer Vision with Python 计算机视觉与深度学习阅读笔记(2)_冰淇淋2333的博客-CSDN博客

你可能感兴趣的:(计算机视觉,大数据,计算机视觉,深度学习)