五千年(敝帚自珍)

主题:【原创】机器学习的基础是什么?(0) -- 看树的老鼠

共:💬154 🌺509 🌵1
分页树展主题 · 全看首页 上页
/ 11
下页 末页
          • 家园 再补充一下,我觉得人脑再进化和人工智能可以结合起来,最好

            的办法,是把目前占人脑内存最多的部分,如某些必要的记忆部分,交给机器去做,相当于人脑外带一个U盘或者硬盘,这样人脑就可以用于更重要的工作了。

            单发展人工智能,也许会遇到很多障碍,包括机器无法学习人脑的模糊思维,但是把机器当成人脑的外挂硬盘,则目前电脑的功能已经非常够用了,需要的只是怎么对接。

            当然对接也是非常复杂的,依然需要研究大脑神经元的工作原理。

            如果再加上人工子宫让大脑硬件进化,则人类智力很可能有个飞跃性的发展。

        • 家园 现在都假设人的大脑智能是进化出来的,但这个假设如果不对

          假如人是大脑由非常先进的外星文明创造出来的,而不是进化出来的,机器学习能达到和人相似水平,唯一的出路就是反向工程。我们现在看人脑,就像原始人看电脑一样。

          如果是这样,想要达到人脑的学习水平,除非科技水平达到能够理解人脑是如何工作的,或者有人知道如何反向工程人脑的设计。

          否则就像原始人是造不出电脑一样,在这种情况下,单靠算法是没有希望的。

          • 家园 我觉得恰恰相反。如果人脑是创造出来的,那么反而没这个问题

            因为既然人脑可以被更高等的智慧创造,那么说明次高等的智慧也可以创造出90%人脑性能的大脑,依次类推。。。

            这就好比芯片,intel可以做出的芯片,跑到3GHz、多Pipeline并行发射、多核多进程而且小到一个手指头大小等等,一个落后国家比如伊朗则肯定可以做出100MHz、单核单进程、而且巨大无比的芯片。

            恰恰是自己进化来的东西,除非模拟进化环境,不然很难复制。这也是为什么进化出的动物都是靠腿行走,但是人类发明代步几千年的却是轮子这种自然界中没有的东西。

            • 家园 人可以创造智能,但现在的科技水平不够,很多东西不能理解

              现在人类的科技树太低,总共就5000年文明史。如果一个科技有100万年文明,看人类跟小儿科一样。如果有几亿年文明,更不知道怎么看人类了。

              所以智能是不是数学问题,数学是不是世界的基础,都不好说。也许智能就是工程问题,一个一个神经元就是某种程度的最基础数字电路,大脑功能就是一个一个的功能模块,每个模块数字电路的设计和结构早就写在你的DNA里面了。整合在一起就是智慧。

              如果从这个角度看,大脑没准就是个生物电脑,里面有处理器,有存储模块,有预先编好的程序,有能自我发展的程序,没准还有我们可能没法想象的东西。这些都在有条不紊的运行,所以大部分人,生下来看到的颜色,听到的音节,都是一样的,就像预先编好的程序模块。性格和世界观,按照成长环境 有所不同,像是能自我发展的程序。

              我们人类,连最基本的生物体是如何运作都搞不清楚,连癌症都征服不了,连所有动物都有的视觉识别都搞不定。视觉识别,在生物大脑里没准也就是个简单的外设模块,低等动物都有这种能力。所以某种程度,我们在生物学的水平上就像原始人一样。你觉得原始人能设计出和生物电脑一样水平的东西吗,可能连智能是什么的理解都是错误的,起码得到科技树到了相应水平才可以。

          • 家园 神造论其实是很低级的

            外星高级文明论也是神造论,所以也是低级的。

            外星文明造了地球文明,那谁造了外星文明?

            一切神造论都是懒汉思想的反映,于科学发展无益。

            • 家园 现在所谓智能水平,学习能力,连动物适应环境水准都达远远不

              无所谓了,反正人脑智能是个复杂过程,是工程产物也好,是进化产物也好。

              不靠生物学进步,能反向工程大脑工作原理。想靠自己发明轮子,就能创造不同的智能,是很可笑的。

              所以现在所谓智能水平,学习能力,连动物适应环境水准都达远远不到。

        • 家园 非常赞成硬件改变,

          但不赞成学习过程与进化的关系无法逾越。我觉得既然是硬件改变,而且与改变当时的环境有关,则每个个人的改变都是不同的,每个个人都形成了不同的硬件,这本身的复杂性显然就造成了人脑没有简单的统一模式。

      • 家园 要讨论的东西很多,不要放弃

        现有的机器学习多半是基于某种数学模型,或者某几个数学模型的,恐怕很难很好处理这些问题:“比如自然语言处理、图像识别、语音识别”。为什么?其实你说的已经包含了答案。你说:

        那么,也许我们应该老老实实的,就当机器学习模型在凑答案、凑公式吧。管用就行。我们可以继续提高我们凑公式的能力。最早的时候,我们只有线性模型。后来我们有了多项式模型、支持向量机,后来呢,我们有了深度神经网络,它们都依据不同的假设,努力凑出更好的公式。

        这就是答案了。语言处理,图像识别,这些都是自然进化中用百万年为时间尺度凑出来的复杂事物,极端高度复杂,没有简单的数学模型可以包容,因此就需要类似于人脑这种复杂的处理机来处理,而人脑里面的东西,其实也就是百万年进化的一个凑出来的东西。

        那么规律在什么地方呢?就在于怎么凑最有效。我们怎么来建立一个有效的学习机,才是一切的核心关键。

        • 家园 特别喜欢你这个思路

          可惜我还不能宝推。

          在这篇文章中http://www.talkcc.com/article/3972043我认为好的机器学习方法,就是知道人脑处理语言、图像的函数形式是什么样,我们让机器也学着去用同样的函数形式。

          抱歉,我用了函数这个词,因为我考虑到今天数学模型的极强的表达能力,我觉得函数是可以表达人脑认知规律的,不知你怎么看?

          这个函数的基础是简单的,因为人脑神经元的运作很简单。但是,人脑百万年已经提前凑出了一个特定的神经元结构,这个神经元结构是很难在短时间由机器学习出来的。我觉得如果没有遗传的结构,一辈子的时间都学不会语言,更不用说像现在这样,一个孩子两三年就学会了。

          然后呢,这个遗传结构是如此复杂,很难想象它能用特别简单的数学概念,比如几次可导、几次方程来定义。所以我猜语言、图像这些任务,可能还是需要靠人的内省能力,多发现一些有用的规律,然后放到机器学习模型里去。

          更具体的,这么多年以来,自然语言处理基本上是统计和机器学习一统江湖了,大家做研究的时候基本不考虑语言学规律。但我怀疑基于语言学规律的方法还有复兴的一天,当然,需要和机器学习结合在一起。

          • 家园 推荐看这个文章

            推荐看这个文章:外链出处

            That’s what makes the machine-learning approach such a spectacular boon: it vacuums out the first-order problem, and replaces the task of understanding with nuts-and-bolts engineering.

            这就是你要讲的。其实正是如此。人的智力活动,包括学习,其实都有很多机械的东西,所谓的低阶的东西,这些东西,都是可以用机器来替代的。而且这些可以被机器替代的范围还在扩大。

            • 家园 谢谢,好文章

              其实我觉得人的所有智力活动,就是机械的东西。

              机械也有不同的复杂度,比如universal approximator这样的东西或者图灵机这样的东西,是机械复杂度的顶峰了。

              这些机械有完成图像识别任务的潜能,只是我们不知道怎么让他们完成。

              Douglas Hofstadter想要直接编程完成,机器学习方法想要用简单的基本单元自动学习来完成。

              • 家园 我觉得大脑其实是非常低效的,

                从某个角度讲,就是他自己形成了一堆模式,不从基本单元开始算,而是直接往上套,这样在应付日常用途时又是十分高效的。

                总之我觉得大脑是归纳法的,在逻辑上不求完备,但会生成“硬件”,让思维在特定场合变得高效。从这个角度与现在的计算机不同。

    • 家园 机器学习的基础是什么?(4) 与传统科学方法的区别

      回到(1)线性分类器一节所说的例子。一个典型的机器学习过程是这样的:

      假设我们要让机器学会从人脸中猜出人名。我们只要准备一些照片和对应的人名(这一步需要人工参与),然后,对于给机器新的照片(这些照片属于之前见过的人的不同角度的照片),机器就能自动猜测出人名。

      看到这个过程后,什么感觉?人就在最初给每张照片标了标人名,然后智慧就从石头缝里蹦出来了?科学研究什么时候变得这么简单了?如果科学研究这么简单,整个物理学披荆斩棘的历史,还有什么意义?

      因为这个,我总觉得,机器学习有什么地方错了。

      相比于传统科学研究,机器学习得到的模型,没有智慧。在实用中表现的很好,但没法让我觉得世界真的是这么运作的。

      1. 是因为机器学习算法中通常都包含了概率的成分吗?

      最初,我找到的靶子是:机器学习通常都引入了某些概率分布。这一点也曾经让我困惑,在经典物理学中似乎并不常引入概率分布,大部分经典物理学定理都有一种确定性的、让人心安的感觉,而一旦引入概率论,我就失去了这种感觉,所以,或许我的不安来自于概率论。

      那么,概率论到底是在说什么?

      想象丢硬币这个例子,每次丢硬币会得出不同的结果。在一般的概率教材上,都会说,丢硬币是一种典型的随机实验,所以丢硬币可以用一个概率分布来建模,正面的概率为0.5,反面的概率为0.5。

      在以上论述中,“随机”这个词好像有什么神圣性,赋予了使用概率分布的合法性。那么,什么是随机呢?

      在我们的文化中,随机常常有一种错误的印象。我们会觉得,随机似乎意味着某种不可控的、完全无法预测的事件。从这种意义上来说,丢硬币完全不符合随机的定义。从物理学的角度来说,如果精确知道丢硬币的角度、力度,我们是可以精确预测硬币的结果的。这一点,在E.T Jaynes的《概率论沉思录》中给出了预测的方法。

      我自己知道的另一个例子是轮盘赌。一般人都会觉得,轮盘赌是一个典型的随机现象,因为结果完全无法预测。

      可是正如《玩转轮盘赌:简单出千技术帮你赢》http://www.guokr.com/article/412116/ 一文所说,曾经有人把单片机和简单的测量设备带入赌场,这样他们就可以以极高的精度预测弹珠最后会落在轮盘的哪个格子里。

      这样一个现象,我们凭什么说它不可预测,凭什么说它是随机的?

      我们重新来看硬币这个例子。至少在对于物理学没有深刻理解的人来看,似乎硬币确实是完全不可预测的。当我们说不可预测时,我们实际上是说:“在我的眼中,没有看到任何决定性的因素,能够预测硬币的行为。硬币的行为似乎是不可用其他因素解释的。”刚才我们说的这一段话,换到数学语言是什么呢?就是说在我眼中,没有什么自变量可以解释因变量。

      这才是概率论的本质。只要在你眼中,没有什么自变量可以解释因变量,那么,你就可以使用概率论,你放弃了,不去寻找任何自变量。哪怕一千年后人们发现了确定性的规律,这一刻,你使用概率论的行为也是对的。就这么放弃吧,假设因变量就是自动出现的,有时是正面、有时是反面,我们不用其他因素来解释这个现象,我们只是简单的看看,这个因变量或者说硬币的很多次投掷结果,是否有一定的规律性。这个规律性不涉及自变量,不涉及变量之间的关系,没有因果的概念,所以,算不上什么“科学”(如果我们认为变量之间的关系是科学的本质的话),但是,它至少是一个唯象的、足够好的经验定理。

      使用概率论并不是无代价的。一个真正的物理化的硬币投掷模型可以精确的预测硬币的行为,而现在,我们只能说,硬币有50%的概率是正面。我们因为承认自己的无知,而付出了精确度的代价。

      那么,我们回到最初的问题,为什么机器学习常常要引入概率?

      因为机器学习研究的问题一般都很复杂,我们能够发现的自变量通常不足以完全解释因变量,所以呢,我们坦然的承认,因变量中有一部分是由我们不知道、或者难以观测的自变量来解释的。

      从以上的讨论中,我们引入概率论,只是承认了某些东西是我们所不知道的(这当然是必然的,哪怕是验证F=ma的实验,实验数据中也会有一些东西是我们所不知道的因素所控制的,所以,其实早期科学家们满足于数据的足够好的拟合,其实他们也在偷偷使用概率论,只是他们不知道罢了)。而且,随着我们引入越来越多的反应了本质的自变量,我们的模型的精确度就会越来越高,我们的模型就会越少的依赖那个未知的概率分布。

      所以,概率论并不是机器学习和传统科学的区别。

      2. 是因为我们更相信人脑吗?

      我重新看我的微积分教材。在微分方程这一节,有一个这样的例子:

      空气通过盛有CO2吸收剂的圆柱形器皿,假设吸收层厚度为d cm,最初浓度为p,则最终浓度为 p * exp(-k * d)

      k是一个系数。

      书上对于这个定律的解释是这样的。假设将吸收层分为n小段,则每一段的厚度是d/n。则空气通过第一段后,CO2浓度是p (1- kd/n),通过第二层后p (1- kd/n)^2。如此循环,通过n小段后,浓度是p (1 - kd/n) ^ n。

      当n趋近于无穷大时,p(1-kd/n)^n 等于p * exp(-k *d)

      可是,看完以上这段解释之后,我发现,自己对于整个推理过程没有丝毫信息。这就是所谓的浮沙高台。假设CO2通过第一层后,浓度确实是p(1-kd/n),那么后面的整个推理都成立。

      可是,凭什么我们有p(1-kd/n)这个公式?

      假设有一个科学家,做了大量的实验,得出许多不同的p、d和最终的CO2浓度数据,然后发现p(1-kd/n)有很高的精度。我应该相信这个公式吗?

      如果我们把这些数据都送给机器,现代的机器学习算法可以轻而易举的发现p(1-kd/n)这个公式。既然我不相信机器学习模型,那么,这个公式的可信度、与真相的接近程度,并不会因为它是人脑发现的,而有丝毫提高。

      3.

      继续前一个例子。p(1-kd/n)这个公式冷冰冰的没有温度。可是当我发现它的一种物理解释之后,我就彻底的相信它了。

      假设有一个吸收层,若通过q个CO2分子,这个吸收层能够吸收r个分子。

      那么,如果我们通过2q个CO2分子,我们可以想象先通过q个,再通过q个。如果吸收层足够大,前q个CO2分子并没有改变吸收层的性质,那么,可以想象,唯一的结果是:2r个分子被吸收。

      所以,被吸收的分子数必然与初始浓度呈正比。

      以上这一段,从数学模型出发,给出了整个吸收过程的一种描述,这个描述最终落实到人可以感知的一种现象上。再抽象一点说,就是你把一个新知识和老知识建立了联系。

      这种理解一方面让我们对于公式极其的信服,另一方面也可以指导我们继续做出发现。如在以上的解释中,我们可以很容易的给出新的猜测:正比关系不会永远成立,当吸收层过小时,通过q个分子,吸收层就完全饱和了,那么再通过q个分子,不会有任何分子被吸收。而对于这个公式的理解,再一次加强了我们对于分子存在的信任感。

      以上例子是我个人的经验。在物理学史上,物理学家们也有着相似的信念。关于黑体辐射的瑞利-金斯定理在低频部分与实验测得的数据相符,但是在高频失效。韦恩公式则在相反的频段失效。而普朗克公式只是简单的通过数学手段将两个公式凑在一起。

      到这一步,我们并不能说科学家做的事情比机器高明多少,大家都是在凑数据。可是不同的是,正如我们从p(1-kd/n)中可以猜测出分子的存在,从普朗克公式中,普朗克猜测出了量子的存在,从而改变了物理世界。

      所以,是什么使得我们对传统的科学知识抱有信心?相信世界几乎就是按照科学知识所指示的那样运作?

      这是因为传统科学知识在经过解析之后,可以被人的直觉所理解,从而使我们对其抱有信心(好吧,我不能进一步解释,人的信心从何而来,人脑就是这么运作的)而机器学习模型不能。

      另一方面,传统科学知识是一个广泛联系的整体。一个发现往往在一个完全无法预知的方向增进我们的能力。正如从来没有人会想到,黑体辐射会导致量子概念的提出,在经过一连串的发现后,生出了固态物理这个孩子,并使得晶体管成为可能。也使得此刻的我,能够依赖电脑写出这篇文章。

      而与之相比,能识别人脸的机器学习模型,对于别的任何现象都没有解释能力。

      通宝推:唐家山,
      • 家园 我的想法是你恐怕考虑偏了一些

        机器学习,或者更准确讲,现今的机器学习,实际上和你的这些思考关系并不大。你的这些思考实际上是在思考人类的认知和科学的发展,而不是现今的机器学习。

        现今的机器学习要简单很多。其实就是一门比较专门的计算机学科,用一些方法(主要是统计学的方法),试图让计算机程序可以根据输入(或者说训练)的数据而产生一些程序自身的改进,从而使得这个程序工作得更好。

        如此而已。因此机器学习不具备认知能力,就非常正常。这就是我想你可能考虑偏了一些的原因。你说,“到这一步,我们并不能说科学家做的事情比机器高明多少,大家都是在凑数据”。你观察到这点,非常好。但是,这个凑数据的深度和广度完全不同,最关键的是背后的推动模式完全不同,或者说,凑数据用的道理的方式,完全不同。机器学习是用的现成的数学模型,唯一可以改变的就是模型的参数。而科学家群体能够做的事情,背后的推动,就完全不是现成的数学模型可以涵盖的。

        但是,机器学习正在迅速发展,很可能十年二十年后的机器学习就很不相同了。这就是我说的,类脑计算。完全可以想象,以后的每一个科研组,都配有他们专门的类脑计算机,从事他们的思考活动,帮助他们理清科研思想,提出科研假说,做广泛的联想,等等。

        类脑计算有什么特别之处?就可以使得能够超越现在的计算技术到如此的程度?我认为,关键的地方就是:现有的计算技术是建立在已知的数学模型上的,没有一个数学模型,寸步难行,因此也就被局限在这个数学模型中了。而类脑技术,可以容纳数学模型,这是远远超过人脑的地方。我们的脑力仅可以容纳一些比较小的数学模型。同时,类脑技术更是基于连接的,可以不用数学模型也能自动工作。这样的结合,就使得计算能力空前提高。

        今天报道,谷狗购买英国的深度思想公司。这就是这些大发展的前奏。

        • 家园 我确实思考偏了,因为我对传统科学方法感情太深

          现今的机器学习,实际上和你的这些思考关系并不大。你的这些思考实际上是在思考人类的认知和科学的发展,而不是现今的机器学习。

          如鸿乾兄所说,现今的机器学习主流,与我的这些思考关系并不不大。

          我之所以有这些思考,来源于最初我对机器学习的期待过高,以为它得到的模型和传统科学理论有可比之处。然后让我烦恼的就是:它怎么能比传统科学研究方法便捷这么多。

          我这系列文章,都是在解决这个问题,机器学习在解决问题上确实便捷很多,但和传统科学范式完全不同。完全牺牲了可理解性。

          但是,这个凑数据的深度和广度完全不同,最关键的是背后的推动模式完全不同,或者说,凑数据用的道理的方式,完全不同。机器学习是用的现成的数学模型,唯一可以改变的就是模型的参数。而科学家群体能够做的事情,背后的推动,就完全不是现成的数学模型可以涵盖的。

          回头来说这个问题,机器学习模型是否应该具备可理解性?我觉得是可能的。

          有两种理解方法,一个方法是机器学习模型的底层数学模型的概念是清楚的。这里不多说。你好像不太喜欢数学模型,咱们先放放,后面再谈。

          另一种理解方法,就是看这个模型的外在表现。以前在猫的帖子中,Google的深度神经网络各个节点的含义,很难用数学说清楚。这也是很正常的。假设人脑中有一个猫神经元,这个神经元的连接关系,用数学描述出来,人估计也看不懂。但是呢,把这个节点对哪些图像感兴趣,把这些图像列出来,人是能看明白的。

          同理,我们做一个自然语言处理的神经网络,现在也能够看出,某些神经网络节点表达的是一类概念相近的词语。最近还有一个特别好玩的工作,就是把每个词表达为一组神经网络节点的开与关,这样就形成了一个0/1向量。现在呢,我们把所有词表达为向量,结果有人发现,king向量-man向量+woman向量,得到的结果,与之最接近的向量对应的词语是什么,大家猜猜?

          再深一步,我在想,机器学习模型是否可以创造可理解的科学理论呢?现在的机器学习就是拿最简单的函数来搭出一个模型,比如这个函数是logistic函数。比如我们用机器学习来学习万有引力定理,万有引力定理是GMm/(r^2),机器搭出来的模型是用logistic函数模拟的,所以机器的模型里面没有乘法、除法、平方函数,但是,选取一个节点A,如果我们发现它和输入的关系就是M*m(这个关系是通过很多logistic函数模拟的),另一个节点B,它和输入的关系接近于r^2,然后节点C,它经过很复杂的网络与A、B相连,但是它从最终的表现来它等于A*B。

          如果这样,这个模型就可以理解了。就是说我们先学一个模型出来,然后用人可以理解的理论去解析它。

          再进一步说这个问题,未来的机器学习模型是否是一个数学模型?

          这个很难说。就像傅里叶最初搞出傅里叶变换的时候,也是连蒙带猜,混合了猜测、数学推理和实践。

          我觉得,第一个类脑模型,肯定是有一些大家的猜想、有一些数学支持、有一些工程实践。

          然后慢慢的,随着理解的深入,数学会变得多一点。数学能够把这个模型中的概念抽象化、精确化,这样就可以仔细分析这个模型为什么有道理,在保持这个模型的道理不变的情况下,用精确的方法尽量多的榨出油水来。

          关于你的担心:

          现有的计算技术是建立在已知的数学模型上的,没有一个数学模型,寸步难行,因此也就被局限在这个数学模型中了。

          这一点我想尝试解释一下。

          早期的数学模型,确实约束很强,比如线性分类器,上来就限制死了,只能是线性函数。

          不过现在的很多模型都声称自己是universal approximator,什么意思呢?就是说可以模拟任意函数。所以我觉得,数学模型其实不是特别强的约束。

          现在麻烦的问题是,数学模型本身是universal approximator,可是我们机器的计算能力有限,不可能在有限的时间内遍历宇宙中所有可能的函数。怎么聪明的先检查那些性质比较好的函数(什么叫好性质?这个就是研究的焦点了。这是不是可以看成鸿乾兄所说的人脑认知规律?如果我们知道人脑能够表达什么样的函数形式,我们就能让机器也只检查这些函数),如果我们强行说,只能检查线性函数,那么就又回到了线性模型了。如果我们的约束松一点,比如我们对机器说,你最好给我线性函数,不过如果真的搞不定,多项式啊或者更复杂的函数也可以,这样机器的限制就松一点了。


          本帖一共被 1 帖 引用 (帖内工具实现)
分页树展主题 · 全看首页 上页
/ 11
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河