作者:Tirmidzi Aflahi
原文链接:https://thedatamage.com/convolutional-neural-network-explained/Tirmidzi AflahiApril 14, 2019
目录
- 卷积神经网络结构
- 迁移学习
- 从图像分类到图像生成
- 卷积神经网络教程
- 卷积神经网络与 Python
- 准备数据
- 数据增强
- 训练准备
- 一个周期的技巧
- 我学到了什么
- 结语
让我们先来看看下面这张照片。
上面的图片并不是真实的,你可以打开图像并放大,就能看到那些马赛克了。这张照片实际上是人工智能生成的,是不是感觉和现实中的图片没什么不同?
从 Alex Krizhevsky 等人通过 ImageNet 竞赛将这项技术公诸于众,到现在只有短短 7 年时间。(ImageNet 是一年一度的计算机视觉大赛,比赛会将图片分成 1000 个不同的类别——跨度从阿拉斯加雪橇犬到厕纸。)Alex 和他的朋友们建立了 AlexNet 的程序,最后赢得了比赛的第二名。
这种技术被称为卷积神经网络(Convolutional Neural Network,CNN)。它是深度神经网络的一个分支,在图像处理方面表现得尤其好。
上图统计了几年前这项比赛夺冠算法的识别错误率。在2016年,这些算法实际上已经可以比表现得人类还要好(人类的错误率约为 5%)。
在图像识别领域引入深度学习实际上是一种突破——而不仅仅是改变。
卷积神经网络结构
那么,卷积神经网络技术是如何实现的呢?
卷积神经网络由于其独特的处理过程而优于其他深度神经网络结构。主要在于,它一次不止查看一个像素,而是将多个像素分组 (如上图中的 3×3 像素),以便理解其模式(pattern)。另一种说法是,它可以“看到”一组像素组成的一条直线或曲线。由于深度神经网络的深层性质,在下一个层次上,它看到的就不是一组像素,而是一组形成某种形状的直线和曲线。以此类推,直到形成一个完整的图像。
如果你想从最基本的方面了解人工神经网络,比如卷积核、池化层等等,你要学的还有很多。但是现在,不必自己训练,你可以直接使用很多相关开源技术。这完全不是在开玩笑,因为现在有一种技术叫做迁移学习。
迁移学习
迁移学习是一种将训练好的深度学习模型运用到其它更具体任务中的技术。例如,你在火车管理公司工作,想要评估火车是否准时,但你又不想仅仅为了这个任务而增加额外的劳动力。这时你就可以选择