我想使用广告自动微分包来学习 Haskell 中的神经网络权重。我发现了一些可能只是我需要的函数,但是我无法弄清楚它们期望的第一个参数是什么。一定是要优化的功能,具体是什么形式我不知道。他们有这样的签名:
gradientDescent :: (Traversable f, Fractional a, Ord a) => (forall s. Mode s => f (AD s a) -> AD s a) -> f a -> [f a]
我发现forall s.
意思是一个名为存在量词的东西,仅此而已。我的问题是,我怎样才能将带有签名的成本函数cost :: [Double] -> Double
(它需要权重列表)传递给这个库?