Niccolò Antonello
Niccolò Antonello
isn't ChainRulesCore the AD core package?
Definitively agree we should simplify this: ```julia julia> using ProximalOperators julia> NormL1() description : weighted L1 norm domain : AbstractArray{Real}, AbstractArray{Complex} expression : x ↦ λ||x||_1 parameters : λ =...
If we decide to completey avoid pretty printing, it works fine for some sfuff: ```julia julia> NormL1() NormL1{Float64}(1.0) ``` but it's quite horrible in other cases: ```julia julia> IndAffine(randn(3,3),randn(3)) ProximalOperators.IndAffineDirect{Float64,Float64,Array{Float64,2},Array{Float64,1},LinearAlgebra.QRCompactWY{Float64,Array{Float64,2}}}([0.7540902122955551...
We had something like that for grouping in [SlicedSeparableSum](https://github.com/JuliaFirstOrder/ProximalOperators.jl/blob/master/src/calculus/slicedSeparableSum.jl#L23)
Yes I agree, I think `gradient` is out of the scope for ProximalOperators. ChainRulesCore seems the right candidate to me! However removing these will need some changes in ProximalAlgorithms I...
I see this is used here for example: ```julia function likelihoods(hmm::AbstractHMM{Univariate}, observations) hcat(map(d -> pdf.(d, observations), hmm.D)...) end function likelihoods(hmm::AbstractHMM{Multivariate}, observations) # OPTIMIZE ? ls = zeros(size(observations)[1], size(hmm)[1]) @inbounds for...
You can minimise infinity norm over the i-th row using `norm(X[:,i],Inf)`. However having: ```julia @minimize ls( A*X - Y ) + norm(X[:,1],1) + norm(X[:,2],1) + norm(X[1,:],Inf) + norm(X[2,:],Inf) + ......
BTW the following notation can be used to construct such cost functions: ```julia @minimize ls(A*X-b)+sum(norm(X[i,:],Inf) for i =1:size(X,1)) ```
You can view this operation as a mixed norm, possibly named as $l_{1,Inf}$, however currently only the sum of l2 norms is available, that is $l_{2,1}$. See [documentation](https://kul-forbes.github.io/StructuredOptimization.jl/stable/functions/#LinearAlgebra.norm). As stated...
In case we had an efficient proximal mapping of the l_{1,Inf} norm I don't think we would go for this syntax: ```julia maximum(norm(X[i,:], 1) for i in 1:size(X, 1)) ```...