Why does a randomly initialised convolution kernel correspond to an edge detector? In this nice tutorial about CNNs, the authors build a single-layer CNN. The initial convolution weights are set randomly, according to a uniform distribution. 

By the end of this scetion, the authors note that the randomly initialised kernel behaves very similar to an edge detector and give the following input and output as example.

 

Why does the randomly initialised kernel behave like an edge detector?
Take this with a grain of salt, but I think this is simply not true. You can evaluate it with the code I just wrote:



Only 2, probably 3 of the 25 look like edge filters to me. The result of an edge filter looks like this: