Asymptotic Analysis and Consistency¶
February 2017
In this notebook we discuss the asymptotic properties of decision rules. After a general introduction we restrict attention to empirical loss minimizing decision rules, establish sufficient conditions for consistency to hold and discuss the rate at which the convergence takes place.
- Consistency of a decision rule states that the corresponding empirical loss converges to the true loss in probability as the sample size grows to infinity.
- In the case of empirical loss minimization, consistency is tightly linked to the uniform law of large numbers that we present in detail.
- We introduce tail and concentration bounds to establish the uniform law of large numbers and analyze the (non-asymptotic) rate at which the convergence takes place.
Introduction¶
Knowing the true mechanism \(P\), while one faces a decision problem \((\mathcal{H},L,\mathcal{A})\), naturally leads to the best in class action \(a^{*}_{L, P, \mathcal{A}}\) as the optimal action within the prespecified class \(\mathcal{A}\). Although in reality we do not know \(P\), it is illuminating to consider this case first as we naturally require that at least with a sufficiently large (in fact, infinite) sample, the true mechanism—from a statistical point of view—can be revealed. The property that guarantees this outcome is the ergodicity of the assumed statistical models.
This argument suggests to use the best in class action, \(a^{*}_{L, P, \mathcal{A}}\), as the optimal large sample solution. In other words, from any sensible decision rule a minimal property to require is that as the sample size grows, the distribution of the decision rule converges to a degenerate distribution concentrated at the point \(a^{*}_{L, P, \mathcal{A}}\).
As an example, consider again the MLE estimator in the coin tossing problem for which the above property is satisfied. The following figure represents how the different confidence bands associated with the induced action distribution evolve as the sample size goes to infinity. Apparently, for sufficiently large sample sizes, the confidence bands concentrate around the true value, which, due to the correct specification is equivalent to the best in class action.
This property of the decision rule is called consistency. One of the main objectives of this notebook is to investigate the conditions under which it can be established.
Given that asymptotically the true \(P\) can be learned, a natural question to ask is why not to set \(\mathcal{A}\) large enough so as to guarantee \(\gamma(P)\in\mathcal{A}\), i.e. a correctly specified model. We will see the sense in which requiring consisteny ties our hands in terms of the “size” of \(\mathcal{A}\).
Although it is hard to provide generally applicable sufficient conditions for consistency, roughly speaking, we can identify two big classes of decision rules for which powerful results are available.
- Bayes decision rules
- Frequentist decision rules building on the empirical distribution \(P_n\), where
and \(\mathbf{1}\{ A \}\) is the indicator function of the set \(A\).
In this notebook we will focus exclusively on the latter approach considering decision rules that assign actions by minimizing the empirical analog of the population loss. Hence, the procedure is labelled by the name: empirical loss minimization or analog estimation.
Consistency of decision rules¶
To start out our asymptotic inquiry, we first define consistency in a more precise manner than we did before. There are two, slightly different notions depending on the tractability and objectives of the decision problem at hand.
- Consistency in terms of the loss function: a decision rule \(d: \mathcal{S} \mapsto \mathcal{A}\) is consistent in terms of the loss function relative to \((\mathcal{H}, \mathcal{A})\), if for all \(P \in \mathcal{H}\),
Consistency in terms of the action: a decision rule \(d: \mathcal{S} \mapsto \mathcal{A}\) is consistent in terms of the action relative to \((\mathcal{H}, \mathcal{A})\), if for all \(P \in \mathcal{H}\),
\[m\left(d\left(Z^n\right), a^*_{L, P, \mathcal{A}}\right) \ \ \underset{n \to \infty}{\overset{\text{P}}{\rightarrow}} \ \ 0.\]
where \(m(\cdot, \cdot)\) is a metric on the action space \(\mathcal{A}\). The necessary condition—in the case of analog estimators—for this notion of consistency is the identifiability of \(a^*_{L, P, \mathcal{A}}\) that we define as follows:
Identification:
\(a^*_{L, P, \mathcal{A}}\) is identified relative to \((P, \mathcal{A})\) if \(a^*_{L, P, \mathcal{A}}\) is the unique minimizer of \(L(P, \cdot)\) over \(\mathcal{A}\).
\(a^*_{L, P, \mathcal{A}}\) is (uniformly) identified relative to \((\mathcal{H}, \mathcal{A})\) if it is identified relative to \((P, \mathcal{A})\) for all \(P\in\mathcal{H}\).
Under identification, the two notions of consistency are equivalent. As the above definitions suggest, however, the former is more general to the extent that it also allows for partially identified statistical models. Unless otherwise noted, we will work with consistency in terms of the loss function and call it simply consistency.
In the above definitions, the set of assumed statistical models \(\mathcal{H}\) plays a key role: it outlines the set of distributions under which the particular notion of convergence is required. Ideally, we want convergence under the true distribution, however, because we do not know \(P\), the “robust” approach is to be as agnostic as possible regarding \(\mathcal{H}\). The central insight of statstical decision theory is to highlight that this approach is not limitless: one needs to find a balance between \(\mathcal{H}\) and \(\mathcal{A}\) to obtain decision rules with favorable properties.
Consistency has strong implications for the risk functional in large samples: the degenerate limiting distribution of the decision rule implies that asymptotically the variability of the decision rule vanishes and so
Uniform law of large numbers¶
As mentioned before, in this notebook we are focusing on decision rules arising from empirical loss minimization. The basic idea behind this approach is to utilize the consistency definitions directly, but instead of using the quantity \(L(P, a)\) that we cannot actually evaluate, subsitute the empirical distribution into the loss function and work with the empricial loss \(L(P_n, a)\) instead.
REMARK: The empirical loss is not defined, if \(P_n\) is not in the domain of \(L\)—as is the case, for example, with non-parametric density estimation. Then, one has to either extend the domain of \(L\) or map \(P_n\) to the original domain of the loss function \(L\). An excellent discussion can be found in [Manski-1988] .
Given that the loss function is continuous in its first argument, the law of large numbers (LLN), accompanied with the continuous mapping theorem, implies
that is, for a fixed action \(a\), the emprical loss converges in probability to the true loss as the sample size goes to infinity. Notice, however, that consistency
- is not a property of a given action, but a whole decision rule, more precisely, it is about the convergence of the sequence \(\{d(z^n)\}_{n\geq 1} \subseteq \mathcal{A}\)
- requires convergence to the minimum loss (within \(\mathcal{A}\)) that we ought to take into account while generating decision rules
In the spirit of the analogy principle, decision rules minimizing the empirical loss can be defined as follows
where the dependence on the sample is embodied by the empirical distribution \(P_n\). The heuristic idea is that because \(d(z^n)\) minimizes \(L(P_n, \cdot)\), and \(P_n\) converges to \(P\), then “ideally” \(d(z^n)\) should go to \(a^{*}_{L, P, \mathcal{A}}\), the minimizer of \(L(P, a)\), as the sample size grows to infinity.
What do we need to ensure this argument to hold? First, notice that the standard law of large numbers is inadequate for this purpose. In order to illustrate this, we turn now to a concept closely related to empirical loss minimization: generalization.
Using the empirical loss as a substitute for the true loss while determining the decision rule, a critical question is how much error do we introduce with this approximation. The object of interest regarding this question is the following quantity defined for a given action \(a\) and realization of the sample \(z^n\)
We say that the action \(a\) generalizes well from a given sample \(z^n\), if the corresponding \(\xi(a, z^n)\) is small. Taking the absolute value is important: \(L(P_n, a)\) can easily be smaller than \(L(P, a)\) as it is in the case of overfitting.
Due to \(P_n\)‘s dependence on the particular sample, however, the quantity \(\xi(a, \cdot)\) is a random variable. It might be small for a given sample \(z^n\), but what we really need in order to justify the method of empricial loss minimization is that \(\xi\) is small for “most samples”, or more precisely
Since \(L\) is continuous in its first argument and \(P_n \to P\), this so called tail probability converges to zero for any fixed \(a\in\mathcal{A}\). The figure below displays such tail probabilities for the MLE estimator in the coin tossing example (with quadratic loss) for different actions as functions of the sample size.
One can see that even though the tail probabilities converge to \(0\) for all \(a\in\mathcal{A}\), the rate of convergence depends on the particular \(a\). In other words, \(\forall \varepsilon>0\) and \(\forall a\in\mathcal{A}\), there is an action dependent minimum sample size \(N(a, \varepsilon, \delta)\) (represented by the vertical solid lines) that we need in order to guarantee that the tail probability falls below \(\varepsilon\).
Suppose now that we have a decision rule and look at its induced sequence of actions \(\{a_n\}_{n\geq 1}\subset \mathcal{A}\) for a fixed realization \(z^{\infty}\). Again, for consistency, we need the associated sequence of tail probabilities converging to zero for “most \(z^{\infty}\)”.
- When the set \(\mathcal{A}\) has finitely many elements, this is not a problem: we can simply define
and observe that for all \(n\geq N(\varepsilon, \delta)\), the tail probabilities are smaller than \(\varepsilon\), for all \(a\in \{a_n\}_{n\geq 1} \subseteq \mathcal{A}\).
- However, because the critical sample size \(N(a, \varepsilon, \delta)\) depends on the action, if \(\mathcal{A}\) is “too big”, it is possible that there is no \(n\) so that \(n > N(a_n, \varepsilon, \delta)\), hence \(L(P_n, a_n)\) may never approach \(L(P, a_n)\).
A possible approach to avoid this complication is to require the existence of an integer \(N(\varepsilon, \delta)\) independent of \(a\), such that for all sample sizes larger than \(N(\epsilon, \delta)\)
This notion is called the uniform law of large numbers referring to the fact that the convergence is guaranteed simultaneously for all actions in \(\mathcal{A}\).
A special case – plug-in estimators¶
There are special cases where we do not need to worry about uniformity. When the true loss function has a minimizer \(a^{*}_{L, P, \mathcal{A}}\) that admits a closed form in the sense that it can be expressed as a continuous function of \(P\), the empirical loss minimizer is simply a sample analog of \(a^{*}_{L, P, \mathcal{A}}\). Effectively, there is no need to explicitly minimize the emprical loss, so in spirit, it is as if we kept a particular action fixed. In these cases the standard LLN is sufficient to establish consistency.
Sample mean:
Consider the quadratic loss function with the feature \(\gamma(P) = E[Z]\), i.e. the loss is \(L(P,a) = E[(a - E[Z])^2]\). Evidently, the minimizer of this quantity is \(E[Z]\). Although we could proceed by minimizing the empricial loss to derive the decision rule, we do not need to do that, because we know up front that it is equal to the sample analog of \(E[Z]\). The decision rule is the plug-in estimator \(d(z^n) = \frac{1}{n}\sum_{i=1}^{n}z_i\).
OLS estimator:
Suppose that \(Z=(Y, X)\) and consider the quadratic loss \(L(P, a) = E[(Y-a)^2 | X]\), where \(E[\cdot | X]\) is the expectation operator conditioned on \(X\). Assume that \((Y, X)\) follows a multivariate normal distribution, then the minimizer of \(L\) is given by \(a = E\left[(X'X)^{-1}\right]E[X'Y]\). Consequently, there is no need for explicit minimization, we can use the least squares estimator as a plug-in estimator for \(a\).
More generally, as the empirical loss minimizer is itself a functional, if the \(\min\) functional can be shown to be continuous on the space of empirical loss functions, i.e. the functional
is continuous, then an application of the continuous mapping theorem together with the Glivenko-Cantelli theorem (i.e. \(\lVert P_n - P \rVert_{\infty} \to 0\)) would yield consistency. For reference, see [vdVaart-2000].
Uniform law of large numbers and consistency¶
In more general nonlinear models, however, \(a^{*}_{L, P, \mathcal{A}}\) has no analytical form, so we cannot avoid minimizing the empirical loss in order to derive the decision rule. In these cases, guaranteeing the validity of uniform convergence becomes essential. In fact, it can be shown that consistency of any decision rule that we derive by minimizing some empirical loss function, is equivalent with the uniform LLN.
Theorem. [Vapnik-Chervonenkis-1971]: Uniform convergence
for all \(\varepsilon >0\) is necessary and sufficient for consistency of decision rules arising from empirical loss minimization over \(\mathcal{A}\).
Although this characterization of consistency is theoretically intriguing, it is not all that useful in practice unless we find easy-to-check conditions which ensure uniform convergence of empirical loss over a particular function class \(\mathcal{A}\). As a preparation to discuss these conditions, introduce first some notation
Almost all loss functions used in practice can be cast in the following form. There exist
- \(l : \mathcal{A}\times \mathbb{R}^d \mapsto \mathbb{R}^{m}\) and
- a continuous \(r : \mathbb{R}^{m} \mapsto \mathbb{R}_+\) such that
Continuity of \(r\) implies that in order to establish consistency it is enough to investigate the properties of the limit
Formally, this requires that the class of functions \(\mathcal{L}_{\mathcal{A}}:= \left\{l(a, \cdot) : a \in \mathcal{A} \right\}\) is a Glivenko-Cantelli class for \(P\).
Definition (Glivenko-Cantelli class): Let \(\mathcal{G}\) be a class of integrable real-valued functions of the random variable \(Z\) having distribution \(P\). Consider the random variable
We say that \(\mathcal{G}\) is a Glivenko-Cantelli class for \(P\), if \(\Vert P_n - P \Vert_{\mathcal{G}}\) converges to zero in probability as \(n\to\infty\).
The usefulness of this formulation comes from the fact that it allows us to bring to bear powerful techniques from empirical process theory [Pollard-1984]. This is because the random variable
can be considered as an empirical process indexed by the function class \(\mathcal{L}_{\mathcal{A}}\). For each action \(a\), let \(l_a:=l(a, \cdot)\) and note that \(l_a\) is a function of the random variable \(Z\). Using typical notation of the empirical process literature, we can rewrite the above absolute difference as
Notice that \(P_n l_a\) is a random variable because the empirical distribution is a function of the random sample, while \(Pl_a\) is just the expectation of \(l_a\) and so it is a non-random scalar.
Sufficient conditions for ULLN¶
Variables of the form \(\Vert P_n - P \Vert_{\mathcal{G}}\) are ubiquitos in statistics and econometrics and there are well-known sufficient conditions that guarantee its convergence.
For parametric estimation, probably the most widely used (at least in econometrics) sufficient condition includes the following three assumptions (or some form thereof). Suppose that the action space \(\mathcal{A}\) is indexed by a finite dimensional vector \(\theta\in\Theta \subset \mathbb{R}^{p}\). If
- \(\Theta\) is compact
- \(l(\theta, z)\) is a function such that \(l(\cdot, z)\) is continuous on \(\Theta\) with probability one
- \(l(\theta, z)\) is dominated by a function \(B(z)\), i.e. \(|l(\theta, z)|\leq B(z)\) for all \(\theta\in\Theta\), such that \(\mathbb{E}[B(Z)]<\infty\)
then \(\mathcal{L}_{\mathcal{A}} := \left\{l(a, \cdot) : a \in \mathcal{A} \right\}\) is a Glivenko-Cantelli class for \(P\) and so the estimator that it represents is consistent. Among others, these assumptions are the bases for consistency of the (Quasi-)Maximum Likelihood [White-1994] and the Generalized Method of Moments estimators [Hansen-1982].
A somewhat different approach focuses on the “effective size” of the class \(\mathcal{L}_{\mathcal{A}}\) and frames sufficient conditions in terms of particular complexity measures such as the Rademacher complexity, Vapnik-Chervonenkis dimension, covering/packing numbers, etc. The idea is to find tail bounds for the probability that \(\Vert P_n - P \Vert_{\mathcal{L}_{\mathcal{A}}}\) deviates substantially above the complexity of \(\mathcal{L}_{\mathcal{A}}\). In the following section we present the main ideas behind the derivation of non-asymptotic tail bounds.
An interesting necessary condition: If \(\mathcal{L}_{\mathcal{A}}\) is a collection of indicator functions and the data generating process is assumed to be i.i.d., a necessary and sufficient condition for distribution free uniform convergence is that the Vapnik-Chervonenkis complexity of \(\mathcal{L}_{\mathcal{A}}\) is finite.
Non-asymptotic bounds¶
As we have seen above, one way to establish consistency for analog estimators is to require uniform convergence of the empirical loss to the true loss over the entire action space, i.e. guarantee that the uniform law of large numbers holds. This section presents an approach to the laws of large numbers (uniform or “standard”) building on a finite sample perspective.
We study the concentration of centered averages around their means for different finite sample sizes. More generally, we want results of the form
OR
Such results are known as concentration inequalities. Ensuring that the centered average goes to a degenerate distribution on its mean—”perfectly” concentrates around it—establishes the law of large numbers. Moreover, studying concentration and tail bounds has the advantage that we obtain approximate rates of convergence as a byproduct. These rates of convergence will give us information regarding the minimum sample size above which generalization from the empricial loss to the true loss is justified.
First, we study how the concentration inequalities work for a single random variable. This is going to parallel the law of large numbers. Second, we study concentration inequalities applicable uniformly over a class of random variables, i.e. uniform bounds of the form
over a class of functions \(\mathcal{G}\). This is going to parallel the uniform law of large numbers. For ease of notation we present the results for a general class of measurable functions \(g \in \mathcal{G}\) – but remember that in almost all applications we will substitute it for \(\mathcal{L}_{\mathcal{A}}\).
This section builds on the material in [Wasserman-2016] and [Bousquet-2004].
Markov’s inequality¶
Markov’s inequality states that for any non-negative scalar random variable \(Z\) and \(t>0\) we have
The idea behind this inequality is fairly simple and in fact it follows from the following obvious inequality
illustrated by the figure below. Clearly, for any probability measure \(P\) over \(Z\) with a finite first moment Markov’s inequality can be established.
It follows from Markov’s inequality that for any strictly monotonically increasing non-negative function \(\phi\) and any random variable \(Z\) (not necessarily non-negative) we have that
Taking the centered random variable \(| Z - \mathbb{E}[Z]|\) and \(\phi(x) = x^q\) for some \(q>0\) leads to tail bounds expressed in terms of the moments of \(Z\).
Note that for \(q = 2\), this form delivers the Chebyshev inequality (see the right panel of the Figure). This approach to bounding tail probabilities for a wide range of possible \(P\) is quite general. Controlling higher order moments–restricting \(\mathcal{H}\), i.e. the range of probabilities to which the inequality holds–leads to (weakly) tighter bounds on the tail probabilities.
Chernoff bounds¶
A related idea is at the core of the so called Chernoff bound. For that one takes the transformation \(\phi(x) = e^{\lambda x}\) applied to the centered random variable \((Z - \mathbb{E}[Z])\) which yields
Minimizing the bound over \(\lambda\) (provided the moments exist) would lead us to the Chernoff bound
If the centered random variable is an iid sum of other random variables, the Chernoff bound gains additional structure.
Hoeffding bounds¶
Suppose first that the sample \(z^n\) is generated by an iid process and recall that
Bounding the tails via Chernoff’s method yields
where the equality follows from independece. Hence, the problem of deriving a tight bound boils down to bounding the moment generating function of
For obtaining bounds of moment generating functions, a particularly important class of random variables are the so called sub-Gaussian variables.
Definition. A random variable \(Z\) is called sub-Gaussian if there is a positive number \(\sigma\) such that for all \(\lambda \in \mathbb{R}\)
REMARK:: A Guassian variable with variance \(\sigma^2\) is sub-Gaussian with parameter \(\sigma\). There are other non-Guassian random variables which are sub-Gaussian – for example all bounded random variables.
The property of sub-Gaussianity is preserved by linear operations, which leads to the following important result
Theorem. (Hoeffding) Let the variables \(g(Z_i)\) be iid and sub-Gaussian with parameter \(\sigma\). Then, for all \(t>0\) we have that
For a single random variable \(g(Z)\), we see how the Hoeffding inequality is at the core of the law of large numbers. As \(n\) goes to infinity, the upper bound on the right goes to zero implying that the probability on the left must go to zero as well for all \(P\) that makes \(g(Z)\) sub-Gaussian. In fact, further inspection reveals that the upper bound also provides an exponential rate of convergence: \(t^2/(2\sigma^2)\)
However, in order to talk about concentration properties of decision rules, \(d: \mathcal{S}\mapsto\mathcal{A}\) we need bounds for tail probabilities applicable uniformly over the whole action space or alternatively, uniformly across \(\mathcal{L}_{\mathcal{A}}\). This consideration leads us to uniform bounds.
Uniform Tail and Concentration Bounds for classes of finite cardinality¶
As a first simple example we consider uniform tail bounds over sets of finite cardinality. Let \(\mathcal{G} = \{g_j : j = 1, \ldots, J\}\). A conservative estimate of the uniform tail bound in this case is the union bound.
Corollary. (Hoeffding union bound) Let the variables \(\{g_j(Z_i): j=1,\ldots, J\}\) be iid and sub-Gaussian with common parameter \(\sigma\). Then, for all \(t > 0\) we have
The difference between the uniform and individual Hoeffding bounds is just a scaling factor, \(J\). If there is only finitely many actions in \(\mathcal{A}\), then of course the function class \(\mathcal{L}_{\mathcal{A}}\) has finite cardinality. Our objective, however, is to extend the above analysis to action spaces with infinite cardinality. To this end, we need to find a better “measure” of the size of a function space than its cardinality. Next, we introduce one such complexity measure which proves to be extremely useful in the case of characterizing tail bounds for analog estimators.
Uniform tail bounds for classes of infinite cardinality - Rademacher complexity¶
In order to work with sets of infinitely many functions we would like to capture the size of these infinite sets for the purpose of statistical analysis. One such measure of statistical size is the Rademacher complexity of a class of real-valued functions.
For a given realization of a sample, \(z^n\), of size \(n\) consider the the set of vectors
This embodies the number of ways one can label points of a sample using functions in the class \(\mathcal{G}\). It is often called the projection of the function class \(\mathcal{G}\) to the sample \(z^n\). The empirical Rademacher complexity of \(\mathcal{G}\) for fixed \(z^n\) is defined as
where the expectation is taken with respect to the iid Rademacher random variables, \(\epsilon_i\) which take value in \(\{-1, 1\}\) with equal probability.
The Rademacher complexity of \(\mathcal{L}\) for sample size \(n\) is then defined as
where the expectations is taken with respect to the sample. Rademacher complexity has an intuitive interpretation. It is the average (across samples) of the maximum correlations between the vectors \(\big(g(z_1), \ldots, g(z_n)\big)\) and the pure noise vector \(\big(\epsilon_1, \ldots, \epsilon_n\big)_{z^n}\). The function class \(\mathcal{G}\) is too “large” (complex) for statistical purposes, if we can always choose a function, \(g\in\mathcal{G}\) that has high correlation with a randomly drawn noise vector, that is, when the corresponding Rademacher complexity does not go to zero as the sample size grows to infinity.
Illustration of Rademacher complexity¶
In the following we consider two examples. Although both examples use a function class that can be parametrized by a single free parameter, we will see that one of them has drastically smaller Rademacher complexity than the other.
Coin tossing example revisited
Consider again the coin tossing example with the quadratic loss function discussed before. In this case \(Z^n\) is an iid sample from a Binomial distribution parametrized with \(\theta\in[0, 1]\). The class of functions is given by the quadratic class
The following figure depicts the empricial Rademacher complexity \(\mathsf{R} \left(\mathcal{L}_{\mathcal{A}}(z^n) \right)\) along alternative sample paths (on the left) and the Rademacher complexity \(\mathsf{R}\left(\mathcal{L}_{\mathcal{A}}, n\right)\) for different sample sizes (on the right).
- Clearly, both \(\mathsf{R} \left(\mathcal{L}_{\mathcal{A}}(z^n) \right)\) and \(\mathsf{R}\left(\mathcal{L}_{\mathcal{A}}, n\right)\) converge to zero as the sample size grows to infinity.
- Rademacher complexity is nearly indistinguishable from Empirical Rademacher complexity and in fact, the latter does not show much variation across the different samples \(z^n\) (several lines lie on top of each other). This suggests that in the simple example of coin tossing, the different ensemble samples (with more than 300 data points) encode very similar information about the complexity of the function class used in the estimation.
Sinusoid classification
Consider next a classification problem, where the observable is \(Z=(Y, X)\) and assume that the binary random variable \(Y\)–taking values from \(\{-1, 1\}\)–depends on the covariate \(X\) in some way. Suppose that a statistician uses the following classifiers to cature this dependence
That is, the classifier boundary is given by sine functions, \(\sin(aX)\), parametrized by the frequency \(a\). For a given \(a\), one can determine the range of covariate values for which this classifier assigns the value \(1\) or \(-1\). As a result, choosing \(a\in\mathcal{A}\) is equivalent with choosing particular subsets of \(X\). To determine the optimal \(a\) we use the \(0/1\) loss.
The following figure represents the empirical loss minimizing classifiers for two random samples (depicted by the red dots) with different sizes. In order to have a closed form solution for the optimal classifier we are selecting the sample at convenient points. This is without loss of generality and useful for illustrative purposes. The shaded area indicates the ranges of \(X\), where the classifier assigns \(1\) or \(-1\).
- As we can see, by choosing a sufficiently high frequency \(a\) we can always find a curve which classifies the data perfectly, i.e. the in-sample predicitions are always “correct”.
- For better illustration, consider the empirical Rademacher complexity associated with the sample, \(z^n\), depicted by the red dots. Since \(\mathcal{L}_{\mathcal{A}}\) is always able to perfectly separate the sample, the (empirical) Rademacher complexity always takes its maximum value (one) irrespective of the sample size.
Consequently, for statistical purposes the family of sine curves is too complex. This example highlights that for general non-linear functions the number of free parameters—here only one—does not correspond to the complexity of the function class—which is infinity.
Uniform bounds using the Rademacher complexity¶
With the introduced concepts we are now capable to present an important concentration inequality for classes of infinite cardinality.
Theorem: For uniformly bounded functions \(\lvert g \rvert_{\infty} < B, \ \ \forall g \in\mathcal{G}\) and for each \(\eta>0\) we have that
and for the empirical Rademacher complexity
It is apparent from the above inequalities that the tightness of the finite sample uniform bounds will be (partly) determined by the Rademacher complexity. The change in Rademacher complexity as the sample size grows will determine the (non-asymptotic) rate of convergence. Hence, if \(R_n(\mathcal{G}) = o(1)\) then \(\Vert P_n - P \Vert_{\mathcal{G}} \to 0\) or put it differently, \(\mathcal{G}\) is a Glivenko-Cantelli class.
Notice that the second bound in \((**)\) is data dependent in the sense that it includes only variables that in principle, we can determine without knowing the true probability distribution.
Illustration of the tail bounds in the coin tossing example¶
An alternative way to express the uniform bounds is to specify a fixed tail probability \(\varepsilon\) and use the change of variable \(\varepsilon = 2 \exp\left(- \frac{2 n \eta^2}{B^2}\right)\) to obtain
This formulation of the bound is useful because it makes transparent the sense in which it is uniform over the action space \(\mathcal{A}\). Similarly, for fixed action \(a\), we can compute the sequence \(\{\delta_n(a)\}_{n\geq 1}\) that makes the following expression true for all \(n\)
Note that conceptually this is the same exercise that we did for tail probabilities above. The difference is that while there we fixed \(\delta_n=\delta\) for all \(n\) and treated \(\varepsilon\) (tail probability) as sample size dependent, here, we are switching the roles and investigating the implied \(n\)-dependent bounds for fixed tail probability \(\varepsilon\).
The left panel of the following figure compares the uniform bound derived from Rademacher complexity along with the \(\{\delta_n(a)\}\) sequences for different actions \(a\) in the coin-tossing example.
- The bound expressed in terms of Rademacher complexity clearly dominates the absolute difference between the empirical and true loss for all actions.
- We can see the sense in which the tail bound represents a worst-case viewpoint: by bounding the supremum of the difference between the empirical and true loss, one can be sure that generalization works uniformly well over the action space, but the bound is loose for most actions.
Calculation of the Rademacher complexity in \((*)\) requires the knowledge of the true distribution. In this sense, inequality \((**)\) provides a practically more useful bound. As we have seen above, this inequality incorporates the Empirical Rademacher complexity and uses a looser scaling factor in the upper bound. On the other hand, this bound is agnostic in the sense that it is applicable for any true distribution \(\theta\in[0,1]\), i.e. for any statistical model in \(\mathcal{H}\). The right panel of the above figure demonstrates this fact.
- For fixed \(a\), different \(\theta\) distributions induce different tail probabilities. The bound constructed from the Empirical Rademacher complexity works uniformly for all of such alternative true probabilities.
- One might consider this bound as a result of a worst-case analysis taking into account both the action space \(\mathcal{A}\) and the class of statistical models \(\mathcal{H}\).
Bounding expectations¶
Related strongly to the above tail bounds, one can also bound the expectation of the supremum of an empirical process using Rademacher complexity. This is often called symmetrization inequality.
Theorem: For any class of \(P\)-integrable functon class \(\mathcal{G}\), we have that
Unfortunately, computing the Rademacher complexity directly is only feasible in special cases (see one example below). There are various techniques however, which give bounds on the Rademacher complexity. For different classes of functions different techniques prove to be useful, so one usually proceeds on a case-by-case basis. The most common ways of bounding the Rademacher complexity are via the Vapnik-Chervonenkis dimension for binary functions and via metric entropy for bounded real valued functions.
The code for the simulations and producing the graphs can be found here.
References¶
| [Bousquet-2004] | Bousquet, O., Boucheron, S., & Lugosi, G. (2004). Introduction to statistical learning theory. In Advanced lectures on machine learning (pp. 169-207). Springer Berlin Heidelberg. |
| [Vapnik-Chervonenkis-1971] | Chervonenkis, A. and Vapnik, V. (1971). Theory of uniform convergence of frequencies of events to their probabilities and problems of search for an optimal solution from empirical data. Automation and Remote Control, 32, 207-217. |
| [Hansen-1982] | Hansen, L. P. (1982). Large sample properties of generalized method of moments estimators. Econometrica: Journal of the Econometric Society, 1029-1054. |
| [Manski-1988] | Manski, Charles (1988). Analog estimation in econometrics. Chapman and Hall, London. |
| [Pollard-1984] | Pollard, David (1984). Convergence of Stochastic Processes. Springer-Verlag. |
| [vdVaart-2000] | Van der Vaart, A. W. (2000). Asymptotic statistics (Vol. 3). Cambridge University Press. |
| [Wasserman-2016] | Wasserman, Larry (2016). Lecture notes for Statistical Machine Learning at CMU. Link |
| [White-1994] | White, Halbert (1994). Estimation, Inference and Specification Analysis (Econometric Society Monographs). Cambridge University Press. |


We offer experienced IT specialists to be involved in ground-breaking digital projects and IT novices to develop skills in our perspective workplace.


Consider the following function:
What value is returned by the
call mystery(n,a,d)?
(Either write a number, or write "infinite recursion".)
ANS
If you trace this function, you should find that d is added to it self n-1 times. Then in the nth time (the base case), a is added to the sum.


{% include "article/includes/levelMenu_layout_lg.html" %}
{% include "article/includes/levelMenu_layout_md.html" %}
{% include "article/includes/levelMenu_layout_sm.html" %}
{% include "article/includes/levelMenu_pdf.html" %}
{% include "article/includes/levelMenu_texts.html" %}
{% include "article/includes/levelMenu_abstracts.html" %}
{% include "article/includes/levelMenu_pdf.html" %}
{% include "article/includes/levelMenu_texts.html" %}
{% include "article/includes/levelMenu_abstracts.html" %}
{% trans %}Sumário{% endtrans %}
{% if article and article.pdfs|length == 1 %}
PDF
{% endif%}
{% include "article/includes/levelMenu_texts.html" %}
{% include "article/includes/levelMenu_abstracts.html" %}


|
MeterLogger
|
Go to the source code of this file.
Macros | |
| #define | INSTRUMENT_PORT 8760 |
| #define | INSTRUMENT_LENGTH 80 |
| #define | MDNS_NAME_LENGTH 68 |
| #define | DNS_SD_SERVICE "_services._dns-sd._udp.local" |
| #define | SERVICE_DESCRIPTION "PUCK PROTOCOL" |
| #define | PUCK_SERVICE_LENGTH 30 |
| #define | UUID_LEN 16 |
| #define | DS_VERS_LEN 2 |
| #define | DS_SIZE_LEN 2 |
| #define | MAN_ID_LEN 4 |
| #define | MAN_MODEL_LEN 2 |
| #define | MAN_VERS_LEN 2 |
| #define | SER_NUM_LEN 4 |
| #define | NAME_LEN 64 |
| #define | PUCK_DATASHEET_SIZE 96 |
| #define | UUID_OFFSET 0 |
| #define | DS_VERS_OFFSET UUID_LEN + UUID_OFFSET |
| #define | DS_SIZE_OFFSET DS_VERS_LEN + DS_VERS_OFFSET |
| #define | MAN_ID_OFFSET DS_SIZE_LEN + DS_SIZE_OFFSET |
| #define | MAN_MODEL_OFFSET MAN_ID_LEN + MAN_ID_OFFSET |
| #define | MAN_VERS_OFFSET MAN_MODEL_LEN + MAN_MODEL_OFFSET |
| #define | SER_NUM_OFFSET MAN_VERS_LEN + MAN_VERS_OFFSET |
| #define | NAME_OFFSET SER_NUM_LEN + SER_NUM_OFFSET |
Variables | |
| char * | PUCK_SERVICE = NULL |
| #define DNS_SD_SERVICE "_services._dns-sd._udp.local" |
Definition at line 21 of file puck_def.h.
| #define DS_SIZE_LEN 2 |
Definition at line 27 of file puck_def.h.
| #define DS_SIZE_OFFSET DS_VERS_LEN + DS_VERS_OFFSET |
Definition at line 37 of file puck_def.h.
| #define DS_VERS_LEN 2 |
Definition at line 26 of file puck_def.h.
| #define DS_VERS_OFFSET UUID_LEN + UUID_OFFSET |
Definition at line 36 of file puck_def.h.
| #define INSTRUMENT_LENGTH 80 |
Definition at line 15 of file puck_def.h.
| #define INSTRUMENT_PORT 8760 |
Definition at line 13 of file puck_def.h.
| #define MAN_ID_LEN 4 |
Definition at line 28 of file puck_def.h.
| #define MAN_ID_OFFSET DS_SIZE_LEN + DS_SIZE_OFFSET |
Definition at line 38 of file puck_def.h.
| #define MAN_MODEL_LEN 2 |
Definition at line 29 of file puck_def.h.
| #define MAN_MODEL_OFFSET MAN_ID_LEN + MAN_ID_OFFSET |
Definition at line 39 of file puck_def.h.
| #define MAN_VERS_LEN 2 |
Definition at line 30 of file puck_def.h.
| #define MAN_VERS_OFFSET MAN_MODEL_LEN + MAN_MODEL_OFFSET |
Definition at line 40 of file puck_def.h.
| #define MDNS_NAME_LENGTH 68 |
Definition at line 17 of file puck_def.h.
| #define NAME_LEN 64 |
Definition at line 32 of file puck_def.h.
| #define NAME_OFFSET SER_NUM_LEN + SER_NUM_OFFSET |
Definition at line 42 of file puck_def.h.
| #define PUCK_DATASHEET_SIZE 96 |
Definition at line 33 of file puck_def.h.
| #define PUCK_SERVICE_LENGTH 30 |
Definition at line 23 of file puck_def.h.
| #define SER_NUM_LEN 4 |
Definition at line 31 of file puck_def.h.
| #define SER_NUM_OFFSET MAN_VERS_LEN + MAN_VERS_OFFSET |
Definition at line 41 of file puck_def.h.
| #define SERVICE_DESCRIPTION "PUCK PROTOCOL" |
Definition at line 22 of file puck_def.h.
| #define UUID_LEN 16 |
Definition at line 25 of file puck_def.h.
| #define UUID_OFFSET 0 |
Definition at line 35 of file puck_def.h.
| char* PUCK_SERVICE = NULL |
Definition at line 19 of file puck_def.h.


数据结构 |
|
| struct | LOS_DL_LIST |
| Structure of a node in a doubly linked list. 更多... |
|
宏定义 |
|
| #define | LOS_DL_LIST_FIRST(pstObject) ((pstObject)->pstNext) |
| Point to the next node pointed to by the current node. |
|
| #define | OFFSET_OF_FIELD(type, field) ((UINT32)&(((type *)0)->field)) |
| Obtain the offset of a field to a structure address. |
|
| #define | LOS_OFF_SET_OF(type, member) ((long)&((type *)0)->member) |
| Obtain the pointer to a doubly linked list in a structure. |
|
| #define | LOS_DL_LIST_ENTRY(item, type, member) ((type *)((char *)item - LOS_OFF_SET_OF(type, member))) \ |
| Obtain the pointer to a structure that contains a doubly linked list. |
|
| #define | LOS_DL_LIST_FOR_EACH_ENTRY(item, list, type, member) |
| Iterate over a doubly linked list of given type. |
|
| #define | LOS_DL_LIST_FOR_EACH_ENTRY_SAFE(item, next, list, type, member) |
| iterate over a doubly linked list safe against removal of list entry. |
|
| #define | LOS_DL_LIST_FOR_EACH(item, list) |
| iterate over a doubly linked list. |
|
| #define | LOS_DL_LIST_FOR_EACH_SAFE(item, next, list) |
| Iterate over a doubly linked list safe against removal of list entry. |
|
| #define | LOS_DL_LIST_HEAD(list) LOS_DL_LIST list = { &(list), &(list) } |
| Initialize a double linked list. |
|
函数 |
|
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE VOID |
LOS_ListInit (LOS_DL_LIST *pstList) |
| Initialize a doubly linked list. |
|
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE VOID |
LOS_ListAdd (LOS_DL_LIST *pstList, LOS_DL_LIST *pstNode) |
| Insert a new node to a doubly linked list. |
|
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE VOID |
LOS_ListTailInsert (LOS_DL_LIST *pstList, LOS_DL_LIST *pstNode) |
| Insert a node to the tail of a doubly linked list. |
|
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE VOID |
LOS_ListDelete (LOS_DL_LIST *pstNode) |
| Delete a specified node from a doubly linked list. |
|
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE BOOL |
LOS_ListEmpty (LOS_DL_LIST *pstNode) |
| Identify whether a specified doubly linked list is empty. |
|
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE VOID |
osListDel (LOS_DL_LIST *pstPrevNode, LOS_DL_LIST *pstNextNode) |
| LITE_OS_SEC_ALW_INLINE STATIC_INLINE VOID |
LOS_ListDelInit (LOS_DL_LIST *pstList) |
| Delete initialize a doubly linked list. |


Name:
Password:
Document:
Aadhar card
Pan card
Gender:
Female
male
Hobbies:
Reading
Painting
Playing video games


RULES
Pull requests can be made in any participating GitHub or GitLab hosted repository/projects.
Look for the 'hacktoberfest' topic to know if a project is participating in Hacktoberfest.
You can sign up anytime between October 1 and October 31.
Just be sure to sign up on the official Hacktoberfest website for your pull requests to count.
Details
1)The pull request must contain commits you made yourself.
2)If a maintainer reports your pull request as spam, it will not be counted toward your participation in Hacktoberfest.
3)If a maintainer reports behavior that’s not in line with the project’s code of conduct, you will be ineligible to participate.
4)A pull request is considered approved once it has an overall approving review from maintainers, or has been merged by maintainers, or has been given the 'hacktoberfest-accepted' label.


Simple Centered
Stack's visual style is simple yet distinct, making it an ideal starting point for your project whether it be a basic marketing site, or multi-page company presence.
Copy Your JSON Here:
Paste Your CSV Here:
Purchase Stack
$18 USD
Each purchase of Stack comes with six months free support — and a lifetime of free content and bug-fix updates.
or check out more demos
Section Title Centered
Stack's visual style is simple yet distinct, making it an ideal starting point for your project whether it be a basic marketing site, or multi-page company presence.


All times are tentative and given in Singapore Time (UTC +8).
|
Time |
Subject |
Presenter |
Description |
|
00:00 - 00:35 |
Introduction / Understanding Table Structures (slides) |
Jay Pujara |
Tables found on the Web and other structured sources take diverse forms. Understanding cell-level features, functional blocks, and relational structure are an important task for modeling tabular data. |
|
00:40 - 01:15 |
Semantic Understanding of Tables (slides) |
Pedro Szekely |
Semantic models are the key to representing the knowledge in tables. Identifying entities, relationships, and meta-information in tables are important subproblems of semantic modeling. |
|
01:15 - 01:30 |
Break |
||
|
01:30 - 02:05 |
Representation Learning for Tables (slides) |
Huan Sun |
Representation learning approaches have demonstrated great success in solving multiple table understanding tasks. |
|
02:10 - 02:45 |
Bridging Tables and Language (slides) |
Muhao Chen |
Downstream tasks such as question answering, table retrieval, and summarization demonstrate the power of recent work in table understanding. |
|
02:45 - 03:00 |
Questions and Discussion |
All |
Time for asking questions, discussing your own research approaches, or learning more about practical aspects. |
A wealth of human knowledge is expressed in structured tables, across web pages, scientific articles, spreadsheets, and databases. This wealth of knowledge is mirrored by diversity in the vast number of layout structures, content types, formats, and surface forms used to express tables. Recent advances in representation learning and knowledge representation have made progress in exploiting structural regularities in tabular data to unlock this knowledge. In this tutorial, we provide a survey of these advances for a host of table understanding tasks, including table segmentation, semantic typing of cells, transforming tables to knowledge graphs, entity linking, and table retrieval tasks for question answering.
The structure of the tutorial will include three major modules. The first will provide attendees an introduction to the seminal work in organization of data in tables, and cover the major goals and approaches of computational systems that undertake table understanding. The second module will cover specific models used for table understanding tasks, such as table discovery, table segmentation and layout detection, cell classification and semantic typing, mapping tables to knowledge graphs and linking to known entities, and table retrieval in search and question answering. The final tutorial module will provide a primer for researchers who want to get involved with the table understanding community, providing them a guide to the most commonly used benchmark datasets and models, downstream applications and evaluations, and a sketch of the open problems in table understanding.
The target audience of this tutorial are researchers in computer science and data science who are interested in receiving a high-level overview of the recent research undertaken in table understanding. We expect the audience to be broadly familiar with important concepts in data science, such as machine learning concepts of training, testing, multi-class prediction, and basic ideas from representation learning approaches. After the tutorial, the attendees will be abreast of the fundamental ideas in the field, and be abreast of the current research advances enabling them to dive deeper and contribute to table understanding research.
Bibliography:


Projects
Gatsby's Pizzeria
{ React | Gatsby | SCSS | Styled-Components }
Reddit Clone
{ React | SCSS }
Colour Builder
{ React | SCSS | Styled-Components }
Nonstop News
{ React | Redux | SCSS | Styled-Components }
Game Atlas
{ React | SCSS }
Cryptosh
{ JavaScript | SCSS | Webpack }


| map_data {ggplot2} | R Documentation |
Easily turn data from the maps package in to a data frame suitable for plotting with ggplot2.
map_data(map, region = ".", exact = FALSE, ...)
map |
name of map provided by the maps package. These
include |
region |
name of subregions to include. Defaults to |
exact |
should the |
... |
all other arguments passed on to |
if (require("maps")) { states <- map_data("state") arrests <- USArrests names(arrests) <- tolower(names(arrests)) arrests$region <- tolower(rownames(USArrests)) choro <- merge(states, arrests, sort = FALSE, by = "region") choro <- choro[order(choro$order), ] ggplot(choro, aes(long, lat)) + geom_polygon(aes(group = group, fill = assault)) + coord_map("albers", at0 = 45.5, lat1 = 29.5) } if (require("maps")) { ggplot(choro, aes(long, lat)) + geom_polygon(aes(group = group, fill = assault / murder)) + coord_map("albers", at0 = 45.5, lat1 = 29.5) }


---
layout: post
title: Old cartoon about telecom competitors
date: '2013-09-06T17:31:09+02:00'
categories:
- Illustration
- Caricature
picture_url: https://film-Storyboards.tumblr.com/post/60484433932/an-old-cartoon-about-telecom-competitors-drawn-for
---
An old cartoon about telecom competitors drawn for the CEO of BASE KPN while working at Brandhome.


Input Redshift
Input Redshift is a database component, through which user can unload all kind of data from Amazon’s cloud data warehouse.
The Input Redshift component can be easily distinguished in the component palette.
An enlarged version of the same is depicted when dragged on the canvas.
For further reference click on the links below:


Notifications provides an instrumentation API for Ruby. To instrument an action in Ruby you just need to do:
ActiveSupport::Notifications.instrument(:render, :extra => :information) do render :text => "Foo" end
You can consume those events and the information they provide by registering a log subscriber. For instance, let‘s store all instrumented events in an array:
@events = [] ActiveSupport::Notifications.subscribe do |*args| @events << ActiveSupport::Notifications::Event.new(*args) end ActiveSupport::Notifications.instrument(:render, :extra => :information) do render :text => "Foo" end event = @events.first event.name #=> :render event.duration #=> 10 (in miliseconds) event.result #=> "Foo" event.payload #=> { :extra => :information }
When subscribing to Notifications, you can pass a pattern, to only consume events that match the pattern:
ActiveSupport::Notifications.subscribe(/render/) do |event| @render_events << event end
Notifications ships with a queue implementation that consumes and publish events to log subscribers in a thread. You can use any queue implementation you want.
| notifier | [W] |
# File /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/notifications.rb, line 54 54: def instrumenter 55: Thread.current["instrumentation_#{notifier.object_id}""instrumentation_#{notifier.object_id}"] ||= Instrumenter.new(notifier) 56: end


Solve for Good is a platform for social good organizations to describe and submit problems that need
data intensive help, and for volunteers to help solve those problems. Once the projects are submitted by the organization,
they go through a scoping process (done by scoping volunteers and guided by our
Data Science Scoping Process).
Once a project scope is finalized and reviewed, it becomes available for data science volunteers to start working on.
The finished work is reviewed by a QA team consisting of volunteers and staff of the organization that submitted the project
and given back to the organization as well as shared publicly on github.
Why did we create it?
Solve for Good comes out of our experience working with government agencies, non-profits, universities, volunteers, professionals,
students, and the private sector over the last several years. We repeatedly get contacted by governments,
non profits, and other social good organizations asking for help with data projects.
We also get smart, passionate individuals contacting us offering their help, often in a volunteer capacity,
on weekends, evenings, or for a few days or weeks.
Solve is our attempt at linking these two. We are just starting out, and looking for help in doing this better, and getting feedback from you.
How to join us
You can join us:
as a volunteer to help solve problems.
as an organization to submit problems.
as partners to help us expand the platform and provide resources to run it.
as corporations or foundations to loan volunteers and donate resources used in solving these problems.


zPass2 is a password app that helps you generate unique passwords for different websites and applications login.
It works locally in your iPhone and iPad and no one knows about it. It never saves any information.
All your passwords will be generated on the moment using one secret Keyword that you define.
Every time you need to login somewhere you use zPass2 to retrieve your password by typing your Keyword and a website or app name.
The generated passwords are strong passwords that you never need to remember. Just generate them every time you need to use them.
Since there is no saved information anywhere you can use multiple devices to generate your passwords without any setup needed.


Meet the Kid-Doh team!
Saurav Kadariya
Hello. I am Saurav, a US Army veteran. I graduate from South Dakota State University and worked there for 3 years as full stack developer on .Net framework. Fixing one bug at a time!
David Marchante
I recently joined Amazon as a Software Engineer Apprentice. My past experiences include a year as a Software Engineer with a focus on web development using Angular and C#. Before that I was a a designer for a landscape architecture firm, which helped my developed a sense of empathy for the end user. I am well versed in HTML, CSS, SASS, JavaScript, TypeScript, Node, Angular, React, C#, MSSQL, and Postgres.
Robert Bronson
I am driven to contribute to the many technologies that are improving the quality of life across the world. I love the challenge of creating things, and the mystery and reward of troubleshooting and debugging. My military background gives me the drive and grit to do what it takes to get the job done. HTML, CSS, JavaScript, JQuery, Python, Pyramid, Django, Postgres, AWS, AWS Lambda, Node
Charles Clemens
Charles is my name and I am many things beside a full stack web developer (though I do find myself humming Kip's ode to technology from the movie Napolean Dynamite quite often). Family man, martial artist, veteran, author, comedian, gamer, bassist, public speaker; these are all labels that describe different aspects of myself. At the core I am a man that yearns for growth, a lifelong learner that spends more time researching, contemplating, and practicing than watching tv. I believe in the chase and motivating others to chase after their own dreams makes me smile. All too often the inner critic receives more attention than it deserves so everyone wins when we can keep it silent. The inner critic is a liar that does not want you to know the truth: that we can convert dreams, no matter how big, into circumstances as long as we are willing to put in the work to make that happen.


| Class and Description |
|---|
| ClientErrorException
A base runtime application exception indicating a client request error
(HTTP
4xx status codes). |
| HttpMethod
Associates the name of a HTTP method with an annotation.
|
| RuntimeType
Enumeration of JAX-RS runtime types.
|
| ServerErrorException
A base runtime application exception indicating a server error
(HTTP
5xx status codes). |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| ProcessingException
A base JAX-RS runtime processing exception.
|
| Class and Description |
|---|
| RuntimeType
Enumeration of JAX-RS runtime types.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| HttpMethod
Associates the name of a HTTP method with an annotation.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| Class and Description |
|---|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| RuntimeType
Enumeration of JAX-RS runtime types.
|
| Class and Description |
|---|
| DefaultValue
Defines the default value of request meta-data that is bound using one of the
following annotations:
PathParam ,
QueryParam ,
MatrixParam ,
CookieParam ,
FormParam ,
or HeaderParam . |
| DELETE
Indicates that the annotated method responds to HTTP DELETE requests.
|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| NotFoundException
A runtime exception indicating a resource requested by a client was
not found on the server. |
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| RuntimeType
Enumeration of JAX-RS runtime types.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| ApplicationPath
Identifies the application path that serves as the base URI
for all resource URIs provided by
Path . |
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| Class and Description |
|---|
| FormParam
Binds the value(s) of a form parameter contained within a request entity body
to a resource method parameter.
|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Class and Description |
|---|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| Class and Description |
|---|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| DELETE
Indicates that the annotated method responds to HTTP DELETE requests.
|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| PUT
Indicates that the annotated method responds to HTTP PUT requests.
|
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| DELETE
Indicates that the annotated method responds to HTTP DELETE requests.
|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| NotFoundException
A runtime exception indicating a resource requested by a client was
not found on the server. |
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| PUT
Indicates that the annotated method responds to HTTP PUT requests.
|
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| Class and Description |
|---|
| ConstrainedTo
Indicates the run-time context in which an annotated JAX-RS provider
is applicable.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| ConstrainedTo
Indicates the run-time context in which an annotated JAX-RS provider
is applicable.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| ConstrainedTo
Indicates the run-time context in which an annotated JAX-RS provider
is applicable.
|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| DefaultValue
Defines the default value of request meta-data that is bound using one of the
following annotations:
PathParam ,
QueryParam ,
MatrixParam ,
CookieParam ,
FormParam ,
or HeaderParam . |
| Encoded
Disables automatic decoding of parameter values bound using
QueryParam ,
PathParam , FormParam or MatrixParam . |
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| ConstrainedTo
Indicates the run-time context in which an annotated JAX-RS provider
is applicable.
|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| NotFoundException
A runtime exception indicating a resource requested by a client was
not found on the server. |
| Class and Description |
|---|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| Class and Description |
|---|
| ConstrainedTo
Indicates the run-time context in which an annotated JAX-RS provider
is applicable.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| ApplicationPath
Identifies the application path that serves as the base URI
for all resource URIs provided by
Path . |
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| Class and Description |
|---|
| BadRequestException
A runtime exception indicating a
bad client request . |
| InternalServerErrorException
A runtime exception indicating an
internal server error . |
| Class and Description |
|---|
| BadRequestException
A runtime exception indicating a
bad client request . |
| InternalServerErrorException
A runtime exception indicating an
internal server error . |
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| RuntimeType
Enumeration of JAX-RS runtime types.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| Consumes
Defines the media types that the methods of a resource class or
MessageBodyReader can accept. |
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| Class and Description |
|---|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| PathParam
Binds the value of a URI template parameter or a path segment
containing the template parameter to a resource method parameter, resource
class field, or resource class
bean property.
|
| POST
Indicates that the annotated method responds to HTTP POST requests.
|
| Produces
Defines the media type(s) that the methods of a resource class or
MessageBodyWriter can produce. |
| PUT
Indicates that the annotated method responds to HTTP PUT requests.
|
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| ServiceUnavailableException
A runtime exception indicating that the requested resource
cannot be served . |
| Class and Description |
|---|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
| QueryParam
Binds the value(s) of a HTTP query parameter to a resource method parameter,
resource class field, or resource class bean property.
|
| WebApplicationException
Runtime exception for applications.
|
| Class and Description |
|---|
| GET
Indicates that the annotated method responds to HTTP GET requests.
|
| Path
Identifies the URI path that a resource class or class method will serve
requests for.
|
Copyright © 2014. All Rights Reserved.


NIL BY MOUTH
Sony Pictures Classics Reviewed by Harvey Karten, Ph.D. Director: Gary Oldman Writer: Gary Oldman Cast: Ray Winstone, Kathy Burke, Charlie Creed-Miles, Laila Morse
With the recent exception of Emily Watson's Maggie and Daniel Day-Lewis's Danny Flynn in "The Boxer," working-class people are consistently portrayed as craggy-faced, sullen, and just plain homely. Perhaps the hard life of physical work takes its toll, or maybe it's just the lack of hope, the resignation, that reflects in their features. In "Nil By Mouth," Gary Oldman's biographical drama of the actor's childhood in the slums of South London, Oldman represents the brooding men he remembers as violent, drug-addicted, and foul- mouthed while his women are resigned, accepting, even loving in their own ways. While "Nil By Mouth" is not Gary Oldman's own family portrait, he has filled the screen with people he has known in his childhood and whom he looks upon with an patina of sympathy and understanding despite their profane manner and primitive culture.
"Nil By Mouth," which was a selection of the 1997 Cannes Film Festival and even supplied a best-actress win for Kathy Burke, is not what anyone would call narrative-driven. Its chief merit is as a showcase for some remarkable acting talent--its principal characters absolutely believable in their rage, desperation, and ultimately their fondness and warmer side. Its lavish disregard for plot, however, makes this a difficult film to sit through, as it cannot be said to have a real dramatic arc and, what's more, those behaviors which are exhibited are perfectly predictable. This latter deficiency is on display particularly in the opening half-hour, in which Oldman wants to impress on every member of the audience the ambiance of the South London district of his childhood. Focusing particularly on Raymond (Ray Winstone), who has no regular job but apparently acquires his poundsterlings through a network of scams, Oldman opens with a family scene as the locals gather in a downscale night club to be entertained by a comedian imparting bawdy jokes to a crowd that alternately pays him an ear and tell jokes of their own to their family circles. Ray, his wife Valerie (Kathy Burke), and Valerie's brother-in-law Billy (Charlie Creed-Miles) smoke up a storm, drink Smirnoff's vodka, and when the men sit around without their women they discuss their experiences in strip joints with all the enthusiasm of adolescents who have just acquired their legal ID's and sample the fare of the adult world.
We learn quite a bit about these people but little or nothing about the framework that has mired them in their futile straits. Ray is the most violent member of the group, one who looks for excuses to swing his fists. In the picture's most appalling moments, he punches and kicks his wife, accusing her with no evidence whatever of having an affair with a neighbor. When Valerie lands in the hospital, she follows the neighborhood code--mum's the word--and claims to have been knocked over by a hit-and-run driver. In another episode of mayhem, Ray virtually breaks the nose of his brother-in-law, Billy, whom he accuses of robbing his cache of drugs. In one unexpected setting, Ray's mother-in-law Janet (Laila Morse) looks without disgust on his snorting of drugs, even providing money to maintain the wastrel's habit-- anything to keep the family together, particularly since her daughter is pregnant.
An American audience--and perhaps an upscale English crowd--may have difficulty with the dialect spoken by these folks, which appears to challenge "Trainspotting" for the most unintelligible dialogue and would provide a lifetime of work for Professor Henry Higgins should he have the unlikely bad fortune of being employed by them. "Nil By Mouth" would probably have more success on the legitimate stage. Oldman has not opened up his film too much to show give us a neighborhood ambiance but hones in on the indoor locations favored by this group of people who are going nowhere fast. The upbeat ending is a bit of a surprise: we wonder if Ray and the woman he hospitalized have truly reconciled or whether Oldman is merely providing us with a contrast to all the bleakness in order to demonstrate what might have been if only...
Kathy Burke's modulated performance is the item to watch. While Ray Winstone in the role of Valerie's husband, can send the celluloid ablaze with his tempestuous fury, Ms. Burke's rendition of an abused wife who fears separation more than anything else is the three-dimensional portrait that redeems the otherwise predictable and altogether flaccid narrative. Rated R. Running Time: 128 minutes. (C) 1998 Harvey Karten
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews