Mathematica: Going To Eleven

Stephen Wolfram’s recent blog post on the launch of Mathematica and Wolfram Language 11 presents a number of innovations that Quants will find worth exploring

Stephen Wolfram’s recent blog post on the launch of Mathematica and Wolfram Language 11 presents a number of innovations that Quants will find worth exploring
Stephen Wolfram’s recent blog post on the launch of Mathematica and Wolfram Language 11 presents a number of innovations that Quants will find worth exploring

In an extensive blog post to mark the launch of Version 11 of Mathematica and the Wolfram Language, Stephen Wolfram presented an exhaustive tour of innovations and new functionalities to be found in the latest update of the popular symbolic math platform. Wolfram’s excitement is infectious, and there are a number of notable points from the post that will be of interest to quants in finance.

“OK, so what’s the big new thing in Version 11?” Writes Wolfram. “Well, it’s not one big thing; it’s many big things. To give a sense of scale, there are 555 completely new functions that we’re adding in Version 11—representing a huge amount of new functionality”

Look & Feel

• When running code, messages let you immediately see what chain of functions was being called when the message was produced.

• Notebooks have a new look, with crisper fonts and tighter design.

• New autocompletions

• New real-time spellchecker

Machine Learning & Neural Networks

“Mathematica and the Wolfram Language have always been doing AI” Wolfram writes, “But back in Version 10 we also made a great step forward in machine learning —developing extremely automated core functions (Classify and Predict) for learning by example. …. we’ve now got clean ways not just to do classification and prediction, but also to do feature extraction, dimension reduction, clustering and so on. And we’ve also done a lot of training ourselves to deliver pre-trained machine-learning functions.”

“An amazing number of new areas can now be tackled by modern machine learning methods, and particularly by using neural networks.” Wolfram explains, helpfully providing an accessible definition of what neural networks are all about: “The neural network is just a Graph object like any other graph. And inputs like images or text can immediately and automatically be processed using standard Wolfram Language capabilities into forms appropriate for neural network computation.”

“From their name, “neural networks” sound like they’re related to brains. But actually they’re perfectly general computational structures: they just correspond to complex combinations of simple functions.”

In building Version 11 the company set itself the goal of creating a streamlined symbolic way to set up and train neural networks—in which as much of what has to be done as possible has been automated.

Version 11 introduces functions like NetGraph and NetChain, together with all sorts of “neural net special functions”, like DotPlusLayer and ConvolutionLayer. And with these functions it’s easy to take the latest networks and quickly get them set up in the Wolfram Language

Neural networks are being put to work in Version 11 in many internal algorithms in areas like image, signal and text processing. “It’s still early days in the history of “neural net programming Wolfram explains, “but I’m excited for the Wolfram Language to play a central part in what’s coming.”

Don’t Forget Calculus…

Wolfram notes that additions for calculus in Version 11 are large enough that they would have undoubtedly been the headline new feature of the version.

“Differential eigensystems: being able to solve eigenvalue versions of both ODEs and PDEs. There’s a huge stack of algorithmic technology necessary to make this possible—and in fact we’ve been building towards it for more than 25 years. And what’s really important is that it’s general: it’s not something where one has to carefully set up some particular problem using elaborate knowledge of numerical analysis. It’s something where one just specifies the equations and their boundary conditions—and then the system automatically figures out how to solve them.”

Wolfram recalls, “back around 1976 I wrote a Fortran program to solve an eigenvalue version of the 1D Schrödinger equation for a particle physics problem I was studying. In 1981 I wrote C programs to do the same thing for some equations in relativistic quantum mechanics. I’ve been patiently waiting for the day when I can just type in these problems, and immediately get answers. And now with Version 11 it’s here.

“In Version 11 one can use the whole Wolfram Language geometry system—and all the data Wolfram has —t o set up boundary conditions. So it’s easy to find the eigenmodes of a “drum” of any shape—like the shape of the US.

“For something like that, there’s no choice but to do the computation numerically. Still, Version 11 will do differential eigensystem computations symbolically when it can. And Version 11 also adds some major new capabilities for general symbolic differential equations. In particular, we’ve had a large R&D project that’s now gotten us to the point where we can compute a symbolic solution to pretty much any symbolic PDE that would appear in any kind of textbook or the like.”

Version 11 introduces symbolic solutions to many classes of integro-differential equations. Including “Green’s functions for general equations in general domains. And, long awaited (at least by me): Mellin transforms. (They’ve been a favorite of mine ever since they were central to a 1977 particle physics paper of mine.)”

Version 11 also addresses aspects of calculus needed to support areas like machine learning. “We’ve got more efficient and robust minimization, and we’ve also got sophisticated Bayesian minimization, suitable for things like unsupervised machine learning.”

Making Everything Fit Together

A central aim in developing the Wolfram Language has always been creating the means by which all functions can communicate directly with each other. “Time series, for example, now work directly with arithmetic. So you can take two air pressure time series, and just subtract them. Of course, this would be easy if all the time points in the series lined up. But in Version 11 they don’t have to: the Wolfram Language automatically handles arbitrarily irregular time series.”

“Now in Version 11 there’s more randomness. There’s RandomPoint, which picks a random point in any geometric region. And there’s also RandomEntity that picks a random entity, as well as RandomWord—that’s useful for natural language processing research, as well as being a nice way to test your vocabulary in lots of languages… And finally, in Version 11 there’s a whole major new mathematical area of randomness: random matrices—implemented with all the depth and completeness that we’ve made a hallmark of Mathematica and the Wolfram Language.”

Wolfram’s post is a great read, connecting the dots between his original intentions, over thirty years ago, in developing what was to become Mathematica and the latest iteration of a language that unashamedly aims to be all things to all users, which naturally means there is a lot which doesn’t present immediate relevance to quant users. A myriad of capabilities are dealt with in the post relating to 3D printing, audio, bones, foods, the universe, computing with real-world entities, everything geo-related, education, Wolfram Language as the most modern systems programming environment, building things on the Web, data into the cloud, connecting everywhere, changes in WolframScript and an examination of the core language.

Read Stephen Wolfram’s Blog Post in its entirety at: Wolfram