let l1_grad p = (* TODO: I may change it to noisy unbiased subgradient in future *) MX.map (fun x -> if x > 0. then 1. else if x < 0. then (-1.) else 0. ) p