it's not nitpicking: someone has given a license to certain rights, and not to others. it's important to honour what has been actually given.
927 karma · joined March 31, 2010
it's not nitpicking: someone has given a license to certain rights, and not to others. it's important to honour what has been actually given.
if not, compression could kill network latency... from the graph it seems maximum compression would require about 21 round trips minimum. i suppose this is why zlib's deflate has a flush argument: http://www.zlib.net/manual.html#Basic
a lot of high frequency trading is simply linear/logistic regression (on the right features of course). anything more complicated is too slow.
for understanding the tree results, the key thing to understand appears to be lagrange's inversion theorem: http://en.wikipedia.org/wiki/Lagrange_inversion_theorem (i think it's also in an appendix in the book)
an interesting connection between probability/ai and this: the probability generating function is a normalized form of these generating functions that allows you to specify a probability distribution: http://en.wikipedia.org/wiki/Probability_generating_function
in particular, you can use this to work out the average size of a tree picked at random :-)
the general search procedure is just A* search but with the beam search pruning each time you expand the fringe of exploration.
i don't know a good source, i picked this up from a bunch of courses/research.
- dynamic programming comes from solving Bellman's equation and Q-learning is an approximate means of doing dynamic programming.
- It's possible to do beam a* search, where beam search, a* search, and best-first (greedy) search are special cases.
- in the continuous domain, greedy search is essentially gradient ascent.
- you can use discrete differentiation to find the gradients for gradient ascent (actually, i would replace the first order method suggestion of this list with newton-raphson or some quasi-newton raphson method like BFGS).
- EM ties some bits together.
- if you replace the max of the viterbi algorithm with a summation, then you get the sum-product algorithm which is essential in the E step of EM. if you use viterbi instead of sum-product, you get something known as zero-temperature EM, which is an approximate form of EM
- the M step of EM is typically just gradient ascent!
- you can use max flow to do a similar thing to viterbi on certain graphs
and so on...
For unsupervised learning or probabilistic latent models, the EM algorithm, Metropolis-Hastings sampling, variational methods (variation EM, variational Bayes, expectation propagation).
For supervised learning, linear regression, perceptrons, support vector machines.
For reinforcement learning, Q-learning, E^3, Rmax.
you're right, without this explicit construction, it's problematic.
1. type promotion rules
2. method resolution order
3. APIs for simple functions, just write your own--much more explicit.
4. order of evaluation in "for (init; cond; inc)" loops and other nuances of syntax/semantics.
conditioning upon more events can lead to a higher probability. p(boy = 2 | boy >= 1) < p(boy = 2 | boy >= 1, tuesday) (or more precisely, conditioning upon more events can yield a distribution with less entropy)
linear bounded automata don't have a halting problem. it's perfectly decidable. this doesn't detract from the fact it may take a long time to decide, but it is a far easier problem than halting on a TM.
(and that's assuming you get their on-demand scanning working (talpa) which only seems to work with out of date kernels.)
if you're going to generate another 80 bits of entropy, then simply use this as the seed for another PRNG. this, sure, i agree, will get you more entropy, because you're adding more entropy to the system from an external source (such as the advertised device).
the PRNG is a deterministic function of its seed. the hash is a deterministic function of the output. if you do the math and calculate the entropy (this isn't hard) you'll see that the total entropy is still 80 bits because the distributions of the PRNG output given the seed, and of the hash given the output have no entropy. the marginal entropy of the PRNG is 80 bits if you don't observe the seed.
another way of seeing this is via the data processing inequality: http://www.neng.usu.edu/classes/ece/7680/lecture3/node2.html
all PRNGs have cycles: that is, they'll produce random numbers x[1], x[2], ... , x[n], then random number x[n+1] = x[1], x[n+2] = x[2], .... often n isn't as big as you'd like, and sometimes there are correlations among x[i] and x[i+k] you really don't want (linear congruent generators have this problem).
Denotational semantics of goto: An exit formulation and its relation to continuations. Cliff B. Jones. http://www.springerlink.com/content/f340274565373810/
this implementation of yield in scheme reminds me of the procedure linkage table in ELF executables, roughly in C: goto *current_entry_point then update current_entry_point on return (in the ELF PLT this is a one shot update).
i'm not really sure about far superior for 2D: http://matplotlib.sourceforge.net/users/screenshots.html vs. http://had.co.nz/ggplot2/
we use sage (http://www.sagemath.org/) which includes a lot of the common python numerics: numpy, scipy, matplotlib, networkx. it provides nice interfaces to R and gp/pari. i also use mayavi2 for 3d plots (something i could never get R to do well under linux...) enthought have a lot of nice things for python and scientific computing. there's also pymc which i've not used (i just write the MCMC code directly).
1. it is extremely slow for numerics. slower than MATLAB. slower than python (with numpy). after talking to several stats people, it seems pretty much everyone ends up writing most of their code in C when using R. (in contrast, i didn't find this necessary in python or MATLAB for similar projects.)
2. its syntax is quite clunky. want to concatenate two strings? paste(string_a, string_b, sep=''). radford neal has a series of blog posts on R's design flaws: http://radfordneal.wordpress.com/2008/09/21/design-flaws-in-...
3. uninformative error reporting. by default, the stack trace isn't printed. even if it is, often the errors don't really tell you what went wrong.
i don't see any advantage to R over python. yield makes a nice replacement for the lazy evaluation of R.
1. it's not a well defined quantity.
2. under any definition, it doesn't seem to be anything useful in itself.
can some entity create an entity better at a task that the creator? obviously yes. c.f., compilers, factories, cranes, &c.
why did you pick this checksum? what are its coding properties?