我们的大脑在使用类似的特征吗?大多数情况下我们不知道。但值得注意的是,像我们在这里展示的神经网络的前几层似乎可以挑出图像的某些方面(如物体的边缘),这些方面似乎与我们知道的由大脑中第一层视觉处理挑出的特征相似。
但是,假设我们想要一个神经网络的 “猫识别理论”。我们可以说 “看,这个特定的网络做到了” —— 这立即给了我们一些关于 “问题有多难” 的感觉(例如,可能需要多少个神经元或层)。
但至少到现在为止,我们还没有办法对网络正在做的事情进行 “叙述性描述”。也许这是因为它在计算上确实是不可简化的,而且除了明确地追踪每一个步骤之外,没有一般的方法可以找到它在做什么。也可能只是因为我们还没有 “弄清科学”,还没有确定 “自然法则”,使我们能够总结出正在发生的事情。
当我们谈论用 ChatGPT 生成语言时,我们会遇到同样的问题。而且同样不清楚是否有办法 “总结它在做什么”。但是语言的丰富性和细节(以及我们在这方面的经验)可能会让我们比图像走得更远。
到目前为止,我们一直在谈论那些 “已经知道” 如何完成特定任务的神经网络。但是,神经网络之所以如此有用(估计也是在大脑中),是因为它们不仅在原则上可以完成各种任务,而且可以逐步 “根据实例训练” 来完成这些任务。
当我们制作一个区分猫和狗的神经网络时,我们实际上不需要写一个程序来(比如说)明确地找到胡须;相反,我们只需要展示大量关于什么是猫和什么是狗的例子,然后让网络从这些例子中 “机器学习” 如何去区分它们。
重点是,训练有素的网络从它所展示的特定例子中 “概括” 出来。正如我们在上面看到的,这并不是简单地让网络识别它所看到的猫咪图像的特定像素模式;而是让神经网络以某种方式设法在我们认为是某种 “一般猫性” 的基础上区分图像。
那么,神经网络的训练究竟是如何进行的呢?从本质上讲,我们一直在努力寻找能够使神经网络成功重现我们所给的例子的权重。然后,我们依靠神经网络以 “合理” 的方式在这些例子之间进行 “插值”(或 “概括”)。
让我们看看一个比上面的最近点的问题更简单的问题。让我们只尝试让一个神经网络学习函数:
对于这个任务,我们需要一个只有一个输入和一个输出的网络,比如:
但我们应该使用什么权重等?在每一组可能的权重下,神经网络都会计算出一些函数。例如,这里是它用几组随机选择的权重所做的事情:
是的,我们可以清楚地看到,在这些情况下,它甚至都没有接近再现我们想要的函数。那么,我们如何找到能够重现该功能的权重呢?
服务热线
1391-024-6332