博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
外行的看法
阅读量:6840 次
发布时间:2019-06-26

本文共 4925 字,大约阅读时间需要 16 分钟。

  我在哪都是外行,我有什么发言权?

  但经验告诉我,你如果熟悉一个领域,那么你想要和完全不懂的人交谈是一件相当困难的事(除非有一些特殊的技巧,尤其是“所以然”方面的事)。也就是说,等到我学有所成(但愿!)的时候再写博客,未免会把某些想法忘却了——就好像微积分是一目了然的事。微积分确实是个很好的比喻,因为牵扯到了数学“语言”。研究的前提是正是表述,虽然在具体研究中现象不需要更明确的表述了。

  扯远了,虽然没什么废话。

现在的“人工智能”

  按着王垠的说法,现在的“人工智能”本质就是统计。我不是不认同,但是这个偏重很令我担忧。人工智能的目的本来是“智能”,但是我所见到的人工智能的资料好像无一例外是奔着统计去的。按照标准说法,【人工智能 > 机器学习 > 深度学习】。后一个大于号(包含符号好像打不出来)已经很尴尬了——然而我翻了半天百度,还是没搞清楚什么是深度学习——一个说法是多层神经网络,一个说法是“训练-测试模式”就是深度学习。我还是相信前一个吧,歧义毁掉文章——刚才看到(我是断断续续地写的)一篇《醒醒吧!深度学习不是AI的未来》,总结如下:(反正我在这里已经把神经网络和深度学习等同了,第二个解释我将直接说“训练-测试模式”)

  • 神经网络被神化了
  • 神经网络不能理解任何东西,只能模拟,没有逻辑
  • 神经网络的输出被严格限制为极端状态

  第一条和算法无关。第二条我们可以换个说法,神经网络是在取一组最好的矩阵来模拟(激活函数好像让事情变得更复杂了,但至少它是固定的)。第三条是因为我是外行,只知道图像识别数字的例子——给一组白噪音,输出依然只能是数字——所以就把原文中的纳粹的例子当成自己的观点了。// 后两条很好地标识出了这一种模式,即神经网络的“特征”。我的个人观点是,第三条显然是很好改进的(加一些选项即可,比如“这个图像是噪声”),我也不知道这有多大用,但显然机器不会自己改进;第二条,则我也说不清了。

  但是机器学习不止有神经网络,我听说的还有——见https://zhuanlan.zhihu.com/p/24919118 但这些是具体算法。在输入输出模式上又有区别:监督学习(告诉程序目标结果),无监督学习(不告诉程序结果,一般仅能分类,但需要相似依据即相似度函数),以及二者混合的半监督式学习(两种输入都有)。这让人头大,不禁想抽象出一点东西—— (废话开始,想跳过请翻到下一个方括号,向上看几行)

  机器学习是这样一个程序:它接收一系列输入,输出另一个程序。输入……(编不下去了)

  看来我的方法有问题。标准方法是列举实例,比如,机器学习包括这些:

  1. 训练一个数字识别程序
  2. 给客户分类
  3. 识别人脸的位置(虽说可能用不着机器学习)
  4. 识别照片中植物的种类
  5. 相似图片搜索(我听说也用不着)
  6. 预测股市(不考虑自身影响)
  7. X光照片识别癌细胞
  8. 网页的推广(客户识别,但是第一封邀请函怎么发?)
  9. 搜索引擎学习
  10. 自然语言处理(?)

  (部分例子来自https://www.ithome.com/html/discovery/262073.htm )

  分析,制表(《机器学习应该怎样分类》)

编号 输入 目标程序功能
1 数字图像 + 实际数字 输入数字图像,输出实际数字
2 客户的交易记录 1.一个分类;2.输入记录,输出对应类
3 照片 + 人脸位置 输入照片,输出人脸位置
4 植物图像 (+ 种类) 输入植物图像,输出种类
5 图像 1.一个分类;2.输入图像,输出对应类
6 输入股市图像 输入股市图像,输出走向图
7 X光片图像 + 是否有癌细胞 输入X光片图像,输出是否有癌细胞
8 搜索记录 + 对应购买记录 输入搜索记录,输出可能购买商品
9 搜索词 + 用户搜索后的态度 输入搜索词,输出令人满意的网页
10 - (我不知道这个例子如何体现)

  (……真是讽刺得不得了,我竟然正是在干机器干的事……不过我会在另一篇博文《懒人信条》里着重提这一点)

  其中股市图像比较特殊,因为这是分形结构,即每一小段都有分析价值。但是依然可以强制转换:

编号 输入 目标程序功能
6 某时间点前的股市图像 + 之后的走向 输入某时间点前的股市图像,输出之后的走向

  不知道是这个表巧合,还是我强制的巧合(自然都有),至少可以往下分析了:

  按输入分为2+1(监督,非监督,半监督)并且使用界限不明,按输出分“映射”和“分类并映射”,“映射”又分“离散值域映射”和“连续值域映射”

编号 输入模式 输出模式
1 监督 映射(离散)
2 非监督 分类并映射(必离散)
3 监督 映射(连续)
4 半监督 分类并映射(必离散)
5 非监督 分类并映射(必离散)
6 监督 映射(连续)
7 监督 映射(离散)
8 监督 映射(离散)
9 监督 映射(离散)
10 - -

  但是如此不自然的结果(低正交性)也告诉我们,虽然在输入分类很自然(正交),但是输出分类显然很……不漂亮。这也对应了非监督状态下算法完全不同带来的差异。另外尴尬的是,那几个连续值域映射我并不确定是不是真的存在……倘若去掉那两个“有嫌疑”的例子,那就还看得过去了……

  所以我说了半天全是废话。这分类早有了——么?

  但至少我们把已有的分类正当化了,而不是随便分的类——然而这个理由实在勉强。

  ——该跳回去了——“刚才”说到人工智能“包含”机器学习。那么除了机器学习还有别的吗?!(这个问题真的很尴尬)——我知道一点点例子,比如

  【元胞自动机】

  在这个领域有一本神作《一种新科学》,对应贴吧的成员正在Github上孜孜不倦地翻译——这本一千多页的东西。还有另一本大作(?)《运动学的自我复制机器》,本人英文水平有限 + “显然有很多事要做”,只看了一点点,甚至不清楚这本书该讲什么,但即使是这本书的前几页也散发出巨大的魅力——一种我觉得远超过第一本的魅力。网上对这本书的评价甚少,但pdf却很容易找到。我很希望这本书能得到应有的评价。(说起来作者之一Merkle还是区块链的奠基人)另外(应该是)这本书中提到了另一伟人 【罗德尼·布鲁克斯】 ,其设计的机器人便是按照这种思路——根本不给机器人大脑!通过各个部件的独立工作,整体便体现出了智能。整体的行为根本没有在一开始预料。——但这和机器学习是人工智能的不同方面,学习并不是唯一目的,或者说,这引出了接下来的话题:

  人工智能是什么?

  “人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器”——百度百科

  这话令人顿生哲学敬畏。原谅我看着不顺眼删掉了“人工智能是计算机科学的一个分支”这句话。什么是智能?这话问得不好,更好的说法是:我们希望智能是什么样的?人有智能,那怎样的算没有智能?如果鹦鹉能做算术,算不算智能?粘菌能用最短路径走迷宫,算不算智能?鹦鹉螺可以用壳画出精确的等角螺线,算不算智能?(呵呵)有个更好通俗说法叫“表现出智能”,这告诉我们智能有可能仅从表面就能定义。有一本书叫做“他们没有大脑 但他们有智能”,讲的是植物——总之,“智能”这个说法在某些意义上是相当宽泛的,但是我们依然可以区分——

这是智能吗 回答
会做算术的鹦鹉
会走迷宫的粘菌
会长出等角螺线的鹦鹉螺 不是

  这个表格简直愚蠢。但是我们已经可以归纳了:

  “智能是这样一种特性:某个对象,如果其能对不同的输入作出不同的反应,对相同的输入作出相同(至少在某些意义上相同)的反应,那么可以说该对象表现出智能。”

(2017-12-16 于地球 )

  人工智能么,就该是人造的智能。但是这么一来,温度计也该是人工智能了。但好像不是这么回事……重新翻百度,发现这个“智能”被加了限制,指的是“人的智能”……所以人工智能,就是用机器做人脑该做的事了。具体要做什么,不知道;怎么做,也只凭着各家发挥。不过想着直接模拟整个大脑的,倒是不多见,有是有,但完备的体系还真没听说过(恕驽钝)。

  其实在我接触编程之前,就听说过人工智能了,在《皇帝新脑》中——彭罗斯的那个下跳棋的朋友,一点一点地教他的程序下棋——手动地把可能的模式不断加入识别。那真是一个奇妙的年代,当时的人们对机器寄托着厚望(以至于彭罗斯用了和“皇帝的新衣”相映成趣的书名),却并不想着一劳永逸——他们一点点让机器懂得更多,而不是放手让它们去自己学习,仿佛对待一个孩子一样。也许是那个年代的硬件限制,也许这些只是我的幻觉,但那个跳棋大师的故事给了我一种真切的距离感——我们的机器在远离我们。

  而我是个朴素的人。

21天学会,3个月精通

  第一个话题算是唠叨完了(暂时的),接下来谈谈这个广告词(人工智能也是个广告词)。

  话说在前头:我要是说不可能学会,那读者理应走掉一半;要是说能学会,估计又要走一半?呵呵。

  学会微积分要多久?具体一点,仅仅是一元简单函数的微积分要多久?

  要是我向不会的人解释,那么几分钟够了:先讲极限,然后切线和导数,然后分形(似乎不是必要),然后分割函数图像,然后求和符号,然后得出微积分基本定理。最后给他一张导数表和积分表,有证明最好。不就完了?

  把大象放进冰箱要几步?是吧?我也不知道按我那一套能不能有人听懂,况且还有人不知道函数。让我想起一个笑话:

  有个数学家被邀请作微积分演讲,主办者再三告诉他:“听众都是没上过大学的普通人,务必要讲得浅显易懂。”数学家满口答应。到了演讲开始的时候,主办者在一边紧张地看着他要怎么讲,却听他从容不迫地说到——

  “微积分其实很简单,诸位不必害怕。你们只要把它看作一个黎曼和的极限……”

  但这只是第一点,即受众的知识水平差异必然影响学习速度。还有更重要的一点是,目标是什么?什么叫“学通”?语法是不需要学的,即用即查就可以了(虽说会很慢);函数也是不需要学的,也只要即用即查就可以了(也会很慢)。一本书完全可以把这些全放在附录里,用文字标注的伪代码给出全部程序。而以上内容大致可以理解为21天内该学的东西——然而这得假设你懂得一切功能。用伪代码创建类的前提是你要知道类是什么(这当时是令我百思不得其解的东西),但是类这一概念属于这门语言吗?这便是数学家的尴尬:黎曼和并不在微积分之内。“类“这一概念”应该独立于语言而存在,也应当独立于语言学习(这话偏激了),至少不该混为一谈(我学python类时对self的纠结就源于此)。伪代码——我是指命令语句的语义——才是该描述这些的工具。消歧义后的自然语言能做到这一点,虽说需要以相当科学的文风。总而言之,21天学通语言完全是胡扯,学一门语言不需要时间,或者需要的时间就是你背下所有用法的时间。所谓的语言特性,完全可以不依赖语言本身而独立存在,完全可以在其他语言中用不一样的符号实现,因此不该只属于这门语言。要想让外国人谈论太极是完全可以的,虽然需要创造新的词汇;要想让python支持静态类型也是完全可以的,虽然得付出区分二者的代价。对此,我宁可换另一个词“文化”(总之,“编程语言”中的“语言”和单独说的“语言”不完全是一回事),特性包含在文化里,编程语言描述各自的文化,而文化有同有异。

编程范式

  算了,能力太有限,不多说了。个人的看法是,根源之一在于表示内在关系,即把解决过程的痕迹留在代码里,让中间过程可见。人解决问题是自上而下的,把上层内容也加入代码往往使代码更短而更具逻辑关联。另一个根源是 “复用性”,即避免重复的代码。一旦有代码出现了重复(甚至,仅仅是可能在另一个程序中以重复形式出现),说明这个重复部分可以独立地看做一个对象(自然意义上的对象),比如面向切面中的切片代码,然后尽量简化代码,有点特征提取的味道。——还有那句老话,“高内聚,低耦合”,既方便引用分类,又增强了正交性,和复用性也有点关联吧……

(2017-12-17 于地球)(完)

转载于:https://blog.51cto.com/13535617/2051337

你可能感兴趣的文章