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通道