在这篇 Keras 教程中, 你将学到如何用 Python 建立一个卷积神经网络!
事实上, 我们将利用著名的 MNIST 数据集, 训练一个准确度超过 99% 的手写数字分类器.
开始之前, 请注意, 本指南是面向对应用深度学习感兴趣的初学者的.
我们旨在向你介绍一个最流行的同时也是功能最强大的, 用于建立神经网络的 Python 库. 这意味着我们将跳过许多理论与数学知识, 但我们还是会向你推荐一些学习这些的极好的资源.
开始之前
推荐的预备知识
本指南推荐的预备知识有:
机器学习的基本概念
Python 编程技能
为了能快速开始, 我们假设你已经具备了这方面的知识.
为什么要用 Keras?
Keras 是我们推荐的 Python 深度学习库, 尤其是对于初学者而言. 它很简约, 模块化的方法使建立并运行神经网络变得轻巧. 你可以在这里读到更多关于 Keras 的内容:
Keras, Python 的深度学习库
深度学习究竟是什么?
深度学习是指具有多隐层的神经网络, 其可以学习输入数据的抽象表示. 这个定义显然太简单了, 但对于现在的我们来说, 却是最有实际意义的.
比方说, 深度学习促进了计算机视觉的巨大进步. 现在, 我们能够对图片进行分类, 识别图片中的物体, 甚至给图片打标签. 要实现这些, 多隐层的深度神经网络可以从原始输入图片中按序学习更复杂的特征:
第一层隐层也许只能学习到局部边缘模式.
之后, 每一个后续层 (或过滤器) 将学习更复杂的表示.
最后, 最后一层可以对图片进行分类, 是猫还是袋鼠.
这类深度神经网络就称为卷积神经网络.
卷积神经网络究竟是什么?
简而言之, 卷积神经网络 (CNN) 就是将输入数据假