TimonKnigge's comments

TimonKnigge | 5 months ago | on: How the AI Bubble Will Pop

> Waymo showed that under tightly controlled conditions humans can successfully operate cars remotely.

My understanding was that Waymo’s are autonomous and don’t have a remote driver?

TimonKnigge | 3 years ago | on: Religious Discrimination at Google

Is it a personal choice though? If in the morning I decide between wearing a blue shirt or a red shirt, that's arguably a matter of personal choice, but deciding to believe in God is as much a 'personal choice' as deciding to believe in gravity or deciding to believe in homeopathy.

TimonKnigge | 4 years ago | on: Pedestrian deaths spike in U.S. as reckless driving surges

> After decades of riding (sometimes wildly irresponsibly) I can only count on one hand motorists who were actively trying to run me over.

I don't see how this is a good thing? I've been riding my bike since I was a little kid (in the Netherlands) and I've had zero people actively try to kill me, I'm not sure why any nonzero number is not a big deal.

TimonKnigge | 4 years ago | on: Ask HN: How does one do it all?

IMO the key takeaway from GTD is that you need to write things down in some sort of anything-goes inbox, so that they don't bounce around in your head. What kind of sorting/tracking mechanism you use after that is less important.

TimonKnigge | 4 years ago | on: An optimal algorithm for bounded random integers

I'm a bit confused about this method.

So the standard argument against such a procedure is that if you generate N random bits, each of {0,1}^N bitstrings is equiprobable and therefore no mapping of {0,1}^N to {0..U-1} can map an equal number of bitstrings to each output.

A priori the method seems to work around this by conditionally sampling more bits, so that your domain is not one of fixed-length bitstrings. But then there is this paragraph:

> More intriguing still, this algorithm can be made unconditional by removing the early out, so that every value computed requires word size + 64 bits from the stream, which breaks the loop-carried dependency for fast generators, unlocking vectorization and parallelization where it was previously impossible. This is an especially powerful advantage when paired with bitstream generators that allow skip-ahead such as counter-based generators or PCG.

But now we are mapping {0, 1}^N into {0..U-1} right? So this mapping ought not be uniform? In fact I'm not sure why the early-termination method even works, because for a fixed U we know the maximum depth of the generated-bitstring-tree, so we can just pad it with imaginary random bits to arrive at the contradiction that U does not divide 2^N.

I imagine I missed something, what is it?

EDIT: thinking about it more, if you sample finitely many bits then each possible output has a probability that is a dyadic rational (fractions of the form a/2^k) which does not include all integer reciprocals.

TimonKnigge | 4 years ago | on: Classical data structures that can outperform learned indexes (2018)

In the linked article they resolve collisions via chaining:

> A typical hash function distributes keys randomly across the slots in a hash table, causing some slots to be empty, while others have collisions, which require some form of chaining of items

I.e. each field in the table is a linked list of values that hash to this position, and the new value is inserted in the shortest of the two lists it hashes to.

TimonKnigge | 4 years ago | on: Out of Africa's midlife crisis

I'm curious if this genetic diversity is just something that shows up as a number on a computer, or does it translate into something phenotypically* visible?

Also, how much of, say, our medical/biological knowledge actually only applies to the descendants of the bottleneck mentioned in the post? I understand the "very diverse" in the article have better things to do than be subjected to researchers, but reading the article I can't help but be curious what this genetic diversity means in practice?

*) not necessarily visually

TimonKnigge | 4 years ago | on: Reasonable Effectiveness of the Multiplicative Weights Update Algorithm (2017)

Not exactly -- multiplicative weights is a special case of mirror descent (as is gradient descent). It arises doing prox-steps on the simplex using the negative entropy as a regularizer (rather than the usual Euclidian distance, as is the case with gradient descent). In particular, if you do regular gradient descent then the runtime will be exponentially worse (the \log n in the guarantee will become a \sqrt{n}).

Here's an interesting lecture on the topic: https://nisheethvishnoi.files.wordpress.com/2018/05/lecture4...

page 1