# Turning climate change to stone

Excess carbon dioxide in the atmosphere changes Earth’s climate to far less hospitable to us. However, Earth’s atmosphere is but a thin sliver of gas around a huge ball of rock. How large is our carbon dioxide problem, measured on geological scales?

Chalk is calcium carbonate or CaCO3, a compound of calcium and carbon dioxide. For much of Earth’s history, marine creatures from microscopic free-floating algae, to oysters, to coral reefs used chalk to build their shells and houses. When these creatures died, their shells sank to the bottom of the sea, or were built upon by new generations of creatures. All CO2 in them was safely stashed away from the atmosphere.

Over aeons thick layers of soft chalk formed around the globe. When we happen to live on land where there used to be oceans in earth’s history, we might be walking on layers of soft white matter tens or hundreds of meters deep. We may admire these layers when they are exposed, as in the white cliffs of Dover or in the mountains of Lebanon.

Even today, the ocean floor is being covered every day with more chalk. Assuming through some force we could encourage the creatures of the oceans to take up all the excess carbon dioxide from the atmosphere and store it away as chalk, how thick a layer would that form on the ocean floor?

Since 1850, humanity emitted about 4.4 * 1017 g carbon as CO2. Chalk or CaCO3 is a sink of carbon dioxide if chalk is produced from quicklime, CaO, according to the following formula:

CaO + CO2 → CaCO3

Humanity emitted enough carbon dioxide for forming 2.49 * 1018 g chalk this way:

MCaCO3 = MC/MwC * (MwC + MwCa + 3MwO) = 4.4 * 1017 g / 12 g/mol * (12 + 40 + 16)g/mol = 2.49 * 1018 g

The volume of chalk would be 1400 cubic kilometres. This follows from the mean density of chalk, which is 1.79 * 10^6 g/m3:

MCaCO3 / 𝝔CaCO3 = 1.39 * 1012 m3 = 1.39 * 103 km3.

That seems much, but how thick would be this layer spread out evenly on the sea-bed which occupies 3.61 * 108 km2? It would be 1.39 * 103 km3 / 3.61 * 108 km2 = 3.9 * 10-6 km. In more familiar units, it would be a layer of 3.9 mm chalk.

In consequence, what is the largest threat to humanity is a humblingly slim layer of 3.9 mm chalk over the ocean floor for geology. If only we knew how to entice sea animals and plants to use our emissions in the atmosphere for building shells fast enough.

# AI-Driven UI

User interfaces connect users to software. If good, UI give access to all functions, please the eye, radiate power and trustworthiness. They unobtrusively do their job, and sometimes, they even make happy. Powerful software amounts to nothing if it can’t speak with its users. How can we make the best possible UI, and how can artificial intelligence help computers talking to humans?

Being made for humans, a UI must work with human faculties and limitations. Keeping those faculties and limitations in mind, we can go a long way towards making a good UI without using any AI. But we will see that only AI can ultimately solve the fundamental dilemma of how to make powerful software that is also easy to use.

# Being naughty with R

If you sneak up to the unguarded R-session of a friend and enter this, some might soon consider exorcism:

( <- function(x) if(is.numeric(x)) runif(1)*x else x

In R the bracket, as in (1+2), is also a function, just as the + part of the expression is. The same is true of {}, as used in function declarations, if-clauses and for-loops. Since R is so flexible, you may well reassign these functions.

This is a great way to make enemies delightful intellectual challenge. Bonus points for entering the definition into an .Rprofile so it is not lost too easily when restarting R.

# The formation of a convolutional layer: feature detectors in computer vision

Convolutional layers of artificial neural networks are analogous to the feature detectors of animal vision in that they both search for pre-defined patterns in a visual field. Convolutional layers form during network training, while the question how animal feature detectors form is a matter of debate. I observed and manipulated developing convolutional layers during training in a simple convolutional network: the MNIST hand-written digit recognition example of Google’s TensorFlow.

Convolutional layers, usually many different in parallel, each use a kernel, which they move over the image like a stencil. For each position the degree of overlap is noted, and the end result is a map of pattern occurrences. Classifier network layers combine these maps to decide what the image represents.

The reason why convolutional layers can work as feature detectors is that discrete convolution, covariance and correlation are mathematically very similar. In one dimension:

Multiply two images pixel-by-pixel, then add up all products to convolve them: $$(f * g)[n] = \sum_{m=-\infty}^\infty f_m g_{(n – m)}$$

Subtract their means E(f) first to instead get their covariance: $$\mathrm{cov} (f,g)=\frac{1}{n}\sum_{m=1}^n (f_m-E(f))(g_m-E(g))$$

Then divide by the variances σ(f) to get their Pearson correlation: $$\mathrm{corr}(f,g)={\mathrm{cov}(f,g) \over \sigma_f \sigma_g}$$

# Explore the state of the UK, October 2017

An earlier post explored the winning and losing parts of London, as measured by the success of different kinds of cheap and expensive food-selling enterprises.

Assayed the same way (with the same shortcomings, too!), how did the rest of the UK do?  A first answer is: outside London, not many places have done very well, but the Sheffield area is a clear winner. Less densely populated areas are the ones losing most.

Everyone has different questions though: are cheap or expensive venues becoming more successful where I (want to) live? What kind of shops are opening in the South-West? Which parts of the country is Pizza Chain X focusing on? In the linked interactive map I created you can look for yourself. The map answers both questions about the whole of the UK, and about favourite counties, cities or boroughs (just zoom in!).

As a practical note, sometimes a far out region appears surprisingly full of activity. It is worth double-checking this. It may be because the local authority dumped or purged a lot of businesses at the same time (usually in smaller places). It helps to just shift this area to one side, and then the heat map will return to a more useful scale for the rest.

The list below the map shows the coming and going businesses in the area you are looking at. In the left pane you can filter by business name or type, e.g. if you were wondering what supermarkets or specifically Tesco does in a particular area.

Feedback is most welcome below this post. For the future I am considering adding comparisons between different time periods to make this tool even more useful. Please be kind to the tiny server if it is slow. My thanks to the makers of R, Shiny, ggmap and leaflet, and to EC2 for the server.

New and closing restaurants and sandwich shops in the UK.

# Combining probability distributions

This table is yet unfinished.

If I observe the sum of two processes with known distributions, the distribution of the observations is expected to be …

 + Normal Poisson Binomial Uniform Normal Normal See here Poisson Poisson, normal if many summands Binomial Binomial, if common p, Poisson, if many summands, Poisson binomial otherwise, note also the binomial sum variance inequality and this. Uniform Irwin-Hall

Wikipedia has some more. A general discussion of probability distribution convolutions is for example here.

# Feature detectors in animal vision

Image feature detectors are a common concept between mammalian vision and computer vision. When using them, a raster image is not directly processed to identify complex objects (e.g. a flower, or the digit 2). Instead feature detectors map the distribution of simple figures (such as straight edges) within the image. Higher layers of the neural network then use these maps for distinguishing objects.

In the mammalian brain’s visual cortex (which is at the back of the head, at the furthest possible point from the eyes) the image on the retina is recreated as a spatially faithful projection of the excitation pattern on the retina. Overlapping sets of feature detectors use this as input.

From eyeball to visual cortex in humans. Note the Ray-Ban-shaped area at the back of the brain where the retinal excitation pattern is projected to with some distortions. (From Frisby: Seeing: the computational approach to biological vision (2010), p 5)

How we know about retinotopic projection to the visual cortex: an autoradiography of a macaque brain slice shows in dark the neurons that were most active in result of the animal seeing the image on top left. (From Tootell et al., Science (1982) 218, 902-904.)

A feature detector neuron becomes active when its favourite pattern shows up in the projected visual field – or more exactly in the area within the visual field where each detector is looking. A typical class of detectors is specific for edges with a specific angle, where one side is dark, and the other side is light. Other neurons recognise more complex patterns, and some also require motion for activation. These detectors together cover the entire visual field, and their excitation pattern is the input to higher layers of processing. We learned about these neurons first by sticking microelectrodes into the visual cortex and measuring electrical activity. When lucky, the electrode measured the activity of a single neuron; then by showing different visual stimuli the activation pattern of the neuron could be mapped.

A toad’s antiworm detector neuron reacts to a stripe moving across its receptive field. The antiworm may move in any direction, but only crosswise for the neuron to react. The worm detector, for comparison, would react if the stripe moves lengthwise. Toad at the right side with microelectrode, the oscillogram above the screen shows the tapped feature detector neuron’s activity. (Segment from Jörg-Peter Ewert, Gestalt Perception in the Common Toad – 3. Neuroethological Analysis of Prey Recognition.)

# The state of London, October 2017

Brixton, and from there a corridor towards the Thames ending at Vauxhall and Elephant and Castle are winning. The areas around Islington, Hackney and Greenwich are struggling. The Soho and the rest of Westminster keep doing well. This is at least what starting and failing food-related businesses tell about the last six months in London. I felt food is something everyone buys daily, and whether it is cheap or expensive, less or more, is a good indication of socioeconomic developments.

Increase and decrease of food-related businesses in London over the six month up to October 2017. (Map backgrounds are courtesy of Google Maps. Overlays: R, ggmaps.)

# A quick way to fit an origin line to a Poisson point cloud

Just as a quick note, sometimes there is a more quick way to estimate the parameter of a Poisson model from data than a generalised linear model (via e.g. R’s glm function). This is the case when the expected mean λ is just a straight line that starts at 0 at time 0: $$\lambda(t) = gt.$$ This can model for example the number n(t) of a steadily produced mRNA species in a cell after the enhancer becomes active for the first time: the sum of two Poisson-distributed values with means λ1 (already existing number), λ2 (production during next time slice) is also Poisson-distributed with mean $$\lambda_1+\lambda_2$$

In this case the maximum likelihood or Bayesian estimate (they are the same, assuming no particular prior knowledge) for g is simply

$$g=\frac{\sum{n}}{\sum{t}}$$

This is because the probability of a single Poisson event with λ=gt is Continue reading

# Caveat emptor with iOS / HealthKit step data

Step counts have not been recorded uniformly before and after September 2016 on the iPhone, which leads to some artefacts. This slight complication might be interesting to those who intend to analyse long periods of health data.

The change came with an iOS update. Helpfully the exported data points from the Health App contain the current iOS version after iOS 9. Perhaps you can spot the difference pre- and post iOS 10 below. The plot shows steps/second over the years from the same device. Each dot was calculated from one record.

Magnification around the update shows that there are fewer data points post iOS 10: