深度学习——特殊应用:人脸识别和神经风格转换[13]

1. 什么事

2. one-shot learning problem

什么是one-shot(一次学习):比如人脸识别中,你的数据库中每个人只有一张图,对于一个输入,就只能从数据库中的一个图来找出是否是那个人

方案:把人脸放到一个CNN网络中,然后输出softmax结果(5个人,6个结果,一个表示都不是),但是因为数据集太小,这个方法并不可行

可行的方法:学习相似函数

输入两个图,然后d函数输出它们之间的差异,如果差值小于一定值,则表示相同,否则表示不同(这个用于验证)

可以用到识别上,就是把每个数据与输入进行比较

3. Siamese网络:如何学习d函数

Simaese网络结果

输入一张图,可以得到一个128维(假设)的特征向量(用来表示一个人)。输入另一张图到相同的网络中,同样可以得到128维特征向量,计算两个结果的范数结果作为d值

如何训练Siamese网络

通过反射传播来实现目标

4. Triplet loss

anchor是目标,positive是和anchor一样的,而negative是不同的人

基本的目标是:anchor和positive的差值比anchor与negative的小

为什么要加alpha?

a-b<=0,如果a=b=0,那这个并不能说明问题,所以加一个超参数

定义损失函数

取两个差的最大值,我们并不关心差值有多大,只要满足条件即可

对于1k个人,10k张照片,从10k里面去产生很多的三元对,并计算loss

如何选择A,N,P对?

不要随机选,因为可能很容易满足条件

4. 面部验证与二分类

把验证问题转换成二分类问题,相同为1,不同为0

最后输出yhat,f(xi)k表示从xi的输出特征值选择第k个,计算两个输入的对应输出的差值和

在实际应用中,可以把老的先计算好,当有新的人来就可以用预计算的结果

绿色部分还可以用其他的形式

wx+b:可以差值的128个作为特征值,在放入逻辑回归中,然后在这128个上进行参数训练

5. 神经风格转移

一个提供内容,一个提供风格,进行融合

7. 深度学习可视化

8. 神经风格转换

定义一个代价函数:包含两个部分,一个是评估生成的图片与内容图片的差异,一个是评估生成图片与风格图片的差异

一般的步骤:随机生成一张图,然后用梯度下降法来减小差异值

9. 内容代价函数定义

找一个隐藏层来计算这个代价,l的选择问题?

用一个预训练好的卷积网络

获得内容图和生成图在网络第l层的激活值

判断这两个值是否类似,如果类似的话,说明两个内容相同(其中的减法是各个元素相减)

问题:每次都是用这一层来计算吗?

应该是的,这个只是做一个评估吧

7. 风格代价函数

什么是风格:不同通道之间的关联correlation

怎么评估通道的关联度:不同的通道会识别出不同的特征结果,相关系数表示当一个位置出现某特征时同时出现另一特征的可能性。比如出现条纹的时候也是橙色

 

风格矩阵:a表示在第k个channel的第i,j位置的激活值,k和k'表示要评价的两个channel

如果k和k'相关,那么结果就会比较大

需要对生成的图和风格图都计算该矩阵

风格Loss函数就是两个矩阵的差,为了能评估网络中的各个层,可以加一个超参数

8. 一维到三维的卷积

一维的应用:电子信号

三维应用:CT检查,切片数据是三维的。相当于是1通道

猜你喜欢

转载自www.cnblogs.com/coolqiyu/p/8849847.html