学习机器的特性是泛化,能够举一反三,即能够给出学习中未曾看到的示例的正确答案。如果学习所用的数据集里包含足够多的C和D示例,并且样式互不相同,感知器也许就能够识别出它从未见过的C和D,但前提是它们与所学习过的示例差别不是太大。
我们可以通过类推来说明这一泛化原理。人类之所以能够计算出346×2067的结果,并不是因为记住了所有可能的乘法运算结果,而是因为发现了乘法运算的原理。感知器的作用原理更为细致,它并没有存储所有可能的C的形状来识别,而是建立了一个独特的模型,使它可以执行所要求的识别。让我们看看它是怎样操作的吧。
训练系统的操作人员事先收集了大量的示例,也许是数百个或数千个大小、字体各不相同的字母C,然后将它们放在25个像素网格上的不同位置。字母D也如此操作。
如果想要训练一个感知器对C的示例生成+1,对D的示例生成–1,那么在学习过程中,感知器会给C图像中黑色的像素和D图像中白色的像素各分配一个正的权重,给在C图像中白色的像素和D图像中黑色的像素各分配一个负的权重。其中,权重代表着能够将C与D区分开的信息。
从这个过程就能看出学习的魔力:这台“训练有素”的机器能够超越我们输入的示例,识别出从未见过的图像。