quetzalcoalt世界4第一马戏团第五关怎么过过

4 - 歌单 - 网易云音乐
播放:427次
喜欢这个歌单的人
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:&p&来晚了,补充几个常用的吧。&/p&&p&前面先附一个大佬的学术回答&a href=&/collection/& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/collection/99&/span&&span class=&invisible&&483610&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&另外问怎么在其他文献网站下载的胖友,如果你还是学生,请充分利用自己学校的资源。首先,校园网就够你用了,其次,大多网站你的学校都是有账号的,如果你不知道请问你的导师。&/p&&p&1、冰点文库(免费)&/p&&p&&b&冰点文库下载器&/b&可以下载百度文库,豆丁,畅享网,mbalib,hp009,mab.book118等文库文档且无需积分,无需注册和登录。生成pdf格式文档 ,只要把文档页面的网址复制到冰点文库下载器的输入框内,即可生成PDF文件,也可导出word文档。&/p&&p&是不是美滋滋啊朋友们。&/p&&p&&br&&/p&&figure&&img src=&/v2-de82e6ef828b_b.jpg& data-caption=&& data-rawwidth=&129& data-rawheight=&112& class=&content_image& width=&129&&&/figure&&p&&br&&/p&&p&有问怎么转word的胖友。是这样,当你下载并转换pdf完毕,右键文件名打开文件存放的文件夹,你会发现里面有pdf和txt两种格式。&/p&&p&例如:&/p&&br&&figure&&img src=&/v2-5ce43a50b61fc952e210b_b.jpg& data-rawwidth=&590& data-rawheight=&53& class=&origin_image zh-lightbox-thumb& width=&590& data-original=&/v2-5ce43a50b61fc952e210b_r.jpg&&&/figure&&br&&br&&figure&&img src=&/v2-bdeb07f8fef417f4d45b3fe10a8293cd_b.jpg& data-rawwidth=&542& data-rawheight=&585& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&/v2-bdeb07f8fef417f4d45b3fe10a8293cd_r.jpg&&&/figure&&br&&p&虽然,txt格式会比较乱并存在少部分乱码,但对我来说已经够用了。或者,直接用其他软件pdf转word,这种软件满大街都是啊!&/p&&p&2、文献免费&/p&&p&国内网址:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&国外网址:&a href=&///?target=http%3A//www.sci-hub.ac/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&sci-hub.ac/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&具体的操作方法请百度吧。&/p&&p&sci操作方法:&a href=&/p/& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&/p/24&/span&&span class=&invisible&&299207&/span&&span class=&ellipsis&&&/span&&/a&&/p&&figure&&img src=&/v2-7ece6ea308c1a88d17b3_b.jpg& data-caption=&& data-rawwidth=&873& data-rawheight=&554& class=&origin_image zh-lightbox-thumb& width=&873& data-original=&/v2-7ece6ea308c1a88d17b3_r.jpg&&&/figure&&figure&&img src=&/v2-5dc5b46f7d4c4afec977a49_b.jpg& data-caption=&& data-rawwidth=&903& data-rawheight=&431& class=&origin_image zh-lightbox-thumb& width=&903& data-original=&/v2-5dc5b46f7d4c4afec977a49_r.jpg&&&/figure&3、几万年前的图纸&br&去年我有段时间非常忙,有个图没时间画。就在tb找了个代画,结构尺寸基本示意图都告诉他了,也告诉他我急用,对方满口答应能在我交图前一天画好给我。然鹅,到了那天,他发给我的和我之前1.5买来参考的几万年前的图一毛一样。科科。1.5的还送了一个其他各种图纸的文件包。&br&&br&&figure&&img src=&/v2-9c00f42dfdb107b6b829_b.png& data-rawwidth=&1080& data-rawheight=&1235& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-9c00f42dfdb107b6b829_r.png&&&/figure&所以还是不要偷懒的好,即使有偿拜托身边的人帮忙,也最好别去tb,这些人大多不懂并且用老图交货,有良心的或许会给你改改。&br&&br&5、再补充一个图纸的。&br&&br&微小网:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&以前我是去沐风找参考图的,后来,因为穷…微小网有很多图是积分下载的,绑定账号送积分,每天签到送积分。&br&&br&6、快消品牌的童装&br&说出来你可能不信,童装真的可以满足多数成年人(女)的体型需求。除了裤子!!裤子甚买!!&br&比如zara的裙子,29块买的!!包邮!!实物也很美好。&br&&figure&&img src=&/v2-34b542de9b09df_b.png& data-rawwidth=&1080& data-rawheight=&686& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-34b542de9b09df_r.png&&&/figure&7、朋友圈所谓的手工,纯银的饰品&br&比如:(此处没在朋友圈找图因为我已经屏蔽了)&br&&figure&&img src=&/v2-7cd46ecde0e3f7c9b501f9c63c5ff438_b.png& data-rawwidth=&1080& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-7cd46ecde0e3f7c9b501f9c63c5ff438_r.png&&&/figure&&br&&figure&&img src=&/v2-c369ef1ec1ac84b1bab4_b.jpg& data-rawwidth=&750& data-rawheight=&750& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/v2-c369ef1ec1ac84b1bab4_r.jpg&&&/figure&实际上的成本&br&&figure&&img src=&/v2-d825558dadacf44a4b4fc28b9a0a6d5b_b.png& data-rawwidth=&1080& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-d825558dadacf44a4b4fc28b9a0a6d5b_r.png&&&/figure&有一个妹子,情人节的朋友圈,某某耳环特惠59两对包邮非偏远!不巧在下刚好也做过,成本每对仅3块而已。&br&&br&耳饰店铺:可可小筑。除了便宜没什么优点。买来玩可以。&br&&br&8、新疆的棉被&br&&br&&figure&&img src=&/v2-57dedcc9fcfb00f5047e93_b.png& data-rawwidth=&1080& data-rawheight=&831& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-57dedcc9fcfb00f5047e93_r.png&&&/figure&不想说什么了真的好用。就是快递在路上走了一万年。&br&&br&棉被店铺:你好阳光。现在已经涨价了。可以看看双十一会不会降价。&br&9、超便宜的护肤——维生素(全都是药店买的,几块到十几块一瓶)&br&vc,美白。我晒黑之后最快白回来的方法了。内服。一天一片。&br&ve,抗氧化。还小,暂时还没感觉。内服。一天一片。&br&vb6,修复皮肤。碾碎混在芦荟胶里去闭口。&br&&br&10、家庭用监控&br&&br&只需要一部有摄像功能的旧手机和一个app。&br&&br&app叫警猫眼。也有其他用的app。不过很多都是需要钱才可以用的。也有免费的。我懒就一直用这个。&br&&br&在旧手机上开启摄像端。在另一个电脑或手机上打开观看端,输入摄像端的id和密码,就可以监控了。&br&&br&我是用来看家喵每天在家干嘛的,万万没想到他只是睡觉。从早到晚。 (?????) &br&&br&&figure&&img src=&/v2-def17fb91aef014e3fd969d_b.png& data-rawwidth=&1080& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-def17fb91aef014e3fd969d_r.png&&&/figure&更新你们想要的猫片。ps.勿撕折耳。家喵是朋友寄养在我这的。买前朋友没注意是折耳。我们待家喵很好。&br&&figure&&img src=&/v2-39eaf1ce99f50f3a3ae6a3a72d5e98c3_b.jpg& data-rawwidth=&1532& data-rawheight=&2048& class=&origin_image zh-lightbox-thumb& width=&1532& data-original=&/v2-39eaf1ce99f50f3a3ae6a3a72d5e98c3_r.jpg&&&/figure&&br&&figure&&img src=&/v2-195fefdde05c20a9aa8362c_b.jpg& data-rawwidth=&1532& data-rawheight=&2048& class=&origin_image zh-lightbox-thumb& width=&1532& data-original=&/v2-195fefdde05c20a9aa8362c_r.jpg&&&/figure&&br&&figure&&img src=&/v2-4bf6da250febb76ed7e26b_b.jpg& data-rawwidth=&1734& data-rawheight=&1935& class=&origin_image zh-lightbox-thumb& width=&1734& data-original=&/v2-4bf6da250febb76ed7e26b_r.jpg&&&/figure&&br&震惊,知乎小透明首次破千赞,竟然是因为!&br&&br&&br&穷!!!!&br&&br&&figure&&img src=&/v2-4a37bd439b8f34ea6fc52_b.jpg& data-rawwidth=&720& data-rawheight=&706& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-4a37bd439b8f34ea6fc52_r.jpg&&&/figure&
来晚了,补充几个常用的吧。前面先附一个大佬的学术回答另外问怎么在其他文献网站下载的胖友,如果你还是学生,请充分利用自己学校的资源。首先,校园网就够你用了,其次,大多网站你的学校都是有账号的,如果你不知道请问你的导师。1…
&p&&b&1.坚持跟每个认识的人打招呼,不管熟不熟&/b&&/p&&p&以前在路上遇到过不怎么熟的人,都是假装没看到,可以躲开,不但没有缓解社交压力,反而圈子越来越窄,一次不打招呼,下次遇到就更需要躲开了,后来开始鼓起勇气,其实比想象的简单的多,人与人都是相互的,你对别人友好些,别人也就会对你友好些&/p&&p&&b&2. 坚持每天出门一次&/b&&/p&&p&很多时候心情不好不想出门,或者也不知道出门做什么,在家里基本上就会不停的手机电脑来回切换,一整天下来头晕脑胀,后面开始,不论如何一天至少出门一次,不用很远,有时候仅仅是下楼买瓶水,带个几分钟,心情也会有很大的改善.&/p&&p&&b&3.坚持用洗面奶洗脸&/b&&/p&&p&特别推荐给男生,用洗面奶,一点都不娘,反而特别感觉,男生的脸特别容易出油出汗,洗脸又随便,坚持每天早上用洗面奶洗脸,颜值起码增加一分&/p&&p&&b&4.坚持认识新的人&/b&&/p&&p&就是认识一个人,无论男女,第一印象还不错的话,就可以去主动添加她的微信,人的看法和认知都首先与所在的圈子,有些事你没有接触过,就连想都没想过,好比农夫以为皇帝就是会用金子做的锄头来耕地一样,知道的越多,你就越智慧。&/p&&p&&b&5.坚持与老朋友联系&/b&&/p&&p&人总是在不断发展中,有时候不是你离开别人就别人离开你,但是并不意味着,你就必须得抛弃过去,不时的与老朋友联系,能让人不那么的现实与世故。&/p&&p&&b&6.坚持拥有独处的时间&/b&&/p&&p&你不用非得离群索居,但是你一定要有些固定的时间是只属于你一个人的,独处使你孤独,孤独是你清醒,清醒让你明白你真正要的是什么&/p&&p&&b&7.坚持每天打理自己&/b&&/p&&p&外形不单单是一个人的价值展示,更是一种价值主张,每周剪指甲,每天换衣服,简单却容易被忽略的细节,往往在不经意间决定成败,机会总是给有准备的人的&/p&&p&&b&8.坚持记笔记&/b&&/p&&p&很多时候,我们会觉得一件事很简单,可以侃侃而谈,但是做的时候却发现,有很多问题,&/p&&p&记笔记一是能让你回想起当时的内容,二是很多东西你写出来,在看的时候就会发现哪里有矛盾和漏洞。&/p&&p&&b&9.坚持存钱&/b&&/p&&p&就是一定要拥有自己的小金库,无论是省吃俭用攒下来的,还是赚的,少则几百,多则几千,&/p&&p&一直存着,最好让信任的人保管,直到迫不得已的时候,能给你解燃眉之急。&/p&&p&&b&10.坚持快速试错&/b&&/p&&p&&br&&/p&&p&&b&任何事想做又担心自己做不好,或者不知道这么做的时候,唯一的方法就是不停的在自己能接受的&/b&&/p&&p&&b&成本内尝试,人生没有白走的路,每一步都算数。&/b&&/p&&p&&br&&/p&&p&如果你喜欢我的回答可以关注我的公众号【等只猫】,&/p&&p&我在这里分享我的一些成长经验和故事&/p&&p&你可以通过公众号来成为我的微信好友,加入我为知乎小伙伴们组的微信群,&/p&&p&在这里我们可以聊聊。我也愿意分享我所知道的一切。&/p&
1.坚持跟每个认识的人打招呼,不管熟不熟以前在路上遇到过不怎么熟的人,都是假装没看到,可以躲开,不但没有缓解社交压力,反而圈子越来越窄,一次不打招呼,下次遇到就更需要躲开了,后来开始鼓起勇气,其实比想象的简单的多,人与人都是相互的,你对别人…
小外甥五岁,刚上幼儿园,还不太习惯环境,所以要有家长陪着。&br&&br&有次我姐有事,就让我去陪他去上幼儿园。&br&&br&在课间玩耍的时候,我发现这小子老是找班里最水灵的那两个小姑娘玩儿。&br&&br&并且有次跟人家玩着玩着就比起身高了,小女孩儿比他高,他不服气就要比手大小,是手对手那样比,结果刚对上手,这小子顺手就握住小女孩儿的小手,还笑嘻嘻地说:你的手真温暖!&br&小女孩儿小手被拉住,有点不太高兴地说到:你的手真冷!&br&小外甥立马变了个脸可怜兮兮说:那你能帮我暖一会儿吗?不然我会冻死的,你这么好,一定会答应的吧?&br&小女孩儿看了看这小子,就说:好吧&br&&br&我:……&br&&figure&&img src=&/v2-4fc284776cbe1dd9b92f302c63c72138_b.png& data-rawwidth=&240& data-rawheight=&240& class=&content_image& width=&240&&&/figure&这小子比他舅舅强的真不是一点半点啊!&br&&br&本来我以为这就是他撩妹的极点了,结果过了没多久,他又跟另外一个小姑娘玩了起来,玩儿的时候,突然对小女孩儿说:你知道吗,我的嘴是甜的,就跟蜂蜜一样?&br&小女孩儿不信,这小子又说:要不你试试?&br&小女孩儿犹豫了一下,就亲上了这小子的嘴唇上,亲完后舔了舔嘴唇,说还真是甜的。&br&并且还要再试试。&br&&br&卧槽,当时我就傻眼了,这小子到底干了什么?人的嘴唇怎么可能是甜的?&br&&figure&&img src=&/v2-4fc284776cbe1dd9b92f302c63c72138_b.png& data-rawwidth=&240& data-rawheight=&240& class=&content_image& width=&240&&&/figure&&br&等放学后,我问了问这小子原因,原来是有次他把我姐惹不高兴了,我姐夫为了教他哄我姐高兴,就把涂了点蜂蜜在他嘴唇上,让他亲了亲我姐,而这时我姐说你嘴可真甜,很高兴的原谅了他,并且他还把这招跟记住了……&br&&br&从那天后,我就再也不能直视我小外甥了,这小子的花花肠子太多了&br&&br&………………………………………………………………&br&以下部分与本文无关:&br&一个答案一张美图。&br&如有雷同&br&纯属他们抄我的。&br&&figure&&img src=&/v2-cbf0ef82dc07_b.jpg& data-rawwidth=&1707& data-rawheight=&1280& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&/v2-cbf0ef82dc07_r.jpg&&&/figure&
《梦.想》拍摄于河北邢台
小外甥五岁,刚上幼儿园,还不太习惯环境,所以要有家长陪着。 有次我姐有事,就让我去陪他去上幼儿园。 在课间玩耍的时候,我发现这小子老是找班里最水灵的那两个小姑娘玩儿。 并且有次跟人家玩着玩着就比起身高了,小女孩儿比他高,他不服气就要比手大小…
&figure&&img src=&/50/v2-8babd89e3372aaa89d7fe1_b.jpg& data-rawwidth=&1400& data-rawheight=&865& class=&origin_image zh-lightbox-thumb& width=&1400& data-original=&/50/v2-8babd89e3372aaa89d7fe1_r.jpg&&&/figure&文 | 谁是大英雄&br&&br&&p&常常去便利店买东西,大家一定注意过这样的事:便利店店员一般是 1-2 人,他们在一天中空闲时间是足够维持店内正常运转的。可一旦到了早餐、午餐这样的时间点,或者这家便利店位于火车站机场内,就会在一些很集中的时间段涌入大量顾客,这时候 2 个人的效率是跟不上的。&br&&/p&&p&很明显的感受是,你可能在饭点去便利店买了一包饼干或者一瓶汽水,也要排队好几分钟,假如前面的人恰好买了不少东西,这个时间就拖得更长,这种糟糕的体验很多人都遇到过。&/p&&p&怎么办?&/p&&p&给店里增加人手?这个办法在人力成本越来越高的今天似乎并没有优势,相反,如果为了提高效率,那么是不是更高的自动化更容易实现这个目标?&/p&&p&想象一个无人便利店,从你进门的那一刻,内部的摄像头能看到你拿了些什么,或者又放下了什么,并且开始加入虚拟购物车中,等到你挑选好东西后,想要出门只需要按下指纹或者刷脸支付,它会自动通过手机上的 app 进行扣款,结账过程只需要你在手机上确认就好,再也不用排队,你只要拿着东西就能直接出门去,听上去是不是很酷很方便?&figure&&img src=&/v2-c97e4f18b64aac6e3334f_b.png& data-rawwidth=&1200& data-rawheight=&675& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&/v2-c97e4f18b64aac6e3334f_r.png&&&/figure&&/p&&p&&i&(Amazon Go 的理念是设置好一个虚拟购物车)&/i&&/p&&p&无人便利店的想法以前也有人尝试,但去年&a href=&/?target=http%3A//www.geekpark.net/topics/217396& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Amazon GO 的出现&i class=&icon-external&&&/i&&/a&才让大家对其有了新的认知,因为过去我们见到的无人便利店,其实属于「自助式」结账,你需要在挑选好之后自己扫码结账,相当于去做原来店员做的事。所以对消费者的体验并不够好,但在前段时间芝麻信用并肩计划(STS)创新项目路演会场,我就看到了 Amazon GO 式商店在中国实现和普及的可能性。&/p&&h2&悄悄生长的便利店新未来&/h2&&p&QuiXmart(中文名快猫)2014 年在上海推出了第一家智能便利店,尽管当时的无人便利店条件是需要人们在出门时主动进行支付,「先付后享」,但创始人陈海波对未来便利店却有两点执念:&/p&&ul&&li&未来要在便利店支付一定是无媒介支付,每个人都会拥有个人的终身 ID;&/li&&li&我们身上最方便、安全的支付工具就是我们本身,不是卡,也不是手机,所以去商店拿到东西就不用再像传统方式那样结账。&/li&&/ul&&p&这两点执念在过去似乎遥不可及,因为那时候有两座大山:&/p&&ul&&li&现金支付仍然是主流;&/li&&li&人们没有一个特有的,用于支付的 ID。&/li&&/ul&&p&但随着近年来技术的发展,这两个问题开始出现突破口。之前曾经和大家谈过,因为移动支付的普及,我们正在朝着无现金社会一步步前进,假以时日,我们终将告别现金。而与此同时,当我们使用移动支付软件时,我们已经开始用自己的指纹、面部、虹膜等信息来进行验证,这意味着我们正在拥有自己独一无二的支付 ID。&figure&&img src=&/v2-bdf511d56c1dfde6b38c806dc0ed62fd_b.jpg& data-rawwidth=&500& data-rawheight=&499& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-bdf511d56c1dfde6b38c806dc0ed62fd_r.jpg&&&/figure&&/p&&p&&i&(QuiXmart 便利店样板之一:进门需要通过手掌信息录入)&/i&&/p&&p&另外,伴随着机器学习、人工智能技术的发展,我们又开始有能力让机器在一些方面赶上甚至在将来超过人类,君不见 AlphaGo 已经能够在围棋上战胜人类,而这一点在几年前还被人们认为是不可能的事情。&/p&&h2&看似不同形态,实则同样目标&/h2&&p&在今年微软 Build 2017 开发者大会上,我们就见到了基于机器学习和人工智能技术实现的工厂智能管理体系。通过摄像头捕捉人脸、工具等信息,并被云端的机器学习技术识别,从而为管理员推送现场情况,摄像头将来能认出来谁是谁,或者放在地上的是什么物体,判断可能存在的隐患并及时通知用户。&figure&&img src=&/v2-926dcd940d0c9c3a521f15_b.jpg& data-rawwidth=&640& data-rawheight=&358& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-926dcd940d0c9c3a521f15_r.jpg&&&/figure&&/p&&p&&i&(Build 2017 大会上展示了基于深度学习识别物品的能力)&/i&&/p&&p&QuiXmart 的识别同样基于机器学习,提前将商店中的货物信息通过摄像头记录在数据库中,并对这些商品做出标签(包括价格、名称等信息),只要你拿起商品,摄像头都会记录下来并加入购物车中(如果人比较多是否会挡住摄像头则是一个疑问)。当你进入和离开商店时,摄像头能通过面部信息或者手掌、指纹等个人生物信息对你进行确认,付账信息直接推送到手机上的手机钱包中,几乎是一个完美的「拿上就走,不用排队」的理想状态。&/p&&p&实际上,在无人便利店这件事上,国内有着不同方向,QuiXmart 只是其中一种,但在现阶段还难以达到规模化程度。所以相比之下,国内其他公司选择了看起来更易操作的模式。&/p&&p&比如在去年 8 月在广东落地的缤果盒子,采用的方法是三步走:&/p&&ol&&li&扫二维码,线绑定手机,之后开门,然后挑选物品;&/li&&li&选好物品后拿到前台感应区,这时会自动识别你购买的物品并计算价格;&/li&&li&能通过手机扫码支付,付款后系统自动开门。&/li&&/ol&&p&你会发现,这三步走的环节,更偏向于在现有基础上去掉营业员,变成半自助式的服务,没有追求像 Amazon GO 那样梦幻的场景,却能让现阶段的用户有新鲜感,而且更适合于规模化普及,而在第一家店运营 10 个月之后,今年 6 月,缤果盒子的第二家店在上海也开始运营,这其实也从侧面反映了它具有一定规模化的能力。&figure&&img src=&/v2-fc078db3c6_b.jpg& data-rawwidth=&931& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&931& data-original=&/v2-fc078db3c6_r.jpg&&&/figure&&/p&&p&除了上面这两种形态的无人便利店外,最近沃尔玛在美国,也进行了无人便利店试验,但稍有不同之处,其实也值得思考。&/p&&p&沃尔玛选择在俄克拉荷马州一家超市的停车场,设置了这个无人便利店。操作模式属于「线上选购、线下取货」,当你通过手机选购了商店的物品并结算后,会收到取货码,你可以直接去往这个便利店通过验证取货码,然后拿东西走人。&figure&&img src=&/v2-70be2820011dbcf74afb67580bacccc8_b.jpg& data-rawwidth=&770& data-rawheight=&400& data-thumbnail=&/v2-70be2820011dbcf74afb67580bacccc8_b.jpg& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&/v2-70be2820011dbcf74afb67580bacccc8_r.gif&&&/figure&&/p&&p&这种方式和前面的例子都不一样,它更像是线上商城的货物自提点,我们在日常生活中买了东西,有些人也会自己去站点取货,这让沃尔玛看起来不像是便利店的运作方式。但想一想,如果将来你能在大街小巷到处看到这样的店存在,那它算不算是一种便利店呢?&figure&&img src=&/v2-038b8a998f6a10c88e049a11b94f2c81_b.png& data-rawwidth=&712& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&712& data-original=&/v2-038b8a998f6a10c88e049a11b94f2c81_r.png&&&/figure&&/p&&p&不管是哪种方式,上面这些新的便利店运作模式正在试图打破我们对便利店(杂货铺)的传统印象,它们给人的感觉更加个性,使用习惯后确实会更方便,当人们越来越讨厌在便利店排队等待时,这样的新方法,无疑引起了人们的兴趣,而且,这确实很可能是未来便利店的形态,也就造成了目前无人便利店的火热。&/p&&p&而对于便利店来说,从前在人力成本上的投入将转移到对于前期基础设施的购买和后期维护上,正常情况的上货、更新等将可以集约化管理,这样算是提高了效率,而关于运营当中的供应链管理,以及 SKU 的优化,其实也大有学问,这里不再展开分析。显然,在大家的使用习惯被培养起来之后,无人便利店盈利将能够追赶甚至超越传统便利店。&/p&&p&当然,目前也有人对无人便利店的发展持怀疑态度。有人认为,在现阶段,这样的无人便利店相较于占地面积更小的自动售货机显得很吃亏,因为它的选址投入和后期运营成本更高,而且,商品销售上面,无人便利店又缺少传统便利店的熟食、现煮咖啡等毛利更高的产品,盈利会更小。另外,人们普遍关心的还有一点:假如遇到小偷,或者恶意破坏,无人便利店会怎样?&/p&&h2&从信任开始的新关系&/h2&&p&就像是共享单车刚出现时人们的怀疑一样,当无人便利店面对种种问题时,我们或许要从不同角度来看,才能看到应对的方法。&/p&&p&以缤果盒子来说,他们面对小偷和破坏问题的应对主要是以下这几方面:&/p&&ol&&li&进门前之后通过手机绑定,实名认证之后才能进入商店,绑定后第二次进入便不需要再次绑定;&/li&&li&慎重选择便利店位置,先尝试在一些高档小区内搭建,以过滤掉一部分潜在的风险。&/li&&li&进门购物时门自动关闭,结账支付完成后门自动打开。&/li&&/ol&&p&缤果盒子创始人陈子林谈到这一点时,提到了基于「信任」作为考量的角度,他说:&/p&&blockquote&&p&任何时候,信任都是最高效的交易方式。传统的无人贩卖机,逻辑起点是不信任,默认所有人都会偷盗,所以效率低,体验也不好,好处在于这种很容易规模化复制。而如果单纯靠信任维持,交易率很高,但不能复制,所以我们取两种方式的优点,我们信任消费者,默认绝大多数人不会偷东西,这样保证正常用户的体验,同时技术手段让这种信任变得可靠,也能够规模化。&/p&&/blockquote&&p&显然,尝试利用技术手段去提高小偷的风险,增加他们违法的难度,是目前主要防止盗窃的方案。而根据缤果盒子之前试运营的结果,他们在超过 180 天的周期内,一共完成了 5 万次的交易,未发生一起恶意偷盗和破坏事件,假设这个数据可信度足够,那么缤果盒子第一家店营业的尝试至少证明了一件事:当我们认为无人化运营产品会引发人们「不怀好意」时,实际情况是大多数人倾向于遵守规则。&/p&&p&新规则建立的基础变成了「信任」,从前则是「不信任」,这一点在如今已经开始影响到我们生活的方方面面。我想你已经习惯于用芝麻信用作为凭证免押金使用共享单车,或者出去旅游住在快捷酒店也不再需要押金,我们的信用基础有了新的用途,而这种新的用途又反过来促进人们建立更好的信用度。&/p&&p&在今年 2 月 22 日的蚂蚁金服芝麻信用大会上,QuiXmart 展示了通过芝麻信用、支付宝、花呗结合的信用结算系统——take go。在这个结算系统下,当你的芝麻信用足够时,购买物品的体验将从原来的「先付后享」变成「先享后付」,你的信用标准成为了你在便利店「挑好就走」的凭证。&/p&&p&从「先付后享」变成「先享后付」,看起来只是换了一个顺序,但当人们习惯于通过个人信用分数来进行消费以及享受服务时,这种体验上的转变是巨大的。许多我们过去吐槽的浪费时间,效率低下的环节将会消失。&/p&&p&不过在当下,似乎在普通人身边存在感最多的,也是接触最直接的用芝麻信用分使用共享单车了,而最终,究竟全社会的信用体系将会以何种姿态存在,就又是有趣的问题了。&/p&&h2&未来便利店远不止如此&/h2&&p&当人们开始逐渐重视信用体系,并认识到个人信用对于自己的价值时,很多原来没有办法做到的事情看起来就有了解决的方案。&figure&&img src=&/v2-beeb5ff4b60191bae44e_b.jpg& data-rawwidth=&700& data-rawheight=&467& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&/v2-beeb5ff4b60191bae44e_r.jpg&&&/figure&&/p&&p&前面我们提到的便利店或许看起来还和生活比较接近,但&a href=&/?target=https%3A///bestcoffeebike/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&瑞典一家公司 Wheelys &i class=&icon-external&&&/i&&/a&前段时间在上海设立的移动便利店 Moby,看起来就显得更科幻了,这或许也会成为未来人们生活的新选择~&figure&&img src=&/v2-9c3fcd8addb02ee87ebd8aa_b.jpg& data-rawwidth=&686& data-rawheight=&670& class=&origin_image zh-lightbox-thumb& width=&686& data-original=&/v2-9c3fcd8addb02ee87ebd8aa_r.jpg&&&/figure&&/p&&p&Moby 移动便利店从远处看就像一个不规则的玻璃盒子,在盒子里有各种各样的商品,而它有几个特性非常有未来感:&/p&&ul&&li&这是一个会移动的便利店,通过人工或者自动驾驶在规划路线上前进,想要买东西的人能够在手机上看到它的位置;&/li&&li&购买商品的人进店选好物品之后,在出门前扫描物品条形码,然后进行支付(这一点和缤果盒子是一致的);&/li&&li&如果你没办法直接到便利店,可以在手机下单,在商店屋顶配备的无人机将会空运包裹到你手上;&/li&&li&店内的库存检测系统能够随时反馈货物信息,并且及时提醒资源补给;&/li&&li&在店面内会有一个被称为「Hol」的虚拟商店助理提供使用服务说明;&/li&&li&在店外,通过大屏幕展示的广告将成为新的移动广告牌。&/li&&/ul&&p&这就是 Moby 便利店的概念,是不是看起来比较超前?但这其中,很多想法现在都能实现。也许它的精髓在于,让「便利店更便利」这件事情有了更多实现的方法,比如它会自动移动,所以你就不用自己走过去,比如无人机运货,你在家就能享用商品。&figure&&img src=&/v2-4b8e18b89f3b38fba80a3_b.jpg& data-rawwidth=&700& data-rawheight=&627& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&/v2-4b8e18b89f3b38fba80a3_r.jpg&&&/figure&&/p&&p&&i&(让无人机把东西送到你家可好?)&/i&&/p&&p&在把「便利」的属性发挥到极致时,实际上商品的价格就算高一些,对越来越懒的城市生活人群来说,似乎是可以接受的,就像我们身边越来越多的人习惯于点外卖而不再是自己出门吃饭了。&/p&&p&千万不要小瞧「移动+便利店」的这个概念,Wheelys 这个品牌最早是从「移动咖啡小车」的概念做起的,他们尝试着做了一辆能制作热咖啡的移动小车,摆在星巴克附近一下午,想要喝咖啡的人只需要在手机上下单就能直接来取,为曾经需要排队买咖啡的人省下不少时间。&figure&&img src=&/v2-48ba670c1b4_b.jpg& data-rawwidth=&620& data-rawheight=&467& data-thumbnail=&/v2-48ba670c1b4_b.jpg& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&/v2-48ba670c1b4_r.gif&&&/figure&&figure&&img src=&/v2-f7c068b52eff75aa576e_b.jpg& data-rawwidth=&500& data-rawheight=&281& data-thumbnail=&/v2-f7c068b52eff75aa576e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-f7c068b52eff75aa576e_r.gif&&&/figure&&/p&&p&而从实际效果来看,因为这辆小车的效率提高,看起来也很有新鲜劲,所以居然卖的比星巴克还要多,所以后来开始在全球推广这种移动咖啡小车项目,每辆车成本 4499 美金,相比开一家咖啡馆可划算多了,所以他们的标志也出现在了很多地方。现在,他们推出了新的「移动便利店」,不知道这一次,能不能看到赶超传统便利店的机会呢?&figure&&img src=&/v2-dbbf7d1dc_b.jpg& data-rawwidth=&1167& data-rawheight=&994& class=&origin_image zh-lightbox-thumb& width=&1167& data-original=&/v2-dbbf7d1dc_r.jpg&&&/figure&&/p&&p&&i&(Wheelys 移动咖啡车已经遍布世界上很多国家)&/i&&/p&&p&当年看《黑客帝国》的时候,电影中男主尼奥和女主崔妮蒂需要武器时,面前就突然出现了一个军火商店,选好自己需要的东西之后,这个商店就消失了,我不知道沃卓斯基姐妹当时是怎么想到这么酷的事情,但至少从今天来看,我们距离那样的便利店,并不再遥不可及。&/p&&p&未来的便利店究竟会怎样「便利」?也许今天我们看到的仅仅是冰山一角,从 1930 年在美国出现最早的便利店开始,我们终于能感受到科技带给这个行业不一样的变化了,这或许就是如今技术和社会新思考带给我们的惊喜吧。(编辑:Rubberso)&/p&&p&原文链接 → &a href=&/?target=http%3A//www.geekpark.net/topics/220119& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&「无人便利店」想要走进我们的生活,还要趟过哪些坑?&i class=&icon-external&&&/i&&/a&&/p&&br&
文 | 谁是大英雄 常常去便利店买东西,大家一定注意过这样的事:便利店店员一般是 1-2 人,他们在一天中空闲时间是足够维持店内正常运转的。可一旦到了早餐、午餐这样的时间点,或者这家便利店位于火车站机场内,就会在一些很集中的时间段涌入大量顾客,这…
&figure&&img src=&/50/v2-da6e908fbff06e8e14c60d86d776d225_b.jpg& data-rawwidth=&768& data-rawheight=&576& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/50/v2-da6e908fbff06e8e14c60d86d776d225_r.jpg&&&/figure&&figure&&img src=&/v2-abd42bbb61ee_b.jpg& data-rawwidth=&558& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&558& data-original=&/v2-abd42bbb61ee_r.jpg&&&/figure&&p&作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能:&br&&/p&&p&1) 去除(爱情)动作片中的马赛克&/p&&p&2) 给(爱情)动作片中的女孩穿(tuo)衣服&/p&&br&&h2&生成式模型&/h2&&p&上一篇《&a href=&/p/& class=&internal&&用GAN生成二维样本的小例子&/a&》中已经简单介绍了GAN,这篇再简要回顾一下生成式模型,算是补全一个来龙去脉。&/p&&p&生成模型就是能够产生指定分布数据的模型,常见的生成式模型一般都会有一个用于产生样本的简单分布。例如一个均匀分布,根据要生成分布的概率密度函数,进行建模,让均匀分布中的样本经过变换得到指定分布的样本,这就可以算是最简单的生成式模型。比如下面例子:&/p&&figure&&img src=&/v2-d11b5fb26d3cc8e942f841bafe010cd8_b.png& data-rawwidth=&1021& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&1021& data-original=&/v2-d11b5fb26d3cc8e942f841bafe010cd8_r.png&&&/figure&&p&图中左边是一个自定义的概率密度函数,右边是相应的1w个样本的直方图,自定义分布和生成这些样本的代码如下:&br&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&kn&&from&/span& &span class=&nn&&functools&/span& &span class=&kn&&import&/span& &span class=&n&&partial&/span&
&span class=&kn&&import&/span& &span class=&nn&&numpy&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib&/span& &span class=&kn&&import&/span& &span class=&n&&pyplot&/span&
&span class=&c1&&# Define a PDF&/span&
&span class=&n&&x_samples&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&arange&/span&&span class=&p&&(&/span&&span class=&o&&-&/span&&span class=&mi&&3&/span&&span class=&p&&,&/span& &span class=&mf&&3.01&/span&&span class=&p&&,&/span& &span class=&mf&&0.01&/span&&span class=&p&&)&/span&
&span class=&n&&PDF&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&empty&/span&&span class=&p&&(&/span&&span class=&n&&x_samples&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&)&/span&
&span class=&n&&PDF&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&round&/span&&span class=&p&&(&/span&&span class=&n&&x_samples&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&+&/span& &span class=&mf&&3.5&/span&&span class=&p&&)&/span& &span class=&o&&/&/span& &span class=&mi&&3&/span&
&span class=&n&&PDF&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&=&/span& &span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&mf&&0.5&/span& &span class=&o&&*&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&cos&/span&&span class=&p&&(&/span&&span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&pi&/span& &span class=&o&&*&/span& &span class=&n&&x_samples&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&=&/span& &span class=&mi&&0&/span&&span class=&p&&])&/span& &span class=&o&&+&/span& &span class=&mf&&0.5&/span&
&span class=&n&&PDF&/span& &span class=&o&&/=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&sum&/span&&span class=&p&&(&/span&&span class=&n&&PDF&/span&&span class=&p&&)&/span&
&span class=&c1&&# Calculate approximated CDF&/span&
&span class=&n&&CDF&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&empty&/span&&span class=&p&&(&/span&&span class=&n&&PDF&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&)&/span&
&span class=&n&&cumulated&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&i&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&CDF&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]):&/span&
&span class=&n&&cumulated&/span& &span class=&o&&+=&/span& &span class=&n&&PDF&/span&&span class=&p&&[&/span&&span class=&n&&i&/span&&span class=&p&&]&/span&
&span class=&n&&CDF&/span&&span class=&p&&[&/span&&span class=&n&&i&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&cumulated&/span&
&span class=&c1&&# Generate samples&/span&
&span class=&n&&generate&/span& &span class=&o&&=&/span& &span class=&n&&partial&/span&&span class=&p&&(&/span&&span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&interp&/span&&span class=&p&&,&/span& &span class=&n&&xp&/span&&span class=&o&&=&/span&&span class=&n&&CDF&/span&&span class=&p&&,&/span& &span class=&n&&fp&/span&&span class=&o&&=&/span&&span class=&n&&x_samples&/span&&span class=&p&&)&/span&
&span class=&n&&u_rv&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&random&/span&&span class=&o&&.&/span&&span class=&n&&random&/span&&span class=&p&&(&/span&&span class=&mi&&10000&/span&&span class=&p&&)&/span&
&span class=&n&&x&/span& &span class=&o&&=&/span& &span class=&n&&generate&/span&&span class=&p&&(&/span&&span class=&n&&u_rv&/span&&span class=&p&&)&/span&
&span class=&c1&&# Visualization&/span&
&span class=&n&&fig&/span&&span class=&p&&,&/span& &span class=&p&&(&/span&&span class=&n&&ax0&/span&&span class=&p&&,&/span& &span class=&n&&ax1&/span&&span class=&p&&)&/span& &span class=&o&&=&/span& &span class=&n&&pyplot&/span&&span class=&o&&.&/span&&span class=&n&&subplots&/span&&span class=&p&&(&/span&&span class=&n&&ncols&/span&&span class=&o&&=&/span&&span class=&mi&&2&/span&&span class=&p&&,&/span& &span class=&n&&figsize&/span&&span class=&o&&=&/span&&span class=&p&&(&/span&&span class=&mi&&9&/span&&span class=&p&&,&/span& &span class=&mi&&4&/span&&span class=&p&&))&/span&
&span class=&n&&ax0&/span&&span class=&o&&.&/span&&span class=&n&&plot&/span&&span class=&p&&(&/span&&span class=&n&&x_samples&/span&&span class=&p&&,&/span& &span class=&n&&PDF&/span&&span class=&p&&)&/span&
&span class=&n&&ax0&/span&&span class=&o&&.&/span&&span class=&n&&axis&/span&&span class=&p&&([&/span&&span class=&o&&-&/span&&span class=&mf&&3.5&/span&&span class=&p&&,&/span& &span class=&mf&&3.5&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&max&/span&&span class=&p&&(&/span&&span class=&n&&PDF&/span&&span class=&p&&)&/span&&span class=&o&&*&/span&&span class=&mf&&1.1&/span&&span class=&p&&])&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&hist&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&,&/span& &span class=&mi&&100&/span&&span class=&p&&)&/span&
&span class=&n&&pyplot&/span&&span class=&o&&.&/span&&span class=&n&&show&/span&&span class=&p&&()&/span&
&/code&&/pre&&/div&&p&对于一些简单的情况,我们会假设已知有模型可以很好的对分布进行建模,缺少的只是合适的参数。这时候很自然只要根据观测到的样本,学习参数让当前观测到的样本下的似然函数最大,这就是最大似然估计(&b&M&/b&aximum &b&L&/b&ikelihood &b&E&/b&stimation):&br&&/p&&img src=&/equation?tex=%5Chat%7B%5Ctheta%7D%3D%5Coperatorname%2A%7Bargmax%7D_%7B%5Ctheta%7D+P%28%5Cbm%7Bx%7D%7C%5Ctheta%29%0A+%3D+%5Coperatorname%2A%7Bargmax%7D_%7B%5Ctheta%7D+%5Cprod_%7Bi%3D1%7D%5E%7Bn%7DP%28x_i%7C%5Ctheta%29+& alt=&\hat{\theta}=\operatorname*{argmax}_{\theta} P(\bm{x}|\theta)
= \operatorname*{argmax}_{\theta} \prod_{i=1}^{n}P(x_i|\theta) & eeimg=&1&&&br&&p&MLE是一个最基本的思路,实践中用得很多的还有KL散度(Kullback–Leibler divergence),假设真实分布是P,采样分布是Q,则KL散度为:&/p&&img src=&/equation?tex=D_%7BKL%7D%28P%7C%7CQ%29%3D%5Csum_%7Bx+%5Cin+%5COmega%7DP%28%7Bx%7D%29%5Clog%5Cfrac%7BP%28x%29%7D%7BQ%28x%29%7D++& alt=&D_{KL}(P||Q)=\sum_{x \in \Omega}P({x})\log\frac{P(x)}{Q(x)}
& eeimg=&1&&&br&&p&从公式也能看出来,KL散度描述的是两个分布的差异程度。换个角度来看,让产生的样本和原始分布接近,也就是要让这俩的差异减小,所以最小化KL散度就等同于MLE。从公式上来看的话,我们考虑把公式具体展开一下:&/p&&br&&img src=&/equation?tex=%5Cbegin%7Balign%7D%0AD_%7BKL%7D%28P%7C%7CQ%29+%26%3D%5Csum_%7Bx+%5Cin+%5COmega%7DP%28%7Bx%7D%29%5Clog%5Cfrac%7BP%28x%29%7D%7BQ%28x%29%7D++++%5C%5C%0A%26+%3D-%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BQ%28x%29%7D+%2B%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BP%28x%29%7D+%5C%5C%0A%26+%3D-%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29%0A%5Cend%7Balign%7D& alt=&\begin{align}
D_{KL}(P||Q) &=\sum_{x \in \Omega}P({x})\log\frac{P(x)}{Q(x)}
& =-\sum_{x\in\Omega}P({x})\log{Q(x)} +\sum_{x\in\Omega}P({x})\log{P(x)} \\
& =-\sum_{x\in\Omega}P({x})\log{Q(x)} +H(P)
\end{align}& eeimg=&1&&&br&&p&公式的第二项就是熵,先不管这项,用H(P)表示。接下来考虑一个小trick:从Q中抽样n个样本&img src=&/equation?tex=%7Bx_1%2Cx_2%2C...%2Cx_n%7D& alt=&{x_1,x_2,...,x_n}& eeimg=&1&&,来估算P(x)的经验值(empirical density function):&br&&/p&&img src=&/equation?tex=%5Chat%7BP%7D%28x%29%3D%5Cfrac+1+n+%5Csum_%7Bi%3D1%7D%5En+%5Cdelta%28x_i-x%29& alt=&\hat{P}(x)=\frac 1 n \sum_{i=1}^n \delta(x_i-x)& eeimg=&1&&&br&&p&其中&img src=&/equation?tex=%5Cdelta%28%5Ccdot%29& alt=&\delta(\cdot)& eeimg=&1&&是狄拉克&img src=&/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数,把这项替换到上面公式的P(x):&/p&&br&&img src=&/equation?tex=%5Cbegin%7Balign%7D%0AD_%7BKL%7D%28P%7C%7CQ%29+%26%3D-%5Csum_%7Bx%5Cin%5COmega%7D%5Cfrac+1+n+%5Csum_%7Bi%3D1%7D%5En+%5Cdelta%28x_i-x%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29+%5C%5C%0A%26+%3D-%5Cfrac+1+n+%5Csum_%7Bi%3D1%7D%5En+%5Csum_%7Bx%5Cin%5COmega%7D++%5Cdelta%28x_i-x%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29%0A%5Cend%7Balign%7D& alt=&\begin{align}
D_{KL}(P||Q) &=-\sum_{x\in\Omega}\frac 1 n \sum_{i=1}^n \delta(x_i-x)\log{Q(x)} +H(P) \\
& =-\frac 1 n \sum_{i=1}^n \sum_{x\in\Omega}
\delta(x_i-x)\log{Q(x)} +H(P)
\end{align}& eeimg=&1&&&br&&p&因为是离散的采样值,所以&img src=&/equation?tex=%5Csum_%7Bx%5Cin%5COmega%7D+%5Cdelta%28x_i-x%29& alt=&\sum_{x\in\Omega} \delta(x_i-x)& eeimg=&1&&中只有&img src=&/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&的时候狄拉克&img src=&/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数才为1,所以考虑&img src=&/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&时这项直接化为1:&/p&&br&&img src=&/equation?tex=D_%7BKL%7D%28P%7C%7CQ%29+%3D-%5Cfrac+1+n%5Csum_%7Bi%3D1%7D%5En+%5Clog%7BQ%28x_i%29%7D+%2BH%28P%29& alt=&D_{KL}(P||Q) =-\frac 1 n\sum_{i=1}^n \log{Q(x_i)} +H(P)& eeimg=&1&&&br&&p&第一项正是似然的负对数形式。&/p&&p&说了些公式似乎跑得有点远了,其实要表达还是那个简单的意思:通过减小两个分布的差异可以让一个分布逼近另一个分布。仔细想想,这正是GAN里面adversarial loss的做法。&/p&&p&很多情况下我们面临的是更为复杂的分布,比如&a href=&/p/& class=&internal&&上篇文章&/a&中的例子,又或是实际场景中更复杂的情况,比如生成不同人脸的图像。这时候,作为具有universal approximation性质的神经网络是一个看上去不错的选择[1]:&br&&/p&&figure&&img src=&/v2-6fee20494f50baae2c1dc5fc_b.jpg& data-rawwidth=&1561& data-rawheight=&549& class=&origin_image zh-lightbox-thumb& width=&1561& data-original=&/v2-6fee20494f50baae2c1dc5fc_r.jpg&&&/figure&&p&所以虽然GAN里面同时包含了生成网络和判别网络,但本质来说GAN的目的还是生成模型。从生成式模型的角度,Ian Goodfellow总结过一个和神经网络相关生成式方法的“家谱”[1]:&/p&&figure&&img src=&/v2-8c6f1d8ee39dfbb4fcfb2_b.png& data-rawwidth=&771& data-rawheight=&498& class=&origin_image zh-lightbox-thumb& width=&771& data-original=&/v2-8c6f1d8ee39dfbb4fcfb2_r.png&&&/figure&&p&在这其中,当下最流行的就是GAN和&b&V&/b&ariational &b&A&/b&uto&b&E&/b&ncoder(VAE),两种方法的一个简明示意如下[3]:&/p&&figure&&img src=&/v2-380cde71a2f6ece28b4a97_b.png& data-rawwidth=&568& data-rawheight=&274& class=&origin_image zh-lightbox-thumb& width=&568& data-original=&/v2-380cde71a2f6ece28b4a97_r.png&&&/figure&&p&本篇不打算展开讲什么是VAE,不过通过这个图,和名字中的autoencoder也大概能知道,VAE中生成的loss是基于重建误差的。而只基于重建误差的图像生成,都或多或少会有图像模糊的缺点,因为误差通常都是针对全局。比如基于MSE(Mean Squared Error)的方法用来生成超分辨率图像,容易出现下面的情况[4]:&/p&&br&&p&&figure&&img src=&/v2-78f53b142fab51b0c09a1_b.png& data-rawwidth=&892& data-rawheight=&598& class=&origin_image zh-lightbox-thumb& width=&892& data-original=&/v2-78f53b142fab51b0c09a1_r.png&&&/figure&在这个二维示意中,真实数据分布在一个U形的流形上,而MSE系的方法因为loss的形式往往会得到一个接近平均值所在的位置(蓝色框)。&/p&&p&GAN在这方面则完爆其他方法,因为目标分布在流形上。所以只要大概收敛了,就算生成的图像都看不出是个啥,清晰度常常是有保证的,而这正是去除女优身上马赛克的理想特性!&/p&&br&&h2&马赛克-&清晰画面:超分辨率(Super Resolution)问题&/h2&&p&说了好些铺垫,终于要进入正题了。首先明确,去马赛克其实是个图像超分辨率问题,也就是如何在低分辨率图像基础上得到更高分辨率的图像:&/p&&figure&&img src=&/v2-31c84b42ad_b.png& data-rawwidth=&784& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&784& data-original=&/v2-31c84b42ad_r.png&&&/figure&&p&视频中超分辨率实现的一个套路是通过不同帧的低分辨率画面猜测超分辨率的画面,有兴趣了解这个思想的朋友可以参考我之前的一个答案:&a href=&/question//answer/& class=&internal&&如何通过多帧影像进行超分辨率重构? &/a&&br&&/p&&p&不过基于多帧影像的方法对于女优身上的马赛克并不是很适用,所以这篇要讲的是基于单帧图像的超分辨率方法。&/p&&h2&SRGAN&/h2&&p&说到基于GAN的超分辨率的方法,就不能不提到SRGAN[4]:《Photo-Realistic Single Image &b&S&/b&uper-&b&R&/b&esolution Using a &b&G&/b&enerative &b&A&/b&dversarial
&b&N&/b&etwork》。这个工作的思路是:基于像素的MSE loss往往会得到大体正确,但是高频成分模糊的结果。所以只要重建低频成分的图像内容,然后靠GAN来补全高频的细节内容,就可以了:&/p&&figure&&img src=&/v2-128029dfc7c470b07a4a1_b.png& data-rawwidth=&446& data-rawheight=&131& class=&origin_image zh-lightbox-thumb& width=&446& data-original=&/v2-128029dfc7c470b07a4a1_r.png&&&/figure&这个思路其实和最早基于深度网络的风格迁移的思路很像(有兴趣的读者可以参考我之前文章&a href=&/p/& class=&internal&&瞎谈CNN:通过优化求解输入图像&/a&的最后一部分),其中重建内容的content loss是原始图像和低分辨率图像在VGG网络中的各个ReLU层的激活值的差异:&p&&figure&&img src=&/v2-331e02e394cfd04e7114a_b.png& data-rawwidth=&529& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&529& data-original=&/v2-331e02e394cfd04e7114a_r.png&&&/figure&生成细节adversarial loss就是GAN用来判别是原始图还是生成图的loss:&/p&&figure&&img src=&/v2-fa5af2a10fe9a4dadfb04_b.png& data-rawwidth=&394& data-rawheight=&89& class=&content_image& width=&394&&&/figure&&p&把这两种loss放一起,取个名叫perceptual loss。训练的网络结构如下:&/p&&figure&&img src=&/v2-17861edeb4bcfae4e9f369_b.png& data-rawwidth=&780& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/v2-17861edeb4bcfae4e9f369_r.png&&&/figure&&p&正是上篇文章中讲过的C-GAN,条件C就是低分辨率的图片。SRGAN生成的超分辨率图像虽然PSNR等和原图直接比较的传统量化指标并不是最好,但就视觉效果,尤其是细节上,胜过其他方法很多。比如下面是作者对比bicubic插值和基于ResNet特征重建的超分辨率的结果:&/p&&figure&&img src=&/v2-f3b4376938ffcbd23c42d_b.png& data-rawwidth=&981& data-rawheight=&392& class=&origin_image zh-lightbox-thumb& width=&981& data-original=&/v2-f3b4376938ffcbd23c42d_r.png&&&/figure&&p&可以看到虽然很多细节都和原始图片不一样,不过看上去很和谐,并且细节的丰富程度远胜于SRResNet。这些栩栩如生的细节,可以看作是GAN根据学习到的分布信息“联想”出来的。&/p&&p&对于更看重“看上去好看”的超分辨率应用,SRGAN显然是很合适的。当然对于一些更看重重建指标的应用,比如超分辨率恢复嫌疑犯面部细节,SRGAN就不可以了。&/p&&h2&pix2pix&/h2&&p&虽然专门用了一节讲SRGAN,但本文用的方法其实是pix2pix[5]。这项工作刚在arxiv上发布就引起了不小的关注,它巧妙的利用GAN的框架解决了通用的Image-to-Image translation的问题。举例来说,在不改变分辨率的情况下:把照片变成油画风格;把白天的照片变成晚上;用色块对图片进行分割或者倒过来;为黑白照片上色;…每个任务都有专门针对性的方法和相关研究,但其实总体来看,都是像素到像素的一种映射啊,其实可以看作是一个问题。这篇文章的巧妙,就在于提出了pix2pix的方法,一个框架,解决所有这些问题。方法的示意图如下:&/p&&p&&figure&&img src=&/v2-e2ea753b7b0d7f18abee3_b.png& data-rawwidth=&485& data-rawheight=&437& class=&origin_image zh-lightbox-thumb& width=&485& data-original=&/v2-e2ea753b7b0d7f18abee3_r.png&&&/figure&就是一个Conditional GAN,条件C是输入的图片。除了直接用C-GAN,这项工作还有两个改进:&/p&&p&1)&b&利用U-Net结构生成细节更好的图片&/b&[6]&/p&&figure&&img src=&/v2-beb074bebbfa0db_b.png& data-rawwidth=&907& data-rawheight=&612& class=&origin_image zh-lightbox-thumb& width=&907& data-original=&/v2-beb074bebbfa0db_r.png&&&/figure&&p&U-Net是德国Freiburg大学模式识别和图像处理组提出的一种全卷积结构。和常见的先降采样到低维度,再升采样到原始分辨率的编解码(Encoder-Decoder)结构的网络相比,U-Net的区别是加入skip-connection,对应的feature maps和decode之后的同样大小的feature maps按通道拼(concatenate)一起,用来保留不同分辨率下像素级的细节信息。U-Net对提升细节的效果非常明显,下面是pix2pix文中给出的一个效果对比:&/p&&p&&figure&&img src=&/v2-2fb4ddb2fdc24eea31eea_b.png& data-rawwidth=&563& data-rawheight=&307& class=&origin_image zh-lightbox-thumb& width=&563& data-original=&/v2-2fb4ddb2fdc24eea31eea_r.png&&&/figure&可以看到,各种不同尺度的信息都得到了很大程度的保留。&/p&&p&2)&b&利用马尔科夫性的判别器(PatchGAN)&br&&/b&&/p&&p&pix2pix和SRGAN的一个异曲同工的地方是都有用重建解决低频成分,用GAN解决高频成分的想法。在pix2pix中,这个思想主要体现在两个地方。一个是loss函数,加入了L1 loss用来让生成的图片和训练的目标图片尽量相似,而图像中高频的细节部分则交由GAN来处理:&/p&&figure&&img src=&/v2-cb180ad03d8a72e7883285b_b.png& data-rawwidth=&447& data-rawheight=&51& class=&origin_image zh-lightbox-thumb& width=&447& data-original=&/v2-cb180ad03d8a72e7883285b_r.png&&&/figure&&p&还有一个就是&b&PatchGAN&/b&,也就是具体的GAN中用来判别是否生成图的方法。PatchGAN的思想是,既然GAN只负责处理低频成分,那么判别器就没必要以一整张图作为输入,只需要对NxN的一个图像patch去进行判别就可以了。这也是为什么叫Markovian discriminator,因为在patch以外的部分认为和本patch互相独立。&/p&&p&具体实现的时候,作者使用的是一个NxN输入的全卷积小网络,最后一层每个像素过sigmoid输出为真的概率,然后用BCEloss计算得到最终loss。这样做的好处是因为输入的维度大大降低,所以参数量少,运算速度也比直接输入一张快,并且可以计算任意大小的图。作者对比了不同大小patch的结果,对于256x256的输入,patch大小在70x70的时候,从视觉上看结果就和直接把整张图片作为判别器输入没什么区别了:&/p&&figure&&img src=&/v2-5172ca51efb4ee3e453b15_b.png& data-rawwidth=&842& data-rawheight=&107& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&/v2-5172ca51efb4ee3e453b15_r.png&&&/figure&&h2&生成带局部马赛克的训练数据&/h2&&p&利用pix2pix,只要准备好无码和相应的有码图片就可以训练去马赛克的模型了,就是这么简单。那么问题是,如何生成有马赛克的图片?&/p&&p&有毅力的话,可以手动加马赛克,这样最为精准。这节介绍一个不那么准,但是比随机强的方法:利用分类模型的激活区域进行自动马赛克标注。&/p&&p&基本思想是利用一个可以识别需要打码图像的分类模型,提取出这个模型中对应类的CAM(&b&C&/b&lass &b&A&/b&ctivation &b&M&/b&ap)[7],然后用马赛克遮住响应最高的区域即可。这里简单说一下什么是CAM,对于最后一层是全局池化(平均或最大都可以)的CNN结构,池化后的feature map相当于是做了个加权相加来计算最终的每个类别进入softmax之前的激活值。CAM的思路是,把这个权重在池化前的feature map上按像素加权相加,最后得到的单张的激活图就可以携带激活当前类别的一些位置信息,这相当于一种弱监督(classification--&localization):&/p&&p&&figure&&img src=&/v2-fd28f0b871bd_b.png& data-rawwidth=&660& data-rawheight=&314& class=&origin_image zh-lightbox-thumb& width=&660& data-original=&/v2-fd28f0b871bd_r.png&&&/figure&上图是一个CAM的示意,用澳洲梗类别的CAM,放大到原图大小,可以看到小狗所在的区域大致是激活响应最高的区域。&/p&&p&那么就缺一个可以识别XXX图片的模型了,网上还恰好就有个现成的,yahoo于2016年发布的开源色情图片识别模型Open NSFW(&b&N&/b&ot &b&S&/b&afe &b&F&/b&or &b&W&/b&ork):&/p&&a href=&/?target=https%3A///yahoo/open_nsfw& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&yahoo/open_nsfw&i class=&icon-external&&&/i&&/a&&p&CAM的实现并不难,结合Open NSFW自动打码的代码和使用放在了这里:&/p&&a href=&/?target=https%3A///frombeijingwithlove/dlcv_for_beginners/tree/master/random_bonus/generate_mosaic_for_porno_images& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&给XX图片生成马赛克&i class=&icon-external&&&/i&&/a&&br&&br&(成功打码的)效果差不多是下面这样子:&figure&&img src=&/v2-cbefa39dc983f2645dd8_b.png& data-rawwidth=&768& data-rawheight=&256& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/v2-cbefa39dc983f2645dd8_r.png&&&/figure&&h2&去除(爱情)动作片中的马赛克&/h2&&p&这没什么好说的了,一行代码都不用改,只需要按照前面的步骤把数据准备好,然后按照pix2pix官方的使用方法训练就可以了:&/p&&p&Torch版pix2pix:&a href=&/?target=https%3A///phillipi/pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&phillipi/pix2pix&i class=&icon-external&&&/i&&/a&&/p&&p&pyTorch版pix2pix(Cycle-GAN二合一版):&a href=&/?target=https%3A///junyanz/pytorch-CycleGAN-and-pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/pytorch-CycleGAN-and-pix2pix&i class=&icon-external&&&/i&&/a&&/p&&p&从D盘里随随便便找了几千张图片,用来执行了一下自动打码和pix2pix训练(默认参数),效果是下面这样:&/p&&br&&figure&&img src=&/v2-9f52b17c0e1296767cbfbfafc290a5bd_b.png& data-rawwidth=&814& data-rawheight=&691& class=&origin_image zh-lightbox-thumb& width=&814& data-original=&/v2-9f52b17c0e1296767cbfbfafc290a5bd_r.png&&&/figure&&p&什么?你问说好给女优去马赛克呢?女优照片呢?&/p&&figure&&img src=&/v2-480fb8a4dcfc7a4f92ec_b.png& data-rawwidth=&75& data-rawheight=&60& class=&content_image& width=&75&&&/figure&&p&还是要说一下,在真人照片上的效果比蘑菇和花强。&/p&&h2&对偶学习(Dual Learning)&/h2&&p&去马赛克已经讲完了,接下来就是给女孩穿(tuo)衣服了,动手之前,还是先讲一下铺垫:&b&对偶学习&/b&和&b&Cycle-GAN&/b&。&/p&&p&对偶学习是MSRA于2016年提出的一种用于机器翻译的增强学习方法[8],目的是解决海量数据配对标注的难题,个人觉得算是一种弱监督方法(不过看到大多数文献算作无监督)。以机器翻译为例,对偶学习基本思想如下图[9]:&/p&&figure&&img src=&/v2-c4b1eeda364fb6c9bada02f3_b.png& data-rawwidth=&866& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&866& data-original=&/v2-c4b1eeda364fb6c9bada02f3_r.png&&&/figure&左边的灰衣男只懂英语,右边的黑衣女只懂中文,现在的任务就是,要学习如何翻译英语到中文。对偶学习解决这个问题的思路是:给定一个模型&img src=&/equation?tex=f%3Ax%5Crightarrow+y& alt=&f:x\rightarrow y& eeimg=&1&&一上来无法知道f翻译得是否正确,但是如果考虑上&img src=&/equation?tex=f& alt=&f& eeimg=&1&&的对偶问题&img src=&/equation?tex=g%3Ay%5Crightarrow+x& alt=&g:y\rightarrow x& eeimg=&1&&,那么我可以尝试翻译一个英文句子到中文,再翻译回来。这种转了一圈的结果&img src=&/equation?tex=x%27%3Dg%28f%28x%29%29& alt=&x'=g(f(x))& eeimg=&1&&,灰衣男是可以用一个标准(BLEU)判断x'和x是否一个意思,并且把结果的一致性反馈给这两个模型进行改进。同样的,从中文取个句子,这样循环翻译一遍,两个模型又能从黑衣女那里获取反馈并改进模型。其实这就是强化学习的过程,每次翻译就是一个action,每个action会从环境(灰衣男或黑衣女)中获取reward,对模型进行改进,直至收敛。&p&也许有的人看到这里会觉得和上世纪提出的Co-training很像,这个在知乎上也有讨论:&/p&&a href=&/question/& class=&internal&&如何理解刘铁岩老师团队在NIPS 2016上提出的对偶学习(Dual Learning)?&/a&&p&个人觉得还是不一样的,Co-Training是一种multi-view方法,比如一个输入x,如果看作是两个拼一起的特征&img src=&/equation?tex=x%3D%28x_1%2Cx_2%29& alt=&x=(x_1,x_2)& eeimg=&1&&,并且假设&img src=&/equation?tex=x_1& alt=&x_1& eeimg=&1&&和&img src=&/equation?tex=x_2& alt=&x_2& eeimg=&1&&互相独立,那么这时候训练两个分类器&img src=&/equation?tex=f_1%28%5Ccdot%29& alt=&f_1(\cdot)& eeimg=&1&&和&img src=&/equation?tex=f_2%28%5Ccdot%29& alt=&f_2(\cdot)& eeimg=&1&&对于任意样本x应该有&img src=&/equation?tex=f_1%28x_1%29%3Df_2%28x_2%29& alt=&f_1(x_1)=f_2(x_2)& eeimg=&1&&。这对没有标注的样本是很有用的,相当于利用了同一个样本分类结果就应该一样的隐含约束。所以Co-Training的典型场景是少量标注+大量未标注的半监督场景。并且&img src=&/equation?tex=f_1& alt=&f_1& eeimg=&1&&和&img src=&/equation?tex=f_2& alt=&f_2& eeimg=&1&&其实是两个不同,但是domain指向相同的任务。而Dual Learning中&img src=&/equation?tex=f& alt=&f& eeimg=&1&&和&img src=&/equation?tex=g& alt=&g& eeimg=&1&&是对偶任务,利用的隐含约束是&img src=&/equation?tex=x%5Crightarrow+y%5Crightarrow+x& alt=&x\rightarrow y\rightarrow x& eeimg=&1&&的cycle consistency。对输入的特征也没有像Co-Training有那么明确的假设,学习方法上也不一样,Dual Learning算是强化学习。&/p&&h2&CycleGAN和未配对图像翻译(Unpaired Image-to-Image Translation)&/h2&&p&CycleGAN,翻译过来就是:轮着干,是结合了对偶学习和GAN一个很直接而巧妙的想法[10],示意图如下:&/p&&figure&&img src=&/v2-9e7396ebccb7c42302fc97_b.png& data-rawwidth=&838& data-rawheight=&216& class=&origin_image zh-lightbox-thumb& width=&838& data-original=&/v2-9e7396ebccb7c42302fc97_r.png&&&/figure&&p&X和Y分别是两种不同类型图的集合,比如穿衣服的女优和没穿衣服的女优。所以给定一张穿了衣服的女优,要变成没穿衣服的样子,就是个图片翻译问题。CycleGAN示意图中(b)和(c)就是Dual Learning:&/p&&figure&&img src=&/v2-de51cac58b_b.png& data-rawwidth=&347& data-rawheight=&62& class=&content_image& width=&347&&&/figure&&p&在Dual Learning基础上,又加入了两个判别器&img src=&/equation?tex=D_X& alt=&D_X& eeimg=&1&&和&img src=&/equation?tex=D_Y& alt=&D_Y& eeimg=&1&&用来进行对抗训练,让翻译过来的图片尽量逼近当前集合中的图片:&/p&&p&&figure&&img src=&/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_b.png& data-rawwidth=&442& data-rawheight=&59& class=&origin_image zh-lightbox-thumb& width=&442& data-original=&/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_r.png&&&/figure&全考虑一起,最终的loss是:&/p&&p&&figure&&img src=&/v2-e6d99e7edea969da3dad_b.png& data-rawwidth=&357& data-rawheight=&87& class=&content_image& width=&357&&&/figure&也许有人会问,那不加cycle-consistency,直接用GAN学习一个&img src=&/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&的映射,让生成的Y的样本尽量毕竟Y里本身的样本可不可以呢?这个作者在文中也讨论了,会产生GAN训练中容易发生的mode collapse问题。mode collapse问题的一个简单示意如下[1]:&/p&&p&&figure&&img src=&/v2-309fce6329592babb784ed_b.png& data-rawwidth=&842& data-rawheight=&262& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&/v2-309fce6329592babb784ed_r.png&&&/figure&上边的是真实分布,下边的是学习到的分布,可以看到学习到的分布只是完整分布的一部分,这个叫做partial mode collapse,是训练不收敛情况中常见的一种。如果是完全的mode collapse,就是说生成模型得到的都是几乎一样的输出。而加入Cycle-consistency会让一个domain里不同的样本都尽量映射到另一个domain里不同的地方,理想情况就是双射(bijection)。直观来理解,如果通过&img src=&/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&都映射在Y中同一个点,那么这个点y通过&img src=&/equation?tex=Y%5Crightarrow+X& alt=&Y\rightarrow X& eeimg=&1&&映射回来显然不可能是多个不同的x,所以加入cycle-consistency就帮助避免了mode collapse。这个问题在另一篇和CycleGAN其实本质上没什么不同的方法DiscoGAN中有更详细的讨论[11],有兴趣的话可以参考。&/p&&br&&p&有一点值得注意的是,虽然名字叫CycleGAN,并且套路也和C-GAN很像,但是其实只有adversarial,并没有generative。因为严格来说只是学习了&img src=&/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&和&img src=&/equation?tex=Y%5Crightarrow+X& alt=&Y\rightarrow X& eeimg=&1&&的mapping,所谓的generative network里并没有随机性。有一个和CycleGAN以及DiscoGAN其实本质上也没什么不同的方法叫DualGAN[12],倒是通过dropout把随机性加上了。不过所有加了随机性产生的样本和原始样本间的cycle-consistency用的还是l1 loss,总觉得这样不是很对劲。当然现在GAN这么热门,其实只要是用了adversarial loss的基本都会取个名字叫XXGAN,也许是可以增加投稿命中率。&/p&&p&另外上节中提到了Co-Training,感觉这里也应该提一下CoGAN[13],因为名字有些相似,并且也可以用于未配对的图像翻译。CoGAN的大体思想是:如果两个Domain之间可以互相映射,那么一定有一些特征是共有的。比如男人和女人,虽然普遍可以从长相区分,但不变的是都有两个眼睛一个鼻子一张嘴等等。所以可以在生成的时候,把生成共有特征和各自特征的部分分开,示意图如下:&br&&/p&&p&&figure&&img src=&/v2-57eaadc8cec5190bfd30_b.png& data-rawwidth=&758& data-rawheight=&207& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&/v2-57eaadc8cec5190bfd30_r.png&&&/figure&其实就是两个GAN结构,其中生成网络和判别网络中比较高层的部分都采用了权值共享(虚线相连的部分),没有全职共享的部分分别处理不同的domain。这样每次就可以根据训练的domain生成一个样本在两个domain中不同的对应,比如戴眼镜和没戴眼镜:&/p&&p&&figure&&img src=&/v2-356a6118ccf3e8e3bf1c7_b.png& data-rawwidth=&791& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&791& data-original=&/v2-356a6118ccf3e8e3bf1c7_r.png&&&/figure&分别有了共有特征和各自domain特征,那么做mapping的思路也就很直接了[14]:&/p&&p&&figure&&img src=&/v2-8ac50600e40feaac345e09bd7e05a83d_b.png& data-rawwidth=&771& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&771& data-original=&/v2-8ac50600e40feaac345e09bd7e05a83d_r.png&&&/figure&在GAN前边加了个domain encoder,然后对每个domain能得到三种样本给判别器区分:直接采样,重建采样,从另一个domain中transfer后的重建采样。训练好之后,用一个domain的encoder+另一个domain的generator就很自然的实现了不同domain的转换。用在图像翻译上的效果如下:&/p&&p&&figure&&img src=&/v2-612e9cf5e125fd626be7db_b.png& data-rawwidth=&444& data-rawheight=&544& class=&origin_image zh-lightbox-thumb& width=&444& data-original=&/v2-612e9cf5e125fd626be7db_r.png&&&/figure&还有个巧妙的思路,是把CoGAN拆开,不同domain作为C-GAN条件的更加显式的做法[15]:&/p&&br&&p&&figure&&img src=&/v2-ddec16d502c94f91ea35_b.png& data-rawwidth=&883& data-rawheight=&398& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&/v2-ddec16d502c94f91ea35_r.png&&&/figure&第一步用噪声Z作为和domain无关的共享表征对应的latent noise,domain信息作为条件C训练一个C-GAN。第二步,训练一个encoder,利用和常见的encode-decode结构相反的decode(generate)-encode结构。学习好的encoder可以结合domain信息,把输入图像中和domain无关的共享特征提取出来。第三步,把前两步训练好的encoder和decoder(generator)连一起,就可以根据domain进行图像翻译了。&/p&&p&CoGAN一系的方法虽然结构看起来更复杂,但个人感觉理解起来要比dual系的方法更直接,并且有latent space,可解释性和属性对应也好一些。&/p&&p&又扯远了,还是回到正题:&/p&&br&&h2&给女优穿上衣服&/h2&&p&其实同样没什么好说的,Cycle-GAN和pix2pix的作者是一拨人,文档都写得非常棒,准备好数据,分成穿衣服的和没穿衣服的两组,按照文档的步骤训练就可以:&/p&&p&Torch版Cycle-GAN:&a href=&/?target=https%3A///junyanz/CycleGAN& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/CycleGAN&i class=&icon-external&&&/i&&/a&&/p&&p&pyTorch版Cycle-GAN(pix2pix二合一版):&a href=&/?target=https%3A///junyanz/pytorch-CycleGAN-and-pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/pytorch-CycleGAN-and-pix2pix&i class=&icon-external&&&/i&&/a&&/p&&p&Cycle-GAN收敛不易,我用了128x128分辨率训练了穿衣服和没穿衣服的女优各一千多张,同样是默认参数训练了120个epoch,最后小部分成功“穿衣服”的结果如下:&/p&&figure&&img src=&/v2-fee34d66c386e0e01e5804_b.jpg& data-rawwidth=&1117& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&/v2-fee34d66c386e0e01e5804_r.jpg&&&/figure&&figure&&img src=&/v2-de57c5ebefa4251ee3caa1_b.jpg& data-rawwidth=&1117& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&/v2-de57c5ebefa4251ee3caa1_r.jpg&&&/figure&&p&虽然都有些突兀,但好歹是穿上衣服了。注意马赛克不是图片里就有的,是我后来加上去的。&/p&&p&那么,脱衣服的例子在哪里?&/p&&figure&&img src=&/v2-480fb8a4dcfc7a4f92ec_b.png& data-rawwidth=&75& data-rawheight=&60& class=&content_image& width=&75&&&/figure&&h2&参考文献&/h2&&p&[1] I. Goodfellow. Nips 2016 tutorial: Generative adversarial networks. arXiv preprint arXiv:, 2016.&/p&&p&[2] A. B. L. Larsen, S. K. S?nderby, Generating Faces with Torch. &a href=&/?target=http%3A//torch.ch/blog//gan.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Torch | Generating Faces with Torch&i class=&icon-external&&&/i&&/a&&/p&&p&[3] A. B. L. Larsen, S. K. S?nderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a
learned similarity metric. In ICML, pages , 2016.
&/p&&p&[4] C. Ledig, L. Theis, F. Huszar, J. Caballero, A. Aitken, A. Tejani, J. Totz, Z. Wang, and W. Shi. Photo-realistic single image super-resolution using a generative adversarial network. arXiv:, 2016.&/p&&p&[5] P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. Image-to-image translation with conditional adversarial networks. arxiv, 2016. &/p&&p&[6] O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. In MICCAI, pages 234–241. Springer, 2015.&/p&&p&[7] B. Zhou, A. Khosla, A. Lapedriza, A. Oliva, and A. Torralba. Learning deep features for discriminative localization. arXiv preprint arXiv:, 2015.&/p&&p&[8] He, D., Xia, Y., Qin, T., Wang, L., Yu, N., Liu, T.-Y., and Ma, W.-Y. (2016a). Dual learning for machine translation. In the Annual Conference on Neural Information Processing Systems (NIPS), 2016.&/p&&br&&p&[9] &a href=&/?target=http%3A//www.dsrg.stuorg.iastate.edu/wp-content/uploads/2017/02/dual-learning_-pushing-the-new-frontier-of-artificial-intelligence-tieyan-liu.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Tie-Yan Liu, Dual Learning: Pushing the New Frontier of Artificial Intelligence, MIFS 2016&i class=&icon-external&&&/i&&/a&&br&&/p&&p&[10] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networkss. arXiv preprint arXiv:, 2017.&/p&&p&[11] T. Kim, M. Cha, H. Kim, J. Lee, and J. Kim. Learning to Discover Cross-Domain Relations with Generative Adversarial Networks. ArXiv e-prints, Mar. 2017.&/p&&br&&p&[12] Z. Yi, H. Zhang, P. T. Gong, et al. DualGAN: Unsupervised dual learning for image-to-image translation. arXiv preprint arXiv:, 2017.&/p&&br&&p&[13] M.-Y. Liu and O. Tuzel. Coupled generative adversarial networks. In Advances in Neural Information Processing Systems (NIPS), 2016.&/p&&p&[14] M.-Y. Liu, T. Breuel, and J. Kautz. Unsupervised image-to-image translation networks. arXiv preprint arXiv:, 2017.&/p&&p&[15] Dong, H., Neekhara, P., Wu, C., Guo, Y.: Unsupervised image-to-image translation with generative adversarial networks. arXiv preprint arXiv:, 2017.&/p&&p&=========== 分割线: ===========&/p&&p&上周日发的时候也想到了可能会有许多人对这个话题感兴趣,但没想到超过了1.5W赞这么多,大概看了看评论,做一些补充:&/p&&p&&b&1) &/b&马赛克训练数据:对于一般的机器学习问题,都是分布越简单越容易,遵循这个原则,我用的约束是单人照片,具体方法是:先找一个Pascal VOC训练好的SSD代码,然后SSD筛选了一批每张图里只能检测到一个人的。&/p&&p&最后在真人照片上的效果看上去还是不错的,我没有做过量化评估,大体来说看上去挺像的要超过一半,非常逼真的可能有5%~10%。两人以上战斗的动作画面我没有评估过。&/p&&p&&b&2)&/b&穿(tuo)衣训练数据:因为收敛很难,所以数据的加了更多约束:只用女性单人正面照片。同样通过SSD检测出单人照片,同时考虑person框的宽高比小于1的且框内能检测到人脸的(OpenCV的人脸检测)。这样尽量筛选出一批面向镜头,身体占画面比接近的照片。&/p&&p&最后的效果我在原文中也提到过,只有小部分能成功穿上(tuo)衣服,具体我也没有量化统计过,大概100张里两三张吧,大部分都是身上出现了看上去有点像衣服的线条或是另一个人的胸部。考虑到我最后筛选出的图片人物占画面比仍然有很大的变化,很可能我的模型就是遇到了文中提到的partial mode collapse的问题。&/p&&p&如果有更好的办法筛选出人物大小差不多的照片,效果应该能提升不少。比如我在用SSD筛选的时候如果考虑宽高比更小一些,筛选出的照片看上去会更加一致,不过我资源不太够,这样做后训练集就只有不到300张,资源够的老司机们有兴趣可以试试。&/p&&br&&p&&b&3)&/b&预训练模型有没有?有,但是我研读了中华人民共和国刑法第三百六十三、三百六十四和三百六十六条,完全读不懂,所以还是不提供。再说就算我提供了,根据1)和2),看到你想看的内容也是需要运气的。&/p&&p&另外特别感谢赞赏的知友们,这篇文章是想说&b&书中自有颜如玉&/b&,而知友们的赞赏让我知道&b&书中真有黄金屋&/b&,古人诚不我欺…&/p&
作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能: 1) 去除(爱情)动作片中的马赛克2) 给(爱情)动作片中的女孩穿(tuo)衣服 生成式模型上一篇《》中已经简单介…
我的回答可能对题主没什么帮助。&br&&br&我的生活中出现过一位和关关貌似蛮像的女子。她名牌大学毕业,先在某大型IT公司工作了三年,然后来到出版社,负责版权贸易工作。&br&&br&因为工作关系,我和她总有往来,她做事有韧劲,在她的细心坚持下,我们拿到了一些原本以为拿不到版权的外版书。&br&&br&她一直单身。我认识她十年了,这十年间,我也数次帮她牵线,因为她每次都笑嘻嘻地回应道:好呀,我愿意相亲呢。每次也都无功而返。她在找对象这件事上,看起来相当地不“进取”。一如她对自己工作和生活现状的随遇而安。她对自己手头的事情认真负责地去完成,但始终对谁都有一种淡淡的疏离感,看上去很友好,但实际上只要一忙完工作,她就愿意避开喧嚣,一头扎进自己的小屋,泡杯清茶,捧本书读啊读,不需要做饭,单位食堂就能解决一日三餐。她不热衷旅游,也不锻炼身体,但作息规律,从不熬夜,每天上班都神清气爽的。&br&&br&至今她也没有自己独立生活的空间,一直在单位的集体宿舍里与人合住。室友来来去去,唯独她是铁打的兵。同事们不免会劝她考虑买房等事宜,她一概笑笑,觉得在帝都,就不要去想买房这件事了吧。她不想向父母伸手,也不愿自己为此殚精竭虑,她觉得就这么与人合住集体宿舍,有室友在,有人说话,不孤单,挺好。&br&&br&工作上,她虽然没有多强的开拓能力,但绝对任劳任怨,对繁琐的事务性工作极有耐心,加班加点也会把领导交代的任务完成。因此,团队里有了她,头儿们总是觉得踏实。凡是需要长时间坚持才能看到效果的工作,都会交到她手上,大家知道她最能耐心地跟进下去。&br&&br&她的状况,我看在眼里,慢慢地也就理解并接受了。不是每个人都要恋爱都要结婚的,不是每个人都需要放弃当下可得的闲适自在,非要为了住进宽敞的大屋而绞尽脑汁的。&br&&br&我和她一起出过差,和她相处一点压力都没有,她全然没有人们通常以为的老姑娘会有的幽怨,也从无兴趣讨论人际关系的是是非非。在任何地方,只要忙完了手头的事情,她就必定泡上一杯茶,捧起一本书,悠然自得地沉浸到她的世界中。&br&&br&在帝都谋生原本不易,她似乎放弃了谋爱,但也换来了自己内心的清静自在。就这么自食其力自得其乐地过一辈子,好像也没什么不好?&br&&br&(荐:&a href=&/question//answer/?group_id=621184& class=&internal&&各位是怎么在现实中碰到特别志同道合的人? - 周筠的回答&/a& )&br&&br&&br&【留言精选】&br&&a href=&/people/wang-yi-zhe-96& class=&internal&&Eden Wang&/a&:&br&很抱歉,可是私以为这个状态过不完一生。任何重大事件都会颠覆她生活的小船,简而言之,这只是&b&针尖上的平衡&/b&。年纪的增长,随着这样维持稳态的难度和成本也会越来越高。&br&其实我也希望大家的日子都过的随顺一些,只是生活中总有着一些事情发生的猝不及防。多为着后面打算一些,总好过手足无措。
我的回答可能对题主没什么帮助。 我的生活中出现过一位和关关貌似蛮像的女子。她名牌大学毕业,先在某大型IT公司工作了三年,然后来到出版社,负责版权贸易工作。 因为工作关系,我和她总有往来,她做事有韧劲,在她的细心坚持下,我们拿到了一些原本以为拿…
不是有个很著名的关于前苏联的笑话,小时候看的&br&背景似乎是生活物资共有|?ω?`)&br&一男的看邻居登报纸拿鸭子换了一百块钱&br&于是他也试着卖,结果被抓了,&br&他问邻居:&br&——你也登报我也登报,怎么我被抓了?&br&——那你怎么写的?&br&——就写卖鸭子,五只鸭子一百块啊&br&——你是不是傻!&br&邻居嚷嚷起来,拿起报纸给他看:&br&——我写的是某某某地丢失了一百块钱,有捡到的人会拿五只鸭子感谢!当天就有无数人拿着一百块钱来了!&br&当时看到的时候年纪还小,居然还有这种操作!太机智了!&br&&figure&&img src=&/v2-70d64ba40f241dc58dc8_b.jpg& data-raww}

我要回帖

更多关于 cdclt窗口怎么关闭 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信