吴军:顶级工程师能让中国走向浪潮之巅

Google工程师谈顶级工程师The effective engineer Google工程师谈顶级工程师The effective engineer - Edmond Lau.epub The Effective Engineer 作者: Dedmond Lau 出版社: The Effective Bookshelf, Palo Alto, CA. 副标题: How to Leverage Your Efforts in Software Engineering to Make a Disproportionate and Meaningful Impact 页数: 247 ISBN: 9780996128100 立即下载

640?wx_fmt=jpeg

吴 军:《浪潮之巅》《全球科技通史》作者

采 访:盼盼姐

来 源:GitChat(ID:GitChat)

最近很多人都在讨论吴军,源于他在接受采访时曾对几家炙手可热的互联网公司进行了直接且大胆的点评:「腾讯从来没有过 To B 的基因」、「百度是一个基本属于僵化的公司,已经没有希望了」、「谷歌是一个颇为平庸的公司」。此外,他对企业「基因论」的认可也受到了颇多争议。

时值《浪潮之巅》第 4 版出版之际,GitChat 采访了吴军,在关于「基因论」、「知识付费」、「工程师文化」等问题上,他表达了自己的观点。本文无意争论功过是非,只希望读者可以通过吴军博士真实的见解有所收获。


GitChat:您在书中提到社会需求对科技进步的作用非常大,计算机就是在二战期间美国军方计算弹道的需求下应运而生的。那么在现在这个时代,社会需求对科技进步的推动是否还很重要?如今的社会需求会对科技的发展造成什么影响?

这种推动对科技的影响还是很重要的。我在新版《浪潮之巅》中讲到了两点。

首先是关于 5G 和 IoT 的问题,举例来说,在很多特定场合,4G 网络是不够用的,比如对于 1 万人在某处集中开会的场景,4G 网络就无法满足需求。虽然不断有新的 IoT 设备出现,但这些设备并不能解决所有问题,尤其在安全方面。所以我们需要一套新的移动通讯办法。

另外一点就是医疗,现在美国的医疗费用,也就是看病吃药的钱,已经占到了美国 GDP 的 18%,再过两年可能会到 20%,而这是美国经济无法支撑的。为了解决这些问题,大数据医疗开始高速发展,这也是为什么 IT 技术在医疗领域的应用现在如此热门。

除此之外,无人驾驶也是社会需求催生出来的科技发展之一。美国每年,因为开车的人在驾驶过程中的随意行为会造成高达 3 万人的死亡,中国官方公布的数字更高。我相信无人驾驶的普及在未来可以解决这个问题。这些需求对于所有人都是显而易见的。也因为这些发展,诞生了一批新的科技公司。

GitChat:您说的都是比较好的影响,有没有不好的影响?

如果是社会需求的话,应该说并没有什么不好的需求。唯一一点我能想到的是比特币的发展和洗钱之间的关系。每次一旦洗钱的需求上来了,比特币的价格也会相应地上涨。

GitChat:说到社会需求,可以说商业需求是互联网最重要的主题之一。雅虎开创了最早的互联网商业模式,现如今,让用户免费享用内容和服务仍然是互联网的主要商业模式。但是相比于 2000 年,现在的互联网出现了更多的物种。不用说称得上直接终结雅虎的 Google,「向创作者付费」的 Youtube 以及国内外兴起的所谓的「知识付费」都是颠覆雅虎传统模型的商业模式。请问在这些新模式中,您最看好哪一种?未来还有可能在什么方向出现创新的商业模式?

首先,雅虎创造的这种模式今天依然是 Google 和 Facebook 的主要收入来源,而这两家企业占了全世界互联网产值的 40% 以上,应该说真正需要付费的内容占比很少。

另外,像亚马逊、ebay 和阿里巴巴这样的电商构成了互联网的第二大产值。排行第三的就是游戏,这也是腾讯的主要收入来源。可以说,互联网 70% 以上的内容仍然是这样的模式。

对于用户来说,Youtube 基本上是不付费的。他的模式是让你选择看广告还是每月交五块钱,Youtube 现在也并没有要转到内容付费这种模式上。个人制作的内容在 Youtube 上几乎无法收费。

但是在美国,即使是雅虎,也有一些内容从一开始就是收费的。比如《华尔街日报》就从来没有免费过,虽然《纽约时报》是免费的,但现在很多东西也慢慢开始收费了。Netflix(在中国叫做耐飞)是收费的,可以说跟知识版权有关的东西都是收费的。

我来总结一下,原则上新闻是免费的,但是原创的内容是收费的,这在全世界基本都一样。只是过去在中国,这两件事分不开,原创的内容也收不上钱。

但是今天,像罗辑思维和喜马拉雅这样的产品能够通过原创内容收取一些费用,这是一个好现象。这种现象在欧洲某些国家在很早以前就已经出现了,比如你可以通过搜索引擎搜到你想要的内容,但你只能阅读前面少量文字,阅读全文还是要付费。

从总体上看,免费的方式无法长期培养、养活很多创作优质内容的人。现在的用户有两个选择:一是选择坚持看免费的东西,但需要自己花时间筛选、总结;二是别人帮你做好,而你需要付费。

GitChat:您认为未来互联网上的免费和付费内容的比例会保持不变,还是会出现一些变化?

现在知识付费相比于互联网的整个产值是微乎其微的,但它还有很大的发展空间。我举个最简单的例子,中国人大概现在平均每个月要花 200 块钱的流量费,一年 2400 块钱。你购买了流量之后,看什么东西都随你。所以,不管你看的内容是否免费,你都付了 2400 块钱的流量费。

对于真正的知识付费,每人每年的花销应该不会超过一千块钱。但在其他行业,比如对于电影产业来说,院线和电影公司的分成比例肯定不会这么小,电影公司拿到的钱要多得多,而院线拿得少。同样的道理,你如果去商场买东西,渠道(比如阿里巴巴)收的钱,和制造商品的公司相比,肯定是生产这部分占比要更高。所以从产品上讲,我认为未来付费内容的比例会上升。

GitChat:问一个关于创业的问题。基因定律已经在很多大家熟悉的公司、甚至非 IT 领域的企业身上得到了验证。一家公司的基因是它成功的关键,但也可能成为它日后求新求变的阻碍。基因这种说法,似乎是把公司比做了生命体,那么一家公司的基因具体又是如何形成的?创始人对公司基因的影响有多大?

除非公司开了没两年创始人就走了,否则可以说创始人对企业基因的影响非常大。创始人不仅对公司来讲非常重要,对任何一个社会组织的影响都很深远。

1942 年,一群美国学者最早观察到了这个现象,他们当时将其称作「创始人效应」,也就是 founders' effect。举个例子,大家都知道美国最早、最有代表性的早期殖民地是麻省(马萨诸塞州),他们的创始人其实就是五月花号上的几十个人,他们签署了《五月花号协定》,开创了叫做 commonwealth 的经济共同体,相当于地方自治的民主制度。直到今天,美国一部分人的行事方式和五月花号上的这些人还非常相似。

假设,有一家一百人左右做内容付费的公司,一百人里面大概有三五个创始人。公司里的一些人可能跟创始人平时做事的想法比较一致,对市场的判断(也就是愿意做的事情)也比较一致,做事方法也比较像。那么这三五十个人慢慢地就会在企业里发展起来。

还有大概一二十个人可能对创始人做的事不认可,比如,他们可能一开始就不重视内容,只强调营销推广。如果创始人看不上这样的做法,这些人可能就会流失。也就是说,这一二十个人虽然也做事,能完成交给他们的任务,但创始人会觉得他们对自己不认同。

这些事情虽然在短期内可能会被边缘化,但仍然在组织中存在。时间一长,大概两三年之后,公司的基因就定下来了。具体来说,首先就是公司有些什么人,比如是以做内容为主,还是以营销为主,这是两种不一样的方式。

然后是流程,如果没有一个固定的流程的话,公司是办不好的。团队一起做事,因为逐渐积累的经验教训,慢慢会发现事情就应该以某种方式来做,这样流程就固定下来了。固定下来以后,有新的人进来,就需要让他们也遵循这个流程。

比如和文字打交道的公司,这套流程上的做法肯定和做十秒短视频的公司不一样。如果这家公司习惯于这样的流程,你让它去做短视频,它就觉得很困难。刘润老师之前也讲过,to B 和 to C 在销售上的流程是完全不同的。

第三点,就是在每家公司诞生的时候,它一定契合了当时的商业环境。公司会在商业环境中自觉或不自觉地优化,变得很适应这种商业环境。

当商业环境改变了以后,企业可能会慢慢地感觉到一些比较吃力的地方。比如,动物或植物的基因就跟环境有关,再引申一下,在当前的商业环境下,自媒体大量出现,传统媒体虽然也死掉了很多,比如 100 家死了 60 家,但是还有 40 家适应了环境;而像央视或《人民日报》这样的大媒体,在当下的环境下就未必能适应。但是它们原来赖以生存的环境还没有完全消失,因此它们还存在,只是没有什么发展。在这种情况下,和新公司相比,老公司因为基因的原因,就难以适应。

GitChat:中国经济发展快、市场大,很多 IT 公司不需要把服务和产品做精,就可以在国内实现快速增长,而只靠这样的运气成长的公司必然无法一直持续发展下去。那么当国内市场饱和,人口红利影响减弱后,未来中国的 IT 行业是否可能会出现衰退?未来的转折点会在何时出现?

我觉得中国的 IT 行业不会因为经济发展速度放缓而出现衰退。中国人有一种很强的内在动力,信奉个人通过劳动改变自己的经济地位这样一种保守主义的思想。

市场增长变慢,反而会让一些优质的公司脱颖而出,同时让一些不追求卓越的公司死掉,把更多的资源让给优质公司。

举一个最简单的例子,在翻盖手机(功能机)的年代,中国最大的手机公司是谁?是联发科那样做组件的公司。那时候所有的中国手机给全世界的印象是什么?价格便宜、质量差、外观山寨。但是到了今天,手机市场的竞争比以往任何时候都要更加激烈,实际上现在智能手机的销售已经趋于饱和,而且相比于那时,我们的手机用户已经不太可能继续增长了。

但是如果你看一看这一代的中国手机,无论华为、小米,还是 vivo 或 oppo,都远超联发科。它们的产品放在全世界范围内,哪怕跟苹果比,你都不会觉得丢面子。这就是市场增长放缓的一个好处,大家可以把产品做细致,而不再是粗制滥造。

中国过去因为自己经济增长快,出了一堆窝里横的公司,比如中国市值最大、产值最大的一些公司都是做国内生意的,它们不会做国际生意。中国早期企业中,唯一可圈可点的只有联想。但是在新一代企业中,无论是华为还是小米,甚至好多 IT 企业,其实都已经国际化了。所以我觉得有些时候环境稍微严酷一点,对公司的成长也是件好事。

GitChat:关于科技和商业的问题我们先告一段落,接下来我会问您一些和工程师相关的问题。您根据朗道等级把工程师分为五个级别,分别是:开创行业、改变世界、行业最优、领导产品、独立完成任务。后三类工程师是以业务为核心的,而前两类都要求有很强的创新精神。您认为孕育这种创新精神的土壤是什么?

首先,一个人自己要有一种对工程、对这个世界的好奇,以及通过自己的双手和头脑改变世界的欲望,这种欲望未必是挣钱的欲望。

比如尼古拉特斯拉,他是美国电子电气工程师协会的创始人之一,也是最早的主席,他就具备这种改变世界的欲望。

再比如福特,他说马车太慢了,但他不会去造一辆更快的马车,而是去做汽车。

盖茨说,我希望电脑能够深入到千家万户,他有这种欲望,而且能用工程的方式来解决这个问题。

其次,从社会环境角度上说,工程师这个群体需要得到社会的尊重,特别是他们的劳动成果需要得到认可,比如对知识产权的保护。可以这样说,如果没有知识产权保护,微软做的东西在美国全是盗版,那么微软根本做不起来。如果到处都是山寨的福特汽车,那么福特也不可能卖掉 1000 万辆 T 型汽车。

GitChat:您认为中国 IT 领域现在面临的最大问题是缺少顶级工程师,因为在成为顶级技术人员之前,工程师们就走上了管理的道路。硅谷式的工程师文化在中国无法生根的主要原因是什么?中国是否会在未来形成自己独特的工程师文化?

中国要形成自己的工程师文化是比较难的。首先是中国历史上的原因,官本位是中国的一种传统,大家觉得应该「学成文武艺,货与帝王家」。如果你要货与帝王家,那么光是自己在那高高兴兴地鼓捣技术就是不够的。比如今天中国人对技术比较感兴趣,而对科学兴趣不大,因为后者离钱太远了,而且也不容易当官。

其次就是现实环境的影响,现在的中国总体上相较于其他国家人口更多,从业者人数也更多,所以中国人习惯用人的数量来弥补质量的不足。比如一个典型的现象,Google 工程师的产出量要比国内其他 IT 企业高出很多,即使跟 Google China 比,也更高。但是国内每年毕业这么多的学生,中国的公司可以用数量来弥补质量的不足。所以在短时间内,中国的情况我觉得不会有太大改变。

还有一个问题就是,中国一直以来农业比较发达,但工业,包括手工业这样的产业都不太发达。所以,我们缺乏工匠精神,所谓工匠精神就是自己乐意把事情做好、做精。不用跟日本和德国比,在这一点上,我们甚至比美国还要差不少。

GitChat:未来在中国的大环境下,我想代表 GitChat 的用户问您一个问题,作为有强烈学习意愿的程序员或工程师,要在哪个方面提升自己的能力才是最有意义的?

有的人大学学了工科,但他不一定能成为最好的工程师。这样的人如果想做管理或产品经理,他可以转,中国还是有这样的机会的。

另外一点大家也能看出,就是今天的很多技术专家,比如小米、阿里巴巴,包括华为新招聘的一些有人工智能、机器学习背景的一些博士生,他们待遇比很多公司的副总裁已经高很多了。

为什么?凡事物以稀为贵,如果中国的公司,包括华为、阿里巴巴、腾讯这样的企业,裁掉三分之一的总监,公司可以照样运行,一点问题都没有。但是如果把工程职级最高的一群人裁掉三分之一,公司就会出大问题。

技术人能对公司起到更大的作用,而他们的收入也会体现出这种优势,越往后我觉得越是如此。所以我在专栏《谷歌方法论》里也讲过,大家都挤破头去钻的路,如果你遇到了,就别钻了,你可以找一条不是那么拥挤、同时能发挥你特长的路。

GitChat:现在中国的儿童编程教育市场出现了新一轮的增长,而且很多小学也把学习计算机和编程划入必学科目中。请问国外是否出现了类似的情况?从孩子抓起的计算机教育,会在未来以什么样的形式影响社会和科技的发展?

国外没有像中国这样疯狂。对于一线和二线城市里比较好的中小学来说,确实存在这种现象,但你想中国是有 14 亿人口的大国,情况好像就没那么激进了。

因此,要对比就得橘子跟橘子比。比如拿中国一二线城市的重点中小学,和硅谷的一些中小学对比。美国的小学几乎没有编程课,中学也不多,主要是高中才开始有。但是在硅谷和美国东部的好学校,不少学生较早开始学习编程。

这总的来讲是和学校所处的位置和拥有的资源等因素相关的。在美国,这类课程不是各州中小学大纲里必学的,所以学什么东西主要取决于孩子的兴趣爱好,功利心不是很强,大部分孩子只是喜欢而已。而中国人关心的问题可能是,孩子能通过学编程在未来竞争中获得一点好处。

未来会编程的人会越来越多,就像现在会开车的人越来越多一样。

你会开车,你上下班就可以去比较远的公司,工作机会多一点。

会编程也是一样,工作机会多一点而已,但是不要以为会有什么明显的优势。

我倒是觉得老老实实、扎扎实实打好基础,做好通识教育,建立起理性的批判性思维,对孩子的帮助会更大一些。

640?wx_fmt=gif

看过浪潮之巅的点个“在看”

保姆级教程:在S32DS 3.4上安装S32K3xx RTD 4.4驱动包(附常见安装失败排查) 本文提供在S32DS 3.4上安装S32K3xx RTD 4.4驱动包的详细教程,涵盖环境准备、分步安装指南及常见问题排查。特别针对NXP S32K3系列MCU开发者,解决网络问题、路径配置等安装难点,并分享进阶配置技巧和最佳实践,助力高效开发。 阅读详情

相关推荐

银河麒麟V10-ARM架构-postgresql安装与部署指南

本文详细介绍应用源码进行pgsql的安装步骤,本文以postgresql-12.0为例。提示:以下是本篇文章正文内容,下面案例可供参考银河麒麟系统安装程序比较繁琐,潜在问题比较多,个人建议均通过源码自定义编译安装。国产系统还需努力啊!

idols_man的博客 1万+

吴军:未来被颠覆的六大传统产业

 一、未来体育 最烂球队勇士崛起之谜 在2015-2016年的NBA(美国职业篮球联赛)赛季,位于硅谷地区的金州勇士队(Golden State Warriors)创造了NBA历史上常规赛获胜率最高的纪录,在全部82场比赛中获胜73场。而在一年前,该队获得了NBA总冠军。 但事实上,勇士队曾长期以来一直是NBA里的一支“鱼腩球队”。在2009年,金州勇士队还是NBA里最烂的球队之一,那

Andrewniu的博客 3294

SigmaStudio进阶技巧:如何用ADAU1701实现60段EQ与防啸叫算法

本文深入探讨了如何在ADAU1701 DSP芯片上实现专业级音频处理系统。通过精密的资源规划与架构设计,详细讲解了构建高达60段参数均衡器(EQ)的有效方法,并集成了移频与自适应陷波双策略的智能防啸叫算法。内容涵盖从SigmaStudio工程优化、算法模块组合到系统联调实战的全流程,旨在帮助中高级开发者充分利用ADAU1701性能,打造稳定、高效的音频处理解决方案。

weixin_28256233的博客 384

(转)一位高级工程师的内心独白:自动化从业二十年的心里话

转 打鱼的渔夫wh 转自工控老鬼博客,原文链接:http://blog.sina.com.cn/s/blog_669692a60102x3je.html 诸位,俺当高级工程师十余年了,从研发到管理!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给兄弟姐妹提个醒,希望他们比咱们强!   1.多上好的论坛,我现在发现上来的有点晚了。提高自己的专业知识,扩大自己的知...

WarGames_dc的博客 1101

宜搭,高级认证实操2,FaaS连接器指导教程

找到FaasEntry.java将如下代码整体替换,注意引包。如图所示在util下新建EDSUtil.java代码如下。回到连接器界面点击右上角测试-->测试。连接器工厂-->新建FaaS连接器。保存-->前往云IDE开发。返回如图所示代码,部署成功。

2301_80286061的博客 3342

【四季发财中线】通达信炒股指标副图指标使用图文教程,短线紫色柱线操作,与中线短柱线共振抓牛股妖股主升浪

如上图标记位置,对应的是副图指标的紫色柱线开始的位置,这个紫色柱线信号开始出现,也是短线进场做多的信号,紫色柱线的持续出现和加长,可以持股待涨,或行情继续上涨的可以在分时行情中逢低进场短线顺势做多。如上图标记部分,指标的主要部分信号,三行柱线-ZR-ZC -ZM,当出现这三行信号时,中线或波段看多做多,信号持续则中线顺势做多和持股待涨。不论是跟踪信号的出现先后进场和持股,或是在中线多头的行情中,找到短线转多信号进场做安全的短线操作机会,都是非常好的指标信号和辅助操作功能。

weixin_69760830的博客 1600

想要成为顶尖级工程师,先从这三大境界开始!

三大境界,想起了王国维广为流传的三句话:昨夜西风凋碧树,独上高楼,望尽天涯路,此第一境也;衣带渐宽终不悔,为伊消得人憔悴,此第二境也;众里寻他千百度,蓦然回首,那人却在灯...

740

【Proteus】NE555纯硬件实现LED呼吸灯效果,附源文件,效果展示

本设计通过NE555与三极管的巧妙配合,仅用基础元件实现了呼吸灯效果。核心在于利用RC积分电路将PWM信号转换为控制电压,并通过负反馈动态调节占空比。Proteus仿真验证了方案的可行性,读者可进一步优化参数或扩展功能,探索更多硬件设计可能性。

2201_75797484的博客 2978

你和高级工程师的差距在哪儿?

一个程序员的成长之路,会经历多个阶段,从初级工程师、中级工程师到高级工程师再到这个领域的专家,但是能成为技术专家的终归是少数,因此我们通常给自己规划的是前几个阶段。刚毕业的时候就在想,如何能成为高级工程师?高级工程师到底是什么样子的?有的人会说,工作3-5年后,自然就成为了高级工程师,这种以工...

chouhangjiu9412的博客 432

cesium 实时轨迹

运用cesium中model和polyline添加模型和轨迹线,用CallbackProperty方法来实时改变经纬度。

God's asylum的博客 1964

第二大脑的觉醒:一个寄生在代码里的小生命,如何悄无声息地接管我的工作流

所有记忆都存在本地。

步子哥的博客 1060

吴军专访:为什么发展 5G?为什么需要顶级工程师?

吴军:《浪潮之巅》《全球科技通史》作者采 访:盼盼姐来 源:GitChat(ID:GitChat)最近很多人都在讨论吴军,源于他在接受采访时曾对几家炙手可热的互联网公司...

优快云人工智能头条 379

红队内网攻防渗透:内网渗透之内网对抗:实战项目&VPC1打靶&PHP-RCE&三层代理路由&防火墙上线&密码喷射&域控提权

上面已经抓取到了密码,但是我们通过拓扑分析看,要想上线win10只能通过正向shell,因为win7的防火墙是开的,win10反向主动连接肯定入站规则拦截,而win10自己没有开防火墙,所以win7主动正向连接就可以上线。win7开启了防火墙,入站规则肯定是会拦截我们的请求的,所以我们需要反向上线,让win7主动来连接我们。这里扫描发现是存在ms17010漏洞的,但是想上线192.168.2.142的话,我们没有路由是上线不了的,这里有两种办法:一种msf直接生成后门,另一种cs移植后门到msf。

HACKONE的博客 909

吴军:一生赶上一次浪潮之巅,就足够了(张雪峰推荐)

新增了6章内容,融合了《硅谷之谜》,加入了社交网络、无人驾驶等更多科技内容,重写和更新了前作很多内容,体量是首版的两倍。,除了是人工智能、语音识别、搜索专家之外,也是著名的作家与学者,他的书多次获得过中华优秀出版物,中国好书奖等多项大奖。3月份推荐了吴军老师的《数学之美》,受到广泛的好评。,华尔街对科技公司的控制,以及金融对科技的冲击... 等等等等。... 于是厚着脸皮又去找出版社,这不,福利,它又lei了!联网的发展史,更是讲解了顶尖科技公司的发展规律。第四版相比前作有什么不同?这次,是吴军老师的的。

shenjian58的博客 550

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

李开复:身处浪潮中的“弄潮儿”的切身体会

《浪潮之巅》又不仅是一部提供“快乐阅读”的大公司商业史,它融汇了作者多年来的所见所闻,更包含了大量的独立思考与独特见解。这份心血,不仅是他个人的天赋使然,也是他始终在研究领域孜孜不倦的成果。

出版人周 筠 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

读浪潮之巅

读浪潮之巅的一些总结和感受

gaoyazhao的专栏 487

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

《浪潮之巅》作者吴军:把握技术革命的浪尖

《浪潮之巅》作者吴军:把握技术革命的浪尖 分类: 软件行业 2011-11-12 16:46 143人阅读 评论(0) 收藏 举报   《浪潮之巅》作者吴军:把握技术革命的浪尖 为这篇文章评分 精彩 好帖 一般 不好 极差 0 评论 [发表人]: IT互联网 查看资

junecauzhang的专栏 8369

《浪潮之巅》作者吴军老师上海开讲

本周五晚上,百姓网邀请到了《浪潮之巅》作者吴军坐客百姓网,和互联网同行们共享《浪潮之巅》这场盛宴,欢迎大家参加。 时间:2011/11/11(本周五) 19:00-21:0 地点:广元西路55号上海交通大学浩然高科技大厦3楼 位子有限,有兴趣参加的同学们发信给qiyanmei@baixing.com注册! 吴军博士简介:   吴军博士,毕业于清华大学计算机系(本科)、电子工程系(硕士)和美国约翰...

王建硕 201

豆瓣评分9.3,吴军博士重磅新作,修炼你的计算思维!(文末赠书)

以下内容来自公众号逆锋起笔,关注每日干货及时送达有人说“程序员分为两类:看过《数学之美》的与没看过的。程序员职业生涯也可分为两个阶段:读了《数学之美》之前与之后。”也有人说“一部IT人非读不可,而非IT人也应该阅读的作品非《浪潮之巅》莫属。”这两本书都是在计算机界掀起阅读热的巨著,《数学之美》从获得数百万点击的系列博客到一本屡获大奖的畅销书,《浪潮之巅》从一上市就在业界获得巨大反响到印刷超60万套...

code小生 749

《浪潮之巅》第四版读书笔记

读完吴军博士的【浪潮之巅】,不由赞叹作者的见识和文笔,书中以科技公司的兴起和衰落为线索,结合科技、金融、商业模式等多重因素描绘了科技浪潮的全景图,感觉收获颇丰,以下是我的读书笔记。

QING的博客 960

吴军:Google 中日韩文搜索算法的主要设计者,因《浪潮之巅》享誉业界 | CNCC 2018...

雷锋网(公众号:雷锋网) AI 科技评论按:作为一位计算机科学家,吴军博士有两个最为人所知的身份,一是他是当前 Google 中日韩文搜索算法的主要设计者,曾一度为 Google 贡献了整个代码库 0.7% 的代码;另一是他的作家身份,他在《浪潮之巅》一书中,以对世界 IT 产业高屋建瓴的视角和深入浅出的剖析,而享誉业界。 在 10 月 25 日—2...

weixin_34010566的博客 593

豆瓣评分9.3,吴军博士重磅新作,修炼你的计算思维!

1有人说“程序员分为两类:看过《数学之美》的与没看过的。程序员职业生涯也可分为两个阶段:读了《数学之美》之前与之后。”也有人说“一部IT人非读不可,而非IT人也应该阅读的作品非《浪潮之巅》莫属。这两本书都是在计算机界掀起阅读热的巨著,从获得数百万点击的系列博客到一本屡获大奖的畅销书,从一上市就在业界获得巨大反响到印刷超60万套,被称为计算机史上的“人间词话”,它们的魅力是有目共睹的。尤其是在程序员圈子,看看有多少“程序员必读书单”中都力荐了这两本书,便可知晓它们对程序员的重要性。

2401_86168842的博客 1689

吴军:送给每一位追求精进的工程师(宿华推荐)

作为时代的互联网人,我猜你或多或少听过,甚至看过吴军老师的《浪潮之巅》《数学之美》《文明之光》...曾任职于Google与腾讯的吴军老师,除了是人工智能、语音识别、搜索专家之外,也是著名的作家与学者,他的书多次获得过中华优秀出版物,中国好书奖等多项大奖。这次,吴军老师又要出新书了:《计算之魂》。画外音:《数学之美》姐妹篇。《计算之魂》是一本什么书?对计算机科学的掌握程度,决定了一个计算机行业从业者...

shenjian58的博客 504

浪潮之巅

说实话,在我看这部小说或者说著作之前,我真的对IT行业的历史不太了解。就只知道第一台计算机室冯.诺依曼设计的,其余的一概不知。这本书我大概了看了一点,不得不承认,吴军教授真的很厉害,深入浅出,向我们讲授了很多大公司(例如:AT&T,IBM,苹果等)在工业浪潮之中的浮沉。作者吴军曾担任谷歌中国公司的工程师一职,平时对科技工业都颇为关注和研究,吴军本来是谷歌的后来加入了腾讯,...

aiao17257的博客 208

【转自BYR】慎思而行——对选择工作的建议

在论坛转一篇帖子,原文地址在这里:http://bbs.byr.cn/article/Job/1077476 我转载本文在这里是因为有些地方我还没有看懂,留下来以后慢慢阅读。 如果作者觉得我转载在这里不太合适,或者冒犯了作者,请和我联系。 发信人: antinucleon (搞山寨的), 信区: Job 标 题: 慎思而行——对选择工作的建议 发信站: 北邮人论坛 (Sun No

Anything的专栏 1537
上一篇: 仿照源码,手写一个自定义 Spring MVC 框架
下一篇: MongoDB 实战教程:数据库与集合的 CRUD 操作篇
软件供应链安全
软件供应链安全 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 347原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值