6

我为什么要做ML PA - 幸福在路上

 2 years ago
source link: https://windmissing.github.io/machine%20learning/2021-04/why-ml-dpd.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我为什么要做ML PA 2021.04.30

第6章 深度前馈网络,这是花书深度学习相关内容的第一篇,原以为只是普通的介绍,没有读出任何感觉。直到我做了一年的ML PA,今日整理笔记时再次通读了这一篇,一文惊醒梦中人。

这一篇从“线性模型”开始,引入到了DL历史的深层逻辑。先回顾一下它的主要内容。

  1. 介绍线性模型的优点和缺点:
    优点:能通过闭解形式或凸优化形式高效且可靠地拟合。
    缺点:只能表达线性关系,无法理解任何两个输入变量间的相互作用。
  2. 介绍针对缺点的解决方法,引入kernal $\phi$
  3. 选择$\phi$的三种手段:(1)使用一个通用的$\phi$(2)手动设计$\phi$(3)让机器自己学习$\phi$

通信领域的DPD算法与机器学习是八竿子打不着的关系,但这一段内容却是对DPD算法的现状和我想做的事情做了精准的概括。

传统的DPD算法本质上是一个线性模型,我们能够方便地使用LS求解DPD参数,正是沾了线性模型的光。因为线性模型的优点就是“能通过闭解形式或凸优化形式高效且可靠地拟合。”

由于PA的非线性,单纯的线性模型肯定是解决不了问题的。解决方案就是kernel。而各种DPD算法的改进,实际上就是设计各种不同的kernel。

设计kernel的方法有很多,文中第一条是使用一个通用的kernel。并且指出,只要kernel的维度足够高,就可以拟合任何训练数据。虽然我没有见谁在DPD算法中使用文中所提的RBF kernel,但是在DPD算法历史中,确实存在这样一种通用的kernel,我们把它称为Generic Memory Polynomial(GMP)算法。

GMP算法是传统DPD算法的基础。几乎所有的DPD算法都是基于GMP算法的改进。这些改进主要是依据(1)根据业务原理设计更合适的kernel(2)用更少的资源实现更高的维度。这些改进需要透彻理解数据、数学和硬件的特点,有时需要根据特殊的场景做专门的调整。正如文中所说:“手动地设计kernel这种方法,需要人们数十年的努力、从业者擅长特定领域,并且不同领域之间很难迁移”。同时也说明,这一方法“在深度学习出现以前是主流”,但现在不一样,我们该试试新的方法了。

用深度学习的方法去学习kernel,这正是我想做的事,也是我正在努力去做的事。虽然我现在在做的是ML PA,不是ML DPD,但熟悉这一领域的人都知道,DPD算法与PA行为模型是相通的。做ML PA正是为以后做ML DPD做准备。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK