在阅读《动手学深度学习》一书中,看到这样一段话:
“导数的计算,这是⼏乎所有深度学习优化算法的关键步骤。
在深度学习中,我们通常选择对于模型参数可微的损失函数。简⽽⾔之,对于每个参数,如果我们把这个参数增加或减少⼀个⽆穷⼩的量,我们可以知道损失会以多快的速度增加或减少。”
前面的文章也提到:深度学习回答了什么样的神经网络可以训练出智能,包括多层神经网络和卷积神经网络,也回答了训练(学习)方法问题,包括受限玻尔兹曼机模型、反向传播算法、自编码模型等。
反向传播算法,也就是反向导数传播,通过计算损失函数的损失,利用损失函数对于模型参数的可微性,将损失调整转换为模型参数的导数传播。这差不多是深度学习关键方法。由此也让深度学习模型成为函数的万能逼近器。
那如何目标函数不可微,怎么办?一种就是重参数化,类似VAE论文中采用方法。另一种就是采用强化学习,类似RLHF的方法。