fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页计算机/网络程序设计程序员2016精华本

程序员2016精华本

聚焦技术实践、关注前沿热点、开发者年度。移动Web/人工智能/VR开发/无人驾驶/视频直播/大数据云计算/物联网等应有尽有

作者:程序员编辑部 编 出版社:电子工业出版社 出版时间:2017年01月 

ISBN: 9787121307478
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €39.99

类别: 程序设计 SKU:5d87b8105f98494bcc15593d 库存: 缺货
  • 描述
  • 评论( 0 )

描述

开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121307478

编辑推荐
     《程序员2016精华本》为你记录这一年计算机技术发展,不只关注时下流行技术,也整理行业的历史与思考,不只在今天有意义,也希望对明天的你有价值。

     2016技术关键词:人工智能、深度学习、VR(虚拟现实)、无人驾驶、视频直播、移动架构、开源大数据、物联网开发、容器技术……《程序员2016精华本》用更广的视野、更审慎的态度精心讲述这些技术的现状与历史。
     假如你入行不久,这本书将让你身临其境,感受行业中真实的一面。如果你已是摸爬滚打多年的老手,这本书不但能让你学到有效具体的技术方案,还能重现资深从业者的思考方式——让你领略如果站在作者的角度上,会如何思考,怎样判断。

 

内容简介
《程序员2016精华本》是由程序员编辑部精心打造的,是对CSDN的《程序员》杂志2016年的全部优质内容再次进行了优化整合,内容更加聚焦,为你记录这一年计算机技术发展,不只关注时下流行技术,也整理行业的历史与思考。全书分为16大篇章、210篇文章,讲述成功产品背后的技术、人和事,聚焦技术实践、关注前沿热点、开发者年度***。
作者简介
程序员编辑部,是CSDN《程序员》的策划和编辑者,《程序员》是国内针对开发人员的专业技术*威刊物,一直秉承服务中国IT人员的思想积极发展,在中国开发人员中拥有较高的知名度。是广大开发者了解技术发展趋势、学习与提高的重要参考资料。
目  录
目录
对话大师
我们需要一次解决所有问题
——访wiki创造者 Ward Cunningham 1
CaffeOnSpark解决了三大问题
——对话雅虎机器学习平台负责人 2
务实至上:“PHP之父”Rasmus Lerdorf访谈录 4
科研的秘诀
——对话微软研究院负责人 Peter Lee 5
无人机的背后
宾夕法尼亚大学工程学院院长VijayKumar专访 6
Alan Kay和他的浪漫愿景 10
Alan Kay谈OO和FP 12
Alan Kay谈读书 14
百问Alan Kay 17
Peter Norvig:人工智能将是软件工程的重要部分 28
MINIX 30年之经验教训谈 31

2016技术盘点
盘点2016年的移动 Web发展 36
2016年人工智能技术进展大盘点 38
2016数据库技术盘点 44
2016年OpenStack总结 49
VR技术这一年的发展要点与未来展望 51
2016年游戏行业年终盘点
——逃离还是守望?市场破局的一年 54

互联网应用面面观
小米网技术架构变迁实践 57
途牛网站无线架构变迁实践 59
搜狗商业平台基础架构演化实践 62
58同城高性能移动Push推送平台架构演进之路 66
QQ会员活动运营平台的架构设计实践 70
基于Spark的百度图搜变现系统架构 73
快的打车架构实践 78
饿了么移动App的架构演进 80
宅米网性能优化实践
—初创互联网公司的野蛮成长 82
深入理解自动化测试架构 85
电商系统的高并发设计和挑战 88
淘宝大秒系统设计思路 92
百度分布式交互查询平台
—PINGO 架构迭代 95
高并发金融应用架构优化与平台创新 98
阅文集团分布式文件系统的设计与实现 101
从0到1,一号店通用推荐平台的搭建 105
先进的银行反欺诈架构设计 107
高可用性系统在大众点评的实践与经验 109
VIPServer:阿里智能地址映射及环境管理 系统详解 112
小米异步消息系统实践 116
Motan:支撑微博千亿调用的轻量级RPC框架 118
360云查杀服务从零到千亿级PV的核心架构变迁 120
乐视商城抢购系统深度实践 125
携程移动端架构演进与优化之路 126

技术解析开源大数据构造
群雄逐鹿,看2015开源大数据框架迭代 133
Jaguar,一种基于 YARN 的长时服务自动扩展架 134
HDFS EC:将纠删码技术融入HDFS 136
基于SQL on Hadoop的数据仓库技术 140
Spark 多数据源计算实践及其在 GrowingIO的实践 144
Impala的信息仓库:解读TQueryExecRequest 结构 147
Spark Streaming实践和优化 152
分布式数据库挑战与分析 154
Apache Eagle :分布式实时大数据性能和安全 监控平台 157
大数据驱动下的微博社会化推荐 161

物联网开发初探
风口的物联网技术 165
物联网开发中意想不到的那些“坑” 166
无人机的GPS欺骗及防护措施 169
11个热门物联网开发平台的比较 172
物联网大数据平台TIZA STAR架构解析 174

Spark核心技术与实践
Spark 学习指南 177
Streaming DataFrame:无限增长的表格 178
层次化存储:以高性价比终结Spark的I/O瓶颈 179
Spark在美团的实践 181
向Spark开炮:1.6版本问题总结与趟坑 185
Spark在蘑菇街的实践 187
Spark MLlib 2.0前瞻 190
科大讯飞基于Spark的用户留存运营分析及技术实现 192
Spark Streaming与Kafka集成分析 195
Spark Streaming在猎豹移动的实践 198
Spark Streaming构建有状态的可靠流式处理应用 200
Spark Streaming在腾讯广点通的应用 204
Spark Streaming ES构建美团App 异常监控平台 210
基于Spark一栈式开发的通信运营商社交网络 212
基于 Spark 的公安大数据实时运维技术实践 218
在Apache Spark 2.0中使用
——DataFrames 和SQL的步 221
在 Apache Spark 2.0 中使用
——DataFrames 和 SQL 的第二步 226

走进VR开发世界
VR 开发从何入手 229
VR硬件演进与其游戏开发注意事项 229
VR语境下的人机交互 233
使用Cocos开发 ——一款简单的 3D VR 抓钱游戏 235
制作3A级VR游戏的难点
——专访焰火工坊 CTO 王明杨 237
并非只有游戏才是 VR
——专访 VR 制作人、导演董宇辉 239
走进VR游戏开发的世界 240
叙事、画面和音效:解析VR游戏设计要点 245
VR 和 AR 需要什么样的自然表达? 248
使用Unity开发HoloLens应用 249
VR应用设计的8个建议 252
用虚幻4开发搭积木的VR游戏 255

人工智能60年,后深度学习时代关键技术进展
语音识别系统及科大讯飞实践 259
使用深度学习打造智能聊天机器人 261
无人驾驶:人工智能三大应用造就 “老司机” 265
知人知面需知心
——论人工智能技术在推荐系统中的应用 269
流动的推荐系统
——兴趣 Feed 技术架构与实现 272
SLAM刚刚开始的未来 277
运用增强学习算法提升推荐效果 279
以性别预测为例谈数据挖掘分类问题 282
FPGA:下一代机器人感知处理器 285
Google AlphaGo 技术解读
——MCTS DCNN 289
基于Spark的异构分布式深度学习平台 294
拓扑数据分析在机器学习中的应用 298
揭秘深度强化学习 300
“无中生有”计算机视觉探奇 302
知识图谱如何让智能金融“变魔术” 305
机器码农:深度学习自动编程 308
图计算系统进展和展望 311
ICML 2016精选论文 315
SIGIR 2016精选论文 317
KDD 2016精选论文 318
NIPS 2016精选论文 320

容器技术经验谈
Docker 的“谎言” 323
Kubernetes微服务架构应用实践 324
使用Docker实现丝般顺滑的持续集成 327
Mesos高可用解决方案剖析 330
新型资源管理工具 Myriad 使用初探 334
基于OpenStack和Kubernetes构建组合云平台
——网络集成方案综述 335
超融合架构与容器超融合 339
容器集群管理技术对比 342
现实中的容器技术运用案例 343
展望Docker 1.10镜像新面貌 346
谈谈 Unikernel 348
关于Docker你不知道的事
——Docker Machine 350
再谈容器与虚拟机的那S

前  言
助你拓展视野,保持怀疑    

     1965 年,犹他大学电子工程系迎来了一位计算机课程讲师 Robert S. Barton。每堂课,他都在“摧毁”学生们对计算机的“信念”——他让每位学生了解前人的工作,却不让学生信仰任何一种理论,于是他们不得不学习一切计算机理念,继而又在他的质疑下将刚建立起的信念推倒。学期结束时,不再有学生会执迷于某项技术,因为他们对一切充满怀疑。  
      怀疑,能让人从新视角看待熟悉的事物,在 Barton 的学生中,不单有 Alan Ashton(WordPerfect 设计者)、Alan Kay(2003 年图灵奖得主)、James Clark(创立了网景和 Silicon Graphics),还有 John Warnock(Adobe 创始人之一)、Edwin Catmull(皮克斯创始人之一)、裴祥风(发明了 Phong 反射模型及 Phong着色法,并广为 CG 界采用)等人。  
       或许你正专注于工作中使用的某项技术,某个工具,但请别因依赖而局限自己的视野,《程序员 2016精华本》为你展示不同行业实践的方方面面,解决相似问题的不同视角,它会帮助你拓展视野,保持怀疑。
不只关注当下,更在乎深刻涵义    
     Alan Kay 曾说,“计算机”完全是门流行文化,忽视历史,让它成不了一门科学。假如你向一位数学或物理学者打探前辈的故事,他们总能如数家珍,而计算机从业者则不然,大多数人连自己领域中“高斯”和“牛顿”的名字都想不起来。   
      流行文化只关乎参与和存在感,却不在意过去与未来。然而更深刻的涵义会在只关注当下的文化中消逝,2016 年,这个领域失去了 Peter Naur(2005 年图灵奖得主)、Raymond Tomlinson(被誉为“电子邮件之父”)、Robert Fano(曾与克劳德·香农共同开发出香农-范诺编码)、John Ellenby(“Xerox Alto”电脑设计者之一)、Seymour Papert (计算机教育与学习理论先驱)、Marvin Minsky(AI 领域创立者这一)……这些计算机领域缔造者的思考与贡献远非括号中的注释所能概括,然而这些名字中多数甚至从未见诸这一年计算机媒体笔端。  
      《程序员 2016 精华本》为你记录这一年计算机技术发展,不只关注时下流行技术,也整理行业的历史与思考,不只在今天有意义,也希望对明天的你有价值。
在线试读

Google AlphaGo 技术解读 —MCTS DCNN

          文 / 李理

    2016 年 1 月,Google DeepMind 的文章在《自然》杂志发表, AlphaGo击败欧洲围棋冠军樊麾并且将要在3月份挑战李世石。 围棋和深度学习再次大规模高热度地出现在世人眼前。

    围棋的估值函数极不平滑,差一个子局面就可能大不相同, 同时状态空间大,也没有全局的结构。这使得计算机只能采用 穷举法并且因此进展缓慢。Google 的 AlphaGo 通过 MCTS 和深度 学习的结合实现了围棋人工智能的突破,已经击败人类职业选 手。本文分析这两种技术在围棋 AI 的应用以及 AlphaGo 的创新。

MCTS

 MCTS(Monte Carlo Tree Search)和 UC T(Upper Con?dence Bound for Trees) 

    MCTS 算法就是从根节点(当前待评估局面)开始不断构建 搜索树的过程。具体可以分成 4 个步骤,如图 1 所示。

  图 1 from A Survey of Monte Carlo Tree Search Methods

 ■ Selection 

     使用一种Policy从根节点开始,选择一个“紧急”(urgent) 的需要展开(expand)可展开(expandable)的节点。可展开的 节点是非叶子节点(非游戏结束局面),而且至少还有一个孩 子没有搜索过。比如图1展示的选择过程,终选择到的节点 不一定是叶子节点(只要它还有未搜索过的孩子就行)。

   ■ Expansion

     选中节点的一个或者多个孩子展开并加入搜索树,图1的 Expansion 部分展示了展开一个孩子并加入搜索树的过程。 

   ■ Simulation 

     从这个展开的孩子开始模拟对局到结束,模拟使用的策略 叫 Default Policy。 

   ■游戏结束有个得分(胜负),这个得分从展开的孩子往 上回溯到根节点,更新这些节点的统计量,这些统计量会影响 下一次迭代算法的 Selection 和 Expansion。

    经过足够多次迭代之后(或者时间用完),我们根据某种 策略选择根节点好的一个孩子(比如访问次数多,得分 高等)。 

    上面的算法有两个 Policy:Tree Policy 和 Default Policy。 Tree Policy 决定怎么选择节点以及展开;而 Default Policy 用于 Simulation(也有文献叫 playout,就是玩下去直到游戏结束)。 

    MCTS 着重搜索更 urgent 的孩子,当然偶尔也要看看那些不那·么 promising 的孩子,说不定是潜力股。这其实就是 exploit 和 explore 平衡的问题。另外,MCTS 直接 Simulation 到对局结束, “回避”了局面评估的难题。

    既然是 exploit 和 explore 的 问 题, 把 UCB 用 到 MCTS 就 是 UCT 算法(MCTS 是一族算法的统称,不同的 Tree Policy 和 Default Policy 就是不同的 MCTS 算法)。

UCT 算法

    Selection 和 Expansion 的公式如上,和 UCB 很类似,只是 多了一个常量 Cp,用来平衡 exploit 和 explore。 

    每个节点v都有两个值, N(v)和Q(v),代表v访问过的次数(每 次迭代都是从 root 到结束状态的一条 Path,这条 Path 上的每个 点都被 visit 一次)和v的回报,如果这次 Simulation 己方获胜, 则Q(v) 1,否则Q(v)-1。(1、3、5… 层代表自己,2、4、6… 代 表对手,如果终我方获胜,1、3、5都要加一而2、4、6都 要减一)。

   具体的计算公式如上,每次选孩子时都用上面的公式计算 得分。项就是这个节点的平均回报(exploit term)和第二 项就是 explore term,访问次数少的节点更应该被 explore。当 N(v)=0时第二项值为无穷大,所以如果某个节点有未展开的孩 子,总是优先展开,然后才可能重复展开回报高的孩子。   

UCT 算法的特点 

   ■ Aheuristic 

     不需要估值函数,因此也就不需要各种启发式规则、领域 知识,从而“回避”了围棋估值函数难的问题。 

   ■ Anytime 

     可以任何时候结束,迭代的次数越多就越准确 。

   ■ Asymmetric 

     和人类的搜索类似,搜索树是不对称的,不是固定层次的, 而是“重点”搜索 promising 的子树。

UCT 在围棋领域的变种和改进

All Moves As First(AMAF)和 Rapid Action Value Estimation(RAVE)

    这是很多开源 MCTS 围棋使用的一个变种。

    如图 2 我们首先通过 UCT 的 Tree Policy 选择了 C2 和 A1,然后 Default Policy 选择了 B1、A3、C3,终黑棋获胜。

    普通的 MCTS 会更新 C2 和 A1 的 N(v) 和 Q(v),而 AMAF 认为:既然在 Simulation 的过程中黑方选择了 B1 和 C3,在 root 节点时也可以选择 B1 和 C3,那么这次模拟其实也可以认为 B1 和C3对获胜是有帮助的,root节点的B1和C3也有贡献(标志为*),也应该更新统计量,让下次选择它的概率大一点。同理白棋在simulation的时候选择了A3,在C2也可以选择A3(有*的那个),那么 C2 对于白棋失败也是有责任的,那么下次在 C2 的时候白棋应该避免选择 A3。这样一次迭代就能多更新一些节点(那些没有直接 Selection 的也有一些统计量)。

图 2 AMAF

     这个想法对于围棋似乎有些道理(因为不管哪个顺序很可能导致一样的局面,前提是没有吃子),而且实际效果也不错。但是在别的地方是否可以使用就需要看情况了。

    这里有两类统计量:直接 selection 的节点统计量 (A1,C2) 和间接 selection 的节点 (B1,C3,A3)。这两种权重应该是不一样的。

    所以比较直观的想法是给它们不同的权重 αA (1-α)U,这就是 α-AMAF。

    这个权重 α 是固定的,RAVE 认为随着模拟次数的增加 α应该减少才对(没有真的模拟是可以用这些间接的统计量,如果有了真的更准确的估计,这些间接的统计量就应该降低权重,这个想法也很自然)。

    RAVE 使用上面的公式动态调整 α,随着 v(n) 的增加,α的值不断下降。

Simulation 的改进

    默认的 Default Policy 随机的选择走法模拟到结束,这在没有任何先验知识的时候是可以的。但是人类在“探索”未知局面时不是随机“探索”的,也是用一个估值函数指导的,去探索那些更 promising 的局面。

    具体方法很多,比如 Contextual Monte Carlo Search,

    Fill the Board 以及各种基于 Pattern 的方法。细节就不再展开讨论了。

MCTS 的并行搜索

Leaf Parallelisation

     简单的是 Leaf Parallelisation,一个叶子用多个线程进行多次 Simulation,完全不改变之前的算法,把原来一次 Simulation的统计量用多次来代替,这样理论上应该准确不少。但这种并行的问题是需要等待慢的那个结束才能更新统计量,而且搜索的路径数没有增多。

Root Parallelisation

    多个线程各自搜索各自的 UCT 树,后投票。

Tree Parallelisation

    这是真正的并行搜索,用多个线程同时搜索 UCT 树。当然统计量的更新需要考虑多线程的问题,比如要加锁。

    另外一个问题就是多个线程很可能同时走一样的路径(因为大家都选择目前看起来 Promising 的孩子),一种方法就是临时的修改 virtual loss,比如线程 1 在搜索孩子 a,那么就给它的Q(v) 减一个很大的数,这样其他线程就不太可能选择它了。当然线程 1 搜索完了之后要记得改回来。

    《A Lock-free Multithreaded Monte-Carlo Tree SearchAlgorithm》使用了一种 lock-free 的算法,这种方法比加锁的方法要快很多,AlphaGo 也用了这个方法。

     Segal 研究了为什么多机的 MCTS 算法很难,并且实验得出结论使用 virtual loss 的多线程版本能比较完美地 scale 到 64个线程(当然这是单机一个进程的多线程程序)。这也将是AlphaGo 的 scalability 的瓶颈。

    使用了UCT算法之后,计算机围棋能提高到KGS 2d的水平。

    …….

抢先评论了 “程序员2016精华本” 取消回复

评论

还没有评论。

相关产品

加入购物车

Python编程快速上手 让繁琐工作自动化(Python3编程从入门到实践 新手学习必备用书)

EUR €36.99
评分 5.00 / 5
阅读更多
缺货

Python编程 从入门到实践

EUR €37.99
评分 5.00 / 5
阅读更多
缺货

C Primer Plus 第6版 中文版 C语言入门经典教程

EUR €53.99
评分 5.00 / 5
加入购物车

学习使用C指针(影印版)

EUR €27.99

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略