AI研究中数学和算法哪个优先?


问题:我现在正在学习扩散背后的方法(DDPM、基于分数的方法和其他方法)。我想知道研究人员究竟是如何提出这个想法的?

发明新方法的过程是这样的吗?

  1. 我们想制作更好的图像生成器。
  2. 哦,数据永远都不够......
  3. 让我们通过添加一些噪声破坏来乘以数据
  4. 这样做效果不错,如果我们制作一个去噪网络呢?
  5. 如果我们制作一个网络,从纯噪声中生成图像呢?
  6. 这样不行,如果我们把去噪步骤做得更小一些呢?
  7. 这样就成功了!现在,让我们创建一些理论来解释它为什么有效。
  8. 撰写论文

或者像这样?

  1. 我们想制作更好的图像生成器。
  2. 我们非常了解 "非平衡热力学",并想尝试以某种方式应用它
  3.  我们以某种方式想出了一种依赖于该理论数学的算法
  4. 成功了
  5. 我们撰写论文。

通常哪个在先?数学还是算法?

网友回答:
1、在人们如何提出这些想法的过程中,你忘记了一个步骤,那就是文献综述!人们会从许多其他人的工作中得到了启发,这些工作与 DDPM 论文中的内容非常相似。

我认为一般的过程是:

  1. -通过阅读论文了解该领域
  2.  找出应用/方法中的漏洞
  3.  提出新方法来填补这些漏洞
  4.  用现有的理论来支持这些方法,或许再加上一点自己的理论

我不认为人们会在阅读了该领域的论文后直接提出新理论,然后将其付诸实施。尽管在大多数论文中,介绍会让你相信是按照这样的顺序进行的(介绍、背景、理论、应用)。

我也在研究扩散理论,学习曲线非常陡峭,但一旦你习惯了,就会发现都是一样的东西,朗热文、贝叶斯等等。

2、实际上,我也在研究基于扩散/分数的模型,学习曲线很陡峭,因为它包含了从统计学、物理学和其他领域借鉴的理论。而这些理论已经非常庞杂和先进,因此要快速掌握其中的概念并不容易。我学得越深,就越复杂,但我经常能学到一些新的有趣的东西。

3、从外观上看,这些想法似乎不知从何而来。但如果你多年来一直在思考去噪和变异自动编码器,那么扩散模型的想法就是这些想法的自然综合。

4、就扩散模型而言,我认为最初的研究人员具有物理学背景,并从物理学的角度研究了生成模型。直到一些博士生将其与架构工程结合起来,几年后人们才意识到这一点。

一般来说,我认为研究人员在学习过程中会开发一套他们喜欢的技术工具包,

  • 当他们研究问题时,通常会通过这套工具包的视角来看待问题。
  • 这个工具包可以是任何东西:理论、数值近似、算法、架构等。
  • 这就是为什么博士生的 "探索-开发 "策略能取得很好的效果。
  • 如果你跟踪研究人员或实验室的工作,工具包通常会显露出来。
  • 这也是为什么你经常能看到一些论文写着 "X 就是 Y",比如随机优化就是贝叶斯推理。

5、你想研究信息论和概率分布的偏微分方程(想想福克-普朗克和随机与扩散过程--微分方程),这是一个奇妙的数学领域,有着令人难以置信的深度和深远的应用。
我想你会真正体会到它的广度和深度,但要记住这一点。
应用数学并不总是对一门学科公正,我相信更多的是想法和直觉:

  • 最终你会在研究图论时看到同样的想法被应用到信息传播、影响传播、数据传播等方面......

这就是你通往神经网络和 Ai 扩散的道路。

发明新算法源于一个创造性的过程:

  • "如果我这样做而不是这样做会怎样",
  • "这样做能改进吗?
  • 然后是 "为什么"<--这就是你的数学,但你首先需要知道其他算法 "为什么 "会起效。

在许多情况下,如果你看一下基础论文,你正在研究的想法就是在这篇论文中提出的,然后再看看研究人员的背景,我还没见过没有数学家参与的论文。

6、另外,我想我有点应付了事,因为这些数学知识真的很难消化,如果这些研究人员先提出理论,然后再进行实际应用,我会觉得不可思议。对我来说,那真是不可思议。
如果实际实现不成功怎么办?不知怎么的,我觉得开发代码比开发理论更省钱。也许我只是有偏见(我 90% 的工作都是软件)。

7、如果您已有统计学背景,这根本不是什么大问题。有一个定理叫做 Rao-Blackwell 定理,说的是如果你把一个估计值作为 "充分统计量 "的条件,你就能得到一个更好的估计值。如果你对它已经很熟悉了,就不难看出现有的方法并说:"哦,我知道如何改进它,只要用 Rao-Blackwell 定理就可以了"。这就是 DDIM 所要做的--采用现有的方法,使用现有的工具,使其具有更低的方差。

老实说,很多时候理论比代码更容易开发。主要是因为理论抽象了许多可能的代码实现。如果你在不理解理论的情况下实现了某些东西,而它却不起作用,你该从哪里开始修复呢?你的超参数有问题吗?是否存在漏洞?这个想法是不是从根本上就不对?理论告诉你,如果你从某个假设出发,就会得到某个结果。因此,如果你没有得到预期的结果,那一定是某个假设错了,这就给了你一个开始修正它的地方。这让你对结果有了一定程度的控制,而试验和错误则没有。

8、老实说,通常人们会尝试不同的事情,最终有些事情会奏效。然后他们写下理论/数学来尝试解释为什么会这样。

9、我认为两者都有很多。例如,在 NLP 领域,人们要么以纯粹的语言学为重点,要么以纯粹的计算机科学为重点来解决主要的大模型问题,但有时它们并不能很好地重叠。

10、数学和算法之间通常会有很多来回,但起点取决于个人。有些人有更理论的方法;有些人则有更多的理论方法。他们根据他们试图解决的数学问题仔细构建算法。其他人从猜测开始,计算出数学结果,然后根据需要进行更新。

11、扩散方法与图像变分自动编码器的方法非常相似,其研究根源可以追溯到几十年前。我建议阅读一些最初的论文,并检查引言中使用的参考文献以了解有关该主题的一些历史。

12、算法(工程/执行)是第一位的,如果你是一名研究人员/实践者,试图使用该模型(我的意思是第一位,并不意味着你以后不需要理解它)。在我看来,你确实需要了解基本原理才能创造出新的东西。而作为实践者,你必须能够快速复制并亲眼看到结果。