深度学习:从手动特征工程到神经网络实现
在解决各种问题时,无论是借助机器还是手工完成,对于更高级的任务,我们都需要运用更先进的技术和工具。有时候,一台普通的计算器就能让我们及时且准确地解决问题。不过,对于一些复杂问题,我们可能需要深入研究更强大的解决方案,比如深度学习中的神经网络。
智能即符号的掌握
为了更好地理解神经网络内部的工作原理,我们可以通过一个名为 AToughGame 的游戏问题来进行说明。智能可以被看作是在多个粒度级别上生成符号(抽象概念)的能力。在这个游戏中,玩家根据给定的概率从一个级别进展到下一个级别。我们的目标是计算完成所有级别后收集到的宝藏的预期数量。
手动特征工程
AToughGame 问题的一般结构可以用状态图来表示。玩家按照给定的概率从一个级别进展到另一个级别。主要思路是成对处理状态,每次迭代后状态数量减少一个,这是一个典型的贪心算法。其关键在于实现一个组合操作符,以计算完成两个级别所有可能方式下宝藏的预期值。联合概率是各个级别概率的乘积,最终得到一个非常快速的线性算法。
如果通过某个级别的概率是 p,那么相反结果的概率就是 q = 1 - p。最终状态是获胜状态,我们的目标是计算完成所有级别后收集到的宝藏的预期数量。
建模聚合状态
对于组合状态,我们需要回答两个问题:
- 新状态的联合概率是多少?
- 新状态的联合值(用 v 表示)是多少?
新值是最后一个值和考虑所有可能离开两个状态方式的预期宝藏数量之和。我们可以用公式 (E(T) = v_1 + \sum_{i=0}^{\infty} v_0 * p_1 * p_0 *