卷积神经网络的发展历程
按照发展顺序以及相互关系介绍:
LeNet
主要贡献:卷积神经网络的开山祖师爷,第一次定义了CNN的网络结构
网络结构:2个卷积层 + 降采样(这时候都还不叫池化) + 激活函数 + 3个全连接层
卷积层:局部连接、权值共享
降采样:窗口形状为2 * 2,步幅为2,选择局部区域内最大的值作为下采样的结果。池化区域不重叠。
激活函数:Tanh(现在都改成了ReLU
在LeNet后,针对数据与硬件这两个优化方向,提出了AlexNet。
AlexNet改进
网络结构:使用了5层卷积和2层全连接隐藏层,以及1个全连接输出层
改进优势:
以ReLU替代sigmoid或tanh,网络训练以更快速度收敛
当sigmoid激活函数输出极接近0或1时,这些区域的梯度几乎为0,从而造成反向传播无法继续更新部分模型参数
若模型参数初始化不当,sigmoid函数可能在正区间得到几乎为0的梯度,从而令模型无法得到有效训练
ReLU激活函数在正区间的梯度恒为1,负梯度为0,可以减少一半的计算量。
双GPU并行计算:算力更强,因此可以使用更大更深的网络。(与参数有关)
重叠池化:Pooling窗口 ...
梯度下降法及其优化进程
Batch Gradient Descent
中心思想:沿着局部梯度的方向,迭代调整目标函数的参数,使得损失值最小化。
相关参数:
样本量:所有训练数据
目标函数:所有数据的平均损失,如MSE之和的平均
损失之和的平均:L(θ)=1M∑i=1ML(f(xi,θ),yi)L(θ)=1M∑i=1M(yi−f(xi,θ))2损失之和的平均:L(\theta) = \frac{1}{M} \sum^M_{i=1}L(f(x_i, \theta),y_i) \\
L(\theta) = \frac{1}{M} \sum^M_{i=1}(y_i - f(x_i, \theta))^2
损失之和的平均:L(θ)=M1i=1∑ML(f(xi,θ),yi)L(θ)=M1i=1∑M(yi−f(xi,θ))2
局部梯度:L(θ)L(\theta)L(θ) 在 θt\theta_tθt 处的导数 ∇L(θt)\nabla L(\theta_t)∇L(θt)
移动步长
移动步长 = 学习率 * 当前梯度
当参数接近最小值时,步长逐渐变小
参数更新:
模型参数的更新 ...
Boyer-Moore投票算法
这道“简单”题,可以用哈希表解了,但题上要求时间复杂度O(n),空间复杂度O(1),我想不出来,就翻评论,它提到的是听都没听过的摩尔投票法。
找了个比较有趣的例子帮助我理解:
多国开战,各方军队每次派一个士兵来两两单挑,每次单挑士兵见面一定会和对方同归于尽,最后只要哪边还有人活着就算胜利,那么最后一定是没有人活着,或者活下来的都是同一势力。
那么活下来的势力一定就是参战中势力最雄厚的嘛(指人最多)?不是的,假设总共有2n+1个士兵参战,其中n个属于一方,另n个属于另一方,最后一方势力只有一个人,也许前两方杀红了眼两败俱伤了,最后被剩下的一个人捡漏了也是可能的。
那么辛苦杀敌到底是为了什么呢?只为了两件事
最后活下来的势力未必就是人最多的(也许会被人偷鸡)
人最多的势力如果不能活下来,只说明它的势力还不够强大,不足以保证赢得战争的胜利(指人数超过总参战人数的一半)
如果最后没有人活下来,说明此次参战的势力中,没有任何一只足够强大到一定会赢得胜利。
严谨的逻辑证明咱不会,凭理解写下思路,有错误的地方请大佬指正。
所以遍历一遍,每次清除一对不同势力的人,对最后活下来的势力单独验证一下究 ...
2021年9月15日
生日这天做点记录吧,为什么每年这个时候都会感受到孤独。别说安德鲁不想孤独终老了,我也不想。
其实我现在郁闷且暴躁,但是又不希望别人来影响我的心情,索性一股脑儿说点什么吧。
早上收到了小袁和童章璐的生日祝福
刷朋友圈看到zqf说一直在期待今天,但也不过如此。觉得自己很内疚,因为他生日我完全没想起来,消息我也总是忘记回
真的很对不起,但是没有办法,我的精力有限,已经不想把时间浪费在这种地方了
我觉得自己已经算是不过分在意仪式感的人了,但这不代表我不希望别人在意
zth真的次次让我失望,不过两人始终频道不同,还是不强求了吧,但我已经生气了
当然,都这么多年了,我居然还抱有期望,实在是不应该
她能有对待恋人一半的在意去对待朋友,都不至于现在这样
真的给我气笑了
fls也是非常牛逼一人了,她完全不具备共情能力
或许是常年被人捧在手心习惯了,语气时常霸道且无理。
我不懂为什么她能任何时间任何地点无论别人有没有事情 旁若无人的将自己的感情过去
不管别人想不想听在不在意
可能别人一直在给她传递她非常好她很值得 但是我看来也就一般吧
起码无时无刻不专注于自己 从不在意别人的感受 就很让人烦
ck挺好的, ...
VAE
我这几天比较好奇VAE模型和简单AE之间的区别,就是为什么要引入/mu/mu/mu和sigmasigmasigma,看了一上午,似懂非懂。
AutoEncoder
Encoder
Produce the new features representation from the old features representation, from the initial space to latent space, as dimensionality reduction.
Aim: keep the maximum of information when encoding
Decoder
Decompress the latent vector back to the initial space, and recover more information as far as possioble.
Aim: keep the minimum of reconstruction error when decoding
At each iteration, the loss functio ...
CC-FPSE
Title:Learning to Predict Layout-to-image Conditional Convolutions for Semantic Image Synthesis
Year:NeurIPS 2019
Author:Xihui Liu
School:The Chinese University of HongKong
Code:https://github.com/xh-liu/CC-FPSE
Topic and Gap
Topic
Semantic image synthesis, which aims at generating photorealistic images conditioned on semantic layouts.
Gap
How to exploit the semantic layout information in the generator
Preserve information: most of network just be fed into semantic label maps once at the inp ...
SMIS
Semi-parametric Image Synthesis
Year:CVPR2018
Author:Xiaojuan Qi
School:CUHK 港中文
Code:https://github.com/xjqicuhk/SIMS
Problem Statement / Gap
基于参数的深度学习网络图像生成与人类的绘画过程不符。
非参数方法在图像生成没有利用大量的数据集。
因此引入semi-parametric的图像生成方法。
Contributions
模型根据segmentation的形状及周边类型信息,在数据集中找到与最相似的同类别块状图像,不同类别拼接转换得到Canvas,与标签图一起作为输入,得到最终的生成结果。
For each connected component, we retrieve a compatible segment from M based on shape, location and context, after transformed, they are composited onto a canvas. The canvas C an ...
Art2Real
Art2Real
Year:CVPR2019
Author:Matteo Tomei
School:University of Modena and Reggio Emilia
Code:https://github.com/aimagelab/art2real.
Problem Statement / Gap
艺术图像和自然图片的数量不平衡,模型更偏向于自然图片,转换效果不佳
在图像转换的过程中,尽可能保持两类型图片的语义特征。
Contributions
提出了Art2Real生成模型,缩小了两个Domain距离,也就是最大可能保持了图像的语义特征。
unpaired数据集训练,保持Patch级别的细节。
对比Cycle-GAN、UNIT、DRIT的效果
Method and Solution
To increase the realism, we build a network which can copy from the details of real images at the patch level.
Make use of a semantic ...
Mac下显示远程服务器Tensorboard
Mac 终端登录远程 Ubuntu 服务器:
12ssh -L 本地端口:127.0.0.1:TensorBoard端口 用户名@服务器的IP地址 -p 服务器登录端口ssh -L 16006:127.0.0.1:6006 user@172.17.173.47
本地端口:查看 tensorboard 结果时,在浏览器中输入地址时的端口号(如:10086)
TensorBoard 端口:运行 tensorboard 时指定的端口(如:6008)
服务器登录端口:登录服务器时的默认端口,如果不需要端口,则省略 -p 及其后的端口号(如:2020)
跳转至包含TensorBoard日志信息文件保存的位置,终端运行Tensorboard:
1tensorboard --logdir=logs --host=127.0.0.1 --port 6006
Mac 本地浏览器输入如下地址,即可查看 tensorboard 结果
1127.0.0.1:16006/
✌️
参考博客
https://blog.csdn.net/sdnuwjw/article/details/104232 ...
GauGAN损失函数篇
这两天整理一个GauGAN的损失函数及其曲线变化。
Generator
首先,对于生成器而言,损失函数包括如下几项:GAN_loss、Feat_loss、VGG_loss、KLD_loss四项。我已经拖了两三周没理它了,两眼一抹黑策略失败,后天必须给陈老师讲清楚。
GAN LOSS
在函数generate_fake中,将标签图与GT作为生成器的输入,返回大小为[bs,3,256,256]的逼真图像。
随后将语义标签图、GT、生成图作为鉴别器的输入,返回鉴别结果。鉴别器的输入看作是两个部分的结合:
语义标签图和生成图在dim=1处拼接得到fake_concat
语义标签图和GT在dim=1处拼接得到real_concat
两者在dim=0处拼接得到的real_and_fake为输入
12345fake_concat = torch.cat([input_semantics, fake_image], dim=1) # [bs, 305, 256, 256]real_concat = torch.cat([input_semantics, real_image], dim=1)f ...