转自: 人机与认知实验室

 

 

学:学生,教:教师,李:李晓榕

李:深入思考深度学习的短长,难免涉及对人工智能本质的认识或信念。在唯物论看来,一方面,人类智能是进化的产物,无论多复杂,最终必定是基于物质的;另一方面,机器胜任的问题都是能行可解的,而智能胜任的问题应该不限于这类问题。非能行可解问题大量存在。一个例子是著名的希尔伯特23个问题中的问题10:寻找一个算法,用它能确定任一给定的整系数多项式方程h(x1,...,xn) = 0是否有整数解。

 

学:“能行可解”是什么意思?

李:即存在某个算法(即按部就班的程序),能在有限步内解决。按丘奇—图灵论题,一个算法对应于一个可计算函数(即函数值全都可用某个算法算出的函数,其数学构造是部分递归函数)。这不难理解:①一个算法按定义把一个输入映射到唯一的一个输出,所以是一个函数。②这样的函数能是也只能是可计算的,因为其输出都是由输入通过算法算出的。反之,可计算函数都可由算法算出函数值。①②这两点表明,一个算法等价于一个可计算函数。③计算机(算法)的输入输出都是有限字长的数,因而都只能是有理数;有理数和自然数之间存在一一对应的等价关系(自然数集合和有理数集合同样大,有同样无穷多的元素,虽然自然数都是有理数而有些有理数不是自然数,但部分可与全体有同样多的元素是无穷集合的独特特性,违反人们基于有穷集合的直觉);可见,算法的输入输出都可用自然数等价表示;所以,可计算函数等价于可计算数论函数(数论函数就是从自然数到自然数的这类函数)。综合上述三点可得,一个算法等价于一个可计算数论函数。

  可计算数论函数的集合很小,是可列的(即与自然数的个数一样多)。而全体函数的集合是不可列的。函数可以比可计算函数复杂得多,也比可计算数论函数多得多,至少像实数比自然数多得多那样。可见,在函数的汪洋大海中,可计算函数充其量只相当于一滴十分简单的海水。你能接受“智能其实仅限于这一滴海水”这一论断吗?注意,纯机器智能就是纯算法智能,也就是可计算数论函数的智能。

  函数的恒常性。对于任意一个函数y = f(x),y的取值仅取决于x的取值,与x的变化历史无关。所以说函数具有恒常性(即不变性)。例如,若f(3) = 4,则不论x的取值序列是⟨1,2,3,4,5,6,7⟩,还是⟨10,4,6,3,4,8,7⟩,只要x = 3,f(x)就等于4。一个智能系统应该不至于如此死板,自缚手脚,受这种毫不变通的恒常性所限。它起码会根据输入的变化来调整输出,特别是在输出会反馈作用于输入的情况下,它会有意识地靠改变输出来调控来影响输入的取值。而任何函数都无法影响其输入(自变量)的取值,只能对输入做出反应,没有能动性,无法与外界交互,其输出被输入唯一确定。这样死板的东西会是智能的吗?

 

学:像深度学习这样包含学习的人工智能,大概不只是一个函数吧?因为它有自适应功能,从环境、从数据中学习,从而适应环境,也就是说与环境有交互。

李:要透过表象看本质。深度学习的人工神经网络(ANN)是指学成后用于完成任务的ANN,其输出取决于也只取决于其输入,而学成后它本身(结构、参数等)不受任何东西的影响,包括输入和输出。不论如何学习,学成后的ANN只能是一个算法,它把输入(自变量)映射到唯一的输出(因变量),所以只能是一个函数。这没有争议。任何算法本质上都只能是一个可计算函数,无法实现非这种函数的任何东西,更无法真正与环境交互。做个类比。一个随机数发生器算法,也是这样一个函数。对于任何一个确定性输入(启动值),输出也只能是确定而唯一的,是伪随机数,不是真随机数,尽管它与真随机数的性质相仿。除非算法本身存在随机性,而算法(即一种函数)按定义不允许存在非唯一性,遑论随机性。要得到真随机数,输入必须有真随机成分(或者发生器其实并非一个算法)。同理,如果强人工智能不能成立,算法就最多只能产生与真智能性质有些相仿的伪智能,要有真智能,输入必须有真智能的成分。

 

学:您能不能进一步说说为什么ANN是这么一个函数?

李:任何一个ANN都是一个数学公式的实现器,其结构(各神经元之间的连接与否等)和激活函数等决定公式的形式,连接的权重决定公式中系数的大小。所以,ANN只能是一个算法,即一个可计算函数。反之,麦卡洛克(Warren McCulloch)和匹茨(Walter Pitts)的研究表明,任何一个可计算函数都可以用某个ANN来实现。

 

教:那么,如果像AlphaGo Zero那样边学习、边完成任务,甚至“活到老,学到老”学无止境呢?也就是说,环境会改变ANN,这样的ANN还只是一个函数吗?

李:问得好!一个边学边做的ANN等价于一个可变的可计算函数,或者说可计算函数的序列,在每次做时,它是一个可计算函数f(x)。这种ANN的输出不仅依赖于输入,还取决于学习。这个函数序列作为一个整体⟨f(x)⟩,其输入是x的取值序列⟨x⟩ = ⟨x1,x2,…,xn,……⟩。⟨f(x)⟩可以看成一个函数或者泛函。可见,⟨f(x)⟩受学习策略影响。

  如何学习?ANN的“学习”是指:针对ANN的任务,评估ANN的输出,即看它与所瞄准的“目标输出”差别多大;再根据评估结果,调整ANN的参数,优化输出。这等价于在这个ANN结构所对应的可计算函数集合中,优选函数。可见,这种“学习”其实是针对任务、利用事例的强化培训,它依赖于知道“目标输出”。至少对于认知任务,“目标输出”就是真知(或可能的最优之知),这样的“事例输入—目标输出”数据即所谓“标定”的数据。这种学习需要丰富海量这样的数据(即大数据)。除了下棋、玩游戏等目标输出简单明确的少数任务外,数据的标定迄今靠人类智能。此外,如何根据评估结果来调参,也缺乏有的放矢的有效技法。综上所述,这种学习跟通常所谓“向环境学习”进而“与环境交互”不可同日而语。

  由上可见,机器的学习要有指导。实际上人类智能迄今都参与指导,于是这种边学边做所得的可计算函数序列就含有人类智能。不在学时,它就退化为一个可计算函数。对于不含人类智能的人工智能,学习只能靠另一个算法L。笨拙的教师能把笨拙的学生教得聪明智能起来吗?要能学得好(让结果是智能的),L是否得是智能的?而L只能是一个可计算函数,它能否是智能的?这见仁见智,又转回来了。

  注意,L不属于ANN本身。换言之,一个边学边做的ANN其实不只是一个ANN。ANN和L都只能是可计算函数。如果可计算函数能是智能的,ANN本身就能是智能的,无需L。如果可计算函数不能是智能的,ANN和L的这种结合能吗?可见,不含人类智能、边学边做的ANN未必(也似乎并不)比ANN本身更有可能是智能的。

 

学:您说的这些,我还是很迷茫。

李:抱歉,这个议题有些复杂,我恐怕讲得不够清楚。重要信息是:一个不变的ANN等价于一个算法,也等价于一个恒常不变的可计算函数;这类函数的复杂度必定低于某些其他函数的复杂度,其集合远小于全体函数的集合;一个边学边做的ANN等价于一个可计算函数的序列,在每次做时,它是一个可计算函数;整个序列是否智能,取决于序列如何变,它根植于学习是否智能;人类智能应该不是这样一个函数序列,但它是否等价于或者能否被(足够无损地)化归为这么一个序列?

 

内容中包含的图片若涉及版权问题,请及时与我们联系删除