怎么办?刚才在网上看新闻,一个我们来自未来2电影的男子前来提示明年会有外星人降临

更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
按住视频可进行拖动
&正在加载...
请选择打赏金额:
收藏成功,可进入
查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
, 可在设置中重新打开噢!
30秒后自动关闭
国外专家称51区有活的外星人 该外星人说自己来自未来的地球">国外专家称51区有活的外星人 该外星人说自己来自未来的地球
播放量数据:快去看看谁在和你一起看视频吧~
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
本奖品由提供
红包雨下完了,下次早点来噢~&img src=&/50/v2-6df980c326c15f8ff22c91cebfdda66c_b.jpg& data-rawwidth=&658& data-rawheight=&385& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&/50/v2-6df980c326c15f8ff22c91cebfdda66c_r.jpg&&&p&&strong&撰文 | 曹志刚 (中国科学院数学与系统科学研究院)&/strong&&br&&/p&&p&&strong&责编 | 徐可&/strong&&/p&&br&&p&● ● ●&/p&&br&&strong&引子&/strong&&p&刚刚仙逝的数学大师吴文俊先生近些年接受媒体采访时经常说这样一句话,“数学是笨人学的”。这让很多人大惑不解。明明只有聪明人才学得来数学嘛,数学好基本上就是脑袋瓜聪明的同义词,笨人怎么学数学呢?&/p&&p&君不见各种智力测试不都是数学题吗?很多学校竞争优质生源以及分快慢班不也经常只看数学水平吗?千里挑一的公务员考试每年也都有几道数列题,这跟行政能力其实没有任何的直接关系。这几道经常被大家评论为挺变态的数学题也就是个智力测试。&/p&&p&更何况,吴文俊先生所谓的“学习”,可不是我们中文语境中一般意义上的学习,他说的是英文词“study”,不是我们所讲的研究性学习,而是实实在在的研究。这就更让人没法理解了。因为家喻户晓众所周知,能从事数学研究以至于有所成就的家伙,哪个不是思维超群有相当天分的?什么英年早逝的伽罗瓦、阿贝尔,直觉惊人的拉马努金,失明后依然能做学问的欧拉、庞特里亚金,一辈子靠妈妈照顾的厄多仕、佩雷尔曼,哪个不是有相当的传奇色彩甚至有点不食人间烟火?普通人哪做得了数学?更别提笨人了。这些事实和故事,做出过世界一流成果、晚年又潜心研究数学史的吴先生比我们不知要谙熟多少倍。&/p&&p&&strong&&strong&&img src=&/v2-5b1cfe2dd3baf1c23946_b.jpg& data-rawwidth=&400& data-rawheight=&278& class=&content_image& width=&400&&?&/strong&&/strong&著名数学家吴文俊(图片来自中科院网站)&/p&&p&那他怎么又会说出“数学是笨人学的”这样的话呢?吴先生本人没有对这句话做过过多的解释,至少媒体上找不到。本文中笔者尝试解读一下这句颇令人费解的话,并探讨一下其背后的逻辑对于整体把握中学数学中常用的几种思想方法,包括分类讨论法、数学归纳法、反证法、分析法、综合法,有何启发。我们还将顺便涉及这个视角下数学直觉与思维定势的关系,以及什么是好的解题方法的判别标准问题。&/p&&br&&strong&其实我们都很笨&/strong&&p&对于理解充满神奇的大自然、纷繁芜杂的社会、浩瀚无穷的宇宙,甚至我们幽暗深邃的内心,人类的思维能力实在太有限了。素数,多么朴素简单的东西,人类研究了几千年至今还有数不清的难题等待解决;初等几何,初中生就学的东西,任何数学家也不敢说随便拿出来一道棘手的问题都能很快解决;前几年不是有新闻说记者给某位菲尔兹奖获得者一道我们的小学奥数题,他做了十几分钟也没头绪吗?前沿的计算复杂性理论暗示了有些知识人类可能永远无法获知。这不是简单的哲学上的悲观不可知论,而是来源于扎扎实实的硬证据。&/p&&p&所以有句俗语说得好,“人类一思考上帝就发笑”。但无所不知的上帝因此也无法像我们人类一样欣赏这个神奇的世界。&/p&&br&&strong&笨人的思考方法&/strong&&p&承认我们笨、承认我们思考能力有限绝不等于自暴自弃放弃思考,越是这样越需要努力啊。人类之所以能进化到今天,能比其它物种都更适应环境更多地掌控自己的生活和命运,主要靠的就是不断思考不断创造新工具。那么笨人面对一个复杂的问题如何思考解决之道呢?那就要采取非常务实而积极的态度和策略。&/p&&br&&p&&strong&1.适当放弃精确和严密&/strong&&/p&&p&因为我们能力实在有限,所以过于追求绝对的精确和严密,很可能一无所获无法取得任何进步。&/p&&p&&strong&分类是人类认知的一个最核心最基本的途径之一。&/strong&简单来讲,这种途径就是将差不多的东西看做一类,而同一类的东西思考和处理的时候不做区别。当遇到一个新鲜事物的时候,先尝试将其归入已有类别,若发现无法归类则建立新的类别。这样做的好处是非常利于记忆和思考。当然,这要以损失精确和严密为代价。分类这种思维方式如此之基本以至于已经成为人类本能的一部分。它所涵盖的范围以及对我们生活影响之深刻可能会让我们多数人非常吃惊。&/p&&p&姑且不提分类是很多学科的基本研究范式,单举几个我们日常生活中的小例子:为什么我们天生对软软的蠕动的东西有恐惧感?因为我们会把这类东西跟蛇联系在一起(即便从来没有见过甚至听说过蛇)。本能决定了我们在做出任何精确判断(是蛇还不是蛇)以前就做出反应(把它归入蛇的一类并迅速离开),这已经写入了我们的基因;为什么我们对图片和视频会有喜怒哀乐以及恐惧的反应,明明知道它们是虚假的?因为我们的本能无法区分这种虚假和现实;为什么我们会觉得外国人都长得差不多而区分中国人则容易得多?因为我们对经常打交道的自己人的分类要比对不经常打交道的外国人的分类细致得多……&/p&&p&当然,放弃精确和严密所意味的绝不仅仅是分类。比如跟分类密切相关的归纳(注意不是数学归纳)也是这个逻辑的产物。见了那么多天鹅发现都是白色的,那么就假设天鹅都是白的好了。这样假设有没有问题?严格来讲当然有问题,谁能保证你碰到的下一只天鹅不是黑色的?事实上,黑天鹅的确存在。可是在没有遇到黑天鹅之前暂时接受这个结论是很务实的选择,因为这样总算对世界有一些认识(尽管这个认识不见得精确)。而且,即便以后发现了黑天鹅,我们也可以把结论修正为“绝大多数天鹅是白色的,少数天鹅是黑色的”。原来的结论尽管错了,但是错得并不离谱。甚至在我们知道了黑天鹅存在的情况下,某些时候依然假设所有天鹅都是白色的,这样处理起问题来可能比“99%的天鹅是白色的,剩下1%是黑色的”这个绝对的真理更方便。正像我们经常说地球是圆的,学习甚至研究中经常假设地球是完美球体一样。这要比“赤道略鼓、两极稍扁”省事多了。何况后者也还只是个近似。&/p&&p&这种思维跟数学乍一看似乎是毫不相干甚至矛盾的。其实不然。一方面,数学本身就是一个高度抽象的模型,数学尤其是数学模型,本身就是对现实世界的近似,就是1、2、3这些最朴素的自然数也无不如此。3个人分6个苹果,如何分最公平啊?小学生就开始学,6除以3等于2,每人两个最公平。可是这样没考虑苹果的大小啊?您可能会说,我们假设6个苹果是一模一样大的。可天底下哪有绝对一模一样的6个苹果啊?我们这样假设就是一种近似。另一方面,放弃精确和严密而只求一个粗略的估计,这本身也是一种重要的数学能力。&/p&&p&直觉是数学学习和研究中非常重要的一种跟逻辑无关的能力。见了一个题目就知道大概用什么方法,见了一个问题就知道其大概的难度,这是区分数学家水平高低的很好指标。数学教育中以此标准也能一定程度上用来衡量学生。&/p&&p&数学直觉靠的是经验积累加悟性,它当然并不总是对的。经常出错的或坏的数学直觉我们称之为“思维定势”,这是我们要尽量避免的东西。我们教学中经常提要避免思维定势,但很少提培养好的数学直觉。这是一个事物的两个方面。只强调一方面而忽略另外一方面显然是不合适的。&/p&&br&&p&&strong&2.化整为零各个击破&/strong&&/p&&p&因为我们能力实在有限,所以不要幻想一下子解决整个问题。如果能把大问题拆成小问题,我们今天解决一个,明天解决一个,问题最终不就完整解决了吗?何况,化整为零还有一个很大的好处就是大家可以分工协作。你解决这个,我解决那个,最终问题也能得到完满解决。历史上的数学研究经常是单打独斗,绝大多数重要成果都是一个人做出来的。现在时代不同了,数学家也越来越强调合作,因为大家越来越意识到个人能力的有限。比如有限单群的分类问题,是几百个数学家辛苦合作几十年才完全研究清楚的;当今的领袖数学家Tim Gowers和陶哲轩发起了Polymath Project的项目,号召大家一起攻克一些困难无比的问题(他们最新近的成果包括大大改进了张益唐在孪生素数猜想方面得到的下界)。&/p&&p&&strong&&strong&&img src=&/v2-932b57cd071dd90d3f651032daebe7bd_b.jpg& data-rawwidth=&450& data-rawheight=&321& class=&origin_image zh-lightbox-thumb& width=&450& data-original=&/v2-932b57cd071dd90d3f651032daebe7bd_r.jpg&&?&/strong&&/strong&菲尔兹奖得主、著名数学家陶哲轩&/p&&p&化整为零各个击破的策略对中学数学教育有何意义呢?老师们可能会说,这不就是我们常用的分情况讨论嘛!所以没有什么好神秘的。但是大家千万不要小瞧这个看起来似乎不值得一提的策略。它的确是我们攻克复杂问题的一大法宝。组合优化领域甚至专门为这个方法起了一个新名字,叫“分而治之”(divide and conquer)。&/p&&p&数学家做研究惯用的一个“伎俩”就是“加条件”。实在证明不过去了,怎么办呀?只好加条件了。如果加一个比较干净的条件以后发现结论能成立,也还不错。稍微想想你就明白了,所谓加条件就是分情况讨论。而分情况讨论这个方法之所以有效,也是因为我们处理每一种情况的时候实际上比研究整个问题时多了一个条件。&/p&&br&&p&&strong&3.立足已知探索未知&/strong&&/p&&p&因为我们能力实在有限,所以用全新的方法去思考一个跟已有知识体系没有任何联系的问题可能毫无所获。所以一方面,我们要牢牢把握住已经知道的,尝试将未知的问题划归成一个我们熟悉的场景。这是科学研究的基本方法,也是数学教学中常用的一种范式。解题如此,讲课也是如此。另一方面,我们要充分挖掘已知知识的内在逻辑,看看从已知我们还能推导出其它什么有趣、但暂时不见得有用的新知识。我们今天的数学知识体系,部分内容直接来自现实和实践的驱动,即问题驱动;更多高深的内容则来自数学体系内在的驱动,即理论驱动,说白了就是数学家兴趣的推动。比如“P 与 NP 猜想”,跟现实究竟有什么联系?证明出来有什么用?老实说,短期来看可能真没什么用。&/p&&p&立足已知探索未知,从两个方向在已知与未知之间建立桥梁。这跟我们数学教学又有什么关系呢?关系大了。我们解题不是经常用两种思路吗,即综合法和分析法。所谓综合法,就是从条件到结论的思维和写作方式。给了我们这样几个条件,从它们出发,朝着结论的方向我们一步步推导,然后顺利到达终点。这就是综合法;如果方向是从结论到条件,则称之为分析法。我们首先盯住这个结论,问想要得到这个结论需要知道什么条件呢?为了得到那个条件我们又需要证明什么呢?这样一步步推导,顺利到达已知的条件,整个证明就结束了。当然,很多时候这两种方法交叉使用。就写作而言,分析法和综合法各有利弊,分析法更容易让人把握住思路,但是可能不够简洁漂亮。综合法的写作则相反,经常让人赞叹证明的优美,感慨作者的奇思妙想,但是通常很难把握其思路。这两种写作方法的典型代表分别是欧拉和高斯。&/p&&p&&strong&&strong&&img src=&/v2-a3dd3d0dfe2d8b31fe5be2_b.jpg& data-rawwidth=&640& data-rawheight=&640& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-a3dd3d0dfe2d8b31fe5be2_r.jpg&&?&/strong&&/strong&著名数学家高斯(左)、欧拉(右),图片来自Wikipedia&/p&&p&回到本文主题,分析法和综合法这两个名词的存在同样是基于我们能力有限的事实。如果我们绝顶聪明一眼就能看出条件与结论之间的关系,也就无所谓从哪里到哪里的方向问题了。&/p&&p&前面我们提到,分情况讨论本质上就是加条件扩大已知。所以笨人解决问题的一个思路就是,既然我笨,就想办法造一些条件,那样我思考问题不就便利多了吗?我们可以在这个视角下重新审视一下反证法和数学归纳法。反证法为什么经常有效?就是因为我们把结论的否命题拿来当条件,这样手头就增加了一个条件,前进起来当然便利多了。科学研究中还有一些更精细的反证法,比如特殊反例法,就是说如果结论不成立那么我能找到一个反例,除此以外这个反例还满足一定的条件(比如所有反例中规模最小的),那条件不是更多了吗?&/p&&p&数学归纳法则是更加巧妙地不断扩大已知最终到达未知的方法。要求证明某个结论对于任意的n都成立。问题太难了,丝毫没有头绪,怎么办?先试试n=1吧。稍微一验证,嗯,对了。再来看看n=2吧。嗯,也对了。可这什么时候是个头啊?验算到100我们能止步吗?不行,万一101出问题怎么办?我们不能满足于普通的归纳法。问题的难点在于,这表面上看起来是一个命题,而其实背后是无穷多个命题。无穷是数学里面的魔鬼,经常暗含很多奇特而艰深的东西。特别地,我们最笨的枚举法不能生效。数学归纳法的巧妙之处就在于,不是孤立地去验证一个一个的例子,而是在这些例子间建立一个链式反应,证明只要前者成立紧随其后的例子也成立。那么只要给一个初始引爆点,这一逻辑反复使用就会达到多米诺骨牌或者原子弹爆炸的效果,最终证明无穷多个命题。数学归纳法之所以能够成功,不也是巧妙加了一个条件吗?我们原来面对的问题是证明结论对于n成立。而现在面对的问题则是在n-1成立的基础上来证明n成立。除了普通的数学归纳法以外,还有各式各样的变形。从增加条件的视角来看,这些方法背后的核心逻辑都是一致的。&/p&&p&我们再来看一下吴文俊先生“数学是笨人学的”的观点对于我们探讨解题方法好坏的判别标准问题的启发。用多种方法和思路解决同一题目是我们常用的教学方法。眼花缭乱的方法中哪种是最好的呢?这或许是个见仁见智没有标准答案的问题。很多人的观点可能是最巧妙的方法是最好的。其实并不见得如此。因为巧妙的方法适用范围通常都很窄,而表面上看起来很笨重的办法适用面则可能很广,往往可以直达问题本质所以威力巨大(比如说三角函数里面的万能公式)。功利一点来看,即便对于学生考试,巧妙的方法也不见得永远值得推荐。道理很简单,考试的有限时间里不见得能一下子想起那巧妙的方法,有时候反而是最普通的最笨的方法最有效。&/p&&p&做数学研究也有类似的道理,只有脚踏实地不投机取巧才能真正成就一番事业。华罗庚先生的成名作《苏家驹之代数的五次方程式解法不能成立之理由》,不就是老老实实计算一个十二阶行列式吗?陈景润证明“哥德巴赫猜想”的1+2也没有引入多少天才的想法,就是扎扎实实用好了筛法。最新近的传奇数学家张益唐,能成功的原因之一也是老老实实去推导和计算一些基本公式,而不是讨巧直接使用已知公式。有了这些道理和例子,我们或许就能真正明白为什么吴文俊先生会说出“数学是笨人学的”这样一番话。&/p&&p&&strong&&strong&&img src=&/v2-e8e9bbe6bf2e53_b.jpg& data-rawwidth=&640& data-rawheight=&465& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-e8e9bbe6bf2e53_r.jpg&&?&/strong&&/strong&著名数学家陈景润&/p&&br&&strong&结
语&/strong&&p&认清自己,承认我们都很笨;认清现实,知道问题很复杂;绝不气馁绝不讨巧,踏踏实实一步一步往前走。这种积极而务实的态度或许就是吴文俊先生想告诉我们的做学问的道理,同时也是做人的道理。历史上聪明绝伦有天赋的人多了去了,但是最终能有所成就为人类进步事业做出贡献的只是极少数。这极少数人通常都有一个共同点,那就是积极而务实,既不自暴自弃也不好高骛远。&/p&&p&“数学是笨人学的”这一积极而务实的态度不仅对于数学教学有重要启发,使我们对一些经常使用的方法和技巧进行重新审视、在整体上进行把握;它对于德育工作也很有启迪。比如说我们经常讲赏识教育。其实不分缘由不讲方法的一味赏识和夸奖并不见得有益。夸奖什么以及如何夸奖,这是需要我们好好琢磨的。据笔者所知一些好的经验是这样的:尽量少夸奖一个孩子聪明甚至有天赋,而多夸奖他的尝试、付出和努力过程。在我看来,这个精神跟吴文俊先生告诉我们的道理有内在的一致性。&/p&&br&&p&制版编辑:李
赫丨&/p&&p&&strong&本页刊发内容未经书面许可禁止转载及使用&/strong&&/p&&p&&strong&公众号、报刊等转载请联系授权&/strong&&/p&&p&&strong&授权:&/strong&&/p&&strong&知识分子&/strong&为更好的智趣生活ID:The-Intellectual投稿:
撰文 | 曹志刚 (中国科学院数学与系统科学研究院) 责编 | 徐可 ● ● ● 引子刚刚仙逝的数学大师吴文俊先生近些年接受媒体采访时经常说这样一句话,“数学是笨人学的”。这让很多人大惑不解。明明只有聪明人才学得来数学嘛,数学好基本上就是脑袋瓜聪明的…
&img src=&/50/v2-d3d0f61b2a3ed175e7f8_b.jpg& data-rawwidth=&1440& data-rawheight=&800& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&/50/v2-d3d0f61b2a3ed175e7f8_r.jpg&&&p&作者:Adam Geitgey&br&&/p&&p&原文:&a href=&/?target=https%3A///%40ageitgey/machine-learning-is-fun-80ea3ec3c471%23.ak1of1xbg& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/@ageitgey/ma&/span&&span class=&invisible&&chine-learning-is-fun-80ea3ec3c471#.ak1of1xbg&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&翻译:巡洋舰科技——赵95&/p&&p&校对:离线Offline——林沁&/p&&p&转载请联系译者。&/p&&p&你是否曾经听到过人们谈论机器学习,而你却对其含义只有一个模糊的概念呢?你是否已经厌倦了在和同事对话时只能点头呢?现在,让我们一起来改变这个现状吧!&/p&&h2&&b&这篇指南是为那些对机器学习感兴趣,但又不知从哪里开始的人而写的。我猜有很多人曾经尝试着阅读机器学习的维基百科词条,但是读着读着倍感挫折,然后直接放弃,希望能有人给出一个更直观的解释。本文就是你们想要的东西。&/b&&/h2&&p&本文的写作目标是让任何人都能看懂,这意味着文中有大量的概括。但是那又如何呢?只要能让读者对机器学习更感兴趣,这篇文章的任务也就完成了。&/p&&p&&b&什么是机器学习?&/b&&/p&&p&机器学习是一种概念:不需要写任何与问题有关的特定代码,&b&泛型算法(Generic Algorithms)&/b&[1]就能告诉你一些关于你数据的有趣结论。不用编码,你将数据输入泛型算法当中,它就会在数据的基础上建立出它自己的逻辑。&/p&&p&比如说,有一种算法被称为分类算法,它可以将数据分为不同的组。分类算法可以用来识别手写数字;不用修改一行代码,它也可以用来区分垃圾邮件和非垃圾邮件。如果给同样的算法输入不同的训练数据,它就能得出不同的分类逻辑。&img src=&/v2-23a81ef1c13b665e0d62_b.jpg& data-rawwidth=&1010& data-rawheight=&939& class=&origin_image zh-lightbox-thumb& width=&1010& data-original=&/v2-23a81ef1c13b665e0d62_r.jpg&&&/p&&p&&i&机器学习算法是个黑盒,它可以重复使用于很多不同的分类问题。&/i&&/p&&p&「机器学习」是一个涵盖性术语,它覆盖了大量类似的泛型算法。&/p&&p&&b&两类机器学习算法&/b&&/p&&p&你可以把机器学习算法分为两大类:&b&监督式学习(supervised Learning)&/b&和&b&非监督式学习(unsupervised Learning)&/b&。要区分两者很简单,但也非常重要。&/p&&p&&b&监督式学习&/b&&/p&&p&假设你是一名房地产经纪人,你的生意蒸蒸日上,因此你雇了一批新员工来帮忙。但是问题来了——虽然你可以一眼估算出房子的价格,但新员工却不像你这样经验丰富,他们不知道如何给房子估价。&/p&&p&为了帮助你的新员工(也许就是为了给自己放个假嘻嘻),你决定写一个可以根据房屋大小、地段以及同类房屋成交价等因素来评估一间房屋的价格的小软件。&/p&&p&近三个月来,每当你的城市里有人卖了房子,你都记录了下面的细节——卧室数量、房屋大小、地段等等。&b&但最重要的是,你写下了最终的成交价:&img src=&/v2-aa95a053fbf2afd736d69_b.jpg& data-rawwidth=&800& data-rawheight=&437& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-aa95a053fbf2afd736d69_r.jpg&&&/b&&/p&&p&&i&这就是我们的「训练数据」。&/i&&/p&&p&使用这些训练数据,我们要来编写一个能够估算该地区其他房屋价值的程序:&img src=&/v2-d00f6b6ce46_b.jpg& data-rawwidth=&800& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-d00f6b6ce46_r.jpg&&&/p&&p&&i&我们希望使用这些训练数据来预测其他房屋的价格。&/i&&/p&&p&这就是&b&监督式学习&/b&。你已经知道了每一栋房屋的售价,换句话说,你已经知道了问题的答案,并且可以反向找出解题的逻辑。&/p&&p&为了编写你的软件,你将包含每一套房产的训练数据输入到你的机器学习算法当中去。算法会尝试找出需要做哪些数学运算来得出价格。&/p&&p&这就好像是你已经知道了数学测试题的答案,但是算式中的运算符号都被擦去了:&img src=&/v2-8cb3399d9_b.jpg& data-rawwidth=&800& data-rawheight=&388& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-8cb3399d9_r.jpg&&&/p&&p&&i&天啊!一个阴险的学生擦去了参考答案上的算术符号!&/i&&/p&&p&你能从这张图里看出来测验中的数学题是怎样的吗?你知道自己应该对左边的数字「做些什么」,才能得到右边的答案。&/p&&p&在监督式学习中,你让计算机为你算出这种关系。而一旦你知道了解决这类特定问题所需要的数学方法后,你就可以解答其它同类问题了!&/p&&p&&b&非监督式学习&/b&&/p&&p&让我们回到房地产经纪人的例子。如果你不知道每栋房子的售价怎么办?即使你所知道的仅仅是每栋房屋的大小、位置等信息,你也可以搞出一些很酷炫的花样来。这就是我们所说的&b&非监督式学习&/b&。&img src=&/v2-4e769fb74e53a2f44b770_b.jpg& data-rawwidth=&616& data-rawheight=&432& class=&origin_image zh-lightbox-thumb& width=&616& data-original=&/v2-4e769fb74e53a2f44b770_r.jpg&&&/p&&p&&i&即使你并不是在尝试预测未知的数据(如价格),你也可以运用机器学习做一些有意思的事。&/i&&/p&&p&这就有点像有人给你一张纸,上面写了一列数字,然后说:「我不太清楚这些数字有什么意义,但也许你能找出些规律或是把它们分类什么的——祝你好运!」&/p&&p&所以该怎么处理这些数据呢?首先,你可以用个算法自动从数据中划分出不同的细分市场。也许你会发现,当地大学附近的购房者特喜欢户型小、卧室多的房子,而郊区的购房者偏好三卧室的大户型。了解这些不同消费者的喜好可以直接帮助你的营销。&/p&&p&你还可以做件很酷炫的事,就是自动找出非同寻常的房屋。这些与众不同的房产也许是奢华的豪宅,而你可以将最优秀的销售人员集中在这些地区,因为他们的佣金更高。&/p&&p&在接下来的内容中我们主要讨论监督式学习,但这并不是因为非监督式学习比较没用或是无趣。实际上,随着算法的改良,非监督式学习正变得越来越重要,因为即使不将数据和正确答案联系在一起,它也可以被使用。[2]&/p&&p&&b&太酷炫了,但是估算房价真能被看作「学习」吗?&/b&&/p&&p&作为人类的一员,你的大脑可以应付绝大多数情况,并且在没有任何明确指令时也能够学习如何处理这些情况。如果你做房地产经纪人时间足够长,你对于房产的合适定价、房屋的最佳营销方式以及客户会感兴趣类型等等都会有一种本能般的「感觉」。&a href=&/?target=http%3A//en.wikipedia.org/wiki/Strong_AI& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&强人工智能&i class=&icon-external&&&/i&&/a&研究的目标就是要计算机复制这种能力。&/p&&p&但是目前的机器学习算法还没有那么强大——它们只能在非常特定的、有限的问题上有效。也许在这种情况下,「学习」更贴切的定义是「在少量样本数据的基础上找出一个公式来解决特定的问题」。&/p&&p&但是「机器在少量样本数据的基础上找出一个公式来解决特定的问题」不是个好名字。所以最后我们用「机器学习」取而代之。&/p&&p&当然了,如果你是在 50 年后的未来读的这篇文章,而我们人类也已经得出了强人工智能的算法的话,那这篇文章看起来就像个老古董了。那样的话,就别读了,去让你的机器佣人给你做份三明治吧,未来的人类。&/p&&p&&b&让我们愉快地写代码吧!&/b&&/p&&p&所以,你打算怎么写上面例子中评估房价的程序呢?在往下看之前先思考一下吧。&/p&&p&如果对机器学习一无所知,你很有可能会尝试写出一些基本规则来评估房价,如下:&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&def&/span&
&span class=&nf&&estimate_house_sales_price&/span&&span class=&p&&(&/span&&span class=&n&&num_of_bedrooms&/span&&span class=&p&&,&/span& &span class=&n&&sqft&/span&&span class=&p&&,&/span& &span class=&n&&neighborhood&/span&&span class=&p&&):&/span&
&span class=&n&&price&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&c1&&# 在我这地方,每平方英尺房屋均价是 200 美元&/span&
&span class=&n&&price_per_sqft&/span& &span class=&o&&=&/span& &span class=&mi&&200&/span&
&span class=&k&&if&/span&
&span class=&n&&neighborhood&/span& &span class=&o&&==&/span& &span class=&s2&&&hipsterton&&/span&&span class=&p&&:&/span&
&span class=&c1&&#&/span&
&span class=&err&&但是有些地段房价会贵一点&/span&
&span class=&n&&price_per_sqft&/span& &span class=&o&&=&/span& &span class=&mi&&400&/span&
&span class=&k&&elif&/span& &span class=&n&&neighborhood&/span& &span class=&o&&==&/span& &span class=&s2&&&skid row&&/span&&span class=&p&&:&/span&
&span class=&c1&&#&/span&
&span class=&err&&有些地段房价便宜点&/span&
&span class=&n&&price_per_sqft&/span& &span class=&o&&=&/span& &span class=&mi&&100&/span&
&span class=&c1&&# 我们先按面积大小估计房屋价格基准&/span&
&span class=&n&&price&/span& &span class=&o&&=&/span& &span class=&n&&price_per_sqft&/span& &span class=&o&&*&/span& &span class=&n&&sqft&/span&
&span class=&c1&&# 现在根据卧室数量微调价格&/span&
&span class=&k&&if&/span&
&span class=&n&&num_of_bedrooms&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span&&span class=&p&&:&/span&
&span class=&c1&&#&/span&
&span class=&err&&工作室类型的公寓比较便宜&/span&
&span class=&n&&price&/span& &span class=&o&&=&/span& &span class=&n&&price&/span&&span class=&err&& — &/span&&span class=&mi&&20000&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&c1&&#&/span&
&span class=&err&&卧室数量越多,通常房价越贵&/span&
&span class=&n&&price&/span&
&span class=&o&&=&/span& &span class=&n&&price&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&n&&num_of_bedrooms&/span& &span class=&o&&*&/span& &span class=&mi&&1000&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&price&/span&
&/code&&/pre&&/div&&p&假如你像这样瞎忙几个小时,最后也许会得到一些像模像样的东西。但是你的程序永不会完美,而且当价格变化时很难维护。&/p&&p&如果能让计算机找出实现上述函数功能的办法,岂不更好?只要返回的房价数字正确,谁会在乎函数具体干了些什么呢?&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&def&/span&
&span class=&nf&&estimate_house_sales_price&/span&&span class=&p&&(&/span&&span class=&n&&num_of_bedrooms&/span&&span class=&p&&,&/span& &span class=&n&&sqft&/span&&span class=&p&&,&/span& &span class=&n&&neighborhood&/span&&span class=&p&&):&/span&
&span class=&n&&price&/span& &span class=&o&&=&/span& &span class=&o&&&&/span&&span class=&err&&计算机,请帮我算点数学题&/span&&span class=&o&&&&/span&
&span class=&k&&return&/span& &span class=&n&&price&/span&
&/code&&/pre&&/div&&p&考虑这个问题的一种角度是将&b&价格&/b&看作一碗美味的汤,而汤的原材料就是&b&卧室数量、面积和地段&/b&。如果你能算出每种原材料对最终的价格有多大影响,也许就能得到各种原材料混合形成最终价格的具体比例。&/p&&p&这样可以将你最初的程序(全是令人抓狂的 if else 语句)简化成类似如下的样子:&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&def&/span&
&span class=&nf&&estimate_house_sales_price&/span&&span class=&p&&(&/span&&span class=&n&&num_of_bedrooms&/span&&span class=&p&&,&/span& &span class=&n&&sqft&/span&&span class=&p&&,&/span& &span class=&n&&neighborhood&/span&&span class=&p&&):&/span&
&span class=&n&&price&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&c1&&# 一小撮这个&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&n&&num_of_bedrooms&/span& &span class=&o&&*&/span& &span class=&o&&.&/span&&span class=&mi&&213&/span&
&span class=&c1&&# 一大撮那个&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&n&&sqft&/span& &span class=&o&&*&/span& &span class=&mf&&&/span&
&span class=&c1&&# 或许再加一把这个&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&n&&neighborhood&/span& &span class=&o&&*&/span& &span class=&mf&&2.&/span&
&span class=&c1&&# 最后,再多加一点点盐&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&mf&&201.&/span&
&span class=&k&&return&/span& &span class=&n&&price&/span&
&/code&&/pre&&/div&&p&注意那些用粗体标注的神奇数字——&b&.213, , 2., 和201.&/b&。它们称为&b&权重(weight)&/b&。如果我们能找出对每栋房子都适用的完美权重,我们的函数就能预测所有的房价![3]&/p&&p&一种找出最佳权重的笨办法如下所示:&/p&&p&&b&第一步:&/b&&/p&&p&首先,将每个权重都设为 1.0:&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&def&/span&
&span class=&nf&&estimate_house_sales_price&/span&&span class=&p&&(&/span&&span class=&n&&num_of_bedrooms&/span&&span class=&p&&,&/span& &span class=&n&&sqft&/span&&span class=&p&&,&/span& &span class=&n&&neighborhood&/span&&span class=&p&&):&/span&
&span class=&n&&price&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&c1&&# 一小撮这个&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&n&&num_of_bedrooms&/span& &span class=&o&&*&/span& &span class=&mf&&1.0&/span&
&span class=&c1&&# 一大撮那个&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&n&&sqft&/span& &span class=&o&&*&/span& &span class=&mf&&1.0&/span&
&span class=&c1&&# 或许再加一把这个&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&n&&neighborhood&/span& &span class=&o&&*&/span& &span class=&mf&&1.0&/span&
&span class=&c1&&# 最后,再多加一点点盐&/span&
&span class=&n&&price&/span& &span class=&o&&+=&/span& &span class=&mf&&1.0&/span&
&span class=&k&&return&/span& &span class=&n&&price&/span&
&/code&&/pre&&/div&&p&&b&第二步:&/b&&/p&&p&将你知道的每栋房产的数据代入函数进行运算,检验估算值与正确价格的偏离程度:&img src=&/v2-cadddea5db9a07bbef1f9_b.jpg& data-rawwidth=&800& data-rawheight=&346& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-cadddea5db9a07bbef1f9_r.jpg&&&/p&&p&&i&用你的程序来预测每栋房屋的价格。&/i&&/p&&p&比如说,如果第一套房产实际成交价为 25 万美元,你的函数估价为 17.8 万美元,这一套房产你就差了 7.2 万。&/p&&p&现在,将你的数据集中的每套房产估价偏离值平方后求和。假设你的数据集中交易了 500 套房产,估价偏离值平方求和总计为 86,123,373 美元。这个数字就是你的函数现在的「错误」程度。&/p&&p&现在,将总和除以 500,得到每套房产的估价偏差的平均值。将这个平均误差值称为你函数的&b&代价(cost)&/b&。&/p&&p&如果你能通过调整权重,使得这个代价变为 0,你的函数就完美了。它意味着,根据输入的数据,你的程序对每一笔房产交易的估价都是分毫不差。所以这就是我们的目标——&b&通过尝试不同的权重值,使代价尽可能的低。&/b&&/p&&p&&b&第三步:&/b&&/p&&p&通过尝试&b&所有可能的权重值组合&/b&,不断重复第二步。哪一个权重组合的代价最接近于 0,你就使用哪个。当你找到了合适的权重值,你就解决了问题!&/p&&p&&b&兴奋的时刻到了!&/b&&/p&&p&挺简单的,对吧?想一想刚才你做了些什么。你拿到了一些数据,将它们输入至三个泛型的、简单的步骤中,最后你得到了一个可以对你所在区域任何房屋进行估价的函数。房价网站们,你们要小心了!&/p&&p&但是下面的一些事实可能会让你更兴奋:&/p&&p&1.
过去 40 年来,很多领域(如语言学、翻译学)的研究表明,这种「搅拌数字汤」(我编的词)的泛型学习算法已经超过了那些真人尝试明确规则的方法。机器学习的「笨」办法终于打败了人类专家。&/p&&p&2.
你最后写出的程序是很笨的,它甚至不知道什么是「面积」和「卧室数量」。它知道的只是搅拌,改变数字来得到正确的答案。&/p&&p&3.
你可能会对「&b&为何&/b&一组特殊的权重值会有效」一无所知。你只是写出了一个你实际上并不理解却能证明有效的函数。&/p&&p&4.
试想,如果你的预测函数输入的参数不是「面积」和「卧室数量」,而是一列数字,每个数字代表了你车顶安装的摄像头捕捉的画面中的一个像素。然后,假设预测的输出不是「价格」而是「方向盘转动角度」,&b&这样你就得到了一个程序可以自动操纵你的汽车了!&/b&&/p&&p&太疯狂了,对吧?[4]&/p&&p&&b&第三步里「尝试每个数字」是怎么一回事?&/b&&/p&&p&好吧,当然你不可能试遍所有权重组合来找到效果最好的组合。直到世界毁灭你也算不完,因为这数字和组合无穷无尽。&/p&&p&为了避免这种情况,数学家们找到了很多种&a href=&/?target=http%3A//en.wikipedia.org/wiki/Gradient_descent& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&聪明的办法&i class=&icon-external&&&/i&&/a&来快速找到优秀的权重值。下面是一种:&/p&&p&首先,写出一个简单的等式表示上面的第二步:&img src=&/v2-b2e83b1fc1b4e9daea025_b.png& data-rawwidth=&955& data-rawheight=&313& class=&origin_image zh-lightbox-thumb& width=&955& data-original=&/v2-b2e83b1fc1b4e9daea025_r.png&&&/p&&p&&i&这就是你的&b&代价函数(Cost Function)。&/b&&/i&&/p&&p&现在让我们,使用机器学习数学术语(现在暂时你可以忽略它们),重新改写同样的这一等式:&img src=&/v2-4b8a2ffc4e94a3dfd97bfdfa_b.png& data-rawwidth=&1374& data-rawheight=&344& class=&origin_image zh-lightbox-thumb& width=&1374& data-original=&/v2-4b8a2ffc4e94a3dfd97bfdfa_r.png&&&/p&&p&&i& θ 表示当前的权重值。 J(θ) 表示「当前权重的代价」。&/i&&/p&&p&这个等式表示,在当前权重值下,我们估价程序的偏离程度。&/p&&p&如果我们为这个等式中所有卧室数和面积的可能权重值作图的话,我们会得到类似下图的图表:&img src=&/v2-d1bc23e6d9aad642eb4e0c_b.png& data-rawwidth=&1600& data-rawheight=&1114& class=&origin_image zh-lightbox-thumb& width=&1600& data-original=&/v2-d1bc23e6d9aad642eb4e0c_r.png&&&/p&&p&&i&我们代价函数的图形就像一个碗。纵轴表示代价。&/i&&/p&&p&图中,蓝色的最低点就是代价最低的地方——在这里我们的程序偏离最小。最高点们意味着偏离最大。所以,如果我们能找到一组权重值让我们到达图中的最低点,我们就得到了答案!&img src=&/v2-82980fdcbcdda6c279a967e630e21053_b.png& data-rawwidth=&1432& data-rawheight=&946& class=&origin_image zh-lightbox-thumb& width=&1432& data-original=&/v2-82980fdcbcdda6c279a967e630e21053_r.png&&&/p&&p&因此,我们需要做的只是调整我们的权重,使得我们在图上朝着最低点「走下坡路」。如果我们不断微调权重,一直向最低点移动,那么我们最终不用尝试太多权重就可以到达那里。&/p&&p&如果你还记得一点微积分的话,你也许记得如果你对一个函数求导,它会告诉你函数任意一点切线的斜率。换句话说,对于图上任意给定的一点,求导能告诉我们哪条是下坡路。我们可以利用这个知识不断走向最低点。[5]&/p&&p&所以,如果我们对代价函数关于每一个权重求偏导,那么我们就可以从每一个权重中减去该值。这样可以让我们更加接近山底。一直这样做,最终我们将到达底部,得到权重的最优值。(读不懂?不用担心,继续往下读)。&/p&&p&这种为函数找出最佳权重的方法叫做&b&批量梯度下降(Batch Gradient Descent)&/b&。如果你对细节感兴趣,不要害怕,可以看看这个&a href=&/?target=https%3A////introduction-to-gradient-descent/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&详细说明&i class=&icon-external&&&/i&&/a&。&/p&&p&当你使用一个机器学习算法库来解决实际问题时,这些都已经为你准备好了。但清楚背后的原理依然是有用的。&/p&&p&&b&还有什么是本篇文章略过的内容?&/b&&/p&&p&上面我描述的三步算法被称为&b&多元线性回归(multivariate linear regression)&/b&。你在估算一个能够拟合所有房价数据点的直线表达式。然后,你再根据房子可能在你的直线上出现的位置,利用这个等式来估算你从未见过的房屋的价格。这是一个十分强大的想法,你可以用它来解决「实际」问题。&/p&&p&但是,尽管我展示给你的这种方法可能在简单的情况下有效,它却不能应用于所有情况。原因之一,就是因为房价不会是简简单单一条连续的直线。&/p&&p&不过幸运的是,有很多办法来处理这种情况。有许多机器学习算法可以处理非线性数据(如&a href=&/?target=http%3A//en.wikipedia.org/wiki/Artificial_neural_network& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&神经网络&i class=&icon-external&&&/i&&/a&或带&a href=&/?target=https%3A//en.wikipedia.org/wiki/Kernel_method& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&核函数&i class=&icon-external&&&/i&&/a&的&a href=&/?target=https%3A//en.wikipedia.org/wiki/Support_vector_machine& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&支持向量机&i class=&icon-external&&&/i&&/a&)。除此之外,灵活使用线性回归也能拟合更复杂的线条。在所有的情况下,寻找最优权重这一基本思路依然适用。&/p&&p&另外,我忽略了&b&过拟合(overfitting)&/b&的概念。得到一组能完美预测原始数据集中房价的权重组很简单,但用这组权重组来预测原始数据集之外的任何新房屋其实都不怎么准确。这也是有许多解决办法的(如&a href=&/?target=http%3A//en.wikipedia.org/wiki/Regularization_%2528mathematics%2529%23Regularization_in_statistics_and_machine_learning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&正则化&i class=&icon-external&&&/i&&/a&以及使用&a href=&/?target=http%3A//en.wikipedia.org/wiki/Cross-validation_%2528statistics%2529& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&交叉验证&i class=&icon-external&&&/i&&/a&的数据集)。学习如何应对这一问题,是学习如何成功应用机器学习技术的重点之一。&/p&&p&换言之,尽管基本概念非常简单,要通过机器学习得到有用的结果还是需要一些技巧和经验的。但是,这是每个开发者都能学会的技巧。&/p&&p&&b&机器学习是黑魔法吗?&/b&&/p&&p&一旦你开始明白,用机器学习技术解决那些看似困难问题(如字迹识别)有多便利时,你就会有一种,只要有足够的数据,你就能够用机器学习解决任何问题的感觉。只需要输入数据,计算机就能神奇地找出拟合数据的等式!&/p&&p&但是有一点很重要,你要记住,只有在你拥有的数据对于解决实际问题有效的时候,机器学习才能适用。&/p&&p&例如,如果你建立了一个根据每套房屋内盆栽种类的数量来预测房价的模型,那它永远都不会有效果。因为盆栽种类的数量和房价之间没有任何的关系。所以,无论你多卖力地尝试,计算机永远也推导不出两者之间的关系。&img src=&/v2-55cdb5bb8_b.jpg& data-rawwidth=&1010& data-rawheight=&322& class=&origin_image zh-lightbox-thumb& width=&1010& data-original=&/v2-55cdb5bb8_r.jpg&&&/p&&p&&i&你只能模拟实际存在的关系。&/i&&/p&&p&所以请记住,如果一个问题人类专家不能手动用数据解决,计算机可能也不能解决。然而,对于那些人类能够解决的问题,如果计算机能够更快地解决,那岂不美哉?&/p&&p&&b&怎样学到更多机器学习的知识&/b&&/p&&p&我认为,目前机器学习的最大问题是它主要活跃于学术界和商业研究组织中。对于只想大体了解一下,而不打算成为专家的人们来说,简单易懂的资料不多。但是这种情况每天正在改善。&/p&&p&吴恩达教授(Andrew Ng)在 &a href=&/?target=https%3A//www.coursera.org/course/ml& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Coursera 上的免费机器学习课程&i class=&icon-external&&&/i&&/a&非常棒。我强烈建议从此入手。对于任何拥有计算机或科学学位的人,或是还能记住一点点数学的人来说,都应该非常容易入门。&/p&&p&另外,你还可以通过下载安装 &a href=&/?target=http%3A//scikit-learn.org/stable/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SciKit-Learn&i class=&icon-external&&&/i&&/a&,用它来试验无数个机器学习算法。它是一个 Python 框架,包含了所有常见机器学习算法的「黑盒」版本。&/p&&p&&i&注:&/i&&/p&&p&&i&1.
译者注:泛型,即没有特定类型,泛型算法是一种对很多不同问题都适用的算法,也叫作通用算法。如果你现在还对这个概念一知半解没关系,相信你读过这篇文章之后会对「泛型算法」有一个更深入的理解。&/i&&/p&&p&&i&2.
作者注:还有很多&a href=&/?target=https%3A//en.wikipedia.org/wiki/Machine_learning%23Algorithm_types& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&其它种类&i class=&icon-external&&&/i&&/a&的机器学习算法。但从这里开始讲起是一个不错的选择。&/i&&/p&&p&&i&3.
译者注:权重可能有很多种不同的组合,每一种权重最后给出的房价预测也不同,我们的目标就是要找出一组最终价格最接近真实值的权重。&/i&&/p&&p&&i&4.
译者注:到这里,你应该对泛型算法有一个更深刻的理解了。&/i&&/p&&p&&i&5.
译者注:如果你还记得微积分当中,一个点求出的导数是 0的话,那么这个点就是最低点。所以返回到刚刚的代价函数里面,代价函数就等于 0,也就意味着,你的预估和真实值没有任何差别。&/i&&/p&
作者:Adam Geitgey 原文:翻译:巡洋舰科技——赵95校对:离线Offline——林沁转载请联系译者。你是否曾经听到过人们谈论机器学习,而你却对其含义只有一个模糊的概念呢?你是否已经厌倦了在和同事对话时只能点头呢?现在,让我们一起…
&img src=&/50/v2-0af00bc9d0aec410dd22864_b.jpg& data-rawwidth=&1280& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/50/v2-0af00bc9d0aec410dd22864_r.jpg&&&p&从买第一个Arduino套装开始,我接触机器人有好几年了,但直到最近才开始做完整的课题。期间有两项技能为我打开了新世界的大门:Python和Linux。他们背后,是强大的开源社区。掌握了这两样工具的工具(元工具),你感觉网上遍地是趁手的兵器。上周在公司内部编程培训时,有一句话深得我心:我们是软件工程师,不是程序员。我们的工作不是写程序,而是合理使用工具解决问题。在Google,如果你觉得自己不得不从零开始写某项功能,只是你还没有找到相应的工具罢了。在开源社区更是如此。&br&&/p&&p&这是一个遥控小车,通过红外遥控或无线键盘可以控制小车的行动和摄像头的角度。TensorFlow实时监测摄像头拍摄到的画面,语音读出它识别出的物体。所有代码都放在我的&a href=&/?target=https%3A///zhaozhichen/rpi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub&i class=&icon-external&&&/i&&/a&上。&/p&&p&这个想法不是我的原创,来自Lukas Biewald去年九月写的&a href=&/?target=https%3A///learning/how-to-build-a-robot-that-sees-with-100-and-tensorflow& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这篇博客&i class=&icon-external&&&/i&&/a&。核心部分,TensorFlow识别摄像头图像并语音输出,是我司人工智能工程师Pete Warden的&a href=&/?target=https%3A///tensorflow/tensorflow/tree/master/tensorflow/contrib/pi_examples& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开源工作&i class=&icon-external&&&/i&&/a&。和原博客不同的是,制作过程中我加入了Arduino作为机械总控,也了解了Arduino和树莓派对话的方法(串口通信)。期间用到了许多有用的技能和工具,在这里整理一下,欢迎同好们留言交流!&/p&&p&整个课题在命令行环境完成,没有图形界面。如果你不懂Linux系统,可能有些吃力。但是,你都开始玩机器人了,怎么能不学Linux呢?我是通过《&a href=&/?target=http%3A//cn.linux.vbird.org/linux_basic/linux_basic.php& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&鸟叔的Linux私房菜&i class=&icon-external&&&/i&&/a&》自学Linux的,后来又尝试&a href=&/?target=http%3A///347& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&从源代码搭建Linux&i class=&icon-external&&&/i&&/a&,终于克服在Windows系统环境长大产生的对命令行的抗拒心理。相信我,克服这个障碍,你将打开新世界的大门。何况,用命令行工作才显得更酷更极客,不是吗?除了Linux,你还要懂C++和Python来完成这个课题。&/p&&p&另外,这篇文章主要介绍电子部分,不讲机械和美工。如你看到的,这个小车丑破了我的审美底线,我没花心思在外观上。我希望以后做一些兼具美学和功能的电子课题,或许会和设计师朋友们合作!&/p&&p&&strong&一、树莓派&/strong&&/p&&p&首先,你需要一个最新款的&a href=&/?target=https%3A//www.raspberrypi.org/products/raspberry-pi-3-model-b/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Raspberry Pi&i class=&icon-external&&&/i&&/a&,安装好定制的Linux系统,连上无线网。你还需要一个&a href=&/?target=https%3A//www.raspberrypi.org/products/camera-module/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&官配摄像头&i class=&icon-external&&&/i&&/a&,并在树莓派中&a href=&/?target=https%3A//www.raspberrypi.org/learning/getting-started-with-picamera/worksheet/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&设置为可用&i class=&icon-external&&&/i&&/a&。你可以将树莓派通过HDMI连接到显示器,但更方便的做法是ssh远程登录,这样你就不用在调试过程中反复地把树莓派从小车上拔线、取下、连屏幕、然后安装回小车了,你可以实时远程修改小车的内核。甚至,我的Arduino程序也是通过树莓派编写、上传、通信的,于是也免去了电脑连接Arduino的步骤,让一切更流畅无缝。&/p&&p&树莓派的Linux系统支持图形桌面,你可以使用RealVNC(用于Windows)或TightVNC(用于Mac)远程登录图形桌面。(这个课题里不需要)&/p&&p&&strong&二、TensorFlow&/strong&&/p&&p&这是课题的核心部分,反而操作起来最简单,因为一切都在&a href=&/?target=https%3A///tensorflow/tensorflow/tree/master/tensorflow/contrib/pi_examples& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&i class=&icon-external&&&/i&&/a&写清楚了,按部就班就行。运行代码在&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/runTF.sh& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&i class=&icon-external&&&/i&&/a&。&/p&&p&注意:这里用了训练好的模型,即TensorFlow中预先给定了训练好的参数集,训练图片库是&a href=&/?target=http%3A//image-net.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ImageNet&i class=&icon-external&&&/i&&/a&。也就是说,小车识别出的物体只能是图片库里包含的labels,也没有“学习”的过程。&/p&&p&&strong&三、小车&/strong&&/p&&p&小车套件(robot chassis)很多,选你喜欢的一款。标准的套件包括一个基座,两组马达+轮子,一个万向轮,一个电池盒。这个课题不需要四驱,而且之后要用到的马达控制器可能只支持两个马达。我用的是张尧姐送给我的第一个DIY套件:一个戳了很多洞的木板和3D打印出来的轮子和连接部件。这个恐怕是&a href=&/?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&萝卜太辣&i class=&icon-external&&&/i&&/a&最早的套件,来自硅谷的创客空间。现在,萝卜太辣已经是国内机器人教育的领军公司,他们正式出品的“起源”套件已非常精致完善,线上也有成熟的教学资源。这个课题里用到的舵机和金属连接部件都来自尧姐送给我的第二个套件——“起源”套件。但从感情上来讲,那套粗糙的木板套件让我更亲近,符合“用最简单的材料实现原型”的理念。&/p&&p&电源:树莓派需要5V、2A电源,放在小车上的话需要一个电流足够大的充电宝。连接树莓派和Arduino的连接线同时也为Arduino供电。但是,马达我用了外部电源(电池盒)。你会发现即使没有外部电源,充电宝依然可以带动马达(尽管很慢)。但是,好的习惯是机械部分独立供电;逻辑电路部分由充电宝提供。&/p&&p&下一步,操控小车。这里有两个方案,第一个不需要Arduino。我使用的是第二个。&/p&&p&3.1:树莓派作为机械总控&/p&&p&我认为单片机的精髓,不是尺寸小,而是丰富的GPIO(General Purpose Input-Output),它们是程序与外部世界对话的窗口。你看到的各种电子部件、探头、焊接、面包板,都是在和GPIO打交道。你需要了解基本的电路知识,也需要知道它们在单片机上的&a href=&/?target=https%3A//www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&排布&i class=&icon-external&&&/i&&/a&。树莓派有一个非常好用的GPIO Python库:&a href=&/?target=https%3A//gpiozero.readthedocs.io/en/v1.3.1/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gpiozero&i class=&icon-external&&&/i&&/a&,使用方法一目了然。&/p&&p&通常用四个端口控制马达,分别连接两个马达的正负级,通过每个马达的正向/逆向旋转来实现小车的前进/后退/转向。实现双向电流的标准电路模型是&a href=&/?target=https%3A//en.wikipedia.org/wiki/H_bridge& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&H桥接&i class=&icon-external&&&/i&&/a&。你可以选购一款最基本的H-bridge模块。&/p&&p&因为我手头没有H桥接,所以这个方案我没有实现。&/p&&p&3.2:Arduino作为机械总控&/p&&p&我没有H桥接,但有一个用于Arduino的Motor stacking shield,即Arduino上的H桥接。于是我干脆用Arduino负责机械(马达+舵机),相当于身体;树莓派只负责图像识别,相当于大脑。&/p&&p&Arduino不是Linux系统,不能直接ssh进去写程序,需要在外写好后编译上传。我用数据线连接了树莓派和Arduino,在树莓派上写好程序后上传。我发现一个非常好用的命令行IDE:PlatformIO(也有很棒的图形界面编辑器)。Linux上的&a href=&/?target=http%3A//docs.platformio.org/en/stable/installation.html%23super-quick-mac-linux& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&安装过程&i class=&icon-external&&&/i&&/a&基于Python 2.7。你需要一些初始化,如果像我一样是Arduino Uno主板,输入以下命令即可:&/p&&blockquote&&p&pio init -b uno&/p&&/blockquote&&p&Arduino的C++源代码在&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/src/main.cpp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&i class=&icon-external&&&/i&&/a&。进入&a href=&/?target=https%3A///zhaozhichen/rpi/tree/master/arduino/car& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这个文件夹&i class=&icon-external&&&/i&&/a&后,输入以下命令即可上传:&/p&&blockquote&&p&pio run –target upload&/p&&/blockquote&&p&后来我发现PlatformIO对于Arduino主板好像不支持C++11,如果你有这个需要,可以考虑&a href=&/?target=http%3A//inotool.org/quickstart& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&inotool&i class=&icon-external&&&/i&&/a&。&/p&&p&&strong&四,无线遥控&/strong&&/p&&p&同样有两个方案:无线键盘,红外遥控。两个方案我都实现了。&/p&&p&4.1:无线键盘&/p&&p&如果你在上一步用了3.1,无线键盘操控模块就可以直接嵌入到机械操控代码中(我没有实现)。如果你在上一步用了3.2,那么需要在树莓派上将按键操作转为机械控制信号(文本形式),通过串口通信(Serial Port)操控Arduino。python代码在&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/runCar.py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&i class=&icon-external&&&/i&&/a&,用到了我&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/keypress.py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&自己写的库&i class=&icon-external&&&/i&&/a&,用来检测键盘按键。这个库将单次按键匹配到前进/后退/转/停止等行为;但我希望实现的是长按键前进/后退/转,不按键时停止。但我始终没有找到现成的库(Update:据说在PyGame里有)。后来我试着通过背景线程(threading)和系统延时的方法&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/keypress2.py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&写了一个库&i class=&icon-external&&&/i&&/a&,但效果不太理想,系统延时和程序运行时间带来的误差总是匹配不好,就放弃了。现在代码里用的是单次按键行动/停止的方案。如果读者有好的库,请推荐!&/p&&p&有一点要注意,使用串口通信前需要disable login(既然你已经ssh远程登录了),&a href=&/?target=http%3A//www.hobbytronics.co.uk/raspberry-pi-serial-port& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这篇&i class=&icon-external&&&/i&&/a&解释比较清楚。&/p&&p&4.2:红外遥控&/p&&p&老婆催我看电影,红外遥控的原理就不介绍了。红外的长按返回的是一个单独的值(REPEAT),这点就可以让我很容易实现“长按-车动,不按-车停”。此外,红外遥控的代码直接写在Arduino的C++代码里,不需要通过树莓派和串口通信,更符合Arduino作为机械总控的设计原则。&/p&&p&PlatformIO不自带红外的库,我用的是&a href=&/?target=https%3A///bengtmartensson/Infrared4Arduino& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这个&i class=&icon-external&&&/i&&/a&。PlatformIO使用第三方库实在太简单了,不需要下载安装,直接在配置里加上GitHub链接即可,参考我的&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/platformio.ini& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&配置文件&i class=&icon-external&&&/i&&/a&。&/p&&p&还有一点,每一个红外遥控都不一样。家里的电视机、音响、空调遥控都可以用,你只需要在使用前匹配好按键和对应的码。我在&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/car/src/main.cpp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码&i class=&icon-external&&&/i&&/a&里define的一堆KEY只适用于我的遥控器。你可以用&a href=&/?target=https%3A///zhaozhichen/rpi/blob/master/arduino/ir_test/src/main.cpp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这个代码&i class=&icon-external&&&/i&&/a&来获得键码。注意:红外遥控有几种模式,我的遥控用的是最常见的NEC模式,如果你匹配出来一堆乱码,可以考虑库里的其他几个模式。&/p&&p&对了,如果你用红外遥控,你还需要在车上装一个IR Receiver。我装在Arduino上,用8号端口。&/p&&p&如果你用了方案3.1,你也可以直接将IR Receiver装在树莓派的GPIO上。&/p&&p&&strong&五,其他&/strong&&/p&&p&这些已经够你开车上路了。我在车上装了舵机(Servo),控制摄像头的上下转动。操作很直观,看代码就能理解。我没有装超声探头,这个可以帮助你检测障碍,在撞墙前强行停止。&/p&&p&如果你想远程看摄像头的实时画面,VNC不能胜任。可以考虑&a href=&/?target=https%3A///post/stream-video-from-the-raspberry-pi-camera-to-web-browsers-even-on-ios-and-android& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这个方案&i class=&icon-external&&&/i&&/a&。但这样的话TensorFlow就不能再用摄像头了。应该有一个共用的方案,我没有探究。&/p&&p&差不多就这些了,我的代码没有太多注释,等有空往上加。如果你有疑问,可以留言问我。&/p&&p&福利:&a href=&/?target=https%3A///zhaozhichen/rpi/tree/master/camera& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&i class=&icon-external&&&/i&&/a&有一个延时摄影的简单程序,我在crontab里设置为每隔一分钟拍一张照,然后每天半夜将当天拍的照转成录像。下周打算带到公司里,找个风景好的位置,放几天,拍纽约的24小时风景。&/p&
从买第一个Arduino套装开始,我接触机器人有好几年了,但直到最近才开始做完整的课题。期间有两项技能为我打开了新世界的大门:Python和Linux。他们背后,是强大的开源社区。掌握了这两样工具的工具(元工具),你感觉网上遍地是趁手的兵器。上周在公司内部…
&img src=&/50/v2-31f9e290f82207cddd5b2_b.jpg& data-rawwidth=&1200& data-rawheight=&499& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&/50/v2-31f9e290f82207cddd5b2_r.jpg&&&h2&1 Hacknet&/h2&&p&Hacknet是一款身临其境,基于终端的黑客模拟器。你将跟随一位最近刚过世的黑客,通过他遗留的线索,来探询混乱未知的网络世界。他的死可能并非像媒体所报道的意外那么简单。只需进行简单的教学,你便能使用基础的指令来完成真实的骇入过程,探索这充满了谜团的黑客世界。&/p&&p&Bit, 一位负责开发世界上最具攻击性的骇入系统的黑客,去世了。当他的系统连续14天都没有检测到他的操作后,系统的保险程序便开始运行,将他未完成的计划发给了一位陌生的用户。作为这名用户,你需要决定是否一步步揭开事实的真相,并且确保Hacknet操作系统不会落入到不法之徒手中。&/p&&p&Hacknet能够为你提供一个全方位的真实黑客模拟器,可以让你探索人类窥探隐私的天性、制止企业贪婪盛行并暗中对抗隐藏在网络世界中的强大黑客,同时它又能提供学习支持,可以让一个真正的电脑小白通过游戏来掌握现实世界的电脑命令和对应用程序的操控。&/p&&p&游戏特色&/p&&p&真实的骇入&/p&&p&基于真实的UNIX指令,Hacknet将重点放在真实的骇入过程,而不是追求炫酷的好莱坞式黑客。通过拟真化的骇入过程,让玩家们仿佛置身骇入现场,体验打破防火墙时几近真实的感受。&/p&&p&探寻Bit的死亡之谜&/p&&p&一位黑客莫名死亡,而媒体们的报道根本无法自圆其说。跟随着他的“灵魂”(一个自动邮件发送系统)带给你的指示,你将会慢慢深入并参与到一个黑暗而又庞大的黑客阴谋之中。&/p&&p&完全的浸入式体验&/p&&p&你将会被带入一个无尽的虚拟黑客世界,在这里没有&级别&或者是明显的游戏元素来打破这一体验。你可以选择跟随Bit的邮件的指引,或是直接遨游在整个服务器网络之中,探索并追寻信息的蛛丝马迹。&/p&&p&上手简单精通难&/p&&p&本游戏不会限制你的游戏方式或让你按部就班 游戏内容和学习曲线的设计,能够让初学者或有终端操作经验的人都能找到一份属于自己的快乐。&/p&&img src=&/v2-6a57d0cfb5d4c4fb9d77220e_b.jpg& data-rawwidth=&640& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-6a57d0cfb5d4c4fb9d77220e_r.jpg&&&h2&2 Uplink&/h2&&p&在游戏中,玩家将扮演2010年为Uplink公司工作的黑客,Uplink公司为全球黑客提供工作。玩家将积累金钱、软件、网关硬件以及技巧来为不同的客户工作,这些工作包括侵入国际公司的服务器窃取、破坏文件以获取利润,或侵入政府及组织的服务器来伪造学位、清除犯罪记录。游戏主线剧情是从玩家收到已故的Uplink黑客排行榜第一名的Agent发来的邮件开始的。Agent声称仙女座公司(英语:Andromeda Organization Company, ARC)正在开发一种名叫“启示”的病毒,该病毒以人工智能为基础,并将在特定时间对全球互联网进行攻击。另一家公司Arunmor则在开发一种名叫“信仰”的病毒来清除“启示”。玩家可以选择支持其中一方,也可以选择自己自由的工作。&/p&&p&黑客精英专注于模拟一个高科技、好莱坞式的黑客,如同《Hacker》,《Sneakers》,《WarGames》以及《Swordfish》等电影中表现的那样。游戏中处处可见参考这些电影的痕迹,比如其中一个公司的服务器名字叫做史蒂夫·杰克逊游戏(这家公司曾经起诉美国政府侵入他们的服务器),玩家还可以在“用户名”一栏输入“TooManySecrets”(一个通过重排Setec Astronomy字母顺序造出的单词)来打开作弊菜单。此外游戏中语音验证环节的文本为“你好。我是系统管理员。我的声纹是通行证。确认”,这句话和《Sneakers》使用的很像。&/p&&p&游戏中的应用程序是高度简化以及完全自动化的,操作界面很像《Hackers》电影中出现的程序。&/p&&p&大多数的“侵入”形式如下:“有一个等级Y类型X的安全系统阻止我接入或更改我想要&/p&&p&的东西,所以我需要一个反X型Y级别的程序”。游戏中提供了数十种不同的程序以选择,但实际上运行他们完全没有困难(只要玩家能够担负得起)。&/p&&img src=&/v2-0b69ae5ccbb_b.jpg& data-rawwidth=&640& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-0b69ae5ccbb_r.jpg&&&h2&3 HackTheGame&/h2&&p&在这个游戏中你将扮演一个黑客。当你第一次登录到你的黑客控制台,你会收到一封匿名邮件,要求你成为一位黑客,因为他听到了许多关于你的伟大事迹。如果你成功了,你将名扬天下,同时也会可以接受更多的黑客任务。&/p&&p&随着游戏的不断深入,游戏的难度等级也会提升,为了帮助你的黑客冒险,你有一套全功能的黑客工具:Ping、端口扫描、telnet、病毒上传、密码破解、文件粉碎等。&/p&&p&游戏中使用的操作系统是*nix和windows的混合体,我们称之为ChaOS,它有很丰富的功能以及很酷的界面,用起来就像一个真实的操作系统&/p&&img src=&/v2-a8a149deebf6e790cebfae614dd81163_b.png& data-rawwidth=&640& data-rawheight=&416& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-a8a149deebf6e790cebfae614dd81163_r.png&&&img src=&/v2-d492dcb1a960dfba94ff_b.png& data-rawwidth=&515& data-rawheight=&301& class=&origin_image zh-lightbox-thumb& width=&515& data-original=&/v2-d492dcb1a960dfba94ff_r.png&&&h2&4 Hacker Evolution&/h2&&p&黑客进化是一款黑客模拟游戏,具有无与伦比的图像和功能。在游戏中,你将扮演一位专业从事网络安全的情报特工。当世界上发生了一连串的事故导致核心服务故障,你需要找出事件的元凶,并阻止他的进一步破坏。&/p&&p&你黑入电脑,获取上面的信息以及各种漏洞利用程序,窃取金钱然后用拼图似的方法来升级你的硬件设备。&/p&&p&虽然是游戏里面虚拟出来操作系统,但是真实度很高,带给玩家尽可能类似黑客的体验。&/p&&p&&img src=&/v2-fd68dcb96f_b.jpg& data-rawwidth=&640& data-rawheight=&384& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-fd68dcb96f_r.jpg&&其中hacknet和Hacker Evolution、uplink在steam平台上有售,大家也可以去网盘搜碰碰运气~~,Hacker The Game可以免费下载。&/p&
1 HacknetHacknet是一款身临其境,基于终端的黑客模拟器。你将跟随一位最近刚过世的黑客,通过他遗留的线索,来探询混乱未知的网络世界。他的死可能并非像媒体所报道的意外那么简单。只需进行简单的教学,你便能使用基础的指令来完成真实的骇入过程,探索这…
“微型湿地生态系统”&br&(更新教程多图预警!)&br&&b&一、综述&/b&&br&首先说明一下,叫“微型湿地生态系统”这么高大尚的名字绝对是为了吸粉骗赞,咩哈哈~就像把苍蝇拍说成“二向箔武器”一样……不过它确实是一个可以自循环的生态系统,下文会讲到。&br&目前能称之为“生态系统”的观赏缸主要有海水珊瑚缸(模拟海洋生态系统)、雨林缸(模拟热带雨林生态系统)、水草缸和水陆缸(模拟湿地生态系统),其中前两个难度较大,极度依赖设备,适合好折腾又多金的玩家,而水草缸需要的各类综合知识较多,需要有一定的基础。相较而言,水陆缸对设备的要求是最低的,对水质的要求也不那么苛刻,可以像盆景一样立刻成景,所以比较适合初学者,我今天介绍的就是这样一个迷你水陆缸。&br&&br&&b&二、基本原理&/b&&br&先上图说一下大致原理(图片来自网络,侵删,下同):&br&&img src=&/v2-5d0bff00a0b_b.png& data-rawwidth=&300& data-rawheight=&190& class=&content_image& width=&300&&&br&&img src=&/v2-7f6c5b65d01dcc00dfb888e5_b.jpg& data-rawwidth=&525& data-rawheight=&492& class=&origin_image zh-lightbox-thumb& width=&525& data-original=&/v2-7f6c5b65d01dcc00dfb888e5_r.jpg&&可以看出,整个系统是一个动态的系统,其外部能量供应来自于两方面:&br&1、定时光源提供给植物光合作用的动力,模拟自然界中每天东升西落的太阳;&br&2、电动潜水泵使得水体保持循环流动。模拟由地球自转和各种势能形成的水流动。&br&有了外部提供的能量,小小的生态系统就能在条件合适的情况下自行运转循环起来,所谓“合适的条件”是指光(光谱、色温、光照强度、光照时间)、水质(酸碱度PH、德氏硬度GH、碳酸根硬度KH、硝酸盐与亚硝酸盐含量等)、温度(气温与水温,通常在维持在20-25摄氏度之间最佳)、空气相对湿度、所选动植物间的相互关系(即存在合理的食物链并相生相克)等……&br&物质层面最重要的是碳、氧、氮这三种物质的循环:&br&首先是碳-氧循环,植物借助光合作用进行生长,低等植物如藻类的生长为鱼虾等动物提供了食物,高等些的水生植物通过光合作用为鱼虾等动物的呼吸提供必要的氧气,同时动物呼出的二氧化碳也能被植物所利用(有些植物还需要额外人为添加二氧化碳)。其次是氮循环,这里主要是依赖流水产生好氧的硝化细菌进行硝化作用,将动物排泄物等水中的有机废物进行分解,再经由厌氧的反硝化细菌将其转化为植物需要的硝酸盐养分。&br&原理大概就是这样,这里涉及到大量生物、化学、物理方面的知识,展开讲能写篇论文,这里点到为止。&br&&br&&b&三、水陆缸的组成&/b&&br&一个完整的水陆缸主要由硬件设备、介质、造景素材、植物、动物组成。&br&1、硬件设备主要包括:缸体、灯具、潜水泵、雾化器、底滤板,还有我用到的补水系统。&br&&img src=&/v2-daf88fb53d6a_b.jpg& data-rawwidth=&750& data-rawheight=&717& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-daf88fb53d6a_r.jpg&&&img src=&/v2-9fdc1bef3efc_b.jpg& data-rawwidth=&750& data-rawheight=&471& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-9fdc1bef3efc_r.jpg&&一般的水陆缸是前低后高长方形的,我这个因为实在太小了所以是单角的,缸体具体尺寸在这里,想折腾的可以自己粘缸,记得使用超白玻璃和中性玻璃胶。不想折腾的可以直接去马云家买一个。&br&&img src=&/v2-2aff0c4bde33c_b.jpg& data-rawwidth=&740& data-rawheight=&119& class=&origin_image zh-lightbox-thumb& width=&740& data-original=&/v2-2aff0c4bde33c_r.jpg&&&br&我用的是这种贴片式LED灯,LED的优势在于省电寿命长。由于发热量较大,我在背面贴了一些散热块。想折腾的可以自己动手制作,教程戳这里&a href=&///?target=http%3A///thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&抛砖引玉,自己动手做了个LED水草灯。 - 水族硬件 - CTA南美水族 - Powered by Discuz!&i class=&icon-external&&&/i&&/a&&br&不想折腾的也同样去马云家买一个就好。&br&&img src=&/v2-552f41b8c10b46f6c839e934f913c37b_b.jpg& data-rawwidth=&750& data-rawheight=&531& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-552f41b8c10b46f6c839e934f913c37b_r.jpg&&潜水泵是水陆缸的心脏,是最核心的设备,所以不论你爱不爱折腾,都建议你直接去买一个好点的,因为水泵在泥土之下,一旦坏了换起来非常麻烦,和推倒重建没啥区别。我使用的是伊罕精巧系列潜水泵,伊罕是德国著名水族器材品牌,品质值得信赖。选择水泵的时候要看一下功率和扬程,对于这种微型水陆缸来说3W和0.5米就足够用了。另外潜水泵有交流和直流的两种,如果担心安全可以选择直流泵,不过一般没什么问题的。&br&&img src=&/v2-812c16dc03c1d4a05f04f2ca9eee7f63_b.jpg& data-rawwidth=&750& data-rawheight=&657& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-812c16dc03c1d4a05f04f2ca9eee7f63_r.jpg&&超声波雾化器是为了营造云雾效果的,这是个只有在水陆缸中才会用到的器材,因为本身发热量较大,冬天用能给水体升温,夏季使用要注意。另外它的雾化片属于消耗品,所以雾化器要设置在缸中方便拿出的地方,便于更换雾化片。&br&雾化器效果见这里:&a class=& wrap external& href=&///?target=http%3A///v_show/id_XMjU3NjEyMTIyOA%3D%3D& target=&_blank& rel=&nofollow noreferrer&&
水陆缸雾化器造雾—在线播放—优酷网,视频高清在线观看
/v_show/id_XMjU3NjEyMTIyOA==
&i class=&icon-external&&&/i&&/a&&br&&img src=&/v2-fda29732e1a_b.png& data-rawwidth=&430& data-rawheight=&430& class=&origin_image zh-lightbox-thumb& width=&430& data-original=&/v2-fda29732e1a_r.png&&底滤板就是一些可以拼在一起的多孔的塑料片,用不用都行,垫上多少可以起到些活化底床、保护缸体的作用。&br&&img src=&/v2-7ab019c6abd057f07e5a63_b.jpg& data-rawwidth=&747& data-rawheight=&556& class=&origin_image zh-lightbox-thumb& width=&747& data-original=&/v2-7ab019c6abd057f07e5a63_r.jpg&&补水系统我是购买整套现成的,虽然这个东西原理很简单,自己画PCI板焊一个也不是不可以,但现在不是在大学实验室有现成设备使用,调试什么的也比较麻烦,索性就买现成的吧,毕竟商家是打版试验了N次才推出成品的,稳定性方面肯定好于DIY的,这玩意要是出问题会造成水漫金山的灾难。我买的这种包含电磁阀套件,由于水陆缸放在吧台,离厨房很近,所以补水器直接连接厨房的RO机,设置好后就不用管它了,非常方便。为了避免广告嫌疑,我把品牌Logo抹去了。&br&2、介质主要包括营养土、水苔(用于制作隔离层)和陶瓷环(作为生化滤材)。&br&&img src=&/v2-e9ea1f834ba281d2a745c59a5b0751db_b.jpg& data-rawwidth=&800& data-rawheight=&800& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-e9ea1f834ba281d2a745c59a5b0751db_r.jpg&&营养土在一般的花市都能买到,仙土、赤玉土都可以,也可以使用水草泥,但是要注意配合根肥使用,因为水草泥为了避免暴藻刻意减少了氮含量,直接使用会造成水上植物生长不良。&br&&img src=&/v2-24b94d43e0ae7adcc244d3c_b.jpg& data-rawwidth=&800& data-rawheight=&674& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-24b94d43e0ae7adcc244d3c_r.jpg&&水苔在一般花市也都能买到,利用它的吸水性来制作一层隔水层,使得水上植物不会缺水,但是富含养分的水又不至于倒流回水体中造成暴藻。&br&&img src=&/v2-fa12c10f2c0af4c78dacabf_b.jpg& data-rawwidth=&500& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-fa12c10f2c0af4c78dacabf_r.jpg&&陶瓷环是水族中最常用的滤材,是其多孔结构是硝化细菌的主要寄居场所。因为在水陆缸里要用它打底垫高,所以尽量选择大号一些的,也可以避免堵塞水流。&br&3、素材主要包括:杜鹃根、青龙石和化妆沙。&br&&img src=&/v2-c3738fbe394d65703cb66a_b.jpg& data-rawwidth=&800& data-rawheight=&800& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-c3738fbe394d65703cb66a_r.jpg&&杜鹃根是造景常用的半沉木,在水草店可以买到。一般用于水草缸需要经过沸煮处理,以使其沉水并避免黄水,但在水陆缸中可以省去这个麻烦的步骤直接使用。&br&&img src=&/v2-9c1f424f1eb488ad4001_b.jpg& data-rawwidth=&900& data-rawheight=&717& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/v2-9c1f424f1eb488ad4001_r.jpg&&青龙石也是造景常用的石材之一,一般水草店也都能买到。需要注意的是,青龙石如果直接使用的话会造成水体硬度直线上升,所以要经过酸洗才能使用,酸洗同时也会使青龙石露出白色花纹更加好看。酸洗一般使用盐酸,可以去超市买那种最便宜的洁厕灵替代(是洁厕灵不是84消毒液啊亲),滴在青龙石上刷洗然后用清水浸泡就可以了。上图左边为酸洗前,右边是酸洗后。&br&&img src=&/v2-bfb89ee222cc0027c67fbe1_b.jpg& data-rawwidth=&750& data-rawheight=&750& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-bfb89ee222cc0027c67fbe1_r.jpg&&青龙石与杜鹃根是绝配,往往随意一摆就很自然漂亮。&br&&img src=&/v2-b7b3bb1d3ee9a60e8ce2f3_b.jpg& data-rawwidth=&750& data-rawheight=&384& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-b7b3bb1d3ee9a60e8ce2f3_r.jpg&&化妆沙是铺底用的浅色细沙,注意一定要使用中性的河沙,不能使用菲律宾沙等碱性的海沙。一般网上卖的“鼠鱼沙”就是不错的铺底河沙。&br&3、植物,分别根据个人喜好选择水上植物和水下植物。&br&只要是可以水培的植物都可以使用,以蕨类植物和苔藓为主,但要熟悉植株大小和生长趋势,以便在造景时做到错落有致。具体选择可以参考这个问题&a href=&/question/& class=&internal&&大家都养什么水培植物? - 植物种植 - 知乎&/a&,我主要选择了狼尾蕨、钻石吊兰、网纹草、姬凤梨、空气凤梨这些植物,当然像铜钱草这样的半水植物也是非常适合水陆缸种植的。&br&&img src=&/v2-4d5ca31ed1d1fb0a33f748a60dfad41c_b.jpg& data-rawwidth=&800& data-rawheight=&635& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-4d5ca31ed1d1fb0a33f748a60dfad41c_r.jpg&&水陆缸里潮湿闷热的环境比较容易生小虫子,所以选择一些食虫植物是很有必要的,由于我们这里是全国最干燥的地区,常年空气相对湿度只有20%,简直是食虫植物的地狱……所以我选择了相对好活的入门食虫草“勺叶茅膏菜”,如果连它都挂了我就该劝自己不要再辣手摧花了……&br&&img src=&/v2-b74eceea6b66e090b3f2db_b.jpg& data-rawwidth=&898& data-rawheight=&601& class=&origin_image zh-lightbox-thumb& width=&898& data-original=&/v2-b74eceea6b66e090b3f2db_r.jpg&&&br&由于水陆缸的水体距离光源较远,所以水下植物的选择以阴性草为主,建议选择水榕类的迷你榕,不差钱的小伙伴也可以养些辣椒榕在水下,它们是水草中的贵族,状态好的时候会呈现蓝、绿、红、紫等多种颜色,并伴有金属光泽。另外还可以放个藻球在里面,虾会很开心的。&br&5、动物:主要是鱼、虾、螺这三类,其他奇怪的生物诸如蛙类、蜥蜴、龟类、六角龙等建议不要放在开放式水陆缸中,它们太大也太能吃了,小生态系统无法承载它们的食量和破坏。&br&&img src=&/v2-0cae1a83ad578a82e313dd4b5d68bcce_b.jpg& data-rawwidth=&687& data-rawheight=&942& class=&origin_image zh-lightbox-thumb& width=&687& data-original=&/v2-0cae1a83ad578a82e313dd4b5d68bcce_r.jpg&&&br&鱼:建议养一到两条玛丽鱼,除此以外就不要养其他鱼类了(我一开始养了花椒鼠,很不理想,因为它们实在太能吃了,仅仅是藻类不足以满足它们的食量)。玛丽这样的鳉科鱼类都很好养,并且是卵胎生的,可以直接在缸中生出小鱼来,很有趣。另外玛丽鱼不仅吃水藻,还会吃水面油膜,这对水位过低无法使用除油膜器的水陆缸来说特别有用。&br&&img src=&/v2-ea58b05ea50f2cdb78aa05_b.jpg& data-rawwidth=&3264& data-rawheight=&2448& class=&origin_image zh-lightbox-thumb& width=&3264& data-original=&/v2-ea58b05ea50f2cdb78aa05_r.jpg&&&br&虾:建议放入三对普通黑壳虾即可,或者放樱花虾、极火虾(上图是我自己养的极火虾)都可以,米虾类生命力很强,是除藻主力,也会在缸中繁殖小虾,数量非常多,一些会被鱼吃掉,最后达到一个动态平衡。&br&螺:时间长了石头上会生比较牢固的褐藻

我要回帖

更多关于 我们来自未来2 的文章

 

随机推荐