Linearized Krylov subspace Bregman iteration with nonnegativity constraint

Bregman-type iterative methods have received considerable attention in recent years due to their ease of implementation and the high quality of the computed solutions they deliver. However, these iterative methods may require a large number of iterations and this reduces their usefulness. This paper develops a computationally attractive linearized Bregman algorithm by projecting the problem to be solved into an appropriately chosen low-dimensional Krylov subspace. The projection reduces the computational effort required for each iteration. A variant of this solution method, in which nonnegativity of each computed iterate is imposed, also is described. Extensive numerical examples illustrate the performance of the proposed methods.


Introduction
Many applications in science and engineering require the solution of minimization problems of the form: where A ∈ R m×n is a matrix, whose singular values gradually decay to zero with no significant gap; the matrix may be rank deficient. Throughout this paper, · 2 stands for the Euclidean vector norm. The vector b ∈ R m represents data that is corrupted by an unknown error e ∈ R m , which may stem from measurement or discretization inaccuracies. We will refer to the error e as "noise." Problems of this kind arise, for instance, from the discretization of Fredholm integral equations of the first kind and are commonly referred to as linear discrete inverse ill-posed problems; see, e.g., [17,22,23] for discussions on discrete inverse ill-posed problems. We are primarily interested in the situation when m ≤ n, but the methods described also can be applied when m > n. Let b true denote the unknown error-free vector associated with b, i.e.: and let R(A) denote the range of A. We will assume that b true ∈ R(A) and that a fairly accurate bound for the error: is known. This allows application of the discrepancy principle; see below.
Let A † denote the Moore-Penrose pseudo-inverse of A. We would like to determine an accurate approximation of u true = A † b true , i.e., of the minimum-norm solution of: min u∈R n Au − b true 2 .
We remark that the exact solution of (1) can be expressed as A † b. Due to the error e in b and the clustering of the singular values of A at the origin, the vector: typically is dominated by the propagated error A † e and, therefore, is not a useful approximation of u true . A possible approach to reducing the propagation of the error e into the computed solution when m < n and b ∈ R(A) is to seek a sparse solution of (1). This can be achieved by minimizing the 1 -norm of the computed solution, i.e., by solving the constrained minimization problem: min subject to Au=b where |u i |, u= [u 1 , u 2 , . . . , u n ] T .
Here and throughout this paper, the superscript T denotes transposition. The solution of (3) might not be unique, since the 1 -norm is not strictly convex. Uniqueness of the solution can be ensured by replacing (3) by: where μ > 0 and 0 < δ < 1/ρ(A T A) are user-defined constants, with ρ(M) denoting the spectral radius of the square matrix M. The upper bound for δ secures convergence of the Bregman iterations defined below. We will refer to the parameter μ > 0 in (4) as the regularization parameter. One of the most popular algorithms for the solution of (4) is the linearized Bregman algorithm, which is an iterative method; see, e.g., [3,12,13,32,35] or below. The solutions of many linear discrete ill-posed problems (1) have a sparse representation in a suitably chosen basis. For instance, in image restoration problems, images usually have sparse representations in terms of wavelets or framelets. To make use of the sparsity, we transform the problem (4) so that its solution has a sparse representation.
The iterates generated by the linearized Bregman algorithm might converge only slowly to the solution of (4). Its application therefore may be quite expensive for some problems. This paper describes an approach to reduce the computational cost of Bregman iteration. Specifically, the problem to be solved is projected into a Krylov subspace of small dimension d min{m, n} by applying d steps of Golub-Kahan bidiagonalization to the matrix A. The dimension d is chosen large enough so that the space contains a vector u * ∈ R n that satisfies the discrepancy principle, that is: where satisfies (2) and τ ≥ 1 is a user-supplied constant that is independent of . Once we have constructed the appropriate subspace, we solve (4) there. Since the dimension d of the subspace selected is usually much smaller than min{m, n}, the iterations with the Bregman algorithm in this space are cheaper to carry out than in R n .
In many applications, it is known that the desired solution u true lies in a closed and convex set. In this situation, it is generally beneficial to impose constraints on the Bregman algorithm such that the generated iterates lie in this closed and convex set. For instance, in image restoration problems, the entries of the desired solution represent pixel values of the image. Pixel values are nonnegative; therefore, it is generally meaningful to solve the constraint minimization problem: instead of (4). When the desired solution u true is nonnegative, it is usually beneficial to impose a nonnegativity constraint on the computed solution of (1); see [1,6,15,29,33,36] for illustrations. In particular, the vector u + μ is usually a more accurate approximation of u true than u μ . We remark that a closed form for u + μ is generally not available. Section 3 describes a solution method for the problem (6), based on first projecting the problem into a Krylov subspace of fairly small dimension and then projecting computed approximate solutions into the nonnegative cone. This paper is organized as follows. Section 2 presents the linearized Bregman algorithm and discusses how to include a transformation to the framelet domain. In Section 3, we describe our projected method and discuss the use of a nonnegativity constraint. A faster converging variant of the unconstrained Bregman iterations is briefly discussed in Section 4, and Section 5 presents a few numerical examples that illustrate the performance of the methods described in this paper. Finally, Section 6 contains concluding remarks.

The linearized Bregman algorithm
The linearized Bregman algorithm was introduced in [10,35]. It is designed to solve problems of the form: min u∈R n {J (u) : Au = b}, where J (u) is a continuous, convex functional. We briefly review some properties of the linearized Bregman algorithm. Let D p J (u, v) denote the (nonnegative) quantity: is an element of the subgradient of the functional J at the point v, and u, w denotes the standard inner product of elements u, w ∈ R n . The quantity D p J (u, v) is commonly referred to as the Bregman distance [5,27] based on the convex functional J between the points u and v. Note that the Bregman distance in general is not a metric in the usual sense, since it does not satisfy the triangle inequality and it is not symmetric, i.e.,  1 We will assume that m ≤ n and that A is a surjective matrix. Then, the linear system of equations Au = b has at least one solution for any right-hand side b. Given u 0 = v 0 = 0, the linearized Bregman iteration can be expressed as: for k = 0, 1, . . . . These iterations can be written as: see [11,12] for details. The special case when J (u) = u 1 is of particular interest to us. Then: where T μ (v) denotes the soft-thresholding operator, i.e.: We summarize the linearized Bregman algorithm for J (u) = u 1 in Algorithm 1.
Algorithm 1 is concise, simple to program, and requires only matrix-vector product evaluations, vector additions, and soft-thresholding. The iterations are terminated when two consecutive iterates are sufficiently close; see Section 5 for details.
We note that Algorithm 1 may require many iterations to give an accurate approximation of the solution of (4); see below. Moreover, in some applications, the matrix-vector product evaluations with A and A T may be expensive. Applications of the algorithm include basis pursuit problems, which arise in compressed sensing and allow images and signals to be reconstructed from small amounts of data.
The condition number of A with respect to the spectral matrix norm is defined as the ratio of the largest to smallest singular values of A. A matrix is said to be ill-conditioned when this ratio is large. When the matrix A is ill-conditioned, the convergence of the sequence u 1 , u 2 , . . . generated by Algorithm 1 to the solution of (4) may be very slow. This prompted Cai et al. [13] to propose the use of a preconditioner. The preconditioner described in [13] is attractive to use for certain matrices A. An approach based on replacing the stationary iteration in Algorithm 1 by a nonstationary one to speed up the convergence has recently been discussed by Huang et al. [26]. Numerical aspects of the latter kind of iterations are considered in [7]. Moreover, extensions of the method proposed in [26] were considered in [4,14]. We also note that when A is severely ill-conditioned and the vector b is contaminated by noise, the iterates generated by Algorithm 1 do not converge to u exact with increasing iteration number. More precisely, there is an index such that the first iterates u i approach u exact as i increases and is bounded by , but the iterates u i move away from u exact as i > increases. This behavior of the iterates is commonly referred to as semiconvergence. This difficulty can be remedied by terminating the iteration process sufficiently early. Early termination of the iterations can be achieved with the aid of the discrepancy principle, but other stopping criteria also can be used.
We conclude this section with a discussion on the application of framelets to represent the solution. Many solutions of interest have a sparse representation in terms of framelets; see, e.g., [8,12,13,26]. Framelets are frames with local support.
The set of rows of W is said to be a tight frame for R n if ∀u ∈ R n it holds: where w j ∈ R n is the j -th row of W (written as a column vector), i.e., W = [w 1 , w 2 , . . . , w r ] T . The matrix W is called an analysis operator and W T a synthesis operator.
Equation (9) is equivalent to the perfect reconstruction formula x = W T y, y = W x, i.e., W is a tight frame if and only if W T W = I . In general, W W T = I , unless r = n and the framelets are orthogonal.
We can transform our given linear discrete ill-posed problem into the framelet domain by using the identity W T W = I : inserting this identity into Au = b yields: Let Z = AW T and y = W u. Then, the above equation can be written as The entries of the vector y are the framelet coefficients of the solution. In many applications, the vector y is sparse. Linearized Bregman-type iteration, which aims to determine a sparse solution, is a suitable iterative solution method. Note that the matrix Z is not explicitly formed when applying Algorithm 1. Since typically the matrix W is very sparse, the evaluations of matrix-vector products with W and W T are very cheap. Thus, the computational cost of transforming a linear discrete illposed problem to a framelet domain is almost negligible.

Projection into a Krylov subspace
We seek an approximate solution of the problem (1) in a Krylov subspace: n}. An orthonormal basis for this space is constructed with the Golub-Kahan bidiagonalization method applied to the matrix A with initial vector b; see, e.g., [21]. Application of steps of Golub-Kahan bidiagonalization gives the decompositions: where U +1 ∈ R m×( +1) and V ∈ R n× have orthonormal columns, the first column of U +1 is b/ b 2 , and the matrices B +1, ∈ R ( +1)× and B , ∈ R × are lower bidiagonal; the matrix B , is the leading × submatrix of B +1, . The columns of V , for = d, span the Krylov subspace (10) We tacitly assume that d is sufficiently small so that the decompositions (11) exist for = d. This is the generic situation. If this condition does not hold, then the computations simplify. This situation is rare and we will therefore not dwell on it further. We would like to choose d as small as possible, but such that the discrepancy principle (5) can be satisfied by an element in K d (A T A, A T b), i.e., we would like d to satisfy: Once we have determined d, we substitute (11) with = d into (1) to obtain: where e 1 = [1, 0, . . . , 0] T denotes the first axis vector. Here, (a) follows by substituting the decomposition (11), and (b) follows from the facts that the columns of U d+1 are orthonormal and U T d+1 b = ||b||e 1 . Let W ∈ R r×n be a framelet analysis operator, define: We would like to apply linearized Bregman iteration to solve: where z = W V d y. These iterations can be expressed as: which can be written in the form: The sequence z 1 , z 2 , . . . converges to the solution of (12). Since the original (large) problem has been projected into a subspace of small dimension, the iterations generally do not display semiconvergence. We observe that the large matrix K does not have to be explicitly formed to carry out the iterations (13). In fact, all required matrix-vector product evaluations involve only fairly small or sparse matrices. We refer to the algorithm defined by (13) as the Projected Linearized Bregman (PLB) algorithm. Convergence is secured for . This means that the PLB algorithm allows a wider range of δ-values than the linearized Bregman iteration (Algorithm 1). In particular, the PLB method may give a convergent sequence of iterates also when linearized Bregman iteration does not. Moreover, the small size of B d+1,d makes it easy to compute ρ(B T d+1,d B d+1,d ) and thereby to determine a bound for the parameter δ. We summarize the computations of the PLB iterations in Algorithm 2, where, with slight abuse of notation, we use u k instead of z k . Iterations with the algorithm are terminated when consecutive iterates are sufficiently close; see Section 5.

Nonnegativity constraint
In many applications, such as medical imaging and astronomy, the exact solution of (1) is known to live in a closed and convex set . Often approximations of higher accuracy of the desired solution can be determined by constraining the iterates of the PLB algorithm to . In this section, as well as in the computed examples presented in Section 5, the set is chosen to be the nonnegative cone: However, the theory developed in the following easily can be adapted to more general closed and convex sets.
Define the indicator function i 0 for 0 : We insert the nonnegativity constraint on u = W T z into (12) to obtain: To solve this problem, we introduce the proximal operator for Definition 2 Let ⊆ R n be a closed and convex set, and let u ∈ R n . The metric projection of u onto is given by: In particular, the metric projection onto 0 can be obtained by If W = I , then the proximal operator for J in (14) can be expressed as: Eq. (15) is a known result from [30] and can be derived with the help of proximal operator theory. We now derive the proximal operator for J in (14) when W = I . Let and let i W be the indicator function for the set W . Then It remains to discuss the evaluation of the operator P W (z). We have: where (a) follows from the fact that the columns of the matrix W are orthonormal. Hence, W W T and I − W W T are orthogonal projectors onto complementary subspaces of R r .
We are now in a position to formulate the Projected Nonnegative Linearized Bregman (PNBL) algorithm, which is presented as Algorithm 3. The stopping criterion for the algorithm is the same as for the other algorithms.
It is shown in [34] that linearized Bregman iteration is equivalent to gradient descent applied to the dual problem. This result ensures the convergence of our method to the solution of where

Further acceleration of the iterations
As mentioned above, the PLB algorithm is computationally cheaper than the LB algorithm. The rate of convergence of the iterates generated with the latter algorithm is O(1/k), where k denotes the number of iterations. Huang et al. [25] proposed an accelerated version of the LB algorithm with a rate of convergence of O(1/k 2 ). This section describes a PLB algorithm that incorporates the acceleration approach of Huang et al. [25]. We refer to this method as the Accelerated PLB (APLB) algorithm. Its performance is illustrated in Section 5.
The convergence results in [25] can be easily extended to the APLB algorithm. We therefore do not present a proof of its convergence properties. Furthermore, the acceleration approach due to Huang et al. [25] also can be applied in the PNLB algorithm. This gives the Accelerated PNLB (APNLB) algorithm. The latter algorithm is obtained by replacing u k+1 = δT μ (z k+1 ) by u k+1 = δP W (T μ (z k+1 )) in the APLB algorithm.

Numerical experiments
This section presents a few numerical examples that illustrate the performance of the methods discussed in the previous sections. We consider the restoration of images that have been contaminated by blur and noise. Continuous space-invariant image deblurring can be formulated as a Fredholm integral of the first kind, i.e., as an integral equation of the form: where g represents a blurred, but noise-free, image, f is the unknown image that we would like to recover, and K is a smooth kernel with compact support. The integral operator in (18) is compact. Therefore, the solution of (18) is an ill-posed problem. Discretizing (18) gives a problem of the form (1), with a matrix A that is the sum of a block Toeplitz with Toeplitz block matrix and a correction of small norm due to the boundary conditions that are imposed; see, e.g., [24] for more details on image deblurring. We use the same tight frames as in [7,13,26], i.e., the system of linear B-splines. This system is formed by a low-pass filter W 0 ∈ R n×n and two high-pass filters W 1 , W 2 ∈ R n×n , whose corresponding masks are: The analysis operator W in one space-dimension is derived from these masks and by imposing reflexive boundary conditions to ensure that W T W = I . The so-determined filter matrices are: The corresponding analysis operator W in two space-dimensions is given by: where ⊗ denotes the Kronecker product. This matrix is not explicitly formed. We note that the evaluation of matrix-vector products with W and W T is inexpensive because the matrix W is very sparse. In our numerical tests, we fix can be computed inexpensively since the matrix B d+1,d of our projected problem is of fairly small size. We run the algorithms for different values of the parameter μ, and choose the μ-value that yields the smallest relative restoration error (RRE), This makes it easy to compare the performance of the algorithms of the present paper with other methods discussed in the literature. However, it is possible to determine the parameter μ adaptively during the computations; see [26]. A discussion on the roles of the parameters μ and δ can be found in [7]. We terminate the iterations with Algorithms 2 and 3 when two consecutive iterates are sufficiently close, i.e., when The error e in the data vector b is modeled by white Gaussian noise. We refer to the ratio: σ = e 2 Au true 2 as the noise level. We set the parameter τ in the discrepancy principle (5) to 1.01. Algorithms 2 and 3, and their accelerated variants, are compared to the methods IRfista, IRirn, IRhybrid fgmres, IRnnfcgls, and IRhtv using MATLAB codes provided in [18]. IRfista is a first-order optimization method that solves a minimization problem of the form: where C denotes a constrained set defined, e.g., by box or energy constraints, and u (0) is the initial approximate solution vector. For simplicity, it is set to be the zero vector, i.e., u (0) = 0; see [2]. IRirn implements an iteratively reweighted norm approach with penalized restarted iterations for computing a 1-norm penalized solution; see [31]. IRhybrid fgmres applies a flexible version of the solution subspace used in IRhybrid gmres, and incorporates an iteration-dependent preconditioner that aims to minimize the 1 -norm of the computed solution; see [18] for more details. IRnnfcgls is a flexible conjugate gradient least squares method for solving nonnegatively constrained least squares problems; the method is proposed in [20]. IRhtv is a penalized restarted iteration method that incorporates a heuristic total variation penalization term described in [19].
To ensure a fair comparison, we provide all the considered methods with the same information, including the noise level and the optimal value of the regularization parameter μ.
Since IRnnfcgls semiconverges, one may need to tune the number of the iterations and force the iterations to stop before the iterates converge to an unregularized least squares solution that might be a poor reconstruction of the desired solution. We stop the iterations as soon as the discrepancy principle is satisfied. All computations are carried out in MATLAB R2018a with about 15 significant decimal digits running on a desktop computer with core CPU Intel(R) Core(TM)i7-4470 @3.40GHz with 8.00GB of RAM.

Comparison of the LB and PLB algorithms
We first illustrate that projection into a Krylov subspace can be beneficial both in terms of computational efficiency and quality of the computed restoration especially of large-scale problems. Consider the exact telescope image in Fig. 1a. It is made up of 986 × 986 pixels. We blur this image with a Gaussian PSF (shown in Fig. 1b). We then add 1% white Gaussian noise and obtain the blur and noise contaminated telescope image in Fig. 1c. The iterates computed by the standard LB method, without projection to a Krylov subspace, show semiconvergence. We therefore terminate the iterations with this method with the discrepancy principle, i.e., we terminate the iterations as soon as: Figure 2a shows the reconstruction with of telescope image in Fig. 1c with LB algorithm, while the reconstruction by PLB is shown in Fig. 2b. Table 1 reports results obtained with the LB and PLB methods for different noise levels. The table shows that projection into the Krylov subspace significantly accelerates the method and improves the quality of the reconstructed image.

Comparison of the PLB and PNLB methods
We would like to illustrate the effect of projecting onto the nonnegative cone. With this aim, we apply the PLB and PNLB methods to restore the contaminated satellite image of Fig. 3c. It is obtained by applying motion blur described by a motion PSF (see Fig. 3b) to the "exact" image of Fig. 3a and then adding 5% white Gaussian noise. Table 2 displays results for the PLB and PNLB methods. We can observe that the use of nonnegativity constraints improves the quality of the reconstruction. The Krylov subspaces used for both methods are the same. We note that the number of iterations needed for the PNLB method is slightly larger than for the PLB method. This is usually the case for methods with nonnegativity constraints. Figure 4 shows blowups of the reconstructions obtained with the two methods. Visual inspection of the images shows the PNLB method to be able to provide a uniform reconstruction of the black sky behind the satellite. Moreover, the PLB method generates ringing effects around the edges of the satellite that are not present in the reconstruction computed by the PNLB method.  Since the PLNB method is more accurate than the PLB method, we focus on the former method in the following.

Barbara
We consider the Barbara image in Fig. 5a and blur it with the motion PSF shown in Fig. 5b. We add 1% white Gaussian noise to the blurred image. This gives the blurred and noise-contaminated image in Fig. 5c. Table 3 displays results obtained with the PNLB and other methods described in [18] for several noise levels from 0.1 to 15%. The PNLB algorithm can be seen to outperform the other methods in terms of quality of the reconstruction. This is confirmed by visual inspection of the reconstructions shown in Fig. 6 with 1% noise added.
We can observe that the PNLB method is able to accurately reconstruct the exact image.
Cameraman We turn to the cameraman image shown in Fig. 7a. The exact image is blurred by a PSF that models out-of-focus blur; the PSF is shown in Fig. 7b. The blurred and noise-contaminated image with 2% white Gaussian noise is shown in Fig. 7c.
In Table 4, we report the RRE of the reconstructions obtained with the PNLB and other methods. The PNLB method consistently outperforms the other methods, in particular for higher noise levels. This is confirmed by visual inspection of the reconstructions shown in Fig. 8. For anisotropic blurs, the choice of the Krylov subspace as in IRhybrid fgmres may not suitable. A more relevant choice of the Krylov subspace for these kinds of blurs is described in [16].
Tomography In this example, we consider a synthetic tomography problem, where the data are the Radon transform of the attenuation coefficients of some scanned object; for details on computerized tomography, see, e.g., [9]. We consider parallel beam tomography, where K parallel X-ray beams are sent through an object at different angles φ k with k = 1, 2, . . . , K. The measured data b j,k , that are known as the sinogram, is the line integral of the attenuation coefficient of the object along the j -th beam at angle φ k . We generate the synthetic data using the Matlab program package We also report the dimension of the considered Krylov subspace and we show the fraction of time required to its computation     [18]. More specifically, we use the command PRtomo(n, options), set the dimension n of the image to 256 × 256, and consider 90 angles equispaced between 0°and 179°, and 362 beams. This gives an underdetermined system of equations with a matrix A ∈ R 32580×65536 . We comment on the choice of the dimension of the Krylov subspace used in the algorithms described in this paper. The algorithms illustrate the computational benefits of determining an approximate solution of the problem (1) by solving (12) in a Krylov subspace of fairly small dimension d. In all computed examples above, we used the discrepancy principle to determine the value d, which we here will refer to as d dp . It is illustrated in [28] that in the context of Tikhonov regularization with the regularization parameter determined by the discrepancy principle, and the low-dimenional Krylov subspace is determined by a few steps by the Arnoldi process (instead of by Golub-Kahan bidiagonalization), the quality of the computed solution may be increased somewhat by carrying out a few more Arnoldi steps than the smallest number necessary to satisfy the discrepancy principle. Similarly,  it may be possible to improve the quality of the computed solution determined by the algorithms of the present paper somewhat by taking a few more than d = d dp bidiagonalization steps. However, it is difficult to provide simple guidelines for how much larger the number of steps, d, should be than d dp . Moreover, the improvement in quality of the computed solution by letting d > d is modest. The following example provides an illustration. Figure 9a shows the exact attenuation coefficients and Fig. 9b displays the associated noise-free sinogram. We add 1% and 5% white Gaussian noise in the numerical examples reported in Table 5. The table shows small improvements in the quality of the reconstruction by increasing the dimension of the solution subspace. The number of iterations shown in parentheses close to the error level shows (d dp ), the number of iterations needed to satisfy the discrepancy principle. Figure 10 depicts the reconstructions of the solution obtained determined by the PNLB method with d = d dp when adding 1% noise to the sinogram and compares this reconstruction with the one determined by the PNLB method with d = d dp + 5. Since the gain by choosing d > d dp is not very large, and it is poorly understood how much larger d should be chosen than d dp , we propose to choose d = d dp .

Comparison of PLB (PNLB) and accelerated PLB (accelerated PNLB)
The accelerated PLB method is described by Algorithm 4. We also apply the PNLB and APNLB methods; the latter is described in Section 4. These four methods are compared in Table 6 for the Barbara, Cameraman, and Satellite test problems with 1% noise. For the Satellite test problem, the PSF is the same as shown in Fig. 3. We can observe (a) (b) Fig. 10 Tomography test problem restoration by a PNLB(d = d dp ), b PNLB(d = d dp + 5) with 1% noise that the acceleration strategy reduces the computing time significantly. The RRE is reduced as well, but not by much.

Conclusions
This paper proposes that the linearized Bregman method be a projected problem into a Krylov subspace of fairly low dimension. This is shown to reduce the computing time significantly, and to increase the quality of the computed solution somewhat. Unconstrained iterations as well as iterations constrained to a convex set are considered. The imposition of convex constraints may increase the quality of the computed solutions, and in our experience such constraints do not increase the computational burden significantly. The constrained projected linearized Bregman iterative method of this paper is compared with several methods from IR Tools [18] for the restoration of 2D images and was found to be competitive.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommonshorg/licenses/by/4. 0/.