《最强大脑》上周玮的表现非常震撼, 激起了网络上无数的评论。 其中,涉及最多的要数大量关于”怎么快速计算这些看起来吓人的算式“的讨论。

比如:

1. 果壳上就有一篇详细的讨论 ( http://www.guokr.com/article/437913/  )

2. 知乎上的讨论(http://www.zhihu.com/question/22549436/answer/21763991)

3. ...... 还有依靠泰勒展开,对数表等等等等。

我并不打算再讨论,或者说去猜测具体周玮是怎么处理的?或者周玮是不是真的最强大脑? 从现在的各种文章看来, 我认为,基本都属于像我这样的”普通人“去猜测具有天赋的最强大脑会怎么做(如果他们有跟我们差不多的大脑,只是有一些不产生质变的量变变化)。 或者基于我们的公认的一些东西去猜测,其中或多或少隐藏着一些基本的假设(我们认为的常识), 因为我们目前不知道实际上这些最强大脑有些什么不同?

总结目前的种种猜测, 我认为我们猜测周玮的算法的过程,其实本质上是寻找一个算法, 这个算法最小化存储空间和计算复杂度。

比如:

1. 计算机常用的幂次计算加速 (http://en.wikipedia.org/wiki/Exponentiation_by_squaring )

6^13 = (6^3)^2^2 * 6

2. 迭代速度很快的牛顿迭代 (http://en.wikipedia.org/wiki/Nth_root_algorithm )

3. 利用泰勒展开进行近似计算

4. 记忆对数表

......

    怎么综合存储空间(记忆要求)和计算复杂度(时间/计算难度)两个因素? 基于某个计算难度定义, 怎么找到一个最好的算法?这应该属于算法设计的范畴。

前面, 我描述了我的想法,觉得目前的各种猜测都是基于一些假设的,比如已知的计算操作(加减乘除/对数/乘方等), 已知的进制表示(十进制等)。我想可以做一些简单的扩展,也许得到一些更广泛的思路。

首先,让我们看看数字表示的重要性。假如老师布置下列四个计算题:

1. 计算 1440 + 1512

2. 计算 1440 * 1512

3. 计算 (2^5*3^2* 5) + (2^3 * 3^3 * 7)

        4. 计算 (2^5*3^2* 5) *  (2^3 * 3^3 * 7)
    相信对于上面的4个计算式子, 大多数人都觉得式子1和4比较容易计算,而式子2和3相对比较困难。但是,其实式子1和3是一样的, 而式子2和4是一样的。式子之间的区别在于数字的表示。不难看出,不同的数字表示适合不同的计算操作符。对于乘法来说,因式分解表示很容易, 而对于加法来说,传统的十进制表示最好。
    那么,是否可能使用不同的数字表示? 答案是肯定的。
        1. 中文 vs 英文: 先看看网络上曾经讨论的一个话题:国外小学生是否背诵九九乘法表的问题? 对于我们国内成长起来的朋友,觉得这似乎是一个不容置疑的问题。我们每个人都是这么走过来的。 我并不确定英语为母语的学生是否也有这样的乘法表,但我尝试使用英语背诵,发现还真的挺拗口,至少没有中文那么顺口(中文中个位数字都是单音节的)。 
        2. 如果说中文和英文只是语言上的区别,那么看看法语。 70 (soixante-dix) 表示为 60 (soixante) + 10 (dix), 而80 (quatre-vingt)表示为 4(quatre) * 20(vingt)
        3. 还有一些其他语言, 如德语有时高低位之间顺序有些变化等等
    上面这些表示,本质上也还是十进制,但已经在影响我们的计算速度和思维方式。 是否对于一些有天赋的人来说,数字在他们的大脑中,具有跟我们不一样的表示呢? 而那些表示对于我们来说非常复杂的操作却很容易进行?(也可能对于我们来说很容易进行的操作,他们却觉得很麻烦) 想想上面的加法和乘法。
    基于上面的这些思考, 我们也许可以猜测,在最强大脑/天才们的大脑中,一个计算 z = op(x, y)是如下进行的:
        1. 纸面上的算术式子,通过眼睛到达大脑内的数字表示, 其实可以看做一个编码的过程。 或者从机器学习角度,是一个抽取特征的过程
            x' = encode(x); y' = encode(y)
        2. 对经过编码的数字进行计算。对编码前数字的计算操作op,等价于转码后表示上的另一个计算操作op'
            z' = encode(z) = op' (x' , y')
        3. 将大脑中的数字表示,转化为常用的十进制表示,输出写到纸面上。其实是一个解码的过程。
            op(x,y) = z = decode(z') = decode( encode(op(x,y)) )
    这样的一个框架,并不是异想天开的。比如,对于乘法操作,如果先进行对数转换,那么乘法操作就相当于转化之后”表示“上的加法操作。
            op(x, y) = x * y
            x' = encode(x) = ln(x), y' = encode(y) = ln(y)
            z' = encode (z) = op'(x', y') = x' + y' = ln(x) + ln(y)
            op(x, y) = z = decode(z') = e^ z'
    当然,我并不是说,最强大脑内部进行的就是这样的转换。但至少,可能最强大脑可以很高效地进行这样的编码和译码操作。 也就是说,他们对于纸面上的十进制数字,可以快速地转化为大脑内的一个高效数字表示;而该高效数字表示又很方便进行乘方/开方操作的。 最后,将高效数字表示,转化为十进制数字的过程也可以快速完成。 节目中有一个细节,相信不少朋友都已经发现:周玮在书写结果的时候是从高位开始的,跟平常多数情况从低位开始得到结果有些不同。(是否大脑内数字表示的译码可以先得到高位呢?)
    说了这么多,必须说,也许我是在以一个生活在二维世界(在人类看来是二维世界的三维世界)中的蚂蚁大脑,在企图猜测生存在三维空间的人类的大脑。也许需要等到我们对我们大脑有了更多了解之后才能解开这个谜底。但,至少有几点值得思考:
    1. 对某个操作的代价函数定义的情况下, 怎么学习/寻找最优的算法/模型呢? 这本质上就是我们不断探索的算法设计和最优化,是我们蚂蚁大脑向最强大脑的探索。
    2. 数字的表示,对于操作非常重要; 一如特征对于机器学习的重要性一样。找到恰当的高效的数字表示,我们能大幅提高计算的效率。 找到恰当的高效的特征表示, 我们的机器学习模型和系统能大幅提高有效性。
    3. 不同的设计,可能导致不同的系统效果。 系统/算法设计时的不同目标和权衡,可能导致不同的性能表现。 为优化乘法计算而设计的系统, 有可能并不擅长于计算加法;为优化加法设计的系统,却有可能对于乘法计算感到头疼。 如果人类的大脑是上帝设计,或者进化得到的话, 一般人的大脑也许是为了满足上帝开启项目时确定的设计目标,或在进化过程中不断优化了我们常见的计算场景; 而所谓最强大脑/天才大脑的大脑结构个例,由于结构上的某些突变,在一些普通人不擅长的领域有了突出的表现,而在另一些普通人擅长的领域且有所欠缺。

关于《最强大脑》周玮的一些想法相关推荐

  1. 由计算机谈最强大脑周玮

    最近看了,江苏卫视的最强大脑,特别当看到周玮的时候,让我想起了以前看到说印度有个人能算几百位数书的开方(前段时间这个人好像死了),看的时候很是振奋,可以说是不明觉历,以我的能力心算22*22都费劲的人 ...

  2. 最强大脑王昱珩,一个近乎完美的男人

    王昱珩,这个名字,在最强大脑播出前,我想不曾有多少人认识他,然而他在擂台上展现出的气场.实力以及个人魅力却将完美二字诠释的淋漓尽致. 2015年3月13日,<最强大脑第二季>中日PK赛中, ...

  3. 《最强大脑——77招让你成为脑力最好的人》读书笔记

    <最强大脑--77招让你成为脑力最好的人>读书笔记 序言-让我们把脑力发挥到极致 一.  大脑的优劣是由什么决定的? 整个人脑神经细胞的数量达到了大约1000亿个. 神经细胞彼此之间构成了 ...

  4. Android开发 之《最强大脑》“数字华容道”

    文章目录 0 背景 0.1 游戏介绍 1 结构 2 定义棋盘和棋子 1.0 棋子 2.1 棋盘属性 2.2 排列棋子 3 生成棋局 4 游戏过程 5 高分榜 6 作弊&后记 0 背景 最近看& ...

  5. 当百度大脑小度完胜人类《最强大脑》

    2017年1月20号,百度大脑"小度"在国际知名节目"最强大脑"以3:1完胜<最强大脑>中国3名选手,在人脸.声音和模糊识别取得胜利,成功晋取得全球 ...

  6. 【最强大脑】全球脑王的极客挑战赛之路:1413876分夺冠如何炼成?

    导语 | 在腾讯云+社区联合腾讯码客.腾讯安全平台部全新打造的创新赛事[腾讯极客挑战赛 | 鹅罗斯方块]中,4570名参赛者为我们带来前所未有.异彩纷呈的作品.一场技术竞技,把一群志同道合的开发者聚集 ...

  7. 因0x764fb11c的错误状态_《最强大脑》国际赛王易木又被质疑作弊,因背反答案露出了马脚?...

    <最强大脑之燃烧吧大脑>第二季国际赛最后一场,中国战队和国际战队在3V3的团战当中以绝对优胜的姿态拿下了本场比赛. 在观众为郑林楷.宋一骜以及王易木的成功感到高兴之际,有部分吃瓜群众跳出来 ...

  8. Python游戏开发:最强大脑第一关,数字华容道

    前言 freegames是Apache2许可的Python游戏集合,旨在用于教育和娱乐,完全是开源的,我们只要引用编写就好,当前在最强大脑的舞台上的第一关就是数字华容道,好多人都栽在了上面,如果你也想 ...

  9. 商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 前不久,<星际争霸2>虫王iA周航加入商汤科技,担任AI研究员. 堪称电竞职业玩家「转型最成功」的案例之一. 而商汤作为一家以计 ...

最新文章

  1. python字符串按长度分割_python 按照固定长度分割字符串的方法小结
  2. 16000亿!谷歌发布人类历史首个万亿级模型 Switch Transformer,中国还有机会赶超吗?...
  3. 关于在线预览word,excel,ppt,pdf的需求处理方法。
  4. Apache服务器二级域名的完美实现
  5. ASP.NET夜话笔记06
  6. jquery中prop()方法和attr()方法的区别浅析
  7. C#sql语句如何使用占位符
  8. 响应式编程优点 有效_什么是响应式编程?
  9. Servlet页面跳转实现方法的区别
  10. oracle chr()和字符连接
  11. linux cp 隐藏文件,如何用cp复制包含隐藏文件和隐藏目录及其内容?
  12. 30岁从零学计算机,30岁从零学阅读方法来得及吗?
  13. android升级adt和sdk之后无法识别SDK Location的一个解决方式
  14. TYUT-A专题题解(二)
  15. Java开发笔记(六十九)泛型类的定义及其运用
  16. idea 优化_编程小技巧之 IDEA 的 Live Template
  17. Oracle 字符串批量替换
  18. Hexo 添加百度统计
  19. html怎么设置文字无法复制粘贴,网页文字无法复制粘贴怎么办
  20. Prime Number

热门文章

  1. 科普CFA(Color Filter Array,色彩滤波阵列)
  2. 富人高管都有门路避税,中基层的你怎么办?
  3. 卫龙上市首日破发:高瓴、红杉、腾讯等账面亏损,刘卫平为董事长
  4. 一个人赶着鸭子去每个村庄卖,每经过一个 村子卖去所赶鸭子的一半又一只。 这样他经过了 七个村子后还剩 两只鸭子,问问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?(递归实现)
  5. 链霉亲和素-生物素,Biotin-Streptavidin
  6. Python函数知识总结
  7. 永久免费的pdf转换器
  8. 从精装到智装,下一波浪潮浮现,听听智能家居的大咖们怎么说?
  9. c++中“->“符号是什么?
  10. 配置puppeteer executablePath的正确姿势