珍的找不到网络路径wwW277gan目前可以收视的站,什么时候277gancOm可以会复正常

别的wwW1111fe样的站是啥,咋找不到tubecOm可以正常收视的地了_百度知道
别的wwW1111fe样的站是啥,咋找不到tubecOm可以正常收视的地了
我有更好的答案
是;jrae.us
采纳率:50%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。什么情况导致的wwWff636登不上,珍的找不到ff636cOm目前可以收视的站_百度知道
什么情况导致的wwWff636登不上,珍的找不到ff636cOm目前可以收视的站
我有更好的答案
思维方式不同,f3g.us 你别担心
采纳率:50%
为您推荐:
其他类似问题
wwwff636的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在家里的电脑wwW277gan上岸不上去这站了,详细是什么情形导致的277gancOm邓不上_百度知道
在家里的电脑wwW277gan上岸不上去这站了,详细是什么情形导致的277gancOm邓不上
我有更好的答案
pm3.tech" rel="nofollow" class="iknow-ueditor-link" target="_blank" title="只支持选中一个链接时生效">点。在幻变的生命里,岁月,就是最大的小偷://g7sz7。<a href="http
为您推荐:
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&figure&&img src=&https://pic3.zhimg.com/v2-18aca927abf8c95a22d5_b.jpg& data-rawwidth=&940& data-rawheight=&750& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic3.zhimg.com/v2-18aca927abf8c95a22d5_r.jpg&&&/figure&&p&快手,直到春节前,这个名字还只是在知乎上被黑地体无完肤的一个软件,当然,并不是唯一一个,不过这并不重要。&/p&&p&春节的时候,我回到乡下的农村,乡下信号极差,只能勉强看微信,村里有一个公共WiFi,至少还能连上网,一群年轻人就在那里蹭WiFi,不断用方言点评着某个美女的身材多好看,某个人又做了什么蠢事,哪个游戏主播多厉害,语言粗俗,声音还很肆无忌惮。我对他们全无好感,不过就在旁边默默拿着手机看着番剧,音量也不敢调太大,怕伤耳朵。这时候其中一个小伙子凑过来,问我在看什么,&/p&&p&我:我在看动漫,日本动漫。&/p&&p&他扑哧笑了,说你几岁了啊?还看动漫?还是日本鬼子的?玩快手吗?&/p&&p&不玩。&/p&&p&抖音呢?&/p&&p&抖音是什么?&/p&&p&你就看动漫?&/p&&p&对啊。。。。。&/p&&p&他没再说什么,可能觉得和我没什么共同语言,就回去了,继续和他的朋友看视频,我也默默地看番,不过声音也小了点。&/p&&p&年前说要搞事情,村里要举办自己人的村晚,大伙们也非常积极,虽然我没有加入村里的微信群,但是周围人忙前忙后的,我也不好意思什么都不做,而村晚的组委会也给我分了任务,就是写节目串词,其实我也不会写,就一半百度一半脑补写了串词交了上去。到了村晚,&b&我惊讶地发现我的串词根本用不上,因为无论这些句子多美,辞藻多华丽,都没办法用方言来读出来,而且那些老一辈的人根本不会普通话,所以当晚的串词,都是主持人现编的,贴切,能引起台下人的共鸣&/b&。而那些晚会的节目也和我的想象大相庭径,有一首歌是清唱的,因为音响坏了,另一首歌的歌手忘词 了,拿着手机唱的,跳舞的小孩,近乎梦游,一个隔壁村的大妈唱本土戏剧,就是听个响,至少在我看来如此。&/p&&p&emmmm大概就是这种感觉:&/p&&a class=&video-box& href=&https://link.zhihu.com/?target=https%3A//www.zhihu.com/video/101440& target=&_blank& data-video-id=&& data-video-playable=&& data-name=&& data-poster=&https://pic2.zhimg.com/80/v2-cea98eee5ba612b7d7664a5_b.jpg& data-lens-id=&101440&&
&img class=&thumbnail& src=&https://pic2.zhimg.com/80/v2-cea98eee5ba612b7d7664a5_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/101440&/span&
&p&舞者也好,歌者也好,都是普通人,没有专业训练,但是就是很热闹,大家都很开心,我也是农村孩子,但我发现我离农村已经很远了,我不会写农村人用方言说的名字,听不来那些戏曲,对于那些直白而又略显粗俗方言典故异常陌生。&/p&&p&我没办法坚持到晚会结束,就滚回家了。但是,不可否认的是,在场的绝大多数,都很激动,很开心,有一个老奶奶听说有晚会,坐着轮椅过来看了,我的爷爷奶奶也去了,因为他们的小孙女也在台上表演,开心地不得了,他们很喜欢这些表演,即使小孩子跳得不整齐,唱得像念经,他们就是喜欢热闹。&/p&&p&这让我想起了快手,那么多人喜欢,我却只是听说过。也正因为如此,我决定去了解一下快手,我买了一部新的手机,在上面下载了快手,以避免自己的网络活动对快手给我的推送带来影响【&i&虽然我觉得这种行为是脱裤子放屁(方言,表示多此一举)&/i&】,我也没有注册账号,就单纯看热度最高的那些视频。&/p&&p&虽说毛爷爷说没有调查就没有发言权,不过我也不会什么数据挖掘,就单纯从这些视频来看的话,就会很轻易地发现,这些视频,大多数的背景,都是在农村、小城市里,制作粗糙,演技浮夸,这也符合了我对快手的第一映像。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1f3fbfed4_b.jpg& data-rawwidth=&1080& data-rawheight=&5526& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic1.zhimg.com/v2-1f3fbfed4_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-3b7e568e76b3d32d515d_b.jpg& data-rawwidth=&1080& data-rawheight=&14028& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic3.zhimg.com/v2-3b7e568e76b3d32d515d_r.jpg&&&/figure&&p&看这些标题的风格:红底白字的统一格式,长辈朋友圈的文风,我看这些封面的心情,就和看长辈的朋友圈和看某些微信群聊的聊天记录一样,感觉这根本就不是这个年代的东西。&/p&&p&当然,快手也不乏一些教程视频、游戏视频、还有无论哪个视频分享网站都不可或缺的小姐姐(现在知乎的类似“美女”营销号也不少),但是这些远不能称得上是主流。&/p&&p&如果我试着去描绘一个快手用户的典型肖像的话,这个人应该是:&b&最高学历为本科以下,生活在农村或者小县城,比较爱国,工作是第一第二产业或者低端服务业,月薪在个税起征点以下;平时的社交仅限于本地方言区&/b&,只有在快手,才能得到其他地方的人的关注的一个非常普通的中国式小人物,这种群体,代表着中国的另一面,也是中国的最重要的一面。&/p&&p&其实这些人平时是没什么机会在网上发声的,以前你至少要有一部电脑才能上网,其实这些人能够活跃,快手这种类型的让我们觉得很low的平台能够流行起来,得益于物质基础的堆积,这包括三个方面:智能手机等移动上网设备的平民化,高质量的通讯基站,马斯洛低级需求层次的基本满足。&/p&&p&如果单纯从视频的内容来看,无论是作死自虐还是吃一些稀奇古怪的东西,这些都是外国视频分享网站玩剩下的东西,Facebookb还直播强奸呢,,,,,,中国作为第三世界发展中国家,这类视频多了些并没有什么奇怪。我听云南山歌,觉得非常不舒服,或者说,来自民间的文化,本来就是普通人喜闻乐见的,在一些方言中脏话就和口头禅一样信手拈来,也并不会给周围人带来反感,不过是文化不同罢了。快手创始人宿华这样说到:“中国虽然大,可以说只有两块地方:一是城市,一是乡村。”中国14亿人口,互联网的发展让那些何不食肉糜的高级玩家发现了中国的最普遍的生存现状,而他们却惊恐地闭上了双眼,以为这样就可以把那些低级玩家赶出这个游戏,其实快手的内容一直都存在,微信朋友圈展现了一次,快手也更加丰富地展现了一次而已,这就是中国,这就是中国的生活,只不过以前他们没有能力展现出来而已。&/p&&p&&b&有一家这样的网站,它的名字是tumblr,它有着丰富多彩的图片、文章、视频的分享,很多是从其他社交网站分享过来的,每个帖子都可以自定义绑定一些相关的话题,这种话题绑定的方式,可以让用户逐渐建立起自己的个性化页面,也就是说如果你喜欢摄影,那么你可以通过个性化设置和特定关注把tumblr变成摄影博客网站。但是有一点很有趣的是,色情图片、视频也可以轻易上传而不受监管,也就是说只要你愿意,只关注一些r特定的话题,tumblr就会变成嘿嘿嘿网站&/b&了,于是就出现了这样的问题:&/p&&a data-draft-node=&block& data-draft-type=&link-card& href=&https://www.zhihu.com/question/& class=&internal&&为什么Tumblr的用户都把它用来看黄图?&/a&&p&同理,如果你在知乎上关注了一些嘿嘿嘿的话题和轮子哥这类老司机,知乎就会变成低配版tumblr。&/p&&p&我之所以要提这些,因为在使用筛选工具的情况下,一个网站在不同人的手里,就会变成完全不同的网站。快手同理,快手坐拥7亿用户,如果进行适当分区,每个人都可以找到自己感兴趣的那部分。&/p&&p&前文我也描绘过典型的快手用户画像,在观看快手的视频分享中,我发现了一个特殊的人群,来自非洲的黑人,在高热度的视频中,我总能找到黑人小哥修汽车,黑人小哥砌墙,黑人生活,有一些是在非洲拍摄,有一些是中国拍摄,我比较惊讶的是有个黑人小哥中文特别厉害,声调分得很清楚,要知道,我在B站关注的几个白人up主,口语真的是小学生水平,,,,,而黑人用户的评论区不乏歧视性词语,这种排外情绪,恰恰符合快手用户的典型特征。中国上千年的乡村文明,就是一个排外性质的社会,这个在费孝通的《乡土中国》也有类似表述。&/p&&p&快手的短视频的制作,非常简单,手机拍摄短短几秒十几秒的镜头,不用剪辑不要配音,非常方便,所以无论是你是街边小贩还是农场大妈,都能轻而易举地完成,清真面馆的大叔都可以上传几秒刀削面的制作视频,喊一声老铁双击六六六,这些平常生活中无法找到同样兴趣的普通人,无法展现自己的拙劣而略显粗俗的表演的人,在日常生活中只有无尽的工作、打牌喝酒的人,发现自己并不孤单,发现自己可以和全国乃至海外的同人互动时,他们通过快手展现自己的生活,展现自己的工作,展现自己的爱好,我觉得这才是真实的快手,正如快手的宣传图片一样:&b&忠于自我,并不孤独&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0609fac6a90f138d3dcb148f1f6061db_b.jpg& data-rawwidth=&1104& data-rawheight=&544& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1104& data-original=&https://pic4.zhimg.com/v2-0609fac6a90f138d3dcb148f1f6061db_r.jpg&&&figcaption&https://www.kuaishou.com/&/figcaption&&/figure&&p&为什么会孤独?因为人只有吃饱了才会想生活。&/p&&p&而当今的社会主要矛盾是“&b&我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾&/b&。”&/p&&p&如果没有快手这一类平台,&b&这些人,可能就是平淡地生于斯,长于斯,葬于斯,像被风刮起的尘土一样,瞬间生成而瞬间消失&/b&,这就是他们的悲哀,他们跳着社会摇,是因为他们只会跳社会摇,他们穿着最廉价的衣服,带着5块钱一副的眼镜,那是因为他们也只能装备得起这种道具了,他们真的只有5毛特效,但是这并不能阻止他们展现自己。如果不违法,那这就是他们的自由。快手里的那些被认为是低俗的视频,永远也不会消失,因为即使是在美国的YouTube上,这种视频也是存在的,也是有市场的,而你若只专注与这些视频,那么我觉得在你眼里,没有不低俗的网站,毕竟大多数人,包括我,也不过是俗人罢了,阳春白雪与下里巴人,本来就是以受众面的大小来划分的。而且快手庞大的用户基数,也注定它会是多元的&/p&&p&有在外闯荡的&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f0d0af7da59_b.jpg& data-rawwidth=&640& data-rawheight=&1099& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-f0d0af7da59_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&有在家钻研的&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2fe683a6aaf9ee0497ccf_b.jpg& data-rawwidth=&640& data-rawheight=&1095& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-2fe683a6aaf9ee0497ccf_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&也有打游戏的&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a341bfa5cbb6a5996e14_b.jpg& data-rawwidth=&1280& data-rawheight=&585& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-a341bfa5cbb6a5996e14_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&至于我,快手上我感兴趣的东西,我在其他网站也能找到,而且更丰富,我不感兴趣的,也没必要看,快手并不能带给我多大的共鸣。所以快手,其实对于我来说唯一存在的价值就是让我写完这篇文章了,这也是这个春节的一个小感想。不知道快手以后会不会有让我重新下载的理由?&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ebb0aac2cfe_b.jpg& data-rawwidth=&1080& data-rawheight=&1346& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic1.zhimg.com/v2-ebb0aac2cfe_r.jpg&&&/figure&&p&&/p&
快手,直到春节前,这个名字还只是在知乎上被黑地体无完肤的一个软件,当然,并不是唯一一个,不过这并不重要。春节的时候,我回到乡下的农村,乡下信号极差,只能勉强看微信,村里有一个公共WiFi,至少还能连上网,一群年轻人就在那里蹭WiFi,不断用方言点…
&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://pic1.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://pic1.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=&https://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=&https://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=&https://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=&https://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=&https://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=&https://www.zhihu.com/equation?tex=%5Cdelta%28%5Ccdot%29& alt=&\delta(\cdot)& eeimg=&1&&是狄拉克&img src=&https://www.zhihu.com/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数,把这项替换到上面公式的P(x):&/p&&p&&br&&/p&&p&&img src=&https://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=&https://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=&https://www.zhihu.com/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&的时候狄拉克&img src=&https://www.zhihu.com/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数才为1,所以考虑&img src=&https://www.zhihu.com/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&时这项直接化为1:&/p&&p&&br&&/p&&p&&img src=&https://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://pic4.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://pic4.zhimg.com/v2-6fee20494f50baae2c1dc5fc_r.jpg&&&/figure&&p&所以虽然GAN里面同时包含了生成网络和判别网络,但本质来说GAN的目的还是生成模型。从生成式模型的角度,Ian Goodfellow总结过一个和神经网络相关生成式方法的“家谱”[1]:&/p&&figure&&img src=&https://pic1.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://pic1.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://pic1.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://pic1.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://pic1.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://pic1.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://pic2.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://pic2.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://pic3.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://pic3.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://pic1.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://pic1.zhimg.com/v2-17861edeb4bcfae4e9f369_r.jpg&&&/figure&&p&正是上篇文章中讲过的C-GAN,条件C就是低分辨率的图片。SRGAN生成的超分辨率图像虽然PSNR等和原图直接比较的传统量化指标并不是最好,但就视觉效果,尤其是细节上,胜过其他方法很多。比如下面是作者对比bicubic插值和基于ResNet特征重建的超分辨率的结果:&/p&&figure&&img src=&https://pic4.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://pic4.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://pic1.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://pic1.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://pic4.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://pic4.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://pic1.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://pic1.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://pic4.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://pic4.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=&https://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=&https://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://pic4.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://pic4.zhimg.com/v2-cbefa39dc983f2645dd8_r.jpg&&&/figure&&h2&去除(爱情)动作片中的马赛克&/h2&&p&这没什么好说的了,一行代码都不用改,只需要按照前面的步骤把数据准备好,然后按照pix2pix官方的使用方法训练就可以了:&/p&&p&Torch版pix2pix:&a href=&https://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=&https://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://pic4.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://pic3.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://pic3.zhimg.com/v2-c4b1eeda364fb6c9bada02f3_r.jpg&&&/figure&&p&左边的灰衣男只懂英语,右边的黑衣女只懂中文,现在的任务就是,要学习如何翻译英语到中文。对偶学习解决这个问题的思路是:给定一个模型&img src=&https://www.zhihu.com/equation?tex=f%3Ax%5Crightarrow+y& alt=&f:x\rightarrow y& eeimg=&1&&一上来无法知道f翻译得是否正确,但是如果考虑上&img src=&https://www.zhihu.com/equation?tex=f& alt=&f& eeimg=&1&&的对偶问题&img src=&https://www.zhihu.com/equation?tex=g%3Ay%5Crightarrow+x& alt=&g:y\rightarrow x& eeimg=&1&&,那么我可以尝试翻译一个英文句子到中文,再翻译回来。这种转了一圈的结果&img src=&https://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=&https://www.zhihu.com/equation?tex=x%3D%28x_1%2Cx_2%29& alt=&x=(x_1,x_2)& eeimg=&1&&,并且假设&img src=&https://www.zhihu.com/equation?tex=x_1& alt=&x_1& eeimg=&1&&和&img src=&https://www.zhihu.com/equation?tex=x_2& alt=&x_2& eeimg=&1&&互相独立,那么这时候训练两个分类器&img src=&https://www.zhihu.com/equation?tex=f_1%28%5Ccdot%29& alt=&f_1(\cdot)& eeimg=&1&&和&img src=&https://www.zhihu.com/equation?tex=f_2%28%5Ccdot%29& alt=&f_2(\cdot)& eeimg=&1&&对于任意样本x应该有&img src=&https://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=&https://www.zhihu.com/equation?tex=f_1& alt=&f_1& eeimg=&1&&和&img src=&https://www.zhihu.com/equation?tex=f_2& alt=&f_2& eeimg=&1&&其实是两个不同,但是domain指向相同的任务。而Dual Learning中&img src=&https://www.zhihu.com/equation?tex=f& alt=&f& eeimg=&1&&和&img src=&https://www.zhihu.com/equation?tex=g& alt=&g& eeimg=&1&&是对偶任务,利用的隐含约束是&img src=&https://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://pic2.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=&https://www.zhihu.com/equation?tex=D_X& alt=&D_X& eeimg=&1&&和&img src=&https://www.zhihu.com/equation?tex=D_Y& alt=&D_Y& eeimg=&1&&用来进行对抗训练,让翻译过来的图片尽量逼近当前集合中的图片:&/p&&p&&br&&/p&&figure&&img src=&https://pic3.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://pic3.zhimg.com/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_r.jpg&&&/figure&&p&全考虑一起,最终的loss是:&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e6d99e7edea969da3dad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&357& data-rawheight=&87& class=&content_image& width=&357&&&/figure&&p&也许有人会问,那不加cycle-consistency,直接用GAN学习一个&img src=&https://www.zhihu.com/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&的映射,让生成的Y的样本尽量毕竟Y里本身的样本可不可以呢?这个作者在文中也讨论了,会产生GAN训练中容易发生的mode collapse问题。mode collapse问题的一个简单示意如下[1]:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-309fce6329592babb784ed_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&842& data-rawheight=&262& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&https://pic1.zhimg.com/v2-309fce6329592babb784ed_r.jpg&&&/figure&&p&上边的是真实分布,下边的是学习到的分布,可以看到学习到的分布只是完整分布的一部分,这个叫做partial mode collapse,是训练不收敛情况中常见的一种。如果是完全的mode collapse,就是说生成模型得到的都是几乎一样的输出。而加入Cycle-consistency会让一个domain里不同的样本都尽量映射到另一个domain里不同的地方,理想情况就是双射(bijection)。直观来理解,如果通过&img src=&https://www.zhihu.com/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&都映射在Y中同一个点,那么这个点y通过&img src=&https://www.zhihu.com/equation?tex=Y%5Crightarrow+X& alt=&Y\rightarrow X& eeimg=&1&&映射回来显然不可能是多个不同的x,所以加入cycle-consistency就帮助避免了mode collapse。这个问题在另一篇和CycleGAN其实本质上没什么不同的方法DiscoGAN中有更详细的讨论[11],有兴趣的话可以参考。&/p&&p&&br&&/p&&p&有一点值得注意的是,虽然名字叫CycleGAN,并且套路也和C-GAN很像,但是其实只有adversarial,并没有generative。因为严格来说只是学习了&img src=&https://www.zhihu.com/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&和&img src=&https://www.zhihu.com/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&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-57eaadc8cec5190bfd30_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&758& data-rawheight=&207& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&https://pic4.zhimg.com/v2-57eaadc8cec5190bfd30_r.jpg&&&/figure&&p&其实就是两个GAN结构,其中生成网络和判别网络中比较高层的部分都采用了权值共享(虚线相连的部分),没有全职共享的部分分别处理不同的domain。这样每次就可以根据训练的domain生成一个样本在两个domain中不同的对应,比如戴眼镜和没戴眼镜:&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-356a6118ccf3e8e3bf1c7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&791& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&791& data-original=&https://pic2.zhimg.com/v2-356a6118ccf3e8e3bf1c7_r.jpg&&&/figure&&p&分别有了共有特征和各自domain特征,那么做mapping的思路也就很直接了[14]:&/p&&p&&br&&/p&&figure&&img src=&https://pic7.zhimg.com/v2-8ac50600e40feaac345e09bd7e05a83d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&771& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&771& data-original=&https://pic7.zhimg.com/v2-8ac50600e40feaac345e09bd7e05a83d_r.jpg&&&/figure&&p&在GAN前边加了个domain encoder,然后对每个domain能得到三种样本给判别器区分:直接采样,重建采样,从另一个domain中transfer后的重建采样。训练好之后,用一个domain的encoder+另一个domain的generator就很自然的实现了不同domain的转换。用在图像翻译上的效果如下:&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-612e9cf5e125fd626be7db_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&444& data-rawheight=&544& class=&origin_image zh-lightbox-thumb& width=&444& data-original=&https://pic2.zhimg.com/v2-612e9cf5e125fd626be7db_r.jpg&&&/figure&&p&还有个巧妙的思路,是把CoGAN拆开,不同domain作为C-GAN条件的更加显式的做法[15]:&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ddec16d502c94f91ea35_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&883& data-rawheight=&398& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&https://pic1.zhimg.com/v2-ddec16d502c94f91ea35_r.jpg&&&/figure&&p&第一步用噪声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&&p&&br&&/p&&h2&给女优穿上衣服&/h2&&p&其实同样没什么好说的,Cycle-GAN和pix2pix的作者是一拨人,文档都写得非常棒,准备好数据,分成穿衣服的和没穿衣服的两组,按照文档的步骤训练就可以:&/p&&p&Torch版Cycle-GAN:&a href=&https://link.zhihu.com/?target=https%3A//github.com/junyanz/CycleGAN& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/CycleGAN&/a&&/p&&p&pyTorch版Cycle-GAN(pix2pix二合一版):&a href=&https://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&Cycle-GAN收敛不易,我用了128x128分辨率训练了穿衣服和没穿衣服的女优各一千多张,同样是默认参数训练了120个epoch,最后小部分成功“穿衣服”的结果如下:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fee34d66c386e0e01e5804_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1117& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&https://pic4.zhimg.com/v2-fee34d66c386e0e01e5804_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-de57c5ebefa4251ee3caa1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1117& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&https://pic4.zhimg.com/v2-de57c5ebefa4251ee3caa1_r.jpg&&&/figure&&p&虽然都有些突兀,但好歹是穿上衣服了。注意马赛克不是图片里就有的,是我后来加上去的。&/p&&p&那么,脱衣服的例子在哪里?&/p&&figure&&img src=&https://pic4.zhimg.com/v2-480fb8a4dcfc7a4f92ec_b.jpg& data-caption=&& data-size=&normal& 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=&https://link.zhihu.com/?target=http%3A//torch.ch/blog//gan.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Torch | Generating Faces with Torch&/a&&/p&&p&[3] A. B. L. Larsen, S. K. S?nderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a&br&learned similarity metric. In ICML, pages , 2016.&br&&/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&&p&&br&&/p&&p&[9] &a href=&https://link.zhihu.com/?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&/a& &/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&&p&&br&&/p&&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&&p&&br&&/p&&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&&p&&br&&/p&&p&&b&3)&/b&预训练模型有没有?有,但是我研读了中华人民共和国刑法第三百六十三、三百六十四和三百六十六条,完全读不懂,所以还是不提供。再说就算我提供了,根据1)和2),看到你想看的内容也是需要运气的。&/p&&p&另外特别感谢赞赏的知友们,这篇文章是想说&b&书中自有颜如玉&/b&,而知友们的赞赏让我知道&b&书中真有黄金屋&/b&,古人诚不我欺…&/p&
作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能: 1) 去除(爱情)动作片中的马赛克2) 给(爱情)动作片中的女孩穿(tuo)衣服 生成式模型上一篇《》中已经简单介…
感谢&a data-hash=&28bb2b6ff09a4ab2efff& href=&//www.zhihu.com/people/28bb2b6ff09a4ab2efff& class=&member_mention& data-hovercard=&p$b$28bb2b6ff09a4ab2efff&&@yolfilm&/a& 的赞!大V果然威力无穷,一夜之间多出了数百赞和三倍于此的收藏,惊呆中。振奋精神继续更新……&br&&br&手机打字不易,请各位不吝点赞。&br&&br&≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡&br&&br&以下很多书都是看过不止一遍的,没题主说的那么严重,算是推推书吧,注明作者一是向他们致敬,二是为了方便大家找同个作者的其他作品。排名不分先后,聊到哪儿是哪儿。&br&&br&1、锋锐的《复活之战斗在第三帝国》(万年老坑终于开始填了,堪比当年老猪填紫川);&br&&br&2、灰熊猫的《伐清》(搞笑中别有一番哲理,他的《窃明》《虎狼》就不多说了);&br&&br&3、徐公子胜治的人鬼神系列(靠谱的修仙教程,不一样的仙侠体验,仙草,大爱);&br&&br&4、录事参军《重生之官道》《我的老婆是军阀》(很大气的书,其中官道我看了不下四遍,不信天上掉馅饼的《重生之衙内》也不错,虽然有些俗套);&br&&br&5、烟雨江南《罪恶之城》《亵渎》《狩魔手记》《尘缘》(此人出品,必是精品);&br&&br&6、常书欣《黑锅》《超级大忽悠》《余罪》等(都市好文,强力推荐。作者没什么名气时相当勤奋,好书不断惊喜连连,大火之后反而懒散了,让等书看的小白们情何以堪);&br&&br&7、特别白《锦衣当国》(窃以为这是作者目前所作四本明穿书中最好的一本,其他三本为《恶明》《顺明》《大明武夫》,好书。刚发现,原来特别白也在知乎混);&br&&br&8、撒冷《艳遇谅解备忘录》《yy之王》《仙魔经纪人》(艳遇这本书称得上人生恋爱教程,老书中的经典,撒冷当年红极一时,很是写了几本好书,可惜后来作者忙着把《诸神的黄昏》改编成网页游戏,逐渐荒废了写作);&br&&br&9、血红《邪风曲》(血红的书我只看的进这一本,奇怪);&br&&br&10、七十二编《冒牌大英雄》(又一本抹了断续膏的太监文,神书);&br&&br&11、随轻风去《奋斗在新明朝》《大明官》(有趣的书,闷骚的作者,深得吾爱);&br&&br&12、如莲如玉《小地主》(情真意切,感人肺腑的种田文);&br&&br&13、阿菩《唐骑》(大唐的逆袭,热血文);&br&&br&14、肖申克117《普天之下》(穿越者潜伏逆袭蒙古帝国,值得一看);&br&&br&15、晴了《调教初唐》(穿越大唐经典小说,连载时极受欢迎,此后作者有江郎才尽之嫌);&br&&br&16、多一半《唐朝好男人》(唐穿小说里程碑式作品,作者是高级知识分子,书香门第出身,作品恬淡温馨又不失幽默,从文风到情节堪称开创了一代穿越新潮流,可惜写到后面改出实体书,更新比奥特慢奥公公还难,我跟读了N年,曾亲眼目睹许多著名太监出宫,都没看到这书的结局,不过据说书已完本,那就慢慢等吧);&br&&br&17、天使奥斯卡奥公公奥特慢的书(从追看1911时的惊为天人到后来的无尽怨念,爱恨纠结中……);&br&&br&18、戴小楼《大明春》(各种好看,可耻的太监,可谓爱之深责之切,此书虽然进宫了,依然值得一看,推荐);&br&&br&19、落魄三哥《怒海归航》《乌合之众》(此人所著全是太监,书是好书人是奇人,慎入)&br&&br&20、骁骑校《国士无双》(大时代的一朵浪花,李云龙一般的真汉子);&br&&br&21、老白牛《明末边军一小兵》(尚未完本,暂停一年刚刚又开始更新,据说这次肯定完本);&br&&br&22、赵子曰《蚁贼》(元末乱世,看邓大官人既不大炼钢铁,也不私造玻璃,由马贼而红巾,由红巾而逐鼎。此书构思宏大文字精炼,人物刻画栩栩如生跃然纸上,实为穿越文中不可多得的好书);&br&&br&23、得闲读书《台湾娱乐1971》(合理党,另有一品黄山的《东方好莱坞》与此相似,书不错,可惜有些烂尾);&br&&br&24、蝴蝶蓝《全职高手》(好书不解释,笑得不要不要的);&br&&br&25、八宝饭《大唐新秩序》(十三太保的年代,武人的时代)《道门法则》(另类的修仙,极度搞笑,入宫);&br&&br&26、草上匪《草清》(反清的另一条思路,和平演变);&br&&br&27、吹牛者《临高启明》(群穿典范生存教材,类似的还有迷失在一六二九、新世界1620、穿越1630之崛起南美、远东1628,写得各有千秋);&br&&br&28、无语中《曲线救国+二鬼子汉奸李富贵》(老牌经典,无节操无下限);&br&&br&29、苍天白鹤《星际之亡灵帝国》《异界之光脑威龙》(升级流爽文,解闷专用,后来写的《武神》虽说质量不减,深受某点广大小白追捧,但套路化同质化严重,作者始终没能跳出来,遗憾);&br&&br&30、蚕室废人《北唐》(好书!可惜是个太监。据传作者靠这本书受到韩三平关注,成功打入主流电影圈内部,由此看来恢复更新是遥遥无期了);&br&&br&ps:跳舞、流浪的蛤蟆、月关、静官、林海听涛、梦入神机等大牌,他们的书覆盖各种题材,全部推荐,都是很努力很有才气的作者;&br&&br&31、无罪《通天之路》(末世废土流修真,后宫爽文,书荒时可看);&br&&br&32、牛笔《艳照门徒》(猥琐胖子扮猪吃虎流都市文,搞笑。后来因为某点整风,书名好像改为门徒了,作者还有一本文风同样淫荡的《绝顶》);&br&&br&33、崔走召《我当鸟人的那几年》《我当阴阳先生的那几年》《跳大神》(东北风格奇人奇事,朴实的故事);&br&&br&34、方想《修真世界》(都批判这本过于商业化,但商业化不好吗?起码好看);&br&&br&35、远征士兵《越战的血》(军文没落期的后起之秀,喜欢此类的不可不看,早期优秀军文曾经很多,比如刘猛的《狼牙》《最后一颗子弹留给我》、我是特种兵《兵王》、刺血《狼群》、梦回汉唐《从春秋走向战国》、中悦《石油咽喉保卫战》、卫悲回《夜色》、卫华《醒狮》、纷舞妖姬《弹痕》《第五部队》、最后的游骑兵《终身制职业》,当年铁血论坛全盛时此类作品层出不穷,怀念……);&br&&br&36、雪夜冰河《无家》(解放战争题材,像严肃文学多过网络文学,题材沉重文笔出色);&br&&br&37、我爱黄颖《抗日之血肉长城》(大家一窝蜂写抗日文的时候,这本算是其中很不错的一本);&br&&br&38、揽嫦娥射日《抗日之幸存者》(仅看两个章节就被牢牢吸引住了,开篇极好,后面虽然有这样那样的网文通病,但通篇来说不失为一本好书,可惜最终还是被神兽啃掉小jj进宫了)&br&&br&39、黑色柳丁《命运的抉择》(女主穿越,争霸世界,不知谁爱好这一口?)&br&&br&40、黑暗荔枝《我的女友是丧尸》(一本明明很啰嗦却让人不感觉啰嗦的好书,能把末日题材写出欢乐气息的也就是这本了);&br&&br&41、半仙算命《道藏美利坚》(后宫、装B、修仙、都市、爽文);&br&&br&42、斩空《高衙内新传》(早期穿越好书,估计许多人不知道,文笔胜过传统文学,轰动一时,一度断更,数年后作者人品爆发才得以完本);&br&&br&43、府天(女作家)《高太尉新传》(前有《高衙内新传》,后有《高太尉新传》,有趣,太尉比衙内稍逊);&br&&br&44、柯山梦《晚明》(历史类穿越好书,双主角);&br&&br&45、宅猪《重生西游》(可与《佛本是道》并肩的搞笑洪荒爽文);&br&&br&46、黯然销魂《大亨传说》(向上世纪八九十年代香港电影致敬!向发哥、张国荣、谭校长、邓丽君、梅艳芳、林青霞、赵雅芝、王祖贤、钟楚红致敬!感谢他们给我的少年时代带来的欢乐和憧憬!那真是个繁花似锦的年代……);&br&&br&47、屠狗者《骗艳记》(又一本经典的猥琐胖子扮猪吃虎流搞笑修真小说,似乎死胖子总是很受欢迎⊙ω⊙);&br&&br&48、集古字《文物贩子在唐朝》(很有书香味道的网络小说,喜欢传统文化的请进,别被恶俗的书名骗到,实为大雅);&br&&br&49、管杀不管埋《以革命的名义》(一部波澜壮阔的法国大革命历史巨篇,一个黑眼睛黄皮肤中国人的传奇);&br&&br&50、黄初《北美1776》(美国式民主形成的过程和本质,好书);&br&&br&51、骑着王八砍鲨鱼《重生美利坚》(牛仔时代狂想曲,教父是怎样炼成的);&br&&br&52、鬼狼《筚路蓝缕》(中国星际移民者开发新星球的艰难历程,史诗型故事);&br&&br&53、虎贲氏《争隋》《铁骑》(男人看的书,隋唐新故事);&br&&br&54、布老虎吃人《重活》(喜欢周行文《重生传说》的可以看看);&br&&br&55、初恋璀璨如夏花《重生之心动》(纯纯的年代,纯纯的感情,与奥尔良烤鲟鱼堡的《重生之大涅槃》交相辉映。一直以为这本书是女作者所著,当时很奇怪一个女人怎么能如此了解男孩子的心态,受评论提醒又百度了一下,果真是男银……);&br&&br&56、赤虎《商业三国》(三国穿越文的鼻祖之一,在某点掀起一股三国热,后面跟风者也颇出了几本不错的作品,比如《风流三国》《一统三国》等);&br&&br&57、酒徒《明》《家园》(有独立思想的老牌网文作家,明穿开创者);&br&&br&58、雁九《重生于康熙末年》(以女作者的细腻,将康熙宠臣江宁织造曹家的复兴史娓娓道来,堪称红楼前传,另:小楼明月《迷失在康熙末年》,古龙岗《水煮清王朝》都不错);&br&&br&59、淡墨青衫《大汉龙腾》《清明上河图》(作者不错,书也不错,因为少泼了点狗血没奥公公那么红,但人品比奥公公强多了);&br&&br&60、cuslaa《宰执天下》(当红好书,有评论说宋穿最佳者不过阿越的《新宋》和此书,而后者又高出一筹,依我看,这两本根本就不是一个风格,都是好书, 不必比较孰高孰低。作者的《大宋帝国征服史》也很好);&br&&br&61、青玉狮子《乱清》(追看中……);&br&&br&62、都梁《血色浪漫》《亮剑》(推荐只看过电视剧版本的童鞋看看原著,更加精彩,神作!);&br&&br&63、绯红之月《赤色黎明》(穿到清末发展共产主义,开天辟地第一本三观无比正确的网络小说,绝对主旋律!不知道作者是否在宣传部工作,如果不是,可惜了……);&br&&br&64、寻香帅《复唐》(作者编的一手好故事);&br&&br&65、国王陛下《从前有座灵剑山》(另类修仙小说,各种脑洞大开,各种神吐槽,各种无节操无下限……摘录一句:“你好歹也是贵族出身,诗词歌赋一窍不通,骈文写不出,公文写不正,连白话文都写不好,这德行也只配去写小说了) ;&br&&br&66、志鸟村《重生之神级学霸》(极爽的一本书,细节,细节才是王道啊童鞋们!作者为营造一个爽点就像最耐心的猎人一点一点接近猎物,直到最佳时机才断然出手。此书简直是改开之后中国生物学发展野史,八零年代科研汪们不得不说的故事,若非读到这本书,我等工科狗是怎么也接触不到《细胞》《科学》的奇妙世界);&br&&br&67、银河九天《疯狂的硬盘》(挺有趣的黑客故事,各种阴差阳错造就出一个蠢萌又狡黠的超级黑客,时常让人捧腹。书到后期,作者对情节的掌控力度明显减弱,不过整体而言仍是本值得一看的好书);&br&&br&更新(其实是评论区的命题作文^ω^,有些文不对题)&br&&br&68、zhttty《无限恐怖》(无限流开山鼻祖,足可与《鬼吹灯》《魔法学徒》《飘渺之旅》《明》《重生传说》《龙蛇演义》等书比肩。在我的第一印象中,《无限恐怖》是一本脑洞狂开的传奇作品,里面充满了各种各样真正的奇思妙想,兼之作者讲的一手好故事,而且文笔不错,很快受到某点众小白大力追捧,随后跟风之作四起,无限流热得一塌糊涂。作者zhttty因为起了一个莫名其妙的英文字母名字在刚开始红的时候被称为字母哥,其实直到现在我也没记住 (这名字还是临时搜索得来),感觉他受日漫和同人小说启发不小,继而首创无限流。不过说实话,我主要看历史和仙侠类小说,因为个人口味问题没有跟读到底,但是印象很深,的确好书);&br&&br&更新……&br&&br&69、白面黑厮《北美大唐》(刚刚挖掘的一本群穿,脑洞巨开,意识形态全球输出,建立异时空灯塔国。虽然剧情发展过快,但仍然属于合理党,目前接近完本,可以一看);&br&&br&9月1日更新……&br&&br&70、尤前《我家徒弟又挂了》(很好玩的书,呆萌的师父和不让人省心的徒弟之间的故事。看多了争霸天下的男频小说,偶尔看下欢乐温馨的女频书也挺不错的。笑料十足,强力推荐);&br&&br&10月17日更新……&br&&br&71、尝谕《重活了》(喜欢后宫熟女暧昧流的可看,优点是细节和心理描写很细腻,缺点是情节推进比较yy。作者绝逼是个闷骚的人,能看得出他码字的时候代入感很深,现实生活里那点儿不敢宣著于口的念想全在小说里实现了,属于白日梦型选手);&br&&br&72、爱会永恒《东北灵异档案》(又一本东北风格出马小说,作者写的很用心,书也很好看,有声版本更棒,推荐试听);&br&&br&73、骷髅精灵《机动风暴》《武装风暴》《星战风暴》(机甲流小说,三部曲都挺不错的,第一部最佳。作者以一部网游小说《猛龙过江》一举成名,此后一发不可收拾);&br&&br&74、豆子惹的祸《小仙有毒》《升邪》(书荒时,这是两本能够让人眼前一亮的好书,欢乐轻松且情节紧凑,人物刻画生灵活现,值得一看。);&br&&br&75、蓝晶《魔法学徒》《魔武士》《魔盗》《魔眼》等(蓝大的小说不用多说,堪称中国西方魔幻第一,当年多少人追读魔法学徒如痴如醉,导致后面跟风的写手一大群,但我想告诉大家的是蓝大最擅长的并非这个,而是小黄文,嘿嘿);&br&&br&10月18日更新……&br&&br&76、檀郎(又名雅易安,业界人称色安,读者称他为安公公、三贞九烈雅易安)《保卫乳房》《蛊惑人心》《从头再来》《重生的飘渺之旅》等(色安是著名的淫荡型选手,擅长都市题材,行文老辣,文风幽默,刻画暧昧场景堪称入骨,喜欢这种风格的童鞋一定要看《保卫乳房》,在此隆重向大家推荐,但这厮人品不好,当年也是著名的坑王,这里推的四本中前三个完本,飘渺挂掉了至今未填实在可惜);&br&&br&77、发飙的蜗牛《网游之练级专家》《贼胆》《重生之贼行天下》(蜗牛写书不少,个人感觉以这三本为佳,都是网游类);&br&&br&78、冬天里的熊《战国福星大事记》(非常小众的日本战国题材,如果没有玩过N年前的太阁立志传系列游戏,看这个还真是有点头大,但作者优秀的文字功底完全弥补了这一题材缺陷,整部小说温馨欢乐,情节流畅,值得一看。对了,这也是本太监后又出宫的小说,难得!);&br&&br&10月19日更新……&br&&br&79、习惯步行《灾星》《煞星》(早期官场小说,反腐题材,情节合理笔力十足,好书。在穿越重生题材大行其道的时期灾星这本书能火,足见其功);&br&&br&80、古龙岗《水煮清王朝》《后锋》《发迹》《裂土美利坚》《白日梦之三国》《香港从1949开始》《混在抗战》等(高产作者,虽然谈不上部部精品,但书的品质还是很不错的,因为早期连续三本小说都是穿越到清朝,被戏称:三生投鞑古龙岗);&br&&br&81、天子《铁骨》(民国流小说中极为出色的一本,男主由黄埔而北伐,由内战至国战,从大陆征战到东南亚立国,用经济征服欧美,用军事征服日本,情节设置相当爽,而且字数足够多篇幅足够长,看起来很过瘾的一本书);&br&&br&82、庚新《曹贼》(三国题材中不可不看的一本,好书,强推);&br&&br&83、寂寞剑客《混在三国当军阀》(书名起的随意,内容可一点都不随意,实为热血历史文,大赞之,只是结尾有些仓促,美中不足);&br&&br&84、克里斯韦伯《天下节度》(挺规矩的历史类小说,文笔、情节、故事都不错,喜欢金手指者莫入);&br&&br&85、李兴禹《我的美女大小姐》(都市后宫流佳作,人物生动,幽默搞笑,值得一看,同类好书还有傲无常的《老婆爱上我》、天堂羽《貌似纯洁》);&br&&br&10月20日更新……&br&&br&86、齐橙《工业霸主》(某点少有的工业题材穿越小说,以老国企为起点一步步壮大,真实刻画了改开初期落后的我国工业面对世界的窘境和艰难的崛起之路,男主扮猪吃虎打脸各国技术高手是一大看点,挺爽的。这本书笔法平淡,生活气息浓重,不吹不黑,不狂开金手指不狗血,用故事吸引读者,推荐阅读);&br&&br&87、断桥残雪《修真老师生活录》《修真研究生生活录》(扮猪吃虎的装逼后宫流都市修真小说);&br&&br&88、就是芦苇《重生1998》(音乐题材,重生回去做钢琴家,作者在音乐方面有着很深的理解,连续几本书都和音乐有关,书中关于音乐方面的见解可称仙草,读之有益,很涨见识);&br&&br&89、梦未醒《共和国之怒》(很久很久以前就被河蟹神兽啃掉小鸡鸡的作品,还有几人记得这本书……);&br&&br&90、善水《召唤大领主》(高校文学教师作品,前严肃文学作者,绝非小白文,风格幽默欢乐,大忽悠型男主,西幻后宫流);&br&&br&91、懵懂的猪《重生寡头1991》(穿越至苏联解体之前,作为一个混迹于中苏边界的走私商人深度介入苏联政治,立足远东成为该国寡头之一。作者对苏联解体前后时期的政治经济了解之深入令人惊叹,非常写实,杠杠的好书);&br&&br&92、黑乎乎的老妖《网游之最强房东》(从文风来说,作者的ID并不贴切,应该叫骚乎乎的老妖才对,当美女工作室的房东居然监守自盗拿下其中好几个……好看的网游后宫文);&br&&br&10月21日更新……&br&&br&93、七十二翼天使《英雄无敌之十二翼天使》(英雄无敌类网游文,作者很擅长这种题材,文字流畅,情节合理,游戏内外均有亮点,可读之书);&br&&br&10月23日更……&br&&br&94、陈词懒调《回到过去变成猫》(温馨轻松生活类小说,在起点网拥有点推比3

我要回帖

更多关于 gpedit.msc找不到 的文章

 

随机推荐