深秋时节,水乡乌镇再次准时迎来了大批异乡人。
随着第三届世界互联网大会在乌镇正式开幕,政府官员、学界专家及业界精英再次齐聚这个小镇,共同探讨互联网的发展方向和未来命运。
今年的互联网大会,与会嘉宾聚焦技术本质,关注前沿科技,人工智能、AR、VR成为热词。
聚焦技术本质
在互联网之光的展览区,腾讯展出了写稿机器人、优图人脸检索、VR游戏《猎影计划》、QQ物联等技术和产品;在乌镇的子夜路,百度无人车第一次在城市开放道路进行了实际路测。
更值得注意的是,大会首次发布15项全球互联网领先科技成果,聚焦技术和产品,鼓励业界创新,腾讯微信智能生态平台、阿里巴巴商业生态体系的技术应用、百度大脑、华为麒麟960手机芯片等国内科技成果与特斯拉自动辅助驾驶系统、IBM人工智能系统Watson、微软的HoloLens全息眼镜等国外科技产品,一同获得了全球互联网领先科技成果奖。
这显示出,中国互联网的创新成果已经能够与世界其他国家和地区的创新成果比肩。
同时,技术进步是互联网行业发展的前提,当前国内移动互联网红利正在逐渐减退,下一波技术浪潮还在孕育,移动互联网大潮中,凭借商业模式创新在世界范围内获得了认可和成就的中国互联网行业,如今已经需要面对下一波技术浪潮的挑战。
无处不在的人工智能
11月17日,天还下着蒙蒙细雨,百度李彦宏来到乌镇子夜路,乘坐了百度研发的无人车,在行驶了3.16公里,体验了无人车在城市开放道路完成起步、直行、并线、识别红绿灯、掉头、超车、侧方停车等驾驶行为后,李彦宏成为百度无人车的第177位乘客。
就在李彦宏体验无人车几个小时前,一场名叫“移动互联网”的分论坛在乌镇互联网国际会议中心举行,搜狗CEO王小川与来自Facebook、华为、腾讯、斯坦福的嘉宾,就移动互联网与人工智能这一话题进行了分享与讨论。
论坛上,王小川首次公布了搜狗自研的机器实时翻译技术,在现场,王小川的演讲通过搜狗的语音识别和实时翻译技术,以中英文双语的方式实时显示在现场大屏幕上。
以至于现场有人调侃,速记和同声传译可能要失业了。
互联网自我升级
无论是百度的无人车,还是搜狗的语音识别和实时翻译技术,都体现了与会者对人工智能等新技术的关注,这也是本次世界互联网大会最突出的一个特点。
2011年前后,移动互联网浪潮兴起,互联网开始从PC互联网向移动互联网过渡,由智能手机等智能终端带来的创新,在塑造用户新的上网习惯的同时,也孕育了大批创业机会,美团点评、滴滴等随着移动互联网的发展已经成为行业独角兽。微信通过开放平台、微信支付等创新构建的生态,使中国社交产品的模式产生了足以影响硅谷的力量。
五年时间过去,移动互联网渐渐走过爆发期,下半场的概念陆续被互联网大佬提及。在下半场的竞争中,人工智能成为业界共同的选择之一,人工智能技术的影响之广,可能已经超出很多人的预料之外。
饿了么创始人张旭豪告诉腾讯科技,人工智能可以帮助饿了么更高效的为送餐员分配订单;珍爱网创始人李松则表示,人工智能在相亲恋爱领域,也能发挥它的作用。
而从互联网公司们对人工智能等新技术的关注和应用来看,竞争的压力及内部的驱动,已经促使他们进行自我升级。(文/腾讯科技 韩依民)
再现互联网顶级饭局
第三届世界互联网大会又见“顶级饭局”。这一次,互联网大佬们聚在一起,拼的是手机拍照。晚宴地点依然是乌镇西栅景区的51-52号民宿,这家名为“津驿客栈”的民宿已连续三年成为互联网大佬们的“据点”。
这次乌镇世界互联网饭局上,一共有17人出席,做东的依旧是网易CEO丁磊。
另16人是新浪CEO曹国伟、搜狐CEO张朝阳、宽带资本董事长田溯宁、小米CEO雷军、360董事长周鸿祎、雅虎创始人杨致远、联想CEO杨元庆、微软全球执行副总裁沈向洋、红杉资本合伙人沈南鹏、百度总裁张亚勤、美团点评CEO王兴、华为终端董事长余承东、华为荣耀业务部总裁赵明、英雄互娱CEO应书岭、神州数码集团董事长郭为、国际货币基金组织(IMF)副总裁朱民。
11月16日20时38分,新浪董事长兼CEO曹国伟在其个人微博发布了一张多位互联网大佬在乌镇聚餐的照片。照片同时配文:“再聚乌镇。Moto Z拍摄,应@杨元庆要求发一个。”
联想集团董事长兼CEO杨元庆随后转发了曹国伟的微博,并乐呵呵表示,“第三年聚会,朋友圈越来越大,带着给大家的礼物Moto Z来聚会,派上了用场。丁磊的猪肉再上桌。还有,@曹国伟这次没有错过杨致远。”
这段话之后,杨元庆还@了小米董事长兼CEO雷军、奇虎360董事长周鸿祎、华为技术有限公司高级副总裁余承东、百度公司总裁张亚勤以及搜狐总裁兼CEO张朝阳。
2015年12月,第二届世界互联网大会,水乡乌镇又让大佬们有了相聚的机会。
那次率先晒图的是杨元庆。第二次饭局合影中,有朱云来、李彦宏、马化腾、张朝阳、丁磊、曹国伟、梁建章、张亚勤、雷军等人。更多互联网大会干活:www.yangfenzi.com/tag/wic
杨元庆还在微博上写道:“晚上的乌镇互联网峰会。大家品尝了丁磊自己养的猪肉,螃蟹,绍兴黄酒。马化腾最能喝最能劝酒。张磊和张朝阳大谈养身之道。曹国伟揭密他当年如何错失雅虎(杨致远)。”
两年前的11月21日,首届世界互联网大会,互联网大佬们就曾在乌镇煮酒笑谈。当时,中国金融博物馆理事长、中国并购公会会长王巍当晚发布微博:“乌镇会议。台上唇枪舌剑,各有千秋。席间谈欢声笑语,尽显性情。十几瓶黄酒喝去,陈年故事吐出,委屈得意惆怅憧憬,这一夜难得时光。丁磊劝酒、朱云来供烟、四位清华同学忆爱因斯坦图灵费米,田溯宁谈云张朝阳论长寿。我补打油:二十年前江湖聚,天罗地网立旌旗。煮酒笑谈云中事,除却苍茫再附骥。”王巍微博晒出的照片里包括了朱云来、李彦宏、丁磊、张亚勤、田溯宁、张朝阳等人。这一同行之间的小聚,也被外界戏称为“中国互联网半壁江山”的饭局。
相比前两次饭局,这次明显的人数更多,三次均出席的人有丁磊、张朝阳、田溯宁、张亚勤。盛况最空前的是,2015年的乌镇饭局,腾讯CEO马化腾、百度CEO李彦宏均出席活动。
这一次马化腾、李彦宏缺席,取而代之的是,雷军、周鸿祎、应书岭、王兴、余承东等,这次出席的手机厂商太多,导致很长时间都是在讨论手机行业。
以至于作为东道主的丁磊不得不喊了一声:能不谈手机吗?……然后大家继续谈论手机。
从饭局年龄层次看,以60后、70后为主,如,田溯宁(63年)、张亚勤(66年)、 沈南鹏(67年)、杨致远(68年)、雷军(69年)、周鸿祎(70年)、丁磊(71年)、王兴(79年)。
这说明尽管中国互联网的用户早已是80后、90后,但中国互联网依然牢固掌控在60后、70后中。在这场饭局活动中依然出现了一个80后:应书岭(81年)。
这次大会上还有一些其他有趣的事情。周鸿祎和雷军两个人又坐到了一起,不过,这一次周鸿祎和雷军见面的场面和谐了很多,彼此脸上都有了很多笑容。
而在2015年的乌镇世界互联网大会上,当时,酣睡的周鸿祎遭遇了雷军的一个眼神,因为两人在手机等多款产品上的激烈竞争和微妙关系,网友们的创作热情,被彻底激发,一张照片,被大家玩出各种花样。
有人打趣说,从2015年的“眼神杀人”,到今年“满面笑容”,被认为是周鸿祎和雷军两个湖北籍大佬开始一笑泯恩仇。
更让人没想到的是,平日一向一本正经的雷军这一次在乌镇服装非常考究,还成了潮男,引发了不少好评。雷军在乌镇的各种街拍在无数微信群里分享。
周鸿祎这次也吸取了以前穿衣的教训,穿了一身中山装,搞怪的神情和衣装一下被恶搞成了“算命先生”。
从整个乌镇互联网大会现场看,这是一次集体形象的大提升,画面感比以往强了很多。
这次让媒体很意外的是,在乌镇一家名叫“步步莲花”的店家,偶遇丁磊,他正坐在河边悠闲得喝茶,还和媒体很有兴致了聊了一会天。不过,当问到阿里双11和腾讯发股票的问题时,丁磊竟然拿着茶壶跑了……这时乌镇下起了毛毛细雨,丁磊说是躲雨。
最惨的要属张朝阳,这次吸引眼球的是他穿的这件大衣,没想到竟上了热门:他大衣背面的开叉似乎开线了,质量不太好。还被杨元庆发到了微博上。由于搜狐连续几个季度业绩表现不佳,张朝阳成了挨批对象,甚至有好事者说,“他不是缺钱,而是缺一个女人!”
逼得搜狐官方发文:张老板平日不是这样。时而西装革履,时而运动活力,boss在两者之间随意切换,拿捏自如,不变的是他独特魅力和简朴低调作风。搜狐说,这次在乌镇,衣服虽然有些小瑕疵,却一点儿都没降低了自身气场,衣服有瑕疵不重要,重要的是要有气场!
从整个乌镇互联网现场看,关于行业的讨论居于次位,反而是各种花边给大家增添了很多茶余饭后的谈资,增强了活动的趣味性。
互联网时代 青年的机遇与责任 秦宜智出席互联网青年论坛并致开幕辞
11月18日上午,由共青团中央和全国青联共同主办的“互联网青年论坛”亮相本届世界互联网大会。来自29个国家和地区的200多位嘉宾,以“互联网时代青年的机遇与责任”为主题,展开友好而热烈的交流。共青团中央书记处第一书记秦宜智出席论坛并致开幕辞。
秦宜智强调,青年因其与互联网天然的缘分,在互联网中扮演着十分重要的角色。携手共建网络空间命运共同体,惠及青年、造福青年,也需要青年认清机遇、担当责任,为互联网发展提供青年智慧、汇聚青年力量,借互联网青年论坛的机会,希望与青年们分享四点认识:
第一,青年应当做创新驱动发展的开拓者。互联网代表着新的生产力、新的发展方向,既是创新的产业,又是创新的舞台,日益成为创新驱动发展的先导力量,而青年则是最富有想象力和创造力的群体。希望青年朋友们以敢为天下先的锐气,以旺盛的活力和创新的热情,积极投身“互联网+”的创新创业实践,在推动传统经济迈向互联网时代的更新迭代中,追求卓越、奋发进取,为世界经济复苏注入“青春的暖流”,为世界经济这艘巨轮披波斩浪、扬帆远航增添“青春的动力”。
第二,青年应当做开放共享文化的促进者。互联网让世界变成了“鸡犬之声相闻”的地球村,兼容并蓄、开放共享是互联网文化的特质和精髓。希望青年朋友们秉持谦虚包容的心态,树立合作共赢的思维,坚持同舟共济、互信互利的理念,在互联网这一人类的共同家园里,推动不同国家、不同民族的优秀文化交流分享、互学互鉴,做各国人民情感沟通、友好交流的先锋,帮助更多的国家和人民在网络空间优势互补、相互支持,共享互联网发展的成果。
第三,青年应当做良好网络治理体系的参与者。网络空间治理同现实世界治理一样,应当坚持主权平等的原则。青年代表着世界的未来和互联网的未来,也是公平正义的忠实信仰者和坚定追求者。青年朋友们应该尊重各国网民交流思想、表达意愿的权利,尊重各国自主选择网络发展道路、网络管理模式、互联网公共政策和平等参与国际网络空间治理的权利,积极为构建更加公正合理的互联网治理体系鼓与呼,努力推动形成各方普遍接受的网络空间国际新规则,充分反映大多数国家和人民的意愿和利益,推进全球互联网的共治共享、健康发展。
第四,青年应当做维护网络安全的实践者。互联网是人类的共同家园,越来越成为你中有我、我中有你的命运共同体。让这个家园更美丽、更干净、更安全,需要人人担责、精心呵护。青年是互联网的主体,理应成为维护网络安全、清朗网络空间的生力军。希望青年朋友们相互尊重和信任,加强交流与合作,自觉做网络安全的宣传员和守卫者,共同抵制各类恐怖、暴力、诈骗、色情等有害信息的扩散传播,积极营造健康清朗的网络环境,携手推进网络空间的安全发展和可持续发展。
秦宜智表示,如今互联网的发展进步,正为中国共青团这个拥有光荣历史和优良传统的组织推进改革创新,注入充沛的动力。我们正致力于实施“共青团+互联网”战略,树立互联网思维,开拓凝聚青年、服务青年的新局面。正致力于推进“智慧团建”,创新互联网手段,使共青团组织更加充满活力、更加坚强有力。正致力于团结带领中国广大青年,在互联网空间传播正能量,做清朗网络空间的积极力量。
秦宜智说,互联网发展进步,为人类加强联系、加深友谊,开拓出广阔空间。中国共青团愿意同世界各国各地区更多青年组织、青年朋友,交流互鉴、共同进步。我们期待着同大家一起倡导、呼吁,带动国际社会各方力量共同为青年人生出彩、梦想成真创造条件、提供支持,也期待着同大家一起奋斗、开拓,为互联网发展注入更加强劲的青春力量,为青年成长进步插上更加有力的互联网翅膀!
坐而论道,不如起而行之。秦宜智希望大家在论坛上尽情表达构建网络空间命运共同体的青年态度、青年呼声,真诚沟通,碰撞思想,汇聚共识,一起务实笃行、实干争先,在加快构建和平、安全、开放、合作的网络空间和多边、民主、透明的全球互联网治理体系的进程中,主动展现青年人的担当与作为,主动奉献青年人的智慧与行动!
随后,中国和来自西班牙、阿根廷、俄罗斯等国家和地区的青年嘉宾代表相继上台发言,分享了他们对互联网时代青年的机遇与责任的思考和观点。18日的论坛上,还发布了G20青年峰会(Y20)期间,就青年人和互联网关系达成的一系列成果和共识,如消除贫困与合作发展、创新思维与创业创造、绿色环保与可持续发展等。
【氧分子网综合自腾讯科技、澎湃、雷帝触网、中国青年网等】
·氧分子网(http://www.yangfenzi.com)延伸阅读:
➤ 数字经济:马云、郭台铭、金建杭、沈南鹏如何看互联网脱虚向实?
➤ 视频:第三届世界互联网大会发布会 任贤良、葛慧君出席,袭艳春主持
➤ 牛智超:好人张朝阳|张朝阳:重新起航,三年搜狐重回互联网中心
11月16日下午,第三届世界互联网大会“世界互联网领先科技成果发布活动”在乌镇互联网国际会展中心举行,首次发布了15项世界互联网领域领先科技成果。“我们不预测未来,我们改变未来”,让我们一起看看这些“黑科技”将会如何改变世界?
500中选15 中外专家甄选出“年度代表性科技成果”
据介绍,本次活动前期,面向亚洲、非洲、欧洲、北美洲、南美洲、大洋洲征集到了500余项互联网领域领先科技成果。国家网信办信息化局局长徐愈说,项目成果涵盖领域包括互联网相关的基础理论、技术、产品和商业模式四类。经过专家评选,最终推荐出15项年度全球互联网领域代表性领先科技成果。
△视频:世界互联网领先科技成果发布
15项“高大上”的世界互联网领先成果(按发布先后顺序)
1. 特斯拉自动辅助驾驶系统——重新定义“自驾”
特斯拉发布的自主辅助驾驶套件,当驾驶员使用钥匙启用召唤功能,车辆会自动驶出车库,并探测驾驶员所在位置,停靠到驾驶员附近,随后驾驶员进入车辆,发动汽车上路。上路后,8个摄像头和12个超声波传感器涵盖250米内的环境,驾驶员下命令,车可以自动变道,这辆车还能自动泊车。特斯拉全球副总裁任宇翔还用自己的亲身体验做了广告,“我本人每天用这个技术,体验完美。”
2. IBM人工智能系统Watson——医生都做不到的,它能
类脑计算机的计算能力相当于40亿个神经突出,耗电只有2.5瓦。原子存储技术,目前存储一个比特的信息需要100万个原子,IBM新一代存储技术只需要12个原子。
IBM全球副总裁陈黎明宣布,Watson已能“看懂”所有的化验报告、CT片、核磁共振片、甚至看得懂基因图谱。“这样一来,我们的老少边穷医院可以获得等同于三甲医院的服务。”陈黎明举例说,有一位得白血病的东京妇女被医院判了死刑,而Watson用10分钟阅读了相关的4千米厚的医学资料,给出医疗建议救活了她。
3. 阿里巴巴商业生态体系的技术应用——“双十一”零报错
阿里巴巴刚刚经历了第八个“双十一”的考验。24小时内1207亿交易额的背后,是以飞天技术平台为基础的整个技术架构在发挥作用。今年阿里巴巴创造了一个新的记录,就是整个的电子商务交易系统支撑每秒钟17.5万笔的交易订单和12万笔每秒钟的支付产生,整个交易系统及时可靠地履行订单,零错误零报错。
阿里巴巴集团首席执行官张勇介绍,“今年‘双十一’,飞天平台特别推出了多种人工智能服务,包括客服语音服务以及全球首个基于VR技术的端到端完整购物支付场景。”
4.卡巴斯基KICS——防范工业风险
KICS是一个保护工业网络安全的领先的方法。KICS软件可以保护各个行业的工业企业,包括能源行业、化工行业、油气行业、钢铁制造、水资源管理、食品加工等等,而且KICS在保护网络的同时,不会影响整个工业的流程。KISC软件可及时发现异常现象,及时报告可疑的命令,可以很好地防范工业行业的风险。
5.中国科学院广域量子通讯网络——连接城市与城市
广域的量子通讯网络就是先用光纤实现城域网,利用卫星实现广域网,利用中继器把两个城市之间连接起来,实现广域的量子通信。
到目前,中科院的量子中心在相关部门的支持之下,已经实现集成化的量子通讯终端,通过交换实现局域网之间无条件的安全,也可以实现量子网络的推广,目前的能力已经能够覆盖大概6000平方公里的城市,来支持千节点、万用户的主网的需求。为了实现全程化广域量子通信,目前在中科院先导科技专项的支持之下,正在努力通过对“墨子号”卫星实验任务完成,实现广域量子体系构建。
6.微软的HoloLens全息眼镜——不仅仅是“千里眼”
据微软全球执行副总裁沈向洋介绍,微软的HoloLens全息眼镜是目前世界上最先进的全息计算机,搭载了windows10的操作系统,完全独立运营。研发中攻克了一系列复杂的机械电子、电器、软件、硬件、光学的技术难题和设计难题。
微软HoloLens全息眼镜拥有难以置信的计算能力,众多的传感器实时扫描进行三维建模,还有高清相机。据介绍,“戴上眼镜的用户看到实景和虚景贴合呈现,并可以操纵虚景。学生可以通过数字化全息影像学习解剖学。利用火星探测器的全息影像,科学家可以身临其境般在火星表面工作。HoloLens不仅可以呈现发动机的三维全息模型,还可以在其上叠加零部件,甚至透视内部结构。”
7.加州大学伯克利“鳍式晶体管”——“变平房为高楼”
美国加州大学伯克利分校教授胡正明是“鳍式晶体管”的发明人,2011年因特尔率先采用这一技术,使摩尔定律得以继续。当日会上,胡正明公布了他们今年的创新:引入硫化钼作材料,让二维半导体可以“变平房为高楼”,还可以将晶体管缩小到1纳米。胡正明说,这可能让半导体晶体管密度再增加1000倍。这意味着互联网将来的速度和普及度也还有千百倍成长的空间。可以预期,互联网不仅仅会更广,也会更“深”。
8.百度大脑——全面拥抱人工智能
百度大脑由三部分组成:一是超大规模的计算,一是先进的算法,另外则是海量的大数据。百度有全球目前最大的深度学习的神经网络,有万亿级的参数、千亿级的特征训练和千亿级不同的模型,以及几十万台服务器和各种不同的架构等。这些数据有搜索的、行为的、定位的、交易的,可以打造个性化的知识图谱以及商业逻辑和用户画像。
百度公司总裁张亚勤说,百姓生活将全面拥抱人工智能。如用手机搜索、语音识别、图像识别、翻译的各种功能都利用了人工智能技术。百度也在尝试将人工智能应用到教育和医疗领域,模拟病人和医生间对话,人工智能自身可阅读大量文献据此判断病例。无人驾驶技术也应用了人工智能,同样会融入人们的生活。
9.中国科学院计算技术研究所“寒武纪1A”深度神经元网络处理器
中科院计算所研究院孙凝晖带来了“寒武纪1A”深度神经元网络处理器,它具有人一样的智能。它模仿人的神经网络,计算指令不同于一般的CPU。功耗很低,功能很强大,借助它有望把阿尔法狗塞进一部手机里。从理解语言到图像搜索,许多人工智能功能都可以依赖它。
10.三星复合生物信号处理器——准确了解健康状态
三星复合生物信号处理器是采用45纳米特殊的半导体工艺制作而成,内嵌快闪存储器。在人身上,生物处理器可以监测5种生物信号,并且转化成数据。事实上,内置电源管理系统可以从一个电池供4个不同的内置电源,这些功能集成的微型组件厚度仅有0.4mm。它可以将不同的软件或算法装载到生物处理器当中,监测5种生物信号,包括心率变化、身体成分、情绪变化、呼吸异常、体表温度等等,通过复合这5种信号从而准确了解健康状态。
11.“神威·太湖之光”——划时代新型超级计算机
“神威·太湖之光”采用全国产综合处理器,是世界首台性能超过10亿亿次并行规模超千万核的划时代的新型超级计算机。下一步超算中心将围绕国家重大需求和国际需求开展高性能计算应用和计算任务,共同为世界科技的创新做出更多工作。
12.SAP与中科院沈自所联合研发的工业4.0智能制造生产线
SAP是德国“工业4.0”的核心发起单位之一,也是其中的唯一一家软件公司,是“工业4.0”技术标准的制定者之一。过去多年SAP一直致力于推动德国“工业4.0”与“中国制造2025”的对接。
SAP希望通过与中科院的合作来推动中国制造与德国“工业4.0”的结合,帮助中国制造实现数字化转型。
13.微信智能生态平台——创新人机交互方式
2016年,微信在技术、产业、社会等多个层面提升了生态创新能力,从一个沟通工具发展成为开放平台,并且成为了一种新的生活方式。在技术生态方面,微信构建了一个全面开放的智能生态平台,通过语音识别、图像识别、音频指纹、微信BOT平台、生物识别等技术服务,以创新的人机交互方式提升了用户体验。
微信已经构建了一个不断迭代创新的生态系统,并与产业链伙伴共同努力,通过连接一切提升人类的生活品质。
14.华为麒麟960手机芯片——全球科学家10年成果
华为公司最新的“麒麟960”芯片是华为新研发手机的核心,挑战世界最高水准,实现了高性能和长续航的突破。它也是全球科学家和工程师研发近10年的成果:照相技术来自于法国、俄罗斯和日本等团队,部分通讯技术来自于美国、比利时和瑞典等团队。
麒麟960搭载了自主研发的全网通Modem,它可以支持所有的移动通信,帮助使用者享受更加快速、可靠的连接服务。
15.高通5G通信技术
5GNR是基于OFDM的全新孔口设计的全球性5G标准,也是下一代非常重要的蜂窝移动技术基础。高通新近推出的6GHz以下5GNR原型系统和试验平台,是推动5G迈向商用非常重要的一步。
5G改变世界与我们彼此之间的互相操作,这套原型系统不单只是高通系统测试的一个工具,也是整个5G标准化的过程。
15个项目代表全球最新最重要科技成果 最终目的:创新驱动、造福人类
中国工程院院士倪光南说,15个项目反映了全球最新、最重要的科技成果突破,体现了网络信息领域发展的速度和未来前景。一方面看出我国和世界科技尖端水平的差距,另一方面也发现了一些领域中我国技术和全球最高水平旗鼓相当,提升了科研信心。
国家网信办信息化局局长徐愈表示,希望能有更多的引领全球互联网发展的科技创新成果在世界互联网大会上发布,通过科技创新解决全球互联网发展的问题,驱动全球经济的协调发展,让互联网科技的创新力量惠及全人类。
中国工程院院士邬贺铨认为,这是乌镇世界互联网大会举办三届以来首次召开科技成果发布会,形成了行业引领作用,创造了国际合作的机会,并在寻找未来产业发展之路,最终目的将实现创新驱动、造福人类。
这是我第一次受邀来主持11月召开的乌镇世界互联网大会,各路大佬乌镇论剑谁到场谁缺席?
在乌镇的小桥流水间,我遇到了很多熟悉的面孔,马云、马化腾、李彦宏、张瑞敏、丁磊、雷军、周鸿祎、张朝阳、程维、王兴,他们是世界互联网大会的常客,原因在于在过去十几年甚至几年的时间,他们迅速崛起成为巨无霸或独角兽……还有一些新面孔也来了展示科技成果,往往没人记得这些人物的名字,能记得住的是他们骄傲地在乌镇展示领先科技成果发布了WATSON、手机芯片、自主驾驶等人工智能所引领的各种“黑科技”。江南水乡里的乌镇时间,蜂拥而至的需求和泡沫,铺天盖地的张扬和焦虑。
有人到场,也有人缺席。刘强东因要发京东财报缺席,柳传志因准备联想弘毅投资年会缺席,但乐视贾跃亭的缺席理由却成为舆论中心被解读为资金链压力。
毫无疑问,这是一个微妙的时代,催生了一大批互联网+梦想操盘手,这是一场神奇的大会,作为中国互联网企业的领袖人物,除非有特殊的原因,否则不轻易缺席。
乐视12载,创始人贾跃亭近两年声名鹊起如日中天,他凭借“99%的人不看好,才是真正的颠覆与创新”的执着赤火夺金。他向全世界宣布,“用未来定义未来、再用未来定义现在”,希望依托全新的互联网生态模式,打破边界、生态化反、蒙眼狂奔,以创立互联网生态经济这一全新的经济形态,价值重构、共享和全球化。在贾跃亭缔造的乐视帝国中,能看到新旧经济秩序的基因,也能看到强大的资本意志。不过,这匹金融黑马正被资金链紧张的锁链拽着从云端坠落,有人开始从他身上寻找唐万新、牟其中的影子。
乐视欠款的传言四起,出现在这次世界互联网大会的雷军也加了一把火。比起因为资金链危机焦头烂额的贾跃亭,雷军虽然自在得多但是略显倦态。不可否认的事实是,他一手创建的小米也不再拥有最有价值新创企业的桂冠,他的互联网思维的七字法则似乎不再所向披靡,小米的狂欢时代经过2015年、2016年两个年头的洗礼已经有了直下的迹象。
哪里出了问题?商业江湖中真的没有基业长青的神话?盛衰须臾间有没有不死法则?无边界的文化与消费生态,催生出大而化的梦想,或者更准确的说是野心,出现了对宏大叙事的沉溺迷恋,而看客似乎对创业者的野心勃勃乐此不彼。急于做大做强的商业趋势,很容易导致多元化的盲目扩张,即跨界无度,节奏混乱。
乐视的核心竞争力是版权视频、互联网电视以及以体育赛事为代表的内容制作,但贾跃亭手伸长了,不断跑马圈地,把手机、金融甚至严重烧钱的智能汽车拉进了乐视生态圈,金融与智能汽车与乐视的核心竞争力隔着好几条街,七大板块成为孤岛,不能相互取暖,输送血液,且强敌环伺。有人评价,如果乐视的生态圈只能如愿以偿,乐视将会成为“苹果+亚马逊+特斯拉+谷歌”的超级帝国。看官也说了,BAT的手个个都长。不过,再算一笔账,BAT发展了多少年,积累了多少用户和渠道,账户上躺着多少资金,融资杠杆有多长。
第三届世界互联网大会,还有一个众人期待的人没来,华为的任正非,其实他已经缺席了每一次的互联网大会,事实上,他一贯如此。创业近30年来,任正非从来没有一次在类似场合露过面。
华为这个看起来低调且很少画饼的企业,已经成为中国企业的标杆,且发展势头良好,这源于华为对技术的偏执,对创新节奏恰到好处的把握,雄厚的人才与渠道积累。任正非曾在2014年公开表示“别盲目互联网思维”,“尽管互联网以及物联网正在渗透到社会生产和生活的方方面面,然而也应当看到,互联网虽然促进了信息的生产、交流、获取和共享,但没有改变事物的本质,即使在互联网时代,车子还是车子,内容还是内容,豆腐还是豆腐。”一语中的。
互联网时代下的中国,商业的打法变得错综复杂又光怪陆离,但剥茧抽丝,商业的活法亘之未变——坚守对用户与产品价值,有所为有所不为。
茫茫江湖,英雄辈出,草莽亦层出不穷。我们习惯认为,成者为王,所有的成功路径都被奉为神明;败者则寇,所有的失败法则都被踩成泥坑。殊不知,所有的企业都是为商业机会生存的,当使命完成机会逝去,企业就可结束生命,除非自我颠覆。
乐视如此,华为亦如此。乌镇到场的如此,缺席的亦如此。
在这场关于金钱的游戏中,创始人、普通员工乃至VC机构,每个人的命运都被裹挟在滚滚洪流之中,跟时代一起癫狂,又一起坠落。
文 | 周天
编辑 | 杨轩
倪熙算得上一个“人生赢家”了。他在一家年交易额排名前一百的网贷平台当联合创始人,年薪五十万,所持股份的账面价值达数千万,而他只是个90后,毕业于一所民办大学。
三个月前,倪熙想给父母买辆沃尔沃,向银行申请30万元车贷,出乎意料的是,他被拒绝了。在说起这件事时,他满嘴爆粗,显得有些气急败坏。
原来,倪熙所属的网贷行业,已经被银行作为劣质客群列入黑名单。南京银行的一位客户经理对36氪说,“P2P员工现在要想借款,非常困难,我们银行现在完全不碰这类人群,但如果是其他IT类企业,百分之百能拿到。”
跟金融沾边的企业,多少受到了“歧视”。一家投资机构今年年初想租用北京三元桥附近的办公楼时,对方因为它是金融公司,拒绝租楼给它。另一家名字中包含“金融信息”字样的创业公司,其多名员工在办理信用卡过程中,也都未被银行审核通过。
“银行的做法让我想起那句经典的电影台词——我不是针对你,我是指在座的各位,都是垃圾。”倪熙自嘲完现在的遭遇,把烟头狠狠地扔在地上。
在这场互联网金融业的“大败局”中,拿不到贷款只是一桩不值一提的生活琐事。裁员、花式跑路、融资泡汤和上市遇阻的故事,每天都在上演。
过去三年,互联网金融是风险投资最火热、被投公司估值最高的领域。在未上市公司的估值排行榜里,前十名里有4家都是金融类公司。
而据一家互金研究机构的统计数据,2015年相较2013年,投融资项目数上涨了6倍,投融资金额上涨了53倍——达到近千亿元。
“即使是从未投过金融领域的基金,都会跟风地投一两个互联网金融项目,不然单子上不好看,没法向LP(出资人)交待,”一家基金的投资经理对36氪回忆当时的情况。明势资本的创始人黄明明就因为在金融领域出手较少,遭受过LP的施压。
其中,网络贷款是互金领域中获融资最多的细分领域,占比约4成。贷款平台也通常有理财等业务,混业经营让网贷与综合金融平台的边界变得非常模糊。在某种程度上,作为子集的网贷劫持了整个互联网金融,把自己装进了这个更大的概念之中。
网贷也是互金领域出问题的重灾区。自2013年以来,记录在册的网贷平台数量累计超过4300家。但如今,还在正常运转的仅剩约1800家——其中还有90%的平台被业界一致认为,已经进入死亡倒计时——最终的幸存者可能只有一两百家。
短短三年内,整个网贷行业如同在一辆云霄飞车上,大起大落之后,把整个互金行业连带着拖入深渊,财富灰飞烟灭,处处都是梦破碎的声音。
故事的最初:年轻人、营销与补贴
互联网金融的兴起,源于三年前余额宝推出,它的火热帮这个万亿级行业完成市场教育过程,大多玩家那时开始密集进场。
那时也恰恰是倪熙发家的起点,他曾是一名整天喊打喊杀的街头混混,抱着“干大事”的人生追求背井离乡,在北京遇到了刚刚结束上一次失败创业的年轻CEO,两人气味相投,CEO见P2P概念升温,想冲上去赌一把,彼时还不知P2P为何物的倪熙也在2014年年初投身进来。
开局不错,倪熙因为善于营销,很快就和CEO一起把平台交易量做大,累计交易额两年内突破60亿。随着公司估值节节攀升,倪熙所持的股份迅速让他在账面上实现了财务自由。
网络借贷,或者说P2P,在整个大互联网金融生态中,本质上是获客和吸收资金的前端,角色如同银行网点的门店和前台。因此,偏重营销、负责吸收新个人用户也吸收着资金的市场部,是网贷平台最核心的部门。
因此,网贷把烧钱补贴奉为不二法门。一位投资人对36氪表示,P2P最典型的成长路径都是融资之后,给用户补贴几个点的利息,就能迅速把投资用户数量和资金供给做大,撬动了投资用户,再谈借款用户。网贷初期常常能给到15%以上的高息。
“用户以前从来没听说过你,你现在要说服别人把真金白银送上门,必须拿出十足的诱惑才行。”一位市场人士这样分析补贴现象。于是,在最狂热的时候,“注册就送18888元体验金”、“投1000元返现100元”、“满5万白拿iPhone6”等标语充斥百度推广专区。
高息的诱惑,在一个极端案例上表现得淋漓尽致:一家名叫前海创投网络借贷交易平台的P2P,毫无名气,仅凭年化36%的利率吸储,从2013年9月到2014年4月案发前,半年就吸收了8亿多元资金。
但它最多能以约20%的利率把钱贷出去,否则无人来借。这中间的利息差,就需要平台自己补贴。要继续运转,通常一靠VC输血,二则靠后续投资客新的资金输入——即借新还旧。
为了尽快扭亏,挖掘每一个投资用户的价值,网贷平台纷纷扩充商品种类,从最初撮合个人间借贷的非标准业务,到售卖保险、基金等标准化产品,摇身变成综合金融服务平台,“两手抓”——同时涉足贷款和理财两项业务,一手借出,一手借入。
这种演化与银行非常相似,起初主要吸收存款,后来也开始撮合理财资金、代销公募基金和理财型保险产品。
用网贷平台懒财网CEO陶伟杰的话来说,网贷本来是改造金融产业的前端,使其互联网化,然而,“接管前端就意味着接管客户”——基于互联网从事金融业务的创业公司,更有机会圈住年轻人,这就分食了传统金融机构的新增客群。于是连不少银行也都在自建网贷平台。
在资本催熟之下,国民压抑已久的理财欲也被补贴玩法迅速点燃。央行数据显示,2015年年末相比2013年末,全国活跃的P2P平台数量涨了7倍多,交易额涨了16倍多,年成交量则达到惊人的9823亿元。
面对供需两旺的局面,政府利好政策在2013-2014年之间在很多省份密集出台。
在宾主尽欢达到高潮之时,监管者没有收走酒杯,反而送上了更多的佳酿。2015年1月,江西省政府办公厅《关于促进全省互联网金融业发展的若干意见》提出,由省财政对在新三板挂牌的省内互联网金融企业每家一次性补助50万元,对在沪深及境外上市的本省互金企业给予一次性补贴500万元。
凯泰资本董事总经理段钧锴告诉36氪,在互联网金融和创业的浪潮面前,监管层在事实上放松了过去一惯严格的牌照管制,放低了准入门槛,默许了金融类创业公司的大跃进。只有到后来发现不对劲时,才开始猛踩刹车。
红杉资本的李张鲁也认为,行政管制放松让不少人大赚一笔,比如支付行业早期做的是灰色的清算结算,由于和央行等部门沟通顺利,最后拿到牌照,有的靠经营赚钱,有的卖牌照赚了钱。P2P也是如此,最早大家利用法律漏洞和灰色地带,用个人与个人的借贷来规避非法集资和借贷牌照的限制,也发了家。
倪熙在回忆这短短两年的发家史时,他总会提及家乡当初一起混社会的兄弟们不是开赌场就是在搞电信诈骗,过着东躲西藏的日子,唯独他自己清清白白致富,说到得意之处,他会拿起桌上的茅台,把面前的酒盅斟满,神色微醺。
第一盆凉水、第二盆凉水
倪熙可能还不清楚,是资本的疯狂注入,在加速他个人财富的膨胀。大约三百支投资互联网金融的专项基金在2014-2015年间相继成立,押注这条炙手可热的赛道。
然而,去年下半年的股灾,给势头高涨的互联网金融当头泼下了第一盆冷水。股灾传导到早期创投领域,VC开始变得不敢投资。各类互联网金融企业都发现,融资变得异常困难。
一家互联网保险平台的创始人万盛,因此经历了一次“最惨团建”。“一开始融资顺利得让人惊讶,让我自信心爆棚,所以迟迟没有回签投资合同,打算先出去团队建设回来再说”,他对36氪说,但没想到就在团建途中,股灾发生了,投资机构抛来一句“不投了”。这次融资告吹了。
之后的融资环境更加不利,万盛又花了整整半年与投资机构从下到上一遍遍面谈,和其中一家都已经走到了打款前的尽职调查阶段,都依然没能拿到投资。
到了2015年尾声,就在几近山穷水尽之时,他才终于拿到400万的天使轮,已经比最初设想的数额缩水了一半。此时,半年已过,先机早已错失,但好在命悬一线之时续上了一口气。
位居买卖双方之间的资本中介机构对这样的故事早已司空见惯。一家FA机构专攻互联网金融方向的人士告诉36氪,从2015年下半年至今这一年多来,就没有卖出一个和互联网金融相关的案子,而另一家业内熟知的四大知名FA,今年撮合的金融方向的项目数量也出现了大幅跳水。
向互联网金融行业泼来的第二盆冷水,来自2015年开始、披着P2P外衣的各种非法集资案件。
公安部经侦局副局长张景利曾说,2015年,非法集资立案数由上一年的三千起大幅攀升至上万起,涉案金额达2500亿。仅2016年一季度,立案数达2300余起。这个时间段恰好也是P2P的最狂热时期。
网贷平台作为信息中介、撮合借贷双方,本身不能吸储和放贷,不得设资金池,但自2014年开始,很多传统民间借贷机构借互金概念包装自己,一些小额贷款公司、典当行、担保公司,买上一套网贷系统,就开始跨区域吸储,并放大杠杆。而过去,他们一直严格地受到资本金和地域限制,风险不会过大、波及面不会过广。
更糟的是,大量打着互联网金融旗号、实际是集资诈骗的团队,混入了队伍。他们从最开始吸储时就没打算归还,还有极端案例是上午开业,下午就卷钱跑路。这重创了整个行业,波及数百万用户。
以“e租宝”一案最为登峰造极,这家起势于安徽的企业,在央视重金投放广告,吸收公众资金超过700亿,84万投资客被卷入其中。事后查明,e租宝有95%以上的借款项目都是伪造的,资金也并未注入实体经济,而是任由高管挥霍。
除了e租宝,还有泛亚、大大和快鹿等恶性事件相继爆发,原本一腔热情的投资客们开始变成惊弓之鸟,缩减投资金额。
而在金融这种与信用息息相关的生意中,一旦用户的信任遭到伤害,生意就不可能维持下去,转化率会变得很低,获客成本呈指数级上升。
一位不愿具名的网贷高管对36氪说,“我后来复盘,发现整个行业走下坡路,有一个明显的节点就是“e租宝事件”的爆发,这些恶性事件严重破坏了整个行业的形象,让用户丧失信心。2015年年底,我们平台的交易量下降了四分之一,类似情况在整个行业都非常普遍。”
连业内人士都对自己的行业丧失信任。在一家网贷平台担任市场副总裁的缪雄,在得知母亲把毕生积蓄都投到P2P里后,急得直跳脚,要求老母亲赶紧把资产配置中P2P的比例降到20%以下。
信心的崩盘,在2016年的年初达到了最高潮。按照惯例,春节期间通常也是投资客集中兑付取现的时间点。流动性吃紧,这就让惠卡世纪这样玩着自融和资金池游戏的平台没法撑过年关。
在惠卡世纪工作的程序员薛强,在今年2月19日收到一封发给全员的内部信。这封信要求惠卡世纪创始人自首,因为“e租宝好歹也知道弄点虚假项目去伪装成P2P,而我们惠卡明明白白就是自融集资。”
“自融集资”意味着,公开募集的资金并未交给真实的借款人,而是被本该只是居中撮合角色的平台自己拿去投资,投资业绩还十分惨淡。“这些年,惠卡从O2O到电商、在线教育、物联网、B2B,乃至社交都做了一遍了,积累的项目代码一台服务器都装不下,没有一样东西是有利润的。”这封信如此写道。
在这里工作了两年的薛强这才如梦初醒。他花了数万元买了自己公司的理财产品。“活期产品卖不动了,兑付的人多,买进的少,我意识到不对劲,但为时已晚,我存进去的钱再也取不出来了。”他对36氪说。
几天之后,面临3亿兑付缺口的惠卡世纪发出一条公告:“恳请党和国家接受惠卡世纪的投靠并提供庇护,让惠卡变为国家控股企业。”惠卡原董事长何正松直到被捕后,还在看守所中坚称,“让国家接盘是因为项目对国家有利,并不是要把包袱甩给国家。”
类似的违规违法行为在这个行业非常普遍。“现存两千多家网贷机构中,做大额业务的,多数涉及自融自保,多数涉及期限错配和设立资金池,多数参与房地产等限制性行业,背离了网络借贷的本意。”银监会普惠金融部主任李均锋说。
薛强的职业生涯也被打上污点,“我们做技术的还好点,运营和市场的同事们找下家普遍变得很难”。“我们公司专门下了文,只要是问题平台的人我们一个都不要,不管这个人有什么样的能力,”一名积木盒子人士对36氪说,“他们当初愿意去问题平台一定有赌徒心态。”
雪崩之后,互金行业度日艰难
不违法不违规的平台就能置身事外了吗?很可惜,形势的骤变既影响坏平台也影响好平台,痛苦是全行业的痛苦。
根据零壹研究院的统计,60%以上的平台在今年8月出现交易额下滑。考虑到大量的小型平台未纳入统计范畴,实际比例应该更高。
“你有没有一个感觉,到了今年,整个行业的活水很少。今年全行业的品牌投放预算削减了足足三分之二,而互金有点消费品的属性,需要大量的投放来拉动销量,现在这种情况很糟糕。”为互金类企业提供市场营销服务、小铜人的联合创始人王梁说。
王梁所说的“活水”是指新用户。缪雄承认,“真正的新用户很谨慎,他们有一个特征,就是越来越倾向于在大平台购买产品,现在所有的独立网贷平台都遇到严重的获客问题。”
“我的目标群体是中产阶层,这么庞大的用户群体就摆在那,但我现在就是触达不到,”铂诺理财创始人简毅的最大苦恼是无法低成本地找到这些用户,他甚至一连撤换了几个负责市场的副总裁。
创业一年以来,简毅承认,很多客户并非通过市场化手段获得的——有不少成交量是股东四处刷脸张罗得来的,他坚信自家售卖的资产比较优质。但因为无法大规模地获客,业务始终没能再上一个台阶。
羊毛党凶猛
到了后期,给用户新手奖励,已经不再是一个太好的获客办法。越是往后,理性的投资客已被挤出,剩下的多是投机者。
“我经历了三轮羊毛党。看到后台数据瞬间拉升,我心里却是一阵寒意——这是羊毛党,数据越涨我越感到痛心,”简毅谈起羊毛党时,愤恨之情溢于言表,“这些人根本不管你平台资产的好坏,没有复购率,没有一点忠诚度,全都是捞一笔就走的心态。”
令网贷平台闻风丧胆的羊毛党以“有组织有纪律”的面貌示人,依靠微信群来联络,驱动资金游走于不同平台之间。一旦某家平台为了拉新而开展优惠、返现或推出高息短期产品时,羊毛党就会一拥而上,积极竞购,红利期一过就迅速提现退出,卷走超额收益,并转而寻找下一个目标,再重复这一整套动作。
一位“羊毛党”举例说,“之前有家P2P对新手奖励100元红包,投资1万还返430元,除了正常利息,一个月都能赚560元。如果纠集600万资金进去,一个月内就能卷走平台33万市场费用,近乎空手套白狼。”
倪熙说,因此互联网金融公司基本上已经不敢做大规模拉新了,现在只能围绕老客户做文章,不断通过加息券和产品拦截,把他们的资金留住。
买流量就像饮鸩止渴
和羊毛党一样吞噬创业公司本就为数不多的资本的,还有急剧变贵的流量。缪雄说,“网贷平台最大的成本就是获客成本,超过整体支出的50%。”
虽然缪雄所在网贷平台的交易额能排进全国前一百,但也很难支撑在今日头条上的广告投放费用了。他说,2015年从头条获取单个投资用户的成本还不到500元,但今年涨到了1000元以上。因此他今年结束了与今日头条的合作。
自媒体也不再是流量洼地。以前大号们在没有发现互金这块肥肉时,一个有效获客的成本是50-100元,之后要价也水涨船高,从过去几千元一篇文章,到现在动辄十几万甚至几十万元一篇。
流量巨头百度自然也不会放过网贷这样的肥肉。缪雄的平台今年仅仅是购买百度品牌专区这款产品,付出的代价就是140万,去年是110万。根据优分期创始人房平的统计,包括互金在内的不少行业,有50%的毛利是被百度吃掉的。
还有一半可能是被分众传媒吃掉的,一家互联网保险中介的创始人告诉36氪,他才宣布融资消息,江南春就亲自找上门来做销售,大谈独角兽们都是因为在分众投放了广告才火得快,创始人越听越激动,大手一挥,五百万就这么没了。
每年在百度“纳贡”一百多万的效果有多好?缪雄算了一笔账,在没有行业负面新闻时,通过百度搜索导进来的流量,每周的新客注册数量在一百多到两百人之间,但凡有行业负面消息传出,当天新增用户立即断崖式地直降为0,至少需要一周才能缓和。
在流量贵的背景下,即使是从大平台出走的团队,要想再现往日荣光已是奢望。今年7月,美利金融宣布彻底退出理财端,一位业内人士分析,“根本原因还是流量太贵,美利金融CEO刘雁南从有利网出走时,把有利网负责互联网营销的原班人马都带出来了,现在再用同样的套路,已完全不奏效了,这本身就说明,互联网金融的风口已经过去。”
风口过后,只剩苦苦求生。36氪通过一家平台的市场副总裁获知,一家年交易额在二三十亿左右的网贷平台,每年需要烧掉的市场费用接近4000万,这就是说,近2%的费用被各渠道蚕食。而互金平台本就是一个以赚利差为生的行业,烧掉的每一笔获客费用都在蚕食净利润,2%已经太多太多。因此,在所有面向C端的互金企业中,能实现盈利的平台少之又少。
如今,烧钱买流量是死,但如果业绩没有跑出来,从VC那里融不到下一轮更是死路一条。于是很多平台继续硬着头皮去购买骤然昂贵的流量。
这种饮鸩止渴的心理,体现在跟羊毛党的微妙关系上。“其实很多平台和羊毛党彼此需要,虽然要烧钱,羊毛党好歹能托起交易量,在表面上把数据做得好看一点。”一家汽车后市场的独角兽——途虎创始人陈敏在一次采访中对36氪谈到,O2O领域饱受的刷单之苦与互金领域如出一辙。
政策步步紧逼
流量买不起,网贷企业至少还可以选择不买,但面对行政命令,企业们更没有回旋的余地。
互联网金融行业经历了三年的野蛮生长,“监管放宽之后,传统银行能做的网贷能做,传统银行不能做的网贷也能做”的好日子终于到头,2016年年初,中央政府多个部委发起了一场针对互金行业的“专项整治”,形势急转直下。
“金融在任何国家都是高度监管,不可能无止境地允许技术创新,早晚有一天监管会回归。”前述积木盒子人士说。
政府出手的重头戏,是今年8月24日发布的《网络借贷信息中介机构业务活动管理暂行办法》,这是目前针对网贷行业效力最高的行政法规,除了规定不得设有资金池、自我担保和线下拉客等十几项禁令,还新增了客户贷款的上限(单独平台上个人最多只能借20万,企业为100万),意图把债权规模压缩到小额和分散的状态,让大额借贷回归传统金融体系内。
盈灿咨询近期的压力测试报告显示,以限额20万元为例,在选取的851家样本中,出现超出限额标的的平台数量达到96.83%。
以完成银行存管这个要求为例,不完全统计,截至2016年9月底,与银行完成对接的P2P平台仅有51家,仅占全行业的2.28%。
时间紧迫,伴随这些禁令的,是留给互金平台不到12个月的整改期。但此时,申请这些资质的难度和时间成本都已大为增加。
例如,基金业务是很多网贷平台都在涉足的业务。前述积木人士称,P2P公司是没法申请基金牌照的,必须另外注册一家独立的企业,团队也必须具备销售基金的资质,这些都是“很漫长的过程”,必须提前准备,积木是在2014年6月启动申请,到2015年搭建好团队,在2015年9月最终宣布拿到牌照。
“存管也需要未雨绸缪,监管法规一出来,很多P2P这才去找银行,突然这么多家申请,银行就是想接活也排不过来。我们当时做得早,银行还愿意合作。”积木人士说,“存管系统的开发量非常大,当时花了9个月,还有损用户体验,所以很多平台抱有侥幸心理,想等等看,结果现在就悲剧了。”
而在政府列出的“负面清单”中,但凡有任何一处不符合要求,都意味着平台无法继续经营。
这样的案例已经开始出现。8月,“广州贷”黯然关停,其公告称,是“鉴于近日银监会等部委发布的网贷法规。”在9月和10月,分别出现了97和104家新增停业及跑路平台,数量呈上升趋势。
坏消息远远不止这些。各地政府也相继推出了一系列禁令。比如,今年年初各地工商部门就不再批准金融类的创业公司投放线下广告,这间接推高了线上流量成本;同时也不再受理新的互金公司进行工商登记,直接把增量扼杀在源头;而到了开学季,多地政府又开始禁止校园分期平台进校地推获客。招招都直指要害。
禁令当前,企业别无选择。趣店联合创始人何洪佳对36氪表示,趣分期的校园拉新业务全部停了下来,“我们已经决定退出校园市场了,地推人员也全部转到了其他业务部门。”
然而,大学生分期购物这个细分市场容纳了至少两家“独角兽”公司和近百家初创企业,一度成为互联网金融中最热门的细分赛道。如今,企业们的经营活动基本都陷入停滞,而这其中,还包含着数家正在冲刺IPO的企业。
一时间,不管是网贷资金端,还是校园分期这样的资产端,大大小小的互联网金融公司都陷入困局。优分期CEO房平说,“过去大家竞争很激烈,但现在,我们和趣分期、分期乐已经是一根绳上的蚂蚱了,需要一起扛过政策的影响。”
下轮投资谁接盘?
融资变得更难了。
陶伟杰曾经认为,懒财在2015年年底把交易额做到20亿时,融B轮应该没问题了,但没想到, “我每个月都觉得几乎可以搞定融资,结果每个月都没有融到钱,快要绝望了。”直到今年8月,他拿到了乐视的投资。回忆这段劫后余生的经历时,他仍然唏嘘不已。
“几乎所有的VC都担心政策风险,嘴上说觉得你的模式有意思,之前没见过,但就是不下手,要么挑剔利润率太低,要么就是认为短期内难退出,VC行业也有羊群效应,我以前一直以为资本是食物链的上层,但其实他们也不是。”陶伟杰对36氪说。
投资业在今年开始流行起反思互联网金融的论调。“10个投资人有4个都在看互联网金融,但现在这个时间点与原来已有所不同了,现在一个大问题是退出难。”红杉的李张鲁说。
而面对创业者们的抱怨,另一家主投金融类项目的一线基金的一位副总裁有点委屈,“我们投的这些金融类项目一直就不太好退出,所以今年在金融领域出手很少,现在把重心都转移到交易平台类项目上去了。”
网贷平台能融到C轮的只有十几家,而走到B轮融资的也不到50家,倪熙所在的企业位列其中,在拿到融资之时,他难掩有人接盘的喜悦,“拿到这一轮,我就觉得我算是上岸了,终于可以长舒一口气了。”
而一家C轮平台创始人私下对36氪承认,他的公司表面上是被投资,而实际上,已经失去控制权,他几乎一夜之间成了“吉祥物”。而买家是二级市场的资本运作高手,看中的是平台能带来的现金流,用意恐怕不单纯。
但危急存亡之秋,活着就意味着胜利。
借壳上市折戟
少数能走到Pre-IPO阶段的机构,也没有那么幸运了。据财新网报道,证监会在5月中上旬叫停上市公司“跨界定增”,涉及互联网金融、游戏、影视、VR四个行业,这意味着一众互金企业借壳上市的计划泡汤,给一些资质相对不错的互金企业和指望退出的VC带来重重的一击。
消费金融创业公司优分期,恰恰就没能赶在禁令出台之前完成重组。5月22日,华塑控股发布公告称,拟购买和创未来(优分期母公司)51%的股权。到了6月底,华塑就说因为“当前市场环境发生了变化”,“终止筹划本次重大资产重组事项”。
优分期CEO房平事后回忆说,“当时已经递交申请了,结果在节骨眼上出台了这个政策,没办法了,到了那个地步只能冲一把,花了近一年努力,券商做材料就花了近半年,事后只能按不可抗力来处理。”
拉卡拉是另一个倒霉者。今年6月,它试图借壳西藏旅游,但最终失败。拉卡拉创始人孙陶然对此向36氪解释称,今年上半年,拉卡拉在券商建议下,设计了一个把拉卡拉注入西藏旅游的方案,此方案符合当时监管部门所有的规则,但去年股灾发生,以及新的监管条例出来后,方案就不符合监管规则了,只好中止了。
“要借壳就得按IPO的实质标准,比如达到3年盈利。因为盈利不足3年,拉卡拉就想绕开借壳,但最终因为被认定为疑似借壳而没被通过。监管要求实质重于形式。”孙陶然进一步解释称。
据36氪统计,仅在今年6月24日、25日两天就有多达10家上市公司的并购重组被终止,其中有3起并购案的拟收购标的均是互联网金融类企业,其中就包括拉卡拉和优分期,还有一家是第三方支付公司海科融通。
一位趣分期人士悲观地估计,“借壳解冻还不知要等到哪年”,所以趣店正在筹划美股上市,已经放弃了国内上市计划。房平则认为,证监会这个口子早晚会开,还需要两三年,借壳的时机才能成熟,他计划在2018年准备材料,2019年开始申报。这相比原计划推迟了三年,而这对于分秒必争的创业公司来说可谓一段漫长的煎熬。
然而,股票市场却已不再对“互金概念股”趋之若鹜了。
曾高调宣称自己是中国第一家上市P2P公司的匹凸匹,近日公告称鉴于互金行业监管趋严,短期内无法通过P2P业务实现收益,拟以1亿元剥离该业务。家居行业巨头红星美凯龙亦公告称,旗下成立仅一年的家金所自10月30日起不再提供借贷撮合服务。
急于与P2P划清界限的公司远不止上述两家。昔日大张旗鼓跨界玩P2P的上市公司中,盛大矿业、东方金钰、新纶科技、天源迪科、高鸿股份等公司,也在网贷新规落地后纷纷宣布剥离P2P业务。
最好也是最坏的时代之后
已经过去的那一两年间,原本是金融类创业公司的窗口期,也是提升国民经济整体资金流动效率的一次好机会,只可惜投机者太多,泥沙俱下,最后产生了“洗澡水和婴儿被一起倒掉”的结果。
孙陶然总结说,“创业者的急功近利,投资人贪得无厌,再加上不良人员没有底线,合起来就是现在金融狂欢之后的一地鸡毛。”
“真正的P2P实际上是有发展前景的,它解决了交易成本、信息对称的问题,但现在暴露出这么多问题的机构都不是真的P2P,还把P2P行业毁了,都觉得P2P是坏蛋了。”一位银监会人士不无惋惜地说道。
京东金融副总裁金麟认为,互联网金融实际上是“监管套利”驱动的“渠道创新”,“银行都不敢无上限地加杠杆,P2P行业就敢做。所以我把之前这一轮定义为监管套利驱动。”BAI投资经理赵鹏岚持同样的观点,他也认为P2P起量快就是因为监管套利。
这些渠道创新的P2P,多是帮非理性的投资客对接了劣质的贷款需求,却并未降低风险——很多从传统银行借不到钱的企业,本身属于产能过剩行业,原本处于破产边缘,现在从P2P又能借到钱,又续命了几年。这类P2P,即使幸运地能赚到一点利息差,但要想跑赢巨大的获客成本和平台运营成本,仍然太难。
截至今年10月底,今年新增的异常网贷平台数就已经达到842家,绝大多数为停业或跑路,而现存正常平台数量仅剩余约1800家,这个数量还在以月均100家的速度迅速消失。
“90%的网贷平台会关停”,国资背景网贷平台开鑫贷的总经理周治翰对36氪断言说,“互金行业普遍的问题是都喜欢用所谓互联网的套路:通过烧钱迅速做大交易量,再谋求在资本市场上退出。但这个行业是没法赚快钱的,通过经营产生现金流都是比较缓慢的。”
网贷行业已经出现明显的“二八法则”:今年,8月成交量前100的平台占全行业总成交量的75.80%,而这种集中度还在加剧。
华创资本熊伟铭认为,P2P行业已经没有多少新的东西,剩下的就是收购整合。“如果独立退出有压力的话,就要想办法卖掉。”
此外,业界普遍认为,信贷危机爆发需要一定周期才能显现,2014-2015年全行业处于狂飙突进的阶段,按企业借款期限为2-3年左右来推算,2017年可能会是集中回款期。到那时,网贷能收回多少钱,将打上很大问号。
如今,“8.24网贷新规”明晰了游戏规则,虽然给网贷施加了重重限制,但也第一次正式确认了网贷行业的合法性,网贷平台的生存空间没有被封死。行业协会也建立起来,而且,互联网金融涉及证券、保险、支付、众筹等诸多领域,存在创新空间,同时还有数亿从未接触过银行的无卡人群等待开拓,经历一些时间,这个行业可能慢慢恢复过来。
投资业也还对这个行业抱有希望。36氪在11月14日晚上的微信朋友圈中看到一则招聘启事:今年6月新成立产业基金(一期200亿)招副总裁一名,互联网金融方向,要求对互金有深刻认知。
倪熙还在等待东山再起的一天。他盘算着,等从公司套现退出,实现真正的财务自由之后,就金盆洗手,在家专心培养下一代,让他们读个好大学。不过,在暗地里,他也开始投简历寻找新工作,可能他心里也明白,财务自由已经变得越来越遥远。
应采访对象要求,倪熙、缪雄、薛强、万盛均为化名。
近日,有关谷歌自驾车的三个专利被曝光,一个是切换无人驾驶状态的,一个是提醒乘客的,还有一个是手势操控汽车的,谷歌的无人驾驶汽车距离我们越来越近了。
自从谷歌开始无人驾驶汽车项目,业界就很感兴趣,本来无人驾驶汽车应该是汽车巨头们的领域,互联网企业谷歌偏偏要来插一脚,如今项目距离成功已经不远,我们可以对这个事情做一个评判了。
一、无人驾驶汽车的来源
所谓的无人驾驶汽车,并不是从天上掉下来的,而是随着汽车工业的发展,电控技术的进步一步步从有人驾驶辅助发展而来的。
从有人驾驶到无人驾驶,业界分成四个阶段。
第一阶段是驾驶员辅助,驾驶员辅助系统能为驾驶员在驾驶时提供必要的信息采集,在关键时候,给予清晰的、精确的警告,相关技术有:车道偏离警告(LDW),正面碰撞警告(FCW)和盲点报警系统。
第二阶段是半自动驾驶,驾驶员在得到警告后,仍然没能做出相应措施时,半自动系统能让在汽车自动做出相应反应。相关技术有:紧急自动刹车(AEB),紧急车道辅助(ELA)。
第三阶段是高度自动驾驶。该系统能在驾驶员监控的情况下,让汽车提供长时间或短时间的自动控制行驶,这个阶段目前还比较初级。
第四阶段:完全自动驾驶,在无需驾驶员监控的情况下,汽车可以完全实现自动驾驶,意味着驾驶员可以在车上从事其他活动,如上网办公、娱乐或者休息。
按照这个分类。第一阶段已经基本普及,现在高配置型的车型基本都带了,包括10万出头的比亚迪。
第二个阶段正在普及,欧盟立法要求2013年11月前的车都必须装上紧急自动刹车(AEB)。Volvo的城市安全系统、本田的CMBS、奔驰的Pre-Safe都是这个层次东西。英菲尼迪的新车也已经可以绕开驾驶员自动控制方向盘。
第三个阶段目前有雏形,新款的奔驰S系可以在堵车的情况下,电脑自己跟车,车主可以不必一直操控车辆。包括中国在内的一些厂商也在做相关的试验与探索。
第四阶段则是谷歌一直在努力的目标,像红色警戒2游戏里面光棱坦克的谷歌无人驾驶汽车看起来有点怪怪的。但是它经过了长时间的测试,成熟度已经很高了,是最贴近实用的无人驾驶汽车。
二、谷歌的技术优势
无人驾驶汽车其实可以视为是一种机器人。从原理上来说,不过是传感器感知路况和周边情况,然后传输到CPU,CPU根据人工智能对情况做判断,然后通知电传系统,电传系统根据信号操控机械装置,最后机械装置操控车辆做各种动作。
在这个过程中,电传机械控制这方面基本已经完善,因为过去的20年,汽车行业的进步主要就在这方面。如今大部分汽车都是电传控制了,你的刹车、油门、换挡、甚至方向都是一组电子信号,你操作的动作被解读处理,然后传给机械系统,过去哪种直接机械对机械的操控只在极少数工具车上还能看到。无人驾驶无非是把这些信号脱离人的控制交由电脑处理,并不需要费太大周折。
而技术的难点就在前两步,怎么用传感器准确的感知周围的信息?人工智能如何做判断?
从技术路线上来说,感知周围情况有多种模式,谷歌选择了激光传感器,激光传感器对距离的判断非常准确,但是价格昂贵,恶劣天气下实用性受限。目前,谷歌无人驾驶汽车的成本高的吓人,主要就是激光传感器的原因。
比较廉价是采用光学摄像头,但是让人工智能识别光学摄像头采集到的图像,目前奔驰S级的魔毯技术就是利用摄像头作为信息采集源来控制空气悬挂,但是光学摄像头用于无人驾驶的话,对图像识别的人工智能会要求很高,对距离速度的判断也会很麻烦。
目前,汽车上已经出现的辅助驾驶功能,一般采用的雷达,这个比较便宜,但是雷达的探测能力相当有限,车载雷达的发射功率也探测不了多远,还怕物体阻挡,用到无人驾驶汽车上有多少实用性也值得怀疑。
从目前来看,最靠谱的还是谷歌的激光传感器路线。
人工智能方面的考验程度更高。其实高速公路上的无人驾驶并不太困难。谷歌现在没有问题,奔驰、奥迪也没有问题,VOLVO没有问题,甚至中国搞的无人驾驶高速也跑了286公里不出问题。这是以为高速路的情况现对简单,对人工智能要求的算法不是很苛刻。
在市内驾驶就完全是两码事了。
谷歌无人驾驶汽车项目主管厄姆森说,“在市区里行驶一英里路程要远比在高速公路上更为复杂,因为前者在一个小的区域中会因为规则的不同存在数百种不同的路面情况。我们花了大量时间改进了我们的软件,因此它现在可以实时的区别上百个不同物体——如行人、公共汽车、由协管员手握的停车标志,或者是骑自行车者给出的要通过马路的手势信号等。”
在人工智能方面,其他厂商距离谷歌还差得远,谷歌的人工智能水平已经接近实用了,其他厂商还在表演阶段。
三、汽车中的Windows
通过上面的分析,我们可以看出。在从辅助驾驶到无人驾驶的探索道路上,目前谷歌处于最前方。
当其他厂商还在高度自动驾驶的第三个阶段探索时,谷歌已经在第四阶段耕耘了数年。当其他厂商还只能在高速路上表演时,谷歌已经解决了难度高百倍的城市道路驾驶。
而通过无人驾驶原理的研究,我们发现,谷歌现在的这套探索并不限于谷歌汽车,而且可以移植到任何一辆新款汽车上。
只要是主流以电传为操控方式的汽车,就可以把谷歌的信号采集、人工智能移植过来,要适应的只是不同汽车的动力、刹车和方向参数。
无论是电动车、燃油车、混合动力汽车,都可以毫无困难的移植上谷歌这套无人驾驶系统。
至此,谷歌的野心昭然若揭,谷歌不是要卖自家的无人驾驶汽车,而是要做出无人驾驶汽车中的Windows。
当谷歌成功之后,宝马、奔驰、奥迪、宾利、丰田、本田、日产、马自达、长城、长安、比亚迪、奇瑞,无论哪家汽车厂商,只要做无人驾驶功能,就必须用谷歌的方案,买谷歌的算法。这里面的利润是非常惊人的。
而谷歌无人驾驶是一套软硬件结合的方案,高度的人工智能必须有强大的处理器,通过无人驾驶的王牌,谷歌还可以顺便占领车机市场。也就是汽车中控台的这块屏幕,而这块屏幕可以用来O2O,再带来更多的附加效益。
谷歌不仅仅可以卖一次方案,后续的财源实际上是源源不断的,甚至可以产生多种商业模式。这才是谷歌的目的。
谷歌是一家伟大的公司,未来它会更多地改变我们的生活。
自动驾驶区别于其它工业机器人最重要的一点是安全性,一套算法一个功能需要长期在不同环境下测试,适应不同驾驶场景,我觉得目前自动驾驶的瓶颈在三点,第一定位,第二感知识别,第三智能决策。
做机器人的应该知道定位是机器人需要解决的的首要问题之一,普通gps定位精度是达不到无人车行驶要求的,目前大部分无人车上使用的是gps+imu,误差在米级,价格可以买一辆C级车了,进一步还有使用差分定位的,如RTK,PPP,误差可以控制在厘米级,但是这种定位方式在有遮挡的情况下误差无法满足汽车行驶需要,在高架下可能就扭起来了,在树林里多路经效应也会使精度大打折扣,总之外源定位信息有靠不住的时候,需要无人车能够进行自定位,即Localization,如果一辆车跑过一个环境想下次再跑时利用下那就需要构建这个环境的地图,即Mapping,综合起来就是SLAM,目前比较成熟的是使用激光雷达的slam方法,视觉的还处于实验室阶段。slam所需要面临的挑战也很多,动态目标的干扰、环境特征的缺失都会引入误差,做的比较好的是德国弗莱堡大学、CMU,斯坦福等,有一个法国企业叫Dibotics做的挺厉害,无人车可用的SLAM系统还需要继续研究,Google最新开源的slam算法效果如何还没有试过,估计现在不会把无人车应用级别的开源。
感知识别比较好理解,把交通环境中的各个要素信息提取出来,包括车道线识别、行人识别、车辆跟踪识别、红绿灯识别以及交通指示牌识别,目前的算法完成这些任务效果都比较好了,但所有的算法都有适用范围,单作为辅助驾驶的一个模块足够了,但自动驾驶场景太复杂,算法失效的结果会导致非常严重的后果(特斯拉车祸致死事故就是很好的代表),再强调一点行驶安全是最主要的,其它功能不过是景上添花。目前很多算法都是根据人的经验写就的,有很多没有考虑到的异常状况,这就需要大量的测试。现在深度学习算法比较流行,取得了很好的效果,它在自动驾驶中的作用我拭目以待。目前没有一套能够测试无人车性能的标准,什么时候能够达到人类驾驶水平是没有准确定义的,图灵测试对无人车的测试有效性我持怀疑态度,扯的远了,感知识别是目前人类正在攻克的一个难题。
决策是无人驾驶系统中最好实现的部分,但也是最难搞定的部分,简单点的一个交通规则集合就可以让一辆车跑起来,但深入下去会发现还有很多东西需要做,其他车辆的意图预测、驾驶行为的选择,以及自身驾驶行为对其它车辆的可理解性,前两个是我目前在做的课题,后一个是我时常思考的问题,有一辆车在减速左转,它是要换道还是掉头,如果它是在调头我该保持车速过去还是等它完成动作再过去,很多开车的人应该有体会,算是双方的博弈吧,谷歌16年2月14日的碰撞事故是意图判断错误导致的;如果无人车产品化,在未来一段时间人和无人车将会长期共存,无人车的驾驶行为需要被人理解。
自动驾驶是一个说小可小说大可大的topic,很久以前Stanford就已经拿mlp做end to end的自动驾驶了。当然那是个很粗糙的实现。近年也有不少end to end的工作,比如George Hotz的那套,NVIDIA那套,好像特斯拉也是吧。。。如果说要实现一个还“ok”的自动驾驶系统,学好cnn就够咯。
然而即使end to end的方法能够处理99%的情况,剩下的1%依然会造成大问题。Shashua在最近的几次报告里都说到目前自动驾驶还是有必要依照传统的perception-planning-controlling三步来,这三个subsystem应该就是题主想要的答案了。
再具体下去,perception部分SLAM算是一种解决办法,目前来看视觉辅助激光应该是短期内不会被替代的方案了,另外加上imu, 编码器, GPS等各种外部传感器的信息融合,感知部分基本上可以做到满足需求了。这里要学习的内容就包括计算机视觉,最优估计理论,以及各种传感器本身的特性。
planning部分,可以把它归结为一个搜索问题。就是在地图已知的情况下,可以把地图网格化,让机器人走格子。A*, D*, rrt这些都是常用的了。然而传统的方法在复杂的环境下依然解决的不是很好,解决思路可以参考deepmind最近玩游戏的几篇文章,目前这还属于未解决问题。这里要学习的内容主要常用的搜索算法,以及搜索规模难以控制之后的解决方法。
control部分我了解的不算多,经典的肯定当属PID了,而且在绝大多数情况下PID应该已经可以handle。更先进的方法肯定有,希望有懂的同学可以补充补充吧。按照我导师所说,控制应该算是已经解决的问题了,不需要太多的研究。
至于基础知识模电数电单片机,c语言数据结构算法,微积分线代概率论就必须要有概念了吧。。。不过术业有专攻,每一个方向深究下去还有很多很多需要学的,可以找一个感兴趣的方向深做下去。
“算法”一直是一个很值得一提的词汇,包括在课堂上、在办公室里,人们愿意提及算法这个词,因为算法大概是一个博硕研究生刚刚好能够掌握的课题和论文深入程度,是一个工程师刚刚好能够掌握的技术水平和工作量。
实际上,如果需要讨论自动驾驶技术,我觉得应该按照一个从上层到底层的顺序来理一下:
整车体系结构 — 子系统架构 — 控制策略 — 算法 — 代码
所以如果题主想要了解具体涉及哪些算法,有必要从整车体系结构开始。然而自动驾驶车辆的整车体系结构取决于开发者对整车的功能定义,也就是说对于自动驾驶车辆有不同的功能需求,整车的体系结构也有可能不同。比如目前谷歌的技术方案、特斯拉的技术方案、沃尔沃奔驰宝马奥迪的技术方案,实际上整车体系结构并不完全相同。可是如果想详细了解各家的技术方案,实际上非常困难,虽然动辄有人把图贴上来,实际上能了解到的最多是传感器布置,以及核心子系统的架构,整车的电气架构如何、通讯协议如何、各子系统有哪些模块、不同场景工况下有哪些策略,拿出一份不那么详尽的技术方案至少也要三五十页,如果想要全部调研清楚,首先不知道有没有咨询公司能接这个活,即使有的话我猜报价也得十万元起吧。
回到功能定义上来,谷歌的功能定义和特斯拉的功能定义实际上很不一样,技术思路也不一样。更多人认为谷歌的技术是真正的自动驾驶,实际上谷歌的技术方案是不计成本的,不仅仅是我们能见到的搭载在车上的昂贵的传感器组,还包括谷歌拥有的高精度街景地图和高精度定位,包括谷歌自动驾驶实验室满满一屋子的服务器每天总里程超过300万英里的仿真实验。单拿头顶上的64线激光雷达来说,目前全世界范围内大概只有谷歌的工程师能自信满满地说有成熟的算法来处理其每秒130万个点云数据。
而特斯拉的技术方案则更现实也更激进,一个摄像头+一个毫米波雷达(也有说三个毫米波雷达)加低精度定位就可以实现高速公路自动驾驶,得益于Mobileye先进的EyeQ4芯片技术(也有说是EyeQ3,国内目前普遍能拿到的都是EyeQ2,想拿到EyeQ3的样件费大约40万起),Mobileye的机器视觉算法不仅能识别车辆尾部特征还能识别车辆侧面特征,毫米波雷达的识别算法能够排除电磁信号的噪声和畸变,并且能够做到产品化开发,开发难度和技术信心并不低于谷歌的自动驾驶开发(特斯拉的实际道路测试超过2000万英里,谷歌道路测试约500万英里,数字不准确)。
回到正题,整车体系结构大致可以分为感知-规划-控制三个核心子系统,具体的电气架构和非核心模块就不细提了。每个核心子系统还可以细分,可以按照信息流向分为(我自己划分的所以可能不准确):
数据获取-数据融合-任务规划-路径规划-运动控制-底层执行
每一个模块都可以再细分,比如数据获取与融合,就可以根据技术方案有3D激光雷达、2D激光雷达、毫米波雷达、视觉传感器、超声波雷达以及(高精度或者低精度)定位,每一个传感器都有相应的策略和算法,不仅限于滤波,还包括时间戳同步、同组传感器阵列数据处理、整体传感器阵列数据融合等等。
题主是做机器人相关课题的,可能还是对规划和控制比较感兴趣,规划技术也有叫全局路径规划和局部路径规划的,全局路径规划类似于导航软件的功能,局部路径规划有所谓A星算法、预瞄算法等等,而运动控制又要对纵横向的运动控制细分,再往底层到执行机构方面,主动制动驱动系统、主动转向系统都有各自的算法。
所以题主可能发现了,我的回答并没有提及到底自动驾驶技术包括了哪些算法,甚至我在回答中提到的算法都没有问题描述中多,主要是因为自动驾驶技术是如此复杂,全部罗列出已经涉及到开发架构最低层的算法级别,需要极大的工作量。题主如果只是对个别算法感兴趣的话,可以按照上面列出来整体架构和功能需求再向下细分,查找一些论文来找到自己想了解的算法,或者直接根据策略需求来开发新算法;如果题主真的想把所有算法都列出来的话,建议找找咨询公司询问一下报价,如果真的有公司报价,麻烦请联系我一下,我也有这方面的需求。
另外还想说一点,知乎毕竟是免费的,知网上能够搜到的一些论文还是很有帮助的,中文论文推荐找一些参加过中国智能车挑战赛的博士生写的学位论文,这种论文论述比较完整,或者直接介绍参赛车辆的论文;英文论文推荐找找斯坦福、MIT、CMU介绍当年参加美国DARPA比赛车的论文,毕竟这些人参加完比赛就被整个团队挖到谷歌、奥迪等公司去了。
以上,希望能够有所帮助。
Miles Deep 使用了一个带有残差连接(residual connections)的深度卷积神经网络(DCNN),可以基于性行为(sexual act)将一段色情视频的每一秒分类成 6 种类别,其准确度高达 95%。然后它可以使用这种分类来自动编辑该视频。它可以移除所有不包含性接触的场景,或者编辑去掉一种特定的性行为。
Miles Deep 和雅虎最近发布的 NSFW 模型(见机器之心报道《雅虎开源首个色情图像检测深度学习解决方案》)使用了类似的架构,但不一样的是 Miles Deep 还能够区分裸体和多种特定的性行为之间的不同。就我所知,这是第一个公开的色情视频分类或编辑工具。
这个程序可以说是使用 Caffe 模型进行视频分类的一种通用框架,其使用了 C++ 的 batching 和 threading。通过替换权重、模型定义和 mean file,它可以立即被用于编辑其它类型的视频,而不需要重新编译。下面会介绍一个例子。
Miles Deep 项目地址:ryanjay0/miles-deep
雅虎 NSFW 模型地址:yahoo/open_nsfw
安装
Ubuntu 安装(16.04)
依赖包(Dependencies)
sudo apt install ffmpeg libopenblas-base libhdf5-serial-dev libgoogle-glog-dev
额外的 14.04 依赖包
sudo apt install libgflags-dev
CUDA(推荐)
如果要使用 GPU,你需要 Nvidia GPU 和 CUDA 8.0 驱动。强烈推荐;可提速 10 倍以上。这可以通过软件包安装或直接从 NVIDIA 下载:CUDA 8.0 Downloads
CUDNN(可选)
这是来自 NVIDIA 的额外的驱动,可以让 CUDA GPU 支持更快。在这里下载(需要注册):NVIDIA cuDNN
下载 Miles Deep
miles-deep (GPU + CuDNN)
miles-deep (GPU)
miles-deep (CPU)
也要下载这个模型。将 miles-deep 与该模型的文件夹放在同一个位置(而不是在模型文件里面)。
注:是在一个 GTX 960 4GB 上测试了一段 24.5 分钟长的视频
Windows 和 OSX
我目前还在开发用于 Windows 的版本。但我没有 Mac,不过应该只需要做一些小修改就可以在 OSX 上运行。编译指令如下。ryanjay0/miles-deep
使用方法
例子:
miles-deep -t sex_back,sex_front movie.mp4
这能找到后向和前向的性爱(sex from the back or front)场景,并输出结果到 movie.cut.avi
例子:
miles-deep -x movie.avi
这能编辑去除 movie.avi 中所有的非性爱场景,并将结果输出到 movie.cut.avi。
例子:
miles-deep -b 16 -t cunnilingus -o /cut_movies movie.mkv
这能将批大小(batch size)减小到 16(默认为 32)。筛选出舔阴(cunnilingus)的场景,结果输出到 /cut_movies/movie.cut.mkv
注:如果你的内存不够,可以减小批大小
在多种批大小情况下的 GPU VRAM 用量和运行时间:
该结果是在带有 4GB VRAM 的 Nvidia GTX 960 上测试得到的,样本是一段 24.5 分钟的视频文件。当 batch_size = 32 时,处理 1 分钟的输入视频大约需要 0.6 秒,也就是说每小时大约 36 秒。
除了 batching 之外,Miles Deep 还使用了 threading,这让其可以在分类的过程中截取和处理截图(screenshot)。
预测权重
这里是一个预测一段视频中每一秒的例子:
通过你自己的 Caffe 模型使用 Miles Deep
找猫
下面这个例子是如果通过你自己的模型(或一个预训练的模型)使用这个程序:
MODEL_PATH=/models/bvlc_reference_caffenet/
miles-deep -t n02123045
-p caffe/${MODEL_PATH}/deploy.prototxt
-m caffe/data/ilsvrc12/imagenet_mean.binaryproto
-w caffe/${MODEL_PATH/bvlc_reference_caffenet.caffemodel -l caffe/data/ilsvrc12/synsets.txt movie.mp4
这能找到在 movie.mp4 中的所有带有虎斑猫(tabby cat)的场景,并返回仅带有这些部分的结果 movie.cut.mp4。
代码中的 n02123045 是虎斑猫的类别。你可以在 caffe/data/ilsvrc12/synset_words.txt 查找这些类别的代码。你也可以使用一个来自 model zoo 的预训练的模型:BVLC/caffe
注:这个例子只是展示了其中的句法。但不知怎的,在我的经历中它的表现很差,很可能是因为分类有 1000 个。这个程序也能完美适合带有一个「other」类别的分类数量更小的模型。
模型
该模型是一个用 pynetbuilder 创建的带有残差连接(residual connections)的卷积神经网络(CNN)。这些模型都是 ImageNet 上预训练的。然后其最终层经过调整以适应新的分类数量和微调(fine-tuned)。
正如 Karpathy et al 的论文《Large-scale Video Classification with Convolutional Neural Networks》建议的那样,我训练了最上面 3 层的权重而不只是最顶层的,这稍微提升了一些准确度:
下面使用不同的模型微调最上面 3 层所得到的结果,该结果是在 2500 张训练图像上测试得到的,这些图像来自与训练集不同的视频。
训练损失和测试精度:
在所有测试的模型中,resnet50_1by2 在运行时间、内存和准确度上表现出了最佳的平衡。我认为全 resnet50 的低精度是因为过拟合(overfitting)的关系,因为它有更多的参数,也许其训练可以按不同的方式完成。
上面的结果是通过 mirroring 而非 cropping 得到的。使用 cropping 能够将在 resnet50_1by2 上的结果稍微提升至 95.2%,因此它被用作了最终的模型。
使用 TensorFlow 微调(fine-tuning)Inception V3 也能实现 80% 的准确度。但是,这是使用 299×299 的图像大小,而不是 224×224 的大小,也没有 mirroring 或 cropping,所以它们的结果不能直接进行比较。这个模型可能也会有过拟合的问题。
编辑电影
给定对于每一秒的帧的预测,它会获取这些预测的 argmax(最大值参数)并创建这段影片的截断块(cut blocks),其中的 argmax 等于目标(target),而其分数(score)也比一些阈值要大。其中的差距大小、匹配每个模块中目标的帧的最小比例(minimum fraction)和分数阈值(score threshold)都是可以调整的。FFmpeg 支持很多编解码器(codecs),包括 mp4、avi、flv、mkv、wmv 等等。
单帧 vs 多帧
这个模型并不使用任何时间信息,因为它分别处理每一张图像。Karpathy et al 的论文表明其它使用多帧(multiple frames)的模型的表现并不会好很多。它们难以应对相机的移动。将它们的慢融合模型(slow fusion model)与这里的结果进行比较仍然是很有趣的。
数据
其训练数据库包含了 36,000(和 2500 测试图像)张图像,分成了 6 个类别:
blowjob_handjob
cunnilingus
other
sex_back
sex_front
titfuck
这些图像的大小都调整为了 256×256,并且带有水平镜像(horizontal mirroring),并且为了数据增强(data augmentation)还随机剪切(cropping)成了 224×224 的大小。有很多实验没有剪切,但这能稍微提升 resnet50_1by2 的结果。
目前来说,这个数据集还受限于两个异性恋表演者。但鉴于这种方法的成功,我计划扩大分类的数量。因为这些训练很敏感,我个人并不会放出这些数据库;而只会提供训练出来的模型。
前向和后向性爱
这里的前向和后向性爱(sex front and back)是由相机的位置决定的,而非表演者的方向。如果女性表演者的身体面向相机,那么性器官的前面就展示了出来,这就是前向性爱(sex front)。如果女性的后面被展示了出来,就是后向性爱(sex back)。这创造了两种在视觉上不同的分类。其中在性交和肛交之间不做区分;前向性爱和后向性爱可能两者都包含。
编译
克隆包含 Caffe 作为外部依赖包的 git repository
按步骤指令(Caffe | Installation)安装 Caffe 依赖包以用于你的平台。Ubuntu 指令(Caffe)。默认的是 OpenBlas。不要担心编辑 Makefile.config 或使用 Caffe 的问题。在 Ubuntu 16.04 上尝试这个,并在其上附加依赖包:
sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install –no-install-recommends libboost-all-dev
sudo apt install libopenblas-dev python-numpy
#Add symbolic links for hdf5 library#(not necessary on LinuxMint 18)cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so libhdf5.so
sudo ln -s libhdf5_serial_hl.so libhdf5_hl.so
默认的是不带 CuDNN 的 GPU。如果你想用其它的工具,请编辑 Makefile 和 Makefile.caffe。注释掉和取消注释这两个文件中对应的行即可。
make
证书
代码(包括训练好的模型)按 GPLv3 授权。Caffe 使用的是 BSD 2 授权。
前几天,GitHub 用户 ryanjay0 开源了一个可以用来识别色情视频中特定类型的场景的人工智能项目 Miles Deep。该算法可以将你想看的类型的片段从完整视频中截取出来并生成一个集合了这些片段的新视频,让你可以不再为那些多余的片段烦恼。
http://mp.weixin.qq.com/s/b0vn1DQl2_F1-lbdlKVLtA
Github项目地址https://github.com/ryanjay0/miles-deep
这样大家以后就可以高速开车了,实现“无人驾驶” ,不过这个项目下面大家最关心的是让作者公开测试集 。
说实话,偏个题,虽然答了会掉粉,但是为了广大淫民的福利,为了教育你们这些技术宅,不得不说一下——用深度学习去搞AV的图像识别都弱爆了. 你们就没有抓住客户最核心的需求.
AV这个东西,是用来满足特定群体的需求的.
图像方面,如果是正规公司的作品,其实现在已经做的足够好了. 高清无码数位马赛克的都有,什么细分的品类都能满足. 如果加上VR,AR,AV的图像痛点其实已经很少了.
图像已经身临其境了,那么最大的痛点是什么——语音识别和自动翻译啊.
比如欧美和其他国家看岛国的片子,很多时候不知道女优在说什么. 而非英语母语的看欧美的,也不知道女优在说什么.
活塞运动所有花样都腻了,但很多有剧情的,千姿百态的同居生活,人妻,调情,前戏,叫床,明明也很有意思,却听不懂
以至于现在草榴AV发片都以标榜字幕来吸引点击率,而字幕都是瞎编的……. 根本对应不上.坑爹啊.
为什么中国的偷拍自拍视频近几年这么火,因为自带国语对白这个市场很大, 但是毕竟小作坊的产品跟专业公司去对比,画质清晰度拍摄角度都差远了,毫无美感,就是猎奇用用,解决了一个痛点带来了另一个更大的痛点.
那个技术宅能够用深度学习去做AV语音识别,把女优有意义的声音翻译成客户看的懂的字幕,或者把H游戏里面的声优声音翻译成看得懂的字幕. 就算收费都肯定赚疯了.
我代表广大人民对您说一句——
技术牛人您辛苦了!
好人一生平安!
世世代代子子孙孙都平安!
关于平台的选择和相应的学习教程,我放在最后,防止大图分散了重点。
先结合机器人来说一下控制。对于设计任何一个控制系统来说,需要了解自己的输入、输出、控制元件,和算法。在一个简易的机器人系统里,分别对应的原件是:
输入 — 传感器 (声呐,红外,摄像头,陀螺仪,加速度计,罗盘)
控制元件 — 电机
控制算法 — 控制板 (小到单片机,大到微机)
输出 — 你的控制目标 (比如机器人的路径跟踪)
对这四方面都有了解之后,才能基本对机器人的控制有一个较为感性的认识。这是入门的基础。如果你对输入和输出做一个测量,比如用电机将某个轮子的转速从10加速到100,把这个测量勾画出来,那么这一个响应曲线。如何将电机准确快速地从10加速到100,这就需要一个简易的反馈控制器。
上面所说的各个传感器元件,都有廉价版可以购买学习,但随之引入的问题就是他们不精确,比如有噪声。消除这个噪声,你就需要在你的控制系统中引入更多的控制单元来消除这个噪声,比如加入滤波单元。
上面说这么多,只是想表达,理论和算法都是有应用背景的,但同时,学习一些暂时无法应用的算法也并不助于入门,甚至可能走偏门,觉得越复杂越好。所有的工程应用者都会说某某算法非常好,但是经典还是PID。倘若不亲手设计一个PID系统,恐怕真的领略不到它的魅力。我大学本科的控制课程包含了自动控制理论和现代控制理论,但是直到我设计一个四旋翼无人机的时候,才真正建立了我自己对机器人控制的理解。
@曹梦迪 推荐的那本《现代控制工程》是一本非常经典的专业书籍,需要理论知识,再进行详细的学习。我的建议是先玩,玩到需要时,认真学习这部分理论。
—————————————————————————————————–
推荐一些机器人平台。核心都涉及到运动控制。
基于arduino的机器人平台是最大众的平台了,这是一个开源社区,很多关于机器人的简易设计和控制算法实现都能在google得到。淘宝arduino机器人,包括arduino控制板和各类简易传感器,几百块之内钱都能得到。
同时推荐一下Udacity上的Robotics课程,基于arduino也都能实现完成。
国外的有些Robotics课程使用的都是Lego Mindstorm作为实验平台(略土豪版)。红外,声呐,陀螺仪这些传感器Lego都有,同时它的电机也可以实现闭环控制。淘宝依旧可以买到lego mindstorm_淘宝搜索(海外代购版,我买过)
Imperial College London的Robotics课程就是以Lego为实验平台的,Andrew Davison的课件上所有的理论都可以用Lego实现Andrew Davison: Robotics Course
如果这些都玩腻了,可以试试玩一个机器人飞行控制,比如四旋翼飞机。飞行器是六自由度控制,因此比小车要更加具有挑战性,也需要更精确的控制系统。下面这是我以前的一个四旋翼DIY,基于arduino MultiWii的。依旧淘宝四旋翼飞行器 diy_淘宝搜索
MultiWii是一个基于arduino的开源飞控平台,所有c代码都可得,不多于一两万行。如果把这些都研究透了,相比已经是专业水平了。
—————————————————————————————————
首先,应当了解到:机器人控制(Robot Control)的目的是通过人工引入控制改善原有系统的特性,使新的系统:1)跟踪性能(Tracking Performance)更好,2)抗扰动性(Diturbance Rejection)更强,3)稳健性(Robustness)更优,e.t.c.
机器人控制大致可以分为硬件和算法两个大方向:
机器人控制硬件
基本控制结构:当年,N. Wiener对神经科学很感兴趣,发现其实机器的反馈控制和人的运动控制机理是相似的。控制工程中的:传感器(各种位置、速度、力传感器等)、控制器(各种处理器以及控制算法)和驱动器(电机、液压、气动、记忆合金等)三部分,分别对应于人的感受器(receptor)(例如:视觉、听觉、味觉、嗅觉、触觉等外感受器)、神经系统(中枢和周围神经系统)和效应器(effector)(肌肉、骨骼),只不过人的结构更加复杂。
层次控制体系:了解了控制的基本结构,剩下的事情就是设计控制系统。如今,大家设计控制系统的方法还是比较统一的,基本都可以归结为5层的层次体系:1)主机 (Host),2)运动控制器(Motion Controller),3)伺服驱动器(Servo Driver),4)电机(Motor),5)机构(Mechanism )。
主机:主要完成人机交互(操作员控制或者调试机器),高级运算(机器人运动规划等)。由于需要高等运算功能,这部分算法通常是基于操作系统的,硬件载体用通用计算机即可。
运动控制器:主要用于改善机器人动力学(Robot Dynamics)。机器人的机械本身并不具备跟踪轨迹的能力,需要外加控制来改善。由于需要大量的实时运算,这部分通常是基于实时操作系统,比如QNX等,硬件载体可以用ARM或其他。比如,工业界的工业机器人主要使用运动反馈(Motion Feedback),也即将驱动器配置为位置控制或者速度控制模式,此时运动控制器的主要用于补偿传动系统非线性性,例如:由于齿轮间隙、微小弹性变形导致的末端偏移。
伺服驱动器:主要用于改善电机动力学(Motor Dynamics)。由于电机本身物理特性并不具备良好的位置、速度和力矩跟踪能力,因此需要依靠控制来改善。这部分需要更高的实时性能,因为电机的响应速度快,需要us级定时,所以可以使用高性能DSP。比如,直流有刷电机中转子速度正比于反向电动势、力矩正比于电枢电流,而没有物理量能够直接控制位置,此时需要外加位置控制器。
电机:充当执行器,将电信号转化为机械运动。
机械本体:被控制的终极对象。
算法的编写:鉴于如今几乎没人再用Op-Amp搭建模拟计算机的事实,可以说算法就是个编程问题。基本的编程语言能力,比如MATLAB、C、C++是必须的。设计好算法之后,还需面对另外几个问题:
离散化问题(Discretization):连续算法的离散化是必要的,因为如今计算机都是数字系统。对于线性系统,比如电机控制,方法当然就是从s域(传递函数)到z域(Z变换)再到t域(差分方程)的变换,非线性的就得研究微分方程的各种数值方法了。
混合控制问题(Hybrid Control):几乎当前所有的机器人控制系统都不仅有一个控制模式,比如:回初始位置、运动控制模式、人工试教模式等等,每个模式需要特殊的控制算法。单个系统存在多个控制器时被称为混合控制系统,混合控制系统常常使用有限状态机(Finite State Machine, FSM)建模,状态机的切换需注意一些问题,比如芝诺问题。
通信问题(Communication):通常机器人系统都包含几十个,甚至上百个传感器以及几个到十几个驱动器,通信时常是个头疼的问题。问题的复杂性源于:通信对象多(并发问题),顺序需要协调(时序问题),通信的速率需要兼顾(阻塞问题)。个人倾向于使用基于“事件驱动模型”+“有限状态机模型”的混合模型来处理此类问题。
机器人控制理论:控制方法千奇百怪,这里仅举机器人臂的两个比较经典而常用的方法:混合力位控制和阻抗控制。
混合力/位控制(Hybrid Force/Position Control)是Mark Raibert(现今Boston Dynamics老板)和John Craig于70s末在JPL的工作成果,当时他们是在Stanford臂上做的实验,研究例如装配等任务时的力和位置同时控制的情况。
阻抗控制(Impedance Control)是 N.Hogan的工作成果。维纳晚年,对人控制机器臂很感兴趣。后来,他组织了MIT的Robert Mann,Stephen Jacobsen等一伙人开发了基于肌肉电信号控制的假肢臂,叫Boston Elbow。后来,Hogan继续Mann的工作,他觉得假肢是给人用的,不应当和工业机器人一样具有高的刚度,而应该具有柔性,所以后来引入了阻抗。
其他控制。
建议:自己也在钻研,共同学习吧。
首先,把描述机器人运动学和力学搞定。J.J. Craig出版于80s的《Introduction to Robotics: Mechanics and Control 》,或者R. Murray出版于90s的《A Mathematical Introduction to Robotic Manipulation》都行。对于机器人的数学基础,最新的成就是基于Differentiable Manifold(微分流形)、Lie group(李群)和Screw Theory(旋量理论)的。在这方面,个人认为以下研究团队奠定了机器人的数学基础理论:
1) Harvard的Roger Brokett教授及其学生Frank Chongwoo Park等;
2) UC Berkeley的Shankar Sastry教授及其学生Richard Murray,Zexiang Li等。
3) uPenn的Vijay Kumar教授,他和他的学生Milos Zefran以及Calin Belta在90年代研究了基于Differentiable Manifold的单刚体运动学和动力学。
4)上述2)中Richard Murray的学生Andrew Lewis和Francesco Bullo等研究了基于differentiable manifold和Lagrange Mechanics的机器人动力学以及几何控制理论(Geometric Control Theory)。
再次,必要的反馈控制基础当然是不能少的。关于控制,并不推荐把下面的教材通读一遍,仅需要了解必要的控制理念即可。陷入繁杂的细节往往不得要领,并浪费时间。具体的问题需要研读论文。
首先,要建立控制理论的基本概念,如状态方程、传递函数、前馈、反馈、稳定性等等,推荐Stanford大学教授Franklin的《Feedback Control of Dynamic Systems》;
关于机器人控制的入门读物,解释的最清晰的当属MW Spong的《Robot modeling and control》,书中不仅详细讲解了基于机器人动力学的控制,也讲解了执行器动力学与控制(也即电机控制)。
关于非线性控制理论,推荐MIT教授J.J.E. Slotine的《Applied Nonlinear Control》。
最后,如果是广大的Ph.D.朋友们,硬件就不必玩了,直接上paper吧。读paper,读各种牛人的paper。发paper,最好往ICRA和IJRR里面灌水。P.S.:被paper虐的吐了一口老血:-)
关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者。
这里有几个原因:
1.深度学习确实需要一定的数学基础。如果不用深入浅出地方法讲,有些读者就会有畏难的情绪,因而容易过早地放弃。
2.中国人或美国人写的书籍或文章,普遍比较难一些。我不太清楚为什么,不过确实是这样子的。
深度学习,确实需要一定的数学基础,但真的那么难么?这个,还真没有。不信?听我来给你侃侃。看完,你也会觉得没那么难了。
本文是针对初学者,高手可以无视,有不对的地方,还请多多批评指正。
这里,先推荐一篇非常不错的文章:
《1天搞懂深度学习》,300多页的ppt,台湾李宏毅教授写的,非常棒。
不夸张地说,是我看过最系统,也最通俗易懂的,关于深度学习的文章。
要说先准备什么,私以为,其实只需要知道导数和相关的函数概念就可以了。高等数学也没学过?很好,我就是想让文科生也能看懂,您只需要学过初中数学就可以了。
其实不必有畏难的情绪,个人很推崇李书福的精神,在一次电视采访中,李书福说:谁说中国人不能造汽车?造汽车有啥难的,不就是四个轮子加两排沙发嘛。当然,他这个结论有失偏颇,不过精神可嘉。
导数是什么,无非就是变化率呗,王小二今年卖了100头猪,去年卖了90头,前年卖了80头。。。变化率或者增长率是什么?每年增长10头猪,多简单。这里需要注意有个时间变量—年。王小二卖猪的增长率是10头/年,也就是说,导数是10.
函数y=f(x)=10x+30,这里我们假设王小二第一年卖了30头,以后每年增长10头,x代表时间(年),y代表猪的头数。
当然,这是增长率固定的情形,现实生活中,很多时候,变化量也不是固定的,也就是说增长率也不是恒定的。比如,函数可能是这样: y=f(x)=5x²+30,这里x和y依然代表的是时间和头数,不过增长率变了,怎么算这个增长率,我们回头再讲。或者你干脆记住几个求导的公式也可以。
深度学习还有一个重要的数学概念:偏导数,偏导数的偏怎么理解?偏头疼的偏,还是我不让你导,你偏要导?都不是,我们还以王小二卖猪为例,刚才我们讲到,x变量是时间(年),可是卖出去的猪,不光跟时间有关啊,随着业务的增长,王小二不仅扩大了养猪场,还雇了很多员工一起养猪。所以方程式又变了:y=f(x)=5x₁²+8x₂ + 35x₃ +30
这里x₂代表面积,x₃代表员工数,当然x₁还是时间。
上面我们讲了,导数其实就是变化率,那么偏导数是什么?偏导数无非就是多个变量的时候,针对某个变量的变化率呗。在上面的公式里,如果针对x₃求偏导数,也就是说,员工对于猪的增长率贡献有多大,或者说,随着(每个)员工的增长,猪增加了多少,这里等于35—每增加一个员工,就多卖出去35头猪. 计算偏导数的时候,其他变量都可以看成常量,这点很重要,常量的变化率为0,所以导数为0,所以就剩对35x₃ 求导数,等于35. 对于x₂求偏导,也是类似的。
求偏导我们用一个符号 表示:比如 y/ x₃ 就表示y对 x₃求偏导。
废话半天,这些跟深度学习到底有啥关系?有关系,我们知道,深度学习是采用神经网络,用于解决线性不可分的问题。关于这一点,我们回头再讨论,大家也可以网上搜一下相关的文章。我这里主要讲讲数学与深度学习的关系。先给大家看几张图:
图1. 所谓深度学习,就是具有很多个隐层的神经网络。
图2.单输出的时候,怎么求偏导数
图3.多输出的时候,怎么求偏导数。后面两张图是日语的,这是日本人写的关于深度学习的书。感觉写的不错,把图盗来用一下。所谓入力层,出力层,中间层,分别对应于中文的:输入层,输出层,和隐层。
大家不要被这几张图吓着,其实很简单的。干脆再举一个例子,就以撩妹为例。男女恋爱我们大致可以分为三个阶段:
1.初恋期。相当于深度学习的输入层。别人吸引你,肯定是有很多因素,比如:身高,身材,脸蛋,学历,性格等等,这些都是输入层的参数,对每个人来说权重可能都不一样。
2.热恋期。我们就让它对应于隐层吧。这个期间,双方各种磨合,柴米油盐酱醋茶。
3.稳定期。对应于输出层,是否合适,就看磨合得咋样了。
大家都知道,磨合很重要,怎么磨合呢?就是不断学习训练和修正的过程嘛!比如女朋友喜欢草莓蛋糕,你买了蓝莓的,她的反馈是negative,你下次就别买了蓝莓,改草莓了。
深度学习也是一个不断磨合的过程,刚开始定义一个标准参数(这些是经验值。就好比情人节和生日必须送花一样),然后不断地修正,得出图1每个节点间的权重。为什么要这样磨合?试想一下,我们假设深度学习是一个小孩,我们怎么教他看图识字?肯定得先把图片给他看,并且告诉他正确的答案,需要很多图片,不断地教他,训练他,这个训练的过程,其实就类似于求解神经网络权重的过程。以后测试的时候,你只要给他图片,他就知道图里面有什么了。
所以训练集,其实就是给小孩看的,带有正确答案的图片,对于深度学习而言,训练集就是用来求解神经网络的权重的,最后形成模型;而测试集,就是用来验证模型的准确度的。
我们知道,像上面这样,从左至右容易算出来。但反过来呢,我们上面讲到,测试集有图片,也有预期的正确答案,要反过来求w1,w2……,怎么办?
绕了半天,终于该求偏导出场了。目前的情况是:
1.我们假定一个神经网络已经定义好,比如有多少层,每层有多少个节点,也有默认的权重和激活函数(后面讲)等。这个没办法,刚开始得有一个初始值。你喜欢一个美女,她也不是刚从娘胎里出来的,也是带有各种默认参数的。至于怎么调教,那就得求偏导。
2.我们已知正确答案,比如图2和3里的r,训练的时候,是从左至右计算,得出的结果为y,r与y一般来说是不一样的。那么他们之间的差距,就是图2和3里的E。这个差距怎么算?当然,直接相减是一个办法,尤其是对于只有一个输出的情况,比如图2; 但很多时候,其实像图3里的那样,那么这个差距,一般可以这样算,当然,还可以有其他的评估办法,只是函数不同而已,作用是类似的:
不得不说,理想跟现实还是有差距的,我们当然是希望差距越小越好,怎么才能让差距越来越小呢?得调整参数呗,因为输入(图像)确定的情况下,只有调整参数才能改变输出的值。怎么调整,怎么磨合?刚才我们讲到,每个参数都有一个默认值,我们就对每个参数加上一定的数值∆,然后看看结果如何?如果参数调大,差距也变大,你懂的,那就得减小∆,因为我们的目标是要让差距变小;反之亦然。所以为了把参数调整到最佳,我们需要了解误差对每个参数的变化率,这不就是求误差对于该参数的偏导数嘛。
关键是怎么求偏导。图2和图3分别给了推导的方法,其实很简单,从右至左挨个求偏导就可以。相邻层的求偏导其实很简单,因为是线性的,所以偏导数其实就是参数本身嘛,就跟求解x₃的偏导类似。然后把各个偏导相乘就可以了。
这里有两个点:
一个是激活函数,其实激活函数也没啥,就是为了让每个节点的输出都在0到1的区间,这样好算账嘛,所以在结果上面再做了一层映射,反正都是一对一的。由于激活函数的存在,所以在求偏导的时候,也要把它算进去,激活函数,一般用sigmoid,也可以用Relu等。激活函数的求导其实也非常简单:
求导: f'(x)=f(x)*[1-f(x)]
这个方面,有时间可以翻看一下高数,没时间,直接记住就行了。
至于Relu,那就更简单了,就是f(x) 当x<0的时候y等于0,其他时候,y等于x。
当然,你也可以定义你自己的Relu函数,比如x大于等于0的时候,y等于0.01x,也可以。
另一个是学习系数,为什么叫学习系数?刚才我们上面讲到∆增量,到底每次增加多少合适?是不是等同于偏导数(变化率)?经验告诉我们,需要乘以一个百分比,这个就是学习系数,而且,随着训练的深入,这个系数是可以变的。
当然,还有一些很重要的基本知识,比如SGD(随机梯度下降),mini batch 和 epoch(用于训练集的选择),限于篇幅,以后再侃吧。其实参考李宏毅的那篇文章就可以了。
这篇拙文,算是对我另一个回答的补充吧:
深度学习入门必看的书和论文?有哪些必备的技能需学习? – jacky yang 的回答
其实上面描述的,主要是关于怎么调整参数,属于初级阶段。上面其实也提到,在调参之前,都有默认的网络模型和参数,如何定义最初始的模型和参数?就需要进一步深入了解。
不过对于一般做工程而言,只需要在默认的网络上调参就可以了,相当于用算法;
对于学者和科学家而言,他们会发明算法,难度还是不小的。向他们致敬!
深度学习可以通过一些开源项目来实现。一些最流行的技术包括(但不限于):Deeplearning4j(DL4j),Theano,Torch,TensorFlow 和 Caffe。决定使用哪个框架的因素有:他们的技术目标,还有是否为低级别、是否作为学术研究或是否以应用程序为导向。以下是每个的概述:
DL4J:
基于 JVM
分布式
与 Hadoop 和 Spark 集成
Theano:
在学术界很受欢迎
相对的入门级
有 Python 和 Numpy 接口
Torch:
基于 Lua
Facebook 和 Twitter 使用的内部版本
包含预训练模型
TensorFlow:
谷歌撰写的 Theano 继承版本
有 Python 和 Numpy 接口
高度多线程
对于某些问题集可能运行速度稍慢
Caffe:
非通用。专注于机器视觉问题
在 C++中实现,速度非常快
不容易扩展
有 Python 接口
深度学习在线课程
谷歌和 Udacity 合作开发了免费在线深度学习课程(机器学习工程师(中/英)),这也是 Udacity 机器学习工程师 Nano 学位的构成部分。该课程面向经验丰富的软件开发人员,针对希望在机器学习或其子专业有所专长的人员。
另一个选择是非常受欢迎的 Andrew Ng 关于机器学习课程(Coursera | Online Courses From Top Universities. Join for Free),由 Coursera 和 Stanford 主办。
深度学习相关书籍
虽然许多深度学习课程对学习者的教育背景要求相当高,但 Grokking 深度学习(Grokking Deep Learning)这本书并非如此。用他们的话说:「如果你高中数学及格,并能熟练使用 Python,我就可以教你深度学习。」
另一本流行的书是 Deep Learning Book,内容正如其名。这是一本自下而上内容丰富的书,因为它涵盖了深度学习所需的所有数学知识。
深度学习简要(Deep Learning Simplified)是一个很棒的 YouTube 视频系列,将深度学习分解成日常的词语和概念。下面是该系列第一个视频:
物质组成视角:神经网络的学习过程就是学习物质组成方式的过程。
增加节点数:增加同一层物质的种类,比如118个元素的原子层就有118个节点。
增加层数:增加更多层级,比如分子层,原子层,器官层,并通过判断更抽象的概念来识别物体。
三、神经网络的训练
知道了神经网络的学习过程就是学习控制着空间变换方式(物质组成方式)的权重矩阵后,接下来的问题就是如何学习每一层的权重矩阵W。
如何训练:
既然我们希望网络的输出尽可能的接近真正想要预测的值。那么就可以通过比较当前网络的预测值和我们真正想要的目标值,再根据两者的差异情况来更新每一层的权重矩阵(比如,如果网络的预测值高了,就调整权重让它预测低一些,不断调整,直到能够预测出目标值)。因此就需要先定义“如何比较预测值和目标值的差异”,这便是损失函数或目标函数(loss function or objective function),用于衡量预测值和目标值的差异的方程。loss function的输出值(loss)越高表示差异性越大。那神经网络的训练就变成了尽可能的缩小loss的过程。
所用的方法是梯度下降(Gradient descent):通过使loss值向当前点对应梯度的反方向不断移动,来降低loss。一次移动多少是由学习速率(learning rate)来控制的。
梯度下降的问题:
然而使用梯度下降训练神经网络拥有两个主要难题。
1、局部极小值
梯度下降寻找的是loss function的局部极小值,而我们想要全局最小值。如下图所示,我们希望loss值可以降低到右侧深蓝色的最低点,但loss有可能“卡”在左侧的局部极小值中。
试图解决“卡在局部极小值”问题的方法分两大类:
调节步伐:调节学习速率,使每一次的更新“步伐”不同。常用方法有:
随机梯度下降(Stochastic Gradient Descent (SGD):每次只更新一个样本所计算的梯度
小批量梯度下降(Mini-batch gradient descent):每次更新若干样本所计算的梯度的平均值
动量(Momentum):不仅仅考虑当前样本所计算的梯度;Nesterov动量(Nesterov Momentum):Momentum的改进
Adagrad、RMSProp、Adadelta、Adam:这些方法都是训练过程中依照规则降低学习速率,部分也综合动量
优化起点:合理初始化权重(weights initialization)、预训练网络(pre-train),使网络获得一个较好的“起始点”,如最右侧的起始点就比最左侧的起始点要好。常用方法有:高斯分布初始权重(Gaussian distribution)、均匀分布初始权重(Uniform distribution)、Glorot 初始权重、He初始权、稀疏矩阵初始权重(sparse matrix)
2、梯度的计算
机器学习所处理的数据都是高维数据,该如何快速计算梯度、而不是以年来计算。
其次如何更新隐藏层的权重?
解决方法是:计算图:反向传播算法
这里的解释留给非常棒的Computational Graphs: Backpropagation
需要知道的是,反向传播算法是求梯度的一种方法。如同快速傅里叶变换(FFT)的贡献。
而计算图的概念又使梯度的计算更加合理方便。
基本流程图:
下面就结合图简单浏览一下训练和识别过程,并描述各个部分的作用。要结合图解阅读以下内容。但手机显示的图过小,最好用电脑打开。
收集训练集(train data):也就是同时有input以及对应label的数据。每个数据叫做训练样本(sample)。label也叫target,也是机器学习中最贵的部分。上图表示的是我的数据库。假设input本别是x的维度是39,label的维度是48。
设计网络结构(architecture):确定层数、每一隐藏层的节点数和激活函数,以及输出层的激活函数和损失函数。上图用的是两层隐藏层(最后一层是输出层)。隐藏层所用激活函数a( )是ReLu,输出层的激活函数是线性linear(也可看成是没有激活函数)。隐藏层都是1000节点。损失函数L( )是用于比较距离MSE:mean((output – target)^2)。MSE越小表示预测效果越好。训练过程就是不断减小MSE的过程。到此所有数据的维度都已确定:
训练数据:
权重矩阵:
偏移向量:
网络输出:
数据预处理(preprocessing):将所有样本的input和label处理成能够使用神经网络的数据,label的值域符合激活函数的值域。并简单优化数据以便让训练易于收敛。比如中心化(mean subtraction)、归一化(normlization)、主成分分析(PCA)、白化(whitening)。假设上图的input和output全都经过了中心化和归一化。
权重初始化(weights initialization):在训练前不能为空,要初始化才能够计算loss从而来降低。初始化决定了loss在loss function中从哪个点开始作为起点训练网络。上图用均匀分布初始权重(Uniform distribution)。
训练网络(training):训练过程就是用训练数据的input经过网络计算出output,再和label计算出loss,再计算出gradients来更新weights的过程。
正向传递:,算当前网络的预测值
计算loss:
计算梯度:从loss开始反向传播计算每个参数(parameters)对应的梯度(gradients)。这里用Stochastic Gradient Descent (SGD) 来计算梯度,即每次更新所计算的梯度都是从一个样本计算出来的。传统的方法Gradient Descent是正向传递所有样本来计算梯度。SGD的方法来计算梯度的话,loss function的形状如下图所示会有变化,这样在更新中就有可能“跳出”局部最小值。
更新权重:这里用最简单的方法来更新,即所有参数都
预测新值:训练过所有样本后,打乱样本顺序再次训练若干次。训练完毕后,当再来新的数据input,就可以利用训练的网络来预测了。这时的output就是效果很好的预测值了。下图是一张实际值和预测值的三组对比图。输出数据是48维,这里只取1个维度来画图。蓝色的是实际值,绿色的是实际值。最上方的是训练数据的对比图,而下方的两行是神经网络模型从未见过的数据预测对比图。(不过这里用的是RNN,主要是为了让大家感受一下效果)
注:此部分内容不是这篇文章的重点,但为了理解深层神经网络,需要明白最基本的训练过程。
若能理解训练过程是通过梯度下降尽可能缩小loss的过程即可。
若有理解障碍,可以用python实践一下从零开始训练一个神经网络,体会整个训练过程。若有时间则可以再体会一下计算图自动求梯度的方便利用TensorFlow。
结合Tensorflow playground理解5种空间操作和物质组成视角
打开网页后,总体来说,蓝色代表正值,黄色代表负值。拿分类任务来分析。
数据:在二维平面内,若干点被标记成了两种颜色。黄色,蓝色,表示想要区分的两类。你可以把平面内的任意点标记成任意颜色。网页给你提供了4种规律。神经网络会根据你给的数据训练,再分类相同规律的点。
输入:在二维平面内,你想给网络多少关于“点”的信息。从颜色就可以看出来,左边是负,右边是正,表示此点的横坐标值。同理,表示此点的纵坐标值。是关于横坐标值的“抛物线”信息。你也可以给更多关于这个点的信息。给的越多,越容易被分开。
连接线:表示权重,蓝色表示用神经元的原始输出,黄色表示用负输出。深浅表示权重的绝对值大小。鼠标放在线上可以看到具体值。也可以更改。在(1)中,当把输出的一个权重改为-1时,的形状直接倒置了。不过还需要考虑激活函数。(1)中用的是linear。在(2)中,当换成sigmoid时,你会发现没有黄色区域了。因为sigmoid的值域是(0,1)
(1)(2)
输出:黄色背景颜色都被归为黄点类,蓝色背景颜色都被归为蓝点类。深浅表示可能性的强弱。上图中所有在黄色背景颜色的点都会被分类为“黄点“,同理,蓝色区域被分成蓝点。在上面的分类分布图中你可以看到每一层通过上一层信息的组合所形成的。权重(那些连接线)控制了“如何组合”。神经网络的学习也就是从数据中学习那些权重。Tensorflow playground所表现出来的现象就是“在我文章里所写的“物质组成思想”,这也是为什么我把Tensorflow playground放在了那一部分。
不过你要是把Tensorflow的个名字拆开来看的话,是tensor(张量)的flow(流动)。Tensorflow playground的作者想要阐述的侧重点是“张量如何流动”的。
5种空间变换的理解:Tensorflow playground下没有体现5种空间变换的理解。需要打开这个网站尝试:ConvNetJS demo: Classify toy 2D data
左侧是原始输入空间下的分类图,右侧是转换后的高维空间下的扭曲图。
最终的扭曲效果是所有绿点都被扭曲到了一侧,而所有红点都被扭曲到了另一侧。这样就可以线性分割(用超平面(这里是一个平面)在中间分开两类)
四、“深层”的思考:真的只有这些原因吗?
文章的最后稍微提一下深层神经网络。深层神经网络就是拥有更多层数的神经网络。
按照上文在理解视角中所述的观点,可以想出下面两条理由关于为什么更深的网络会更加容易识别,增加容纳变异体(variation)(红苹果、绿苹果)的能力、鲁棒性(robust)。
数学视角:变异体(variation)很多的分类的任务需要高度非线性的分割曲线。不断的利用那5种空间变换操作将原始输入空间像“捏橡皮泥一样”在高维空间下捏成更为线性可分/稀疏的形状。
物理视角:通过对“抽象概念”的判断来识别物体,而非细节。比如对“飞机”的判断,即便人类自己也无法用语言或者若干条规则来解释自己如何判断一个飞机。因为人脑中真正判断的不是是否“有机翼”、“能飞行”等细节现象,而是一个抽象概念。层数越深,这种概念就越抽象,所能涵盖的变异体就越多,就可以容纳战斗机,客机等很多种不同种类的飞机。
然而深层神经网络的惊人表现真的只有这些原因吗?
为什么神经网络过深后,预测的表现又变差? 而且这时变差的原因是由于“过深”吗?
接下来要写的《深层学习为何要“Deep”(下)》是关于“深层”二字的进一步思考,找出所有网络结构的共性,并解释设计神经网络的本质是什么。
附带:知乎不支持动态图这一点让文章对问题的解释大打折扣。
我在gitbook上也有编辑,深层学习为何要“deep”,对于文章当中的几个动态图,一定一定要去感受一下。喜欢csdn的也可以在这里JYango’s阅读。
编辑于 2016-11-14 19 条评论 感谢 分享 收藏 • 没有帮助 • 举报 • 作者保留权利
21
赞同反对,不会显示你的姓名
匿名用户
21 人赞同
CNN的入门可以参考今年斯坦福刚开的一门课,slides和一些资料可以从课程主页下载到:
Stanford University CS231n: Convolutional Neural Networks for Visual Recognition
发布于 2015-06-13 8 条评论 感谢 分享 收藏 • 没有帮助 • 举报 • 作者保留权利
69
赞同反对,不会显示你的姓名
田雷 CS PhD@Bupt, Deep Learning and Compute…
69 人赞同
Deep Learning还需要入门?!俺们都是用踹门的!
开个小玩笑!
如果你想了解理论的东西,可以直接看UFLDL教程 – Ufldl
如果你是在读硕士或博士的话,看完UFLDL教程后,先看看LeNet5那篇文章热热身,然后建议你直接看看Hinton et al <ImageNet classification with deep convolutional neural networks>和最近港文的王小刚老师和FaceBook的杨铭老师的相关工作!都在LFW数据库上得到了很好的效果!
而实际代码的东西,目前Caffe BVLC/caffe · GitHub和MatConvNet http://www.vlfeat.org/matconvnet/都是比较好的框架!前者是基于C++代码,提供了Matlab和python的接口,而后者是Matlab的代码,在学术界的影响力不如caffe!但两者作为入门都绝对够了!而caffe更好的一点在于,它能够让你在大框架不变的情况下,fine-tunning你自己的数据库,得到对应的model。但效果估计不好,主要原因是理想的模型是需要与数据的分布与规模 相match,否则要么over-fitting,要么under-fitting。
在看完最基本的DL内容后,这两个框架均不难理解~但对于不同情况下的Train model的生成,如上所述,则是个经验活!
发现回答以后评论与关注也较多,现在经过一年学习回头来看确实这个答案不适合扎实的新手入门,有一些误导。特此修正。我想让答案尽可能短,看起来不吓人。
——————————–
我入门CV时清华的朋友给的资料,帮助十分大!十分适合新手入门!
我是本科EE入门的,所以应该没有底子比我差的了。
————————-速成的道路—————
0、Andrew Ng的机器学习部分内容(机器学习介绍,回归问题与梯度下降,过拟合欠拟合)
英文能力足够推荐英文版:Machine Learning
(中文版对应网易公开课斯坦福大学公开课 :机器学习课程)
(中英链接里的章节貌似不对应,按内容看)
1.UFLDL: http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
Neural Networks
Backpropagation Algorithm
看这两部分内容
2.CMU Advanced Introduction to Machine Learning PPT: http://www.cs.cmu.edu/~epxing/Class/10715/lectures/DeepArchitectures.pdf
这是一门Machine Learning课程中讲到CNN的部分
3.CAFFE: Caffe | Caffe Tutorial
CAFFE是一个常用的deep learning的软件工具,其页面上有deep learning的tutorial材料,同时想要深入了解具体实现的话可以直接阅读源代码
一个技术上认识DL(这里说CNN),的顺序是:
线性分类->感知机->梯度下降->神经网络->BP算法->三层全连接网络->CNN
感悟上认识DL的顺序是:
(生物基础)Hubel&Wiesel视通路研究 –>(计算机模拟)神经网络–>神经网络很好骗
–>神经网络一定要深吗?–>神经网络一定要深–>混沌理论&量子力学
提供一个特别的角度,从代码层面分析深度学习。
这只能当辅助材料,基础功还是要找正规的教材系统性学习。
我不是专业研究深度学习的,边学边写,发现 bug 请指教。
深度学习源码解读-ch0-talk is cheap – 黑客与画家 – 知乎专栏
深度学习源码解读-ch1-JSON is awesome – 黑客与画家 – 知乎专栏
深度学习源码解读-ch2-Caffe is coming – 黑客与画家 – 知乎专栏
深度学习源码解读-ch3-Caffe is brewing – 黑客与画家 – 知乎专栏
深度学习源码解读-ch4-Caffe 中的设计模式 – 黑客与画家 – 知乎专栏
CNN的tutorial,楼上各位说的已经很齐全了。
But talk is cheap, show me the code。自己徒手撸一遍很重要啊,开源的工具包工程量大,代码还是C++,看的眼花怎么办?
没错我就是来打广告的!!!:
一个简单的CNN实现(Python)
GitHub – Eniac-Xie/PyConvNet: Convolutional Neural Network for python users
现在有很多深度学习工具包各种C++各种第三方依赖,适合拿来跑实验却不适合拿来入门CNN。所以就用python写了一个简单的CNN,跑一跑mnist、cifar还是可以的。
评论区有知友提出im2col比较难看懂的问题,im2col是convolution层的核心操作,使我们可以用矩阵乘代替卷积计算,这样实现上更简单,不过也占用了更多的内存。
caffe中的im2col貌似使用了4层for循环,而我是用python实现的,大量的for循环会降低程序的效率,所以做了一些优化,不可避免的降低了代码的可读性。
深度学习是一门综合性的偏工程的学科,除了扎实的基础知识之外,更多的是需要极强的工程能力,对问题理解、抽象和建模的能力,以及综合运用多种工具把问题 解决掉的执行力。同时,深度学习兴起的时间比较短,很多人才刚刚热门,成为专家还需要一段时间,从而导致当前深度学习 人才紧缺的现状。
首先是数学基础,虽然这块的要求并不需要学的很深入,但基本的了解还是要的,如果能够较为深入的学习,在真正做分析和工程时的帮助也会比较大。如果是在校生,并且有志于深度学习方向,多花点时间在这上面是十分值得的。
1. 线性代数,矩阵和张量的计算
了解标量、矢量、矩阵和张量,对相关的运算(比如加法、乘法、转置等)比较熟悉,知道特征分解和奇异值分解是怎么回事等等。如果有时间,啃点书总没有坏处,比如Linear Algebra (豆瓣) ,和矩阵计算 (豆瓣) 。这两个公开课 可汗学院公开课:线性代数 和 麻省理工公开课:线性代数 ,有空看看也没啥坏处
2. 微积分
微积分应该是大学理工科必须的课程吧,求导是微积分里面最基本的概念了吧,在深度学习里也是基础之一,对其了解是必要的。如果有时间,还是啃书,柯朗的两卷本微积分和数学分析引论(第一卷) (豆瓣) 和 微积分和数学分析引论(第二卷) (豆瓣) 貌似是很经典的,有兴趣的可以啃啃。 麻省理工学院公开课:单变量微积分 和 麻省理工学院公开课:多变量微积分 这两个公开课讲的不错的,偶当年在地铁上看下来的,也是不容易啊。
3. 概率,统计和随机过程
几个基本的分布(如高斯分布,指数分布等)是需要了解的,条件概率之类的也得知道吧,贝叶斯是谁还是得认识一下的,大数定律和中心极限定理能够熟悉熟悉也是有帮助的,如果能够认识下马尔科夫,想来也是有帮助的。手头的书翻了下,貌似有 概率论沉思录 (豆瓣), 还有 随机过程 (豆瓣) 。网易公开课这类课程比较少啊,搜索了下,只有 可汗学院公开课:统计学 这个看起来有点意思(没看过,找个时间瞧瞧去)。
第 二块是机器学习的基础知识。深度学习是机器学习的一个分支,由于在图像识别语音识别机器翻译等多个地方的效果卓越而流行起来的。总体上,线性回归是机器学 习里最基本也是最常用的算法,直至2015年的时候,Google,百度等互联网公司在广告及其相关项目中所使用的最多的算法依然是线性回归,简单,可解 释和高效率是它的最大的优点。其他诸如过拟合和泛化,training,validation和testing等机器学习中最基本的概念也同时是深度学习 所必须的。其他诸如贝叶斯网络,svm,nn,k-means,mcmc,sgd,熵,分类和聚类,监督和无监督等算法和概念在大部分机器学习的书籍中都 或多或少涉及到。大部头书籍Pattern Recognition And Machine Learning (豆瓣)是最经典的书籍(没有)之一,斯坦福的经典教程UFLDL教程 – Ufldl 涉及到无监督学习和深度学习(与时俱进的比较快), 另外,公开课加州理工学院公开课:机器学习与数据挖掘 看看也会有所收获的。
1. 数据,training, validation和testing
2. 线性模型,classification和regression
3. 贝叶斯网络,SVM,马尔科夫随机场
4. cluster,k-means
5. 神经网络
第 三块是编程。纸上得来终觉浅,绝知此事要编程。在一个美帝总统奥巴马都学习编程,美帝监狱都开编程客的年代,一个搞深度学习的编程水平太差,也说不过去 吧。同时,深度学习在目前阶段,还是需要很大的计算力来支持的,对于稍微有点规模有点实用的场景,分布式和GPU都是需要涉及到的,编程语言的 话,C/C++肯定会涉及,Python估计也无法避免会遇到,java和lua等其他语言会一些则更好,至于世界上最好的语言PHP不会倒无关紧要。这 本书 深入理解计算机系统 (豆瓣) 有助于从各方面了解计算机,(特别是非计算机专业的)啃完后会受益匪浅。C和C++的书籍多如牛毛,C程序设计语言 (豆瓣) 和 C++ Primer 中文版(第 5 版) (豆瓣) 这两本书是我的偏好(想当年啃下后一本的时候,还是有点成就感的)。如果能够把 Learning Python (豆瓣) 和 SciPy and NumPy (豆瓣) 啃完,用起Python应该是能够得心应手的。至于cuda(进行GPU计算的),官方资料(https://developer.nvidia.com/cuda-zone )十分丰富,有需要就去看看好了。
第四块是深度学习(这个名字有点奇怪就是,不过都这么叫了,熟了就好了)。在不熟之前还生着的时候,深度学习有另外一个名称叫神经网络(不是神经病网络哦),貌似上个世纪后期的时候就火过一阵,奈何先驱约等于先去的意思,那个时候由于计算机的能力问题,没搞出啥好的效果,让位于一堆其他的机器学习算法。直到201×年,突然间,Hinton,Bengio,LeCun等人依靠强大的计算力让多层神经网络能够很好的运行,并且效果好的令人发指,于是乎大家才想起,原来神经病还能这么玩,然后大家就high起来了。wikipedia上dl的条目Deep learning 编辑的挺不错的,很适合作为入门材料,了解一下基本概念。LeCun,Bengio和Hinton合作的Nature的Review: Deep learning(https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf)应该是必读的文献之一吧,另外Bengio的Learning Deep Architectures for AI(http://sanghv.com/download/soft/machine%20learning,%20artificial%20intelligence,%20mathematics%20ebooks/ML/learning%20deep%20architectures%20for%20AI%20(2009).pdf ) 和Schmidhuber的Deep Learning in Neural Networks:An Overview(http://arxiv.org/pdf/1404.7828v4.pdf)也是了解这个领域的好文。不想看论文的,可以看看这个https://www.youtube.com/channel/UC9OeZkIwhzfv-_Cb7fCikLQ (基础+框架介绍)和 这个 https://www.youtube.com/playlist?list=PLE6Wd9FR–EfW8dtjAuPoTuPcqmOV53Fu(牛津大学的课程,国外大学的课程真是与时俱进,不知道国内大学是否有开课?)
接下来是不同领域的应用,印象中,深度学习首先是在图像识别和计算机视觉中火起来的,这篇ImageNet Classification with Deep Convolutional Neural Networks(http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)是dl在计算机视觉中应用的经典文章之一。自然语言处理方面,当年word2vec(https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf,)刚出来的时候,让一小撮土鳖大吃一惊,原来nlp还能这么玩。而这次alphaGo(Mastering the game of Go with deep neural networks and tree search: http://willamette.edu/~levenick/cs448/goNature.pdf)则让超越了码农群体之外的一大撮人大吃一惊,原来,围棋也有另一种玩法。
了解完了之后,就开始写代码。早些年呢,需要从0开始一把鼻涕一把泪的搬很多砖才能搞出一个能够work的东西。后来,不知道何年何月为了啥目的,各种开源框架纷纷冒出,现在随便花店心思,就能过搞出一个忽悠人的东西出来。这么些个 GitHub – BVLC/caffe: Caffe: a fast open framework for deep learning. GitHub – tensorflow/tensorflow: Computation using data flow graphs for scalable machine learning GitHub – Theano/Theano: Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. It can use GPUs and perform efficient symbolic differentiation. 和 GitHub – torch/torch7: http://torch.ch 以及更多的各种框架,就任君选择了。至于哪个好用,谁用谁知道。号称码神的jeff dean在韩国汉城的演讲中(https://www.youtube.com/watch?v=QSaZGT4-6EY),穿着那件TensorFlow的t恤,看起来还是蛮不错的。其实我蛮想知道的,AlphaGo是不是用tersorflow的?如果不是,为嘛不用?
第五块是领域知识,随便列举,有空的时候整理一下我自己做过的一些内容。
比如alphago,aja huang是业余6段的水平;
比如之前有个同事做色情图像识别,貌似天天看图片看到吐啊;
比如想在金融领域玩玩的,对金融也是得有所了解的
上述几个方面要(都)做的好的,算算人数也不会太多。而能够都做的好的,还不一定去干深度学习这事,比如有些人抱着白富美去做人生赢家去了,有些人游山玩水到处自拍显摆去了,剩下的也就寥寥无几了。
最近俩年我花了不少时间学习机器学习的东西,我现在建立了一套我自己的框架,刚刚整理出来,不便于上图就用问题描述一下,我认为每个人身处漩涡一定要找到自己的旋律,不然的话会没有方向感。我的框架如下。(我采用由下到上,由简单到复杂,由知识逐渐贴近猎头业务的方式来展开。)
1、窥探层,也是最底层。我看的是《Machine Learning in Action》和《Collective Intelligence Programming》,《Applied Predictive Modeling》,《Time Series with R》。仅仅是为了窥探的目的。
2、理论层,由最底层网上走的这一层。这层由大量的偏综述类的书籍构成,主要包括《PRML》,《MLAPP》,《ESL》,《Introduction to Machine Learning》by Ethem,《Machine Learning, A Probabilistic Approach》,《Pattern Classification》by Duda,《An Introduction to Statistical Learning with Applications in R》,《机器学习》by 周志华,《统计学习方法》by李航。这些书我刚开始的读法是集中精力读PRML,读到过半到了kernel部分就读不下去了,干脆改成同时读所有的理论书籍,但是以一本为主线。后来改成在整个框架里跳来跳去。
3、树杈层。在和理论层同一层级结合我自己的情况设立了俩个辅助性质的树杈层。一个树杈叫做工程树杈,由四本工程方面的书组成,分别是CSAPP,算法导论,编译原理,以及SCIP。另外的一个树杈叫数学树杈,由微积分(目前储备的书是Guichard的微积分),线性代数(目前的储备书目包括Done Right,还有Matrix Cookbook,以及Gilbert的书),概率与统计(这一块是我目前的重点,储备的数目比较多,Jaynes的书由于是Goodfellow等推荐的,而且初步看了一下更加接近直觉和贴近应用,我这几天翻的比较多。),优化等树杈组成。这俩个树杈目前我没有精读,属于哪里不会就去翻一下,然后再把线索集中到更有价值的线索上。
4、代码层。这层主要是编程语言,目前我列入的主要是Python,R,C++,以及MATLAB。
5、框架(Library)与工具层,主要包括Tensorflow,Numpy等Library以及Xgboost等。
6、产品源代码层。主要有机器翻译的Niutrans,山世光教授的人脸识别系统,Neural Talk等。
7、产品使用与专业书籍,专门Paper等。这个层虽然顺序在后,单是对于整个框架的搭建具有点睛作用。之前的所有层都或多或少的具有释放好奇心和打基础的作用,到了这一层的时候,基本上开始涉及到兴趣,用户,公司与团队,行业前景等方面的事情了,随着这个方面的深入了解,可能会引起整个所有之前提到的各层的重新搭建。也对下一层的具体内容设置提供指导。目前我关注的产品有机器翻译,ADAS,客服机器人,自动驾驶,无人机,医学影像大数据,搜索,推荐,计算广告,自动识别与检测等。
比如如果是对自动识别感兴趣的话,那么UFLDL,以及Deep Learning这样的书,以及经典的CNN的论文等就应该是重点。
8、动手层。相对于以前的所有层,这一层具备由理论和学术到工业界前进,由听别人讲,看别人怎么做到自己做一些东西的跨越的意义。我从知乎上看有前辈提到可以用Arduino,Makeblock,STM32等做一些东西了。
高等数学是基础中的基础,研究生以上级别的一切理工科都需要这个打底,数据挖掘、人工智能、模式识别此类跟数据打交道的又尤其需要多元微积分运算基础
线性代数很重要,一般来说线性模型是你最先要考虑的模型,加上很可能要处理多维数据,你需要用线性代数来简洁清晰的描述问题,为分析求解奠定基础
概率论、数理统计、随机过程更是少不了,涉及数据的问题,不确定性几乎是不可避免的,引入随机变量顺理成章,相关理论、方法、模型非常丰富(比如说问题里提到的贝叶斯网络),是个庞大的工具库,不可不会
再就是优化理论与算法,除非你的问题是像二元一次方程求根那样有现成的公式,否则你将不得不面对各种看起来无解但是要解的问题,优化将是你的GPS为你指路
有以上这些知识打底,就可以开拔了,针对具体应用再补充相关的知识与理论,比如说一些我觉得有帮助的是数值计算、图论、拓扑,更理论一点的还有实/复分析、测度论,偏工程类一点的还有信号处理、数据结构
0. Naive Bayes:不管你将来用不用这个分类器,NB都是你第一个需要尝试的分类器,如果一个分类器效果差于NB或者只是略好于NB,基本就可以不考虑了。
1. 线性分类器(包括LR和Linear SVM,记得先normalize数据),实现可以用liblinear (其中提供了各种正则形式)。这个方案我看到很多答案里都说的比较仔细了。
2. CART (Classification and Regression Tree),谁用谁知道。可能很多人都忽略了这个神器,Decision Tree往往会在你想不到的时候发挥出乎意料的作用,尤其是对高维数据。
3. 其他一些emerging的做法:Spectral Compressed Sensing,对频域做Convolutional Neural Network
最后,提醒一下:
1. 谨慎使用非监督降维,比如PCA,topic model,PMF。很可能的结果是你一降维,啥信息都没了,分类水平不如NB。
2. 一定要做cross validation
3. 别用强烈依赖数据Geometry的方法,比如Kernel SVM
数学方面:微积分、矩阵论
矩阵这一块,了解的越多对你推倒计算方面能力的提升提高非常多。当然,只想看懂不要求证明的话,本科的线性代数够用了(我指的是真的好好学线性代数…)
2. 凸优化
这一块的重要性非常显然了,比如你连牛顿法、梯度下降法、一维搜索等基本的凸优化都不了解 的话会非常吃力。但短期来说的话,基本上Boyd的convex optimization懂前三章就够用了。
3.概率、统计
对基本的期望啊mean啊之类的计算,极大似然,bayes,多元正太等很多相关方面的统计一定要比较熟悉,否则对涉及统计和对数据的直觉上会差很多。
4.泛函
我本科没好好学泛函,到学到一些ML的方法比如kernel相关的方法的时候就凸显出来对泛函不熟,对函数空间理解不够的话会比较吃力。但重要性上比如前面几个方面。
但我整体想说的是,对于大多数只学过微积分线性代数+基本统计的人不大会有时间和精力说把上面这些一门一门学了才开始学ML,大多数时候都是慢慢去补的。比如上面有人提到Andrew Ng的coursera课程上会有一些hangouts。这是一个很好的比较快速掌握急切所需的东西的方面。毕竟上面每一门课都需要花很多时间去学。但是,如果你能真的好好学了之后,再回过头来把ML再学一遍,你收获一定会多的多!
1 理解矩阵变换
矩阵变换简单的说就是x->Ax,A矩阵把原空间上的向量x映射到了Ax的位置,看似简单实在是奥妙无穷。
1.1 A可以是由一组单位正交基组成,那么该矩阵变换就是基变换,简单理解就是旋转坐标轴的变换,PCA就是找了一组特殊位置的单位正交基,本质上就是基变换。
1.2 A可以是某些矩阵,它们在某些特殊的方向上只对x做了收缩拉伸变换而没有改变方向,简单来说就是,这些特殊的方向x就是特征向量,而就是收缩拉伸的量,描述了这些特殊的方向上的变换后,其实我们很容易画出这种矩阵变换的几何图解。
1.3 A可以是投影矩阵,把x投影到某个直线上,或者某个subspace上,线性回归模型有最小二乘解释,最小二乘可以由极大似然函数推得,当然还能用投影矩阵解释。
2 理解(对称)矩阵的特征向量特征值分解
2.1 对称矩阵特征分解是理解多维高斯分布的基础
要理解多维高斯分布需要四个知识:等值面,对称矩阵特征分解,正交基变换,多维椭圆方程
2.2 对称矩阵特征分解
对称矩阵特征分解可以直截了当的导出矩阵对角化的公式,而对协方差矩阵的对角化又是PCA的核心数学知识
理解PCA的数学基础:协方差矩阵对角化,基变换矩阵。
3 一些线性代数的嗅觉素养
其实很多感觉是逐步形成的,
比如n维向量x乘以x的转置就是一个对称矩阵等…
4 本质
& 洞悉本质
下面抛开机器学习,回归到线性代数本身,
我现在回顾,还是可以清晰的感觉到,理解&掌握线性代数的几个不同的阶段(或者说坎在哪里),我把它们总结成几个小问题,大家也可以自测一下,如果你扪心自问能够很好的回答其中的某个问题,那么相当于你在线性代数的某一块知识领域里已经相对纯熟&洞悉到非常基础但是最核心的本质思想。
这种东西大学教材真的给不了,也不是你做几张线性代数试卷,考个100分能够比拟的,本质的东西需要思考,体会,顿悟,了然一笑,一切尽在不言中…话也说回来我痴迷机器学习原理,痴迷数学,说到底还是想要多体验这种感觉,会上瘾的…
问题一,你有感觉到某一类矩阵和矩阵相乘,其实就是解方程时的消元吗?
问题二,
你有发现解方程时对矩阵的操作,与消元法解方程的对应关系吗?
你有发现行列式的定义和性质,与消元法解方程的对应关系吗?
你有发现求逆矩阵与消元法解方程的对应关系吗?而奇异矩阵与这个消元法解方程又有什么关系呢?
你有发现非常自然的消元法解方程,是连结矩阵、行列式、逆矩阵这些概念线索和纽带吗?这么普普通通的消元法解方程是多少线性代数基础概念的核心啊!所有的东西都不是无中生有的,
线性代数的设定真的不是像国内那些垃圾教材里面描述的好像一只孙猴子一样,像直接从石头缝里蹦出来的啊!
问题三,
前面已经提到了,三种“理解矩阵变换”,你理解了吗?
问题四,
为什么行秩和列秩是一样的?涉及四个基本子空间(列空间,零空间,行空间,左零空间),这个东西是我最近才感悟到的。
线性代数部分先总结到这里,后面还有概率统计和微积分部分,就简略说一下,以后有时间再补充。
概率统计:
(1)
极大似然思想
(2)
贝叶斯模型
(3)
隐变量混合概率模型,EM思想
基础的典型分布是逃不过的,尤其高斯分布。
微积分:
主要体现在
极值问题 与 (条件)最优化问题
偏导数,梯度这两个概念必须深入人心
还有就是凸优化和条件最优化问题,这个是理解SVM,或者线性回归等等模型正则化的基础。。。
我的微信号mubing_s,我平日里如果某一块知识点(面)想清楚了,一遍会用白纸黑字写下来记录备忘,有机器学习 & 数学方面的,有兴趣想看的、想探讨同学,都欢迎加我哦,:-D
首先OCR是模式识别的一个领域,所以整体过程也就是模式识别的过程。其过程整体来说可以分为以下几个步骤:
预处理:对包含文字的图像进行处理以便后续进行特征提取、学习。这个过程的主要目的是减少图像中的无用信息,以便方便后面的处理。在这个步骤通常有:灰度化(如果是彩色图像)、降噪、二值化、字符切分以及归一化这些子步骤。经过二值化后,图像只剩下两种颜色,即黑和白,其中一个是图像背景,另一个颜色就是要识别的文字了。降噪在这个阶段非常重要,降噪算法的好坏对特征提取的影响很大。字符切分则是将图像中的文字分割成单个文字——识别的时候是一个字一个字识别的。如果文字行有倾斜的话往往还要进行倾斜校正。归一化则是将单个的文字图像规整到同样的尺寸,在同一个规格下,才能应用统一的算法。
特征提取和降维:特征是用来识别文字的关键信息,每个不同的文字都能通过特征来和其他文字进行区分。对于数字和英文字母来说,这个特征提取是比较容易的,因为数字只有10个,英文字母只有52个,都是小字符集。对于汉字来说,特征提取比较困难,因为首先汉字是大字符集,国标中光是最常用的第一级汉字就有3755个;第二个汉字结构复杂,形近字多。在确定了使用何种特征后,视情况而定,还有可能要进行特征降维,这种情况就是如果特征的维数太高(特征一般用一个向量表示,维数即该向量的分量数),分类器的效率会受到很大的影响,为了提高识别速率,往往就要进行降维,这个过程也很重要,既要降低维数吧,又得使得减少维数后的特征向量还保留了足够的信息量(以区分不同的文字)。
分类器设计、训练和实际识别:分类器是用来进行识别的,就是对于第二步,你对一个文字图像,提取出特征给,丢给分类器,分类器就对其进行分类,告诉你这个特征该识别成哪个文字。在进行实际识别前,往往还要对分类器进行训练,这是一个监督学习的案例。成熟的分类器也很多,什么svm,kn,神经网络etc。我当时不知天高地厚用经典bp神经网络去学习,结果……呵呵……
后处理:后处理是用来对分类结果进行优化的,第一个,分类器的分类有时候不一定是完全正确的(实际上也做不到完全正确),比如对汉字的识别,由于汉字中形近字的存在,很容易将一个字识别成其形近字。后处理中可以去解决这个问题,比如通过语言模型来进行校正——如果分类器将“在哪里”识别成“存哪里”,通过语言模型会发现“存哪里”是错误的,然后进行校正。第二个,OCR的识别图像往往是有大量文字的,而且这些文字存在排版、字体大小等复杂情况,后处理中可以尝试去对识别结果进行格式化,比如按照图像中的排版排列什么的,举个栗子,一张图像,其左半部分的文字和右半部分的文字毫无关系,而在字符切分过程中,往往是按行切分的,那么识别结果中左半部分的第一行后面会跟着右半部分的第一行诸如此类。
开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作。遇上0×10, 终端就换行,遇上0×07, 终端就向人们嘟嘟叫,例好遇上0x1b, 打印机就打印反白的字,或者终端就用彩色显示字母。他们看到这样很好,于是就把这些0×20以下的字节状态称为”控制码”。他们又把所有的空 格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,这样计算机就可以用不同字节来存储英语的文字了。大家看到这样,都感觉 很好,于是大家都把这个方案叫做 ANSI 的”Ascii”编码(American Standard Code for Information Interchange,美国信息互换标准代码)。当时世界上所有的计算机都用同样的ASCII方案来保存英文文字。
后来,就像建造巴比伦塔一样,世界各地的都开始使用计算机,但是很多国家用的不是英文,他们的字母里有许多是ASCII里没有的,为了可以在计算机 保存他们的文字,他们决定采用 127号之后的空位来表示这些新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一个状态255。从128 到255这一页的字符集被称”扩展字符集“。从此之后,贪婪的人类再没有新的状态可以用了,美帝国主义可能没有想到还有第三世界国家的人们也希望可以用到计算机吧!
等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存呢。但是这难不倒智慧的中国人民,我们不客气 地把那些127号之后的奇异符号们直接取消掉, 规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的 字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的”全角”字符,而原来在127号以下的那些就叫”半角”字符了。 中国人民看到这样很不错,于是就把这种汉字方案叫做 “GB2312“。GB2312 是对 ASCII 的中文扩展。
但是中国的汉字太多了,我们很快就就发现有许多人的人名没有办法在这里打出来,特别是某些很会麻烦别人的国家领导人。于是我们不得不继续把 GB2312 没有用到的码位找出来老实不客气地用上。 后来还是不够用,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字 符集里的内容。结果扩展之后的编码方案被称为 GBK 标准,GBK包括了GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。 后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,GBK扩成了 GB18030。从此之后,中华民族的文化就可以在计算机时代中传承了。 中国的程序员们看到这一系列汉字编码的标准是好的,于是通称他们叫做 “DBCS“(Double Byte Charecter Set 双字节字符集)。在DBCS系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里,因此他们写的程序为了支持中文处 理,必须要注意字串里的每一个字节的值,如果这个值是大于127的,那么就认为一个双字节字符集里的字符出现了。那时候凡是受过加持,会编程的计算机僧侣 们都要每天念下面这个咒语数百遍: “一个汉字算两个英文字符!一个汉字算两个英文字符……”
因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码,连大陆和台湾这样只相隔了150海 里,使用着同一种语言的兄弟地区,也分别采用了不同的 DBCS 编码方案——当时的中国人想让电脑显示汉字,就必须装上一个”汉字系统”,专门用来处理汉字的显示、输入的问题,但是那个台湾的愚昧封建人士写的算命程序 就必须加装另一套支持 BIG5 编码的什么”倚天汉字系统”才可以用,装错了字符系统,显示就会乱了套!这怎么办?而且世界民族之林中还有那些一时用不上电脑的穷苦人民,他们的文字又怎 么办? 真是计算机的巴比伦塔命题啊!
正在这时,大天使加百列及时出现了——一个叫 ISO (国际标谁化组织)的国际组织决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号 的编码!他们打算叫它”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode“。
unicode开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符,对于ASCII里的那些“半角”字符,unicode包持其原编码不变,只是将其长度由原 来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于”半角”英文符号只需要用到低8位,所以其高8位永远是0,因此这种大气的方案在 保存英文文本时会多浪费一倍的空间。
这时候,从旧社会里走过来的程序员开始发现一个奇怪的现象:他们的strlen函数靠不住了,一个汉字不再是相当于两个字符了,而是一个!是的,从unicode开始,无论是半角的英文字母,还是全角的汉字,它们都是统一的”一个字符“!同时,也都是统一的”两个字节“,请注意”字符”和”字节”两个术语的不同,“字节”是一个8位的物理存贮单元,而“字符”则是一个文化相关的符号。在unicode中,一个字符就是两个字节。一个汉字算两个英文字符的时代已经快过去了。
unicode同样也不完美,这里就有两个的问题,一个是,如何才能区别unicode和ascii?计算机怎么知道三个字节表示一个符号,而不是 分别表示三个符号呢?第二个问题是,我们已经知道,英文字母只用一个字节表示就够了,如果unicode统一规定,每个符号用三个或四个字节表示,那么每 个英文字母前都必然有二到三个字节是0,这对于存储空间来说是极大的浪费,文本文件的大小会因此大出二三倍,这是难以接受的。
unicode在很长一段时间内无法推广,直到互联网的出现,为解决unicode如何在网络上传输的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF-8就是每次8个位传输数据,而UTF-16就是每次16个位。UTF-8就是在互联网上使用最广的一种unicode的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII 码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中 文字符占3个字节)。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
—————————————————————–
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
一:字符集(Charset)
charset = char + set,char 是字符,set是集合,charset就是字符的集合。
字符集就是是这个编码方式涵盖了哪些字符,每个字符都有一个数字序号。
二:编码方式(Encoding)
编码方式就是一个字符要怎样编码成二进制字节序,或者反过来怎么解析。
也即给你一个数字序号,要编码成几个字节,字节顺序如何,或者其他特殊规则。
三:字形字体(Font)
根据数字序号调用字体存储的字形,就可以在页面上显示出来了。
所以一个字符要显示出来,要显示成什么样子要看字体文件。
综上所述,Unicode 只是字符集,而没有编码方式。
UTF-8 是一种 Unicode 字符集的编码方式,其他还有 UTF-16,UTF-32 等。
而有了字符集以及编码方式,如果系统字体是没有这个字符,也是显示不出来的。
为什么有了UTF-16, 还会有UTF-8呢? 干嘛搞这么多复杂的编码呢? 一种编码不很好么? 答案是为了节省带宽, 因为早期互联网带宽非常昂贵.
下面需要一些基础知识
a. 1 bit = 2种两种可能性
b. 1 byte = 8 bit
c. 1 byte = 2 ^ 8 次方 = 256 种可能性
d. 1 byte 可以给256个字符编码
e. byte = 字节
ok了, 接着往下讲
人们希望在一套系统里面能够容纳所有字符(Unicode), 但是一个字节, 2^8次方(256)个字符是不够的. 所以就有了 UTF-16, 2^16 (65536)个字符, 这样就够了. 一个字符对应一个数字.
因为大部分互联网资料是西文(英法德意西), 而这些西文用128个字符可以表示完, 人们想出一种办法, 具体看 @邱昊宇 的标识法.
结果是西文字符只用1 byte表示, 其他不常见的字符(中日韩阿拉伯文等), 用2-4 byte 表示.
因为早期互联网上大量都是英文和其他西文内容, 所以这样编码, 是有助于减少文件大小, 从而减少需要的带宽的. 而因为UTF-8在早期网页的通用性, 所以现在大家都沿用了下来.
从现在来看, 在今天图片语音视频占据了大量流量的互联网, UTF-8这个东西好像意义也不大了.
你看到的unicode字符集是这样的编码表:
I 0049
t 0074
‘ 0027
s 0073
0020
知 77e5
乎 4e4e
日 65e5
报 62a5
每一个字符对应一个十六进制数字。
计算机只懂二进制,因此,严格按照unicode的方式(UCS-2),应该这样存储:
I 00000000 01001001
t 00000000 01110100
‘ 00000000 00100111
s 00000000 01110011
00000000 00100000
知 01110111 11100101
乎 01001110 01001110
日 01100101 11100101
报 01100010 10100101
这个字符串总共占用了18个字节,但是对比中英文的二进制码,可以发现,英文前9位都是0!浪费啊,浪费硬盘,浪费流量。
怎么办?
UTF。
UTF-8是这样做的:
1. 单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
2. n个字节的字符(n>1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。
这样就形成了如下的UTF-8标记位:
0xxxxxxx
110xxxxx 10xxxxxx
1110xxxx 10xxxxxx 10xxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
… …
于是,”It’s 知乎日报“就变成了:
I 01001001
t 01110100
‘ 00100111
s 01110011
00100000
知 11100111 10011111 10100101
乎 11100100 10111001 10001110
日 11100110 10010111 10100101
报 11100110 10001010 10100101
和上边的方案对比一下,英文短了,每个中文字符却多用了一个字节。但是整个字符串只用了17个字节,比上边的18个短了一点点。
下边是课后作业:
请将”It’s 知乎日报“的GB2312和GBK码(自行google)转成二进制。不考虑历史因素,从技术角度解释为什么在unicode和UTF-8大行其道的同时,GB2312和GBK仍在广泛使用。
剧透:一切都是为了节省你的硬盘和流量。
[encoding] 文件编码(硬件传输存储、系统/应用软件解码)
包装层。文件编码可以有多层,比如最外面套的可以是传输储/存编码(也可以不套):
data:base64,…
https://…加密传输编码
chunked切片传输编码(Transfer-Encoding)
gzip压缩编码(Content-Encoding)
文件层。解读编码分为:
二进制文件(狭义),如:exe程序、mp3音乐、mp4视频、pdf文档(没错这不是普通文本文件)
[text/*]文本文件,如:txt、md、html、mhtml、css、json、js(所以text/javascript比application/javascript更合理;注意,这里重点是/前面的部分,后面的javascript已经不属于编码的范畴,只是文件内容的含义,与编码没有半毛钱关系。)
其实包装层和文本文件本质上也是二进制文件,因为计算机本身就是二进制的。所以上面提到的二进制其实是狭义的二进制。
单独指出包装层,是为了提示文件编码可以不止一层,否则有人就会困惑一个txt文件为什么编码会是gzip——这只是因为HTTP传输时最外层加了一层压缩,而标注编码总是从外而内的。
而单独指出文本文件,是因为文本文件这种二进制非常基础、常见,而且有很多独有的特性、遵循很多统一的规范。像pdf虽然最终可以显示文字,但这个过程技术上是不透明的。而文本文档可以不依赖于独特的解读软件而过得普遍的浏览。
不过事实上文本文档也有几种不同的编码方式(后文会谈到原因)。最开始文本文件就是ANSI编码,UTF-8是后来出现的(后文会结合字符集解释)。
简言之,UTF-8就是文件编码层次的概念,也是文本文件保存时选择的编码类型之一。
[character set] 字符集
计算机的发明。由于一个字节(Byte)有8位(bit),类似10101010,因此一个基本的存储单位能够表示2的8次方(即256)种字符,而基本的计算机字符(所谓的半角字符,说白了是发明计算机的美国常用的字符)用128个就表示完了,所以这时候不存在任何问题,一个字节(计算机存储单位)对应一个字符(人类自然语言文字中的单位),这套字符集被称为ASCII,包括了半角英文大小写、半角数字、半角表单符号等。闲得无聊的美国人还用多出来的一位作校验码,用于避免电路不稳定信号传输错误(其实是看着浪费不顺眼)。
(之所以一个字节不是7位,是考虑到2的整数幂,要么4位、要么16位,8位刚好够用,后文会看出幸好如此,否则很难想象有预留的先见之明,毕竟研究各国文化恐怕比发明计算机还麻烦。)
后来欧洲语言的扩充。计算机的世界化过程中,欧洲紧随其后。他们马上发现各种注音的拉丁语系字母无法表示,因此把后128位直接用上了,128+128,皆大欢喜。
(一方面这可以理解为目光短浅,另一方面也确实没有必要浪费更多空间。)
世界另一边象形文字的扩充。以中文为例,虽然比欧洲稍晚,但实际上应当与欧洲理解为第二传播梯队同期的各自闭门造车。由于中文太多,索性用多个计算机字节(两个)表示一个中文字符。为了避免与美国原始体系冲突,我们规定当一个字节在128以内时,还是原义;超出128的,需要与后面一个字节组合解读成一个字符。这样128瞬间变成了128*256,完全够用了。这套字符集命名以GB(国标)开头,有过几次扩充(GB2312、GBK、GB18030),相互不完全兼容,与欧洲扩展字符集自然也不兼容。注意中国人用计算机也是要处理拉丁文、日韩等文字的,所以其中并不只有中文,只是各国实现的标准不同。同期产生的还有Big5(港澳台地区繁体中文标准)、JIS(日本)等。
(表面上看起来各国各自为营很不合理,实际上一开始就要考虑所有问题会导致各自极其不合理,而事实上各自为营的发展速度和地位上升才是后一步的现实前提。)
世界统一标准。随着互联网的发展,计算机工业不再仅限于处理不同的文字,还必须用同一套方式处理。Universal Character Set,简称UCS,别名Unicode(实际是两个并行起草的字符集,快弄好了才发现彼此干脆合并了协议),应运而生。Unicode包罗万象,并预留好了无限扩展的方案。随着计算机硬件发展,这种通用方案虽然略浪费空间,却极大地节省了人的工作成本。
可见,Unicode是字符集层面的概念,处理的是每个汉字对应的计算机编号。
上面,基本从各自的角度,讲了Unicode作为字符集,与UTF-8作为文件编码的区别。
下面,谈谈二者的关联(如果是无关的不同,也不可能构成混淆):
ASCII字符集,最初的字符集,对应了ANSI文件编码,一个字符用一个字节表示,严格来说这个时候字符集和文本文件的编码并没有必要作为单独的概念加以区分;
西欧字符集、日韩、港澳台、国标字符集等,仍然使用了ANSI文件编码,其中部分字符集一个字符要用两个字节;
Unicode字符集,终于在完成了字符集层面的集大成后,开始反过头来规定适合自己的文件编码(保存为ANSI会丢失大量的新增扩展字符),即Unicode Transformation Format(Unicode转换格式,其中每种方案针对不同发展阶段的使用情境设计,在其针对的情况下都能够大幅度地减少常见字的空间占用):
UTF-32(= UCS-4 + 未来拓展保留):直接把毫不考虑空间占用的Unicode字符集编码数字保存起来,文件大很多,优点是每个字符都一定是用4个字节表示(8bit/Byte * 4Byte = 32bit)。
字符集作为信息处理层的规范,统一才是刚需,大大提升开发和运算效率;但是到了储存、网络传输层,这就成为了硬伤。
(事实上百万种文字的预留可能性在实际上会变成半数以上的零补位,直到外星文字出现——而真的出现了,恐怕又完全不够用或要协商甚至被迫采用新标准了,所以这种理论方案实际上没有用处。)
UTF-16(= UCS-2 + 配对处理能力):将2字节字符视为主流的方案,在表示英文时总是浪费一倍,在表示更罕见的字符时可能要超过4位;不论如何,总是2字节作为最小单位(8bit/Byte * 2Byte = 16bit)。
文本编辑器中的UTF-16选项通常写作“Unicode”或“Unicode big endian”(高低位顺序不同,后者与16进制Unicode编码的直观顺序一致)。
UTF-8:目前最主流的方案。虽然英文字符只有128个,但却占了主要的使用比例,因此默认单字节字符最常见、而将1字节作为编码单位的UTF-8成为了最现实而且通行的方案(8bit/Byte * 2Byte = 8bit)——既能表示各国文字,又以英文为主要使用情境而极大地节省了传输和存储的负担;说白了就是英文仍然占据主要地位。在中文为主的情况下,不如基于ANSI编码的国标字符集节省空间,也因此UTF-8在国内的推行用了很长的时间,不过使用UTF-8已经越来越利大于弊了。
(推行的速度其实不完全是观念问题,因为标准之为标准,本质与其说在于合理,更在于通行;而通行是以习惯和地位作为基础的。如果人们没有某种行为习惯,又怎么会产生针对这种行为习惯的行为规范呢?)
实例小结:
Transfer-Encoding: chunked
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
以上面这个常见的HTTP报头为例,
第一行的意思是,数据传输使用的是分片式的,最开始不能确定一共有多大,需要逐步接收;
接收完成后,第二行的意思是,收到的文件是被压缩过的,需要先用指定的gzip方式解压缩才能得到文件;
得到文件本身后,第三行的text部分告知这是一个文本文件;
UTF-8本身是文件编码信息,却写在charset(字符集)的位置,其实是暗示了其从属的Unicode字符集系统,同时又顺便指出了文件编码信息(因为二者是高度绑定的关系),从而正确获取了文件的文字内容;
(非网络环境下,本地文件因为没有HTTP报头,实际上是通过文件开始处的BOM信息确定具体是UTF-8、UTF-16还是UTF-32,其中UTF-8因为高地位无关,可以省略BOM)
最后,根据第三行的html部分得知,这个文件应该作为网页来显示。
下面是一个针锋相对的例子:
Content-Length: 1024
Content-Type: text/plain; charset=GB2312
第一行表示文件大小是确定的,收到1024字节的数据才算完成接收;
没有压缩编码提示,所以文件可以直接使用;
第二行的text表明这是一个文本文件;
GB2312字符集暗示了文件肯定是ANSI编码的,从而配合字符集正确获取了文件的文字内容;
最后,根据plain得知文件是一个普通文本文件,直接显示即可。
关于转义(escape):
HTML实体转义、编程中的字符串转义、URL网址转义都称为转义,但前两个属于字符集(char set)的范畴,而后者属于编码(encode)的范畴(编码用于文件储存、文件传输,以及此处的网址传输)。
HTML实体
龍 “龍”的Unicode编号是40845
或是:
龍 40845的16进制是9F8D,前面加x表示16进制
JavaScript字符串
"龍".charCodeAt(0)===40845;
String.fromCharCode(40845)==="龍";
0x9F8D===40845;
"龍".charCodeAt(0)===0x9F8D;
String.fromCharCode(0x9F8D)==="龍";
"u9F8D"==="龍";
URL
https://www.bing.com/search?q=龍
由于URL在传输中不支持中文,所以上面这个网址会被用UTF-8规则转码成:
https://www.bing.com/search?q=%E9%BE%8D
“龍”的UTF-8编码是“E9 BE 8D”。
早期百度使用的是GB字符集(ANSI)编码:
https://www.baidu.com/s?ie=gb2312&wd=%FD%88
“龍”的国标编码是“FD 88”,确实节省了空间,但现在已经非常不建议这样做了。
为什么业界不推荐中文编程,并应当坚持使用UTF-8编码?
阻碍世界范围内的合作开发项目,以及,出现编码错误(旧系统/基层编程环境不支持中文,其他国家用户未必安装了独特的字符集)。
unicode是一个字符集,里面几乎包含了目前世界上已知的所有字符,且该字符集将二进制代码和字符形成一一映射,即一个字符对应且只对应一个二进制代码,反过来,一个二进制代码对应且只对应一个字符。如果我们有一个字符,那么通过Unicode字符集很容易找到该字符对应的二进制码,但是,反过来,可能会出现混乱,为什么呢?情境如下:如果我们假设Unicode字符集有两个字符,比如说(这里我没有查阅Unicode字符集,虚构了两个,只是打个比方,请各位看官不要较劲):1100 1111 1111 0001 1111 0101 对应字符‘我’,一共三个字节,1100 1111 1111 0001对应字符‘你’,一共两个字节,恰好是‘我’这个字符二进制码的前两个字节。如果我们存的是‘我’即三个字节的那个代码,即1100 1111 1111 0001 1111 0101,然后让计算机进行解码时,它会从左向右依次读取一个数码,当读到1100 1111 1111 0001时它可能就停止,让‘你’这个字符与其对应,并不是我们当初想存的‘我’这个字符,只是因为这两个字符对应的二进制码前两个字节是一样的,这就是一个问题。Unicode字符集中对字符的编码是长度不确定的,其中有的字符是两个字符,有的是三个字符,这给计算机进行解码带来了困难(就像上述描述的情境),所以我们想给每个字符对应的二进制码前加上一个标记,让计算机看到这个标记就知道它将要读取几个字节,这样就防止了上述描述的两个字符因为前两个字节编码相同而误将三个字节的字符当成两个字节的字符读取了这种错误,那么这个标记该怎么加呢?这就导致人们引入UTF-8,它的英文全称是8-bit Unicode Transformation Format,可以看出它是将原本的Unicode码进行了transformation,这种transformation 就是给每个Unicode码进行标记,使得让计算机看到某个标记就知道待会要读取几个字节的代码,从而避免问题发生。因此,我觉得utf-8的引入,最重要的是避免我刚才所描绘的情景所发生的错误。
ASCII码跟Unicode没有本质的区别。只不过Unicode表示范围比ASCII大。ASCII可以表示127个英文字母,其中每个英文字母都有一个十进制编码,并且通过这个十进制编码转化成二进制数(编码)存入到内存当中(占1字节)。
而在Unicode中,英文字母的编码与其在ASCII中没有不同。只是Unicode每个字符占2个字节,于是转化为二进制时就变成‘000000 ASCII’。
同时Unicode支持中文字符以及其他字符的表示。这种非ASCII字符占用的内存更多一些。
而UTF-8则是在Unicode的基础上进行的再编码。其中对于字母的编码与Unicode和ASCII一致。
文本文档是用UTF-8编码保存的。这样可以最大限度的节省空间。但是当你对这个文本文档进行操作的时候,计算机是先把UTF-8转化为Unicode然后放到内存中,让用户进行操作,操作完成后在内存中还是Unicode模式。当你需要保存的时候在转化为UTF-8格式保存(节省空间)。
引申猜想:以前一直不明白为什么写代码不能用中文。比如定义函数要用"def"而不能用"定义"。现在明白了,如果一个程序用中文编写,那么会比用英文编写的程序大3到4倍。(不知道对不对呀~)