想要好玩的,兄弟们上 电视剧加vx axysm123456 就对了

&h2&是时候拿出这个视频了!&/h2&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/927552& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic3.zhimg.com/80/v2-4fb6e806faa2_b.jpg& data-lens-id=&927552&&
&img class=&thumbnail& src=&https://pic3.zhimg.com/80/v2-4fb6e806faa2_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/927552&/span&
&/a&&ul&&li&招牌假笑,信手捏来&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-71a6bced58b65fec091c95_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&582& data-rawheight=&324& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&582& data-original=&https://pic2.zhimg.com/v2-71a6bced58b65fec091c95_r.jpg&&&/figure&&ul&&li&崇拜眼神技能,初二就已点满&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-fbda3b9dcaee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&587& data-rawheight=&324& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&587& data-original=&https://pic3.zhimg.com/v2-fbda3b9dcaee_r.jpg&&&/figure&&ul&&li&内敛上臂,淑女干杯&/li&&/ul&&figure&&img src=&https://pic1.zhimg.com/v2-c5c0b460bf26a89c45e8ac04c990133c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&586& data-rawheight=&325& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&586& data-original=&https://pic1.zhimg.com/v2-c5c0b460bf26a89c45e8ac04c990133c_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-260e43e0d89ac171d130de_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&588& data-rawheight=&324& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&588& data-original=&https://pic3.zhimg.com/v2-260e43e0d89ac171d130de_r.jpg&&&/figure&&ul&&li&微左倾8度是魔法的角度,可爱程度增加20%&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-28e3af0be_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&587& data-rawheight=&328& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&587& data-original=&https://pic3.zhimg.com/v2-28e3af0be_r.jpg&&&/figure&&ul&&li&菜单打开递给对方,稍微露出软骨青筋。&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-25e7fc3ad58a89f2cf6457adca009f36_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&586& data-rawheight=&326& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&586& data-original=&https://pic3.zhimg.com/v2-25e7fc3ad58a89f2cf6457adca009f36_r.jpg&&&/figure&&ul&&li&故意隔开一米空挡,马赫秒速迅速贴近,能取得三倍效果&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-8de93b7c396b10c0c1f4d09c532e8c4e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&585& data-rawheight=&327& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&585& data-original=&https://pic3.zhimg.com/v2-8de93b7c396b10c0c1f4d09c532e8c4e_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-3d4a3a23b5fe_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&587& data-rawheight=&327& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&587& data-original=&https://pic1.zhimg.com/v2-3d4a3a23b5fe_r.jpg&&&/figure&&p&&br&&/p&&h2&嗯!这就是戏精本精了!&/h2&&p&&br&&/p&&p&&br&&/p&&p&更多套路请观看视频!(在最上面)&/p&&p&另外,这虽然是日本的一个日本的冰淇淋小广告,但是这个小妹妹,是正宗重庆妹纸哟~&/p&&p&&br&&/p&&p&各位小姐姐收藏视频,慢慢学习的心情我能理解,但是最有效的套路&/p&&p&其实&/p&&p&就是&/p&&p&随手点个赞!&/p&
是时候拿出这个视频了!招牌假笑,信手捏来崇拜眼神技能,初二就已点满内敛上臂,淑女干杯微左倾8度是魔法的角度,可爱程度增加20%菜单打开递给对方,稍微露出软骨青筋。故意隔开一米空挡,马赫秒速迅速贴近,能取得三倍效果 嗯!这就是戏精本精了! 更多套…
&p&只是觉得很有意思
不喜勿喷,谢谢&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/149376& target=&_blank& data-video-id=&& data-video-playable=&& data-name=&& data-poster=&https://pic4.zhimg.com/v2-bba9aed518.jpg& data-lens-id=&149376&&
&img class=&thumbnail& src=&https://pic4.zhimg.com/v2-bba9aed518.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/149376&/span&
只是觉得很有意思 不喜勿喷,谢谢
&figure&&img src=&https://pic4.zhimg.com/v2-991dcf3d87b57_b.jpg& data-rawwidth=&1500& data-rawheight=&814& class=&origin_image zh-lightbox-thumb& width=&1500& data-original=&https://pic4.zhimg.com/v2-991dcf3d87b57_r.jpg&&&/figure&&p&&/p&&p&话在前头,这是一篇非常正经的数据分析文章,请不要用有色眼镜看待,没有种子谢谢~关注订阅号「优达学城」(id:youdaxue),私信&b&回复关键词“pornhub”,获取完整数据分析报告。&/b&&/p&&p&&br&&/p&&p&&b&不过还是要说一句,现在撤退还来得及.....&/b&&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-dbf7bf3f36e3faf0327bb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&320& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-dbf7bf3f36e3faf0327bb_r.jpg&&&/figure&&p&2017年各种回顾,优达菌最喜欢 PornHub 的了,作为全世界最大的小电影网站,Pornhub 在数据分析这块,做的比小黄片还精彩,它们家的每年的数据报告,图文并茂地揭示了世界人民的观影喜好,成为业界人士观摩学习的好榜样。&/p&&p&&br&&/p&&p&正好前几天 2017 年的观影报告新鲜出炉,今天优达菌把这份报告“取其精华”,并且汉化出来,和大家一起学习分享,2018 年祝大家性福美满~&/p&&p&&br&&/p&&p&&b&2017,更加忙碌的一年&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b312f9a7212d72bdecae4b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&602& data-rawheight=&739& class=&origin_image zh-lightbox-thumb& width=&602& data-original=&https://pic4.zhimg.com/v2-b312f9a7212d72bdecae4b_r.jpg&&&/figure&&p&2017 年,共有 &b&285 亿&/b&人次访问了 PornHub,比去年增长了 23%,平均每天有&b&8100 万人&/b&“潜心专研”。&/p&&p&&br&&/p&&p&有人观摩,必然有人造福苍生,2017 年有 &b&400 多万部&/b&的小电影被上传到 PornHub 上,比每年登上长城的人还多。如果调成连播模式,可以播放 &b&68 年&/b&,在这里祝好人一生平安。&/p&&p&&br&&/p&&p&关键词搜索数量也很惊人,每分钟搜索达 5 万次,每秒 800 次,&b&跟全世界金拱门每秒卖出的汉堡一样多&/b&(金拱门:????)&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e898c0ebbe0125bfb0ad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&599& data-rawheight=&766& class=&origin_image zh-lightbox-thumb& width=&599& data-original=&https://pic2.zhimg.com/v2-e898c0ebbe0125bfb0ad_r.jpg&&&/figure&&p&&br&&/p&&p&&b&手机观影才是王道&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-58bd90c16bb45aae846eb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&621& data-rawheight=&432& class=&origin_image zh-lightbox-thumb& width=&621& data-original=&https://pic4.zhimg.com/v2-58bd90c16bb45aae846eb_r.jpg&&&/figure&&p&2017年,电脑端看片的占比已经降到了24%,手机端则飙升到&b&67%&/b&,美国占比83%,印度则高达87%,看来手机看片已经是大势所趋,只不过当心别被领导或者老伴待个正着咯。&/p&&p&&br&&/p&&p&&b&世界人民都在什么时候看片?&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-7c0bdbfbed22_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&955& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic3.zhimg.com/v2-7c0bdbfbed22_r.jpg&&&/figure&&p&一句话总结:晚上11点到12点,夜深人静孤独寂寞容易打开 Pornhub 寻求抚慰,周五晚上要happy没空看,周日兴致达到顶峰!&/p&&p&&br&&/p&&p&&b&哪国人民最爱看小电影呢?&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-4ef0c34f5e030a1e187dfd7e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&806& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic4.zhimg.com/v2-4ef0c34f5e030a1e187dfd7e_r.jpg&&&/figure&&p&&br&&/p&&p&美国排名依然第一,而且遥遥领先,不可撼动。第二名是腐国。而印度居然排在第三.....而情色产业相当发达的日本屈居第四.......而因为众所周知某些原因,中国没能出现在这份榜单上。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-50e2ec802f3623c8bda6b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1000& data-rawheight=&724& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic4.zhimg.com/v2-50e2ec802f3623c8bda6b_r.jpg&&&/figure&&p&我们从国家的角度来看这些数据,就更耐人寻味了。中国人民最喜欢的题材是“Hentai”。北美则是山河一片红,都喜欢看“拉拉”,战斗民族则喜欢看“菊花”,优达菌眼尖,发现巴基斯坦居然喜欢的是“大雕”???&/p&&p&&br&&/p&&p&&b&炸裂!“指尖陀螺”居然成为搜索热点???&/b& &/p&&figure&&img src=&https://pic1.zhimg.com/v2-ccdab9b63b67aef946bd7f975ccaa4e9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&623& data-rawheight=&673& class=&origin_image zh-lightbox-thumb& width=&623& data-original=&https://pic2.zhimg.com/v2-ccdab9b63b67aef946bd7f975ccaa4e9_r.jpg&&&/figure&&p&&br&&/p&&p&要知道各位老铁的观影口味和癖好,直接拉搜索榜单前十就够了,&/p&&p&&br&&/p&&p&排名第一的是 &b&“Porn for Women”&/b& ,什么意思我就不翻译了,2017 年这个词的搜索增长超过 1400%。&/p&&p&&br&&/p&&p&美国著名动画&b&《瑞克和莫蒂》&/b&排名第二,真的是有够重口啊,看来动画人物play 市场很大啊!&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ceca9fb37b953_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-ceca9fb37b953_r.jpg&&&/figure&&p&&br&&/p&&p&谁也没能想到,减压的&b&“指尖陀螺”&/b&居然排名第三,特喵的!至于为什么,请各位老司机自己去谷歌....&/p&&figure&&img src=&https://pic4.zhimg.com/v2-66d1b2a97efb07dc82c6cfb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&320& data-rawheight=&180& data-thumbnail=&https://pic4.zhimg.com/v2-66d1b2a97efb07dc82c6cfb_b.jpg& class=&content_image& width=&320&&&/figure&&p&另外,1080P(要求真高)、ASMR(颅内高潮)、hentai(日本动作片)、和cheerleader(拉拉队长)也榜上有名。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&你们的守望先锋又双叒叕上榜了!&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-adc814f42c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&796& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic1.zhimg.com/v2-adc814f42c_r.jpg&&&/figure&&p&在热门搜索类目榜单上,拉拉 “lesbian” 连续 3 年保持第一,hentai 从去年的第八名,跃升到今年的第二。另外,“继母”、“继姐”等仍旧出现在前十位,另外,&b&VR 与时俱进&/b&,成为热门搜索类目,也难怪,2016年,PornHub 率先推出了全球第一个 VR 同性小电影频道,不需什么复杂道具,只需用便宜的 Google Cardboard 和 Android 手机就能观看了。&/p&&p&&br&&/p&&p&不过有个乱入的影子——&b&“守望先锋” (Overwatch)&/b& 居然又上榜了,排名前十开外,下降了2名,喂喂,你们到底想干嘛?&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&各国人民最爱的“动作片”女老师是?&/b&&/p&&figure&&img src=&https://pic7.zhimg.com/v2-0a3fdc82c578ff58ddf5f00_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&624& data-rawheight=&735& class=&origin_image zh-lightbox-thumb& width=&624& data-original=&https://pic1.zhimg.com/v2-0a3fdc82c578ff58ddf5f00_r.jpg&&&/figure&&p&说实话,榜上的老师优达菌我一个都不认识。不过数据都很吓人,排名第一的老师 Riley Reid,以走邻家女风格而出名,2017年共有5亿人民欣赏了她的作品。&/p&&p&&br&&/p&&p&排名第二的 Mia ,成为 2017 年度搜索最多的女老师!而卡戴珊一家从真人秀火到 PornHub(排名第四),成为榜单上唯一的名流。。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&男女搭配,干活不累,大家最喜欢的男老师是?&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ab3eefc0540e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&541& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic3.zhimg.com/v2-ab3eefc0540e_r.jpg&&&/figure&&p&为了照顾女性粉丝,优达菌也放出了2017年最受欢迎的“动作片男老师”排行榜,排名第一的是Jordi El Nino Polla,来自西班牙,经常演绎一些很弱鸡的角色,因为童颜大器的反差让他深受欢迎。&/p&&p&&br&&/p&&p&其他老师就不介绍了。。有兴趣请自己搜索。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&以下高能,请谨慎观看&/b&&/p&&p&&br&&/p&&p&&b&各国人民最喜欢的“动作片”名流是??&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b867a07be2c68dbc86bc54f1f14c37e1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&1120& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic2.zhimg.com/v2-b867a07be2c68dbc86bc54f1f14c37e1_r.jpg&&&/figure&&p&排名第一的依然是 drama queen 金·卡戴珊;可其他上榜的着实让优达菌大吃一精,排名第二的是迪士尼玉女傻脸娜Selena Gomez;然后,你们的神奇女侠盖尔·加朵 Gal Gadot 排名第五.....&/p&&p&&br&&/p&&p&还有小贾Justin Bieber、霉霉 Taylor Swift、卡B Cardi B、碧神局 Beyonce、甚至米国大统领的夫人和女儿伊万卡也都上榜咯....&/p&&figure&&img src=&https://pic3.zhimg.com/v2-d84906e78dae07d984eeadb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-d84906e78dae07d984eeadb_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&各国人民最爱的“动作片”游戏角色是?&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fdcc58a81aa0f7f2c13625_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&582& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic2.zhimg.com/v2-fdcc58a81aa0f7f2c13625_r.jpg&&&/figure&&p&&br&&/p&&p&不出意料,《自杀小队》的“小丑女”哈莉·奎茵排名第一,神奇女侠排名第二、蝙蝠侠、蜘蛛侠、美国队长、“小贱贱”死侍等都榜上有名,看来大家对制服诱惑、角色扮演类的都非常狂热啊。。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-6d5cbcfed510f66d1fec33a0e14bf53c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&354& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-6d5cbcfed510f66d1fec33a0e14bf53c_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&&b&最猎奇的是,皮卡丘也上榜了....&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cca891c42f1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&622& data-rawheight=&674& class=&origin_image zh-lightbox-thumb& width=&622& data-original=&https://pic2.zhimg.com/v2-cca891c42f1_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&各国人民最爱的“动作片”动漫角色是?这个榜单的可怕之处就在这里,守望先锋的角色占据大半江山:D.Va第一,Mercy第二,Tracer排名第三,Widowmaker第八....&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-abcef45e33a5a79d8b827986_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&442& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-abcef45e33a5a79d8b827986_r.jpg&&&/figure&&p&&br&&/p&&p&另外,日本动漫《精灵宝可梦》的主要角色也榜上有名,包括初代女主小霞(かすみ)、智爷(サトシ)、就连皮卡丘也上榜了!!&/p&&p&&br&&/p&&p&《塞尔达传说》的塞尔达公主也上榜了,优达菌搞不清大伙的口味了。&/p&&p&&br&&/p&&p&&b&讲到数据分析,不得不安利下我们的求职加分班项目,&/b&4 周快速获得硅谷数据挖掘实战经验,为求职加分!&/p&&a href=&https://link.zhihu.com/?target=https%3A//cn.udacity.com/course/data-mining-sprint--nd678-cn-1%3Futm_source%3Dzhihu-oa%26utm_medium%3Dsocial%26utm_campaign%3Ddms& data-draft-node=&block& data-draft-type=&link-card& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据挖掘实战冲刺 | Udacity&/a&&a href=&https://link.zhihu.com/?target=https%3A//cn.udacity.com/course/image-recognition-sprint--nd679-cn-1%3Futm_source%3Dzhihu-oa%26utm_medium%3Dsocial%26utm_campaign%3Dirs& data-draft-node=&block& data-draft-type=&link-card& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&图像识别实战冲刺 | Udacity&/a&&a href=&https://link.zhihu.com/?target=http%3A//cn.udacity.com/course/natural-language-processing-sprint--nd892-cn-1%3Futm_source%3Dzhihu-oa%26utm_medium%3Dsocial%26utm_campaign%3Dnlps& data-draft-node=&block& data-draft-type=&link-card& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&自然语言处理实战冲刺 | Udacity&/a&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-dc43b5ee2afcd9f28450a3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-dc43b5ee2afcd9f28450a3_r.jpg&&&/figure&&p&&/p&
话在前头,这是一篇非常正经的数据分析文章,请不要用有色眼镜看待,没有种子谢谢~关注订阅号「优达学城」(id:youdaxue),私信回复关键词“pornhub”,获取完整数据分析报告。 不过还是要说一句,现在撤退还来得及..... 2017年各种回顾,优达菌最喜欢 Po…
&p&这个问题挺有意思,非数学专业,就从计算机的角度分析一下这个问题吧。&/p&&p&&br&&/p&&p&---我是条分割线----&/p&&p&&br&&/p&&p&为了分析这个问题,我先用y-cruncher跑出了π的前10亿位,感觉应该够用!&/p&&p&不够用也没办法了,内存有限,而且跑程序时CPU占用率100%,风扇吹的我心慌。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-91a4bf0b200_b.jpg& data-size=&normal& data-rawwidth=&472& data-rawheight=&104& class=&origin_image zh-lightbox-thumb& width=&472& data-original=&https://pic1.zhimg.com/v2-91a4bf0b200_r.jpg&&&figcaption&让人无奈的占用率&/figcaption&&/figure&&p&&br&&/p&&p&计算前10亿位共用时190.515秒,数据以txt的格式保存,大小976.563MB。&/p&&p&&br&&/p&&p&&br&&/p&&p&下面开始我们的分析工作。&/p&&p&&br&&/p&&p&先简单的搜索一下,发现自己能想到的几个六位数字都出现了(包括我的银行卡密码)&/p&&p&举几个例子:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-bdf450e5ed175e49c9d082_b.jpg& data-size=&normal& data-rawwidth=&912& data-rawheight=&607& class=&origin_image zh-lightbox-thumb& width=&912& data-original=&https://pic3.zhimg.com/v2-bdf450e5ed175e49c9d082_r.jpg&&&figcaption&000000出现在小数点后第1,699,927位&/figcaption&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a393e1fc3f2e67cc78c1edc0054dc59f_b.jpg& data-size=&normal& data-rawwidth=&912& data-rawheight=&607& class=&origin_image zh-lightbox-thumb& width=&912& data-original=&https://pic4.zhimg.com/v2-a393e1fc3f2e67cc78c1edc0054dc59f_r.jpg&&&figcaption&111111出现在小数点后第255,945位&/figcaption&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ebe9e56f1caba6b7cc67a5a0f213b069_b.jpg& data-size=&normal& data-rawwidth=&912& data-rawheight=&607& class=&origin_image zh-lightbox-thumb& width=&912& data-original=&https://pic2.zhimg.com/v2-ebe9e56f1caba6b7cc67a5a0f213b069_r.jpg&&&figcaption&222222出现在小数点后第963,024位&/figcaption&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f7ae6ac88c74dc2e51da3_b.jpg& data-size=&normal& data-rawwidth=&912& data-rawheight=&607& class=&origin_image zh-lightbox-thumb& width=&912& data-original=&https://pic4.zhimg.com/v2-f7ae6ac88c74dc2e51da3_r.jpg&&&figcaption&123456出现在小数点后第2,458,885位&/figcaption&&/figure&&p&&br&&/p&&p&&b&注:每行有1024个字符,所以计算公式应为1024*(行数-1)+列数-2,其中2为开头的“3.”&/b&&/p&&p&&br&&/p&&p&但是不可能手动把999全验证一遍吧(虽然我今天很闲),还是要写个程序跑一下。&/p&&p&&br&&/p&&p&&b&不考虑复杂度问题的话,&/b&代码很快就写完了,只有短短的14行。&/p&&div class=&highlight&&&pre&&code class=&language-text&&pwds = []
for num in range(1000000):
pwds.append(&0& * (6 - len(str(num))) + str(num))
with open(&Pi-.txt&,&r&)as f:
pai=f.read()
#输出字符串的长度和π的前109位
print(len(pai),pai[0:110])
for pwd in pwds:
stat.append([pwd,pai.index(pwd)-1])
if len(stat) % 1000 == 1:
print(stat[-1])
with open(&Pi-stat.txt&,&w&)as f:
for data in stat:
f.write(data[0]+':'+str(data[1])+'\n')
&/code&&/pre&&/div&&p&&br&&/p&&p&因为我用的是index,&b&如果密码不存在的话,则会直接抛出异常。&/b&但是我的直觉是999是都存在的(其实是我懒得多写代码了)&/p&&p&&br&&/p&&p&检索的速度大概是1000条/秒,接下来就是耐心的等待过程。&/p&&p&&br&&/p&&p&程序跑完了!不出所料,&b&所有的六位银行卡密码在π中都是存在的。&/b&&/p&&p&最后出现的密码是569540,位于小数点后14,118,307位.(10亿位有点过剩啊!)&/p&&figure&&img src=&https://pic3.zhimg.com/v2-dc0a499c84c4743ef0deaa18b3be262e_b.jpg& data-size=&normal& data-rawwidth=&661& data-rawheight=&607& class=&origin_image zh-lightbox-thumb& width=&661& data-original=&https://pic3.zhimg.com/v2-dc0a499c84c4743ef0deaa18b3be262e_r.jpg&&&figcaption&统计数据截图&/figcaption&&/figure&&p&同时我也把数据上传到百度网盘了,感兴趣的朋友们可以下载看一下。&b&所有需要的文件都在最下方。需要的朋友自取。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&留个彩蛋~&/p&&p&虽然π是无限不循环的,但是对我来说&b&只截止到小数点后7,599,477位。&/b&&/p&&p&&br&&/p&&p&---又是条分割线----&/p&&p&第一次收到这么多的赞。&/p&&p&于是我又写了个程序把π前10亿位中的生日给跑了出来,生日的范围为共计101年。&/p&&p&上代码~供有兴趣的朋友研究,可以一起讨论如何计算的更快。(感觉这个完全可以出一个面试题的!我水平是不太行,下面是我想到的方法。)&/p&&div class=&highlight&&&pre&&code class=&language-text&&month = {'01':31,'02':28,'03':31,
'04':30,'05':31,'06':30,
'07':31,'08':31,'09':30,
'10':31,'11':30,'12':31}
def judge(Jdate):
if int(Jdate[0:4]) & 1920 or int(Jdate[0:4]) & 2021:
return False
if int(Jdate[4:6]) & 12 or int(Jdate[4:6]) == 0:
return False
p = month[Jdate[4:6]]
if int(Jdate[4:6]) == 2 and int(Jdate[0:4])%4 == 0:
if int(Jdate[6:8]) & p or int(Jdate[6:8]) == 0:
return False
return True
with open(&Pi-.txt&,&r&)as f:
pai=f.read()
#输出字符串的长度和π的前109位
print(len(pai),pai[0:110])
for num in range(2,len(pai)-8):
if judge(pai[num:num+8]):
stat.append([pai[num:num+8],num-1])
if num % 1000000 == 0:
print(num)
stat.sort()
with open(&Pi-birthday.txt&,&w&)as f:
for data in stat:
f.write(data[0]+':'+str(data[1])+'\n')
&/code&&/pre&&/div&&p&&br&&/p&&p&&br&&/p&&p&---还是条分割线----&/p&&p&&br&&/p&&p&&b&大家不要私信给我发银行卡密码了!很危险的!真要查的话,可以看评论置顶,有个朋友分享了在线查询的链接。范围精确到2亿位。&/b&&/p&&p&&br&&/p&&p&下面的内容非程序员可忽略...&/p&&p&经评论区的朋友们启发,而且实在受不了别人喷我程序运行的慢了。又写了一个更快的检索&b&6位数字(就是所谓的银行卡密码)&/b&的算法。&/p&&p&感兴趣的程序员可以看一下。我感觉速度还行。十几秒钟就能检索完毕。更快的我暂时也还没想到..毕竟答主还只是一个大二在校生,也没搞过ACM竞赛,水平有限。&/p&&div class=&highlight&&&pre&&code class=&language-text&&#将999存到字典中,初始化出现的位置为正无穷(用10亿+1代替)
for num in range(1000000):
dic[&0& * (6 - len(str(num))) + str(num)] =
with open(&Pi-.txt&,&r&)as f:
pai=f.read()
#输出字符串π的长度和π的前109位
print(len(pai),pai[0:110])
#p=1,跳过了&3.&
#p允许的最大数值
p_max = len(pai)-1000000
倒序查找,开始时从第1000001位向第1位检索,
检索到第1位时,若字典中仍存在无穷大,则从
2000001位向1000001位检索。以此类推,直到
字典中不存在无穷大或者p大于p_max
in dic.values() and p&p_max:
for i in range(p+1000000,p,-1):
pwd = pai[i:i+6]
if i & dic[pwd]:
dic[pwd] = i-1
if i%100000 == 0:
p = p+1000000
with open(&pi-stat.txt&,'w')as f:
for item in dic.items():
f.write(item[0]+':'+str(item[1])+'\n')
&/code&&/pre&&/div&&p&&br&&/p&&p&&br&&/p&&p&---打开彩蛋的分割线----&/p&&p&&br&&/p&&p&一周前的彩蛋要打开了。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-3cebd95a077e147eae73_b.jpg& data-size=&normal& data-rawwidth=&779& data-rawheight=&607& class=&origin_image zh-lightbox-thumb& width=&779& data-original=&https://pic4.zhimg.com/v2-3cebd95a077e147eae73_r.jpg&&&figcaption&小数点后第7,599,469位至第7,599,477位&/figcaption&&/figure&&p&小数点后&b&7,599,469&/b&位至&b&7,599,477&/b&位是&b&,&/b&也就是号,一个女孩的生日咯~&a class=&member_mention& href=&//www.zhihu.com/people/27bb3ff0cba672ac65eed& data-hash=&27bb3ff0cba672ac65eed& data-hovercard=&p$b$27bb3ff0cba672ac65eed&&@宫野津优纪&/a& &/p&&p&&br&&/p&&p&&b&PS:发现好像有人通过我的回答直接关注了她,而且这些人也不关注我,我已经统统拉黑了。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&需要的文件在这里~&/b&&/p&&p&&br&&/p&&p&&b&六位银行卡密码出现位置&/b&&/p&&p&文件:&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1smIZWxJ& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pi-stat.txt&/a&&/p&&p&密码:8rc9&/p&&p&&br&&/p&&p&&b&生日出现位置&/b&&/p&&p&文件:&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1i6ULDMP& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pi-birthday.txt&/a&&/p&&p&密码:v4o4&/p&&p&&br&&/p&&p&&b&10亿位圆周率&/b&&/p&&p&文件:&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1df9ccA& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pi-.txt&/a&&/p&&p&密码:drq8&/p&&p&&br&&/p&&p&&b&2500万位圆周率&/b&&/p&&p&文件:&a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1qZNfSHe& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pi-.txt&/a&&/p&&p&密码:0aq8&/p&
这个问题挺有意思,非数学专业,就从计算机的角度分析一下这个问题吧。 ---我是条分割线---- 为了分析这个问题,我先用y-cruncher跑出了π的前10亿位,感觉应该够用!不够用也没办法了,内存有限,而且跑程序时CPU占用率100%,风扇吹的我心慌。 计算前10亿…
&p&蟹邀。&/p&&p&收集各种中二感爆棚的东西,是小电视的隐藏爱好之一。&/p&&p&别看这些东西表面上看来,奇怪且无用(划掉),但它们确实能带来愉~悦啊!(//▽//)&/p&&h2&&b&重大决策按钮&/b&&/h2&&figure&&img src=&https://pic4.zhimg.com/v2-53da026e61e4ee45adc563_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&305& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic4.zhimg.com/v2-53da026e61e4ee45adc563_r.jpg&&&figcaption&UP主:小豆蔻儿 av&/figcaption&&/figure&&p&小姐姐手上拿的,就是中二指数爆表的重大决策按钮!&/p&&p&光听名字的话,这个东西可能会难理解,其实它和电脑上的「回车」,或手机上的「发送」一样,功能超级简单。&/p&&p&通过USB接口插在电脑上,这个超大型的回车按钮就能使用了。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-3b6a17dfeb670ae0c5db_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&458& data-rawheight=&242& class=&origin_image zh-lightbox-thumb& width=&458& data-original=&https://pic4.zhimg.com/v2-3b6a17dfeb670ae0c5db_r.jpg&&&/figure&&p&如果你要回复一个重要信息的时候,比如22微信问我,下午茶想吃章鱼烧、还是鸡蛋仔的时候——&/p&&p&此刻,想象一个画面↓&/p&&p&小电视我经过认真思考,&br&在回复框里写下「章鱼烧」,&br&然后再郑重地按下放在电脑旁的红色按钮,&br&啪!&br&消息发送成功!&/p&&p&整个过程行云流水一气呵成,&/p&&p&一切显得那么有&b&仪式感&/b&,同时又那么的……&b&中二&/b&……&/p&&p&(*/ω\*)&/p&&hr&&p&&b&Minecraft的钻石剑雨伞&/b&&/p&&p&在Minecraft里,用两颗钻石和一根木棍合成的钻石剑,耐久度比较高,攻击力也比较强,是玩家们在游戏后期杀人越货时的必备道具。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-688f372ec274bacb454fbdeb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&221& data-rawheight=&127& class=&content_image& width=&221&&&/figure&&p&在Minecraft的世界之外,也有中二度爆表的钻石剑,不过此钻石剑换了个方式保护你,变身成为一把雨伞。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-7222abaaece80c571f99066_b.jpg& data-size=&normal& data-rawwidth=&487& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&487& data-original=&https://pic3.zhimg.com/v2-7222abaaece80c571f99066_r.jpg&&&figcaption&UP主:坏雪的乐高仓库 av&/figcaption&&/figure&&p&再想象一个画面↓&/p&&p&下雨天,&br&你在众目睽睽之下,&br&掏出一把「钻石剑」,&br&帅气地摘掉「剑鞘」,&br&以迅雷不及掩耳之势撑起一把钻石剑雨伞,&br&此时,在雨中,钻石剑雨伞似乎闪闪发光。&/p&&p&是不是也超级愉悦又超级中二啊……&/p&&p&值得一提的是,仔细看这把钻石剑雨伞的伞柄,还原度极高!&/p&&figure&&img src=&https://pic3.zhimg.com/v2-61aed10b76afcb5db7bbe_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&306& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-61aed10b76afcb5db7bbe_r.jpg&&&figcaption&UP主:坏雪的乐高仓库 av&/figcaption&&/figure&&p&一直在Minecraft里使用的钻石剑,能握在手中真实地感受到,也有一种愉悦的穿越感。&/p&&hr&&h2&&b&单眼眼罩&/b&&/h2&&p&在《中二病也要谈恋爱!》里,自称「邪王真眼使用者」的小鸟游六花,总戴着单眼眼罩,来遮住戴着金色美瞳的右眼。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-c32ffbc650d0d895daa3db2e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&554& data-rawheight=&309& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic2.zhimg.com/v2-c32ffbc650d0d895daa3db2e_r.jpg&&&/figure&&p&这个单眼眼罩,成为小鸟游六花的标志之一,也让她的中二指数再度升级。&/p&&p&其实,在现实生活中,这种单眼眼罩的用途很广,除了cosplay,这个眼罩更多的用在术后遮光、眼睛不舒服,或者需要单眼卸妆的时候。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2d9dfc9f204adfeb91212_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&459& data-rawheight=&241& class=&origin_image zh-lightbox-thumb& width=&459& data-original=&https://pic3.zhimg.com/v2-2d9dfc9f204adfeb91212_r.jpg&&&/figure&&p&只要一带上这个眼罩,不论是哪种风格的小姐姐,中二指数都马上飙升,立竿见影!&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fbb3ff01c70_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&307& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic1.zhimg.com/v2-fbb3ff01c70_r.jpg&&&figcaption&UP主:Vivekatt av&/figcaption&&/figure&&p&如果再搭配合适的衣服,你,就是可爱中二本人。&/p&&hr&&h2&&b&火漆&/b&&/h2&&p&在许多动画、影视作品里,都出现过「火漆」。&/p&&p&光听名字可能会比较陌生,但你一定见过它,直接上图↓&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fdabbf02eb33b7b060d377_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&305& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic4.zhimg.com/v2-fdabbf02eb33b7b060d377_r.jpg&&&figcaption&《黑执事》 av&/figcaption&&/figure&&p&这个在《黑执事》里用来封印信封的,就是火漆。用火漆封信封效果超级赞,不仅粘的很牢,更重要的是&b&仪式感Max&/b&!&/p&&p&火漆可以变换形态,比如在融蜡的时候,放两片树叶↓&/p&&figure&&img src=&https://pic1.zhimg.com/v2-768eb4cca86b6f7bb3c2030_b.jpg& data-size=&normal& data-rawwidth=&368& data-rawheight=&233& class=&content_image& width=&368&&&figcaption&UP主:会手工的小魔女 av&/figcaption&&/figure&&p&金色的火漆蜡配上金色的树叶,乍一看还以为是金色飞贼。&/p&&p&其实,除了传统的经典红色,以及贵族感满分的金色,火漆蜡还有其他各种颜色↓&/p&&figure&&img src=&https://pic3.zhimg.com/v2-137bd02ccf554d059af6e_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&298& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-137bd02ccf554d059af6e_r.jpg&&&figcaption&UP主:那一眼花秀 av&/figcaption&&/figure&&p&在融蜡的时候,还可以把不同颜色的火漆蜡调和,创造出独一无二的颜色。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a1e07f7cfa042b2b184b22_b.jpg& data-size=&normal& data-rawwidth=&316& data-rawheight=&183& class=&content_image& width=&316&&&figcaption&UP主:paji冫 av&/figcaption&&/figure&&p&用火漆蜡封信超级有复古的感觉,收到信的人也会觉得很独特,尤其在这个寄信频率直线下降的年代。&/p&&p&在盖章的刹那,你内心的中二之门也会随之打开,仿佛自己就是《黑执事》里19世纪英国的名门贵族。&/p&&hr&&h2&&b&霸王龙考古巧克力&/b&&/h2&&figure&&img src=&https://pic1.zhimg.com/v2-7b1fbeac0a9e8aad930018_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&305& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic1.zhimg.com/v2-7b1fbeac0a9e8aad930018_r.jpg&&&figcaption&UP主:台湾巢哥 av&/figcaption&&/figure&&p&这个看起来有点儿像恐龙拼图的盒子里,其实有恐龙化石在里面喔!&/p&&p&除了整块的巧克力,盒子里还有非常“专业”的考古工具——小锤子、小铲子和小刷子。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-41fe814a23fac26d03be75adbde0d9ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&554& data-rawheight=&303& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-41fe814a23fac26d03be75adbde0d9ce_r.jpg&&&/figure&&p&锵锵,「考古」开始!&/p&&p&先用小锤子把巧克力敲碎,用小铲子把巧克力一片一片铲起来。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5ef6c3d60bf7ca4ee580ce6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&554& data-rawheight=&302& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-5ef6c3d60bf7ca4ee580ce6_r.jpg&&&/figure&&p&再用小刷子把「浮土」慢慢地刷开,霸王龙的「化石」就出现了!这分明就是当年的那条霸王龙啊!&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e8cbc167c53_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&554& data-rawheight=&302& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic4.zhimg.com/v2-e8cbc167c53_r.jpg&&&/figure&&p&其实,在这个霸王龙考古巧克力里,不仅外面厚厚的一层是巧克力,「浮土」也是巧克力粉,藏在最里面的霸王龙「化石」是白巧克力,除了考古工具,其他全部都可以吃。&/p&&p&这可能是你吃过的最好吃的霸王龙啦~&/p&&p&如果单吃巧克力无聊的话,还可以用巧克力粉来泡饮料喝呢!(?﹃?)&/p&&hr&&h2&&b&魔卡少女樱的化妆刷&/b&&/h2&&figure&&img src=&https://pic3.zhimg.com/v2-7a178bd3aeaab1eb71516bda_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&554& data-rawheight=&277& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-7a178bd3aeaab1eb71516bda_r.jpg&&&/figure&&p&怀揣着魔法梦的少女们,如果拥有这套魔卡少女樱的化妆刷,真的是完全满足了各位小姐姐的中二情节!&/p&&p&这套化妆刷一共有6支,化妆刷的顶端分别有小可、小樱牌、库洛牌、封印之仗、星之仗,以及最终权杖,光是看着就觉得少女心爆棚↓&/p&&figure&&img src=&https://pic3.zhimg.com/v2-dca9f3401af2_b.jpg& data-size=&normal& data-rawwidth=&457& data-rawheight=&233& class=&origin_image zh-lightbox-thumb& width=&457& data-original=&https://pic3.zhimg.com/v2-dca9f3401af2_r.jpg&&&figcaption&UP主:壮圆Ring av&/figcaption&&/figure&&p&用这些化妆刷化妆时,说不定会有一种,自己一边画眼影、一边在解除封印的感觉。&/p&&p&毕竟是初代萌王的系列化妆刷,买回来即使不用,放在一旁供着也很赏心悦目,开心指数爆表nei~&/p&&hr&&h2&&b&搞怪冰箱贴&/b&&/h2&&p&冰箱贴,是容易被大家忽略的中二情结集中爆发的地方。&/p&&p&比如,屁屁冰箱贴↓&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8575dcc9c1cb55dbed2376_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&235& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-8575dcc9c1cb55dbed2376_r.jpg&&&figcaption&UP主:造物集 av&/figcaption&&/figure&&p&比如,「冷宫」冰箱贴↓(把冰箱称作冷宫莫名合适呢)&/p&&figure&&img src=&https://pic3.zhimg.com/v2-9f0ee9d05f0ed622e1a32d2_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&290& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-9f0ee9d05f0ed622e1a32d2_r.jpg&&&figcaption&UP主:米朵希 av&/figcaption&&/figure&&p&比如,大触自制的初代萌王冰箱贴↓&/p&&figure&&img src=&https://pic2.zhimg.com/v2-dc213eeab266a97ed1d07f01_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&322& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic2.zhimg.com/v2-dc213eeab266a97ed1d07f01_r.jpg&&&figcaption&UP主:落雨sS丶 av7883275&/figcaption&&/figure&&hr&&h2&&b&可以背的暖宝宝&/b&&/h2&&p&对于怕冷的同学,暖宝宝是冬天必备的日常用品。一般的暖宝宝比较小,通常用来暖手,今天要介绍的兔子暖宝宝,大到足以温暖你的心。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f26aa101d74cdf9e13c1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&377& data-rawheight=&268& class=&content_image& width=&377&&&/figure&&p&把热水袋放在兔子的身体里,拉好拉链,这个兔子就成了一个超大型的暖宝宝。&/p&&p&如果要外出,这个兔子暖宝宝还能华丽变身成一个萌到犯规的&b&包包!&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-95cb93e7bde6fec9eb3e_b.jpg& data-size=&normal& data-rawwidth=&554& data-rawheight=&303& class=&origin_image zh-lightbox-thumb& width=&554& data-original=&https://pic3.zhimg.com/v2-95cb93e7bde6fec9eb3e_r.jpg&&&figcaption&UP主:小豆蔻儿 av&/figcaption&&/figure&&p&能装东西又能暖手,重点是特别可爱,背着它去逛街一定回头率超高。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c0ad3ceab3d919aac5ef30a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&180& data-rawheight=&180& class=&content_image& width=&180&&&/figure&&p&没错,我就是什么都知道的小电视!&/p&
蟹邀。收集各种中二感爆棚的东西,是小电视的隐藏爱好之一。别看这些东西表面上看来,奇怪且无用(划掉),但它们确实能带来愉~悦啊!(//▽//)重大决策按钮小姐姐手上拿的,就是中二指数爆表的重大决策按钮!光听名字的话,这个东西可能会难理解,其实它和…
&figure&&img src=&https://pic3.zhimg.com/v2-da6e908fbff06e8e14c60d86d776d225_b.jpg& data-rawwidth=&768& data-rawheight=&576& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&https://pic3.zhimg.com/v2-da6e908fbff06e8e14c60d86d776d225_r.jpg&&&/figure&&p&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-abd42bbb61ee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&558& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&558& data-original=&https://pic3.zhimg.com/v2-abd42bbb61ee_r.jpg&&&/figure&&p&作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能:&br&&/p&&p&1) 去除(爱情)动作片中的马赛克&/p&&p&2) 给(爱情)动作片中的女孩穿(tuo)衣服&/p&&p&&br&&/p&&h2&生成式模型&/h2&&p&上一篇《&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&用GAN生成二维样本的小例子&/a&》中已经简单介绍了GAN,这篇再简要回顾一下生成式模型,算是补全一个来龙去脉。&/p&&p&生成模型就是能够产生指定分布数据的模型,常见的生成式模型一般都会有一个用于产生样本的简单分布。例如一个均匀分布,根据要生成分布的概率密度函数,进行建模,让均匀分布中的样本经过变换得到指定分布的样本,这就可以算是最简单的生成式模型。比如下面例子:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d11b5fb26d3cc8e942f841bafe010cd8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1021& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&1021& data-original=&https://pic1.zhimg.com/v2-d11b5fb26d3cc8e942f841bafe010cd8_r.jpg&&&/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&&p&&img src=&http://www.zhihu.com/equation?tex=%5Chat%7B%5Ctheta%7D%3D%5Coperatorname%2A%7Bargmax%7D_%7B%5Ctheta%7D+P%28%5Cbm%7Bx%7D%7C%5Ctheta%29+%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&&&/p&&p&MLE是一个最基本的思路,实践中用得很多的还有KL散度(Kullback–Leibler divergence),假设真实分布是P,采样分布是Q,则KL散度为:&/p&&p&&img src=&http://www.zhihu.com/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&&&/p&&p&从公式也能看出来,KL散度描述的是两个分布的差异程度。换个角度来看,让产生的样本和原始分布接近,也就是要让这俩的差异减小,所以最小化KL散度就等同于MLE。从公式上来看的话,我们考虑把公式具体展开一下:&/p&&p&&br&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=%5Cbegin%7Balign%7D+D_%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+%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+%26+%3D-%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29+%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&&&/p&&p&公式的第二项就是熵,先不管这项,用H(P)表示。接下来考虑一个小trick:从Q中抽样n个样本&img src=&http://www.zhihu.com/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&&p&&img src=&http://www.zhihu.com/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&&&/p&&p&其中&img src=&http://www.zhihu.com/equation?tex=%5Cdelta%28%5Ccdot%29& alt=&\delta(\cdot)& eeimg=&1&&是狄拉克&img src=&http://www.zhihu.com/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数,把这项替换到上面公式的P(x):&/p&&p&&br&&/p&&p&&img src=&http://www.zhihu.com/equation?tex=%5Cbegin%7Balign%7D+D_%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+%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+%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&&&/p&&p&因为是离散的采样值,所以&img src=&http://www.zhihu.com/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=&http://www.zhihu.com/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&的时候狄拉克&img src=&http://www.zhihu.com/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数才为1,所以考虑&img src=&http://www.zhihu.com/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&时这项直接化为1:&/p&&p&&br&&/p&&p&&img src=&http://www.zhihu.com/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&&&/p&&p&第一项正是似然的负对数形式。&/p&&p&说了些公式似乎跑得有点远了,其实要表达还是那个简单的意思:通过减小两个分布的差异可以让一个分布逼近另一个分布。仔细想想,这正是GAN里面adversarial loss的做法。&/p&&p&很多情况下我们面临的是更为复杂的分布,比如&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&上篇文章&/a&中的例子,又或是实际场景中更复杂的情况,比如生成不同人脸的图像。这时候,作为具有universal approximation性质的神经网络是一个看上去不错的选择[1]:&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-6fee20494f50baae2c1dc5fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1561& data-rawheight=&549& class=&origin_image zh-lightbox-thumb& width=&1561& data-original=&https://pic3.zhimg.com/v2-6fee20494f50baae2c1dc5fc_r.jpg&&&/figure&&p&所以虽然GAN里面同时包含了生成网络和判别网络,但本质来说GAN的目的还是生成模型。从生成式模型的角度,Ian Goodfellow总结过一个和神经网络相关生成式方法的“家谱”[1]:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8c6f1d8ee39dfbb4fcfb2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&771& data-rawheight=&498& class=&origin_image zh-lightbox-thumb& width=&771& data-original=&https://pic3.zhimg.com/v2-8c6f1d8ee39dfbb4fcfb2_r.jpg&&&/figure&&p&在这其中,当下最流行的就是GAN和&b&V&/b&ariational &b&A&/b&uto&b&E&/b&ncoder(VAE),两种方法的一个简明示意如下[3]:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-380cde71a2f6ece28b4a97_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&568& data-rawheight=&274& class=&origin_image zh-lightbox-thumb& width=&568& data-original=&https://pic4.zhimg.com/v2-380cde71a2f6ece28b4a97_r.jpg&&&/figure&&p&本篇不打算展开讲什么是VAE,不过通过这个图,和名字中的autoencoder也大概能知道,VAE中生成的loss是基于重建误差的。而只基于重建误差的图像生成,都或多或少会有图像模糊的缺点,因为误差通常都是针对全局。比如基于MSE(Mean Squared Error)的方法用来生成超分辨率图像,容易出现下面的情况[4]:&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-78f53b142fab51b0c09a1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&892& data-rawheight=&598& class=&origin_image zh-lightbox-thumb& width=&892& data-original=&https://pic2.zhimg.com/v2-78f53b142fab51b0c09a1_r.jpg&&&/figure&&p&在这个二维示意中,真实数据分布在一个U形的流形上,而MSE系的方法因为loss的形式往往会得到一个接近平均值所在的位置(蓝色框)。&/p&&p&GAN在这方面则完爆其他方法,因为目标分布在流形上。所以只要大概收敛了,就算生成的图像都看不出是个啥,清晰度常常是有保证的,而这正是去除女优身上马赛克的理想特性!&/p&&p&&br&&/p&&h2&马赛克-&清晰画面:超分辨率(Super Resolution)问题&/h2&&p&说了好些铺垫,终于要进入正题了。首先明确,去马赛克其实是个图像超分辨率问题,也就是如何在低分辨率图像基础上得到更高分辨率的图像:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-31c84b42ad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&784& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&784& data-original=&https://pic1.zhimg.com/v2-31c84b42ad_r.jpg&&&/figure&&p&视频中超分辨率实现的一个套路是通过不同帧的低分辨率画面猜测超分辨率的画面,有兴趣了解这个思想的朋友可以参考我之前的一个答案:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&如何通过多帧影像进行超分辨率重构? &/a& &/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&br&&b&N&/b&etwork》。这个工作的思路是:基于像素的MSE loss往往会得到大体正确,但是高频成分模糊的结果。所以只要重建低频成分的图像内容,然后靠GAN来补全高频的细节内容,就可以了:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-128029dfc7c470b07a4a1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&446& data-rawheight=&131& class=&origin_image zh-lightbox-thumb& width=&446& data-original=&https://pic2.zhimg.com/v2-128029dfc7c470b07a4a1_r.jpg&&&/figure&&p&这个思路其实和最早基于深度网络的风格迁移的思路很像(有兴趣的读者可以参考我之前文章&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&瞎谈CNN:通过优化求解输入图像&/a&的最后一部分),其中重建内容的content loss是原始图像和低分辨率图像在VGG网络中的各个ReLU层的激活值的差异:&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-331e02e394cfd04e7114a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&529& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&529& data-original=&https://pic3.zhimg.com/v2-331e02e394cfd04e7114a_r.jpg&&&/figure&&p&生成细节adversarial loss就是GAN用来判别是原始图还是生成图的loss:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fa5af2a10fe9a4dadfb04_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&394& data-rawheight=&89& class=&content_image& width=&394&&&/figure&&p&把这两种loss放一起,取个名叫perceptual loss。训练的网络结构如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-17861edeb4bcfae4e9f369_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&780& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&https://pic2.zhimg.com/v2-17861edeb4bcfae4e9f369_r.jpg&&&/figure&&p&正是上篇文章中讲过的C-GAN,条件C就是低分辨率的图片。SRGAN生成的超分辨率图像虽然PSNR等和原图直接比较的传统量化指标并不是最好,但就视觉效果,尤其是细节上,胜过其他方法很多。比如下面是作者对比bicubic插值和基于ResNet特征重建的超分辨率的结果:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f3b4376938ffcbd23c42d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&981& data-rawheight=&392& class=&origin_image zh-lightbox-thumb& width=&981& data-original=&https://pic2.zhimg.com/v2-f3b4376938ffcbd23c42d_r.jpg&&&/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&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e2ea753b7b0d7f18abee3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&485& data-rawheight=&437& class=&origin_image zh-lightbox-thumb& width=&485& data-original=&https://pic4.zhimg.com/v2-e2ea753b7b0d7f18abee3_r.jpg&&&/figure&&p&就是一个Conditional GAN,条件C是输入的图片。除了直接用C-GAN,这项工作还有两个改进:&/p&&p&1)&b&利用U-Net结构生成细节更好的图片&/b&[6]&/p&&figure&&img src=&https://pic4.zhimg.com/v2-beb074bebbfa0db_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&907& data-rawheight=&612& class=&origin_image zh-lightbox-thumb& width=&907& data-original=&https://pic4.zhimg.com/v2-beb074bebbfa0db_r.jpg&&&/figure&&p&U-Net是德国Freiburg大学模式识别和图像处理组提出的一种全卷积结构。和常见的先降采样到低维度,再升采样到原始分辨率的编解码(Encoder-Decoder)结构的网络相比,U-Net的区别是加入skip-connection,对应的feature maps和decode之后的同样大小的feature maps按通道拼(concatenate)一起,用来保留不同分辨率下像素级的细节信息。U-Net对提升细节的效果非常明显,下面是pix2pix文中给出的一个效果对比:&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2fb4ddb2fdc24eea31eea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&563& data-rawheight=&307& class=&origin_image zh-lightbox-thumb& width=&563& data-original=&https://pic3.zhimg.com/v2-2fb4ddb2fdc24eea31eea_r.jpg&&&/figure&&p&可以看到,各种不同尺度的信息都得到了很大程度的保留。&/p&&p&2)&b&利用马尔科夫性的判别器(PatchGAN)&br&&/b&&/p&&p&pix2pix和SRGAN的一个异曲同工的地方是都有用重建解决低频成分,用GAN解决高频成分的想法。在pix2pix中,这个思想主要体现在两个地方。一个是loss函数,加入了L1 loss用来让生成的图片和训练的目标图片尽量相似,而图像中高频的细节部分则交由GAN来处理:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cb180ad03d8a72e7883285b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&447& data-rawheight=&51& class=&origin_image zh-lightbox-thumb& width=&447& data-original=&https://pic4.zhimg.com/v2-cb180ad03d8a72e7883285b_r.jpg&&&/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=&https://pic2.zhimg.com/v2-5172ca51efb4ee3e453b15_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&842& data-rawheight=&107& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&https://pic2.zhimg.com/v2-5172ca51efb4ee3e453b15_r.jpg&&&/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&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fd28f0b871bd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&660& data-rawheight=&314& class=&origin_image zh-lightbox-thumb& width=&660& data-original=&https://pic2.zhimg.com/v2-fd28f0b871bd_r.jpg&&&/figure&&p&上图是一个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&&p&&a href=&http://link.zhihu.com/?target=https%3A//github.com/yahoo/open_nsfw& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&yahoo/open_nsfw&/a&&/p&&p&CAM的实现并不难,结合Open NSFW自动打码的代码和使用放在了这里:&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//github.com/frombeijingwithlove/dlcv_for_beginners/tree/master/random_bonus/generate_mosaic_for_porno_images& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&给XX图片生成马赛克&/a&&/p&&p&&br&&/p&&p&(成功打码的)效果差不多是下面这样子:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-cbefa39dc983f2645dd8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&768& data-rawheight=&256& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&https://pic1.zhimg.com/v2-cbefa39dc983f2645dd8_r.jpg&&&/figure&&h2&去除(爱情)动作片中的马赛克&/h2&&p&这没什么好说的了,一行代码都不用改,只需要按照前面的步骤把数据准备好,然后按照pix2pix官方的使用方法训练就可以了:&/p&&p&Torch版pix2pix:&a href=&http://link.zhihu.com/?target=https%3A//github.com/phillipi/pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&phillipi/pix2pix&/a&&/p&&p&pyTorch版pix2pix(Cycle-GAN二合一版):&a href=&http://link.zhihu.com/?target=https%3A//github.com/junyanz/pytorch-CycleGAN-and-pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/pytorch-CycleGAN-and-pix2pix&/a&&/p&&p&从D盘里随随便便找了几千张图片,用来执行了一下自动打码和pix2pix训练(默认参数),效果是下面这样:&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9f52b17c0e1296767cbfbfafc290a5bd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&814& data-rawheight=&691& class=&origin_image zh-lightbox-thumb& width=&814& data-original=&https://pic2.zhimg.com/v2-9f52b17c0e1296767cbfbfafc290a5bd_r.jpg&&&/figure&&p&什么?你问说好给女优去马赛克呢?女优照片呢?&/p&&figure&&img src=&https://pic1.zhimg.com/v2-480fb8a4dcfc7a4f92ec_b.jpg& data-caption=&& data-size=&normal& 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=&https://pic4.zhimg.com/v2-c4b1eeda364fb6c9bada02f3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&866& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&866& data-original=&https://pic4.zhimg.com/v2-c4b1eeda364fb6c9bada02f3_r.jpg&&&/figure&&p&左边的灰衣男只懂英语,右边的黑衣女只懂中文,现在的任务就是,要学习如何翻译英语到中文。对偶学习解决这个问题的思路是:给定一个模型&img src=&http://www.zhihu.com/equation?tex=f%3Ax%5Crightarrow+y& alt=&f:x\rightarrow y& eeimg=&1&&一上来无法知道f翻译得是否正确,但是如果考虑上&img src=&http://www.zhihu.com/equation?tex=f& alt=&f& eeimg=&1&&的对偶问题&img src=&http://www.zhihu.com/equation?tex=g%3Ay%5Crightarrow+x& alt=&g:y\rightarrow x& eeimg=&1&&,那么我可以尝试翻译一个英文句子到中文,再翻译回来。这种转了一圈的结果&img src=&http://www.zhihu.com/equation?tex=x%27%3Dg%28f%28x%29%29& alt=&x'=g(f(x))& eeimg=&1&&,灰衣男是可以用一个标准(BLEU)判断x'和x是否一个意思,并且把结果的一致性反馈给这两个模型进行改进。同样的,从中文取个句子,这样循环翻译一遍,两个模型又能从黑衣女那里获取反馈并改进模型。其实这就是强化学习的过程,每次翻译就是一个action,每个action会从环境(灰衣男或黑衣女)中获取reward,对模型进行改进,直至收敛。&/p&&p&也许有的人看到这里会觉得和上世纪提出的Co-training很像,这个在知乎上也有讨论:&/p&&p&&a href=&https://www.zhihu.com/question/& class=&internal&&如何理解刘铁岩老师团队在NIPS 2016上提出的对偶学习(Dual Learning)?&/a&&/p&&p&个人觉得还是不一样的,Co-Training是一种multi-view方法,比如一个输入x,如果看作是两个拼一起的特征&img src=&http://www.zhihu.com/equation?tex=x%3D%28x_1%2Cx_2%29& alt=&x=(x_1,x_2)& eeimg=&1&&,并且假设&img src=&http://www.zhihu.com/equation?tex=x_1& alt=&x_1& eeimg=&1&&和&img src=&http://www.zhihu.com/equation?tex=x_2& alt=&x_2& eeimg=&1&&互相独立,那么这时候训练两个分类器&img src=&http://www.zhihu.com/equation?tex=f_1%28%5Ccdot%29& alt=&f_1(\cdot)& eeimg=&1&&和&img src=&http://www.zhihu.com/equation?tex=f_2%28%5Ccdot%29& alt=&f_2(\cdot)& eeimg=&1&&对于任意样本x应该有&img src=&http://www.zhihu.com/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=&http://www.zhihu.com/equation?tex=f_1& alt=&f_1& eeimg=&1&&和&img src=&http://www.zhihu.com/equation?tex=f_2& alt=&f_2& eeimg=&1&&其实是两个不同,但是domain指向相同的任务。而Dual Learning中&img src=&http://www.zhihu.com/equation?tex=f& alt=&f& eeimg=&1&&和&img src=&http://www.zhihu.com/equation?tex=g& alt=&g& eeimg=&1&&是对偶任务,利用的隐含约束是&img src=&http://www.zhihu.com/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=&https://pic4.zhimg.com/v2-9e7396ebccb7c42302fc97_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&838& data-rawheight=&216& class=&origin_image zh-lightbox-thumb& width=&838& data-original=&https://pic4.zhimg.com/v2-9e7396ebccb7c42302fc97_r.jpg&&&/figure&&p&X和Y分别是两种不同类型图的集合,比如穿衣服的女优和没穿衣服的女优。所以给定一张穿了衣服的女优,要变成没穿衣服的样子,就是个图片翻译问题。CycleGAN示意图中(b)和(c)就是Dual Learning:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-de51cac58b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&347& data-rawheight=&62& class=&content_image& width=&347&&&/figure&&p&在Dual Learning基础上,又加入了两个判别器&img src=&http://www.zhihu.com/equation?tex=D_X& alt=&D_X& eeimg=&1&&和&img src=&http://www.zhihu.com/equation?tex=D_Y& alt=&D_Y& eeimg=&1&&用来进行对抗训练,让翻译过来的图片尽量逼近当前集合中的图片:&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&442& data-rawheight=&59& class=&origin_image zh-lightbox-thumb& width=&442& data-original=&https://pic4.zhimg.com/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_r.jpg&&&/figure&&p&全考虑一起,最终的loss是:&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e6d99e7edea969da3dad_b.jpg& data-caption=&& data-size=&norm

我要回帖

更多关于 兄弟们开火1至40集 的文章

 

随机推荐