基于C#的神经网络介绍
在 Build 2013 大会上,来自微软研究院的 James McCaffrey 在一场有趣的演讲中介绍了神经网络。尽管“使用 Visual Studio 开发神经网络”这个题目表明演讲是针对 Visual Studio(VS)的,但实际上它也适用于任何希望更多了解神经网络(NN)的开发者。McCaffrey 拥有数学博士学位,而在这场引人入胜的演讲中,他所面对的是拥有计算机科学背景的开发者们。
McCaffrey 的方法可以作为神经网络概念的有效介绍,为观众的进一步学习打下了坚实的基础。在演讲中,McCaffrey 围绕着他所提供的示例程序——基于一个人的年龄、收入、性别和信仰预测他的政治立场——并以此为基础展开了他的方法。这非常有效,因为它提供了一个使用神经网络的实际应用的例子,而且非常容易理解。
McCaffrey 的演讲涵盖了被他称之为“利用神经网络的 7 大核心概念”的内容:
- 前馈
- 活化
- 数据编码
- 误差
- 训练
- 自由参数
- 过拟合
McCaffrey 注意到许多新人在使用神经网络的时候,将会遇到缺乏可靠文档的问题。为此,他列出了一些他认为可靠的信息资源。虽然 McCaffrey 对于神经网络这一主题热情高涨,但他还是同时描绘了基于神经网络方法的优劣。进一步地,他还介绍了 6 个神经网络的替代品,以及这些替代品在何时会更适于应对需要解决的问题。
对于演讲最后所展示的神经网络示例程序,McCaffrey 提供了它的 C# 工作代码,以便听众进一步尝试。这个示例程序使用 Iris flower data set——它在测试机器学习程序时经常用到。(注意,在我获取的拷贝中,代码第 756 行需要添加一个分号以通过编译。)在 4 月的微软管理峰会上,McCaffrey 也做了一场类似的演讲,但我发现在 Build 大会上的这场内容更加丰富,也是值