训练神经网络并不容易。有时根本不能学习(欠拟合/ underfitting),而有时能准确地学习你给算法的数据,但是算法学到的「知识」不能泛化到新的、没见过的数据(过拟合/ overfitting)。有许多方法来解决这些问题。
2.8-2.11. 正则化(regularization),初始化参数(parameter initialization)等 ★★ 7.5. Dropout 方法 ★★ 6(前半章). 设置数据和损失函数(loss)★★ 3. 改进神经网络学习的方式 ★ 5. 为什么深度神经网络难以训练?★ 7. 深度学习的正规化 ★★★ 8. 优化训练的深度模型 ★★★ 11. 实用方法 ★★★ MNIST 上的 ConvNetJS Trainer 演示——不同的优化算法性能的可视化 ★ 梯度下降优化算法的概述 ★★★ 神经网络、流形(Manifold)和拓扑(Topology)★★★ 有许多框架提供标准算法,并针对现代硬件的良好性能进行了优化。这些框架中的大多数提供 Python 接口,除了著名的 Torch 是个例外(其需要 Lua)。一旦你知道如何实现基本的学习算法,现在是选择一个建模框架的时候了。
Theano 提供用于构建各种神经网络的低层级原生库(low-level primitives)。它由蒙特利尔大学(University of Montreal)的机器学习团队维护。参见:用 Theano 和 GPU 加速你的神经网络——用 Jupyter notebook ★ TensorFlow 是另一个低层级框架。它的架构类似于 Theano。它由谷歌大脑团队维护。 Torch 是使用 Lua 语言的流行框架。主要的缺点是 Lua 的社区不像 Python 的那么大。Torch 主要由 Facebook 和 Twitter 维护。 还有更高层级的框架,它们运行在这些低层级框架之上: Lasagna 是一个建立在 Theano 之上的更高级框架。它提供了简单的函数,从而可以用少量代码创建大型网络。 Keras 是一个更高级框架,建立在 Theano 或 TensorFlow 之上。 如果你需要更多关于选择框架的建议,请参见斯坦福大学 CS231n 课程的第 12 讲。★★ 卷积神经网络(Convolutional neural networks) 卷积神经网络(「CNN」)是一种特殊的神经网络,它使用了一些妙技来更快、更好地学习。ConvNets 从根本上变革了计算机视觉,并且也被大量应用于语音识别和文本分类任务中。
9. 计算机视觉(至 9.9)★★ 6(下半部).ConvNets 介绍 ★★ 7. 卷积神经网络 ★★ 8. 定位与检测 ★★ 9. Visualization、 Deep Dream、Neural Style、对抗样本(adversarial examples)★★ 13. 图像分割(至 38:00)包括 upconvolutions ★★ 6. 深度学习 ★ 9. 卷积网络 ★★★ 图像核函数(Image Kernel)的视觉阐述——展示卷积过滤器(Convolutional Filters,也称为图像核函数)如何转换图像 ★ Conv Nets:以模块化的视角 ★★ 理解卷积 ★★★ 理解自然语言处理(NLP)中的卷积神经网络 ★★ 每一个重要框架都应用了卷积网络。通常理解用更高级库编写出来的代码更容易。
Theano:卷积神经网络(LeNet)★★ 使用 Lasagne 来训练深度神经网络 ★ 检测糖尿病视网膜病变——出自 Kaggle 糖尿病视网膜病变检测竞赛最佳选手的一篇博文。包含一个绝佳的数据增强案例。★★ 使用深度学习进行的露脊鲸面部识别——作者在定位和分类过程中使用了不同的 ConvNets。内附代码及模型。★★ TensorFlow:在 CIFAR-10 数据集上进行图像识别的卷积神经网络 ★★ 在 TensorFlow 中使用一个卷积神经网络进行文本分类 ★★ 深度学习在 TensorFlow 中的实施 ★★★ Torch 中的 CIFAR-10 准确性为 92.45%——在 Torch 中实现带有批量归一化层(batch normalization layers)的 VGG-Net 网络 ★ (责任编辑:本港台直播) |