知识ip训练营圈训练营是做什么的呀?听起来很厉害的样子

为什么有些人,做什么都很厉害?
为什么有些人,做什么都很厉害?
为什么有些人,做什么都很厉害?听说40岁的陈坤,改造了他的工作室,瞬间惊艳了整个设计圈。随便发几张照片给大家看看,不得不说,这是一个很nice的工作室。窗明几净的办公室,绿意盎然的窗外景色,简单的色调,却给人一种舒服的享受。或许,这就是我们理想中的办公室,而非层层叠叠拥挤的办公桌。陈坤,是一个好演员,好歌手,甚至作为一个生意人,他又有属于他自己独特的眼光。而此时,他却是一个设计界的新秀。为什么有些人,他们做什么都很厉害?或许你会说,他是明星啊,有钱有资本。可是你别忘了,在走红之前的陈坤,也不过是一个普通人家的孩子。不可否认或许在演戏上他有天赋,凭借着自身努力得到现在的一切,这点也也毋庸置疑。或许偶像太遥远,就不如来说说身边的朋友。因为写文章时遇见的一个女生,她比我更早签约了公众号。她的文章总是很美,记录了很多生活最美好的一切。她总是淡淡的笑着,却可以将微笑融化在你的心里。一开始对她的印象是个很文艺,爱拍照的姑娘。慢慢的接触下来,发现她写得一手好字,她爱瑜伽爱跑步爱运动,是个健康达人。可就是这样一个看起来温柔的姑娘,她的本职工作竟然是个狱警。不错,就是TVB电视剧里那些看管犯人的女狱警。我曾经幻想过很多次她穿着警服的样子,然而却始终无法将她抬着头,在阳光下沐浴时温柔的模样联系起来。对了,她还有一项绝活,她是个炒股高手。据说,她因为炒股赚取了人生的第一桶金。当时她还什么都不会,却有着魄力跟着别人下注。久而久之,自己竟也成了这方面的一个半吊子专家。但她对于炒股,从来没有那么偏执和狂热。她说,这不过是挣点她旅游的钱。是的,她还是个热爱生活热爱旅行的姑娘。她最近的一次旅游,定在了尼泊尔,一个陌生而又神秘的国度。有时候看着她的朋友圈,总是会心生羡慕。也曾这样撒着娇跟她说,好羡慕你到处玩。然而她却说,只是把所有的节假日时间都用来加班,再凑一个大假期出去浪。朋友圈晒出的,往往都只是我们生活中比较光鲜的部分。我们只看到她到处走到处逛的潇洒,却忘记了那些夜深人静的加班时刻,只有她一个人在单位的看管所里坐着。炒股真的很容易吗?很多在其中摔过跤的人都知道,这有多烧脑。别看她说的云淡风轻,谁都不知道不专业的她在背后花了多少时间来钻研。正如,你只看到了别人的成绩,却不知道他在背后默默付出的努力。其实,别人不是做什么都很厉害,他只是把时间都花在有用的地方。敢不敢专注的做一件事?无论是看书工作还是健身,不玩手机不开小差,不聊天不刷屏不打游戏?只要熬过了最初的21天,我就是不一样的我。欢迎监督,连续21天,每天打卡看书一小时。你也有想要监督的事吗?留言相互监督,以一个不定价格的红包为赌注。想要的来!
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 我们是春里小鸭,我们都有个不世俗的爱好!
作者最新文章关于闰年(长文,多图,逻辑预警,手机码字请勿喷)&br&------------------------我是分割线------------------------&br&&br&99%的人,也就是几乎所有人都知道闰年是四年一次,年份除以4能整除就是闰年。&br&但是只有大约20%的人知道当遇到整百年份的时候,必须能够整除四百才能算是闰年。所以2000年是闰年,但是年都不是。想象我们这代也是可悲,这种冷门知识竟然不能亲身体验。&br&但是还有一个1%的人都不知道的细节你们可能都不知道,查万年历也有时候也会错。&br&-------------------我是分割线----------------------&br&&br&好了,高潮来了今年是2016年,本着“要装逼不要妹子”的原则我在一个我很喜欢的妹子朋友圈下面留言。&img data-rawwidth=&719& data-rawheight=&1280& src=&/cbf73a3c17_b.jpeg& class=&origin_image zh-lightbox-thumb& width=&719& data-original=&/cbf73a3c17_r.jpeg&&&br&装逼不成,反倒被嫌弃了。&br&妹子很聪明,至少是20%以上,但是却不是那最聪明的1%。(她真的是一个很聪明伶俐的姑娘!)&br&无所谓,转头截屏给我大学室友发过去了,结果室友被我piapia的打脸了。(他真的是一个数学很好的小伙子!)&br&&img data-rawwidth=&750& data-rawheight=&1334& src=&/3369daef54b4dfeed1de_b.jpeg& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/3369daef54b4dfeed1de_r.jpeg&&&img data-rawwidth=&750& data-rawheight=&1334& src=&/1d2b1d8b947fe0cada33dd_b.jpeg& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/1d2b1d8b947fe0cada33dd_r.jpeg&&&br&&br&后面我是怎么骂他的我就不贴了。为什么一个堂堂数学系高材生会错呢?&br&&br&根据我上面讲过的“姿势”,公元1500年的2月28日之后的一天应该是3月1号,但是这也就是为什么他不是那最顶尖的1%。&br&事情是这样的,四年一次闰年是来自于古罗马的儒略历,大约在公元前340年左右被采用(我不是学历史的,突发奇想来答题而已,没查)的。儒略历为了统一计算地球绕太阳一周所需要的365.24天的时间而每四年加一天为闰年。而那时候二月是一年的最后一天,所以加在了二月上。&br&可能有细心的人发现了是365.24不是365.25,还是差了0.01天。事实上当时人们已经意识到了,但是可能和本人一样,比较懒就没管。他们这代人没管,下一代人也没管,但是到了公元1500年之后,人们发现不对了!春分比书本上计算的要差了10天!要知道当时的1%的精英知道这是为什么,但是老百姓不知道啊!耕种要看农时啊!&br&这个问题必须要改革!于是罗马教廷的格里高利十三世教皇主持了一次会议,采用了一个意大利医生的方案,也就是今天20%的人们所知道的:整百年份要整除四百才算闰年。这样就基本完全符合了365.24天的准确时间并沿用至今。&br&-----------------------我再分割一下--------------------&br&要想成为现代1%的人儿请看这里:&br&规矩定好了,老百姓开心了,但是回去一查黄历还是少了十天啊!于是教皇发出广大号召:“同志们听我说!为了补上差的十天,下周四(日)睡觉醒了之后,直接把黄历撕掉十天算周五!(日)”&br&于是就补回了差的十天,形成了今天的公历。&br&所以在1582年之前的历法是没有整百年规则的儒略历,也就是说1500年还算是闰年,有2月29日这一天。之后才有百年整除四百才算闰年的规则了,也就是格里高利历法。&br&所以正确答案是:&br&日第二天是3月1日,不是闰年。&br&日第二天是2月29日,是闰年。&br&装了逼就跑,真刺激!&br&-----------------------最后割一次-------------------------&br&即便如此,今天的格里高利历还是不那么精确,因为再具体一些是&a href=&tel:365.&/a&22天转一圈(后面还有别的小数,记不住了??),所以根据今天的历法,到了3300年那一年还要差一天!但是本着我懒我自豪和“有待子孙后代去解决”的原则,到那时候再说吧!&br&如果你这个也知道了,那么恭喜你,你是现代人口中百分之一里的百分之一!&br&&br&&br&百分之一的百分之一耶!是不是逼格更高呢~&br&&br&&br&而你得到的奖励是:更加被妹子所讨厌!
关于闰年(长文,多图,逻辑预警,手机码字请勿喷) ------------------------我是分割线------------------------ 99%的人,也就是几乎所有人都知道闰年是四年一次,年份除以4能整除就是闰年。 但是只有大约20%的人知道当遇到整百年份的时候,必须能够整除…
还记得毛球定理吗?你永远无法梳平一个毛球。&br&&br&木星是气态星球,木星好比毛球,它的气体流动就是毛的方向。&br&&br&大红斑就是你给毛球梳平之后炸起来的那佐毛。
还记得毛球定理吗?你永远无法梳平一个毛球。 木星是气态星球,木星好比毛球,它的气体流动就是毛的方向。 大红斑就是你给毛球梳平之后炸起来的那佐毛。
结合这个问题说一个题外话。&br&汉语的好处就是认识&a href=&tel:&&&/a&字就能阅读大部分文献,坏处就是专业词汇和通用词汇不易区分。比照英文就很清楚。&br&&br&癌这个词同时是通用词汇和专业词汇。癌作为通用词对应cancer,而癌作为专业词,其对应应该是carcinoma。这个词严格讲只限定于上皮来源的恶性肿瘤,非上皮来源的肿瘤有其他名称,如白血病、胶质瘤、淋巴瘤、横纹肌肉瘤,都是恶性却不能称癌。恶性肿瘤的统称应该是malignant tumor,或MT,但日常用语中,经常把癌等同MT,才有了血癌、淋巴癌、脑癌这些专业上严重错误的说法。&br&&br&肝癌,胃癌,结肠癌之类的词,一般是通用词汇,但也可以作为专业词汇。用英文就很清楚。比如肝癌,liver cancer这个词可能大家都认识,但hepatic carcinoma 甚至 hepatocellular carcinoma,这一看就是专业词汇。但其对应的中文,肝癌和肝细胞癌,就没那么明显。&br&类似的,brain tumor 不难认识,但meningioma就比较扎眼了。这两个词对应的中文,脑瘤和脑膜瘤,中文中看起来差别就很小。&br&&br&通用词汇上的肝癌,只是说肝脏的癌症,说脑瘤,其实是脑壳里面的肿瘤,这跟说大腿上的肿瘤,肚子里的肿瘤没有本质区别。&br&&br&但人们总是习惯用简单的词汇,这就产生一个用语习惯问题。因为肝脏的恶性肿瘤95%以上都是肝细胞癌,所以很多时候liver cancer就等同于hepatocellular carcinoma,肝癌基本可以替代肝细胞癌,但严格的讲,肝癌其实还有可能是胆管细胞癌。与之对应,脑瘤里面,各种类型发病率差距不大,为了避免混淆,一般要说胶质瘤、脑膜瘤等专业的病理词汇了。&br&&br&所以,人体的心脏恶性肿瘤为啥比肝脏恶性肿瘤少,其实类似于:肝癌中肝细胞癌为啥远多于胆管细胞癌,肚子里面恶性肿瘤为啥比大腿多,甚至死于车祸的人为啥比死于艾滋病的人多。其实这就是发病率。而影响肿瘤发病率的因素,我只能说一言难尽了。
结合这个问题说一个题外话。 汉语的好处就是认识字就能阅读大部分文献,坏处就是专业词汇和通用词汇不易区分。比照英文就很清楚。 癌这个词同时是通用词汇和专业词汇。癌作为通用词对应cancer,而癌作为专业词,其对应应该是carcinoma。这个词严格…
&p&美国哥伦比亚特区沃伦案、以及石城镇对冈萨雷斯案,其影响远比南京彭宇案恶劣得多。&/p&&p&看完后就会明白,为什么章莹颖案美国警方效率这么低,为什么最终得FBI出手才能抓到嫌疑犯。&/p&&br&&br&&p&先看沃伦案(来自网络,侵删):&/p&&p&1975年3月某个周日清晨,卡洛琳o沃伦和琼o托利弗正在华盛顿特区一间租住的公寓里睡觉,楼下,是一位名叫米里亚姆o道格拉斯的年轻女人和她四岁的女儿。当时所有人还在熟睡,忽然二楼的公寓门被两名壮汉踹开,这两人是穷凶极恶的歹徒,他们冲入米里亚姆母女的卧室,当着小孩的面轮奸了她的母亲。卡洛琳和琼本来在熟睡,却被楼下米里亚姆的惨叫声惊醒,立即拨打911报案,说明其公寓遭到入侵,请求警方提供援助。电话那边告诉她保持安静,让她放心,保证警方会及时前去。然而事后证明,接电话的调度员并没把这起报案当回事,因为他只给了巡警2级准则(code 2), 而根据华盛顿警察条例,此类型犯罪应该是1级准则(code 1)。显然后者的话,更能获得巡警重视。早上六点半左右,卡洛琳和琼从窗户爬上屋顶躲藏。她俩看到了赶来的警车,但其中一辆警车直接开了过去。另一辆警车下来一个警察,他敲了公寓的门,因为没听到任何回复,也离开了。卡洛琳和琼只好又爬回自己的房间里,并再次听到米里亚姆的惨呼。之后两个女孩再次打了911; 并要求立即提供援助。这次,警察向她俩保证援助已经在路上。然而事后发现,这次电话的处理结果却是:“随便查查”,而且没有安排任何警员为此出警。卡洛琳和琼误以为警察真的马上来了,便下楼来救助米里亚姆,结果被罪犯发现。两名犯罪分子便持刀将三个女人劫持到了另一公寓,并在之后的14小时里对三人进行轮奸、殴打和抢劫。三女中的两人被迫进行性行为,同时另一女则被两罪犯轮奸。所幸后来三女侥幸逃生。(真的是“所幸”,因为同类型犯罪,受害者能活命的概率小于17%)。&/p&&p&三女虽然发起了诉讼,但是美国联邦下级法庭却宣布此案不予受理。其解释是: &b&警方对于大众的保护责任是广义的,并不存在对具体某一公民的特殊责任,故警察对于卡洛琳和琼的报案,没有任何具体法律义务的存在&/b&。三女又上诉到哥伦比亚特区上诉法庭,而哥伦比亚特区上诉法院在1981年以4-3的票数肯定了下级法庭的判决。 同年,美联邦最高法院也决定对本案上诉不予受理。这说明了最高法院的态度。&/p&&p&注意,美国法律属于英美法系,属于典型的案例法体系,任何案例一旦宣判,便会在一定范围内,对所有同类型案件产生法律效力,供法官作为审判依据,除非之后该案例被推翻。由于哥伦比亚上诉法庭是联邦高级法庭,故其案例的判决对全美国有效。&/p&&p&该案开创了一个先例,表明警方与普通公民之间不存在任何具体的法律义务。结果此案震动了所有美国普通人。他们发现,当他们面临突发的人身危险时,警察可能根本指望不上。可能只有他们被杀后,警察才会以刑事案件为依据,对犯罪者进行逮捕。&/p&&br&&br&&p&再看冈萨雷斯案(来自网络,侵删):&/p&&p&科罗拉多州石城镇居民杰西卡o冈萨雷斯在1999年时与其夫西蒙办理离婚。在此期间,西蒙一直在跟踪并试图控制杰西卡。杰西卡于是向法庭申请禁止令,要求西蒙除了合法探视时间外,必须离杰西卡及其子女100码以外。某日下午,西蒙突然闯入杰西卡家中劫持了三个女儿。杰西卡多次报警,甚至在次日凌晨12:40分亲自到警局报警。 但因她曾经破坏禁止令,允许西蒙在其他时间探视过孩子,故警察对此事毫无反应。凌晨3点,西蒙携带枪支出现在警局门口,要杀死杰西卡,并向警察射击,结果被警察乱枪打死,在他车里,人们发现三名女孩尸体。 根据法医检查,西蒙正是在进入警局之前杀死了她们。&/p&&p&悲痛的杰西卡将警方告上法庭,她认为警方未能对禁止令侵权投诉作出回应。但是地区法院根据1981年案例,还是提出了此案不予起诉的动议并获得了批准。愤怒的杰西卡继续上诉,虽然获得部分胜诉,但警方很快反向上诉到最高法院。日,最高法院以8比1的悬殊比分恢复了地区法院的判决。通过这一案例,最高法院最终确认了“&b&警察在提供警察服务时不对任何一名公民有任何公共责任规定下的具体责任&/b&”这一原则。&/p&&p&也就是说,警察在执行任务中如果认为公民是威胁,其拥有第一时间内根据自身判断剥夺公民生命的权力,但同时他拥有不对任何公民受到侵害时具体保护的豁免。换言之,如果美国警察认为你很危险(比如你看似要袭警),他可以掏枪干掉你;但如果你正在面临生命,他却并没有一定要保护你的义务。警察职责只是对罪犯破坏法律后的进行追责,但对具体的侵害则没有任何保护的义务。&/p&&br&&br&&p&以上。&/p&&p&美国法院的判决明确了,&b&美国警方对公民没有特殊责任和帮助义务,警察只是份工作,按照规章办事即可,办案程序远比办案结果重要&/b&。警察要维护社会公平,即将坏人绳之以法,这一过程中,如果受害者有死亡或者被进一步伤害的风险,警察不会为了你特别采取行动的,除非有助于抓住坏人。&/p&&br&&br&&p&看看我们的中华人民共和国人民警察法的前三条:&/p&&p&第一条 为了维护国家安全和社会治安秩序,&b&保护公民的合法权益&/b&,加强人民警察的队伍建设,从严治警,提高人民警察的素质,保障人民警察依法行使职权,保障改革开放和社会主义现代化建设的顺利进行,根据宪法,制定本法。&/p&&p&第二条 人民警察的任务是维护国家安全,维护社会治安秩序,&b&保护公民的人身安全、人身自由和合法财产&/b&,保护公共财产,预防、制止和惩治违法犯罪活动。人民警察包括公安机关、国家安全机关、监狱、劳动教养管理机关的人民警察和人民法院、人民检察院的司法警察。&/p&&p&第三条 人民警察必须依靠人民的支持,保持同人民的密切联系,倾听人民的意见和建议,接受人民的监督,&b&维护人民的利益,全心全意为人民服务&/b&。&/p&&br&&br&&br&&p&那么,这件事情的影响力体现在哪里呢?&/p&&p&1、对美国:&/p&&p&既然警察靠不住,只好靠自己。开放枪支的州越来越多,控制枪支的州越来越少。佩枪的公民越来越多。&/p&&p&1980年时,美国对个人在公共场合持枪(注意并非拥有枪支)还是十分排斥的。无论是立法者,还是平民都认为持枪保护公民是警察的义务。因此那个时期美国绝大多数州都是禁止普通人在公共场合公开或隐蔽持枪。当时50个州中,46个是严格控制枪支的,公民或者完全不允许在公共场合佩枪(无论公开或隐蔽),或者只有经过执法机构特别批准,才能携带枪支。只有4个州是允许公民通过枪械考试后佩枪。即控枪州与开放州的比例46:4。&/p&&p&1986年,41:9&/p&&p&2000年,19:31&/p&&p&2016年,8:42。&/p&&p&美国人的控枪运动彻底失败。&/p&&p&什么?还有人说美国人持枪是为了让平民有能力反抗政府?你觉得以美军的装备水平,扫平一个州的民兵需要几个人?&/p&&p&2、对中国:&/p&&p&我想,每一个了解此案的人,都会对美国的所谓人权增加一些了解。&/p&&p&破除迷信,增强三个自信。&/p&&br&&br&&p&——————————————————————————&/p&&p&补充:&/p&&p&1、关于案情的介绍及美国控枪州的数据,我最早是参考东方头条的一篇未署名文章,故仅注明“来自网络”;后经评论区提醒,相关内容最早是由 &a class=&member_mention& href=&///people/0e5c2a84ea0c614e550b8f2d9f4f6280& data-hash=&0e5c2a84ea0c614e550b8f2d9f4f6280& data-hovercard=&p$b$0e5c2a84ea0c614e550b8f2d9f4f6280&&@刘翔熙&/a& 在知乎发表的,特此说明。本文收获了这么多的赞,荣誉同样属于他。&/p&&p&2、关于三个自信还是四个自信,我一直记得是三个自信,经评论区提醒才发现现在增加了文化自信的提法。最近工作比较忙,理论学习不够,看来还得加强。&/p&&p&三个自信和四个自信的出处和表述如下:&/p&&p&2012年11月,胡锦涛总书记在十八大报告中提出的:中国特色社会主义道路,中国特色社会主义理论体系,中国特色社会主义制度,是党和人民九十多年奋斗、创造、积累的根本成就,必须倍加珍惜、始终坚持、不断发展;全党要坚定这样的道路自信、理论自信、制度自信!&/p&&p&2016年7月,习近平总书记在庆祝中国共产党成立95周年大会上明确提出:中国共产党人“坚持不忘初心、继续前进”,就要坚持“四个自信”即“中国特色社会主义道路自信、理论自信、制度自信、文化自信”。他还强调指出,“文化自信,是更基础、更广泛、更深厚的自信”。&/p&&p&3、评论区有很多朋友询问能否转发,当然可以。我就不一一回复了。&/p&
美国哥伦比亚特区沃伦案、以及石城镇对冈萨雷斯案,其影响远比南京彭宇案恶劣得多。看完后就会明白,为什么章莹颖案美国警方效率这么低,为什么最终得FBI出手才能抓到嫌疑犯。 先看沃伦案(来自网络,侵删):1975年3月某个周日清晨,卡洛琳o沃伦和琼…
&img src=&/v2-65e4c8f6cb80b56d2b0fea5ee1d74abb_b.jpg& data-rawwidth=&507& data-rawheight=&375& class=&origin_image zh-lightbox-thumb& width=&507& data-original=&/v2-65e4c8f6cb80b56d2b0fea5ee1d74abb_r.jpg&&年报是本故事书,里面有很多有趣的故事。没事的时候看看年报,挺好玩的,你不光会发现新闻报道的奇葩事件,还能从学到很多意想不到的东西。&br&我来针对外行简单说说如何看年报吧。&br&1。从哪里看年报&br&可以通过官方渠道,主要有&br&上交所官网&br&&img src=&/v2-cd4aa9a0e21a8ab1ed5eaab_b.png& data-rawwidth=&1247& data-rawheight=&449& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&1247& data-original=&/v2-cd4aa9a0e21a8ab1ed5eaab_r.png&&&br&深交所官网&br&&img src=&/v2-78b003af8bbaf3ad43cd53_b.png& data-rawwidth=&997& data-rawheight=&493& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&997& data-original=&/v2-78b003af8bbaf3ad43cd53_r.png&&&br&另外,如果不想按照交易所去查的话,可以直接去巨潮资讯(&a href=&/?target=http%3A//.cn/cninfo-new/index& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&巨潮资讯网&i class=&icon-external&&&/i&&/a&),注意:这是证监会指定信息披露网站:&br&&br&&img src=&/v2-39bdf72aad04b93f9f33bfe2_b.png& data-rawwidth=&1299& data-rawheight=&598& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&1299& data-original=&/v2-39bdf72aad04b93f9f33bfe2_r.png&&&br&&br&2。怎么看年报&br&很多人看年报,还停留在打开PDF,戴上老花镜,一行行去翻来翻去,其实没必要这么麻烦,现在,财报都能直接看XBRL(Extensible Business Reporting Language,可扩展商业报告语言)。&br&在交易所的官网上,都提供这种格式的数据,可以直接点击就行了。&br&&br&&img src=&/v2-eddd149314bfb_b.png& data-rawwidth=&975& data-rawheight=&450& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&975& data-original=&/v2-eddd149314bfb_r.png&&&br&&br&打开后,年报是这样式的:&br&&br&&img src=&/v2-899b66bfaf_b.png& data-rawwidth=&1186& data-rawheight=&416& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&1186& data-original=&/v2-899b66bfaf_r.png&&&br&注意,右上角,能够选择同行业的5家公司进行对比,&br&&br&&img src=&/v2-8e55f89b06dc721a61f00_b.png& data-rawwidth=&927& data-rawheight=&565& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&927& data-original=&/v2-8e55f89b06dc721a61f00_r.png&&&br&&br&好了,妈妈再也不用担心我的财报了。&br&3.财报都有什么?&br&从构成上来说,都包含两部分:正文、摘要。&br&&br&&img src=&/v2-3ecdac77a9654edeb82259c_b.png& data-rawwidth=&576& data-rawheight=&188& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&576& data-original=&/v2-3ecdac77a9654edeb82259c_r.png&&&br&一般来说,正文的内容,大同小异,基本构成如下:&br&&br&&img src=&/v2-998dcab99c720af165c3e94_b.png& data-rawwidth=&670& data-rawheight=&417& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&670& data-original=&/v2-998dcab99c720af165c3e94_r.png&&&br&摘要,和我们理解的摘要没有区别,是对年报的精简而已。&br&如果想快速阅读,不妨先看看剪报,有个大概的了解。&br&4。从股东里面看出什么信息来?&br&从这里面重点看两个信息 :&br&4.1 限售情况&br&4.2 实际控制人&br&我们先看看限售情况:&br&4.1 限售情况&br&限售情况是绝对绝对不能忽略的重要因素,&br&&br&&img src=&/v2-0452bee6d7b7aa25916f1bfead8206b0_b.png& data-rawwidth=&659& data-rawheight=&309& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&659& data-original=&/v2-0452bee6d7b7aa25916f1bfead8206b0_r.png&&&br&&br&这里主要是这几种情况:&br&&ol&&li&股改股份,也就我们经常听到的“大小非”&br&&/li&&li&IPO发售的限售期&br&&/li&&li&董监高等人员购买的限售期&br&&/li&&li&协议转换让等情况&br&&/li&&/ol&读年报,我们不光要看股东是谁,更要看他们的限售情况,这个对市场供应量有较大的影响作用。如果限售期临近,增加证券供应量,会直接影响股价的。&br&例如万科的限售情况如下:&br&&br&&img src=&/v2-dadc230a68e_b.png& data-rawwidth=&669& data-rawheight=&297& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&669& data-original=&/v2-dadc230a68e_r.png&&&br&这是公开的数据,大家可以去官网、交易所、巨潮资讯查看具体情况。由于截图没有具体时间指示,为了避免误导大家,我把限售情况作了涂抹。&br&看到这个情况,对未来股票供应量应该就比较了解了。&br&&br&4.2 实际控制人&br&实际控制人是一个关键因素,决定了企业的发展。&br&实际控制的自身实力直接决定了企业发展以及日后走向,当前的发展是一时的,巴菲特讲价值投资,如果这样,更要看实际控制人 如何了。&br&实际控制人可以挖掘的信息非常多,通常需要对背景进行深入的调查才行。&br&以格力电器为例,去年的发展我们都看到了。&br&我们看看格力电器的实际控制人:&br&&img src=&/v2-69bae304ad0e7f1aebee7b_b.png& data-rawwidth=&685& data-rawheight=&733& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&685& data-original=&/v2-69bae304ad0e7f1aebee7b_r.png&&&br&在这种情况下,大家一定注意,高管和实际控制人之间的关系,是我们坚决不能忽视的因素。&br&我们在分析财报时,一定注意实际控制人与高管是否能够和谐共处,将这个作为一个考核因素。&br&一般来讲,除此以外,还要考虑实际控制人的具体身份。&br&上市企业的实际控制人,可能是个人或者政府。可能是私企、个人,还可能是地方国资委、或国资委。&br&这些数据汇集可以去官网查看,另外一些 投资类网站也有编辑记者、热心的吃瓜群众整理的,总之多分析实际控制人对于了解企业的内涵还是很有帮助的。&br&5 董监高看什么?&br&管理层可以看的看点也很多呀。&br&1。看他们的简历情况,总体情况是否稳定,董监高的历史写得很明白,可以看看他们的过往情况,不难判断未来发展。&br&2。查看薪酬情况,这个可以在同行业内对比一下,看看有多大的差异。当然有的董事会主席是拿一块钱的。&br&&br&&img src=&/v2-1b05f612e5fd651c92da2f234bbc91c6_b.png& data-rawwidth=&581& data-rawheight=&191& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&581& data-original=&/v2-1b05f612e5fd651c92da2f234bbc91c6_r.png&&&br&3,看看股份变化情况&br&高管都在买买买,那情况不会差到哪里去,如果高管都在卖卖卖,即时真的是改善生活,也值得好好看看吧。&br&&br&&img src=&/v2-307e061f2c0c79c236c144_b.png& data-rawwidth=&681& data-rawheight=&286& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&681& data-original=&/v2-307e061f2c0c79c236c144_r.png&&&br&&br&6 看看是不是铁公鸡&br&这不是硬性规定,但一般来说,在年报里都会有所体现的。&br&&img src=&/v2-fbdc6d08ee29f717cc2228e_b.png& data-rawwidth=&625& data-rawheight=&94& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&/v2-fbdc6d08ee29f717cc2228e_r.png&&&br&7 公司的钱,去投资了吗?&br&有的上市公司没钱,有的上市公司有钱。&br&没钱的公司要借钱。&br&有钱的公司要花钱。&br&花钱怎么花?&br&建厂房,上产能?呵呵,过时了!&br&买金融资产呀,买房子呀!&br&&br&&img src=&/v2-d874e6aaead20b85bfc9559c_b.png& data-rawwidth=&707& data-rawheight=&426& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&707& data-original=&/v2-d874e6aaead20b85bfc9559c_r.png&&&br&你说,我一半的钱都用在了买金融资产上,我是什么公司,大家就很清楚了。&br&&br&&img src=&/v2-3e475aa01d1e87a9a776d_b.png& data-rawwidth=&565& data-rawheight=&391& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&565& data-original=&/v2-3e475aa01d1e87a9a776d_r.png&&&br&&br&我是传统企业,占比太高是怎么回事?&br&这部分,&br&一般财报中会有详细的介绍的。&br&&br&&img src=&/v2-dffdd3fb25_b.png& data-rawwidth=&721& data-rawheight=&604& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&721& data-original=&/v2-dffdd3fb25_r.png&&&br&&br&在上述表格里面有一项:会计计量模式。&br&哪种模式其实无可厚非。但是有的是“成本计价”,有的是“公允价值计量“,你说到底是他精神分裂了,还是当你是精神分裂?&br&另外在非流动资产内也有相关的项目,注意这里有一个需要注意的问题:&br&投资性房地产。&br&上市公司靠卖房子扭亏,你要看看他卖的是哪部分?&br&如果是这部分,那说明人家至少也算人生赢家 。&br&如果是固定资产,那,情况不妙呀!&br&&img src=&/v2-e31cbe0ec0a0ad3516fcd4_b.png& data-rawwidth=&723& data-rawheight=&315& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&723& data-original=&/v2-e31cbe0ec0a0ad3516fcd4_r.png&&&br&&br&8.关联交易&br&入门级的造假,就看这里吧!&br&刘能把一个包子卖出了1万元的高价,你要问是什么包子?霍霍,好家伙,那可真是了不起,那是有秘方的的,可口可乐级别的配方。&br&不过你要是知道他这个包子是卖给他闺女刘英了,你就知道,这个一万块,其实呢,呵呵呵呵了。&br&对,这就是关联交易 。&br&也许,后面还有一笔交易,刘能花1.2万元从刘英那里买的配方。&br&这个配方就用了一次,结果算下来1万块钱的包子卖出去,亏了2千块。&br&对,这就是关联交易呀。&br&所以呀,年报里面对于关联交易,要有记录。&br&这个部分,值得我们在读财报的时候看看。关注一下具体交易数量、交易金额等等是否合理。&br&&br&&img src=&/v2-2ff32a124c_b.png& data-rawwidth=&670& data-rawheight=&389& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&670& data-original=&/v2-2ff32a124c_r.png&&&br&9.股权质押与担保情况&br&质押作为比较受关注的问题,要仔细看看。&br&当然,首先看清楚,使用什么进行的质押。&br&股权质押,值得额外受关注。股东肯定不希望被平仓,那他就不希望股价下跌到某个点,一旦临界他会有非常多的办法保证处于这一风险线上。当然,努力能不能成功则是另外一回事了。&br&&img src=&/v2-c3c8bec0d48c8c76cfc3124_b.png& data-rawwidth=&629& data-rawheight=&61& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&629& data-original=&/v2-c3c8bec0d48c8c76cfc3124_r.png&&&br&&br&&img src=&/v2-8dcd3f20e37eeadbd1171ef_b.png& data-rawwidth=&536& data-rawheight=&303& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&536& data-original=&/v2-8dcd3f20e37eeadbd1171ef_r.png&&&br&&br&&img src=&/v2-71f4b1ff748e6e3ab28dda0bae30ed19_b.png& data-rawwidth=&1573& data-rawheight=&315& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&1573& data-original=&/v2-71f4b1ff748e6e3ab28dda0bae30ed19_r.png&&&br&质押值得关注,另外值得关注的则是:担保。&br&担保也是很重要的参考指标,&br&&img src=&/v2-f7d6e49c1af8e5b9f3971fd_b.png& data-rawwidth=&668& data-rawheight=&90& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&668& data-original=&/v2-f7d6e49c1af8e5b9f3971fd_r.png&&&br&别忘往后翻呀,后面还有:&br&&img src=&/v2-aee231b5b0b46fa0a41e0e_b.png& data-rawwidth=&700& data-rawheight=&297& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&/v2-aee231b5b0b46fa0a41e0e_r.png&&&br&&br&担保问题有明确的规定可以参考:&br&&br&&img src=&/v2-eb009a2b93d6c782e39ceb_b.png& data-rawwidth=&441& data-rawheight=&166& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&441& data-original=&/v2-eb009a2b93d6c782e39ceb_r.png&&&br&&br&上面啰里啰嗦说了很多,其实都是我们平时不怎么看的,我们经常将注意力停留在“财报”上,觉得那个才是关键。确实,财报很关键。&br&推荐看:&br&&a href=&/?target=http%3A///special/cuvocw/qiyecaiwu.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&对外经济贸易大学公开课:企业财务报表分析_全8集_网易公开课&i class=&icon-external&&&/i&&/a&&br&这是网易视频的公开课,是免费的,张新民老师讲的,深入浅出,非常透彻。没有任何基础的同学听起来应该也不会有任何丝毫的压力。&br&&br&&img src=&/v2-4bc23dd49f7cdc52212f7_b.png& data-rawwidth=&695& data-rawheight=&526& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&695& data-original=&/v2-4bc23dd49f7cdc52212f7_r.png&&&br&张老师曾经任格力的独立董事,因此课程对于格力的情况作了重点分析。&br&其中有一个例子,他列举格力电器在上下游都具有优势。上游企业愿意把原材料都赊欠给企业,下游企业愿意预付货款。他说有人对企业的社会责任提出怀疑,认为这样的企业毫无社会责任可言。他说,如果没有企业都能实现自身利益最大化,那企业和社会肯定都是良性发展的。而且,判断企业的社会责任还要从提供就业等更多维度去考量,不能仅仅从一个维度去考量。&br&另外在:&br&&a href=&/?target=http%3A///coursestatic/course_3565.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&企业财务报表分析 - 对外经济贸易大学 - 张新民 -资源共享课详细页 - 爱课程&i class=&icon-external&&&/i&&/a&&br&也有共享资源,都是免费的。&br&&br&&img src=&/v2-c8ac45e8f3c749a07e6959_b.png& data-rawwidth=&866& data-rawheight=&466& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&866& data-original=&/v2-c8ac45e8f3c749a07e6959_r.png&&&br&两头吃的能力,在上下游都有优势:&br&&img src=&/v2-6f872a1994d0fef6fb98_b.png& data-rawwidth=&868& data-rawheight=&490& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&868& data-original=&/v2-6f872a1994d0fef6fb98_r.png&&&br&张老师的课很精彩,不容错过,(注意,课程是免费的)。&br&当然,看完本企业的,不要错过同行业比较呀:&br&&br&&img src=&/v2-97381c8fcc1355ff0afefc9a4d8f54f8_b.png& data-rawwidth=&852& data-rawheight=&100& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&852& data-original=&/v2-97381c8fcc1355ff0afefc9a4d8f54f8_r.png&&&br&&br&&img src=&/v2-5cd3af8d05_b.png& data-rawwidth=&857& data-rawheight=&89& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&857& data-original=&/v2-5cd3af8d05_r.png&&&br&用风趣幽默的话告诉我们,什么是企业的社会责任。&br&&img src=&/v2-68fadf8a690fdf9abfe22fa_b.png& data-rawwidth=&864& data-rawheight=&473& alt=&图片& class=&origin_image zh-lightbox-thumb& width=&864& data-original=&/v2-68fadf8a690fdf9abfe22fa_r.png&&&br&&br&当然,看财报没有什么技巧和诀窍,“我亦无他唯手熟尔”。要想看得明白,无非要用心、无非要看得多。想速成、不怎么靠谱。速成只能看个大大概,基本问题能够请清楚,但是如果想要看明白、看内涵,还是需要花功夫在上面。&br&&br&&blockquote&参考资料:
1.明明白白看年报,袁克成,机械工业出版社。
2.看懂股市新闻,袁克成,机工出版社。
3.财报分析(第10版)、人民大学出版社
4.轻松读懂财报,胜间和代、中信出版社
5.轻松读财报,张新民、对外经贸大学出版社&br&&/blockquote&欢迎大家关注我的微信公众号:【&b&远目&/b&】,ID:&b&yuanmu8&/b&,获取更多内容 。&br&欢迎看其他回答:&br&&a href=&/question//answer/?group_id=276160& class=&internal&&如何看出财务报表是否做假账? - 知乎&/a&&br&&a href=&/question//answer/& class=&internal&&如何通俗易懂地理解财报中利润表、资产负债表、现金流量表三张表的关联? - 知乎&/a&
年报是本故事书,里面有很多有趣的故事。没事的时候看看年报,挺好玩的,你不光会发现新闻报道的奇葩事件,还能从学到很多意想不到的东西。 我来针对外行简单说说如何看年报吧。 1。从哪里看年报 可以通过官方渠道,主要有 上交所官网 深交所官网 另外,如…
&p&历史上有个经典的例子。普鲁士的弗雷德里克大帝一度非常希望德国人接受食用土豆。因为他认为,如果有小麦和土豆这两种碳水化合物的来源,不仅可以减少面包价格的动荡,同时,也可以大大降低发生饥荒的风险。&/p&&br&&p&唯一的问题是:土豆的相貌太丑。&/p&&p&而且,18世纪的普鲁士人只吃非常少的蔬菜。普鲁士的农民们说:我们甚至没办法让狗吃这些恶心的东西。这些土豆令人作呕,而且毫无用处。他们拒绝种植土豆。&br&&/p&&br&&img src=&/v2-abe1a44eb70b3ca299b2_b.jpg& data-rawwidth=&635& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&635& data-original=&/v2-abe1a44eb70b3ca299b2_r.jpg&&&br&&p&于是,弗雷德里克大帝又想了另一个办法。&/p&&br&&p&他宣布,土豆是宫廷御用蔬菜,只有皇室家族成员才能享用。他在一片皇家土豆地中种植土豆,并派侍卫日夜加以看守,但却密令他们无需太过认真。&/p&&br&&p&18世纪的农民们懂得一个生活常识,那就是值得看守的东西,也值得偷。不久,德国就出现了规模宏大的地下土豆种植。他非常成功地重塑了土豆的品牌形象。&/p&&br&&p&——在罗里·萨瑟兰 的TED演讲视频里听到的故事&/p&
历史上有个经典的例子。普鲁士的弗雷德里克大帝一度非常希望德国人接受食用土豆。因为他认为,如果有小麦和土豆这两种碳水化合物的来源,不仅可以减少面包价格的动荡,同时,也可以大大降低发生饥荒的风险。 唯一的问题是:土豆的相貌太丑。而且,18世纪的…
&img src=&/v2-da6e908fbff06e8e14c60d86d776d225_b.jpg& data-rawwidth=&768& data-rawheight=&576& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/v2-da6e908fbff06e8e14c60d86d776d225_r.jpg&&&img src=&/v2-abd42bbb61ee_b.jpg& data-rawwidth=&558& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&558& data-original=&/v2-abd42bbb61ee_r.jpg&&&p&作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能:&br&&/p&&p&1) 去除(爱情)动作片中的马赛克&/p&&p&2) 给(爱情)动作片中的女孩穿(tuo)衣服&/p&&br&&h2&生成式模型&/h2&&p&上一篇《&a href=&/p/& class=&internal&&用GAN生成二维样本的小例子&/a&》中已经简单介绍了GAN,这篇再简要回顾一下生成式模型,算是补全一个来龙去脉。&/p&&p&生成模型就是能够产生指定分布数据的模型,常见的生成式模型一般都会有一个用于产生样本的简单分布。例如一个均匀分布,根据要生成分布的概率密度函数,进行建模,让均匀分布中的样本经过变换得到指定分布的样本,这就可以算是最简单的生成式模型。比如下面例子:&/p&&img src=&/v2-d11b5fb26d3cc8e942f841bafe010cd8_b.png& data-rawwidth=&1021& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&1021& data-original=&/v2-d11b5fb26d3cc8e942f841bafe010cd8_r.png&&&p&图中左边是一个自定义的概率密度函数,右边是相应的1w个样本的直方图,自定义分布和生成这些样本的代码如下:&br&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&kn&&from&/span& &span class=&nn&&functools&/span& &span class=&kn&&import&/span& &span class=&n&&partial&/span&
&span class=&kn&&import&/span& &span class=&nn&&numpy&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib&/span& &span class=&kn&&import&/span& &span class=&n&&pyplot&/span&
&span class=&c1&&# Define a PDF&/span&
&span class=&n&&x_samples&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&arange&/span&&span class=&p&&(&/span&&span class=&o&&-&/span&&span class=&mi&&3&/span&&span class=&p&&,&/span& &span class=&mf&&3.01&/span&&span class=&p&&,&/span& &span class=&mf&&0.01&/span&&span class=&p&&)&/span&
&span class=&n&&PDF&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&empty&/span&&span class=&p&&(&/span&&span class=&n&&x_samples&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&)&/span&
&span class=&n&&PDF&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&round&/span&&span class=&p&&(&/span&&span class=&n&&x_samples&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&+&/span& &span class=&mf&&3.5&/span&&span class=&p&&)&/span& &span class=&o&&/&/span& &span class=&mi&&3&/span&
&span class=&n&&PDF&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&=&/span& &span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&mf&&0.5&/span& &span class=&o&&*&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&cos&/span&&span class=&p&&(&/span&&span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&pi&/span& &span class=&o&&*&/span& &span class=&n&&x_samples&/span&&span class=&p&&[&/span&&span class=&n&&x_samples&/span& &span class=&o&&&=&/span& &span class=&mi&&0&/span&&span class=&p&&])&/span& &span class=&o&&+&/span& &span class=&mf&&0.5&/span&
&span class=&n&&PDF&/span& &span class=&o&&/=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&sum&/span&&span class=&p&&(&/span&&span class=&n&&PDF&/span&&span class=&p&&)&/span&
&span class=&c1&&# Calculate approximated CDF&/span&
&span class=&n&&CDF&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&empty&/span&&span class=&p&&(&/span&&span class=&n&&PDF&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&)&/span&
&span class=&n&&cumulated&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&i&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&CDF&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]):&/span&
&span class=&n&&cumulated&/span& &span class=&o&&+=&/span& &span class=&n&&PDF&/span&&span class=&p&&[&/span&&span class=&n&&i&/span&&span class=&p&&]&/span&
&span class=&n&&CDF&/span&&span class=&p&&[&/span&&span class=&n&&i&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&cumulated&/span&
&span class=&c1&&# Generate samples&/span&
&span class=&n&&generate&/span& &span class=&o&&=&/span& &span class=&n&&partial&/span&&span class=&p&&(&/span&&span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&interp&/span&&span class=&p&&,&/span& &span class=&n&&xp&/span&&span class=&o&&=&/span&&span class=&n&&CDF&/span&&span class=&p&&,&/span& &span class=&n&&fp&/span&&span class=&o&&=&/span&&span class=&n&&x_samples&/span&&span class=&p&&)&/span&
&span class=&n&&u_rv&/span& &span class=&o&&=&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&random&/span&&span class=&o&&.&/span&&span class=&n&&random&/span&&span class=&p&&(&/span&&span class=&mi&&10000&/span&&span class=&p&&)&/span&
&span class=&n&&x&/span& &span class=&o&&=&/span& &span class=&n&&generate&/span&&span class=&p&&(&/span&&span class=&n&&u_rv&/span&&span class=&p&&)&/span&
&span class=&c1&&# Visualization&/span&
&span class=&n&&fig&/span&&span class=&p&&,&/span& &span class=&p&&(&/span&&span class=&n&&ax0&/span&&span class=&p&&,&/span& &span class=&n&&ax1&/span&&span class=&p&&)&/span& &span class=&o&&=&/span& &span class=&n&&pyplot&/span&&span class=&o&&.&/span&&span class=&n&&subplots&/span&&span class=&p&&(&/span&&span class=&n&&ncols&/span&&span class=&o&&=&/span&&span class=&mi&&2&/span&&span class=&p&&,&/span& &span class=&n&&figsize&/span&&span class=&o&&=&/span&&span class=&p&&(&/span&&span class=&mi&&9&/span&&span class=&p&&,&/span& &span class=&mi&&4&/span&&span class=&p&&))&/span&
&span class=&n&&ax0&/span&&span class=&o&&.&/span&&span class=&n&&plot&/span&&span class=&p&&(&/span&&span class=&n&&x_samples&/span&&span class=&p&&,&/span& &span class=&n&&PDF&/span&&span class=&p&&)&/span&
&span class=&n&&ax0&/span&&span class=&o&&.&/span&&span class=&n&&axis&/span&&span class=&p&&([&/span&&span class=&o&&-&/span&&span class=&mf&&3.5&/span&&span class=&p&&,&/span& &span class=&mf&&3.5&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&n&&numpy&/span&&span class=&o&&.&/span&&span class=&n&&max&/span&&span class=&p&&(&/span&&span class=&n&&PDF&/span&&span class=&p&&)&/span&&span class=&o&&*&/span&&span class=&mf&&1.1&/span&&span class=&p&&])&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&hist&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&,&/span& &span class=&mi&&100&/span&&span class=&p&&)&/span&
&span class=&n&&pyplot&/span&&span class=&o&&.&/span&&span class=&n&&show&/span&&span class=&p&&()&/span&
&/code&&/pre&&/div&&p&对于一些简单的情况,我们会假设已知有模型可以很好的对分布进行建模,缺少的只是合适的参数。这时候很自然只要根据观测到的样本,学习参数让当前观测到的样本下的似然函数最大,这就是最大似然估计(&b&M&/b&aximum &b&L&/b&ikelihood &b&E&/b&stimation):&br&&/p&&img src=&/equation?tex=%5Chat%7B%5Ctheta%7D%3D%5Coperatorname%2A%7Bargmax%7D_%7B%5Ctheta%7D+P%28%5Cbm%7Bx%7D%7C%5Ctheta%29%0A+%3D+%5Coperatorname%2A%7Bargmax%7D_%7B%5Ctheta%7D+%5Cprod_%7Bi%3D1%7D%5E%7Bn%7DP%28x_i%7C%5Ctheta%29+& alt=&\hat{\theta}=\operatorname*{argmax}_{\theta} P(\bm{x}|\theta)
= \operatorname*{argmax}_{\theta} \prod_{i=1}^{n}P(x_i|\theta) & eeimg=&1&&&br&&p&MLE是一个最基本的思路,实践中用得很多的还有KL散度(Kullback–Leibler divergence),假设真实分布是P,采样分布是Q,则KL散度为:&/p&&img src=&/equation?tex=D_%7BKL%7D%28P%7C%7CQ%29%3D%5Csum_%7Bx+%5Cin+%5COmega%7DP%28%7Bx%7D%29%5Clog%5Cfrac%7BP%28x%29%7D%7BQ%28x%29%7D++& alt=&D_{KL}(P||Q)=\sum_{x \in \Omega}P({x})\log\frac{P(x)}{Q(x)}
& eeimg=&1&&&br&&p&从公式也能看出来,KL散度描述的是两个分布的差异程度。换个角度来看,让产生的样本和原始分布接近,也就是要让这俩的差异减小,所以最小化KL散度就等同于MLE。从公式上来看的话,我们考虑把公式具体展开一下:&/p&&br&&img src=&/equation?tex=%5Cbegin%7Balign%7D%0AD_%7BKL%7D%28P%7C%7CQ%29+%26%3D%5Csum_%7Bx+%5Cin+%5COmega%7DP%28%7Bx%7D%29%5Clog%5Cfrac%7BP%28x%29%7D%7BQ%28x%29%7D++++%5C%5C%0A%26+%3D-%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BQ%28x%29%7D+%2B%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BP%28x%29%7D+%5C%5C%0A%26+%3D-%5Csum_%7Bx%5Cin%5COmega%7DP%28%7Bx%7D%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29%0A%5Cend%7Balign%7D& alt=&\begin{align}
D_{KL}(P||Q) &=\sum_{x \in \Omega}P({x})\log\frac{P(x)}{Q(x)}
& =-\sum_{x\in\Omega}P({x})\log{Q(x)} +\sum_{x\in\Omega}P({x})\log{P(x)} \\
& =-\sum_{x\in\Omega}P({x})\log{Q(x)} +H(P)
\end{align}& eeimg=&1&&&br&&p&公式的第二项就是熵,先不管这项,用H(P)表示。接下来考虑一个小trick:从Q中抽样n个样本&img src=&/equation?tex=%7Bx_1%2Cx_2%2C...%2Cx_n%7D& alt=&{x_1,x_2,...,x_n}& eeimg=&1&&,来估算P(x)的经验值(empirical density function):&br&&/p&&img src=&/equation?tex=%5Chat%7BP%7D%28x%29%3D%5Cfrac+1+n+%5Csum_%7Bi%3D1%7D%5En+%5Cdelta%28x_i-x%29& alt=&\hat{P}(x)=\frac 1 n \sum_{i=1}^n \delta(x_i-x)& eeimg=&1&&&br&&p&其中&img src=&/equation?tex=%5Cdelta%28%5Ccdot%29& alt=&\delta(\cdot)& eeimg=&1&&是狄拉克&img src=&/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数,把这项替换到上面公式的P(x):&/p&&br&&img src=&/equation?tex=%5Cbegin%7Balign%7D%0AD_%7BKL%7D%28P%7C%7CQ%29+%26%3D-%5Csum_%7Bx%5Cin%5COmega%7D%5Cfrac+1+n+%5Csum_%7Bi%3D1%7D%5En+%5Cdelta%28x_i-x%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29+%5C%5C%0A%26+%3D-%5Cfrac+1+n+%5Csum_%7Bi%3D1%7D%5En+%5Csum_%7Bx%5Cin%5COmega%7D++%5Cdelta%28x_i-x%29%5Clog%7BQ%28x%29%7D+%2BH%28P%29%0A%5Cend%7Balign%7D& alt=&\begin{align}
D_{KL}(P||Q) &=-\sum_{x\in\Omega}\frac 1 n \sum_{i=1}^n \delta(x_i-x)\log{Q(x)} +H(P) \\
& =-\frac 1 n \sum_{i=1}^n \sum_{x\in\Omega}
\delta(x_i-x)\log{Q(x)} +H(P)
\end{align}& eeimg=&1&&&br&&p&因为是离散的采样值,所以&img src=&/equation?tex=%5Csum_%7Bx%5Cin%5COmega%7D+%5Cdelta%28x_i-x%29& alt=&\sum_{x\in\Omega} \delta(x_i-x)& eeimg=&1&&中只有&img src=&/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&的时候狄拉克&img src=&/equation?tex=%5Cdelta& alt=&\delta& eeimg=&1&&函数才为1,所以考虑&img src=&/equation?tex=x%3Dx_i& alt=&x=x_i& eeimg=&1&&时这项直接化为1:&/p&&br&&img src=&/equation?tex=D_%7BKL%7D%28P%7C%7CQ%29+%3D-%5Cfrac+1+n%5Csum_%7Bi%3D1%7D%5En+%5Clog%7BQ%28x_i%29%7D+%2BH%28P%29& alt=&D_{KL}(P||Q) =-\frac 1 n\sum_{i=1}^n \log{Q(x_i)} +H(P)& eeimg=&1&&&br&&p&第一项正是似然的负对数形式。&/p&&p&说了些公式似乎跑得有点远了,其实要表达还是那个简单的意思:通过减小两个分布的差异可以让一个分布逼近另一个分布。仔细想想,这正是GAN里面adversarial loss的做法。&/p&&p&很多情况下我们面临的是更为复杂的分布,比如&a href=&/p/& class=&internal&&上篇文章&/a&中的例子,又或是实际场景中更复杂的情况,比如生成不同人脸的图像。这时候,作为具有universal approximation性质的神经网络是一个看上去不错的选择[1]:&br&&/p&&img src=&/v2-6fee20494f50baae2c1dc5fc_b.jpg& data-rawwidth=&1561& data-rawheight=&549& class=&origin_image zh-lightbox-thumb& width=&1561& data-original=&/v2-6fee20494f50baae2c1dc5fc_r.jpg&&&p&所以虽然GAN里面同时包含了生成网络和判别网络,但本质来说GAN的目的还是生成模型。从生成式模型的角度,Ian Goodfellow总结过一个和神经网络相关生成式方法的“家谱”[1]:&/p&&img src=&/v2-8c6f1d8ee39dfbb4fcfb2_b.png& data-rawwidth=&771& data-rawheight=&498& class=&origin_image zh-lightbox-thumb& width=&771& data-original=&/v2-8c6f1d8ee39dfbb4fcfb2_r.png&&&p&在这其中,当下最流行的就是GAN和&b&V&/b&ariational &b&A&/b&uto&b&E&/b&ncoder(VAE),两种方法的一个简明示意如下[3]:&/p&&img src=&/v2-380cde71a2f6ece28b4a97_b.png& data-rawwidth=&568& data-rawheight=&274& class=&origin_image zh-lightbox-thumb& width=&568& data-original=&/v2-380cde71a2f6ece28b4a97_r.png&&&p&本篇不打算展开讲什么是VAE,不过通过这个图,和名字中的autoencoder也大概能知道,VAE中生成的loss是基于重建误差的。而只基于重建误差的图像生成,都或多或少会有图像模糊的缺点,因为误差通常都是针对全局。比如基于MSE(Mean Squared Error)的方法用来生成超分辨率图像,容易出现下面的情况[4]:&/p&&br&&p&&img src=&/v2-78f53b142fab51b0c09a1_b.png& data-rawwidth=&892& data-rawheight=&598& class=&origin_image zh-lightbox-thumb& width=&892& data-original=&/v2-78f53b142fab51b0c09a1_r.png&&在这个二维示意中,真实数据分布在一个U形的流形上,而MSE系的方法因为loss的形式往往会得到一个接近平均值所在的位置(蓝色框)。&/p&&p&GAN在这方面则完爆其他方法,因为目标分布在流形上。所以只要大概收敛了,就算生成的图像都看不出是个啥,清晰度常常是有保证的,而这正是去除女优身上马赛克的理想特性!&/p&&br&&h2&马赛克-&清晰画面:超分辨率(Super Resolution)问题&/h2&&p&说了好些铺垫,终于要进入正题了。首先明确,去马赛克其实是个图像超分辨率问题,也就是如何在低分辨率图像基础上得到更高分辨率的图像:&/p&&img src=&/v2-31c84b42ad_b.png& data-rawwidth=&784& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&784& data-original=&/v2-31c84b42ad_r.png&&&p&视频中超分辨率实现的一个套路是通过不同帧的低分辨率画面猜测超分辨率的画面,有兴趣了解这个思想的朋友可以参考我之前的一个答案:&a href=&/question//answer/& class=&internal&&如何通过多帧影像进行超分辨率重构? &/a&&br&&/p&&p&不过基于多帧影像的方法对于女优身上的马赛克并不是很适用,所以这篇要讲的是基于单帧图像的超分辨率方法。&/p&&h2&SRGAN&/h2&&p&说到基于GAN的超分辨率的方法,就不能不提到SRGAN[4]:《Photo-Realistic Single Image &b&S&/b&uper-&b&R&/b&esolution Using a &b&G&/b&enerative &b&A&/b&dversarial
&b&N&/b&etwork》。这个工作的思路是:基于像素的MSE loss往往会得到大体正确,但是高频成分模糊的结果。所以只要重建低频成分的图像内容,然后靠GAN来补全高频的细节内容,就可以了:&/p&&img src=&/v2-128029dfc7c470b07a4a1_b.png& data-rawwidth=&446& data-rawheight=&131& class=&origin_image zh-lightbox-thumb& width=&446& data-original=&/v2-128029dfc7c470b07a4a1_r.png&&这个思路其实和最早基于深度网络的风格迁移的思路很像(有兴趣的读者可以参考我之前文章&a href=&/p/& class=&internal&&瞎谈CNN:通过优化求解输入图像&/a&的最后一部分),其中重建内容的content loss是原始图像和低分辨率图像在VGG网络中的各个ReLU层的激活值的差异:&p&&img src=&/v2-331e02e394cfd04e7114a_b.png& data-rawwidth=&529& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&529& data-original=&/v2-331e02e394cfd04e7114a_r.png&&生成细节adversarial loss就是GAN用来判别是原始图还是生成图的loss:&/p&&img src=&/v2-fa5af2a10fe9a4dadfb04_b.png& data-rawwidth=&394& data-rawheight=&89& class=&content_image& width=&394&&&p&把这两种loss放一起,取个名叫perceptual loss。训练的网络结构如下:&/p&&img src=&/v2-17861edeb4bcfae4e9f369_b.png& data-rawwidth=&780& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/v2-17861edeb4bcfae4e9f369_r.png&&&p&正是上篇文章中讲过的C-GAN,条件C就是低分辨率的图片。SRGAN生成的超分辨率图像虽然PSNR等和原图直接比较的传统量化指标并不是最好,但就视觉效果,尤其是细节上,胜过其他方法很多。比如下面是作者对比bicubic插值和基于ResNet特征重建的超分辨率的结果:&/p&&img src=&/v2-f3b4376938ffcbd23c42d_b.png& data-rawwidth=&981& data-rawheight=&392& class=&origin_image zh-lightbox-thumb& width=&981& data-original=&/v2-f3b4376938ffcbd23c42d_r.png&&&p&可以看到虽然很多细节都和原始图片不一样,不过看上去很和谐,并且细节的丰富程度远胜于SRResNet。这些栩栩如生的细节,可以看作是GAN根据学习到的分布信息“联想”出来的。&/p&&p&对于更看重“看上去好看”的超分辨率应用,SRGAN显然是很合适的。当然对于一些更看重重建指标的应用,比如超分辨率恢复嫌疑犯面部细节,SRGAN就不可以了。&/p&&h2&pix2pix&/h2&&p&虽然专门用了一节讲SRGAN,但本文用的方法其实是pix2pix[5]。这项工作刚在arxiv上发布就引起了不小的关注,它巧妙的利用GAN的框架解决了通用的Image-to-Image translation的问题。举例来说,在不改变分辨率的情况下:把照片变成油画风格;把白天的照片变成晚上;用色块对图片进行分割或者倒过来;为黑白照片上色;…每个任务都有专门针对性的方法和相关研究,但其实总体来看,都是像素到像素的一种映射啊,其实可以看作是一个问题。这篇文章的巧妙,就在于提出了pix2pix的方法,一个框架,解决所有这些问题。方法的示意图如下:&/p&&p&&img src=&/v2-e2ea753b7b0d7f18abee3_b.png& data-rawwidth=&485& data-rawheight=&437& class=&origin_image zh-lightbox-thumb& width=&485& data-original=&/v2-e2ea753b7b0d7f18abee3_r.png&&就是一个Conditional GAN,条件C是输入的图片。除了直接用C-GAN,这项工作还有两个改进:&/p&&p&1)&b&利用U-Net结构生成细节更好的图片&/b&[6]&/p&&img src=&/v2-beb074bebbfa0db_b.png& data-rawwidth=&907& data-rawheight=&612& class=&origin_image zh-lightbox-thumb& width=&907& data-original=&/v2-beb074bebbfa0db_r.png&&&p&U-Net是德国Freiburg大学模式识别和图像处理组提出的一种全卷积结构。和常见的先降采样到低维度,再升采样到原始分辨率的编解码(Encoder-Decoder)结构的网络相比,U-Net的区别是加入skip-connection,对应的feature maps和decode之后的同样大小的feature maps按通道拼(concatenate)一起,用来保留不同分辨率下像素级的细节信息。U-Net对提升细节的效果非常明显,下面是pix2pix文中给出的一个效果对比:&/p&&p&&img src=&/v2-2fb4ddb2fdc24eea31eea_b.png& data-rawwidth=&563& data-rawheight=&307& class=&origin_image zh-lightbox-thumb& width=&563& data-original=&/v2-2fb4ddb2fdc24eea31eea_r.png&&可以看到,各种不同尺度的信息都得到了很大程度的保留。&/p&&p&2)&b&利用马尔科夫性的判别器(PatchGAN)&br&&/b&&/p&&p&pix2pix和SRGAN的一个异曲同工的地方是都有用重建解决低频成分,用GAN解决高频成分的想法。在pix2pix中,这个思想主要体现在两个地方。一个是loss函数,加入了L1 loss用来让生成的图片和训练的目标图片尽量相似,而图像中高频的细节部分则交由GAN来处理:&/p&&img src=&/v2-cb180ad03d8a72e7883285b_b.png& data-rawwidth=&447& data-rawheight=&51& class=&origin_image zh-lightbox-thumb& width=&447& data-original=&/v2-cb180ad03d8a72e7883285b_r.png&&&p&还有一个就是&b&PatchGAN&/b&,也就是具体的GAN中用来判别是否生成图的方法。PatchGAN的思想是,既然GAN只负责处理低频成分,那么判别器就没必要以一整张图作为输入,只需要对NxN的一个图像patch去进行判别就可以了。这也是为什么叫Markovian discriminator,因为在patch以外的部分认为和本patch互相独立。&/p&&p&具体实现的时候,作者使用的是一个NxN输入的全卷积小网络,最后一层每个像素过sigmoid输出为真的概率,然后用BCEloss计算得到最终loss。这样做的好处是因为输入的维度大大降低,所以参数量少,运算速度也比直接输入一张快,并且可以计算任意大小的图。作者对比了不同大小patch的结果,对于256x256的输入,patch大小在70x70的时候,从视觉上看结果就和直接把整张图片作为判别器输入没什么区别了:&/p&&img src=&/v2-5172ca51efb4ee3e453b15_b.png& data-rawwidth=&842& data-rawheight=&107& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&/v2-5172ca51efb4ee3e453b15_r.png&&&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&&img src=&/v2-fd28f0b871bd_b.png& data-rawwidth=&660& data-rawheight=&314& class=&origin_image zh-lightbox-thumb& width=&660& data-original=&/v2-fd28f0b871bd_r.png&&上图是一个CAM的示意,用澳洲梗类别的CAM,放大到原图大小,可以看到小狗所在的区域大致是激活响应最高的区域。&/p&&p&那么就缺一个可以识别XXX图片的模型了,网上还恰好就有个现成的,yahoo于2016年发布的开源色情图片识别模型Open NSFW(&b&N&/b&ot &b&S&/b&afe &b&F&/b&or &b&W&/b&ork):&/p&&a href=&/?target=https%3A///yahoo/open_nsfw& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&yahoo/open_nsfw&i class=&icon-external&&&/i&&/a&&p&CAM的实现并不难,结合Open NSFW自动打码的代码和使用放在了这里:&/p&&a href=&/?target=https%3A///frombeijingwithlove/dlcv_for_beginners/tree/master/random_bonus/generate_mosaic_for_porno_images& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&给XX图片生成马赛克&i class=&icon-external&&&/i&&/a&&br&&br&(成功打码的)效果差不多是下面这样子:&img src=&/v2-cbefa39dc983f2645dd8_b.png& data-rawwidth=&768& data-rawheight=&256& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/v2-cbefa39dc983f2645dd8_r.png&&&h2&去除(爱情)动作片中的马赛克&/h2&&p&这没什么好说的了,一行代码都不用改,只需要按照前面的步骤把数据准备好,然后按照pix2pix官方的使用方法训练就可以了:&/p&&p&Torch版pix2pix:&a href=&/?target=https%3A///phillipi/pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&phillipi/pix2pix&i class=&icon-external&&&/i&&/a&&/p&&p&pyTorch版pix2pix(Cycle-GAN二合一版):&a href=&/?target=https%3A///junyanz/pytorch-CycleGAN-and-pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/pytorch-CycleGAN-and-pix2pix&i class=&icon-external&&&/i&&/a&&/p&&p&从D盘里随随便便找了几千张图片,用来执行了一下自动打码和pix2pix训练(默认参数),效果是下面这样:&/p&&br&&img src=&/v2-9f52b17c0e1296767cbfbfafc290a5bd_b.png& data-rawwidth=&814& data-rawheight=&691& class=&origin_image zh-lightbox-thumb& width=&814& data-original=&/v2-9f52b17c0e1296767cbfbfafc290a5bd_r.png&&&p&什么?你问说好给女优去马赛克呢?女优照片呢?&/p&&img src=&/v2-480fb8a4dcfc7a4f92ec_b.png& data-rawwidth=&75& data-rawheight=&60& class=&content_image& width=&75&&&p&还是要说一下,在真人照片上的效果比蘑菇和花强。&/p&&h2&对偶学习(Dual Learning)&/h2&&p&去马赛克已经讲完了,接下来就是给女孩穿(tuo)衣服了,动手之前,还是先讲一下铺垫:&b&对偶学习&/b&和&b&Cycle-GAN&/b&。&/p&&p&对偶学习是MSRA于2016年提出的一种用于机器翻译的增强学习方法[8],目的是解决海量数据配对标注的难题,个人觉得算是一种弱监督方法(不过看到大多数文献算作无监督)。以机器翻译为例,对偶学习基本思想如下图[9]:&/p&&img src=&/v2-c4b1eeda364fb6c9bada02f3_b.png& data-rawwidth=&866& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&866& data-original=&/v2-c4b1eeda364fb6c9bada02f3_r.png&&左边的灰衣男只懂英语,右边的黑衣女只懂中文,现在的任务就是,要学习如何翻译英语到中文。对偶学习解决这个问题的思路是:给定一个模型&img src=&/equation?tex=f%3Ax%5Crightarrow+y& alt=&f:x\rightarrow y& eeimg=&1&&一上来无法知道f翻译得是否正确,但是如果考虑上&img src=&/equation?tex=f& alt=&f& eeimg=&1&&的对偶问题&img src=&/equation?tex=g%3Ay%5Crightarrow+x& alt=&g:y\rightarrow x& eeimg=&1&&,那么我可以尝试翻译一个英文句子到中文,再翻译回来。这种转了一圈的结果&img src=&/equation?tex=x%27%3Dg%28f%28x%29%29& alt=&x'=g(f(x))& eeimg=&1&&,灰衣男是可以用一个标准(BLEU)判断x'和x是否一个意思,并且把结果的一致性反馈给这两个模型进行改进。同样的,从中文取个句子,这样循环翻译一遍,两个模型又能从黑衣女那里获取反馈并改进模型。其实这就是强化学习的过程,每次翻译就是一个action,每个action会从环境(灰衣男或黑衣女)中获取reward,对模型进行改进,直至收敛。&p&也许有的人看到这里会觉得和上世纪提出的Co-training很像,这个在知乎上也有讨论:&/p&&a href=&/question/& class=&internal&&如何理解刘铁岩老师团队在NIPS 2016上提出的对偶学习(Dual Learning)?&/a&&p&个人觉得还是不一样的,Co-Training是一种multi-view方法,比如一个输入x,如果看作是两个拼一起的特征&img src=&/equation?tex=x%3D%28x_1%2Cx_2%29& alt=&x=(x_1,x_2)& eeimg=&1&&,并且假设&img src=&/equation?tex=x_1& alt=&x_1& eeimg=&1&&和&img src=&/equation?tex=x_2& alt=&x_2& eeimg=&1&&互相独立,那么这时候训练两个分类器&img src=&/equation?tex=f_1%28%5Ccdot%29& alt=&f_1(\cdot)& eeimg=&1&&和&img src=&/equation?tex=f_2%28%5Ccdot%29& alt=&f_2(\cdot)& eeimg=&1&&对于任意样本x应该有&img src=&/equation?tex=f_1%28x_1%29%3Df_2%28x_2%29& alt=&f_1(x_1)=f_2(x_2)& eeimg=&1&&。这对没有标注的样本是很有用的,相当于利用了同一个样本分类结果就应该一样的隐含约束。所以Co-Training的典型场景是少量标注+大量未标注的半监督场景。并且&img src=&/equation?tex=f_1& alt=&f_1& eeimg=&1&&和&img src=&/equation?tex=f_2& alt=&f_2& eeimg=&1&&其实是两个不同,但是domain指向相同的任务。而Dual Learning中&img src=&/equation?tex=f& alt=&f& eeimg=&1&&和&img src=&/equation?tex=g& alt=&g& eeimg=&1&&是对偶任务,利用的隐含约束是&img src=&/equation?tex=x%5Crightarrow+y%5Crightarrow+x& alt=&x\rightarrow y\rightarrow x& eeimg=&1&&的cycle consistency。对输入的特征也没有像Co-Training有那么明确的假设,学习方法上也不一样,Dual Learning算是强化学习。&/p&&h2&CycleGAN和未配对图像翻译(Unpaired Image-to-Image Translation)&/h2&&p&CycleGAN,翻译过来就是:轮着干,是结合了对偶学习和GAN一个很直接而巧妙的想法[10],示意图如下:&/p&&img src=&/v2-9e7396ebccb7c42302fc97_b.png& data-rawwidth=&838& data-rawheight=&216& class=&origin_image zh-lightbox-thumb& width=&838& data-original=&/v2-9e7396ebccb7c42302fc97_r.png&&&p&X和Y分别是两种不同类型图的集合,比如穿衣服的女优和没穿衣服的女优。所以给定一张穿了衣服的女优,要变成没穿衣服的样子,就是个图片翻译问题。CycleGAN示意图中(b)和(c)就是Dual Learning:&/p&&img src=&/v2-de51cac58b_b.png& data-rawwidth=&347& data-rawheight=&62& class=&content_image& width=&347&&&p&在Dual Learning基础上,又加入了两个判别器&img src=&/equation?tex=D_X& alt=&D_X& eeimg=&1&&和&img src=&/equation?tex=D_Y& alt=&D_Y& eeimg=&1&&用来进行对抗训练,让翻译过来的图片尽量逼近当前集合中的图片:&/p&&p&&img src=&/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_b.png& data-rawwidth=&442& data-rawheight=&59& class=&origin_image zh-lightbox-thumb& width=&442& data-original=&/v2-e0ea7a6b38bf2a20cea4ea6f741a4c67_r.png&&全考虑一起,最终的loss是:&/p&&p&&img src=&/v2-e6d99e7edea969da3dad_b.png& data-rawwidth=&357& data-rawheight=&87& class=&content_image& width=&357&&也许有人会问,那不加cycle-consistency,直接用GAN学习一个&img src=&/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&的映射,让生成的Y的样本尽量毕竟Y里本身的样本可不可以呢?这个作者在文中也讨论了,会产生GAN训练中容易发生的mode collapse问题。mode collapse问题的一个简单示意如下[1]:&/p&&p&&img src=&/v2-309fce6329592babb784ed_b.png& data-rawwidth=&842& data-rawheight=&262& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&/v2-309fce6329592babb784ed_r.png&&上边的是真实分布,下边的是学习到的分布,可以看到学习到的分布只是完整分布的一部分,这个叫做partial mode collapse,是训练不收敛情况中常见的一种。如果是完全的mode collapse,就是说生成模型得到的都是几乎一样的输出。而加入Cycle-consistency会让一个domain里不同的样本都尽量映射到另一个domain里不同的地方,理想情况就是双射(bijection)。直观来理解,如果通过&img src=&/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&都映射在Y中同一个点,那么这个点y通过&img src=&/equation?tex=Y%5Crightarrow+X& alt=&Y\rightarrow X& eeimg=&1&&映射回来显然不可能是多个不同的x,所以加入cycle-consistency就帮助避免了mode collapse。这个问题在另一篇和CycleGAN其实本质上没什么不同的方法DiscoGAN中有更详细的讨论[11],有兴趣的话可以参考。&/p&&br&&p&有一点值得注意的是,虽然名字叫CycleGAN,并且套路也和C-GAN很像,但是其实只有adversarial,并没有generative。因为严格来说只是学习了&img src=&/equation?tex=X%5Crightarrow+Y& alt=&X\rightarrow Y& eeimg=&1&&和&img src=&/equation?tex=Y%5Crightarrow+X& alt=&Y\rightarrow X& eeimg=&1&&的mapping,所谓的generative network里并没有随机性。有一个和CycleGAN以及DiscoGAN其实本质上也没什么不同的方法叫DualGAN[12],倒是通过dropout把随机性加上了。不过所有加了随机性产生的样本和原始样本间的cycle-consistency用的还是l1 loss,总觉得这样不是很对劲。当然现在GAN这么热门,其实只要是用了adversarial loss的基本都会取个名字叫XXGAN,也许是可以增加投稿命中率。&/p&&p&另外上节中提到了Co-Training,感觉这里也应该提一下CoGAN[13],因为名字有些相似,并且也可以用于未配对的图像翻译。CoGAN的大体思想是:如果两个Domain之间可以互相映射,那么一定有一些特征是共有的。比如男人和女人,虽然普遍可以从长相区分,但不变的是都有两个眼睛一个鼻子一张嘴等等。所以可以在生成的时候,把生成共有特征和各自特征的部分分开,示意图如下:&br&&/p&&p&&img src=&/v2-57eaadc8cec5190bfd30_b.png& data-rawwidth=&758& data-rawheight=&207& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&/v2-57eaadc8cec5190bfd30_r.png&&其实就是两个GAN结构,其中生成网络和判别网络中比较高层的部分都采用了权值共享(虚线相连的部分),没有全职共享的部分分别处理不同的domain。这样每次就可以根据训练的domain生成一个样本在两个domain中不同的对应,比如戴眼镜和没戴眼镜:&/p&&p&&img src=&/v2-356a6118ccf3e8e3bf1c7_b.png& data-rawwidth=&791& data-rawheight=&267& class=&origin_image zh-lightbox-thumb& width=&791& data-original=&/v2-356a6118ccf3e8e3bf1c7_r.png&&分别有了共有特征和各自domain特征,那么做mapping的思路也就很直接了[14]:&/p&&p&&img src=&/v2-8ac50600e40feaac345e09bd7e05a83d_b.png& data-rawwidth=&771& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&771& data-original=&/v2-8ac50600e40feaac345e09bd7e05a83d_r.png&&在GAN前边加了个domain encoder,然后对每个domain能得到三种样本给判别器区分:直接采样,重建采样,从另一个domain中transfer后的重建采样。训练好之后,用一个domain的encoder+另一个domain的generator就很自然的实现了不同domain的转换。用在图像翻译上的效果如下:&/p&&p&&img src=&/v2-612e9cf5e125fd626be7db_b.png& data-rawwidth=&444& data-rawheight=&544& class=&origin_image zh-lightbox-thumb& width=&444& data-original=&/v2-612e9cf5e125fd626be7db_r.png&&还有个巧妙的思路,是把CoGAN拆开,不同domain作为C-GAN条件的更加显式的做法[15]:&/p&&br&&p&&img src=&/v2-ddec16d502c94f91ea35_b.png& data-rawwidth=&883& data-rawheight=&398& class=&origin_image zh-lightbox-thumb& width=&883& data-original=&/v2-ddec16d502c94f91ea35_r.png&&第一步用噪声Z作为和domain无关的共享表征对应的latent noise,domain信息作为条件C训练一个C-GAN。第二步,训练一个encoder,利用和常见的encode-decode结构相反的decode(generate)-encode结构。学习好的encoder可以结合domain信息,把输入图像中和domain无关的共享特征提取出来。第三步,把前两步训练好的encoder和decoder(generator)连一起,就可以根据domain进行图像翻译了。&/p&&p&CoGAN一系的方法虽然结构看起来更复杂,但个人感觉理解起来要比dual系的方法更直接,并且有latent space,可解释性和属性对应也好一些。&/p&&p&又扯远了,还是回到正题:&/p&&br&&h2&给女优穿上衣服&/h2&&p&其实同样没什么好说的,Cycle-GAN和pix2pix的作者是一拨人,文档都写得非常棒,准备好数据,分成穿衣服的和没穿衣服的两组,按照文档的步骤训练就可以:&/p&&p&Torch版Cycle-GAN:&a href=&/?target=https%3A///junyanz/CycleGAN& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/CycleGAN&i class=&icon-external&&&/i&&/a&&/p&&p&pyTorch版Cycle-GAN(pix2pix二合一版):&a href=&/?target=https%3A///junyanz/pytorch-CycleGAN-and-pix2pix& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&junyanz/pytorch-CycleGAN-and-pix2pix&i class=&icon-external&&&/i&&/a&&/p&&p&Cycle-GAN收敛不易,我用了128x128分辨率训练了穿衣服和没穿衣服的女优各一千多张,同样是默认参数训练了120个epoch,最后小部分成功“穿衣服”的结果如下:&/p&&img src=&/v2-fee34d66c386e0e01e5804_b.jpg& data-rawwidth=&1117& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&/v2-fee34d66c386e0e01e5804_r.jpg&&&img src=&/v2-de57c5ebefa4251ee3caa1_b.jpg& data-rawwidth=&1117& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&1117& data-original=&/v2-de57c5ebefa4251ee3caa1_r.jpg&&&p&虽然都有些突兀,但好歹是穿上衣服了。注意马赛克不是图片里就有的,是我后来加上去的。&/p&&p&那么,脱衣服的例子在哪里?&/p&&img src=&/v2-480fb8a4dcfc7a4f92ec_b.png& data-rawwidth=&75& data-rawheight=&60& class=&content_image& width=&75&&&h2&参考文献&/h2&&p&[1] I. Goodfellow. Nips 2016 tutorial: Generative adversarial networks. arXiv preprint arXiv:, 2016.&/p&&p&[2] A. B. L. Larsen, S. K. S?nderby, Generating Faces with Torch. &a href=&/?target=http%3A//torch.ch/blog//gan.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Torch | Generating Faces with Torch&i class=&icon-external&&&/i&&/a&&/p&&p&[3] A. B. L. Larsen, S. K. S?nderby, H. Larochelle, and O. Winther. Autoencoding beyond pixels using a
learned similarity metric. In ICML, pages , 2016.
&/p&&p&[4] C. Ledig, L. Theis, F. Huszar, J. Caballero, A. Aitken, A. Tejani, J. Totz, Z. Wang, and W. Shi. Photo-realistic single image super-resolution using a generative adversarial network. arXiv:, 2016.&/p&&p&[5] P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. Image-to-image translation with conditional adversarial networks. arxiv, 2016. &/p&&p&[6] O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. In MICCAI, pages 234–241. Springer, 2015.&/p&&p&[7] B. Zhou, A. Khosla, A. Lapedriza, A. Oliva, and A. Torralba. Learning deep features for discriminative localization. arXiv preprint arXiv:, 2015.&/p&&p&[8] He, D., Xia, Y., Qin, T., Wang, L., Yu, N., Liu, T.-Y., and Ma, W.-Y. (2016a). Dual learning for machine translation. In the Annual Conference on Neural Information Processing Systems (NIPS), 2016.&/p&&br&&p&[9] &a href=&/?target=http%3A//www.dsrg.stuorg.iastate.edu/wp-content/uploads/2017/02/dual-learning_-pushing-the-new-frontier-of-artificial-intelligence-tieyan-liu.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Tie-Yan Liu, Dual Learning: Pushing the New Frontier of Artificial Intelligence, MIFS 2016&i class=&icon-external&&&/i&&/a&&br&&/p&&p&[10] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networkss. arXiv preprint arXiv:, 2017.&/p&&p&[11] T. Kim, M. Cha, H. Kim, J. Lee, and J. Kim. Learning to Discover Cross-Domain Relations with Generative Adversarial Networks. ArXiv e-prints, Mar. 2017.&/p&&br&&p&[12] Z. Yi, H. Zhang, P. T. Gong, et al. DualGAN: Unsupervised dual learning for image-to-image translation. arXiv preprint arXiv:, 2017.&/p&&br&&p&[13] M.-Y. Liu and O. Tuzel. Coupled generative adversarial networks. In Advances in Neural Information Processing Systems (NIPS), 2016.&/p&&p&[14] M.-Y. Liu, T. Breuel, and J. Kautz. Unsupervised image-to-image translation networks. arXiv preprint arXiv:, 2017.&/p&&p&[15] Dong, H., Neekhara, P., Wu, C., Guo, Y.: Unsupervised image-to-image translation with generative adversarial networks. arXiv preprint arXiv:, 2017.&/p&&p&=========== 分割线: ===========&/p&&p&上周日发的时候也想到了可能会有许多人对这个话题感兴趣,但没想到超过了1.5W赞这么多,大概看了看评论,做一些补充:&/p&&p&&b&1) &/b&马赛克训练数据:对于一般的机器学习问题,都是分布越简单越容易,遵循这个原则,我用的约束是单人照片,具体方法是:先找一个Pascal VOC训练好的SSD代码,然后SSD筛选了一批每张图里只能检测到一个人的。&/p&&p&最后在真人照片上的效果看上去还是不错的,我没有做过量化评估,大体来说看上去挺像的要超过一半,非常逼真的可能有5%~10%。两人以上战斗的动作画面我没有评估过。&/p&&p&&b&2)&/b&穿(tuo)衣训练数据:因为收敛很难,所以数据的加了更多约束:只用女性单人正面照片。同样通过SSD检测出单人照片,同时考虑person框的宽高比小于1的且框内能检测到人脸的(OpenCV的人脸检测)。这样尽量筛选出一批面向镜头,身体占画面比接近的照片。&/p&&p&最后的效果我在原文中也提到过,只有小部分能成功穿上(tuo)衣服,具体我也没有量化统计过,大概100张里两三张吧,大部分都是身上出现了看上去有点像衣服的线条或是另一个人的胸部。考虑到我最后筛选出的图片人物占画面比仍然有很大的变化,很可能我的模型就是遇到了文中提到的partial mode collapse的问题。&/p&&p&如果有更好的办法筛选出人物大小差不多的照片,效果应该能提升不少。比如我在用SSD筛选的时候如果考虑宽高比更小一些,筛选出的照片看上去会更加一致,不过我资源不太够,这样做后训练集就只有不到300张,资源够的老司机们有兴趣可以试试。&/p&&br&&p&&b&3)&/b&预训练模型有没有?有,但是我研读了中华人民共和国刑法第三百六十三、三百六十四和三百六十六条,完全读

我要回帖

更多关于 好听的训练营名字 的文章

 

随机推荐