  Copulas are powerful statistical tools for capturing dependencies across data
dimensions. Applying Copulas involves estimating independent marginals, a
straightforward task, followed by the much more challenging task of determining
a single copulating function, $C$, that links these marginals. For bivariate
data, a copula takes the form of a two-increasing function $C: (u,v)\in
\mathbb{I}^2 \rightarrow \mathbb{I}$, where $\mathbb{I} = [0, 1]$. This paper
proposes 2-Cats, a Neural Network (NN) model that learns two-dimensional
Copulas without relying on specific Copula families (e.g., Archimedean).
Furthermore, via both theoretical properties of the model and a Lagrangian
training approach, we show that 2-Cats meets the desiderata of Copula
properties. Moreover, inspired by the literature on Physics-Informed Neural
Networks and Sobolev Training, we further extend our training strategy to learn
not only the output of a Copula but also its derivatives. Our proposed method
exhibits superior performance compared to the state-of-the-art across various
datasets while respecting (provably for most and approximately for a single
other) properties of C.
