这是一个为没有人工智能背景的程序员提供的机器学习上手指南。使用神经网络不需要博士学位,你也不需要成为实现人工智能下一个突破的人,你只需要使用现有的技术就行了——毕竟我们现在已经实现的东西已经很突破了,而且还非常有用。我认为我们越来越多的人将会和机器学习打交道就像我们之前越来越多地使用开源技术一样——而不再仅仅将其看作是一个研究主题。在这份指南中,我们的目标是编写一个可以进行高准确度预测的程序——仅使用图像本身来分辨 data/untrained-samples 中程序未见过的样本图像中是海豚还是海马。下面是两张图像样本:
为了实现我们的目标,我们将训练和应用一个卷积神经网络(CNN)。我们将从实践的角度来接近我们的目标,而不是阐释其基本原理。目前人们对人工智能有很大的热情,但其中很多都更像是让物理学教授来教你自行车技巧,而不是让公园里你的朋友来教你。 为此,我(GitHub 用户 humphd/David Humphrey)决定在 GitHub 上写下我的指南,而不是直接发在博客上,因为我知道我下面的写的一切可能会有些误导、天真或错误。我目前仍在自学,我发现现在还很缺乏可靠的初学者文档。如果你觉得文章有错误或缺失了某些重要的细节,请发送一个 pull 请求。下面就让我教你「自行车的技巧」吧! 指南地址:https://github.com/humphd 概述 我们将在这里探索以下内容: 设置和使用已有的、开源的机器学习技术,尤其是 Caffe 和 DIDITS 创建一个图像数据集 从头开始训练一个神经网络 在我们的神经网络从未见过的图像上对其进行测试 通过微调已有的神经网络(AlexNet 和 GoogLeNet)来提升我们的神经网络的准确度 部署和使用我们的神经网络 问:我知道你说过我们不会谈论神经网络理论,但我觉得在我们开始动手之前至少应该来一点总体概述。我们应该从哪里开始? 对于神经网络的理论问题,你能在网上找到海量的介绍文章——从短帖子到长篇论述到在线课程。根据你喜欢的学习形式,这里推荐了三个比较好的起点选择: J Alammar 的博客《A Visual and Interactive Guide to the Basics of Neural Networks》非常赞,使用直观的案例介绍了神经网络的概念:https://jalammar.github.io/visual-interactive-guide-basics-neural-networks/ Brandon Rohrer 的这个视频是非常好的卷积神经网络介绍:https://www.youtube.com/watch?v=FmpDIaiMIeA 如果你想了解更多理论上的知识,我推荐 Michael Nielsen 的在线书籍《Neural Networks and Deep Learning》: 设置 安装 Caffe Caffe 地址: 首先,我们要使用来自伯克利视觉和学习中心(Berkely Vision and Learning Center)的 Caffe 深度学习框架(BSD 授权)。 问:稍等一下,为什么选择 Caffe?为什么不选现在人人都在谈论的 TensorFlow? 没错,我们有很多选择,你也应该了解一下所有的选项。TensorFlow 确实很棒,你也应该试一试。但是这里选择 Caffe 是基于以下原因: 这是为计算机视觉问题定制的 支持 C++ 和 Python(即将支持 node.js:https://github.com/silklabs/node-caffe)(https://github.com/silklabs/node-caffe%EF%BC%89) 快速且稳定 但是我选择 Caffe 的头号原因是不需要写任何代码就能使用它。你可以声明性地完成所有工作(Caffe 使用结构化的文本文件来定义网络架构),并且也可以使用命令行工具。另外,你也可以为 Caffe 使用一些漂亮的前端,这能让你的训练和验证过程简单很多。基于同样的原因,下面我们会选择 NVIDIA 的 DIGITS。 Caffe 的安装有点麻烦。这里有不同平台的安装说明,包括一些预构建的 Docker 或 AWS 配置: 注:当我在进行练习的时候,我使用了来自 GitHub 的尚未发布的 Caffe 版本:https://github.com/BVLC/caffe/commit/5a201dd960840c319cefd9fa9e2a40d2c76ddd73 在 Mac 要配置成功则难得多,这个版本有一些版本问题会在不同的步骤终止你的进度。我用了好几天时间来试错,我看了十几个指南,每一个都有一些不同的问题。最后发现这个最为接近:https://gist.github.com/doctorpangloss/f8463bddce2a91b949639522ea1dcbe4。另外我还推荐:https://eddiesmo.wordpress.com/2016/12/20/how-to-set-up-caffe-environment-and-pycaffe-on-os-x-10-12-sierra/,这篇文章比较新而且链接了许多类似的讨论。 到目前为止,安装 Caffe 就是我们做的最难的事情,这相当不错,因为你可能原来还以为人工智能方面会更难呢! (责任编辑:本港台直播) |