深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起(一)

简介: 深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起(一)

Contrastive Learning (对比学习) 是这两年深度学习非常热的话题,可以说是刷新了很多人对无监督学习对认知。最初谷歌写的Representation Learning with Contrastive Predictive Coding (CPC) 公式十分抽象,不好理解。我在做完了一个CPC的项目以后,决定做一张超直观的图帮助大家摆脱公式理解。


在讲CPC之前,我会先在第一部分用脸盲的例子,让大家先理解什么是Contrastive Learning,它为什么有用?它到底是如何学习的。 (笔者始终相信,科研创新都是先有直觉(intuition),再有严密的公式推理。如果不明白intuition,是很难真正理解公式的)


第二部分我会用一张自己做的图来解释CPC。


整篇文章我会围绕着理解contrastive learning的关键思想来讲:


  1. 构造positive pairs (正样本对) 和 negative pairs (负样本对)


  1. 在对比 positive pairs 和 negative pairs 的过程里提高辨识能力


一、发现自己脸盲时,你会怎么做?

很多人都有脸盲的体验,对我而言,脸盲是一大难题。不仅看外国电影会脸盲,连内地明星我也会。比如,假如你在不同的电视剧里分别看到李沁和孙怡两个人,深感困惑到底谁是谁的时候,你会怎么做?如果是我的话,我会去搜一下孙怡长什么样,李沁长什么样


⬇⬇⬇⬇⬇ 孙怡


1.png


⬇⬇⬇⬇⬇ 李沁


2.png


接下来,我猜你已经无意识的滑动手机图对比她俩了吧?


3.png


我们下意识地,在对比着她俩在不同情景下的图片,通过不断的对比,提升自己**【提取特征】**的能力。这里样本量可能不够大,这两位明星各三张图片,我仍然难以辨认她们。而对于天天见她们的导演,在日积月累的对比下,想必能抓取到更多特征。而阅人无数的导演,大概是不会像我们这么容易脸盲的。


在这个例子里,我想强调的是,我们在日常生活里,下意识地就会去构建正样本对(孙怡的不同照片,李沁的不同照片),和**负样本对****(**一张孙怡的照片 v.s. 一张李沁的照片)。


对于分辨能力比较弱,没见过多少妆容精致的女明星的我,正样本对和负样本对看起来可能差不多,我可能无法判断正样本对和负样本对,也就是说,从上面六张图里,你挑两张给我,我都不知道是不是同一个人。


而对于不脸盲的人来说,你挑两张图,他可能就知道是不是同一个人。


而我们改善自己脸盲问题的方式,就是不断的去学习,哪对图片是同一个人,哪对是不同人,从而提高分辨能力。


=========================


这就是


对比学习 (Contrastive Learning)


========================


二、现在我们来讲CPC


444.png


说好无公式,咱真的就不谈公式


这个图的主要部分是对一个个体的CPC的特征提取过程。请注意脚标 j 代表这是个体 j 。


灰色的长矩阵 代表个体j的时间序列,对于每一个frame,我们对它做 特征提取 (encode) ,也就是图中的箭头 ,然后每个frame会得到对应的黄色矩阵 ,


接下来,CPC原文里提到,它希望学得一些global information, 也称context information。什么是context information呢?举例来说,你在看电视剧的时候,看到了前面几十集 (对应图里的原时间序列 ),作为一个看片(不对,看剧)无数的人,你从前几十集觉察到了他们的感情逐渐有了罅隙(你作为encoder提取了 )),然后,你可能就开始【预言了】 :xxxx 和 yyyyy肯定会感情越来越糟糕( )。(context information)。但你其实是无法准确预测后来到底会具体发生什么事情,即


跳出电视剧来说,CPC会在样本里随机选一个时间点 , 把 前面提取到的所有的 用一个回归模型来总结前面所有信息(比如用RNN得到图里的 ),然后用线性变换去预测出


相关文章
|
机器学习/深度学习 搜索推荐 PyTorch
机器学习/深度学习中的常用损失函数公式、原理与代码实践(持续更新ing...)
本文的结构是首先介绍一些常见的损失函数,然后介绍一些个性化的损失函数实例。
机器学习/深度学习中的常用损失函数公式、原理与代码实践(持续更新ing...)
|
机器学习/深度学习
【深度学习】5-从计算图直观认识“激活函数不以零为中心导致收敛变慢”
【深度学习】5-从计算图直观认识“激活函数不以零为中心导致收敛变慢”
212 0
【深度学习】5-从计算图直观认识“激活函数不以零为中心导致收敛变慢”
|
机器学习/深度学习 自然语言处理 算法
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
1541 0
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
|
机器学习/深度学习
深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起(二)
深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起(二)
250 0
深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起(二)
|
机器学习/深度学习 算法 信息无障碍
深度学习中的Normalization模型(附实例&公式)
本文以非常宏大和透彻的视角分析了深度学习中的多种Normalization模型,从一个新的数学视角分析了BN算法为什么有效。
1272 0
|
8天前
|
机器学习/深度学习 人工智能 测试技术
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术,尤其是卷积神经网络(CNN)在图像识别任务中的最新进展和面临的主要挑战。通过分析不同的网络架构、训练技巧以及优化策略,文章旨在提供一个全面的概览,帮助研究人员和实践者更好地理解和应用这些技术。
37 9
|
4天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,重点分析了卷积神经网络(CNN)的工作原理及其在处理图像数据方面的优势。通过案例研究,展示了深度学习如何提高图像识别的准确性和效率。同时,文章也讨论了当前面临的主要挑战,包括数据不足、过拟合问题以及计算资源的需求,并提出了相应的解决策略。
|
6天前
|
机器学习/深度学习 分布式计算 并行计算
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用,分析了当前主流的卷积神经网络(CNN)架构,并讨论了在实际应用中遇到的挑战和可能的解决方案。通过对比研究,揭示了不同网络结构对识别准确率的影响,并提出了优化策略。此外,文章还探讨了深度学习模型在处理大规模数据集时的性能瓶颈,以及如何通过硬件加速和算法改进来提升效率。
|
6天前
|
机器学习/深度学习 人工智能 计算机视觉
深度学习在图像识别中的应用与挑战
【10月更文挑战第38天】本文将深入探讨深度学习如何在图像识别领域大放异彩,并揭示其背后的技术细节和面临的挑战。我们将通过实际案例,了解深度学习如何改变图像处理的方式,以及它在实际应用中遇到的困难和限制。
|
6天前
|
机器学习/深度学习 传感器 自动驾驶
深度学习在自动驾驶中的应用与挑战####
本文探讨了深度学习技术在自动驾驶领域的应用现状、面临的主要挑战及未来发展趋势。通过分析卷积神经网络(CNN)和循环神经网络(RNN)等关键算法在环境感知、决策规划中的作用,结合特斯拉Autopilot和Waymo的实际案例,揭示了深度学习如何推动自动驾驶技术向更高层次发展。文章还讨论了数据质量、模型泛化能力、安全性及伦理道德等问题,为行业研究者和开发者提供了宝贵的参考。 ####