Tuesday, 30 October 2018

Complex Functions need L-Series, Like Real functions need T-Series - thanks PAL!

Any mathematical programmer needs nodding acquaintance with Laurent series.

So what is a "Laurent Series"?

These super-important series are a way of expressing a complex function as a power series when a Taylor series is not possible. They are interesting in that negative exponents are part and parcel of the series.

Pierre Alphonse Laurent ("PAL") was the discoverer of the Laurent series.

He was an engineer directing operations for the enlargement of the port of Le Havre. He applied deep theoretical knowledge to practical use.

His name is also given to the polynomial known as the Laurent polynomial (characterised by terms of negative degree).

Tuesday, 11 September 2018

Category Theory for Pythonistas

Category theory is a language composed of "objects" and "arrows". It is a general mathematical theory of structures. It can be regarded as philosophy as much as mathematics or theoretical computer science.

Saturday, 8 September 2018

Mathematics as the Path to Progress in Computer Programming

Mathematics enables a wide range of computer algorithms to be defined and created. But pure mathematics (study of logical structures, patterns and extraction of general principles and axioms) is the path to progress in many areas of computers - it is a "fuel" that can help push the boundaries of computers and increases our capacity for invention. Many computing advances were created by mathematicians who chose to apply themselves to computers.

Tuesday, 4 September 2018

PyPI - The Python Package Index

PyPI is the Python Package Index.  Newish stuff on there include neural network toolkits, IoT utilities such as mbed-flasher and math language interfaces e.g. amplpy.

PyTorch

PyTorch is a way to do DL/neural nets in Python. Anaconda is the recommended package manager (used by Bloomberg, BMW, PIMCO). Latest PIP (replacement for easy_install) and numPy packages are required.

"Deep learning" (DL) As Subfield of "Machine Learning" (ML) - The Chris Manning View

Chris Manning at the Departments of Computer Science and Linguistics at Stanford University describes deep learning as a subfield of machine learning - which is a form of computational statistics. 

He emphasises the human-computer partnership in successful machine learning, in the sense that ML methods shown to work well have done so due to "human-designed features or representations". 

Examples given are SIFT (scale-invariant feature transform) or HoG (Histogram of Oriented Gradients) features for vision and MFCC (mel-frequency cepstral coefficients) or LPC (linear predictive coding) features for speech. 

In these cases, ML becomes a weighting scheme optimization process to make the best prediction.

OK, but so how does deep learning (DL) differentiate itself from more "conventional" machine learning (ML)? What are the key characteristics of this much touted subfield?

One element is representation learning (also known as "feature" learning) to learn good features and representations, with DL learning multiple levels of these representations. Neural networks are currently the tool of choice for this.  

One could almost claim that "DL" is the new marketing spin on Neural Networks. "Differentiable programming" is another trendy name for this.

Why now for DL - the large amounts of training data, modern multi-core CPUs/GPUs, and just maybe, some progress in algorithmic science along the way?

Monday, 3 September 2018

Who coined the term "machine learning" anyhow?

The term "machine learning" was coined by American AI pioneer Arthur Lee Samuel in 1959 in the context of an auto-learning checkers program. He developed one of the earliest implementations of hash tables.