{'fraction_non_alphanumeric': 0.046753157132012974, 'fraction_numerical': 0.013008073976951211, 'mean_word_length': 4.3131072410632445, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
On the Equivalence between Herding and Conditional Gradient Algorithms

We show that the herding procedure of Welling (2009) takes exactly the form of a standard convex optimization algorithm--namely a conditional gradient algorithm minimizing a quadratic moment discrepancy. This link enables us to invoke convergence results from convex optimization and to consider faster alternatives for the task of approximating integrals in a reproducing kernel Hilbert space. We study the behavior of the different variants through numerical simulations. The experiments indicate that while we can improve over herding on the task of approximating integrals, the original herding algorithm tends to approach more often the maximum entropy distribution, shedding more light on the learning bias behind herding.


Introduction
The herding algorithm has recently been presented by Welling (2009b) as a computationally attractive alternative method for learning in intractable Markov random fields models (MRF). Instead of first estimating the parameters of the MRF by maximum likelihood / maximum entropy (which requires approximate inference to estimate the gradient of the partition function), and then sampling from the learned MRF to answer queries, herding directly generates pseudosamples in a deterministic fashion with the property of asymptotically matching the empirical moments of the data (akin to maximum entropy). The herding algorithm generates pseudo-samples x t with the following simple recursion: x t+1 ∈ arg max x∈X w t , Φ(x) where X is the observation space; Φ is a feature map from X to F , which could be viewed as the vector of sufficient statistics for some exponential family, and µ is a mean vector to match (the empirical moment vector of the same family). Unlike in frequentist learning of MRFs, the parameter w t never converges to a point in herding and actually follows a "weakly chaotic" walk .
The herding updates can be motivated from two different perspectives. From the learning perspective, the herding updates can be derived by performing fixedstep-size subgradient ascent on the zero-temperature limit of the annealed likelihood function of the MRFcalled the "tipi function" by Welling (2009b). From this perspective, herding was later generalized to MRFs with latent variables (Welling, 2009a) as well as discriminative MRFs (Gelfand et al., 2010).
From the moment matching perspective, which has been explored more in details by Chen et al. (2010), the herding updates can be derived as an effective way to choose greedily pseudo-samples x t in order to quickly decrease the moment discrepancy E t . . Under suitable regularity conditions, E t decreases as O(1/t) for the herding updates-this is faster than i.i.d. sampling from the distribution generating µ (e.g., the training data) which would yield the slower O(1/ √ t) rate. This faster rate has been explained by negative autocorrelations amongst the pseudo-samples and was used by Chen et al. (2010) to sub-select a small collection of representative "super-samples" from a much larger set of i.i.d. samples. We make the following contributions: -We show that herding as described by Eq. (1) is equivalent to a specific type of conditional gradient algorithm (a.k.a. Frank-Wolfe algorithm) for the problem of estimating the mean µ. This provides a novel understanding and another explicit cost function that herding is minimizing.
-This interpretation yields improvements, for the task of estimating means, with other faster variants of the conditional gradient algorithm, which lead to non-uniform weights, one based on line-search, one based on an active-set algorithm. -Based on existing results from convex optimization, we extend and improve the convergence results of herding. In particular, we provide a linear convergence rate for the line-search variant in finitedimensional settings and show how the conditions assumed by Chen et al. (2010) in fact never hold in the infinite-dimensional setting. -We run experiments that show that algorithms which estimate faster the mean than herding generate samples that are not better (and typically worse) than the ones obtained with herding when evaluated in terms of the ability to approximate a sample with large entropy, a property which (if or when satisfied by herding) could be the basis for an interpretation of herding as a learning algorithm (Welling, 2009b).

Mean estimation
We start with a similar setup as Chen et al. (2010), where herding can be interpreted as a way to approximate integrals of functions in a reproducing kernel Hilbert space (RKHS). We consider a set X and a mapping Φ from X to a RKHS F . Through this mapping, all elements of F may be identified with real func- We denote by k : (x, y) → k(x, y) the associated positive definite kernel. Note that the mapping Φ may be explicit (classically in low-dimensional settings) or implicit-where the kernel trick can be used, see Section 4.3 and Chen et al. (2010).
Throughout the paper, we assume that the data is uniformly bounded in feature space, that is, for all x ∈ X , Φ(x) R, for some R > 0; this condition is needed for the updates of Eq. (1) to be well-defined.
We denote by M ⊂ F the marginal polytope (Wainwright & Jordan, 2008;Chen et al., 2010), i.e., the convex-hull of all vectors Φ(x) for x ∈ X . Note that for any f ∈ F , we have x ∈ X and f ∈ F (i.e., all functions with finite norm are bounded).
Extreme points of the marginal polytope. In all the cases we consider in Section 5, it turns out that all points of the form Φ(x), x ∈ X are extreme points of M (see an illustration in Figure 1). This is indeed always true when Φ(x) is constant for all x ∈ X (for example for our infinite-dimensional kernels on [0, 1] in Section 5.1); it is also true if Φ(x) contains both an injective feature map Φ(x) and its self-tensor-product Mean element and expectation.
We consider a fixed probability distribution p(x) over X . Following Chen et al. (2010), we denote by µ the mean element (see, e.g., Smola et al., 2007): Note that in the learning perspective, p is the empirical distribution on the data and so µ is the corresponding empirical moment vector to match. To approximate this mean, we consider n points x 1 , . . . , x n ∈ X combined linearly with positive weights w 1 , . . . , w n that sum to one. These definep, the associated weighted empirical distribution, andμ the approximating mean: For all functions f ∈ F , we then have and similarly Ep (x) f (x) = μ, f . We thus get, using Cauchy-Schwarz inequality, and controlling µ −μ is enough to control the error in computing the expectation for all f ∈ F with finite norm. Note that a random i.i.d. sample from p(x) would lead to an expected worst-case error which is less than 4R √ n -a classical result based on Rademacher averages (see, e.g. Boucheron et al., 2005).
In this paper, we will try to find a good estimateμ of µ based on a weighted set of points from {Φ(x), x ∈ X }, generalizing Chen et al. (2010), and show how this relates to herding.

Related work
This paper brings together three lines of work, namely the approximation of integrals, herding and convex optimization. The links between the first two were clearly outlined by Chen et al. (2010), while the present paper provides the novel interpretation of herding as a well-established convex optimization algorithm.

Quadrature/cubature formulas
The evaluation of expectation, or equivalently of integrals, is a classical problem in numerical analysis. When the input space X is a compact subset of R p and p(x) is the density of the distribution with respect to the Lebesgue measure, then this is equivalent to evaluating the integral X f (x)p(x)dx. Quadrature formulas are aimed at computing such integrals as a weighted combinations of values of f at certain points, which is exactly the problem we consider in Section 2.
Although a thorough review of quadrature formulas is outside of the scope of this paper, we mention two methods which are related to our approach. First, given a positive definite kernel and a given set of points (typically sampled i.i.d. from a given distribution), the Bayes-Hermite quadrature of O'Hagan (1991) essentially computes an orthogonal projection of µ onto the affine hull of this set of points. This does not lead to positive quadrature weights, and one may thus replace the affine hull by the convex hull to obtain such nonnegative weights, which we do in our experiments in Section 5.
Moreover, quasi-Monte Carlo methods consider sequences of so-called "quasi-random" quadrature points so that the empirical average approaches the integral. These quasi-random sequences are such that the approximation error goes down as O(1/n) (up to logarithmic terms) for functions of bounded variation, as opposed to O(1/ √ n) for a random sequence. In simulations, we used a Sobol sequence (see, e.g., Morokoff & Caflisch, 1994).

Franke-Wolfe algorithms
Given a smooth (twice continuously differentiable) convex function J on a compact convex set M with gradient J ′ , Frank-Wolfe algorithms are a class of iterative optimization algorithms that only require (in addition to the computation of the gradient J ′ ) to be able to optimize linear functions on M. The first class of such algorithms is often referred to as conditional gradient algorithms: given an iterate g t , the minimum of J ′ (g t ), g over g ∈ M is computed, and the next iterate is taken on the segment between g t and g, i.e., g t+1 = ρ t g t +(1−ρ t )g, where ρ t ∈ [0, 1]. There are two natural choices for ρ t , (a) simply taking ρ t = 1/(t + 1) and (b) performing a line search to find the point in the segment with optimal value (either for J or for a quadratic upper-bound of J). These are illustrated in Figure 2, and convergence rates are detailed in Section 4.2. Moreover, for quadratic functions, the conditional gradient algorithm with step sizes ρ t = 1/(t + 1) has a dual interpretation as subgradient ascent (see, e.g., Bach, 2011), which we outline in Section 4.1. Finally, in order to minimize the number of iterations, a variant known as the minimum-norm-point algorithm will find g t+1 that minimizes J on the convex hull of all previously visited points, using a specific active-set algorithm (see Bach, 2011, Sec. 6, for details). For convex sets with finitely many extreme points, it converges in a finite number of iterations with higher (though still polynomial) iteration computational cost (Wolfe, 1976).

Herding as a Frank-Wolfe algorithm
To relate herding with conditional gradient algorithms, we consider the following optimization problem: with the trivial unique solution µ. A conditional gradient algorithm to solve this optimization problem with stepsize ρ t = 1/(t + 1) use the iterates g t+1 ∈ arg min g∈M g t − µ, g , But these updates are exactly the same as herding via the change of variable g t = µ − w t /t. Indeed, the minimizer of a linear function of a convex setḡ t+1 can be restricted to be an extreme point of M; this implies thatḡ t+1 = Φ(x t+1 ) for a certain x t+1 . The herding updates in Eq. (1) are thus equivalent to the conditional gradient minimization of J with step size given by ρ t = 1/(t + 1).
With this choice of step size, we get (t + 1) , and we thus get uniform weights in Eq. (2).
For general step-sizes ρ t ∈ [0, 1], if we assume that we start the algorithm with ρ 0 = 1 (which implies , which thus leads to non-uniform weights in Eq. (2), though they still sum to one. The conditional gradient updates in Eq. (4) can thus be seen as a generic algorithm to obtain a weighted set of points to approximate µ, and traditional herding is the ρ t = 1/(t + 1) step-size case.
A second choice of step-size for t ≥ 1 is to use a line search, which leads in this setting (where the global unconstrained minimum happens to belong to M) to ρ t = gt−µ,gt−ḡt+1 ḡt+1−gt 2 ∈ [0, 1]. This leads to a variant of herding with non-uniform weights.
We finally comment on the initialization g 0 for the updates in Eq. (4). In the kernel herding algorithm of Chen et al. (2010), the authors use w 0 = µ as this is required to interpret the herding updates as greedily minimizing E t (with the additional assumptions that Φ(x) is constant). In our setting, this corresponds to choosing g 0 = 0 (which might be outside of M, though this is not problematic in practice). Another standard choice (for MRFs in particular) is to use w 0 = 0 (g 0 = µ), which means that the first point x 1 is chosen randomly from the extreme points of M-this is the scheme we used. As is common in convex optimization, we didn't see any qualitative difference in our experiments between the two types of initialization.

Dual problem and subgradient descent
Welling (2009b) proposed originally an algorithmic interpretation of herding as performing subgradient ascent with constant step size on a function obtained as the zero temperature limit of the log-likelihood of an exponential model that he called the "tipi function". Our interpretation of the procedure as a Frank-Wolfe algorithm might therefore appear as a conflicting interpretation at first sight. To establish a natural connection between these two interpretations, we can compute the Fenchel-dual optimization problem to Eq. (3). Indeed, we have (with standard arguments for swapping the min and max operations): The dual function f → min x∈X f (x)− f, µ − 1 2 f 2 is 1-strongly concave and non-differentiable, and a natural algorithm to maximize it is thus subgradient ascent with a step size equal to 1 t+1 , which is known to be equivalent to the primal conditional gradient algorithm with step sizes ρ t = 1/(t + 1) (Bach, 2011, App. A). It is therefore not surprising that herding is equivalent to subgradient ascent with a decreasing stepsize on this function (with the identification f t = g t − µ = −w t /t). The presence of the squared norm which is added to the "tipi function" merely reflects the change of scaling between g t and w t . It is worthwhile mentioning that other functions, like Bregman divergences, would have led to a different dual function hence adding a different term than a squared norm to the "tipi function".

Convergence analysis
Without further assumptions on the problem, then the two choices of step sizes lead to a convergence rate of the form (Dunn, 1980;Bach, 2011): where R is diameter of the marginal polytope. Note that the convergence in O(1/t) does not lead to improved estimation of integrals over random sampling. Moreover, without further assumptions, current theoretical analysis does not allow to distinguish between the two forms of conditional gradient algorithms (although they differ a bit in practice, see Section 5).
However, if we assume that within the affine hull of M, there exists a ball of center µ and radius d > 0 that is included in M (i.e., µ is in the relative interior of M), then both choices of step sizes yield faster rates than random sampling. For the version with line search, we actually obtain a linear convergence rate (Beck & Teboulle, 2004): For the version without line search (ρ t = 1/(t + 1)), Chen et al. (2010) shows the slower convergence rate in O(1/t 2 ): Concerning the assumption that µ is in the relative interior of M, we now show that in finite-dimensional settings, this assumption is always satisfied under reasonable conditions, while it is never satisfied in a large class of infinite-dimensional settings (namely for Mercer kernels).
We first provide an equivalent definition of this condition which is used in the proofs. Let A be the affine hull of M, µ 0 the orthogonal projection of 0 on A, and F the space of directions (or difference space) of A (i.e., F = A − µ 0 ). 1 Now there exists d > 0 so that any element of A which is at distance less than d of µ is in M if and only if ∀f ∈ F , the maximum of f ⊤ g over g ∈ A and g − µ d is less than the maximum of f ⊤ g over g ∈ M. Given the properties of A and F , this is equivalent to: Proposition 1 Assume that F is finite-dimensional, that X is a compact topological measurable space with a continuous kernel function, and that the distribution p has full support on X . Then ∃d > 0 so that Eq. (5) is true. Proof sketch.
It is sufficient to show that Ω : f → max x∈X f (x) − µ, f is a norm on F : as all norms are equivalent in finite dimensions, we get d f ≤ Ω(f ) for some d > 0, yielding Eq. (5). Ω is convex and positively homogeneous by construction. Now Ω(f ) = 0 implies that E p(x) [f (x) − max y f (y)] = 0, and thus f (x) = max y f (y) for x in the support of p (assumed to be X ) using the fact that f is continuous (since the kernel is continuous), and so f is a constant function. We then have two possibilities: either µ 0 = 0, in which case one can show that there is no non-zero constant functions in F ; otherwise f = αµ 0 for some α and thus the orthogonality condition f, µ 0 = 0 implies that α = 0. Both cases imply f = 0, hence Ω is a norm.
Proposition 2 Assume X is a compact subspace of R d , and that the kernel k is a continuous function on X × X . If F is infinite-dimensional, then there exists no d > 0 so that Eq. (5) is true. Proof sketch. We can apply Mercer theorem to the kernelk(x, y) of the projection onto the orthogonal of {µ, µ 0 }. This kernel is also a Mercer kernel, and we get an orthonormal basis (e k ) k 1 of L 2 (X ) with countably many eigenvalues λ k that are summable. Moreover, (λ 1/2 k e k ) k 1 is known to be an orthonormal basis of the associated feature space F (Cucker & Smale, 2002), and for all x, y ∈ X ,k(x, y) = k 1 λ k e k (x)e k (y), with uniform convergence. This implies that for f k = λ 1/2 k e k , we have f k = 1, and f k , µ 0 = f k , µ = 0. If we assume that there exists d > 0 so that Eq. (5) is true, then we have for all k 1, max x∈X |f k (x)| d. Since X is compact, there exists a cover of F with finitely many balls of radius d/4R. Let Y be the finite set of centers. Since all functions f k are Lipschitzcontinuous with constant 2R, then for all k 1, d/2 > 0 for infinitely many values of k; this contradicts the summability of k 1 f k (x) 2 . Hence the result.
The last proposition shows that the current theory only supports the slower rates of O(1/t) for the two conditional gradient algorithms in infinite-dimensional settings. On the other hand, we note that, in some cases, traditional herding performs empirically better without known theoretical justification (see Section 5).

Computational issues
In order to run a herding algorithm, there are two potential computational bottlenecks: Computing expectations µ, Φ(x) : in a learning context (empirical moment matching), these are done through an empirical average. In an integral evaluation context, in finite-dimensional settings, one needs to compute E p(x) Φ(x); while in an infinite-dimensional setting, following Chen et al. (2010), expectations of the form E p(x) k(x, y) need to be computed. This can be done for some pairs of kernels/distributions, like the ones we choose in Section 5, but not in general.
Minimizing g t − µ, Φ(x) with respect to x ∈ X : in general, this computation may be relatively hard (it is for example NP-hard in the context of the graphical models we consider in Section 5). In practice, Chen et al. (2010) and Welling (2009a) perform local search, while another possibility is to perform the minimization through exhaustive search in a finite sample. Note that a convex relaxation through variational methods (Wainwright & Jordan, 2008) could provide an interesting alternative.

Experiments
The goals of these simulations are (a) to compare the different algorithms aimed at estimating integrals, i.e., assess herding for the task of mean estimation (Section 5.1 and Section 5.2), and (b) to briefly study the empirical relationship with maximum entropy estimation in a learning context (Section 5.3).
In particular, the mean element is computed as µ : x → E[k(Y, x)] which may be computed in closed form by expanding all terms in the Fourier basis. As for the optimization step, it consists in minimizing g t (x) − µ(x) over the interval [0, 1] which can be done efficiently with exhaustive search.

Comparison of mean estimation procedures.
We compare in Figure 3 two kernels, i.e., with ν = 1 (left and middle plots) and ν = 3 (right plot), the following mean estimation procedures, and plot log 10 μ − µ , for two densities, the uniform density (middle and right) and a randomly selected nonuniform density (left). We compare the following: cg-1/(t+1): conditional gradient procedure with ρ t = 1 t+1 , which is the original herding procedure of Welling (2009a), leading to uniform weights.
cg-l.search: conditional gradient procedure with line search (with non-uniform weights). min-norm-point: Minimum-norm point algorithm.
This leads to non-uniform weights. random: Random selection of points (from p(x)), averaged over 10 replications. sobol: a classical quasi-random sequence, with uniform weights. For non-uniform densities, we first apply the inverse cumulative distribution function.
For all of these (except for min-norm-point), we also consider an extra a posteriori projection step (denoted by the -proj suffix), which computes the optimal set of non-uniform weights by finding the best approximation of µ in the convex hull of the points selected by the algorithm. We can draw the following conclusions: -Min-norm-point algorithms always perform best.
-Conditional gradient with line search is performing slightly worse than regular herding. (Note that we are in the infinite-dimensional setting and so they both have O(t −1 ) as theoretical rate.) -The extra projection step always significantly improves performance, and sometimes enough that random selection of point combined with a reprojection outperforms regular herding (at least for ν = 3, i.e., with a smaller feature space). -On the right plot, it turns out that the Sobol sequence is known to achieve the optimal rate of O(t −2 ) for µ −μ 2 for the associated Sobolev space (Wahba, 1990). In this situation, regular herding empirically achieves the same rate; however, the theoretical analysis provided in the present paper or by Chen et al. (2010) does not allow to explain or support this statement theoretically. Estimation from a finite sample. In Figure 4, we compare three of the previously mentioned herding procedures when all quantities are computed from a random sample of size 1000. In plain, testing errors are computed (using exact expectations) while in dashed, the training errors are computed. All methods eventually fit the empirical mean, with no further progress on the testing error, this behavior happening faster with the min-norm-point algorithm.

Estimation on graphical models
We consider X = {−1, 1} d and a random variable computed as the sign (in {−1, 1}) of a Gaussian random vector in R d , together with Φ(x) composed of x and of all of its pairwise products xx ⊤ . In this set-up, we can compute the expectation E p(x) Φ(x) in closed form, as the mass assigned to the positive orthant by a bivariate Gaussian distribution with correlation ρ, which is  equal to 1 4 + 1 2π sin −1 ρ (Abramowitz & Stegun, 1964). We are here in the finite-dimensional setting and the faster rates derived in Section 4.2 apply.
We generated 10000 samples from such a distribution and performed herding with exact expectations but with minima with respect to x computed over this sample (by exhaustive search over the sample). We plot results in Figure 5, where we see the superiority of the min-norm-point procedure over the two other procedures (which include regular herding). Note that the line-search algorithm is slower than the 1/(t + 1)-rule, which seems to contradict the bounds. The bounds depend on the distance d between the mean and the boundary of the marginal polytope. If this is too small (much like if the strong convexity constant is too small for gradient descent), the linear convergence rate can only be seen for larger numbers of iterations.

Herding and maximum/minimum entropy
Given a moment vector µ obtained from the empirical mean of Φ(x) on data, the goal of herding is to produce a pseudo-sample whose moments match µ without having to estimate the canonical parameters of the corresponding model. A natural candidate for such a distribution is the maximum entropy distribution and we will compare it to the results of herding in cases where it can be easily computed, namely for X = {−1, 1} d (with d 10) and either Φ(x) = x ∈ [−1, 1] d or Φ(x) = (x, xx ⊤ ). In this setup, following Welling (2009a), the distribution on x ∈ X is estimated by the empirical distribution

Learning independent bits.
We first consider Φ(x) = x and some specific feasible moment µ ∈ M. It is well-known that the maximum entropy distribution is the one with independent bits. In the top panels of Figure 6, we compare the norm between the maximum entropy probability vector and the one estimated by two versions of herding, namely conditional gradient with stepsize ρ t = 1/(t + 1) (regular herding with uniform weights) and with line search (with non-uniform weights)-the min-norm-point algorithm leads to quantitatively similar results. We show results in Figure 6 for a mean vector µ which is a random uniform vector in [−1, 1] d (left plots), and for a mean µ which is random with uniform (µ i + 1)/2 values in {1, 2, 3, 4, 5} × 2 √ 2 3 (middle plots), and for mean values µ which is are random with uniform (µ i + 1)/2 values in {1, 2, 3, 4, 5}/6 (right plots). Note that the difference between rational and irrational means was already brought up by  through the link between herding and Sturmian sequences.
For each of the mean vector, we plot in the top plots, the error in estimating the full maximum entropy distribution (a vector of size 2 d ), and in the bottom plots, the error in estimating the feature means (a vector of size d). We can draw the following conclusions: -For a random vector µ (left plots), then regular herding (with no line search) empirically converges to the maximum entropy distribution. -For rational ratios between the means (but irrational means, middle plots), then there is no convergence to the maximum entropy distribution. -For rational means (right), there is no convergence either, but the behavior is more erratic. -The line-search procedure never converges to the maximum entropy procedure. On the opposite, it happens to be close to a minimum entropy solution, where many states have probability zero.
Experiments considered in Figure 6 considered a single draw of the mean vector µ, but similar empirical conclusions may be drawn from other random samples, and we conjecture that for almost surely all random vectors µ ∈ [−1, 1] d (which would avoid rational ratios between mean values), then regular herding converges to the maximum entropy distribution. The next experiment shows that this is not the case in general.
Learning non-independent bits. We now consider Φ(x) = (x, xx ⊤ ), and a certain random feasible moment µ ∈ M. As before, we compare the norm between the maximum entropy probability vector and the one estimated by the two versions of herding. We present results in Figure 7 for a mean vector obtained by the corresponding exponential family distribution with zero weights for the features x and constant weights on the features xx ⊤ . We see that the herding procedures, while leading to a consistent estimation of the mean vector, does not converge to the maximum entropy distribution and other unreported experiments have led to similar results.

Conclusion
We showed that herding generates a sequence of points which give in sequence the descent directions of a conditional gradient algorithm minimizing the quadratic error on the moment vector. Therefore, if herding is only assessed in terms of its ability to approximate the moment vector, it is outperformed by other more efficient algorithms. Clearly, herding was originally defined with another goal, which was to generate a pseudo-sample whose distribution could approach the maximum entropy distribution with a given moment vector. Our experiments suggest empirically, that while this is the case in certain cases, herding fails in other case, which are not chosen to be particularly pathological. This probably prompts for a further study of herding. Our experiments also show that algorithms that are more efficient than herding at approximating the moment vector fail more blatantly to approach a maximum entropy distribution and they present characteristics which would rather suggest a minimization of the entropy. This suggests the question of whether there is a tradeoff between approximating most efficiently the   mean vector and approximating well the maximum entropy distribution, or if the two goals are in fact rather aligned? In any case, we hope that formulating herding as an optimization problem can help form a better understanding of its goals and its properties.