CoreLog: the useful output is knowing when the core is unfamiliar

1 minute read

Published:

CoreLog: the useful output is knowing when the core is unfamiliar

CoreLog: per-window lithology with an out-of-distribution flag, running client-side

CoreLog reads drill-core trays and returns lithology per window. The classifier itself does well (accuracy 0.994 against a 0.9286 colour and texture baseline), but a classifier that is always confident is a liability on core, because the next hole can carry rock the model has never seen and it will still return a class.

So the shipped output is two things, not one: a lithology and a flag for when the core is unfamiliar.

The out-of-distribution detector was chosen by measurement, not by fashion.
Nine detectors benchmarked offline on identical splits.
Shipped: Mahalanobis distance in the CNN's 64-d feature space, AUROC 0.9463. The incumbent pixel autoencoder scored 0.3078, which is worse than a coin, and it was replaced rather than defended.

Two guards keep the accuracy honest. The split is grouped by hole (14 train, 4 test), not by tray, so a model cannot pass by memorising the hole it is looking at. And a label-permutation null collapses the whole thing to chance (0.1387 against the 0.1429 you would expect from six classes), which is what tells you the signal is in the rock rather than in the pipeline.

Real drill-core photographs (DCID, CC BY-NC 4.0) are used as an out-of-distribution and real-head evaluation lane only, and the app says so rather than implying it was trained on them. Everything runs 100 percent client-side. Live · source.