Impressum
Responsible for this website
Marcin Kierczak, Uppsala, Sweden. This is a personal website. For contact details, including email, see the Contact page.
Privacy
This site does not use cookies, does not show advertising and does not include social-media widgets or embedded third-party content.
Web analytics. To learn roughly how many people visit and which pages they read, I use GoatCounter, a privacy-friendly analytics service, hosted at kiero.goatcounter.com. According to its documentation it sets no cookies and does not track you across sites or store your IP address. It records only aggregate page-view information such as the page visited, the referring site, browser and screen size, and the country. Because it needs no cookies and stores no personal profile, no consent banner is shown. Details are in GoatCounter’s privacy policy.
Total page views counted so far: …
Hosting. The site is served by GitHub Pages. As with any web host, GitHub may process technical data such as your IP address when you request a page; see the GitHub privacy statement.
Local storage. If you switch between light and dark mode, your choice is remembered in your browser’s local storage. It never leaves your device.
Contact form. There is none. If you email me, I use your message and address only to reply to you.
Your rights. Under the GDPR you may ask what data about you is held and request its correction or deletion. Since the site stores no personal profiles, there is normally nothing to report, but you are welcome to get in touch.
Fonts and technologies
Everything needed to display the pages, except the analytics script, is served from this site itself, with no calls to Google Fonts or a public CDN.
- Fonts: Newsreader and Inter, both under the SIL Open Font License, served locally.
- Site generator: Quarto with the Bootswatch Cosmo theme (Bootstrap, MIT licence).
- Mathematics: MathJax (Apache 2.0), served locally.
- Publication data: fetched from OpenAlex and Google Scholar when the site is built; your browser does not contact them.
- GitHub statistics: fetched from the public GitHub API when the site is built.
- Code in the Blog background: the faint code lines are real lines sampled from my own public, non-forked repositories at github.com/mkierczak (R, Python, PHP, Lua, JavaScript, CSS and shell). They are picked when the site is built; comments, vendored or generated files, and anything resembling credentials, addresses or personal paths are left out. Your browser reads them from this site, not from GitHub.
- Background animations: drawn in your browser with a small script of my own, and switched off if your system asks for reduced motion. Depending on the page they show formulas, code, DNA and protein sequences, a network, or a Manhattan plot. In the DNA background, the protein sequences are written in one-letter amino-acid codes, and some sequences contain a small private joke ;-)
Built with human brain, Quarto and Claude.
Formulas in the background
Some pages show faint, slowly drifting formulas behind the text. They are decoration, but each one is real:
Show the formulas and what they mean
| Formula | What it is |
|---|---|
| \(\mathrm{softmax}(z)_i = \dfrac{e^{z_i}}{\sum_j e^{z_j}}\) | Softmax. Turns a vector of raw scores into probabilities that sum to 1; the last step of most classifiers. |
| \(P(\theta \mid D) = \dfrac{P(D \mid \theta)\,P(\theta)}{P(D)}\) | Bayes’ theorem. Updates belief about parameters \(\theta\) after seeing data \(D\): posterior = likelihood × prior / evidence. |
| \(\mathcal{N}(x \mid \mu, \sigma^2) = (2\pi\sigma^2)^{-1/2}\exp\!\left(-\dfrac{(x-\mu)^2}{2\sigma^2}\right)\) | Normal distribution. The bell curve with mean \(\mu\) and variance \(\sigma^2\). |
| \(L = -\sum_i y_i \log \hat{y}_i\) | Cross-entropy loss. Penalises a model for giving low probability \(\hat{y}_i\) to the true class \(y_i\). |
| \(\theta \leftarrow \theta - \eta\,\nabla L(\theta)\) | Gradient descent. Moves parameters a small step \(\eta\) downhill on the loss; how most models are trained. |
| \(p^2 + 2pq + q^2 = 1\) | Hardy–Weinberg equilibrium. Genotype frequencies for two alleles with frequencies \(p\) and \(q\) in a randomly mating population. |
| \(\hat{\beta} = (X^\top X)^{-1} X^\top y\) | Ordinary least squares. The linear-regression coefficients that minimise squared error. |
| \(\mathrm{Attn}(Q,K,V) = \mathrm{softmax}\!\left(\dfrac{QK^\top}{\sqrt{d}}\right)V\) | Attention. The core operation of transformer models: each position takes a weighted mix of values \(V\), weighted by how well queries \(Q\) match keys \(K\). |
| \(H(X) = -\sum_x p(x)\log p(x)\) | Shannon entropy. The average uncertainty, or information content, of a random variable. |
| \(y = X\beta + g + \varepsilon\) | Mixed model for genetics. A trait \(y\) explained by fixed effects \(X\beta\), a random genetic effect \(g\), and residual noise \(\varepsilon\). |
| \(\mathrm{KL}(p \,\Vert\, q) = \sum_x p(x)\log\dfrac{p(x)}{q(x)}\) | Kullback–Leibler divergence. How much a distribution \(q\) differs from a reference distribution \(p\). |
| \(e^{i\pi} + 1 = 0\) | Euler’s identity. Ties together five fundamental constants (\(e\), \(i\), \(\pi\), 1 and 0) through complex exponentials; a special case of \(e^{i\theta} = \cos\theta + i\sin\theta\). |
| \(\sigma(x) = \dfrac{1}{1 + e^{-x}}\) | Sigmoid. Squashes any number into the range 0 to 1; used for probabilities and neuron activations. |
Content and liability
I take care with the content of these pages but cannot guarantee that it is complete or current. Links to external sites lead to content I do not control. Unless stated otherwise, text and images on this site are © Marcin Kierczak; please ask before reusing them.