A Monte Carlo futurism site
A summary of a futurism web app Alyssa was trying to build, sent to Jeff Alstott (a quantitative forecaster then at IARPA) after a meeting. The core pitch: existing public forecasting works one trend or one event at a time, while real long-run forecasts need many trends and events interacting in a Monte Carlo simulation. The note sketches the data model, walks through several existing AI-timelines arguments as instances of it, and then sketches an automated import pipeline using a public electricity-cost dataset as the worked example.
Prediction is hard to do, for all the obvious reasons. But it does seem sometimes like people aren’t even trying.
r/futurology , the closest thing there is to a mainstream consensus, consists mostly of puff press releases by corporate and university research labs; these PR pieces have been announcing “cures for cancer” since 1906 . Many common guesses ultimately trace back to Kurzweil, but his work was mostly based on naive extrapolation of single trend lines. We don’t need to be super-geniuses to do better.
The core idea of the software is a Monte Carlo simulation over many different trendlines and events, each of which can interact with the others. Most traditional forecasting, when it’s quantitative, focuses on just one trendline, event, or category (eg. global warming, demographics, genetic sequencing). I’ve never seen a financial forecast that included nuclear war, even when it should significantly raise discount rates. Realistically, x-risk significantly affects almost every long-term forecast, and there are several other very broad drivers. Eg., Kurzweil’s books are largely an account of just how much is driven by Moore’s Law.
I’m imagining building a web app with a structure like: the app has both trendlines and events; trendlines follow curves like linear, polynomial, etc., while events follow a Poisson distribution with what Paradox calls mean-time-to-happen (MTTH) events can condition on both other events and on trendlines; trendlines can be started or stopped by events trendlines can be formed by mathematical composition of other trendlines; eg. national GDP = national population × GDP per capita calculations are done by Monte Carlo simulation, like Ozzie Gooen’s Guesstimate , but done server-side for more horsepower there’s a site-wide, publicly-visible database of trendlines and events that are “reasonable best guesses” (eg., existing projections for US population growth) each user can amend these with their own ideas about what will happen, to form their own model, and users can also “import” each others’ models to serve as a starting point each event and trendline has discussion features for evaluating why things will or won’t happen, as in Alexei Andreev’s Arbital ; when something becomes reasonably solid, it can be moved to the site-wide database of default assumptions historical records can be kept of what people thought, allowing people to make bets and judge past accuracy, as with Tricycle’s PredictionBook Here are some existing, informal models of AI development, and how they could be represented inside of the software: In the Larry Page model, strong AI (or “human-level AI”) is a single, Boolean event. Every year, researchers have some chance of finding “the secret to AI”. Hence, the Monte Carlo simulated worlds follow a simple Poisson distribution.
In the Ray Kurzweil model, AI can be predicted with computer hardware metrics, like FLOPS/$. These metrics follow exponential trends, and the Monte Carlo worlds form a “model spray” around a central trendline (eg.
IPCC AR4 figure SPM-5 ), with higher divergences for more distant years. The strong AI event is triggered when some critical metric crosses a threshold.
The Eliezer Yudkowsky model is a combination of the first two, where strong AI is a Poisson process whose frequency depends on hardware speeds. This introduces the idea of a directed acyclic dependency graph, where the event model depends on a trendline model.
One could also have a binomial-distribution model, where AI components like “deep neural networks” each have their own Poisson process, and strong AI is created when all the necessary components are invented. The dependency graph here is a set of multiple inputs feeding into one output.
My own guess is that strong AI likely won’t be a binary event, and that “human-level AI” will be found to be conceptually incoherent, since AIs will have enormously different ability distributions from humans (and from each other). One thing I’d like to explore more is general-purpose metrics for AI power, where there are different consequences triggered at different levels, instead of one “human-level AI” Boolean. My current best idea is something roughly like #(marginal assembly instructions)/#(marginal human programmer instructions), which gets very large given “strong AI” but also has other effects before then. That could be totally wrong, though.
The I.J. Good model — that strong AI will immediately be followed by superintelligent AI — is not a direct forecast but a conditional forecast, where one event triggers another event. These are usually overlooked, but can be extremely important for decision-making. The software should maintain a library of conditional forecasts along with direct forecasts. Eg., a certainty of nuclear war if oil hit $300 a barrel would have large geopolitical implications, even if no one could predict a date for a $300 price.
“Lucky number” style date forecasts, like “expert X says we’ll get strong AI in 2070”, are intentionally not included because (by themselves) they’re very difficult to give evidence for. To steal Kahneman’s terminology, these are mostly System 1 estimates, and this is designed as a System 2 project.
Here’s a sketch of how automatic importing software could use table data (in this case, for electricity generation costs) to help build a world simulator: First, the Excel sheet needs to be transformed to CSV, or something else that’s machine-readable without decoding Microsoft’s data formats. I assume there are tons of APIs/libraries for this.
Second, each factor in the model has to be identified. This means matching up each row/column in the spreadsheet (things like “cost of diesel fuel” and “cost of capital”) to a parameter within the software. This likely has to be done semi-manually, since eventually we’d want to sort each factor into a set of categories, write out descriptions, link to relevant Wikipedia articles, etc. This step corresponds to adding rows into an SQL table of parameters.
Third, past data can be matched up to a “year” column, and then imported into the database. These would be values like “price of Brent crude: $35 in 2015, $70 in 2014, $90 in 2013”, and so on going back. Relative to current software, there’d have to be a new SQL table for this, but that shouldn’t be too hard. For each past data point, a new row is put in the table.
Fourth, a default regression is done on the existing data points. (This can be modified later, of course, but it’s good to have an automatic default.) There are several obvious options: linear, quadratic, exponential, logarithmic, etc. Best fit model wins. This gives you a regression line, which is also stored in the database (via model type and parameters).
Fifth, in this model there aren’t really error estimates, so the user has to choose them manually for some relevant parameters. Eg., there’s no error bar on annual maintenance cost, so the user has to pick a standard deviation.
Sixth, the user has to define the relationships between the parameters, like cost of diesel fuel per gallon × number of gallons burned per hour × number of hours per year = total cost of diesel per year (the latter two numbers likely being constants). In theory, one could do this by importing macros from Excel, but in the short and medium term that would be tricky enough that I think manual is mostly the way to go (as in current Guesstimate).
Seventh, each of the parameter regression lines can be compared to historical data, to calculate a goodness-of-fit. This will vary all the way from things that are smooth and linear (in this model, wages of plant workers) to things that oscillate wildly (commodities prices). One can model this by having two components to the forward projection, trendline and random. Eg., suppose that we model the inflation rate as an exponential curve, with past increases at an average of 4% annually. For any given future year, the trendline component of this would be the past year’s increase, multiplied by some constant factor (eg. 0.8), and the random component (different for each Monte Carlo world) would be sampled from a Gaussian distribution with a mean of 4% × (1 - constant factor) = 4% × 0.2 = 0.8%. The better the past data fits the trendline, the higher the constant factor can be. Thus, for wages, all the Monte Carlo worlds look the same, while for commodity prices they all look different, essentially the random walks that they are in real life.
Eighth, we extrapolate things forward frame-by-frame, and then visualize the results. Any given time period would look similar to the current Guesstimate, but one could also have a separate UX view for each parameter graphed over many time periods. Eg., for retail electricity prices, one could have a graph with past values as black dots, the modeled trendline as a dashed red line going through the dots and out into the future, the 5th and 95th percentile Monte Carlo worlds as dashed blue trendlines above and below the main trendline (with the area between the upper and lower trendlines all highlighted as light blue), and then some wiggly green lines, each one indicating the path of one specific Monte Carlo world. One could also have per-world views, where one selects a world and then sees multiple graphs of how all the different parameters varied within that world…
I started to build a prototype of all this, but never had the time to finish.
The attached graphic is H/T Stephen Frey. I don’t by any means agree with all of it, but I think it’s a critical advance to show all of these technologies developing together, rather than each developing in isolation while the world is held constant.
Stephen Frey’s technology timeline graphic