g****t 发帖数: 31659 | 1 我work out了一个ML的代数理论。出发点有以下几个:
第一个是neural network的画图表示,就是各种连线网络那样一大块,是限制人的想象
力的。而且也是不够用的。输入信号经过一个非线性环节,记为次数加1的话,那么在
residual neural network之前的前向网络的架构相当于是齐次多项式。这当然是不够
的。从实战中看,大量的neuron未被激活也证明了等价于齐次多项式的架构的不足。但
是现在架构方面各种飞线,不是一个方便的描述这一问题的语言。
第二个是扁平层化其他ML算法的努力。最简单的多项式是
ID加 f 加 ff加fff……。我认为根据这个多项式可以层化任意ML算法。
例如可以层化简单
的查表
。然而这只解决了模型的扁平层化架构问题。无法进行学习。把参数优化扔给优化包,
找几个例子
claim一下当然是可以的。
但是生产实践中,非线性优化是很难实用的。假如算法在一百个场景用,可能需要一百
个调参数师傅。因为是新模型,调参数师傅还得是资深的。更重要的是,不同的ML算法
,例如查表
未必是可微的。ML算法可调节参数五花八门。无法统一绑定到一个包。要找一个统一可
作用于
不同ML算法的学习算法。必须是代数为基础的。不能是分析算法。
因为我这个系统只假设
了代数关系。不能依赖于不同ML算法接口之外的东西。
所以我设计了一个类似于消去法的,以代数操作为基础的次优算法。尽管各种options
的取
舍还没做完。但是程序可以跑通。只要是train, test, validate格式对上就行。当然
这个
算法无法保证最优。但在步长无限小的情况下,是次优的。
第三个动机。从数学上来讲,值的映射是函数,函数到值的映射是泛函。函数到函数的
映射是operator或者变换(例如Fourier 变换)。今日operator理论实际上是从
Fourier的发现总结出来,也就是线性理论。我认为这个理论不能让人满意。
程序验证:
我写了一个程序。
给定一个最高十次的多项式。接入几个不同的,以train,label,validate为输入的ML算
法,可以跑10步,可以算出来新的提高了的validate准确率和每一步的中间结果。
理论上,凡是以train,test, validate为输入的ML算法,都可以被我这个程序根据多项
式再次层化。
程序证明了:
实数域多项式 和 层化后的ML架构 可以建立一一对应关系。
可以实现消去類型的学习算法。
问题:
那么实数域多项式的根是否和ML的架构的优劣有关?
实数域多项式的evaluation算法是否和模型的有效execution算法有关?
这些问题我可能不会考虑了。事情办完,才了解到
我琢磨这些事就是为了走到原算法这一层看一眼。
“
扁平层
化”就是一种原算法,作用于其他的ML算法。这事做完,也就结束了。 |
|