或者换个方式:我们可以对神经元进行编程,让这个神经元与一组特定的偏好对应。
如果我们只是想要预测下次出门吃什么,我们很容易就能找出神经元的一组权重和偏差。但如果我们要在一个规模齐全的网络上进行同样的预测,那该怎么办?
预测过程可能要耗很长一段时间。
幸运的是,我们不用猜测所需的权重值,只需创建可以改变神经网络参数(比如权重、偏差甚至结构)的算法,以便网络可以学习如何解决问题。
2
“以退为进”
在理想情况下,神经网络的预测应该与输入关联的标记相同。因此,预测与实际输出的差异越小,神经网络所学到的权重就越优秀。
我们用一个损失函数来量化这种差异。损失函数可以采用任何形式,例如二次损失函数(quadratic loss function):
y(x)是理想输出。当馈送带有参数θ的数据x时, 是神经网络的输出。由于损失始终为非负值,一旦取值接近于0,我们就知道网络已经学会了一个好的参数组。当然,这个过程中可能还会出现其他问题,例如过拟合,但这些可以暂时忽略。
应用损失函数,我们可以找到网络设置的最佳参数是:
因此,我们要做的不是猜测权重,而是在使用参数θ时,应用梯度下降技术将C最小化:
这时,我们需要留意,增加θ_i的值后,损失会如何变化,然后更新θ_i,以使损失稍微降低。η是一个很小的数字,它的变化取决于我们更新θ_i时所做的改变。
为什么η是一个小的数字呢?因为我们可以对它进行调整,以保证在每次更新后,数据x的损失会接近0。在多数情况下,这并不是一个好的解决方法,因为这虽然可以减少当下x的损失,但其他馈送到网络的数据样本很可能会因此而表现较差。
想必现在大家都已掌握了基本的原理,接下来我们来看看要如何构建一个量子神经网络(quantum neural network)。
3
量子神经网络工作原理
首先,我们向网络提供一些数据x,这些数据x通过特征图传递——通过特征图,我们可以将输入的数据转换成某种形式,从而构建输入量子态:
我们使用的特征图可能是任何形式,比如将一个二维向量x变换成一个角。