平面设计论文(苹果有什么软件让你相见恨晚)
资讯
2023-11-21
80
1. 平面设计论文,苹果有什么软件让你相见恨晚?
下面推荐9个实用软件,总有一个适合你!绝对让你相见恨晚!
uzer me一个ios上在线运行的云端应用软件,功能逆天。
你可以通过它,在手机上使用word、ppt、excel、ps、AI...所生成的文件都保存在云端,不占用手机的本地内存,小内存手机的福音。而且装了这个软件后,可以对其他软件说再见了,省心省力!
时光相册新海诚动画《你的名字》同款滤镜,小清新文艺青年的最爱,分分钟让你的相片提高一个档次,不多说,强力推荐。
香蕉打卡运动打卡app,UI界面简约明了,颜控必备。
另外app为了鼓励用户坚持运动,持续打卡,推出了环游世界的打卡游戏:你每到一座新城市就可以解锁一张对应的界面皮肤,用自己的脚步去浏览了每个角落!以此培养你运动生活的好习惯。
萝卜书摘一个摘抄笔记app,适合天天和文字打交道的朋友。
当你在读书的时候,遇到喜欢的句子,段落,你用它扫一扫就可以马上转化为文字记录到手机上,并且你还可以用它制作专属于自己的书摘笔记。
另外,你还可以在里面找到志同道合的书友,一起畅聊人生。
快点投屏一个黑科技投屏app,只需手机和电视在同一wifi上。
主流网站上的视频都可以一键投屏到电视上,同时支持手动输入视频网址,看你所看。
嘀嗒番茄钟界面功能都很简单,通过种番茄的形式限定一段时间培养用户专注力,从而做到好好管理时间。专注时间可以自定义,但定下之后就得一秒不少的做完既定任务,否则番茄就会烂掉。
另外,它还提供美妙而又安静的背景音乐,供你好好工作。
熊猫吃短信人如其名,特别适合生活的一个app。现在垃圾短信泛滥成灾,你需要它来帮助你过滤掉垃圾短信。我的已经用了很久了,超级好用,极力推荐你试试。
它通过对两万多条短信以及民间收集到的大量样本进行学习,从而具备了较准确的信息过滤能力。
Clone Camera相机届的影分身大师,分身自拍app。
只要用手机把不同位置的pose拍下来,合成时避开人的脸部、手部等皮肤即可。拍摄过程中注意不要遮挡之前的位置和pose,每隔10秒定时拍摄,连拍6张!
太有逼格了!
词ci很小众的诗词app,带有丰富的词牌库,主要功能为提供词牌及韵律供用户自己作词!
当你选好词牌后,就可以开始优雅流畅的填写。
在写词过程中,除了会高亮出平仄不对的汉字外,还可以方便地查找同韵字、随时切换查看当前词牌的写作规则。很文艺,有不有?
收集、分类不易,如果觉得有用的话,点个赞,再来波关注哈哈!
2. 求一篇光伏电站的毕业论文?
一、项目概括1.1项目简介及选址
本项目电站选址地位于湖南省湘潭市雨湖区的响塘学校屋顶上,经过去现场实地的了解和勘测后,此学习周围无森林无高大树木,附近也无任何其他房屋,距离其最近的房屋也有数十米的距离,该屋顶无女儿墙无其他建造物,是一个平面的屋顶,其屋长为43米,宽为32米。
本项目将在此学校屋顶上建造一个100kw的并网型光伏电站,实施全额上网措施。选址卫星图如图1-1所示,选址平面图如图1-2所示。
1.2 项目位置及气象情况经过百度地图的计算,得出了此地经纬度为:北纬27.96,东经为112.83,是属于亚热带温湿气候区,典型的冬冷夏热气温,年降雨量充足达1450毫米,最高气温为夏季的41.8度,最低气温为冬季的-12.1度,年均气温17度。该项目所在地最高海拔为793米,最低海拔达30.7米,总的平均海拔为48.2米。该地年总辐射量经过PVsyst软件的计算后,得出了1116.6的值,不是特别高,属于第三类资源区,但建设一个电站也不是特别亏。湘潭市地理位置图如图1-3所示。
1.3项目设计依据本项目设计依据如下:
《光伏发电站设计规范》GB50794-2012
《电力工程电缆设计规范》GB50217-1994
《光伏系统并网技术要求》GB/T19939-2005
《建筑太阳能光伏系统设计与安装》10J908-5
《光伏发电站接入电力系统技术规范》GB/T19964-2012
《光伏发电站接入电力系统设计规范》GB/T5086-2013
《光伏(PV)系统电网接口特性》GB/T20046-2006
《电能质量公用电网谐波》GB/T14549-19933
《电能质量三相电压允许不平衡度》GB/T15543-1995
《晶体硅光伏方阵I-V特性的现场测量》GB/T18210-2000
二、电站系统设计
2.1组件选型组件是电站中造价最高的设备,投资一个电站几乎一半的钱是砸这组件上去了,为此我们选择的组件一定要是最适合本电站的,不管是组件效率还是组件的其他参数在同功率组件下都应该保持最佳,这样才不会亏本。
组件的类型有很多,以不同的材料来说,组件又分为了晶硅组件、薄膜组件,在电站中使用最多的便是晶硅型组件,而晶硅型组件又分为单晶硅和多晶硅,它们都是市场上十分热门的组价。
单晶硅的效率比多晶硅高了很多,其使用寿命时间也长了不少,但价格方面却比多晶硅高了很多,但考虑到平价上网的时代,单晶硅的价格远远不如过去那样昂贵,所以本电站选取的组件为单晶型组件。
第一款组件晶科Swan Bifacial 400 72H和第二款组件晶科Swan Bifacial 405 72H的型号牌子都一样,除功率和其效率有点差距之外,其他的参数基本一样,但其第二款组件晶科Swan Bifacial 405 72H组件的效率高,相同尺寸不同效率下,选择第二款组件更好。
第三款组件晶澳JAM72S10 400MR是3款组件里效率最高的组件,比第一款和第二款分别高了0.37%和0.12%,并且尺寸和部分温度系数也是3款里面最小的,开路电压和工作电压以及短路电流等参数也是3款组件中最高的,从数据上来看,第三款组件晶澳JAM72S10 400MR是3款里最棒的组件。
综合上面的分析,本项目最终选择第3款组件晶澳JAM72S10 400MR作为本项目的组件使用型号。组件图如图2-1所示。
2.2最佳倾斜角和方位角设计本电站建造在平面屋顶上,该屋顶无任何的倾角,由于组件是依靠着太阳光发电,但每时每刻太阳都是在运动着,为此便会与组件形成一个角度,该角度影响着组件的发电量,对于采取固定支架安装方式的电站来说,选择一个最合适的角度能够让电站发电量达到最高,因此最佳倾角这个概念便被引出了。
对于本电站而言,根据其PVsyst软件的计算后,得出了湘潭最佳倾角为18度时,方位为0度时,电站一年下来的发电量能够达到最高。PVsyst最佳方位角、倾斜角模拟图如图2-2所示。
2.3组件排布方式本项目选址地屋顶长43米,宽为29米,采取横向排布方式无法摆下其电站中的整个阵列,因此本项目组件方式采取竖向排布,中间间距20mm。如图2-3所示。
2.4组件间距设计太阳照射到一个物体上时,由于该物体遮住了光,使得光不能直射到地上时,该物体便会产生一个阴影投射到地上,而电站中的组件也类似于此,前一个组件因光产生的阴影投射到另一个组件上时,被照射的组件便会受到影响,进而影响整个电站,这对于电站来说是一个严重的问题,因此在设计其组件之间的间距时,一定要保证阴影的距离不会触及组件。
在公式2-1中:
L是阵列倾斜面长度(4050mm)
D是阵列之间间距
β是阵列倾斜角(18°)
为当地纬度(27.96°)
把以上数值代入公式后计算得:
根据结果,当电站中的子方阵间距大于2119mm时,子方阵与子方阵便不会受到影响。
2.5逆变器选型逆变器是电站中其转换电流的设备,十分的重要,而逆变器的种类比较多,对于本项目电站来说,选择组串式逆变器最佳,因此本项目选择了3款市场上热卖的组串式逆变器。
3款逆变器的功率均在100kw以上,其效率也都是一模一样,均只有98.1%,其额定输出电压也都为600V,对于本电站来说,这3款逆变器都能使用,但可惜本电站只会从中选择一个最合适的品牌。
第一款逆变器华为SUN2000-100KTL-C1和第二款逆变器华为SUN2000-110KTL-C1是同种类同型号,但不同功率的逆变器,这两款逆变器大部分数据都一模一样,但第二款逆变器功率比第一款逆变器功率高了10k,比本电站的容量也高了10k,并且价格了略微高了那么点,选用第一款逆变器不仅省钱而且还不会造成功率闲置无处使用,最大发挥逆变器的作用,因此第1款比第2款逆变器好。
第三款逆变器是固德威HT 100K,它的最大输入功率高达150kw,明明是一个100kw的逆变器,但其输入功率却不同我们往常见的逆变器一样,它居然还高了50k,如果选用这款逆变器,那么阵列输入的功率超过100都能承受。虽然最大输入功率很恐怖,但其他参数正常,对比第一款逆变器,仅只是部分参数略微差了点,总体是几乎没什么太大的差别。
本项目根据上述的分析和对其逆变器的需求,最终选择了固德威HT 100K型逆变器为本电站逆变器。
2.6光伏阵列布置设计2.6.1串并联设计
公式2-3、2-4中:
Kv——光伏组件的开路电压温度系数-0.00272
K——光伏组件的工作电压系数-0.0035
t/——光伏组件工作环境极限高温(℃)60
Vpm——光伏组件的工作电压(V)41.33
VMPPTmax——逆变器MPPT电压最大值(V)1000
VMPPTmin——逆变器MPPT电压最小值(V)200
Voc——光伏组件开路电压(V)49.58
N——光伏组件串联数(取整)
t——光伏组件工作环境极端低温(℃)-12.7
——逆变器允许的最大直流输入电压(V)1100
把以上数值代入公式中计算可得:
5.5≤N≤21
经计算,本电站最终选取20块组件为一阵列。如图2-6组件串并联设计图。
2.6.2项目方阵排布
据2.6.1的结果,每一个阵列共有20块组件,单块组件的功率是400w,一个阵列便是8kw,而本电站的总容量为100kw,总计是需要13个阵列。本电站建设地屋顶长43米,宽为32米,可以完整的摆放电站中的所有子方阵。如图2-9所示。
2.7基础与支架设计2.7.1水泥墩设计
本电站所建地点是公办学校,属于公共建筑,如果使用其打孔安装方式,便有可能使得其屋顶因时间长久而漏水,一旦漏水便需要进行维修,这也是得花费一些金钱,又因是学校,开工去维修可能将使部分学生要做停课处理,因此为了避免这个麻烦,本电站还是选择最常见的水泥墩来做基础设计。
考虑到学校有许多的学生,突然出现了事故,作为电站建设者肯定会有责任,因此为了避免组件出现任何事故,特地将水泥墩设计为一个正方形,其长宽高都为500mm,这样的重量大大降低了事故的发生率。如图2-10水泥墩设计图和2-11电站整体水泥墩设计所示。
2.7.2支架设计
都已经把基础设计水泥墩做好了,那么接下来则是考虑水泥墩上的支撑设备支架,对于支架的设计最重要的一点就是在选材上,一般电站中的支架会持续使用到电站报废为止,使用时间长达二十多年三十多年甚至更久,对此支架的选型便是十分的重要,其使用寿命必须得长,抗腐蚀能力强。如图2-12支架设计图所示。
2.8配电箱选型配电箱在光伏电站里又分为直流配电箱和交流配电箱,对于本电站来说,是选择其交流配电箱。配电箱的容量是根据其逆变器的容量选择,必定不能小于其逆变器的容量,否则可能会出现配电箱过压的情况,然后给电站造成事故危险。
配电箱具备配电、汇电、护电等多种功能,是本电站必须要又的设备,经过配电箱型号的对比,本电站最终选择了昌松100kw光伏交流逆变器。
2.9电缆选配电站分为两类电,一类是直流电,必须使用直流电缆运输;一类是交流电,必须使用交流电缆运输,切记不可以乱搭配使用,否则将会造成电缆出线问题,电站设备出现问题。
直流电缆选型一般都是选择PV1-F-1*4mm²光伏专用直流电缆
交流电缆:
P:逆变器功率100KW
U:交流电电压380V
COSΦ:功率因数0.8
线损率:976/100000=0.9%<2%,符合光伏电缆设计要求。
据其计算结果和下图电缆参数表,本电站最终选择ZRC-YJV22 7Omm2交流电缆。如图
2.10防雷接地设计
防雷接地是绝大多数光伏电站都必须要做的,目的就是防止雷击破幻电站,损坏人民的生命以及财产,特别是对于本电站而言,建设点是在学校,而学校不仅人多而且易燃物也多,一旦雷击劈到电站上,给电站造成了任何事故,都有可能把整个学校给毁了,为此本电站一定需要做好防雷接地设计。
本电站防雷方式采取常用的避雷针进行避雷,接地则是为电站中各个设备接地端做好接地连接。
2.11电气系统设计及图纸本电站装机总容量为100kw,由260块光伏组件组成,形成了13个阵列,每个阵列20块组件,然后连接至逆变器,逆变器变电后接入配电箱,最后再连接国家电网。
三、电站成本与收益
3.1电站项目设备清单根据当地市场的物价,预估出了一个本电站预计投资表。
3.2电站年发电量计算本电站总容量为100kw,而电站选址地的年总辐射量为1116.6,首先发电量便达到了89328度电。
Q=100*1116.6*0.8=89328度
Q——电站首年发电量
W——本项目电站总容量(85KW)
T——许昌市年日照小时数(1258.2H)
——系统综合效率(0.8)
任何设备一旦使用,便就开始慢慢磨损了,其效率也是一年比一年差,即便是光伏组件也不例外。组件首年使用一年后,为了适应其环境,自身的效率瞬间就降低2.5%,而后的每年则是降低0.7%,将至80%左右时,光伏组件也是已经运行了25年。
3.3电站预估收益计算根据湖南省的标准电价,我们电站发的每度电能够有0.45元收入,持续运行25年后,将会获得2007021.504*0.45=903159元,也就是90多万,减去我们为电站投资的41.57万,我们25年内能够获得大约50万的纯利润收入
参考文献
[1]王思钦.分布式光伏发电系统电能计量方案[J].农村电工,2019,27(09):37.
[2]谷欣龙.光伏发电与并网技术分析[J].科技资讯,2019,17(24):31+33.
[3]黄超辉,陈勇,任守宏.基于应用的光伏电站电缆优化设计[J].电子工业专用设备,2019,48(03):67-71.
[4]余茂全,张磊.基于PVSYST的光伏发电系统仿真研究[J].安徽水利水电职业技术学院学报,2019,19(02):35-39.
[5]谭阳.家用太阳能分布式光伏并网发电系统研究[J].电子制作,2019(09):94-95+91.
[6]石培进.发展分布式光伏电站的可行性分析[J].山东工业技术,2019(12):183.
[7]蒋飞. 光伏发电项目的投资决策方法研究[D].华东理工大学,2013.
[8]陈坤. 光伏发电系统MPPT控制算法研究[D].重庆大学,2013.
[9]徐瑞东. 光伏发电系统运行理论与关键技术研究[D].中国矿业大学,2012.
[10]任苗苗. 光伏发电三相并网逆变器的研究[D].兰州交通大学,2012.
3. 美术生上大学以后还学素描速写色彩吗?
很高兴回答您的问题
首先高中集训阶段素描、速写、色彩是我们美术生的三大主科。就好比高中阶段的语文、数学、英语一样。是考察美术生专业知识以及专业技能的基础。
那么到了大学之后这三科还会学一段时间,普遍会集中在大一这一学期,当然大学课程中的素描、色彩、速写、会比艺考培训阶段时期的素描、速写、色彩的高度更高一些。根据大学的课程安排决定,主要分配如下:
大一阶段:再专业方面会以基础的素描、速写、色彩为主,像素描的话会涉及到人体写生、半身像以及全身像等等,色彩的话也会涉及人体写生,半身,头像,静物等等,速写的话亦是如此。具体课程内容会根据每个学校的课程具体安排,美院类的院校和综合类的大学也会有所不同。
在理论课这一方面还会涉及到英语,体育,中外美术史,艺术概论,毛泽东思想等等,专业不同课程也会不同,这些课程有些课程是必修课有些课程是选修课,比如体育就是选修课(你可以选择乒乓球、羽毛球、网球、排球、轮滑等等)必修课就是必须要上的,不然期末考试会挂科、影响学分(大学是学分制)。
大二阶段:在大二学期开始进行分专业(个别学校不同)具体的专业划分,这个学期开始接触新的专业知识,也就是你四年即将主攻的专业。比如美术专业的分师范类专业和纯艺术类专业,甚至包括设计类专业等等。在师范类和纯艺术类里还会划分成水彩班,油画班、版画班,国画班等等,理论课方面师范类的可能会接触教育学,心理学等等,设计专业的很广比如室内设计,产品设计,民族服饰设计等等。
大三阶段:大三学期会有一些实践类课程加入,不如外出写生,真人写生等等。美术这一块的话课程周期会延长,作品质量会提高。大部分的时间都是在练习自己的专业技能。当然如果时间安排合理,还可以利用空余的时间找一些兼职来做。积累自己的工作经验。还可以选修自己的第二学位。
大四阶段:大四学期是大学的最后一学期,美术专业的话会涉及到毕业创作,毕业论文,以及毕业之后的工作,个别专业会有外出实习等等。所以大四一年都在围绕着这些事在做。
大学的学分制要求每一位学生修够大学四年应有的学分,学分不够是拿不到学士学位证的。只有毕业证。反之会两证齐全。
希望对你有帮助谢谢!
4. 你在实验室经历过最尴尬或者有意思的事情是什么?
大家好,我是萨瑞娜绿城播报,很高兴回答这个问题。
我在实验室经历过最尴尬的事儿,唉,别提了,提起来就心塞。高中的时候,上化学实验课,要用酒精灯煮工具。我点燃了酒精灯,上面玻璃杯里的水放的太少了,而后,我又忙其他事情了,酒精灯一直燃烧,玻璃杯里的水一直沸腾,结果……你们都想到了,水干了,我还不知道,玻璃杯炸了,玻璃碎片还差点伤住同学。
接着再讲一件尴尬事儿。也是高中的时候,生物实验课上,老师让同学们观察洋葱细胞与猪肉细胞的差别。其他人都乖乖滴听话,做洋葱切片、猪肉切片啥的。只有我异想天开,看着自己手指头上正好褪了一小块皮,就撕下来放到显微镜下仔细研究。正入迷滴时候,被老师发现了,厉声呵斥了我一顿,场面尴尬极了。
好了,不能总讲尴尬的事儿,再讲点开心的事儿吧。最开心的事儿,就是上实验课的时候,能够和暗恋的男神学霸分到一组。我当时喜欢一个高高瘦瘦的男生,他的学习成绩特别好,经常全班第一全校第一,是很多女生心目中的传奇人物。有一次实验课,我居然和他分到了一组,心里别提多高兴激动了。结果,一激动又悲剧了,把工具碰倒了,被男神狠狠滴瞪了一眼,呵呵
希望我的回答能令大家开心满意,谢谢请关注。
5. 如何写出一份漂亮的简历?
一、如何让HR快速识别到你的简历;
1、简历排版要“精简”
如果是一个大公司需要招聘,HR可能会收到几百封的简历,所以HR的任务就是在最短的时间内筛选出足够的人参加面试,大部分简历其实都是只是扫上一眼,基本不会超过10秒;
如果你的简历内容冗长又凸显不了你的优势的话,那对不起!你投的简历已经被扔进了垃圾箱“雪藏”了。
看对方公司需要招聘什么岗位,你在简历里边就一定要写意向岗位是那间公司所招聘的岗位,这样HR扫视的时候就会看到这个关键词,首先会把你这份留下了,第一印象会觉得你是“有备而来”的;
2、认真分析任职要求,针对性的写简历;
看招聘信息主要看职业描述(JD)的内容,通过分析JD你就知道需要具备什么样的能力才能竞争该职位;
而HR筛选简历时,首先就会在简历里找有没有JD相关的内容,就是筛选关键词。举个栗子:这是一个公司招聘市场策划专员的信息:
先把工作职责中,比较重要的关键字眼标注出来,得出这个岗位的职责需求主要是:
1、负责公司APP产品推广,组织策划线上线下的推广活动并持续开发各项支撑活动的资源;
2、负责收集用户反馈意见及需求、维护与用户之间的关系;
再结合下它任职要求,我们就可以得出较为准确的关键词了,我们就可以根据这个需求,想尽办法把自己的经历往上凑,即使自己没有从事过这方面的工作;
比如你干过销售的工作,经常与用户沟通交流、维持良好的关系,这就证明了你的语言表达跟沟通协调能力了。
3、主动"壁咚"HR;
有时候会出现这样的情况,自己已经对应进行了岗位需求的分析,针对性的写了简历,就是没有收到面试的通知,这时的你除了焦虑、忐忑,就不会学着去主动“壁咚”HR嘛;
如果你确实碰到自己非常喜欢的岗位,可以主动去撩HR找到他们的联系方式,毛遂自荐。
但是要“壁咚”人家HR之前,你得掂量自己有自己有几斤几两啊,别把自己整个跟地痞流氓一样见到漂亮小姐就往上贴的那种,是人都会反感,那你得怎么做呢?
把自己包装的漂漂亮亮的,然后追一个人需要打听下对方的底细是吧,那找一份工作也是一样的道理嘛:
1、现在互联网那么发达,我们要学会去查这间公司的背景,对公司有个大概的认知;
2、了解这个岗位的工作内容和岗位需求,自己可以说出对这份工作的想法,如果你可以成功应聘这个岗位,你会怎么开展接下来的工作 ;
3、你主动出击,还对公司概况有了大概的了解,还能说出自己的想法,那么无疑你已经成功引起了这家公司的关注,HR通知你去应聘是水到渠成的事情。
0
2
二、如何在内容中凸显你的优势
1、不要滥竽充数;
跟招聘岗位不相干的工作经历我们大可不必拿来充数,就算你慷慨激昂的写了一整页与招聘需求不相关的项目经验,那也是白扯,只会让HR觉得这人罗里吧嗦抓不住重点,不是公司想要的人,然后就把你直接pass掉了;
2、写好项目经历;
写项目经验的时候,我们一定要根据人家提出的岗位需求再结合自己的实际经历,尽量提取关键词,往人家需求方向靠齐;
而且要写清楚在这个岗位你做了什么工作,取得了什么成绩,成绩要有数据,增强说服力。
给大家举个栗子:
① 我在xx公司负责销售工作;
② 我在xx公司负责销售工作,入职培训后两个月内为公司销售主打产品累计300份,为公司盈利10万;
这样就一目了然了吧,可见数据能带来多大的说服力!
3、学会利用文字修饰;
没有无价值的工作经历,只有写不好工作经历的人,即使看起来再低级、普通的工作也可以用很认真负责的态度把它“修饰”出来;
例如我是一个在办公室打杂的,通过修饰我就可以这样描述:
1、管理维护办公室环境,与供应商沟通协调补给办公用品,通过合理布置办公室物品摆设提高员工效率(把打印机从打印间摆放至通道口,方便员工打印);
2、协调安排经理的行程,安排访客登记,跟进会议并整理会议纪要;(斟茶倒水、做会议记录);
6. 有哪些不错的手机APP?
下面这些app,是本人使用频率比较高的app,可以帮我解决一些实际的问题、带来实实在在的便利,推荐给大家~
下面单独来说说这几个手机应用各自的特色:
1:我的倒计时主要是用来记录日常生活中大大小小的日子,它会自动帮你计算好天数、定时提醒,用起来就很方便,不会错过任何重要事件了,也可以用来记录对自己有意义的事。
2:得言语录专家,分类特别多,语录质量也比较高。日常看看励志语录、人生哲理句子,对调整心态有很大帮助。有时候发朋友圈词穷了还可以借鉴一下上面的句子,实用性强。
3:熊猫吃短信这是个非常小众的宝藏app,不需要手动配置就可以帮你智能拦截垃圾短信,它有机器学习能力,离线状态下也可以拦截。就凭这硬核实力,获得了App Store 多次推荐。
4:我的桌面·iScreen想倒腾手机的时候就用它,上面的小组件有时钟、天气、日历、倒计时、to-do list待办事项,连太空表盘都有,壁纸资源也多,可以玩很久了。看看这桌面效果图,个人的得意之作!喜欢的话可以花个几分钟时间搭配一个,好看实用~
5:抽屉新热榜用这个刷新闻有几个年头了,在广告充斥的时代能有这么个app可以无广告刷热榜,真的要感动落泪,太良心了。更新也快,配图也走心。总是,试过就离不开了。
以上5个应用都是本人的爱用app,有需要的小伙伴可以试试~
7. 变分自编码器VAE目前存在哪些问题?
代码详解:一文读懂自动编码器的前世今生,希望对你有帮助~
全文共5718字,预计学习时长20分钟或更长变分自动编码器(VAE)可以说是最实用的自动编码器,但是在讨论VAE之前,还必须了解一下用于数据压缩或去噪的传统自动编码器。
变分自动编码器的厉害之处假设你正在开发一款开放性世界端游,且游戏里的景观设定相当复杂。
你聘用了一个图形设计团队来制作一些植物和树木以装饰游戏世界,但是将这些装饰植物放进游戏中之后,你发现它们看起来很不自然,因为同种植物的外观看起来一模一样,这时你该怎么办呢?
首先,你可能会建议使用一些参数化来尝试随机地改变图像,但是多少改变才足够呢?又需要多大的改变呢?还有一个重要的问题:实现这种改变的计算强度如何?
这是使用变分自动编码器的理想情况。我们可以训练一个神经网络,使其学习植物的潜在特征,每当我们将一个植物放入游戏世界中,就可以从“已学习”的特征中随机抽取一个样本,生成独特的植物。事实上,很多开放性世界游戏正在通过这种方法构建他们的游戏世界设定。
再看一个更图形化的例子。假设我们是一个建筑师,想要为任意形状的建筑生成平面图。可以让一个自动编码器网络基于任意建筑形状来学习数据生成分布,它将从数据生成分布中提取样本来生成一个平面图。详见下方的动画。
对于设计师来说,这些技术的潜力无疑是最突出的。
再假设我们为一个时装公司工作,需要设计一种新的服装风格,可以基于“时尚”的服装来训练自动编码器,使其学习时装的数据生成分布。随后,从这个低维潜在分布中提取样本,并以此来创造新的风格。
在该节中我们将研究fashion MNIST数据集。
自动编码器传统自动编码器
自动编码器其实就是非常简单的神经结构。它们大体上是一种压缩形式,类似于使用MP3压缩音频文件或使用jpeg压缩图像文件。
自动编码器与主成分分析(PCA)密切相关。事实上,如果自动编码器使用的激活函数在每一层中都是线性的,那么瓶颈处存在的潜在变量(网络中最小的层,即代码)将直接对应(PCA/主成分分析)的主要组件。通常,自动编码器中使用的激活函数是非线性的,典型的激活函数是ReLU(整流线性函数)和sigmoid/S函数。
网络背后的数学原理理解起来相对容易。从本质上看,可以把网络分成两个部分:编码器和解码器。
编码器函数用ϕ表示,该函数将原始数据X映射到潜在空间F中(潜在空间F位于瓶颈处)。解码器函数用ψ表示,该函数将瓶颈处的潜在空间F映射到输出函数。此处的输出函数与输入函数相同。因此,我们基本上是在一些概括的非线性压缩之后重建原始图像。
编码网络可以用激活函数传递的标准神经网络函数表示,其中z是潜在维度。
相似地,解码网络可以用相同的方式表示,但需要使用不同的权重、偏差和潜在的激活函数。
随后就可以利用这些网络函数来编写损失函数,我们会利用这个损失函数通过标准的反向传播程序来训练神经网络。
由于输入和输出的是相同的图像,神经网络的训练过程并不是监督学习或无监督学习,我们通常将这个过程称为自我监督学习。自动编码器的目的是选择编码器和解码器函数,这样就可以用最少的信息来编码图像,使其可以在另一侧重新生成。
如果在瓶颈层中使用的节点太少,重新创建图像的能力将受到限制,导致重新生成的图像模糊或者和原图像差别很大。如果使用的节点太多,那么就没必要压缩了。
压缩背后的理论其实很简单,例如,每当你在Netflix下载某些内容时,发送给你的数据都会被压缩。一旦这个内容传输到电脑上就会通解压算法在电脑屏幕显示出来。这类似于zip文件的运行方式,只是这里说的压缩是在后台通过流处理算法完成的。
去噪自动编码器
有几种其它类型的自动编码器。其中最常用的是去噪自动编码器,本教程稍后会和Keras一起进行分析。这些自动编码器在训练前给数据添加一些白噪声,但在训练时会将误差与原始图像进行比较。这就使得网络不会过度拟合图像中出现的任意噪声。稍后,将使用它来清除文档扫描图像中的折痕和暗黑区域。
稀疏自动编码器
与其字义相反的是,稀疏自动编码器具有比输入或输出维度更大的潜在维度。然而,每次网络运行时,只有很小一部分神经元会触发,这意味着网络本质上是“稀疏”的。稀疏自动编码器也是通过一种规则化的形式来减少网络过度拟合的倾向,这一点与去噪自动编码器相似。
收缩自动编码器
收缩编码器与前两个自动编码器的运行过程基本相同,但是在收缩自动编码器中,我们不改变结构,只是在丢失函数中添加一个正则化器。这可以被看作是岭回归的一种神经形式。
现在了解了自动编码器是如何运行的,接下来看看自动编码器的弱项。一些最显著的挑战包括:
· 潜在空间中的间隙
· 潜在空间中的可分性
· 离散潜在空间
这些问题都在以下图中体现。
MNIST数据集的潜在空间表示
这张图显示了潜在空间中不同标记数字的位置。可以看到潜在空间中存在间隙,我们不知道字符在这些空间中是长什么样的。这相当于在监督学习中缺乏数据,因为网络并没有针对这些潜在空间的情况进行过训练。另一个问题就是空间的可分性,上图中有几个数字被很好地分离,但也有一些区域被标签字符是随机分布的,这让我们很难区分字符的独特特征(在这个图中就是数字0-9)。还有一个问题是无法研究连续的潜在空间。例如,我们没有针对任意输入而训练的统计模型(即使我们填补了潜在空间中的所有间隙也无法做到)。
这些传统自动编码器的问题意味着我们还要做出更多努力来学习数据生成分布并生成新的数据与图像。
现在已经了解了传统自动编码器是如何运行的,接下来讨论变分自动编码器。变分自动编码器采用了一种从贝叶斯统计中提取的变分推理形式,因此会比前几种自动编码器稍微复杂一些。我们会在下一节中更深入地讨论变分自动编码器。
变分自动编码器
变分自动编码器延续了传统自动编码器的结构,并利用这一结构来学习数据生成分布,这让我们可以从潜在空间中随机抽取样本。然后,可以使用解码器网络对这些随机样本进行解码,以生成独特的图像,这些图像与网络所训练的图像具有相似的特征。
对于熟悉贝叶斯统计的人来说,编码器正在学习后验分布的近似值。这种分布通常很难分析,因为它没有封闭式的解。这意味着我们要么执行计算上复杂的采样程序,如马尔可夫链蒙特卡罗(MCMC)算法,要么采用变分方法。正如你可能猜测的那样,变分自动编码器使用变分推理来生成其后验分布的近似值。
我们将会用适量的细节来讨论这一过程,但是如果你想了解更深入的分析,建议你阅览一下Jaan Altosaar撰写的博客。变分推理是研究生机器学习课程或统计学课程的一个主题,但是了解其基本概念并不需要拥有一个统计学学位。
若对背后的数学理论不感兴趣,也可以选择跳过这篇变分自动编码器(VAE)编码教程。
首先需要理解的是后验分布以及它无法被计算的原因。先看看下面的方程式:贝叶斯定理。这里的前提是要知道如何从潜变量“z”生成数据“x”。这意味着要搞清p(z|x)。然而,该分布值是未知的,不过这并不重要,因为贝叶斯定理可以重新表达这个概率。但是这还没有解决所有的问题,因为分母(证据)通常很难解。但也不是就此束手无辞了,还有一个挺有意思的办法可以近似这个后验分布值。那就是将这个推理问题转化为一个优化问题。
要近似后验分布值,就必须找出一个办法来评估提议分布与真实后验分布相比是否更好。而要这么做,就需要贝叶斯统计员的最佳伙伴:KL散度。KL散度是两个概率分布相似度的度量。如果它们相等,那散度为零;而如果散度是正值,就代表这两个分布不相等。KL散度的值为非负数,但实际上它不是一个距离,因为该函数不具有对称性。可以采用下面的方式使用KL散度:
这个方程式看起来可能有点复杂,但是概念相对简单。那就是先猜测可能生成数据的方式,并提出一系列潜在分布Q,然后再找出最佳分布q*,从将提议分布和真实分布的距离最小化,然后因其难解性将其近似。但这个公式还是有一个问题,那就是p(z|x)的未知值,所以也无法计算KL散度。那么,应该怎么解决这个问题呢?
这里就需要一些内行知识了。可以先进行一些计算上的修改并针对证据下界(ELBO)和p(x)重写KL散度:
有趣的是ELBO是这个方程中唯一取决于所选分布的变量。而后者由于不取决于q,则不受所选分布的影响。因此,可以在上述方程中通过将ELBO(负值)最大化来使KL散度最小化。这里的重点是ELBO可以被计算,也就是说现在可以进行一个优化流程。
所以现在要做的就是给Q做一个好的选择,再微分ELBO,将其设为零,然后就大功告成了。可是开始的时候就会面临一些障碍,即必须选择最好的分布系列。
一般来说,为了简化定义q的过程,会进行平均场变分推理。每个变分参数实质上是相互独立的。因此,每个数据点都有一个单独的q,可被相称以得到一个联合概率,从而获得一个“平均场”q。
实际上,可以选用任意多的场或者集群。比如在MINIST数据集中,可以选择10个集群,因为可能有10个数字存在。
要做的第二件事通常被称为再参数化技巧,通过把随机变量带离导数完成,因为从随机变量求导数的话会由于它的内在随机性而产生较大的误差。
再参数化技巧较为深奥,但简单来说就是可以将一个正态分布写成均值加标准差,再乘以误差。这样在微分时,我们不是从随机变量本身求导数,而是从它的参数求得。
这个程序没有一个通用的闭型解,所以近似后验分布的能力仍然受到一定限制。然而,指数分布族确实有一个闭型解。这意味着标准分布,如正态分布、二项分布、泊松分布、贝塔分布等。所以,就算真正的后验分布值无法被查出,依然可以利用指数分布族得出最接近的近似值。
变分推理的奥秘在于选择分布区Q,使其足够大以求得后验分布的近似值,但又不需要很长时间来计算。
既然已经大致了解如何训练网络学习数据的潜在分布,那么现在可以探讨如何使用这个分布生成数据。
数据生成过程
观察下图,可以看出对数据生成过程的近似认为应生成数字‘2’,所以它从潜在变量质心生成数值2。但是也许不希望每次都生成一摸一样的数字‘2’,就好像上述端游例子所提的植物,所以我们根据一个随机数和“已学”的数值‘2’分布范围,在潜在空间给这一过程添加了一些随机噪声。该过程通过解码器网络后,我们得到了一个和原型看起来不一样的‘2’。
这是一个非常简化的例子,抽象描述了实际自动编码器网络的体系结构。下图表示了一个真实变分自动编码器在其编码器和解码器网络使用卷积层的结构体系。从这里可以观察到,我们正在分别学习潜在空间中生成数据分布的中心和范围,然后从这些分布“抽样”生成本质上“虚假”的数据。
该学习过程的固有性代表所有看起来很相似的参数(刺激相同的网络神经元放电)都聚集到潜在空间中,而不是随意的分散。如下图所示,可以看到数值2都聚集在一起,而数值3都逐渐地被推开。这一过程很有帮助,因为这代表网络并不会在潜在空间随意摆放字符,从而使数值之间的转换更有真实性。
整个网络体系结构的概述如下图所示。希望读者看到这里,可以比较清晰地理解整个过程。我们使用一组图像训练自动编码器,让它学习潜在空间里均值和标准值的差,从而形成我们的数据生成分布。接下来,当我们要生成一个类似的图像,就从潜在空间的一个质心取样,利用标准差和一些随机误差对它进行轻微的改变,然后使其通过解码器网络。从这个例子可以明显看出,最终的输出看起来与输入图像相似,但却是不一样的。
变分自动编码器编码指南
本节将讨论一个简单的去噪自动编码器,用于去除文档扫描图像上的折痕和污痕,以及去除Fashion MNIST数据集中的噪声。然后,在MNIST数据集训练网络后,就使用变分自动编码器生成新的服装。
去噪自编码器
Fashion MNIST
在第一个练习中,在Fashion MNIST数据集添加一些随机噪声(椒盐噪声),然后使用去噪自编码器尝试移除噪声。首先进行预处理:下载数据,调整数据大小,然后添加噪声。
## Download the data(x_train, y_train), (x_test, y_test) = datasets.fashion_mnist.load_data()## normalize and reshapex_train = x_train/255.x_test = x_test/255.x_train = x_train.reshape(-1, 28, 28, 1)x_test = x_test.reshape(-1, 28, 28, 1)# Lets add sample noise - Salt and Peppernoise = augmenters.SaltAndPepper(0.1)seq_object = augmenters.Sequential([noise])train_x_n = seq_object.augment_images(x_train * 255) / 255val_x_n = seq_object.augment_images(x_test * 255) / 255接着,给自编码器网络创建结构。这包括多层卷积神经网络、编码器网络的最大池化层和解码器网络上的升级层。
# input layerinput_layer =Input(shape=(28, 28, 1)) # encodingarchitectureencoded_layer1= Conv2D(64, (3, 3), activation='relu', padding='same')(input_layer)encoded_layer1= MaxPool2D( (2, 2), padding='same')(encoded_layer1)encoded_layer2= Conv2D(32, (3, 3), activation='relu', padding='same')(encoded_layer1)encoded_layer2= MaxPool2D( (2, 2), padding='same')(encoded_layer2)encoded_layer3= Conv2D(16, (3, 3), activation='relu', padding='same')(encoded_layer2)latent_view = MaxPool2D( (2, 2),padding='same')(encoded_layer3) # decodingarchitecturedecoded_layer1= Conv2D(16, (3, 3), activation='relu', padding='same')(latent_view)decoded_layer1= UpSampling2D((2, 2))(decoded_layer1)decoded_layer2= Conv2D(32, (3, 3), activation='relu', padding='same')(decoded_layer1)decoded_layer2= UpSampling2D((2, 2))(decoded_layer2)decoded_layer3= Conv2D(64, (3, 3), activation='relu')(decoded_layer2)decoded_layer3= UpSampling2D((2, 2))(decoded_layer3)output_layer = Conv2D(1, (3, 3), padding='same',activation='sigmoid')(decoded_layer3) # compile themodelmodel =Model(input_layer, output_layer)model.compile(optimizer='adam',loss='mse') # run themodelearly_stopping= EarlyStopping(monitor='val_loss', min_delta=0, patience=10, verbose=5,mode='auto')history =model.fit(train_x_n, x_train, epochs=20, batch_size=2048,validation_data=(val_x_n, x_test), callbacks=[early_stopping])所输入的图像,添加噪声的图像,和输出图像。
从时尚MNIST输入的图像。
添加椒盐噪声的输入图像。
从去噪网络输出的图像。
从这里可以看到,我们成功从噪声图像去除相当的噪声,但同时也失去了一定量的服装细节的分辨率。这是使用稳健网络所需付出的代价之一。可以对该网络进行调优,使最终的输出更能代表所输入的图像。
文本清理
去噪自编码器的第二个例子包括清理扫描图像的折痕和暗黑区域。这是最终获得的输入和输出图像。
输入的有噪声文本数据图像。
经清理的文本图像。
为此进行的数据预处理稍微复杂一些,因此就不在这里进行介绍,预处理过程和相关数据可在GitHub库里获取。网络结构如下:
input_layer= Input(shape=(258, 540, 1)) #encoderencoder= Conv2D(64, (3, 3), activation='relu', padding='same')(input_layer)encoder= MaxPooling2D((2, 2), padding='same')(encoder) #decoderdecoder= Conv2D(64, (3, 3), activation='relu', padding='same')(encoder)decoder= UpSampling2D((2, 2))(decoder)output_layer= Conv2D(1, (3, 3), activation='sigmoid', padding='same')(decoder) ae =Model(input_layer, output_layer) ae.compile(loss='mse',optimizer=Adam(lr=0.001)) batch_size= 16epochs= 200 early_stopping= EarlyStopping(monitor='val_loss',min_delta=0,patience=5,verbose=1,mode='auto')history= ae.fit(x_train, y_train, batch_size=batch_size, epochs=epochs,validation_data=(x_val, y_val), callbacks=[early_stopping])变分自编码器
最后的压轴戏,是尝试从FashionMNIST数据集现有的服装中生成新图像。
其中的神经结构较为复杂,包含了一个称‘Lambda’层的采样层。
batch_size = 16latent_dim = 2 # Number of latent dimension parameters# ENCODER ARCHITECTURE: Input -> Conv2D*4 -> Flatten -> Denseinput_img = Input(shape=(28, 28, 1))x = Conv2D(32, 3, padding='same', activation='relu')(input_img)x = Conv2D(64, 3, padding='same', activation='relu', strides=(2, 2))(x)x = Conv2D(64, 3, padding='same', activation='relu')(x)x = Conv2D(64, 3, padding='same', activation='relu')(x)# need to know the shape of the network here for the decodershape_before_flattening = K.int_shape(x)x = Flatten()(x)x = Dense(32, activation='relu')(x)# Two outputs, latent mean and (log)variancez_mu = Dense(latent_dim)(x)z_log_sigma = Dense(latent_dim)(x)## SAMPLING FUNCTIONdef sampling(args): z_mu, z_log_sigma = args epsilon = K.random_normal(shape=(K.shape(z_mu)[0], latent_dim), mean=0., stddev=1.) return z_mu + K.exp(z_log_sigma) * epsilon# sample vector from the latent distributionz = Lambda(sampling)([z_mu, z_log_sigma])## DECODER ARCHITECTURE# decoder takes the latent distribution sample as inputdecoder_input = Input(K.int_shape(z)[1:])# Expand to 784 total pixelsx = Dense(np.prod(shape_before_flattening[1:]), activation='relu')(decoder_input)# reshapex = Reshape(shape_before_flattening[1:])(x)# use Conv2DTranspose to reverse the conv layers from the encoderx = Conv2DTranspose(32, 3, padding='same', activation='relu', strides=(2, 2))(x)x = Conv2D(1, 3, padding='same', activation='sigmoid')(x)# decoder model statementdecoder = Model(decoder_input, x)# apply the decoder to the sample from the latent distributionz_decoded = decoder(z)这就是体系结构,但还是需要插入损失函数再合并KL散度。# construct a custom layer to calculate the lossclass CustomVariationalLayer(Layer): def vae_loss(self, x, z_decoded): x = K.flatten(x) z_decoded = K.flatten(z_decoded) # Reconstruction loss xent_loss = binary_crossentropy(x, z_decoded) # KL divergence kl_loss = -5e-4 * K.mean(1 + z_log_sigma - K.square(z_mu) - K.exp(z_log_sigma), axis=-1) return K.mean(xent_loss + kl_loss) # adds the custom loss to the class def call(self, inputs): x = inputs[0] z_decoded = inputs[1] loss = self.vae_loss(x, z_decoded) self.add_loss(loss, inputs=inputs) return x# apply the custom loss to the input images and the decoded latent distribution sampley = CustomVariationalLayer()([input_img, z_decoded])# VAE model statementvae = Model(input_img, y)vae.compile(optimizer='rmsprop', loss=None)vae.fit(x=train_x, y=None, shuffle=True, epochs=20, batch_size=batch_size, validation_data=(val_x, None))现在,可以查看重构的样本,看看网络能够学习到什么。
从这里可以清楚看到鞋子、手袋和服装之间的过渡。在此并没有标出所有使画面更清晰的潜在空间。也可以观察到Fashion MNIST数据集现有的10件服装的潜在空间和颜色代码。
可看出这些服饰分成了不同的集群。
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!
1. 平面设计论文,苹果有什么软件让你相见恨晚?
下面推荐9个实用软件,总有一个适合你!绝对让你相见恨晚!
uzer me一个ios上在线运行的云端应用软件,功能逆天。
你可以通过它,在手机上使用word、ppt、excel、ps、AI...所生成的文件都保存在云端,不占用手机的本地内存,小内存手机的福音。而且装了这个软件后,可以对其他软件说再见了,省心省力!
时光相册新海诚动画《你的名字》同款滤镜,小清新文艺青年的最爱,分分钟让你的相片提高一个档次,不多说,强力推荐。
香蕉打卡运动打卡app,UI界面简约明了,颜控必备。
另外app为了鼓励用户坚持运动,持续打卡,推出了环游世界的打卡游戏:你每到一座新城市就可以解锁一张对应的界面皮肤,用自己的脚步去浏览了每个角落!以此培养你运动生活的好习惯。
萝卜书摘一个摘抄笔记app,适合天天和文字打交道的朋友。
当你在读书的时候,遇到喜欢的句子,段落,你用它扫一扫就可以马上转化为文字记录到手机上,并且你还可以用它制作专属于自己的书摘笔记。
另外,你还可以在里面找到志同道合的书友,一起畅聊人生。
快点投屏一个黑科技投屏app,只需手机和电视在同一wifi上。
主流网站上的视频都可以一键投屏到电视上,同时支持手动输入视频网址,看你所看。
嘀嗒番茄钟界面功能都很简单,通过种番茄的形式限定一段时间培养用户专注力,从而做到好好管理时间。专注时间可以自定义,但定下之后就得一秒不少的做完既定任务,否则番茄就会烂掉。
另外,它还提供美妙而又安静的背景音乐,供你好好工作。
熊猫吃短信人如其名,特别适合生活的一个app。现在垃圾短信泛滥成灾,你需要它来帮助你过滤掉垃圾短信。我的已经用了很久了,超级好用,极力推荐你试试。
它通过对两万多条短信以及民间收集到的大量样本进行学习,从而具备了较准确的信息过滤能力。
Clone Camera相机届的影分身大师,分身自拍app。
只要用手机把不同位置的pose拍下来,合成时避开人的脸部、手部等皮肤即可。拍摄过程中注意不要遮挡之前的位置和pose,每隔10秒定时拍摄,连拍6张!
太有逼格了!
词ci很小众的诗词app,带有丰富的词牌库,主要功能为提供词牌及韵律供用户自己作词!
当你选好词牌后,就可以开始优雅流畅的填写。
在写词过程中,除了会高亮出平仄不对的汉字外,还可以方便地查找同韵字、随时切换查看当前词牌的写作规则。很文艺,有不有?
收集、分类不易,如果觉得有用的话,点个赞,再来波关注哈哈!
2. 求一篇光伏电站的毕业论文?
一、项目概括1.1项目简介及选址
本项目电站选址地位于湖南省湘潭市雨湖区的响塘学校屋顶上,经过去现场实地的了解和勘测后,此学习周围无森林无高大树木,附近也无任何其他房屋,距离其最近的房屋也有数十米的距离,该屋顶无女儿墙无其他建造物,是一个平面的屋顶,其屋长为43米,宽为32米。
本项目将在此学校屋顶上建造一个100kw的并网型光伏电站,实施全额上网措施。选址卫星图如图1-1所示,选址平面图如图1-2所示。
1.2 项目位置及气象情况经过百度地图的计算,得出了此地经纬度为:北纬27.96,东经为112.83,是属于亚热带温湿气候区,典型的冬冷夏热气温,年降雨量充足达1450毫米,最高气温为夏季的41.8度,最低气温为冬季的-12.1度,年均气温17度。该项目所在地最高海拔为793米,最低海拔达30.7米,总的平均海拔为48.2米。该地年总辐射量经过PVsyst软件的计算后,得出了1116.6的值,不是特别高,属于第三类资源区,但建设一个电站也不是特别亏。湘潭市地理位置图如图1-3所示。
1.3项目设计依据本项目设计依据如下:
《光伏发电站设计规范》GB50794-2012
《电力工程电缆设计规范》GB50217-1994
《光伏系统并网技术要求》GB/T19939-2005
《建筑太阳能光伏系统设计与安装》10J908-5
《光伏发电站接入电力系统技术规范》GB/T19964-2012
《光伏发电站接入电力系统设计规范》GB/T5086-2013
《光伏(PV)系统电网接口特性》GB/T20046-2006
《电能质量公用电网谐波》GB/T14549-19933
《电能质量三相电压允许不平衡度》GB/T15543-1995
《晶体硅光伏方阵I-V特性的现场测量》GB/T18210-2000
二、电站系统设计
2.1组件选型组件是电站中造价最高的设备,投资一个电站几乎一半的钱是砸这组件上去了,为此我们选择的组件一定要是最适合本电站的,不管是组件效率还是组件的其他参数在同功率组件下都应该保持最佳,这样才不会亏本。
组件的类型有很多,以不同的材料来说,组件又分为了晶硅组件、薄膜组件,在电站中使用最多的便是晶硅型组件,而晶硅型组件又分为单晶硅和多晶硅,它们都是市场上十分热门的组价。
单晶硅的效率比多晶硅高了很多,其使用寿命时间也长了不少,但价格方面却比多晶硅高了很多,但考虑到平价上网的时代,单晶硅的价格远远不如过去那样昂贵,所以本电站选取的组件为单晶型组件。
第一款组件晶科Swan Bifacial 400 72H和第二款组件晶科Swan Bifacial 405 72H的型号牌子都一样,除功率和其效率有点差距之外,其他的参数基本一样,但其第二款组件晶科Swan Bifacial 405 72H组件的效率高,相同尺寸不同效率下,选择第二款组件更好。
第三款组件晶澳JAM72S10 400MR是3款组件里效率最高的组件,比第一款和第二款分别高了0.37%和0.12%,并且尺寸和部分温度系数也是3款里面最小的,开路电压和工作电压以及短路电流等参数也是3款组件中最高的,从数据上来看,第三款组件晶澳JAM72S10 400MR是3款里最棒的组件。
综合上面的分析,本项目最终选择第3款组件晶澳JAM72S10 400MR作为本项目的组件使用型号。组件图如图2-1所示。
2.2最佳倾斜角和方位角设计本电站建造在平面屋顶上,该屋顶无任何的倾角,由于组件是依靠着太阳光发电,但每时每刻太阳都是在运动着,为此便会与组件形成一个角度,该角度影响着组件的发电量,对于采取固定支架安装方式的电站来说,选择一个最合适的角度能够让电站发电量达到最高,因此最佳倾角这个概念便被引出了。
对于本电站而言,根据其PVsyst软件的计算后,得出了湘潭最佳倾角为18度时,方位为0度时,电站一年下来的发电量能够达到最高。PVsyst最佳方位角、倾斜角模拟图如图2-2所示。
2.3组件排布方式本项目选址地屋顶长43米,宽为29米,采取横向排布方式无法摆下其电站中的整个阵列,因此本项目组件方式采取竖向排布,中间间距20mm。如图2-3所示。
2.4组件间距设计太阳照射到一个物体上时,由于该物体遮住了光,使得光不能直射到地上时,该物体便会产生一个阴影投射到地上,而电站中的组件也类似于此,前一个组件因光产生的阴影投射到另一个组件上时,被照射的组件便会受到影响,进而影响整个电站,这对于电站来说是一个严重的问题,因此在设计其组件之间的间距时,一定要保证阴影的距离不会触及组件。
在公式2-1中:
L是阵列倾斜面长度(4050mm)
D是阵列之间间距
β是阵列倾斜角(18°)
为当地纬度(27.96°)
把以上数值代入公式后计算得:
根据结果,当电站中的子方阵间距大于2119mm时,子方阵与子方阵便不会受到影响。
2.5逆变器选型逆变器是电站中其转换电流的设备,十分的重要,而逆变器的种类比较多,对于本项目电站来说,选择组串式逆变器最佳,因此本项目选择了3款市场上热卖的组串式逆变器。
3款逆变器的功率均在100kw以上,其效率也都是一模一样,均只有98.1%,其额定输出电压也都为600V,对于本电站来说,这3款逆变器都能使用,但可惜本电站只会从中选择一个最合适的品牌。
第一款逆变器华为SUN2000-100KTL-C1和第二款逆变器华为SUN2000-110KTL-C1是同种类同型号,但不同功率的逆变器,这两款逆变器大部分数据都一模一样,但第二款逆变器功率比第一款逆变器功率高了10k,比本电站的容量也高了10k,并且价格了略微高了那么点,选用第一款逆变器不仅省钱而且还不会造成功率闲置无处使用,最大发挥逆变器的作用,因此第1款比第2款逆变器好。
第三款逆变器是固德威HT 100K,它的最大输入功率高达150kw,明明是一个100kw的逆变器,但其输入功率却不同我们往常见的逆变器一样,它居然还高了50k,如果选用这款逆变器,那么阵列输入的功率超过100都能承受。虽然最大输入功率很恐怖,但其他参数正常,对比第一款逆变器,仅只是部分参数略微差了点,总体是几乎没什么太大的差别。
本项目根据上述的分析和对其逆变器的需求,最终选择了固德威HT 100K型逆变器为本电站逆变器。
2.6光伏阵列布置设计2.6.1串并联设计
公式2-3、2-4中:
Kv——光伏组件的开路电压温度系数-0.00272
K——光伏组件的工作电压系数-0.0035
t/——光伏组件工作环境极限高温(℃)60
Vpm——光伏组件的工作电压(V)41.33
VMPPTmax——逆变器MPPT电压最大值(V)1000
VMPPTmin——逆变器MPPT电压最小值(V)200
Voc——光伏组件开路电压(V)49.58
N——光伏组件串联数(取整)
t——光伏组件工作环境极端低温(℃)-12.7
——逆变器允许的最大直流输入电压(V)1100
把以上数值代入公式中计算可得:
5.5≤N≤21
经计算,本电站最终选取20块组件为一阵列。如图2-6组件串并联设计图。
2.6.2项目方阵排布
据2.6.1的结果,每一个阵列共有20块组件,单块组件的功率是400w,一个阵列便是8kw,而本电站的总容量为100kw,总计是需要13个阵列。本电站建设地屋顶长43米,宽为32米,可以完整的摆放电站中的所有子方阵。如图2-9所示。
2.7基础与支架设计2.7.1水泥墩设计
本电站所建地点是公办学校,属于公共建筑,如果使用其打孔安装方式,便有可能使得其屋顶因时间长久而漏水,一旦漏水便需要进行维修,这也是得花费一些金钱,又因是学校,开工去维修可能将使部分学生要做停课处理,因此为了避免这个麻烦,本电站还是选择最常见的水泥墩来做基础设计。
考虑到学校有许多的学生,突然出现了事故,作为电站建设者肯定会有责任,因此为了避免组件出现任何事故,特地将水泥墩设计为一个正方形,其长宽高都为500mm,这样的重量大大降低了事故的发生率。如图2-10水泥墩设计图和2-11电站整体水泥墩设计所示。
2.7.2支架设计
都已经把基础设计水泥墩做好了,那么接下来则是考虑水泥墩上的支撑设备支架,对于支架的设计最重要的一点就是在选材上,一般电站中的支架会持续使用到电站报废为止,使用时间长达二十多年三十多年甚至更久,对此支架的选型便是十分的重要,其使用寿命必须得长,抗腐蚀能力强。如图2-12支架设计图所示。
2.8配电箱选型配电箱在光伏电站里又分为直流配电箱和交流配电箱,对于本电站来说,是选择其交流配电箱。配电箱的容量是根据其逆变器的容量选择,必定不能小于其逆变器的容量,否则可能会出现配电箱过压的情况,然后给电站造成事故危险。
配电箱具备配电、汇电、护电等多种功能,是本电站必须要又的设备,经过配电箱型号的对比,本电站最终选择了昌松100kw光伏交流逆变器。
2.9电缆选配电站分为两类电,一类是直流电,必须使用直流电缆运输;一类是交流电,必须使用交流电缆运输,切记不可以乱搭配使用,否则将会造成电缆出线问题,电站设备出现问题。
直流电缆选型一般都是选择PV1-F-1*4mm²光伏专用直流电缆
交流电缆:
P:逆变器功率100KW
U:交流电电压380V
COSΦ:功率因数0.8
线损率:976/100000=0.9%<2%,符合光伏电缆设计要求。
据其计算结果和下图电缆参数表,本电站最终选择ZRC-YJV22 7Omm2交流电缆。如图
2.10防雷接地设计
防雷接地是绝大多数光伏电站都必须要做的,目的就是防止雷击破幻电站,损坏人民的生命以及财产,特别是对于本电站而言,建设点是在学校,而学校不仅人多而且易燃物也多,一旦雷击劈到电站上,给电站造成了任何事故,都有可能把整个学校给毁了,为此本电站一定需要做好防雷接地设计。
本电站防雷方式采取常用的避雷针进行避雷,接地则是为电站中各个设备接地端做好接地连接。
2.11电气系统设计及图纸本电站装机总容量为100kw,由260块光伏组件组成,形成了13个阵列,每个阵列20块组件,然后连接至逆变器,逆变器变电后接入配电箱,最后再连接国家电网。
三、电站成本与收益
3.1电站项目设备清单根据当地市场的物价,预估出了一个本电站预计投资表。
3.2电站年发电量计算本电站总容量为100kw,而电站选址地的年总辐射量为1116.6,首先发电量便达到了89328度电。
Q=100*1116.6*0.8=89328度
Q——电站首年发电量
W——本项目电站总容量(85KW)
T——许昌市年日照小时数(1258.2H)
——系统综合效率(0.8)
任何设备一旦使用,便就开始慢慢磨损了,其效率也是一年比一年差,即便是光伏组件也不例外。组件首年使用一年后,为了适应其环境,自身的效率瞬间就降低2.5%,而后的每年则是降低0.7%,将至80%左右时,光伏组件也是已经运行了25年。
3.3电站预估收益计算根据湖南省的标准电价,我们电站发的每度电能够有0.45元收入,持续运行25年后,将会获得2007021.504*0.45=903159元,也就是90多万,减去我们为电站投资的41.57万,我们25年内能够获得大约50万的纯利润收入
参考文献
[1]王思钦.分布式光伏发电系统电能计量方案[J].农村电工,2019,27(09):37.
[2]谷欣龙.光伏发电与并网技术分析[J].科技资讯,2019,17(24):31+33.
[3]黄超辉,陈勇,任守宏.基于应用的光伏电站电缆优化设计[J].电子工业专用设备,2019,48(03):67-71.
[4]余茂全,张磊.基于PVSYST的光伏发电系统仿真研究[J].安徽水利水电职业技术学院学报,2019,19(02):35-39.
[5]谭阳.家用太阳能分布式光伏并网发电系统研究[J].电子制作,2019(09):94-95+91.
[6]石培进.发展分布式光伏电站的可行性分析[J].山东工业技术,2019(12):183.
[7]蒋飞. 光伏发电项目的投资决策方法研究[D].华东理工大学,2013.
[8]陈坤. 光伏发电系统MPPT控制算法研究[D].重庆大学,2013.
[9]徐瑞东. 光伏发电系统运行理论与关键技术研究[D].中国矿业大学,2012.
[10]任苗苗. 光伏发电三相并网逆变器的研究[D].兰州交通大学,2012.
3. 美术生上大学以后还学素描速写色彩吗?
很高兴回答您的问题
首先高中集训阶段素描、速写、色彩是我们美术生的三大主科。就好比高中阶段的语文、数学、英语一样。是考察美术生专业知识以及专业技能的基础。
那么到了大学之后这三科还会学一段时间,普遍会集中在大一这一学期,当然大学课程中的素描、色彩、速写、会比艺考培训阶段时期的素描、速写、色彩的高度更高一些。根据大学的课程安排决定,主要分配如下:
大一阶段:再专业方面会以基础的素描、速写、色彩为主,像素描的话会涉及到人体写生、半身像以及全身像等等,色彩的话也会涉及人体写生,半身,头像,静物等等,速写的话亦是如此。具体课程内容会根据每个学校的课程具体安排,美院类的院校和综合类的大学也会有所不同。
在理论课这一方面还会涉及到英语,体育,中外美术史,艺术概论,毛泽东思想等等,专业不同课程也会不同,这些课程有些课程是必修课有些课程是选修课,比如体育就是选修课(你可以选择乒乓球、羽毛球、网球、排球、轮滑等等)必修课就是必须要上的,不然期末考试会挂科、影响学分(大学是学分制)。
大二阶段:在大二学期开始进行分专业(个别学校不同)具体的专业划分,这个学期开始接触新的专业知识,也就是你四年即将主攻的专业。比如美术专业的分师范类专业和纯艺术类专业,甚至包括设计类专业等等。在师范类和纯艺术类里还会划分成水彩班,油画班、版画班,国画班等等,理论课方面师范类的可能会接触教育学,心理学等等,设计专业的很广比如室内设计,产品设计,民族服饰设计等等。
大三阶段:大三学期会有一些实践类课程加入,不如外出写生,真人写生等等。美术这一块的话课程周期会延长,作品质量会提高。大部分的时间都是在练习自己的专业技能。当然如果时间安排合理,还可以利用空余的时间找一些兼职来做。积累自己的工作经验。还可以选修自己的第二学位。
大四阶段:大四学期是大学的最后一学期,美术专业的话会涉及到毕业创作,毕业论文,以及毕业之后的工作,个别专业会有外出实习等等。所以大四一年都在围绕着这些事在做。
大学的学分制要求每一位学生修够大学四年应有的学分,学分不够是拿不到学士学位证的。只有毕业证。反之会两证齐全。
希望对你有帮助谢谢!
4. 你在实验室经历过最尴尬或者有意思的事情是什么?
大家好,我是萨瑞娜绿城播报,很高兴回答这个问题。
我在实验室经历过最尴尬的事儿,唉,别提了,提起来就心塞。高中的时候,上化学实验课,要用酒精灯煮工具。我点燃了酒精灯,上面玻璃杯里的水放的太少了,而后,我又忙其他事情了,酒精灯一直燃烧,玻璃杯里的水一直沸腾,结果……你们都想到了,水干了,我还不知道,玻璃杯炸了,玻璃碎片还差点伤住同学。
接着再讲一件尴尬事儿。也是高中的时候,生物实验课上,老师让同学们观察洋葱细胞与猪肉细胞的差别。其他人都乖乖滴听话,做洋葱切片、猪肉切片啥的。只有我异想天开,看着自己手指头上正好褪了一小块皮,就撕下来放到显微镜下仔细研究。正入迷滴时候,被老师发现了,厉声呵斥了我一顿,场面尴尬极了。
好了,不能总讲尴尬的事儿,再讲点开心的事儿吧。最开心的事儿,就是上实验课的时候,能够和暗恋的男神学霸分到一组。我当时喜欢一个高高瘦瘦的男生,他的学习成绩特别好,经常全班第一全校第一,是很多女生心目中的传奇人物。有一次实验课,我居然和他分到了一组,心里别提多高兴激动了。结果,一激动又悲剧了,把工具碰倒了,被男神狠狠滴瞪了一眼,呵呵
希望我的回答能令大家开心满意,谢谢请关注。
5. 如何写出一份漂亮的简历?
一、如何让HR快速识别到你的简历;
1、简历排版要“精简”
如果是一个大公司需要招聘,HR可能会收到几百封的简历,所以HR的任务就是在最短的时间内筛选出足够的人参加面试,大部分简历其实都是只是扫上一眼,基本不会超过10秒;
如果你的简历内容冗长又凸显不了你的优势的话,那对不起!你投的简历已经被扔进了垃圾箱“雪藏”了。
看对方公司需要招聘什么岗位,你在简历里边就一定要写意向岗位是那间公司所招聘的岗位,这样HR扫视的时候就会看到这个关键词,首先会把你这份留下了,第一印象会觉得你是“有备而来”的;
2、认真分析任职要求,针对性的写简历;
看招聘信息主要看职业描述(JD)的内容,通过分析JD你就知道需要具备什么样的能力才能竞争该职位;
而HR筛选简历时,首先就会在简历里找有没有JD相关的内容,就是筛选关键词。举个栗子:这是一个公司招聘市场策划专员的信息:
先把工作职责中,比较重要的关键字眼标注出来,得出这个岗位的职责需求主要是:
1、负责公司APP产品推广,组织策划线上线下的推广活动并持续开发各项支撑活动的资源;
2、负责收集用户反馈意见及需求、维护与用户之间的关系;
再结合下它任职要求,我们就可以得出较为准确的关键词了,我们就可以根据这个需求,想尽办法把自己的经历往上凑,即使自己没有从事过这方面的工作;
比如你干过销售的工作,经常与用户沟通交流、维持良好的关系,这就证明了你的语言表达跟沟通协调能力了。
3、主动"壁咚"HR;
有时候会出现这样的情况,自己已经对应进行了岗位需求的分析,针对性的写了简历,就是没有收到面试的通知,这时的你除了焦虑、忐忑,就不会学着去主动“壁咚”HR嘛;
如果你确实碰到自己非常喜欢的岗位,可以主动去撩HR找到他们的联系方式,毛遂自荐。
但是要“壁咚”人家HR之前,你得掂量自己有自己有几斤几两啊,别把自己整个跟地痞流氓一样见到漂亮小姐就往上贴的那种,是人都会反感,那你得怎么做呢?
把自己包装的漂漂亮亮的,然后追一个人需要打听下对方的底细是吧,那找一份工作也是一样的道理嘛:
1、现在互联网那么发达,我们要学会去查这间公司的背景,对公司有个大概的认知;
2、了解这个岗位的工作内容和岗位需求,自己可以说出对这份工作的想法,如果你可以成功应聘这个岗位,你会怎么开展接下来的工作 ;
3、你主动出击,还对公司概况有了大概的了解,还能说出自己的想法,那么无疑你已经成功引起了这家公司的关注,HR通知你去应聘是水到渠成的事情。
0
2
二、如何在内容中凸显你的优势
1、不要滥竽充数;
跟招聘岗位不相干的工作经历我们大可不必拿来充数,就算你慷慨激昂的写了一整页与招聘需求不相关的项目经验,那也是白扯,只会让HR觉得这人罗里吧嗦抓不住重点,不是公司想要的人,然后就把你直接pass掉了;
2、写好项目经历;
写项目经验的时候,我们一定要根据人家提出的岗位需求再结合自己的实际经历,尽量提取关键词,往人家需求方向靠齐;
而且要写清楚在这个岗位你做了什么工作,取得了什么成绩,成绩要有数据,增强说服力。
给大家举个栗子:
① 我在xx公司负责销售工作;
② 我在xx公司负责销售工作,入职培训后两个月内为公司销售主打产品累计300份,为公司盈利10万;
这样就一目了然了吧,可见数据能带来多大的说服力!
3、学会利用文字修饰;
没有无价值的工作经历,只有写不好工作经历的人,即使看起来再低级、普通的工作也可以用很认真负责的态度把它“修饰”出来;
例如我是一个在办公室打杂的,通过修饰我就可以这样描述:
1、管理维护办公室环境,与供应商沟通协调补给办公用品,通过合理布置办公室物品摆设提高员工效率(把打印机从打印间摆放至通道口,方便员工打印);
2、协调安排经理的行程,安排访客登记,跟进会议并整理会议纪要;(斟茶倒水、做会议记录);
6. 有哪些不错的手机APP?
下面这些app,是本人使用频率比较高的app,可以帮我解决一些实际的问题、带来实实在在的便利,推荐给大家~
下面单独来说说这几个手机应用各自的特色:
1:我的倒计时主要是用来记录日常生活中大大小小的日子,它会自动帮你计算好天数、定时提醒,用起来就很方便,不会错过任何重要事件了,也可以用来记录对自己有意义的事。
2:得言语录专家,分类特别多,语录质量也比较高。日常看看励志语录、人生哲理句子,对调整心态有很大帮助。有时候发朋友圈词穷了还可以借鉴一下上面的句子,实用性强。
3:熊猫吃短信这是个非常小众的宝藏app,不需要手动配置就可以帮你智能拦截垃圾短信,它有机器学习能力,离线状态下也可以拦截。就凭这硬核实力,获得了App Store 多次推荐。
4:我的桌面·iScreen想倒腾手机的时候就用它,上面的小组件有时钟、天气、日历、倒计时、to-do list待办事项,连太空表盘都有,壁纸资源也多,可以玩很久了。看看这桌面效果图,个人的得意之作!喜欢的话可以花个几分钟时间搭配一个,好看实用~
5:抽屉新热榜用这个刷新闻有几个年头了,在广告充斥的时代能有这么个app可以无广告刷热榜,真的要感动落泪,太良心了。更新也快,配图也走心。总是,试过就离不开了。
以上5个应用都是本人的爱用app,有需要的小伙伴可以试试~
7. 变分自编码器VAE目前存在哪些问题?
代码详解:一文读懂自动编码器的前世今生,希望对你有帮助~
全文共5718字,预计学习时长20分钟或更长变分自动编码器(VAE)可以说是最实用的自动编码器,但是在讨论VAE之前,还必须了解一下用于数据压缩或去噪的传统自动编码器。
变分自动编码器的厉害之处假设你正在开发一款开放性世界端游,且游戏里的景观设定相当复杂。
你聘用了一个图形设计团队来制作一些植物和树木以装饰游戏世界,但是将这些装饰植物放进游戏中之后,你发现它们看起来很不自然,因为同种植物的外观看起来一模一样,这时你该怎么办呢?
首先,你可能会建议使用一些参数化来尝试随机地改变图像,但是多少改变才足够呢?又需要多大的改变呢?还有一个重要的问题:实现这种改变的计算强度如何?
这是使用变分自动编码器的理想情况。我们可以训练一个神经网络,使其学习植物的潜在特征,每当我们将一个植物放入游戏世界中,就可以从“已学习”的特征中随机抽取一个样本,生成独特的植物。事实上,很多开放性世界游戏正在通过这种方法构建他们的游戏世界设定。
再看一个更图形化的例子。假设我们是一个建筑师,想要为任意形状的建筑生成平面图。可以让一个自动编码器网络基于任意建筑形状来学习数据生成分布,它将从数据生成分布中提取样本来生成一个平面图。详见下方的动画。
对于设计师来说,这些技术的潜力无疑是最突出的。
再假设我们为一个时装公司工作,需要设计一种新的服装风格,可以基于“时尚”的服装来训练自动编码器,使其学习时装的数据生成分布。随后,从这个低维潜在分布中提取样本,并以此来创造新的风格。
在该节中我们将研究fashion MNIST数据集。
自动编码器传统自动编码器
自动编码器其实就是非常简单的神经结构。它们大体上是一种压缩形式,类似于使用MP3压缩音频文件或使用jpeg压缩图像文件。
自动编码器与主成分分析(PCA)密切相关。事实上,如果自动编码器使用的激活函数在每一层中都是线性的,那么瓶颈处存在的潜在变量(网络中最小的层,即代码)将直接对应(PCA/主成分分析)的主要组件。通常,自动编码器中使用的激活函数是非线性的,典型的激活函数是ReLU(整流线性函数)和sigmoid/S函数。
网络背后的数学原理理解起来相对容易。从本质上看,可以把网络分成两个部分:编码器和解码器。
编码器函数用ϕ表示,该函数将原始数据X映射到潜在空间F中(潜在空间F位于瓶颈处)。解码器函数用ψ表示,该函数将瓶颈处的潜在空间F映射到输出函数。此处的输出函数与输入函数相同。因此,我们基本上是在一些概括的非线性压缩之后重建原始图像。
编码网络可以用激活函数传递的标准神经网络函数表示,其中z是潜在维度。
相似地,解码网络可以用相同的方式表示,但需要使用不同的权重、偏差和潜在的激活函数。
随后就可以利用这些网络函数来编写损失函数,我们会利用这个损失函数通过标准的反向传播程序来训练神经网络。
由于输入和输出的是相同的图像,神经网络的训练过程并不是监督学习或无监督学习,我们通常将这个过程称为自我监督学习。自动编码器的目的是选择编码器和解码器函数,这样就可以用最少的信息来编码图像,使其可以在另一侧重新生成。
如果在瓶颈层中使用的节点太少,重新创建图像的能力将受到限制,导致重新生成的图像模糊或者和原图像差别很大。如果使用的节点太多,那么就没必要压缩了。
压缩背后的理论其实很简单,例如,每当你在Netflix下载某些内容时,发送给你的数据都会被压缩。一旦这个内容传输到电脑上就会通解压算法在电脑屏幕显示出来。这类似于zip文件的运行方式,只是这里说的压缩是在后台通过流处理算法完成的。
去噪自动编码器
有几种其它类型的自动编码器。其中最常用的是去噪自动编码器,本教程稍后会和Keras一起进行分析。这些自动编码器在训练前给数据添加一些白噪声,但在训练时会将误差与原始图像进行比较。这就使得网络不会过度拟合图像中出现的任意噪声。稍后,将使用它来清除文档扫描图像中的折痕和暗黑区域。
稀疏自动编码器
与其字义相反的是,稀疏自动编码器具有比输入或输出维度更大的潜在维度。然而,每次网络运行时,只有很小一部分神经元会触发,这意味着网络本质上是“稀疏”的。稀疏自动编码器也是通过一种规则化的形式来减少网络过度拟合的倾向,这一点与去噪自动编码器相似。
收缩自动编码器
收缩编码器与前两个自动编码器的运行过程基本相同,但是在收缩自动编码器中,我们不改变结构,只是在丢失函数中添加一个正则化器。这可以被看作是岭回归的一种神经形式。
现在了解了自动编码器是如何运行的,接下来看看自动编码器的弱项。一些最显著的挑战包括:
· 潜在空间中的间隙
· 潜在空间中的可分性
· 离散潜在空间
这些问题都在以下图中体现。
MNIST数据集的潜在空间表示
这张图显示了潜在空间中不同标记数字的位置。可以看到潜在空间中存在间隙,我们不知道字符在这些空间中是长什么样的。这相当于在监督学习中缺乏数据,因为网络并没有针对这些潜在空间的情况进行过训练。另一个问题就是空间的可分性,上图中有几个数字被很好地分离,但也有一些区域被标签字符是随机分布的,这让我们很难区分字符的独特特征(在这个图中就是数字0-9)。还有一个问题是无法研究连续的潜在空间。例如,我们没有针对任意输入而训练的统计模型(即使我们填补了潜在空间中的所有间隙也无法做到)。
这些传统自动编码器的问题意味着我们还要做出更多努力来学习数据生成分布并生成新的数据与图像。
现在已经了解了传统自动编码器是如何运行的,接下来讨论变分自动编码器。变分自动编码器采用了一种从贝叶斯统计中提取的变分推理形式,因此会比前几种自动编码器稍微复杂一些。我们会在下一节中更深入地讨论变分自动编码器。
变分自动编码器
变分自动编码器延续了传统自动编码器的结构,并利用这一结构来学习数据生成分布,这让我们可以从潜在空间中随机抽取样本。然后,可以使用解码器网络对这些随机样本进行解码,以生成独特的图像,这些图像与网络所训练的图像具有相似的特征。
对于熟悉贝叶斯统计的人来说,编码器正在学习后验分布的近似值。这种分布通常很难分析,因为它没有封闭式的解。这意味着我们要么执行计算上复杂的采样程序,如马尔可夫链蒙特卡罗(MCMC)算法,要么采用变分方法。正如你可能猜测的那样,变分自动编码器使用变分推理来生成其后验分布的近似值。
我们将会用适量的细节来讨论这一过程,但是如果你想了解更深入的分析,建议你阅览一下Jaan Altosaar撰写的博客。变分推理是研究生机器学习课程或统计学课程的一个主题,但是了解其基本概念并不需要拥有一个统计学学位。
若对背后的数学理论不感兴趣,也可以选择跳过这篇变分自动编码器(VAE)编码教程。
首先需要理解的是后验分布以及它无法被计算的原因。先看看下面的方程式:贝叶斯定理。这里的前提是要知道如何从潜变量“z”生成数据“x”。这意味着要搞清p(z|x)。然而,该分布值是未知的,不过这并不重要,因为贝叶斯定理可以重新表达这个概率。但是这还没有解决所有的问题,因为分母(证据)通常很难解。但也不是就此束手无辞了,还有一个挺有意思的办法可以近似这个后验分布值。那就是将这个推理问题转化为一个优化问题。
要近似后验分布值,就必须找出一个办法来评估提议分布与真实后验分布相比是否更好。而要这么做,就需要贝叶斯统计员的最佳伙伴:KL散度。KL散度是两个概率分布相似度的度量。如果它们相等,那散度为零;而如果散度是正值,就代表这两个分布不相等。KL散度的值为非负数,但实际上它不是一个距离,因为该函数不具有对称性。可以采用下面的方式使用KL散度:
这个方程式看起来可能有点复杂,但是概念相对简单。那就是先猜测可能生成数据的方式,并提出一系列潜在分布Q,然后再找出最佳分布q*,从将提议分布和真实分布的距离最小化,然后因其难解性将其近似。但这个公式还是有一个问题,那就是p(z|x)的未知值,所以也无法计算KL散度。那么,应该怎么解决这个问题呢?
这里就需要一些内行知识了。可以先进行一些计算上的修改并针对证据下界(ELBO)和p(x)重写KL散度:
有趣的是ELBO是这个方程中唯一取决于所选分布的变量。而后者由于不取决于q,则不受所选分布的影响。因此,可以在上述方程中通过将ELBO(负值)最大化来使KL散度最小化。这里的重点是ELBO可以被计算,也就是说现在可以进行一个优化流程。
所以现在要做的就是给Q做一个好的选择,再微分ELBO,将其设为零,然后就大功告成了。可是开始的时候就会面临一些障碍,即必须选择最好的分布系列。
一般来说,为了简化定义q的过程,会进行平均场变分推理。每个变分参数实质上是相互独立的。因此,每个数据点都有一个单独的q,可被相称以得到一个联合概率,从而获得一个“平均场”q。
实际上,可以选用任意多的场或者集群。比如在MINIST数据集中,可以选择10个集群,因为可能有10个数字存在。
要做的第二件事通常被称为再参数化技巧,通过把随机变量带离导数完成,因为从随机变量求导数的话会由于它的内在随机性而产生较大的误差。
再参数化技巧较为深奥,但简单来说就是可以将一个正态分布写成均值加标准差,再乘以误差。这样在微分时,我们不是从随机变量本身求导数,而是从它的参数求得。
这个程序没有一个通用的闭型解,所以近似后验分布的能力仍然受到一定限制。然而,指数分布族确实有一个闭型解。这意味着标准分布,如正态分布、二项分布、泊松分布、贝塔分布等。所以,就算真正的后验分布值无法被查出,依然可以利用指数分布族得出最接近的近似值。
变分推理的奥秘在于选择分布区Q,使其足够大以求得后验分布的近似值,但又不需要很长时间来计算。
既然已经大致了解如何训练网络学习数据的潜在分布,那么现在可以探讨如何使用这个分布生成数据。
数据生成过程
观察下图,可以看出对数据生成过程的近似认为应生成数字‘2’,所以它从潜在变量质心生成数值2。但是也许不希望每次都生成一摸一样的数字‘2’,就好像上述端游例子所提的植物,所以我们根据一个随机数和“已学”的数值‘2’分布范围,在潜在空间给这一过程添加了一些随机噪声。该过程通过解码器网络后,我们得到了一个和原型看起来不一样的‘2’。
这是一个非常简化的例子,抽象描述了实际自动编码器网络的体系结构。下图表示了一个真实变分自动编码器在其编码器和解码器网络使用卷积层的结构体系。从这里可以观察到,我们正在分别学习潜在空间中生成数据分布的中心和范围,然后从这些分布“抽样”生成本质上“虚假”的数据。
该学习过程的固有性代表所有看起来很相似的参数(刺激相同的网络神经元放电)都聚集到潜在空间中,而不是随意的分散。如下图所示,可以看到数值2都聚集在一起,而数值3都逐渐地被推开。这一过程很有帮助,因为这代表网络并不会在潜在空间随意摆放字符,从而使数值之间的转换更有真实性。
整个网络体系结构的概述如下图所示。希望读者看到这里,可以比较清晰地理解整个过程。我们使用一组图像训练自动编码器,让它学习潜在空间里均值和标准值的差,从而形成我们的数据生成分布。接下来,当我们要生成一个类似的图像,就从潜在空间的一个质心取样,利用标准差和一些随机误差对它进行轻微的改变,然后使其通过解码器网络。从这个例子可以明显看出,最终的输出看起来与输入图像相似,但却是不一样的。
变分自动编码器编码指南
本节将讨论一个简单的去噪自动编码器,用于去除文档扫描图像上的折痕和污痕,以及去除Fashion MNIST数据集中的噪声。然后,在MNIST数据集训练网络后,就使用变分自动编码器生成新的服装。
去噪自编码器
Fashion MNIST
在第一个练习中,在Fashion MNIST数据集添加一些随机噪声(椒盐噪声),然后使用去噪自编码器尝试移除噪声。首先进行预处理:下载数据,调整数据大小,然后添加噪声。
## Download the data(x_train, y_train), (x_test, y_test) = datasets.fashion_mnist.load_data()## normalize and reshapex_train = x_train/255.x_test = x_test/255.x_train = x_train.reshape(-1, 28, 28, 1)x_test = x_test.reshape(-1, 28, 28, 1)# Lets add sample noise - Salt and Peppernoise = augmenters.SaltAndPepper(0.1)seq_object = augmenters.Sequential([noise])train_x_n = seq_object.augment_images(x_train * 255) / 255val_x_n = seq_object.augment_images(x_test * 255) / 255接着,给自编码器网络创建结构。这包括多层卷积神经网络、编码器网络的最大池化层和解码器网络上的升级层。
# input layerinput_layer =Input(shape=(28, 28, 1)) # encodingarchitectureencoded_layer1= Conv2D(64, (3, 3), activation='relu', padding='same')(input_layer)encoded_layer1= MaxPool2D( (2, 2), padding='same')(encoded_layer1)encoded_layer2= Conv2D(32, (3, 3), activation='relu', padding='same')(encoded_layer1)encoded_layer2= MaxPool2D( (2, 2), padding='same')(encoded_layer2)encoded_layer3= Conv2D(16, (3, 3), activation='relu', padding='same')(encoded_layer2)latent_view = MaxPool2D( (2, 2),padding='same')(encoded_layer3) # decodingarchitecturedecoded_layer1= Conv2D(16, (3, 3), activation='relu', padding='same')(latent_view)decoded_layer1= UpSampling2D((2, 2))(decoded_layer1)decoded_layer2= Conv2D(32, (3, 3), activation='relu', padding='same')(decoded_layer1)decoded_layer2= UpSampling2D((2, 2))(decoded_layer2)decoded_layer3= Conv2D(64, (3, 3), activation='relu')(decoded_layer2)decoded_layer3= UpSampling2D((2, 2))(decoded_layer3)output_layer = Conv2D(1, (3, 3), padding='same',activation='sigmoid')(decoded_layer3) # compile themodelmodel =Model(input_layer, output_layer)model.compile(optimizer='adam',loss='mse') # run themodelearly_stopping= EarlyStopping(monitor='val_loss', min_delta=0, patience=10, verbose=5,mode='auto')history =model.fit(train_x_n, x_train, epochs=20, batch_size=2048,validation_data=(val_x_n, x_test), callbacks=[early_stopping])所输入的图像,添加噪声的图像,和输出图像。
从时尚MNIST输入的图像。
添加椒盐噪声的输入图像。
从去噪网络输出的图像。
从这里可以看到,我们成功从噪声图像去除相当的噪声,但同时也失去了一定量的服装细节的分辨率。这是使用稳健网络所需付出的代价之一。可以对该网络进行调优,使最终的输出更能代表所输入的图像。
文本清理
去噪自编码器的第二个例子包括清理扫描图像的折痕和暗黑区域。这是最终获得的输入和输出图像。
输入的有噪声文本数据图像。
经清理的文本图像。
为此进行的数据预处理稍微复杂一些,因此就不在这里进行介绍,预处理过程和相关数据可在GitHub库里获取。网络结构如下:
input_layer= Input(shape=(258, 540, 1)) #encoderencoder= Conv2D(64, (3, 3), activation='relu', padding='same')(input_layer)encoder= MaxPooling2D((2, 2), padding='same')(encoder) #decoderdecoder= Conv2D(64, (3, 3), activation='relu', padding='same')(encoder)decoder= UpSampling2D((2, 2))(decoder)output_layer= Conv2D(1, (3, 3), activation='sigmoid', padding='same')(decoder) ae =Model(input_layer, output_layer) ae.compile(loss='mse',optimizer=Adam(lr=0.001)) batch_size= 16epochs= 200 early_stopping= EarlyStopping(monitor='val_loss',min_delta=0,patience=5,verbose=1,mode='auto')history= ae.fit(x_train, y_train, batch_size=batch_size, epochs=epochs,validation_data=(x_val, y_val), callbacks=[early_stopping])变分自编码器
最后的压轴戏,是尝试从FashionMNIST数据集现有的服装中生成新图像。
其中的神经结构较为复杂,包含了一个称‘Lambda’层的采样层。
batch_size = 16latent_dim = 2 # Number of latent dimension parameters# ENCODER ARCHITECTURE: Input -> Conv2D*4 -> Flatten -> Denseinput_img = Input(shape=(28, 28, 1))x = Conv2D(32, 3, padding='same', activation='relu')(input_img)x = Conv2D(64, 3, padding='same', activation='relu', strides=(2, 2))(x)x = Conv2D(64, 3, padding='same', activation='relu')(x)x = Conv2D(64, 3, padding='same', activation='relu')(x)# need to know the shape of the network here for the decodershape_before_flattening = K.int_shape(x)x = Flatten()(x)x = Dense(32, activation='relu')(x)# Two outputs, latent mean and (log)variancez_mu = Dense(latent_dim)(x)z_log_sigma = Dense(latent_dim)(x)## SAMPLING FUNCTIONdef sampling(args): z_mu, z_log_sigma = args epsilon = K.random_normal(shape=(K.shape(z_mu)[0], latent_dim), mean=0., stddev=1.) return z_mu + K.exp(z_log_sigma) * epsilon# sample vector from the latent distributionz = Lambda(sampling)([z_mu, z_log_sigma])## DECODER ARCHITECTURE# decoder takes the latent distribution sample as inputdecoder_input = Input(K.int_shape(z)[1:])# Expand to 784 total pixelsx = Dense(np.prod(shape_before_flattening[1:]), activation='relu')(decoder_input)# reshapex = Reshape(shape_before_flattening[1:])(x)# use Conv2DTranspose to reverse the conv layers from the encoderx = Conv2DTranspose(32, 3, padding='same', activation='relu', strides=(2, 2))(x)x = Conv2D(1, 3, padding='same', activation='sigmoid')(x)# decoder model statementdecoder = Model(decoder_input, x)# apply the decoder to the sample from the latent distributionz_decoded = decoder(z)这就是体系结构,但还是需要插入损失函数再合并KL散度。# construct a custom layer to calculate the lossclass CustomVariationalLayer(Layer): def vae_loss(self, x, z_decoded): x = K.flatten(x) z_decoded = K.flatten(z_decoded) # Reconstruction loss xent_loss = binary_crossentropy(x, z_decoded) # KL divergence kl_loss = -5e-4 * K.mean(1 + z_log_sigma - K.square(z_mu) - K.exp(z_log_sigma), axis=-1) return K.mean(xent_loss + kl_loss) # adds the custom loss to the class def call(self, inputs): x = inputs[0] z_decoded = inputs[1] loss = self.vae_loss(x, z_decoded) self.add_loss(loss, inputs=inputs) return x# apply the custom loss to the input images and the decoded latent distribution sampley = CustomVariationalLayer()([input_img, z_decoded])# VAE model statementvae = Model(input_img, y)vae.compile(optimizer='rmsprop', loss=None)vae.fit(x=train_x, y=None, shuffle=True, epochs=20, batch_size=batch_size, validation_data=(val_x, None))现在,可以查看重构的样本,看看网络能够学习到什么。
从这里可以清楚看到鞋子、手袋和服装之间的过渡。在此并没有标出所有使画面更清晰的潜在空间。也可以观察到Fashion MNIST数据集现有的10件服装的潜在空间和颜色代码。
可看出这些服饰分成了不同的集群。
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!