<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thalesians.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>Thalesians Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thalesians.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php/Special:Contributions/Admin"/>
	<updated>2026-06-01T20:40:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Electronics&amp;diff=755</id>
		<title>Electronics</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Electronics&amp;diff=755"/>
		<updated>2025-04-21T08:00:56Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Units and symbols ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Units and symbols&lt;br /&gt;
|-&lt;br /&gt;
! Quantity !! Symbol !! Measured in !! Units&lt;br /&gt;
|-&lt;br /&gt;
| Voltage (potential difference) || V || Volts || V&lt;br /&gt;
|-&lt;br /&gt;
| Current || I || Amps || A&lt;br /&gt;
|-&lt;br /&gt;
| Resistance || R || Ohms || &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Power || P || Watts || W&lt;br /&gt;
|-&lt;br /&gt;
| Frequency || f || Hertz || Hz&lt;br /&gt;
|-&lt;br /&gt;
| Wavelength || &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; || Metres || m&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Electronics&amp;diff=754</id>
		<title>Electronics</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Electronics&amp;diff=754"/>
		<updated>2025-04-21T08:00:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Units and symbols ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Quantity !! Symbol !! Measured in !! Units&lt;br /&gt;
|-&lt;br /&gt;
| Voltage (potential difference) || V || Volts || V&lt;br /&gt;
|-&lt;br /&gt;
| Current || I || Amps || A&lt;br /&gt;
|-&lt;br /&gt;
| Resistance || R || Ohms || &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Power || P || Watts || W&lt;br /&gt;
|-&lt;br /&gt;
| Frequency || f || Hertz || Hz&lt;br /&gt;
|-&lt;br /&gt;
| Wavelength || &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; || Metres || m&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Electronics&amp;diff=753</id>
		<title>Electronics</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Electronics&amp;diff=753"/>
		<updated>2025-04-21T07:59:32Z</updated>

		<summary type="html">&lt;p&gt;Admin: Added the units and symbols table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Units and symbols ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Quantity !! Symbol !! Measured in !! Units&lt;br /&gt;
|-&lt;br /&gt;
| Voltage (potential difference) || V || Volts || V&lt;br /&gt;
|-&lt;br /&gt;
| Current || I || Amps || A&lt;br /&gt;
|-&lt;br /&gt;
| Resistance || R || Ohms || $\Omega$&lt;br /&gt;
|-&lt;br /&gt;
| Power || P || Watts || W&lt;br /&gt;
|-&lt;br /&gt;
| Frequency || f || Hertz || Hz&lt;br /&gt;
|-&lt;br /&gt;
| Wavelength || $\lambda$ || Metres || m&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=752</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=752"/>
		<updated>2025-04-21T07:46:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Electronics]]&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Git|Git]]&lt;br /&gt;
*** [[Programming/Git/Setting_up_development_environment_in_Git_Bash|Setting up development environment in Git Bash]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Linux/Working_with_AWS_instances|Working with AWS instances]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
** [[Programming/R|R]]&lt;br /&gt;
*** [[Programming/R/Debugging_R_packages_written_in_CPP|Debugging R packages written in C++]]&lt;br /&gt;
* [[Radio]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf|London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/R/Debugging_R_packages_written_in_CPP&amp;diff=751</id>
		<title>Programming/R/Debugging R packages written in CPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/R/Debugging_R_packages_written_in_CPP&amp;diff=751"/>
		<updated>2023-12-24T15:22:29Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;=Debugging R packages written in C++=  Suppose you are faced with an R package, the bulk of which is written in C++. Such a package may be monolithic, and without looking at the C++ code it may be difficult to figure out what’s going on.  The R package &amp;quot;specs&amp;quot; (https://github.com/wijler/specs/) is an example of such a package.  First, a word of warning: don’t try to compile this code using Visual Studio. You will run into all sorts of compatibility issues with R head...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Debugging R packages written in C++=&lt;br /&gt;
&lt;br /&gt;
Suppose you are faced with an R package, the bulk of which is written in C++. Such a package may be monolithic, and without looking at the C++ code it may be difficult to figure out what’s going on.&lt;br /&gt;
&lt;br /&gt;
The R package &amp;quot;specs&amp;quot; (https://github.com/wijler/specs/) is an example of such a package.&lt;br /&gt;
&lt;br /&gt;
First, a word of warning: don’t try to compile this code using Visual Studio. You will run into all sorts of compatibility issues with R headers and libraries and can potentially waste quite a bit of time. This approach is therefore not recommended.&lt;br /&gt;
&lt;br /&gt;
This is what we are going to do instead. First, we are going to fork the R package, thus obtaining https://github.com/sydx/specs/ (sydx is my GitHub username).&lt;br /&gt;
&lt;br /&gt;
Next, we are going to install this package into R, from GitHub. For this we can either use the R package &amp;quot;pak&amp;quot; or the R package &amp;quot;devtools&amp;quot;. We will go for the more standard &amp;quot;devtools&amp;quot;.&lt;br /&gt;
It turns out it’s not a trivial task to install &amp;quot;devtools&amp;quot; itself, even on a new AWS instance with a clean Ubuntu installation. &amp;quot;devtools&amp;quot; has various prerequisites and we can get stuck at several steps. Let us consider these prerequisites and what can go wrong during their installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;openssl&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may get the error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-------------------------- [ERROR MESSAGE] ---------------------------&lt;br /&gt;
tools/version.c:1:10: fatal error: openssl/opensslv.h: No such file or directory&lt;br /&gt;
1 | #include &amp;lt;openssl/opensslv.h&amp;gt;&lt;br /&gt;
| ^~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
compilation terminated.&lt;br /&gt;
--------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is solved with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libssl-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next prerequisite:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;curl&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may get the error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-------------------------- [ERROR MESSAGE] ---------------------------&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1:10: fatal error: curl/curl.h: No such file or directory&lt;br /&gt;
compilation terminated.&lt;br /&gt;
--------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is solved with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libcurl4-openssl-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next prerequisite:&lt;br /&gt;
install.packages(&amp;quot;usethis&amp;quot;)&lt;br /&gt;
Next prerequisite:&lt;br /&gt;
install.packages(&amp;quot;systemfonts&amp;quot;)&lt;br /&gt;
You may get the error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-------------------------- [ERROR MESSAGE] ---------------------------&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1:10: fatal error: fontconfig/fontconfig.h: No such file or directory&lt;br /&gt;
compilation terminated.&lt;br /&gt;
--------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is solved with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libfontconfig1-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next prerequisite:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;textshaping&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may get the error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-------------------------- [ERROR MESSAGE] ---------------------------&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1:10: fatal error: hb-ft.h: No such file or directory&lt;br /&gt;
compilation terminated.&lt;br /&gt;
--------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is solved with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libharfbuzz-dev&lt;br /&gt;
sudo apt-get install libfribidi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next prerequisite:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;ragg&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You may run into the error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-------------------------- [ERROR MESSAGE] ---------------------------&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1:10: fatal error: ft2build.h: No such file or directory&lt;br /&gt;
compilation terminated.&lt;br /&gt;
--------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And a few other problems when installing this package. This is solved with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libfreetype6-dev&lt;br /&gt;
sudo apt-get install libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then installing a development version of this package from the source code repository using the R package &amp;quot;pak&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;pak&amp;quot;)&lt;br /&gt;
pak::pak(&amp;quot;r-lib/ragg&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(In fact, at this point, we could have installed our R package of interest, &amp;quot;specs&amp;quot;, using &amp;quot;pak&amp;quot;, but we decided to still install it using &amp;quot;devtools&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Next prerequisites:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;pkgdown&amp;quot;)&lt;br /&gt;
install.packages(&amp;quot;rcmdcheck&amp;quot;)&lt;br /&gt;
install.packages(&amp;quot;rversions&amp;quot;)&lt;br /&gt;
install.packages(&amp;quot;urlchecker&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally, we can install &amp;quot;devtools&amp;quot; itself:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
install.packages(&amp;quot;devtools&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Using &amp;quot;devtools&amp;quot;, we install the &amp;quot;specs&amp;quot; package from our forked repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
library(&amp;quot;devtools&amp;quot;)&lt;br /&gt;
devtools::install_github(&amp;quot;sydx/specs&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We can then load this package and work with it in R as usual:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
library(specs)&lt;br /&gt;
unemployment &amp;lt;- Unempl_GT[,1] #Extract the Dutch unemployment levels (x1,000)&lt;br /&gt;
GT &amp;lt;- Unempl_GT[,2:11] #Select the first ten Google Trends&lt;br /&gt;
my_specs &amp;lt;- specs(unemployment,GT,p=1) #Estimate specs&lt;br /&gt;
my_coefs &amp;lt;- my_specs$gammas #store the coefficients&lt;br /&gt;
y_d &amp;lt;- my_specs$y_d #Transformed dependent variable&lt;br /&gt;
z_l &amp;lt;- my_specs$v #Transformed independent variables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This package does not provide much in terms of diagnostics, so we are going to add some debug output to the package source, which is in C++. First,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remove.packages('specs')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From shell, we&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir dev&lt;br /&gt;
cd dev&lt;br /&gt;
git clone git@github.com:sydx/specs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Make sure that we have the correct SSH keys on GitHub and on our operating system – see https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)&lt;br /&gt;
&lt;br /&gt;
Now&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd specs/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim specs.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Of course, if you prefer emacs, use emacs, etc.) To the top of the file, add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To the beginning of the body of the specs_rcpp function, add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
std::cout &amp;lt;&amp;lt; &amp;quot;In specs_rcpp...&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add specs.cpp&lt;br /&gt;
git commit -m &amp;quot;Added some debug output.&amp;quot;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next time you go back to R&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
library(&amp;quot;devtools&amp;quot;)&lt;br /&gt;
devtools::install_github(&amp;quot;sydx/specs&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and run the same R code, you will see the newly added debug output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; library(specs)&lt;br /&gt;
&amp;gt; unemployment &amp;lt;- Unempl_GT[,1] #Extract the Dutch unemployment levels (x1,000)&lt;br /&gt;
GT &amp;lt;- Unempl_GT[,2:11] #Select the first ten Google Trends&lt;br /&gt;
my_specs &amp;lt;- specs(unemployment,GT,p=1) #Estimate specs&lt;br /&gt;
In specs_rcpp...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you can use debug output (or indeed attach a debugger, such as gdb) to understand what the package is doing step by step and relate these actions to the corresponding research paper.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=750</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=750"/>
		<updated>2023-12-24T15:11:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Git|Git]]&lt;br /&gt;
*** [[Programming/Git/Setting_up_development_environment_in_Git_Bash|Setting up development environment in Git Bash]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Linux/Working_with_AWS_instances|Working with AWS instances]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
** [[Programming/R|R]]&lt;br /&gt;
*** [[Programming/R/Debugging_R_packages_written_in_CPP|Debugging R packages written in C++]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf|London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=749</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=749"/>
		<updated>2023-12-24T15:11:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Git|Git]]&lt;br /&gt;
*** [[Programming/Git/Setting_up_development_environment_in_Git_Bash|Setting up development environment in Git Bash]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Linux/Working_with_AWS_instances|Working with AWS instances]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
** [[Programming/R|R]]&lt;br /&gt;
** [[Programming/R/Debugging_R_packages_written_in_CPP|Debugging R packages written in C++]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf|London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=748</id>
		<title>Programming/Linux/Working with AWS instances</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=748"/>
		<updated>2023-12-14T22:36:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elastic storage=&lt;br /&gt;
&lt;br /&gt;
Once you have changed the size of a volume using AWS's elastic storage, the changes won't be immediately reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New volumes should be formatted to be accessible. Resized existing volumes should also be modified (resized) from inside the operating systems. A detailed discussion of these aspects can be found in&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html|Making an Amazon EBS volume available for use on Linux]&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html|Extending a Linux file system after resizing a volume]&lt;br /&gt;
&lt;br /&gt;
However, as a quick solution, run the following two commands, in the given order, after resizing a volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo growpart /dev/xvda 1&lt;br /&gt;
sudo resize2fs /dev/xvda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The volume size changes should then be reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information comes from [https://stackoverflow.com/questions/62146336/new-volume-in-ec2-instance-not-reflecting|this Stack Overflow post].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=747</id>
		<title>Programming/Linux/Working with AWS instances</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=747"/>
		<updated>2023-12-14T22:35:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elastic storage=&lt;br /&gt;
&lt;br /&gt;
Once you have changed the size of a volume using AWS's elastic storage, the changes won't be immediately reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New volumes should be formatted to be accessible. Resized existing volumes should also be modified (resized) from inside the operating systems. A detailed discussion of these aspects can be found in&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html|Making an Amazon EBS volume available for use on Linux]&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html|Extending a Linux file system after resizing a volume]&lt;br /&gt;
&lt;br /&gt;
However, as a quick solution, run the following two commands, in the given order, after resizing a volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo growpart /dev/xvda 1&lt;br /&gt;
sudo resize2fs /dev/xvda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The volume size changes should then be reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information comes from [https://stackoverflow.com/questions/62146336/new-volume-in-ec2-instance-not-reflecting | this Stack Overflow post].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=746</id>
		<title>Programming/Linux/Working with AWS instances</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=746"/>
		<updated>2023-12-14T22:35:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elastic storage=&lt;br /&gt;
&lt;br /&gt;
Once you have changed the size of a volume using AWS's elastic storage, the changes won't be immediately reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New volumes should be formatted to be accessible. Resized existing volumes should also be modified (resized) from inside the operating systems. A detailed discussion of these aspects can be found in&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html|Making an Amazon EBS volume available for use on Linux]&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html|Extending a Linux file system after resizing a volume]&lt;br /&gt;
&lt;br /&gt;
However, as a quick solution, run the following two commands, in the given order, after resizing a volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo growpart /dev/xvda 1&lt;br /&gt;
sudo resize2fs /dev/xvda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The volume size changes should then be reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information comes from [https://stackoverflow.com/questions/62146336/new-volume-in-ec2-instance-not-reflecting|this Stack Overflow post].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=745</id>
		<title>Programming/Linux/Working with AWS instances</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=745"/>
		<updated>2023-12-14T22:34:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elastic storage=&lt;br /&gt;
&lt;br /&gt;
Once you have changed the size of a volume using AWS's elastic storage, the changes won't be immediately reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New volumes should be formatted to be accessible. Resized existing volumes should also be modified (resized) from inside the operating systems. A detailed discussion of these aspects can be found in&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html|Making an Amazon EBS volume available for use on Linux]&lt;br /&gt;
* [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html|Extending a Linux file system after resizing a volume]&lt;br /&gt;
&lt;br /&gt;
However, as a quick solution, run the following two commands, in the given order, after resizing a volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo growpart /dev/xvda 1&lt;br /&gt;
sudo resize2fs /dev/xvda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The volume size changes should then be reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=744</id>
		<title>Programming/Linux/Working with AWS instances</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Linux/Working_with_AWS_instances&amp;diff=744"/>
		<updated>2023-12-14T22:34:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;=Elastic storage=  Once you have changed the size of a volume using AWS's elastic storage, the changes won't be immediately reflected in &amp;lt;pre&amp;gt; df -h &amp;lt;/pre&amp;gt;  New volumes should be formatted to be accessible. Resized existing volumes should also be modified (resized) from inside the operating systems. A detailed discussion of these aspects can be found in * [|Making an Amazon EBS volume available for use on Linux] * [|Extending a Linux file system after resizing a volume]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elastic storage=&lt;br /&gt;
&lt;br /&gt;
Once you have changed the size of a volume using AWS's elastic storage, the changes won't be immediately reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New volumes should be formatted to be accessible. Resized existing volumes should also be modified (resized) from inside the operating systems. A detailed discussion of these aspects can be found in&lt;br /&gt;
* [|Making an Amazon EBS volume available for use on Linux]&lt;br /&gt;
* [|Extending a Linux file system after resizing a volume]&lt;br /&gt;
&lt;br /&gt;
However, as a quick solution, run the following two commands, in the given order, after resizing a volume:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo growpart /dev/xvda 1&lt;br /&gt;
sudo resize2fs /dev/xvda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The volume size changes should then be reflected in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=743</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=743"/>
		<updated>2023-12-14T22:30:00Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Git|Git]]&lt;br /&gt;
*** [[Programming/Git/Setting_up_development_environment_in_Git_Bash|Setting up development environment in Git Bash]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
** [[Programming/Linux/Working_with_AWS_instances|Working with AWS instances]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf|London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Tools/CMake&amp;diff=742</id>
		<title>Programming/Tools/CMake</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Tools/CMake&amp;diff=742"/>
		<updated>2023-11-29T13:49:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
[https://cmake.org/ CMake] is an open-source, cross-platform family of tools designed to build, test, and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. The suite of CMake tools were created by [https://www.kitware.com/ Kitware] in response to the need for a powerful, cross-platform build environment for open-source projects such as [https://itk.org/ ITK] and [https://vtk.org/ VTK].&lt;br /&gt;
&lt;br /&gt;
CMake is part of Kitware's collection of commercially supported open-source platforms for software development.&lt;br /&gt;
&lt;br /&gt;
Whereas [https://www.gnu.org/software/make/ Make] is a build system, which drives the compiler and other build tools to build your code, CMake is a generator of build systems. CMake can produce Makefiles, [https://ninja-build.org/ Ninja] build files, [https://www.kdevelop.org/ KDEvelop] or [https://developer.apple.com/xcode/ Xcode] projects, and [https://visualstudio.microsoft.com/ Visual Studio] solutions from the same starting point&amp;amp;mdash;the same &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; file. So if you have a platform-independent project, CMake is a way to make it build system-independent as well.&lt;br /&gt;
&lt;br /&gt;
According to [https://www.qt.io/blog/author/lars-knoll Lars Knoll]'s [https://www.qt.io/blog/2019/08/07/technical-vision-qt-6 Technical vision for Qt 6],&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
CMake is by far the most widely used build system in the C++ world, and better integration with it is sorely needed.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= This tutorial =&lt;br /&gt;
&lt;br /&gt;
In this tutorial we demonstrate how to set up and build an (admittedly very simple) project using CMake on an [https://ubuntu.com/ Ubuntu] 20.04.1 LTS system. The tutorial should be applicable to other Linux systems, possibly with minor modifications.&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
&lt;br /&gt;
First, we need to install CMake:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt update&lt;br /&gt;
...&lt;br /&gt;
$ sudo apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we'll be using CMake to generate Makefiles and build them using Make, we need to install Make:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt install make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we'll be using CMake with &amp;lt;tt&amp;gt;gcc&amp;lt;/tt&amp;gt;&amp;amp;mdash;[https://gcc.gnu.org/ GNU project C and C++ compiler],&amp;amp;mdash; we also need to install &amp;lt;tt&amp;gt;g++&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt install g++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Basic project =&lt;br /&gt;
&lt;br /&gt;
We'll start working from the home directory, so we&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to it. We then create a directory for the project&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir my_project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;cd&amp;lt;/tt&amp;gt; into it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd my_project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now let us create a directory for source files&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the file &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch CMakeLists.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; contains a set of directives and instructions describing the project's source files and targets (executable, library, or both).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.5)&lt;br /&gt;
project(cmake_test_project)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While you can build the project from the current directory (&amp;lt;tt&amp;gt;.../my_project/&amp;lt;/tt&amp;gt;), CMake will generate some files that will pollute it. Therefore it is a good idea to&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir build&lt;br /&gt;
$ cd build/&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should see something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- The C compiler identification is GNU 9.3.0&lt;br /&gt;
-- The CXX compiler identification is GNU 9.3.0&lt;br /&gt;
-- Check for working C compiler: /usr/bin/cc&lt;br /&gt;
-- Check for working C compiler: /usr/bin/cc -- works&lt;br /&gt;
-- Detecting C compiler ABI info&lt;br /&gt;
-- Detecting C compiler ABI info - done&lt;br /&gt;
-- Detecting C compile features&lt;br /&gt;
-- Detecting C compile features - done&lt;br /&gt;
-- Check for working CXX compiler: /usr/bin/c++&lt;br /&gt;
-- Check for working CXX compiler: /usr/bin/c++ -- works&lt;br /&gt;
-- Detecting CXX compiler ABI info&lt;br /&gt;
-- Detecting CXX compiler ABI info - done&lt;br /&gt;
-- Detecting CXX compile features&lt;br /&gt;
-- Detecting CXX compile features - done&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt; you will see a pretty large &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; containing something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# CMAKE generated file: DO NOT EDIT!&lt;br /&gt;
# Generated by &amp;quot;Unix Makefiles&amp;quot; Generator, CMake Version 3.16&lt;br /&gt;
&lt;br /&gt;
# Default target executed when no arguments are given to make.&lt;br /&gt;
default_target: all&lt;br /&gt;
&lt;br /&gt;
.PHONY : default_target&lt;br /&gt;
&lt;br /&gt;
# Allow only one &amp;quot;make -f Makefile2&amp;quot; at a time, but pass parallelism.&lt;br /&gt;
.NOTPARALLEL:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Special targets provided by cmake.&lt;br /&gt;
&lt;br /&gt;
# Disable implicit rules so canonical targets will work.&lt;br /&gt;
.SUFFIXES:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Remove some rules from gmake that .SUFFIXES does not remove.&lt;br /&gt;
SUFFIXES =&lt;br /&gt;
&lt;br /&gt;
.SUFFIXES: .hpux_make_needs_suffix_list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Suppress display of executed commands.&lt;br /&gt;
$(VERBOSE).SILENT:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# A target that is always out of date.&lt;br /&gt;
cmake_force:&lt;br /&gt;
&lt;br /&gt;
.PHONY : cmake_force&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Set environment variables for the build.&lt;br /&gt;
&lt;br /&gt;
# The shell in which to execute make rules.&lt;br /&gt;
SHELL = /bin/sh&lt;br /&gt;
&lt;br /&gt;
# The CMake executable.&lt;br /&gt;
CMAKE_COMMAND = /usr/bin/cmake&lt;br /&gt;
&lt;br /&gt;
# The command to remove a file.&lt;br /&gt;
RM = /usr/bin/cmake -E remove -f&lt;br /&gt;
&lt;br /&gt;
# Escaping for special characters.&lt;br /&gt;
EQUALS = =&lt;br /&gt;
&lt;br /&gt;
# The top-level source directory on which CMake was run.&lt;br /&gt;
CMAKE_SOURCE_DIR = /home/ubuntu/my_project&lt;br /&gt;
&lt;br /&gt;
# The top-level build directory on which CMake was run.&lt;br /&gt;
CMAKE_BINARY_DIR = /home/ubuntu/my_project/build&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Targets provided globally by CMake.&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target rebuild_cache&lt;br /&gt;
rebuild_cache:&lt;br /&gt;
        @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan &amp;quot;Running                                                                                                              CMake to regenerate build system...&amp;quot;&lt;br /&gt;
        /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)&lt;br /&gt;
.PHONY : rebuild_cache&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target rebuild_cache&lt;br /&gt;
rebuild_cache/fast: rebuild_cache&lt;br /&gt;
&lt;br /&gt;
.PHONY : rebuild_cache/fast&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target edit_cache&lt;br /&gt;
edit_cache:&lt;br /&gt;
        @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan &amp;quot;No inter                                                                                                             active CMake dialog available...&amp;quot;&lt;br /&gt;
        /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.&lt;br /&gt;
.PHONY : edit_cache&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target edit_cache&lt;br /&gt;
edit_cache/fast: edit_cache&lt;br /&gt;
&lt;br /&gt;
.PHONY : edit_cache/fast&lt;br /&gt;
&lt;br /&gt;
# The main all target&lt;br /&gt;
all: cmake_check_build_system&lt;br /&gt;
        $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/my_project/build/C                                                                                                             MakeFiles /home/ubuntu/my_project/build/CMakeFiles/progress.marks&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 all&lt;br /&gt;
        $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/my_project/build/C                                                                                                             MakeFiles 0&lt;br /&gt;
.PHONY : all&lt;br /&gt;
&lt;br /&gt;
# The main clean target&lt;br /&gt;
clean:&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 clean&lt;br /&gt;
.PHONY : clean&lt;br /&gt;
&lt;br /&gt;
# The main clean target&lt;br /&gt;
clean/fast: clean&lt;br /&gt;
&lt;br /&gt;
.PHONY : clean/fast&lt;br /&gt;
&lt;br /&gt;
# Prepare targets for installation.&lt;br /&gt;
preinstall: all&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 preinstall&lt;br /&gt;
.PHONY : preinstall&lt;br /&gt;
&lt;br /&gt;
# Prepare targets for installation.&lt;br /&gt;
preinstall/fast:&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 preinstall&lt;br /&gt;
.PHONY : preinstall/fast&lt;br /&gt;
&lt;br /&gt;
# clear depends&lt;br /&gt;
depend:&lt;br /&gt;
        $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-bui                                                                                                             ld-system CMakeFiles/Makefile.cmake 1&lt;br /&gt;
.PHONY : depend&lt;br /&gt;
&lt;br /&gt;
# Help Target&lt;br /&gt;
help:&lt;br /&gt;
        @echo &amp;quot;The following are some of the valid targets for this Makefile:&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... all (the default if no target is provided)&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... clean&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... depend&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... rebuild_cache&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... edit_cache&amp;quot;&lt;br /&gt;
.PHONY : help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Special targets to cleanup operation of make.&lt;br /&gt;
&lt;br /&gt;
# Special rule to run CMake to check the build system integrity.&lt;br /&gt;
# No rule that depends on this can have commands that come from listfiles&lt;br /&gt;
# because they might be regenerated.&lt;br /&gt;
cmake_check_build_system:&lt;br /&gt;
        $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-bui                                                                                                             ld-system CMakeFiles/Makefile.cmake 0&lt;br /&gt;
.PHONY : cmake_check_build_system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; is rather complex, but we needn't worry: CMake has generated it for us. However, this &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (at this stage) doesn't do anything useful. That is because we haven't written any code in our project. Let's add it.&lt;br /&gt;
&lt;br /&gt;
First, let us modify &amp;lt;tt&amp;gt;.../my_project/CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.5)&lt;br /&gt;
project(cmake_test_project)&lt;br /&gt;
&lt;br /&gt;
message(STATUS &amp;quot;*** Building my_project from ${PROJECT_SOURCE_DIR} ***&amp;quot;)&lt;br /&gt;
add_subdirectory(${PROJECT_SOURCE_DIR}/src)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that we are under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt; and run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following error message will appear:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
CMake Error at CMakeLists.txt:5 (add_subdirectory):&lt;br /&gt;
  The source directory&lt;br /&gt;
&lt;br /&gt;
    /home/ubuntu/my_project/src&lt;br /&gt;
&lt;br /&gt;
  does not contain a CMakeLists.txt file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Configuring incomplete, errors occurred!&lt;br /&gt;
See also &amp;quot;/home/ubuntu/my_project/build/CMakeFiles/CMakeOutput.log&amp;quot;.&lt;br /&gt;
See also &amp;quot;/home/ubuntu/my_project/build/CMakeFiles/CMakeError.log&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the error suggests, the directory &amp;lt;tt&amp;gt;.../my_project/src/&amp;lt;/tt&amp;gt;, which we have added to &amp;lt;tt&amp;gt;.../my_project/CMakeLists.txt&amp;lt;/tt&amp;gt; must contain (another) &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; file. CMake uses a hierarchical configuration system. For now, let us simply&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch ../src/CMakeLists.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(assuming we are still under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt;). Thus we create an empty child &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; file that does nothing.&lt;br /&gt;
&lt;br /&gt;
Let's try building again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This time the build has been successful:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Adding an executable =&lt;br /&gt;
&lt;br /&gt;
However, this build has been trivial since the project contains no code. Let us add some code to it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch ../src/main.c&lt;br /&gt;
$ nano ../src/main.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and let's write the following content to &amp;lt;tt&amp;gt;.../my_project/src/main.c&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to build this file, we need to modify &amp;lt;tt&amp;gt;.../my_project/src/CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_executable(bin_main main.c)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells CMake to build an executable, &amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt; out of the source files or, in this case, source file &amp;lt;tt&amp;gt;main.c&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Having made sure we are still under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;, we again run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This has generated a &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt;. Now let's run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt; will be under &amp;lt;tt&amp;gt;.../my_project/build/src/&amp;lt;/tt&amp;gt; (since the directory structure under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt; mimics that above).&lt;br /&gt;
&lt;br /&gt;
We can run it (assuming we are under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Header-only libraries =&lt;br /&gt;
&lt;br /&gt;
Let us modify &amp;lt;tt&amp;gt;.../my_project/build/src/main.c&amp;lt;/tt&amp;gt; as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    float radius, vol;&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Input the radius of the sphere: &amp;quot;);&lt;br /&gt;
    radius = get_value();&lt;br /&gt;
    printf(&amp;quot;Surface area = &amp;quot;);&lt;br /&gt;
    put_value(surface_area(radius));&lt;br /&gt;
    vol = volume(radius);&lt;br /&gt;
    printf(&amp;quot;Volume of sphere = &amp;quot;);&lt;br /&gt;
    put_value(vol);&lt;br /&gt;
&lt;br /&gt;
    return EXIT_SUCCESS;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the directory &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt;, let us run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
/home/ubuntu/my_project/src/main.c:1:10: fatal error: sphere.h: No such file or directory&lt;br /&gt;
    1 | #include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
      |          ^~~~~~~~~~&lt;br /&gt;
compilation terminated.&lt;br /&gt;
make[2]: *** [src/CMakeFiles/bin_main.dir/build.make:63: src/CMakeFiles/bin_main.dir/main.c.o] Error 1&lt;br /&gt;
make[1]: *** [CMakeFiles/Makefile2:94: src/CMakeFiles/bin_main.dir/all] Error 2&lt;br /&gt;
make: *** [Makefile:84: all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We are getting this error because we haven't yet created &amp;lt;tt&amp;gt;sphere.h&amp;lt;/tt&amp;gt;. Let us first&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir .../my_project/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and underneath it create &amp;lt;tt&amp;gt;sphere.h&amp;lt;/tt&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef SPHERE_H_INCLUDED&lt;br /&gt;
#define SPHERE_H_INCLUDED&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PI 3.14159265&lt;br /&gt;
&lt;br /&gt;
float get_value(void)&lt;br /&gt;
{&lt;br /&gt;
    float x;&lt;br /&gt;
&lt;br /&gt;
    scanf(&amp;quot;%f&amp;quot;, &amp;amp;x);&lt;br /&gt;
    return x;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void put_value(float x)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;%f\n&amp;quot;, x);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n);&lt;br /&gt;
&lt;br /&gt;
float surface_area(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float volume(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 3) / 3.;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n)&lt;br /&gt;
{&lt;br /&gt;
    if (n &amp;lt; 0)&lt;br /&gt;
        return 1. / my_pow(x, -n);&lt;br /&gt;
    else if (n == 0)&lt;br /&gt;
        return 1;&lt;br /&gt;
    else&lt;br /&gt;
        return x * my_pow(x, n - 1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#endif /* SPHERE_H_INCLUDED */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to tell the compiler about this file (actually, the directory that contains it) by modifying &amp;lt;tt&amp;gt;.../my_project/CMakeLists.txt&amp;lt;/tt&amp;gt; as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.5)&lt;br /&gt;
project(cmake_test_project)&lt;br /&gt;
&lt;br /&gt;
message(STATUS &amp;quot;*** Building my_project from ${PROJECT_SOURCE_DIR} ***&amp;quot;)&lt;br /&gt;
include_directories(${PROJECT_SOURCE_DIR}/include)&lt;br /&gt;
add_subdirectory(${PROJECT_SOURCE_DIR}/src)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Note that we have added &amp;lt;tt&amp;gt;include_directories&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
Make sure that we are under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt; and run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Looks like our build has been successful. Let's test the executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Input the radius of the sphere: 3.5&lt;br /&gt;
Surface area = 153.938034&lt;br /&gt;
Volume of sphere = 179.594376&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sphere.h&amp;lt;/tt&amp;gt; constitutes a &amp;quot;header-only&amp;quot; library. A library is called '''header-only''' if the full definitions of all macros, functions, and classes comprising the library are visible to the compiler in a header file form. Header-only libraries do not need to be separately compiled, packaged, and installed in order to be used. All that is required is to point the compiler at the location of the headers, and then &amp;lt;tt&amp;gt;#include&amp;lt;/tt&amp;gt; the header files into the application source. Another advantage is that the compiler's optimizer can do a much better job when all the library's source code is available.&lt;br /&gt;
&lt;br /&gt;
The disadvantages include:&lt;br /&gt;
* brittleness&amp;amp;mdash;most changes to the library will require recompilation of all compilation units using that library;&lt;br /&gt;
* longer compilation times&amp;amp;mdash;the compilation unit must see the implementation of all components in the included files, rather than just their interfaces;&lt;br /&gt;
* code-bloat (this may be disputed)&amp;amp;mdash;the necessary use of inline statements in non-class functions can lead to code bloat by over-inlining.&lt;br /&gt;
&lt;br /&gt;
Nonetheless, the header-only form is popular because it avoids the (often much more serious) problem of packaging.&lt;br /&gt;
&lt;br /&gt;
For C++ templates, including the definitions in the header is the only way to compile, since the compiler needs to know the full definition of the templates in order to instantiate.&lt;br /&gt;
&lt;br /&gt;
= Adding a static library =&lt;br /&gt;
&lt;br /&gt;
A '''library''' is a collection of items that you can call from your program. You can save much time by reusing work that someone else has already done and be more confident that it has fewer bugs: since other people may be using the same library, you will benefit from their usage, bug detection, and bug fixes.&lt;br /&gt;
&lt;br /&gt;
We have mentioned some reasons why header-only libraries may not be a good idea in some situations.&lt;br /&gt;
&lt;br /&gt;
The next most straightforward way of using a library function is to have the object files from the library linked directly into your executable, just as with those you have compiled yourself. When linked like this the library is called a '''static library''', because the library will remain unchanged unless the program is recompiled. The final result is a simple executable with no dependencies.&lt;br /&gt;
&lt;br /&gt;
The static library under Linux is nothing more than an archive of object files.&lt;br /&gt;
&lt;br /&gt;
Let us modify &amp;lt;tt&amp;gt;.../my_project/build/include/sphere.h&amp;lt;/tt&amp;gt; so it contains declarations rather than definitions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef SPHERE_H_INCLUDED&lt;br /&gt;
#define SPHERE_H_INCLUDED&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PI 3.14159265&lt;br /&gt;
&lt;br /&gt;
float get_value(void);&lt;br /&gt;
void put_value(float x);&lt;br /&gt;
float surface_area(float r);&lt;br /&gt;
float volume(float r);&lt;br /&gt;
&lt;br /&gt;
#endif /* SPHERE_H_INCLUDED */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let us add &amp;lt;tt&amp;gt;.../my_project/build/src/geometry.c&amp;lt;/tt&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n);&lt;br /&gt;
&lt;br /&gt;
float surface_area(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float volume(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 3) / 3.;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n)&lt;br /&gt;
{&lt;br /&gt;
    if (n &amp;lt; 0)&lt;br /&gt;
        return 1. / my_pow(x, -n);&lt;br /&gt;
    else if (n == 0)&lt;br /&gt;
        return 1;&lt;br /&gt;
    else&lt;br /&gt;
        return x * my_pow(x, n - 1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And let us add &amp;lt;tt&amp;gt;.../my_project/build/src/simple_io.c&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
float get_value(void)&lt;br /&gt;
{&lt;br /&gt;
    float x;&lt;br /&gt;
&lt;br /&gt;
    scanf(&amp;quot;%f&amp;quot;, &amp;amp;x);&lt;br /&gt;
    return x;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void put_value(float x)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;%f\n&amp;quot;, x);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we now (making sure that we are under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;) try to build the project, we'll get some errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make clean&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
/usr/bin/ld: CMakeFiles/bin_main.dir/main.c.o: in function `main':&lt;br /&gt;
main.c:(.text+0x1e): undefined reference to `get_value'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x42): undefined reference to `surface_area'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x47): undefined reference to `put_value'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x53): undefined reference to `volume'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x77): undefined reference to `put_value'&lt;br /&gt;
collect2: error: ld returned 1 exit status&lt;br /&gt;
make[2]: *** [src/CMakeFiles/bin_main.dir/build.make:84: src/bin_main] Error 1&lt;br /&gt;
make[1]: *** [CMakeFiles/Makefile2:94: src/CMakeFiles/bin_main.dir/all] Error 2&lt;br /&gt;
make: *** [Makefile:84: all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's because CMake doesn't know about the source files &amp;lt;tt&amp;gt;geometry.c&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;simple_io.c&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Let us edit &amp;lt;tt&amp;gt;.../my_project/src/CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_library(lib_sphere geometry.c simple_io.c)&lt;br /&gt;
add_executable(bin_main main.c)&lt;br /&gt;
target_link_libraries(bin_main lib_sphere)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we now (making sure that we are under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;) try to build the project, everything will work:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target lib_sphere&lt;br /&gt;
[ 20%] Building C object src/CMakeFiles/lib_sphere.dir/geometry.c.o&lt;br /&gt;
[ 40%] Building C object src/CMakeFiles/lib_sphere.dir/simple_io.c.o&lt;br /&gt;
[ 60%] Linking C static library liblib_sphere.a&lt;br /&gt;
[ 60%] Built target lib_sphere&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 80%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
ubuntu@ip-172-31-24-17:~/my_project/build$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the resulting static library is called &amp;lt;tt&amp;gt;liblib_sphere.a&amp;lt;/tt&amp;gt;. We shouldn't have named the library &amp;lt;tt&amp;gt;lib_sphere&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt;: the prefix &amp;lt;tt&amp;gt;lib&amp;lt;/tt&amp;gt; is automatically prepended, the suffix &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt; is automatically appended.&lt;br /&gt;
&lt;br /&gt;
Let's test the executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Input the radius of the sphere: 3.5&lt;br /&gt;
Surface area = 153.938034&lt;br /&gt;
Volume of sphere = 179.594376&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Adding a shared library =&lt;br /&gt;
&lt;br /&gt;
Static libraries, while reusable across multiple programs, are locked into a program at compile-time. '''Dynamic''' or '''shared libraries''' exist as separate files outside the executable file.&lt;br /&gt;
&lt;br /&gt;
The code of a static library is locked into the executable file and cannot be modified without a re-compile. In contrast, a dynamic library can be modified without a need to recompile. If a dynamic library becomes corrupt, the executable file may no longer work. A static library, however, is untouchable because it lives inside the executable file. The upside of using a dynamic library is that multiple running applications can use the same library without the need for each to have its own copy.&lt;br /&gt;
&lt;br /&gt;
Let us see how we can modify &amp;lt;tt&amp;gt;.../my_project/src/CMakeLists.txt&amp;lt;/tt&amp;gt; to build a static library instead of a dynamic one:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_library(sphere SHARED geometry.c simple_io.c)&lt;br /&gt;
add_executable(bin_main main.c)&lt;br /&gt;
target_link_libraries(bin_main sphere)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make clean&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target sphere&lt;br /&gt;
[ 20%] Building C object src/CMakeFiles/sphere.dir/geometry.c.o&lt;br /&gt;
[ 40%] Building C object src/CMakeFiles/sphere.dir/simple_io.c.o&lt;br /&gt;
[ 60%] Linking C shared library libsphere.so&lt;br /&gt;
[ 60%] Built target sphere&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 80%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let's try running the executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Input the radius of the sphere: 3.57&lt;br /&gt;
Surface area = 160.157135&lt;br /&gt;
Volume of sphere = 190.586975&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we now&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm src/libsphere.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and try&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
we'll get&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/bin_main: error while loading shared libraries: libsphere.so: cannot open shared object file: No such file or directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The shared library file &amp;lt;tt&amp;gt;libsphere.so&amp;lt;/tt&amp;gt; is now required for running &amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt;; the code for functions such as &amp;lt;tt&amp;gt;surface_area&amp;lt;/tt&amp;gt; is no longer included in the binary &amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=741</id>
		<title>Programming/Git/Setting up development environment in Git Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=741"/>
		<updated>2023-11-25T16:16:41Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
&lt;br /&gt;
If you are used to command line-based development, you may wish to set up your development environment within '''Git Bash''', an application for Microsoft Windows environments which provides an emulation layer for a Git command line experience. Bash is an acronym for Bourne Again Shell. A shell is a terminal application used to interface with an operating system through written commands.&lt;br /&gt;
&lt;br /&gt;
Git Bash is included as part of the [https://git-scm.com/download/win Git For Windows] package. Download and install Git For Windows like other Windows applications. Once downloaded, find the included .exe file and open to execute Git Bash.&lt;br /&gt;
&lt;br /&gt;
'''Installing Anaconda'''&lt;br /&gt;
&lt;br /&gt;
Next, you need to install the Anaconda Python distribution on your system. You can download it from [https://www.anaconda.com/download here]. Once installed, '''conda''' won't be immediately available within Git Bash. Go into the directory where you installed Anaconda, then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.../etc/profile.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in that directory you will find a file called '''conda.sh'''. Add it to the end of your '''~/.bashrc''' file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;. ${PWD}/conda.sh&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the path to '''conda.sh''' contains spaces, you should use instead&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;. '${PWD}'/conda.sh&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Close and re-open Git Bash for the changes to take effect. You may see&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: Found ~/.bashrc but no ~/bash_profile, ~/.bash_login or ~/.profile.&lt;br /&gt;
&lt;br /&gt;
This looks like an incorrect setup.&lt;br /&gt;
A ~/.bash_profile that loads ~/.bashrc will be create for you.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's not a problem.&lt;br /&gt;
&lt;br /&gt;
Let's create a '''conda''' environment called &amp;quot;development&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create --name development&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to init '''bash''',&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda init bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
close and reopen Git Bash, and activate the new conda environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate development&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suppose we now want to do some C or C++ development. Let's install '''m2w64-gcc''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge m2w64-gcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We can now run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
g++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhaps we also want to develop in Fortran. In this case&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge m2w64-gcc-fortran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gfortran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's also useful to have Make:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ninja:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge ninja&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ninja&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, CMake:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point it may be a good idea to install some advanced software development editors, such as Emacs or Vim. Vim is available as a '''conda''' package:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge vim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=740</id>
		<title>Programming/Git/Setting up development environment in Git Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=740"/>
		<updated>2023-11-25T15:27:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
&lt;br /&gt;
If you are used to command line-based development, you may wish to set up your development environment within '''Git Bash''', an application for Microsoft Windows environments which provides an emulation layer for a Git command line experience. Bash is an acronym for Bourne Again Shell. A shell is a terminal application used to interface with an operating system through written commands.&lt;br /&gt;
&lt;br /&gt;
Git Bash is included as part of the [https://git-scm.com/download/win Git For Windows] package. Download and install Git For Windows like other Windows applications. Once downloaded, find the included .exe file and open to execute Git Bash.&lt;br /&gt;
&lt;br /&gt;
'''Installing Anaconda'''&lt;br /&gt;
&lt;br /&gt;
Next, you need to install the Anaconda Python distribution on your system. You can download it from [https://www.anaconda.com/download here]. Once installed, '''conda''' won't be immediately available within Git Bash. Go into the directory where you installed Anaconda, then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.../etc/profile.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in that directory you will find a file called '''conda.sh'''. Add it to the end of your '''~/.bashrc''' file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;. ${PWD}/conda.sh&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the path to '''conda.sh''' contains spaces, you should use instead&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;. '${PWD}'/conda.sh&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Close and re-open Git Bash for the changes to take effect. You may see&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: Found ~/.bashrc but no ~/bash_profile, ~/.bash_login or ~/.profile.&lt;br /&gt;
&lt;br /&gt;
This looks like an incorrect setup.&lt;br /&gt;
A ~/.bash_profile that loads ~/.bashrc will be create for you.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's not a problem.&lt;br /&gt;
&lt;br /&gt;
Let's create a '''conda''' environment called &amp;quot;development&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create --name development&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We then need to init '''bash''',&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda init bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
close and reopen Git Bash, and activate the new conda environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate development&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suppose we now want to do some C or C++ development. Let's install '''m2w64-gcc''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge m2w64-gcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We can now run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
g++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhaps we also want to develop in Fortran. In this case&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge m2w64-gcc-fortran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gfortran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's also useful to have Make:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ninja:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge ninja&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ninja&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, CMake:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install -c conda-forge cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
so we can run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=739</id>
		<title>Programming/Git/Setting up development environment in Git Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=739"/>
		<updated>2023-11-25T15:18:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
&lt;br /&gt;
If you are used to command line-based development, you may wish to set up your development environment within '''Git Bash''', an application for Microsoft Windows environments which provides an emulation layer for a Git command line experience. Bash is an acronym for Bourne Again Shell. A shell is a terminal application used to interface with an operating system through written commands.&lt;br /&gt;
&lt;br /&gt;
Git Bash is included as part of the [https://git-scm.com/download/win Git For Windows] package. Download and install Git For Windows like other Windows applications. Once downloaded, find the included .exe file and open to execute Git Bash.&lt;br /&gt;
&lt;br /&gt;
'''Installing Anaconda'''&lt;br /&gt;
&lt;br /&gt;
Next, you need to install the Anaconda Python distribution on your system. You can download it from [https://www.anaconda.com/download here]. Once installed, '''conda''' won't be immediately available within Git Bash.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=738</id>
		<title>Programming/Git/Setting up development environment in Git Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=738"/>
		<updated>2023-11-25T15:18:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
&lt;br /&gt;
If you are used to command line-based development, you may wish to set up your development environment within '''Git Bash''', an application for Microsoft Windows environments which provides an emulation layer for a Git command line experience. Bash is an acronym for Bourne Again Shell. A shell is a terminal application used to interface with an operating system through written commands.&lt;br /&gt;
&lt;br /&gt;
Git Bash is included as part of the [https://git-scm.com/download/win Git For Windows] package. Download and install Git For Windows like other Windows applications. Once downloaded, find the included .exe file and open to execute Git Bash.&lt;br /&gt;
&lt;br /&gt;
'''Installing Anaconda'''&lt;br /&gt;
&lt;br /&gt;
Next, you need to install the Anaconda Python distribution on your system. You can download it from [https://www.anaconda.com/download here]. Once installed, &amp;lt;pre&amp;gt;conda&amp;lt;/pre&amp;gt; won't be immediately available within Git Bash.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=737</id>
		<title>Programming/Git/Setting up development environment in Git Bash</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Git/Setting_up_development_environment_in_Git_Bash&amp;diff=737"/>
		<updated>2023-11-25T14:45:56Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;'''Introduction'''  If you are used to command line-based development, you may wish to set up your development environment within '''Git Bash''', an application for Microsoft Windows environments which provides an emulation layer for a Git command line experience. Bash is an acronym for Bourne Again Shell. A shell is a terminal application used to interface with an operating system through written commands.  Git Bash is included as part of the [https://git-scm.com/downlo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Introduction'''&lt;br /&gt;
&lt;br /&gt;
If you are used to command line-based development, you may wish to set up your development environment within '''Git Bash''', an application for Microsoft Windows environments which provides an emulation layer for a Git command line experience. Bash is an acronym for Bourne Again Shell. A shell is a terminal application used to interface with an operating system through written commands.&lt;br /&gt;
&lt;br /&gt;
Git Bash is included as part of the [https://git-scm.com/download/win Git For Windows] package. Download and install Git For Windows like other Windows applications. Once downloaded, find the included .exe file and open to execute Git Bash.&lt;br /&gt;
&lt;br /&gt;
'''Installing Anaconda'''&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Git&amp;diff=736</id>
		<title>Programming/Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Git&amp;diff=736"/>
		<updated>2023-11-25T14:41:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;[https://git-scm.com/ Git] is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://git-scm.com/ Git] is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=735</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=735"/>
		<updated>2023-11-25T14:38:39Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Git|Git]]&lt;br /&gt;
*** [[Programming/Git/Setting_up_development_environment_in_Git_Bash|Setting up development environment in Git Bash]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf|London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Programming/Tools/CMake&amp;diff=734</id>
		<title>Programming/Tools/CMake</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Programming/Tools/CMake&amp;diff=734"/>
		<updated>2023-11-22T17:51:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
[https://cmake.org/ CMake] is an open-source, cross-platform family of tools designed to build, test, and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice. The suite of CMake tools were created by [https://www.kitware.com/ Kitware] in response to the need for a powerful, cross-platform build environment for open-source projects such as [https://itk.org/ ITK] and [https://vtk.org/ VTK].&lt;br /&gt;
&lt;br /&gt;
CMake is part of Kitware's collection of commercially supported open-source platforms for software development.&lt;br /&gt;
&lt;br /&gt;
Whereas [https://www.gnu.org/software/make/ Make] is a build system, which drives the compiler and other build tools to build your code, CMake is a generator of build systems. CMake can produce Makefiles, [https://ninja-build.org/ Ninja] build files, [https://www.kdevelop.org/ KDEvelop] or [https://developer.apple.com/xcode/ Xcode] projects, and [https://visualstudio.microsoft.com/ Visual Studio] solutions from the same starting point&amp;amp;mdash;the same &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; file. So if you have a platform-independent project, CMake is a way to make it build system-independent as well.&lt;br /&gt;
&lt;br /&gt;
According to [https://www.qt.io/blog/author/lars-knoll Lars Knoll]'s [https://www.qt.io/blog/2019/08/07/technical-vision-qt-6 Technical vision for Qt 6],&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
CMake is by far the most widely used build system in the C++ world, and better integration with it is sorely needed.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= This tutorial =&lt;br /&gt;
&lt;br /&gt;
In this tutorial we demonstrate how to set up and build an (admittedly very simple) project using CMake on an [https://ubuntu.com/ Ubuntu] 20.04.1 LTS system. The tutorial should be applicable to other Linux systems, possibly with minor modifications.&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
&lt;br /&gt;
First, we need to install CMake:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt update&lt;br /&gt;
...&lt;br /&gt;
$ sudo apt install cmake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we'll be using CMake to generate Makefiles and build them using Make, we need to install Make:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt install make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we'll be using CMake with &amp;lt;tt&amp;gt;gcc&amp;lt;/tt&amp;gt;&amp;amp;mdash;[https://gcc.gnu.org/ GNU project C and C++ compiler],&amp;amp;mdash; we also need to install &amp;lt;tt&amp;gt;g++&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt install g++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Basic project =&lt;br /&gt;
&lt;br /&gt;
We'll start working from the home directory, so we&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to it. We then create a directory for the project&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir my_project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;cd&amp;lt;/tt&amp;gt; into it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd my_project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now let us create a directory for source files&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and the file &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch CMakeLists.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; contains a set of directives and instructions describing the project's source files and targets (executable, library, or both).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.0)&lt;br /&gt;
project(cmake_test_project)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While you can build the project from the current directory (&amp;lt;tt&amp;gt;.../my_project/&amp;lt;/tt&amp;gt;), CMake will generate some files that will pollute it. Therefore it is a good idea to&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir build&lt;br /&gt;
$ cd build/&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should see something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- The C compiler identification is GNU 9.3.0&lt;br /&gt;
-- The CXX compiler identification is GNU 9.3.0&lt;br /&gt;
-- Check for working C compiler: /usr/bin/cc&lt;br /&gt;
-- Check for working C compiler: /usr/bin/cc -- works&lt;br /&gt;
-- Detecting C compiler ABI info&lt;br /&gt;
-- Detecting C compiler ABI info - done&lt;br /&gt;
-- Detecting C compile features&lt;br /&gt;
-- Detecting C compile features - done&lt;br /&gt;
-- Check for working CXX compiler: /usr/bin/c++&lt;br /&gt;
-- Check for working CXX compiler: /usr/bin/c++ -- works&lt;br /&gt;
-- Detecting CXX compiler ABI info&lt;br /&gt;
-- Detecting CXX compiler ABI info - done&lt;br /&gt;
-- Detecting CXX compile features&lt;br /&gt;
-- Detecting CXX compile features - done&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt; you will see a pretty large &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; containing something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# CMAKE generated file: DO NOT EDIT!&lt;br /&gt;
# Generated by &amp;quot;Unix Makefiles&amp;quot; Generator, CMake Version 3.16&lt;br /&gt;
&lt;br /&gt;
# Default target executed when no arguments are given to make.&lt;br /&gt;
default_target: all&lt;br /&gt;
&lt;br /&gt;
.PHONY : default_target&lt;br /&gt;
&lt;br /&gt;
# Allow only one &amp;quot;make -f Makefile2&amp;quot; at a time, but pass parallelism.&lt;br /&gt;
.NOTPARALLEL:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Special targets provided by cmake.&lt;br /&gt;
&lt;br /&gt;
# Disable implicit rules so canonical targets will work.&lt;br /&gt;
.SUFFIXES:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Remove some rules from gmake that .SUFFIXES does not remove.&lt;br /&gt;
SUFFIXES =&lt;br /&gt;
&lt;br /&gt;
.SUFFIXES: .hpux_make_needs_suffix_list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Suppress display of executed commands.&lt;br /&gt;
$(VERBOSE).SILENT:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# A target that is always out of date.&lt;br /&gt;
cmake_force:&lt;br /&gt;
&lt;br /&gt;
.PHONY : cmake_force&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Set environment variables for the build.&lt;br /&gt;
&lt;br /&gt;
# The shell in which to execute make rules.&lt;br /&gt;
SHELL = /bin/sh&lt;br /&gt;
&lt;br /&gt;
# The CMake executable.&lt;br /&gt;
CMAKE_COMMAND = /usr/bin/cmake&lt;br /&gt;
&lt;br /&gt;
# The command to remove a file.&lt;br /&gt;
RM = /usr/bin/cmake -E remove -f&lt;br /&gt;
&lt;br /&gt;
# Escaping for special characters.&lt;br /&gt;
EQUALS = =&lt;br /&gt;
&lt;br /&gt;
# The top-level source directory on which CMake was run.&lt;br /&gt;
CMAKE_SOURCE_DIR = /home/ubuntu/my_project&lt;br /&gt;
&lt;br /&gt;
# The top-level build directory on which CMake was run.&lt;br /&gt;
CMAKE_BINARY_DIR = /home/ubuntu/my_project/build&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Targets provided globally by CMake.&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target rebuild_cache&lt;br /&gt;
rebuild_cache:&lt;br /&gt;
        @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan &amp;quot;Running                                                                                                              CMake to regenerate build system...&amp;quot;&lt;br /&gt;
        /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)&lt;br /&gt;
.PHONY : rebuild_cache&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target rebuild_cache&lt;br /&gt;
rebuild_cache/fast: rebuild_cache&lt;br /&gt;
&lt;br /&gt;
.PHONY : rebuild_cache/fast&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target edit_cache&lt;br /&gt;
edit_cache:&lt;br /&gt;
        @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan &amp;quot;No inter                                                                                                             active CMake dialog available...&amp;quot;&lt;br /&gt;
        /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.&lt;br /&gt;
.PHONY : edit_cache&lt;br /&gt;
&lt;br /&gt;
# Special rule for the target edit_cache&lt;br /&gt;
edit_cache/fast: edit_cache&lt;br /&gt;
&lt;br /&gt;
.PHONY : edit_cache/fast&lt;br /&gt;
&lt;br /&gt;
# The main all target&lt;br /&gt;
all: cmake_check_build_system&lt;br /&gt;
        $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/my_project/build/C                                                                                                             MakeFiles /home/ubuntu/my_project/build/CMakeFiles/progress.marks&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 all&lt;br /&gt;
        $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/my_project/build/C                                                                                                             MakeFiles 0&lt;br /&gt;
.PHONY : all&lt;br /&gt;
&lt;br /&gt;
# The main clean target&lt;br /&gt;
clean:&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 clean&lt;br /&gt;
.PHONY : clean&lt;br /&gt;
&lt;br /&gt;
# The main clean target&lt;br /&gt;
clean/fast: clean&lt;br /&gt;
&lt;br /&gt;
.PHONY : clean/fast&lt;br /&gt;
&lt;br /&gt;
# Prepare targets for installation.&lt;br /&gt;
preinstall: all&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 preinstall&lt;br /&gt;
.PHONY : preinstall&lt;br /&gt;
&lt;br /&gt;
# Prepare targets for installation.&lt;br /&gt;
preinstall/fast:&lt;br /&gt;
        $(MAKE) -f CMakeFiles/Makefile2 preinstall&lt;br /&gt;
.PHONY : preinstall/fast&lt;br /&gt;
&lt;br /&gt;
# clear depends&lt;br /&gt;
depend:&lt;br /&gt;
        $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-bui                                                                                                             ld-system CMakeFiles/Makefile.cmake 1&lt;br /&gt;
.PHONY : depend&lt;br /&gt;
&lt;br /&gt;
# Help Target&lt;br /&gt;
help:&lt;br /&gt;
        @echo &amp;quot;The following are some of the valid targets for this Makefile:&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... all (the default if no target is provided)&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... clean&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... depend&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... rebuild_cache&amp;quot;&lt;br /&gt;
        @echo &amp;quot;... edit_cache&amp;quot;&lt;br /&gt;
.PHONY : help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#=============================================================================&lt;br /&gt;
# Special targets to cleanup operation of make.&lt;br /&gt;
&lt;br /&gt;
# Special rule to run CMake to check the build system integrity.&lt;br /&gt;
# No rule that depends on this can have commands that come from listfiles&lt;br /&gt;
# because they might be regenerated.&lt;br /&gt;
cmake_check_build_system:&lt;br /&gt;
        $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-bui                                                                                                             ld-system CMakeFiles/Makefile.cmake 0&lt;br /&gt;
.PHONY : cmake_check_build_system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; is rather complex, but we needn't worry: CMake has generated it for us. However, this &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (at this stage) doesn't do anything useful. That is because we haven't written any code in our project. Let's add it.&lt;br /&gt;
&lt;br /&gt;
First, let us modify &amp;lt;tt&amp;gt;.../my_project/CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.0)&lt;br /&gt;
project(cmake_test_project)&lt;br /&gt;
&lt;br /&gt;
message(STATUS &amp;quot;*** Building my_project from ${PROJECT_SOURCE_DIR} ***&amp;quot;)&lt;br /&gt;
add_subdirectory(${PROJECT_SOURCE_DIR}/src)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure that we are under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt; and run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following error message will appear:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
CMake Error at CMakeLists.txt:5 (add_subdirectory):&lt;br /&gt;
  The source directory&lt;br /&gt;
&lt;br /&gt;
    /home/ubuntu/my_project/src&lt;br /&gt;
&lt;br /&gt;
  does not contain a CMakeLists.txt file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Configuring incomplete, errors occurred!&lt;br /&gt;
See also &amp;quot;/home/ubuntu/my_project/build/CMakeFiles/CMakeOutput.log&amp;quot;.&lt;br /&gt;
See also &amp;quot;/home/ubuntu/my_project/build/CMakeFiles/CMakeError.log&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the error suggests, the directory &amp;lt;tt&amp;gt;.../my_project/src/&amp;lt;/tt&amp;gt;, which we have added to &amp;lt;tt&amp;gt;.../my_project/CMakeLists.txt&amp;lt;/tt&amp;gt; must contain (another) &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; file. CMake uses a hierarchical configuration system. For now, let us simply&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch ../src/CMakeLists.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(assuming we are still under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt;). Thus we create an empty child &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt; file that does nothing.&lt;br /&gt;
&lt;br /&gt;
Let's try building again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This time the build has been successful:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Adding an executable =&lt;br /&gt;
&lt;br /&gt;
However, this build has been trivial since the project contains no code. Let us add some code to it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch ../src/main.c&lt;br /&gt;
$ nano ../src/main.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and let's write the following content to &amp;lt;tt&amp;gt;.../my_project/src/main.c&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to build this file, we need to modify &amp;lt;tt&amp;gt;.../my_project/src/CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_executable(bin_main main.c)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells CMake to build an executable, &amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt; out of the source files or, in this case, source file &amp;lt;tt&amp;gt;main.c&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Having made sure we are still under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;, we again run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This has generated a &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt;. Now let's run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output is&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt; will be under &amp;lt;tt&amp;gt;.../my_project/build/src/&amp;lt;/tt&amp;gt; (since the directory structure under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt; mimics that above).&lt;br /&gt;
&lt;br /&gt;
We can run it (assuming we are under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Hello, World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Header-only libraries =&lt;br /&gt;
&lt;br /&gt;
Let us modify &amp;lt;tt&amp;gt;.../my_project/build/src/main.c&amp;lt;/tt&amp;gt; as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    float radius, vol;&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Input the radius of the sphere: &amp;quot;);&lt;br /&gt;
    radius = get_value();&lt;br /&gt;
    printf(&amp;quot;Surface area = &amp;quot;);&lt;br /&gt;
    put_value(surface_area(radius));&lt;br /&gt;
    vol = volume(radius);&lt;br /&gt;
    printf(&amp;quot;Volume of sphere = &amp;quot;);&lt;br /&gt;
    put_value(vol);&lt;br /&gt;
&lt;br /&gt;
    return EXIT_SUCCESS;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From the directory &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt;, let us run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
/home/ubuntu/my_project/src/main.c:1:10: fatal error: sphere.h: No such file or directory&lt;br /&gt;
    1 | #include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
      |          ^~~~~~~~~~&lt;br /&gt;
compilation terminated.&lt;br /&gt;
make[2]: *** [src/CMakeFiles/bin_main.dir/build.make:63: src/CMakeFiles/bin_main.dir/main.c.o] Error 1&lt;br /&gt;
make[1]: *** [CMakeFiles/Makefile2:94: src/CMakeFiles/bin_main.dir/all] Error 2&lt;br /&gt;
make: *** [Makefile:84: all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We are getting this error because we haven't yet created &amp;lt;tt&amp;gt;sphere.h&amp;lt;/tt&amp;gt;. Let us first&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir .../my_project/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and underneath it create &amp;lt;tt&amp;gt;sphere.h&amp;lt;/tt&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef SPHERE_H_INCLUDED&lt;br /&gt;
#define SPHERE_H_INCLUDED&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PI 3.14159265&lt;br /&gt;
&lt;br /&gt;
float get_value(void)&lt;br /&gt;
{&lt;br /&gt;
    float x;&lt;br /&gt;
&lt;br /&gt;
    scanf(&amp;quot;%f&amp;quot;, &amp;amp;x);&lt;br /&gt;
    return x;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void put_value(float x)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;%f\n&amp;quot;, x);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n);&lt;br /&gt;
&lt;br /&gt;
float surface_area(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float volume(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 3) / 3.;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n)&lt;br /&gt;
{&lt;br /&gt;
    if (n &amp;lt; 0)&lt;br /&gt;
        return 1. / my_pow(x, -n);&lt;br /&gt;
    else if (n == 0)&lt;br /&gt;
        return 1;&lt;br /&gt;
    else&lt;br /&gt;
        return x * my_pow(x, n - 1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#endif /* SPHERE_H_INCLUDED */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to tell the compiler about this file (actually, the directory that contains it) by modifying &amp;lt;tt&amp;gt;.../my_project/CMakeLists.txt&amp;lt;/tt&amp;gt; as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.0)&lt;br /&gt;
project(cmake_test_project)&lt;br /&gt;
&lt;br /&gt;
message(STATUS &amp;quot;*** Building my_project from ${PROJECT_SOURCE_DIR} ***&amp;quot;)&lt;br /&gt;
include_directories(${PROJECT_SOURCE_DIR}/include)&lt;br /&gt;
add_subdirectory(${PROJECT_SOURCE_DIR}/src)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Note that we have added &amp;lt;tt&amp;gt;include_directories&amp;lt;/tt&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
Make sure that we are under &amp;lt;tt&amp;gt;.../my_project/build/&amp;lt;/tt&amp;gt; and run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Looks like our build has been successful. Let's test the executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Input the radius of the sphere: 3.5&lt;br /&gt;
Surface area = 153.938034&lt;br /&gt;
Volume of sphere = 179.594376&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sphere.h&amp;lt;/tt&amp;gt; constitutes a &amp;quot;header-only&amp;quot; library. A library is called '''header-only''' if the full definitions of all macros, functions, and classes comprising the library are visible to the compiler in a header file form. Header-only libraries do not need to be separately compiled, packaged, and installed in order to be used. All that is required is to point the compiler at the location of the headers, and then &amp;lt;tt&amp;gt;#include&amp;lt;/tt&amp;gt; the header files into the application source. Another advantage is that the compiler's optimizer can do a much better job when all the library's source code is available.&lt;br /&gt;
&lt;br /&gt;
The disadvantages include:&lt;br /&gt;
* brittleness&amp;amp;mdash;most changes to the library will require recompilation of all compilation units using that library;&lt;br /&gt;
* longer compilation times&amp;amp;mdash;the compilation unit must see the implementation of all components in the included files, rather than just their interfaces;&lt;br /&gt;
* code-bloat (this may be disputed)&amp;amp;mdash;the necessary use of inline statements in non-class functions can lead to code bloat by over-inlining.&lt;br /&gt;
&lt;br /&gt;
Nonetheless, the header-only form is popular because it avoids the (often much more serious) problem of packaging.&lt;br /&gt;
&lt;br /&gt;
For C++ templates, including the definitions in the header is the only way to compile, since the compiler needs to know the full definition of the templates in order to instantiate.&lt;br /&gt;
&lt;br /&gt;
= Adding a static library =&lt;br /&gt;
&lt;br /&gt;
A '''library''' is a collection of items that you can call from your program. You can save much time by reusing work that someone else has already done and be more confident that it has fewer bugs: since other people may be using the same library, you will benefit from their usage, bug detection, and bug fixes.&lt;br /&gt;
&lt;br /&gt;
We have mentioned some reasons why header-only libraries may not be a good idea in some situations.&lt;br /&gt;
&lt;br /&gt;
The next most straightforward way of using a library function is to have the object files from the library linked directly into your executable, just as with those you have compiled yourself. When linked like this the library is called a '''static library''', because the library will remain unchanged unless the program is recompiled. The final result is a simple executable with no dependencies.&lt;br /&gt;
&lt;br /&gt;
The static library under Linux is nothing more than an archive of object files.&lt;br /&gt;
&lt;br /&gt;
Let us modify &amp;lt;tt&amp;gt;.../my_project/build/include/sphere.h&amp;lt;/tt&amp;gt; so it contains declarations rather than definitions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifndef SPHERE_H_INCLUDED&lt;br /&gt;
#define SPHERE_H_INCLUDED&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PI 3.14159265&lt;br /&gt;
&lt;br /&gt;
float get_value(void);&lt;br /&gt;
void put_value(float x);&lt;br /&gt;
float surface_area(float r);&lt;br /&gt;
float volume(float r);&lt;br /&gt;
&lt;br /&gt;
#endif /* SPHERE_H_INCLUDED */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let us add &amp;lt;tt&amp;gt;.../my_project/build/src/geometry.c&amp;lt;/tt&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n);&lt;br /&gt;
&lt;br /&gt;
float surface_area(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float volume(float r)&lt;br /&gt;
{&lt;br /&gt;
    return 4. * PI * my_pow(r, 3) / 3.;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static float my_pow(float x, int n)&lt;br /&gt;
{&lt;br /&gt;
    if (n &amp;lt; 0)&lt;br /&gt;
        return 1. / my_pow(x, -n);&lt;br /&gt;
    else if (n == 0)&lt;br /&gt;
        return 1;&lt;br /&gt;
    else&lt;br /&gt;
        return x * my_pow(x, n - 1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And let us add &amp;lt;tt&amp;gt;.../my_project/build/src/simple_io.c&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;sphere.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
float get_value(void)&lt;br /&gt;
{&lt;br /&gt;
    float x;&lt;br /&gt;
&lt;br /&gt;
    scanf(&amp;quot;%f&amp;quot;, &amp;amp;x);&lt;br /&gt;
    return x;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void put_value(float x)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;%f\n&amp;quot;, x);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we now (making sure that we are under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;) try to build the project, we'll get some errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make clean&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 50%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
/usr/bin/ld: CMakeFiles/bin_main.dir/main.c.o: in function `main':&lt;br /&gt;
main.c:(.text+0x1e): undefined reference to `get_value'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x42): undefined reference to `surface_area'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x47): undefined reference to `put_value'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x53): undefined reference to `volume'&lt;br /&gt;
/usr/bin/ld: main.c:(.text+0x77): undefined reference to `put_value'&lt;br /&gt;
collect2: error: ld returned 1 exit status&lt;br /&gt;
make[2]: *** [src/CMakeFiles/bin_main.dir/build.make:84: src/bin_main] Error 1&lt;br /&gt;
make[1]: *** [CMakeFiles/Makefile2:94: src/CMakeFiles/bin_main.dir/all] Error 2&lt;br /&gt;
make: *** [Makefile:84: all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's because CMake doesn't know about the source files &amp;lt;tt&amp;gt;geometry.c&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;simple_io.c&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Let us edit &amp;lt;tt&amp;gt;.../my_project/src/CMakeLists.txt&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_library(lib_sphere geometry.c simple_io.c)&lt;br /&gt;
add_executable(bin_main main.c)&lt;br /&gt;
target_link_libraries(bin_main lib_sphere)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we now (making sure that we are under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;) try to build the project, everything will work:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target lib_sphere&lt;br /&gt;
[ 20%] Building C object src/CMakeFiles/lib_sphere.dir/geometry.c.o&lt;br /&gt;
[ 40%] Building C object src/CMakeFiles/lib_sphere.dir/simple_io.c.o&lt;br /&gt;
[ 60%] Linking C static library liblib_sphere.a&lt;br /&gt;
[ 60%] Built target lib_sphere&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 80%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
ubuntu@ip-172-31-24-17:~/my_project/build$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the resulting static library is called &amp;lt;tt&amp;gt;liblib_sphere.a&amp;lt;/tt&amp;gt;. We shouldn't have named the library &amp;lt;tt&amp;gt;lib_sphere&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt;: the prefix &amp;lt;tt&amp;gt;lib&amp;lt;/tt&amp;gt; is automatically prepended, the suffix &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt; is automatically appended.&lt;br /&gt;
&lt;br /&gt;
Let's test the executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Input the radius of the sphere: 3.5&lt;br /&gt;
Surface area = 153.938034&lt;br /&gt;
Volume of sphere = 179.594376&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Adding a shared library =&lt;br /&gt;
&lt;br /&gt;
Static libraries, while reusable across multiple programs, are locked into a program at compile-time. '''Dynamic''' or '''shared libraries''' exist as separate files outside the executable file.&lt;br /&gt;
&lt;br /&gt;
The code of a static library is locked into the executable file and cannot be modified without a re-compile. In contrast, a dynamic library can be modified without a need to recompile. If a dynamic library becomes corrupt, the executable file may no longer work. A static library, however, is untouchable because it lives inside the executable file. The upside of using a dynamic library is that multiple running applications can use the same library without the need for each to have its own copy.&lt;br /&gt;
&lt;br /&gt;
Let us see how we can modify &amp;lt;tt&amp;gt;.../my_project/src/CMakeLists.txt&amp;lt;/tt&amp;gt; to build a static library instead of a dynamic one:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_library(sphere SHARED geometry.c simple_io.c)&lt;br /&gt;
add_executable(bin_main main.c)&lt;br /&gt;
target_link_libraries(bin_main sphere)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, from under &amp;lt;tt&amp;gt;.../my_project/build&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make clean&lt;br /&gt;
$ cmake ..&lt;br /&gt;
-- *** Building my_project from /home/ubuntu/my_project ***&lt;br /&gt;
-- Configuring done&lt;br /&gt;
-- Generating done&lt;br /&gt;
-- Build files have been written to: /home/ubuntu/my_project/build&lt;br /&gt;
$ make&lt;br /&gt;
Scanning dependencies of target sphere&lt;br /&gt;
[ 20%] Building C object src/CMakeFiles/sphere.dir/geometry.c.o&lt;br /&gt;
[ 40%] Building C object src/CMakeFiles/sphere.dir/simple_io.c.o&lt;br /&gt;
[ 60%] Linking C shared library libsphere.so&lt;br /&gt;
[ 60%] Built target sphere&lt;br /&gt;
Scanning dependencies of target bin_main&lt;br /&gt;
[ 80%] Building C object src/CMakeFiles/bin_main.dir/main.c.o&lt;br /&gt;
[100%] Linking C executable bin_main&lt;br /&gt;
[100%] Built target bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let's try running the executable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
Input the radius of the sphere: 3.57&lt;br /&gt;
Surface area = 160.157135&lt;br /&gt;
Volume of sphere = 190.586975&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we now&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm src/libsphere.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and try&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ src/bin_main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
we'll get&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/bin_main: error while loading shared libraries: libsphere.so: cannot open shared object file: No such file or directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The shared library file &amp;lt;tt&amp;gt;libsphere.so&amp;lt;/tt&amp;gt; is now required for running &amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt;; the code for functions such as &amp;lt;tt&amp;gt;surface_area&amp;lt;/tt&amp;gt; is no longer included in the binary &amp;lt;tt&amp;gt;bin_main&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/London_Marriott_Hotel_Canary_Wharf&amp;diff=733</id>
		<title>Locations/London Marriott Hotel Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/London_Marriott_Hotel_Canary_Wharf&amp;diff=733"/>
		<updated>2021-12-25T11:54:51Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''London Marriott Hotel Canary Wharf''' (previously '''Marriott Hotel West India Quay''') is a hotel in Canary Wharf in London, England, that opened in 2004. It is located at 1 West India Quay, 22 Hertsmere Road, and is named after Canary Wharf, where it overlooks the West India Quay Marina. It is operated by Marriott Hotels, and has 301 rooms and 47 apartments.&lt;br /&gt;
&lt;br /&gt;
It is owned by the billionaire property developer John Christodoulou.&lt;br /&gt;
&lt;br /&gt;
In 2001, planning permission was gained by Squire and Partners for a slender landmark hotel tower conceived to act as a visual counterpoint to the monumental brick form of the adjacent Victorian warehouses in London's Docklands. Designed by HOK Group, Inc., its elliptical form is reminiscent of the curved hull of a boat. The building was completed in 2004.&lt;br /&gt;
&lt;br /&gt;
The bottom 12 floors of the 33-floor story building house the hotel, with 301 rooms on floors 1-8, and 47 serviced suites on floors 9-12. Facilities include the Manhattan Grill Restaurant, 19 event rooms, an executive lounge, a health club, and the G &amp;amp;amp; Tea Lounge with over 180 different gins.&lt;br /&gt;
&lt;br /&gt;
The hotel hosts an artist in residence programme, showing the work of contemporary artists including Lincoln Townley in 2015 and Julie Umerle in 2017.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/London_Marriott_Hotel_Canary_Wharf&amp;diff=732</id>
		<title>Locations/London Marriott Hotel Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/London_Marriott_Hotel_Canary_Wharf&amp;diff=732"/>
		<updated>2021-12-25T11:53:53Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;The '''London Marriott Hotel Canary Wharf''' (previously '''Marriott Hotel West India Quay''') is a hotel in Canary Wharf in London, England, that opened in 2004. It is located at 1 West India Quay, 22 Hertsmere Road, and is named after Canary Wharf, where it overlooks the West India Quay Marina. It is operated by Marriott Hotels, and has 301 rooms and 47 apartments.  In 2001, planning permission was gained by Squire and Partners for a slender landmark hotel tower concei...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''London Marriott Hotel Canary Wharf''' (previously '''Marriott Hotel West India Quay''') is a hotel in Canary Wharf in London, England, that opened in 2004. It is located at 1 West India Quay, 22 Hertsmere Road, and is named after Canary Wharf, where it overlooks the West India Quay Marina. It is operated by Marriott Hotels, and has 301 rooms and 47 apartments.&lt;br /&gt;
&lt;br /&gt;
In 2001, planning permission was gained by Squire and Partners for a slender landmark hotel tower conceived to act as a visual counterpoint to the monumental brick form of the adjacent Victorian warehouses in London's Docklands. Designed by HOK Group, Inc., its elliptical form is reminiscent of the curved hull of a boat. The building was completed in 2004.&lt;br /&gt;
&lt;br /&gt;
The bottom 12 floors of the 33-floor story building house the hotel, with 301 rooms on floors 1-8, and 47 serviced suites on floors 9-12. Facilities include the Manhattan Grill Restaurant, 19 event rooms, an executive lounge, a health club, and the G &amp;amp;amp; Tea Lounge with over 180 different gins.&lt;br /&gt;
&lt;br /&gt;
The hotel hosts an artist in residence programme, showing the work of contemporary artists including Lincoln Townley in 2015 and Julie Umerle in 2017.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=731</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=731"/>
		<updated>2021-12-25T11:48:26Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf|London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=730</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=730"/>
		<updated>2021-12-25T11:48:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
** [[Locations/London Marriott Hotel Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=729</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=729"/>
		<updated>2021-12-23T12:49:00Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering machine learning research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || Bayesian methods are introduced for probabilistic inference in machine learning.&amp;lt;ref name=&amp;quot;solomonoff-1964-1&amp;quot;&amp;gt;Solomonoff, R. J. A formal theory of inductive inference. Part II. ''Information and Control, Elsevier BV'', '''1964''', 7, 224-254&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '''AI Winter''' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of backpropagation causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions or &amp;quot;learn&amp;quot; from the results.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot;&amp;gt;Marr, B. A Short History of Machine Learning&amp;amp;mdash;Every Manager Should Read. '''2016'''. URL: https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/&amp;lt;/ref&amp;gt; Support-vector machines (SVMs) and recurrent neural networks (RNNs) become popular.&amp;lt;ref name=&amp;quot;siegelmann-1995&amp;quot;&amp;gt;Siegelmann, H. T. &amp;amp;amp; Sontag, E. D. On the Computational Power of Neural Nets. ''Journal of Computer and System Sciences, Elsevier BV'', '''1995''', 50, 132-150&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref name=&amp;quot;siegelmann-1995-1&amp;quot;&amp;gt;Siegelmann, H. T. Computation Beyond the Turing Limit. ''Science, American Association for the Advancement of Science (AAAS)'', '''1995''', 268, 545-548&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref name=&amp;quot;benhur-2002&amp;quot;&amp;gt;Ben-Hur, A.; Horn, D.; Siegelmann, H. T. &amp;amp;amp; Vapnik, V. Support vector clustering. ''The Journal of Machine Learning Research'', '''2002''', 2, 125-137&amp;lt;/ref&amp;gt; and other kernel methods&amp;lt;ref name=&amp;quot;hofmann-2008&amp;quot;&amp;gt;Hofmann, T.; Schölkopf, B. &amp;amp;amp; Smola, A. J. Kernel methods in machine learning. ''The Annals of Statistics, Institute of Mathematical Statistics'', '''2008''', ''36''&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref name=&amp;quot;bennett-2007&amp;quot;&amp;gt;Bennett, J. &amp;amp;amp; Lanning, S. The Netflix Prize. ''Proceedings of KDD Cup and Workshop 2007'', 2007&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2010s || Deep learning becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=728</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=728"/>
		<updated>2021-12-23T12:48:01Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering machine learning research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || Bayesian methods are introduced for probabilistic inference in machine learning.&amp;lt;ref name=&amp;quot;solomonoff-1964-1&amp;quot;&amp;gt;Solomonoff, R. J. A formal theory of inductive inference. Part II. ''Information and Control, Elsevier BV'', '''1964''', 7, 224-254&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '''AI Winter''' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of backpropagation causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions or &amp;quot;learn&amp;quot; from the results.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot;&amp;gt;Marr, B. A Short History of Machine Learning---Every Manager Should Read. '''2016'''. URL: https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/&amp;lt;/ref&amp;gt; Support-vector machines (SVMs) and recurrent neural networks (RNNs) become popular.&amp;lt;ref name=&amp;quot;siegelmann-1995&amp;quot;&amp;gt;Siegelmann, H. T. &amp;amp;amp; Sontag, E. D. On the Computational Power of Neural Nets. ''Journal of Computer and System Sciences, Elsevier BV'', '''1995''', 50, 132-150&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref name=&amp;quot;siegelmann-1995&amp;quot;&amp;gt;Siegelmann, H. T. Computation Beyond the Turing Limit. ''Science, American Association for the Advancement of Science (AAAS)'', '''1995''', 268, 545-548&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref name=&amp;quot;benhur-2002&amp;quot;&amp;gt;Ben-Hur, A.; Horn, D.; Siegelmann, H. T. &amp;amp;amp; Vapnik, V. Support vector clustering. ''The Journal of Machine Learning Research'', '''2002''', 2, 125-137&amp;lt;/ref&amp;gt; and other kernel methods&amp;lt;ref name=&amp;quot;hofmann-2008&amp;quot;&amp;gt;Hofmann, T.; Schölkopf, B. &amp;amp;amp; Smola, A. J. Kernel methods in machine learning. ''The Annals of Statistics, Institute of Mathematical Statistics'', '''2008''', ''36''&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref name=&amp;quot;bennett-2007&amp;quot;&amp;gt;Bennett, J. &amp;amp;amp; Lanning, S. The Netflix Prize. ''Proceedings of KDD Cup and Workshop 2007'', 2007&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2010s || [[Deep learning]] becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;marr-2016&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=727</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=727"/>
		<updated>2021-12-23T12:17:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering machine learning research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || Bayesian methods are introduced for probabilistic inference in machine learning.&amp;lt;ref&amp;gt;Solomonoff, R. J. A formal theory of inductive inference. Part II. ''Information and Control, Elsevier BV'', '''1964''', 7, 224-254&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || 'AI Winter' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of backpropagation causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions or &amp;quot;learn&amp;quot; from the results.&amp;lt;ref name=&amp;quot;Marr&amp;quot;&amp;gt;{{cite news|last1=Marr|first1=Bernard|title=A Short History of Machine Learning – Every Manager Should Read|url=https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/#2a1a75f9323f|work=Forbes|accessdate=28 Sep 2016}}&amp;lt;/ref&amp;gt; [[Support-vector machine]]s (SVMs) and [[recurrent neural network]]s (RNNs) become popular.&amp;lt;ref&amp;gt;{{cite journal|last1=Siegelmann|first1=Hava|first2=Eduardo|last2=Sontag|title=Computational Power of Neural Networks  |journal=Journal of Computer and System Sciences|volume=50|issue=1|year=1995 |pages=132–150|doi=10.1006/jcss.1995.1013|doi-access=free}}&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref&amp;gt;{{cite journal |last1=Siegelmann |first1=Hava |title=Computation Beyond the Turing Limit |journal=Journal of Computer and System Sciences |volume=238 |issue=28 |year=1995 |pages=632–637|doi=10.1126/science.268.5210.545 |pmid=17756722 |bibcode=1995Sci...268..545S |s2cid=17495161 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref&amp;gt;{{cite journal |first1=Asa |last1=Ben-Hur |first2=David |last2=Horn |first3=Hava |last3=Siegelmann |first4=Vladimir|last4=Vapnik |title=Support vector clustering |journal=Journal of Machine Learning Research|volume=2 |year=2001 |pages=51–86}}&amp;lt;/ref&amp;gt;  and other [[kernel method]]s&amp;lt;ref&amp;gt;{{cite journal |last1=Hofmann |first1=Thomas |first2=Bernhard |last2=Schölkopf |first3=Alexander J. |last3=Smola |title=Kernel methods in machine learning |journal=The Annals of Statistics |volume=36 |issue=3 |year=2008 |pages=1171–1220 |jstor=25464664 |doi=10.1214/009053607000000677|doi-access=free }}&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref&amp;gt;{{cite journal |first1=James |last1=Bennett |first2=Stan |last2=Lanning |title=The netflix prize |journal=Proceedings of KDD Cup and Workshop 2007 |date=2007 |url=https://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf}}&amp;lt;/ref&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| 2010s || [[Deep learning]] becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/City_University_Club&amp;diff=726</id>
		<title>Locations/City University Club</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/City_University_Club&amp;diff=726"/>
		<updated>2021-12-23T09:48:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;The '''City University Club''' is a gentlemen's club in the City of London, established in 1895. From its foundation until 2018 it operated from the top three floors of 50 Cornhill, of what was Prescott's Bank, a 1766 private bank which became a branch of part of the NatWest banking group. This arrangement was quite specifically intended by and between the bank's partners and the club of which they were founding members when the building was designed. The branch closed i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''City University Club''' is a gentlemen's club in the City of London, established in 1895. From its foundation until 2018 it operated from the top three floors of 50 Cornhill, of what was Prescott's Bank, a 1766 private bank which became a branch of part of the NatWest banking group. This arrangement was quite specifically intended by and between the bank's partners and the club of which they were founding members when the building was designed. The branch closed in 1999 and was turned into a pub of the Fullers chain.&lt;br /&gt;
&lt;br /&gt;
On 29 January 2018 the club moved to 42 Crutched Friars, the former home of the Lloyds Club.&lt;br /&gt;
&lt;br /&gt;
The Club was founded strictly for graduates of Oxford and Cambridge universities who worked in the City, but membership is now also open to those who work in the area. It provides club facilities at lunchtime and for private occasions. The club serves as a lunch club for &amp;quot;brokers, bankers, and lawyers.&amp;quot; It has no connection with City, University of London, which was given its Royal Charter in 1966.&lt;br /&gt;
&lt;br /&gt;
Subscriptions are based on the member's age and location. New members joining during the year are charged pro-rata, except for those under the age of 25, who are entitled to six months' free membership (this precludes usage of reciprocal clubs). Unlike many clubs there is no entrance fee.&lt;br /&gt;
&lt;br /&gt;
The Club has reciprocal arrangements with over 450 private members clubs around the world, enabling members to use facilities in these clubs, including in London the Oxford and Cambridge Club, the Reform Club, and the Carlton Club.&lt;br /&gt;
&lt;br /&gt;
Notable members of the City University Club have included Prince Arthur, Duke of Connaught and Strathearn, the author Evelyn Waugh, businessman Sir Chips Keswick, and the Lloyd's underwriter Ian Posgate.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=725</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=725"/>
		<updated>2021-12-23T09:41:39Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
** [[Locations/City_University_Club|City University Club]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/Oxford_and_Cambridge_Club&amp;diff=724</id>
		<title>Locations/Oxford and Cambridge Club</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/Oxford_and_Cambridge_Club&amp;diff=724"/>
		<updated>2021-12-23T09:32:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;The Club was formed in March 1972 by the amalgamation of the United University Club and the Oxford and Cambridge University Club. In its first year, the Club was housed at 1 Suffolk Street and thereafter at 71-77 Pall Mall.  Members, both men and women, are drawn exclusively from the alumni and senior staff of both universities. Distinguished former members include Palmerston, Canning, Melbourne and Macmillan, the Duke of Wellington, William Thackeray and TS Eliot.  The...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Club was formed in March 1972 by the amalgamation of the United University Club and the Oxford and Cambridge University Club. In its first year, the Club was housed at 1 Suffolk Street and thereafter at 71-77 Pall Mall.&lt;br /&gt;
&lt;br /&gt;
Members, both men and women, are drawn exclusively from the alumni and senior staff of both universities. Distinguished former members include Palmerston, Canning, Melbourne and Macmillan, the Duke of Wellington, William Thackeray and TS Eliot.&lt;br /&gt;
&lt;br /&gt;
The Club house was designed by Sir Robert Smirke, the architect of the British Museum, and was completed in 1838. An important example of the fashionable Greek Revival style, the façade conceals a magnificent yet elegantly understated neoclassical interior.&lt;br /&gt;
&lt;br /&gt;
Unlike a number of other notable buildings on this part of the Crown Estate, the Club survived the war largely undamaged (a parachute mine landed in the kitchen but failed to detonate). Since then extensions and discreet improvements have been made to ensure it continues to meet its members' needs, but always in keeping with the traditional atmosphere and ambiance of this exceptional West End landmark.&lt;br /&gt;
&lt;br /&gt;
At the time of its creation the Club had 2,897 members as well as 563 lady associates. In February 1996, the Club voted by an overwhelming majority to allow women full membership with unhindered access to all areas of the Club house. In March 1997 Queen Margrethe II of Denmark became the first Honorary Lady Member. In June 2017 the Club elected its first female Chairman.&lt;br /&gt;
&lt;br /&gt;
The foundation of the Oxford and Cambridge Club dates from a meeting of members from the two universities held at the British Coffee House, 27 Cockspur Street on 17 May 1830, with Lord Palmerston in the chair. The meeting resolved that a Club consisting of members of both universities should be formed &amp;quot;for the association of individuals educated at those universities and for promoting and continuing a mutual interest and fellowship between them.&amp;quot; To the present day, that has been the Club's enduring ethos.&lt;br /&gt;
&lt;br /&gt;
Today membership of the Club means joining a worldwide network of over 4,500 other Oxford and Cambridge University alumni. These range from undergraduates and recent graduates to those who matriculated before World War II, and over 1,600 are from overseas.&lt;br /&gt;
&lt;br /&gt;
Lord Sainsbury and Lord Patten are Honorary Members, as Chancellors of the two universities. So too are the Vice Chancellors and most Heads of House together with HRH the Prince of Wales, HRH The Duke of Edinburgh, HM Queen Margrethe II of Denmark, HM King Harald V of Norway, and His Majesty King Philippe of the Belgians.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=723</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=723"/>
		<updated>2021-12-23T09:20:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
** [[Locations/Oxford_and_Cambridge_Club|Oxford and Cambridge Club]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=722</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=722"/>
		<updated>2021-12-23T09:19:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Level39,_One_Canada_Square,_Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=721</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=721"/>
		<updated>2021-12-23T09:18:41Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/Canary_Wharf&amp;diff=720</id>
		<title>Locations/Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/Canary_Wharf&amp;diff=720"/>
		<updated>2021-12-23T09:18:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Locations/Canary Wharf to Locations/Level39, One Canada Square, Canary Wharf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Locations/Level39, One Canada Square, Canary Wharf]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=719</id>
		<title>Locations/Level39, One Canada Square, Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=719"/>
		<updated>2021-12-23T09:18:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Locations/Canary Wharf to Locations/Level39, One Canada Square, Canary Wharf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
'''Canary Wharf''' is an area of London, England, located on the Isle of Dogs in the London Borough of Tower Hamlets. Canary Wharf is defined by the Greater London Authority as being part of London's central business district, alongside Central London. With the City of London, it constitutes one of the main financial centres in the United Kingdom and the world, containing many high-rise buildings including the fourth tallest in the UK, One Canada Square, which opened on 26 August 1991.&lt;br /&gt;
&lt;br /&gt;
Developed on the site of the former West India Docks, Canary Wharf contains around 16,000,000 sq ft (1,5000,000 m&amp;lt;math&amp;gt;^2&amp;lt;/math&amp;gt;) of office and retail space. It comprises many open areas, including Canada Square, Cabot Square, and Westferry Circus. Together with Heron Quays and Wood Wharf, it forms the Canary Wharf Estate, around 97 acres (39 ha) in area.&lt;br /&gt;
&lt;br /&gt;
Owned wholly by Canary Wharf Group, Level39 launched in March 2013. Since then, Level39 has grown from a simple idea into a three-floor, 80,000 square foot community space occupying the 39th, 26th, and 24th floors of One Canada Square.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
&lt;br /&gt;
Canary Wharf is located on the West India Docks on the Isle of Dogs.&lt;br /&gt;
&lt;br /&gt;
==Isle of Dogs==&lt;br /&gt;
&lt;br /&gt;
The '''Isle of Dogs''' is a large peninsula bounded on three sides by a large meander in the River Thames in East London, England, which includes the Cubitt Town, Millwall, and Canary Wharf districts. The area was historically part of the Manor, Hamlet, Parish and, for a time, the wider borough of Poplar. The name had no official status until the 1987 creation of the Isle of Dogs Neighbourhood by Tower Hamlets Borough Council. It has been known locally as simply &amp;quot;the Island&amp;quot; since the 19th century.&lt;br /&gt;
&lt;br /&gt;
The whole area was once known as '''Stepney Marsh'''; Anton van den Wyngaerde's &amp;quot;Panorama of London&amp;quot; dated 1543 depicts and refers to the Isle of Dogs. Records show that ships preparing to carry the English royal household to Calais in 1520 docked at the southern bank of the island. The name ''Isle of Dogs'' occurs in the ''Thamesis Descriptio'' of 1599, applied to a small island in the south-western part of the peninsula. The name is next applied to the ''Isle of Dogs Farm'' (originally known as ''Pomfret Manor'') shown on a map of 1683. At the same time, the area was variously known as ''Isle of Dogs'' or the ''Blackwell levels''. By 1855, it was incorporated within the parish of Poplar under the aegis of the Poplar Board of Works. This was incorporated into the Metropolitan Borough of Poplar on its formation in 1900.&lt;br /&gt;
&lt;br /&gt;
=Level39=&lt;br /&gt;
&lt;br /&gt;
[[File:Boris Johnson opens Level39 (1).jpg|alt=Boris Johnson opens Level39|thumb|Boris Johnson opens Level39]]&lt;br /&gt;
On 18 March, 2013, Mayor of London Boris Johnson opened Level39, a major accelerator space for technologies for the UK's most successful industry, finance.&lt;br /&gt;
&lt;br /&gt;
Based at One Canada Square, Canary Wharf, the space offers businesses a place to create, test, market, and deliver technologies for finance as well as retail.&lt;br /&gt;
&lt;br /&gt;
Level39 forms a major part of Tech City &amp;amp;mdash; the government's attempt to make London the tech capital of Europe.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Attracting the brightest entrepreneurial minds is crucial if London is to maintain its position as the world's foremost financial centre and Level39 will foster just the talent we need to future-proof the capital's technology and financial sectors,&amp;quot; Johnson said.&lt;br /&gt;
&lt;br /&gt;
Eric van der Kleij, who previously headed up the Tech City Investment Organisation (TCIO) led Level39. &amp;quot;The timing could not be better to open Level39. London's financial services sector is searching for new technologies to transform itself at the very moment that the tech sector is displaying the sort of growth required to move the UK economy forward,&amp;quot; he said.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Level39 is London's point of convergence for FinTech, situated in the East End, which is the most dynamic area of Europe right now.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=File:Boris_Johnson_opens_Level39_(1).jpg&amp;diff=718</id>
		<title>File:Boris Johnson opens Level39 (1).jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=File:Boris_Johnson_opens_Level39_(1).jpg&amp;diff=718"/>
		<updated>2021-12-23T09:10:00Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=717</id>
		<title>Locations/Level39, One Canada Square, Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=717"/>
		<updated>2021-12-23T09:09:38Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
'''Canary Wharf''' is an area of London, England, located on the Isle of Dogs in the London Borough of Tower Hamlets. Canary Wharf is defined by the Greater London Authority as being part of London's central business district, alongside Central London. With the City of London, it constitutes one of the main financial centres in the United Kingdom and the world, containing many high-rise buildings including the fourth tallest in the UK, One Canada Square, which opened on 26 August 1991.&lt;br /&gt;
&lt;br /&gt;
Developed on the site of the former West India Docks, Canary Wharf contains around 16,000,000 sq ft (1,5000,000 m&amp;lt;math&amp;gt;^2&amp;lt;/math&amp;gt;) of office and retail space. It comprises many open areas, including Canada Square, Cabot Square, and Westferry Circus. Together with Heron Quays and Wood Wharf, it forms the Canary Wharf Estate, around 97 acres (39 ha) in area.&lt;br /&gt;
&lt;br /&gt;
Owned wholly by Canary Wharf Group, Level39 launched in March 2013. Since then, Level39 has grown from a simple idea into a three-floor, 80,000 square foot community space occupying the 39th, 26th, and 24th floors of One Canada Square.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
&lt;br /&gt;
Canary Wharf is located on the West India Docks on the Isle of Dogs.&lt;br /&gt;
&lt;br /&gt;
==Isle of Dogs==&lt;br /&gt;
&lt;br /&gt;
The '''Isle of Dogs''' is a large peninsula bounded on three sides by a large meander in the River Thames in East London, England, which includes the Cubitt Town, Millwall, and Canary Wharf districts. The area was historically part of the Manor, Hamlet, Parish and, for a time, the wider borough of Poplar. The name had no official status until the 1987 creation of the Isle of Dogs Neighbourhood by Tower Hamlets Borough Council. It has been known locally as simply &amp;quot;the Island&amp;quot; since the 19th century.&lt;br /&gt;
&lt;br /&gt;
The whole area was once known as '''Stepney Marsh'''; Anton van den Wyngaerde's &amp;quot;Panorama of London&amp;quot; dated 1543 depicts and refers to the Isle of Dogs. Records show that ships preparing to carry the English royal household to Calais in 1520 docked at the southern bank of the island. The name ''Isle of Dogs'' occurs in the ''Thamesis Descriptio'' of 1599, applied to a small island in the south-western part of the peninsula. The name is next applied to the ''Isle of Dogs Farm'' (originally known as ''Pomfret Manor'') shown on a map of 1683. At the same time, the area was variously known as ''Isle of Dogs'' or the ''Blackwell levels''. By 1855, it was incorporated within the parish of Poplar under the aegis of the Poplar Board of Works. This was incorporated into the Metropolitan Borough of Poplar on its formation in 1900.&lt;br /&gt;
&lt;br /&gt;
=Level39=&lt;br /&gt;
&lt;br /&gt;
[[File:Boris Johnson opens Level39 (1).jpg|alt=Boris Johnson opens Level39|thumb|Boris Johnson opens Level39]]&lt;br /&gt;
On 18 March, 2013, Mayor of London Boris Johnson opened Level39, a major accelerator space for technologies for the UK's most successful industry, finance.&lt;br /&gt;
&lt;br /&gt;
Based at One Canada Square, Canary Wharf, the space offers businesses a place to create, test, market, and deliver technologies for finance as well as retail.&lt;br /&gt;
&lt;br /&gt;
Level39 forms a major part of Tech City &amp;amp;mdash; the government's attempt to make London the tech capital of Europe.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Attracting the brightest entrepreneurial minds is crucial if London is to maintain its position as the world's foremost financial centre and Level39 will foster just the talent we need to future-proof the capital's technology and financial sectors,&amp;quot; Johnson said.&lt;br /&gt;
&lt;br /&gt;
Eric van der Kleij, who previously headed up the Tech City Investment Organisation (TCIO) led Level39. &amp;quot;The timing could not be better to open Level39. London's financial services sector is searching for new technologies to transform itself at the very moment that the tech sector is displaying the sort of growth required to move the UK economy forward,&amp;quot; he said.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Level39 is London's point of convergence for FinTech, situated in the East End, which is the most dynamic area of Europe right now.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=716</id>
		<title>Locations/Level39, One Canada Square, Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=716"/>
		<updated>2021-12-23T09:05:32Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
'''Canary Wharf''' is an area of London, England, located on the Isle of Dogs in the London Borough of Tower Hamlets. Canary Wharf is defined by the Greater London Authority as being part of London's central business district, alongside Central London. With the City of London, it constitutes one of the main financial centres in the United Kingdom and the world, containing many high-rise buildings including the fourth tallest in the UK, One Canada Square, which opened on 26 August 1991.&lt;br /&gt;
&lt;br /&gt;
Developed on the site of the former West India Docks, Canary Wharf contains around 16,000,000 sq ft (1,5000,000 m&amp;lt;math&amp;gt;^2&amp;lt;/math&amp;gt;) of office and retail space. It comprises many open areas, including Canada Square, Cabot Square, and Westferry Circus. Together with Heron Quays and Wood Wharf, it forms the Canary Wharf Estate, around 97 acres (39 ha) in area.&lt;br /&gt;
&lt;br /&gt;
Owned wholly by Canary Wharf Group, Level39 launched in March 2013. Since then, Level39 has grown from a simple idea into a three-floor, 80,000 square foot community space occupying the 39th, 26th, and 24th floors of One Canada Square.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
&lt;br /&gt;
Canary Wharf is located on the West India Docks on the Isle of Dogs.&lt;br /&gt;
&lt;br /&gt;
==Isle of Dogs==&lt;br /&gt;
&lt;br /&gt;
The '''Isle of Dogs''' is a large peninsula bounded on three sides by a large meander in the River Thames in East London, England, which includes the Cubitt Town, Millwall, and Canary Wharf districts. The area was historically part of the Manor, Hamlet, Parish and, for a time, the wider borough of Poplar. The name had no official status until the 1987 creation of the Isle of Dogs Neighbourhood by Tower Hamlets Borough Council. It has been known locally as simply &amp;quot;the Island&amp;quot; since the 19th century.&lt;br /&gt;
&lt;br /&gt;
The whole area was once known as '''Stepney Marsh'''; Anton van den Wyngaerde's &amp;quot;Panorama of London&amp;quot; dated 1543 depicts and refers to the Isle of Dogs. Records show that ships preparing to carry the English royal household to Calais in 1520 docked at the southern bank of the island. The name ''Isle of Dogs'' occurs in the ''Thamesis Descriptio'' of 1599, applied to a small island in the south-western part of the peninsula. The name is next applied to the ''Isle of Dogs Farm'' (originally known as ''Pomfret Manor'') shown on a map of 1683. At the same time, the area was variously known as ''Isle of Dogs'' or the ''Blackwell levels''. By 1855, it was incorporated within the parish of Poplar under the aegis of the Poplar Board of Works. This was incorporated into the Metropolitan Borough of Poplar on its formation in 1900.&lt;br /&gt;
&lt;br /&gt;
=Level39=&lt;br /&gt;
&lt;br /&gt;
On 18 March, 2013, Mayor of London Boris Johnson opened Level39, a major accelerator space for technologies for the UK's most successful industry, finance.&lt;br /&gt;
&lt;br /&gt;
Based at One Canada Square, Canary Wharf, the space offers businesses a place to create, test, market, and deliver technologies for finance as well as retail.&lt;br /&gt;
&lt;br /&gt;
Level39 forms a major part of Tech City &amp;amp;mdash; the government's attempt to make London the tech capital of Europe.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Attracting the brightest entrepreneurial minds is crucial if London is to maintain its position as the world's foremost financial centre and Level39 will foster just the talent we need to future-proof the capital's technology and financial sectors,&amp;quot; Johnson said.&lt;br /&gt;
&lt;br /&gt;
Eric van der Kleij, who previously headed up the Tech City Investment Organisation (TCIO) led Level39. &amp;quot;The timing could not be better to open Level39. London's financial services sector is searching for new technologies to transform itself at the very moment that the tech sector is displaying the sort of growth required to move the UK economy forward,&amp;quot; he said.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Level39 is London's point of convergence for FinTech, situated in the East End, which is the most dynamic area of Europe right now.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=715</id>
		<title>Locations/Level39, One Canada Square, Canary Wharf</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Locations/Level39,_One_Canada_Square,_Canary_Wharf&amp;diff=715"/>
		<updated>2021-12-23T09:05:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
'''Canary Wharf''' is an area of London, England, located on the Isle of Dogs in the London Borough of Tower Hamlets. Canary Wharf is defined by the Greater London Authority as being part of London's central business district, alongside Central London. With the City of London, it constitutes one of the main financial centres in the United Kingdom and the world, containing many high-rise buildings including the fourth tallest in the UK, One Canada Square, which opened on 26 August 1991.&lt;br /&gt;
&lt;br /&gt;
Developed on the site of the former West India Docks, Canary Wharf contains around 16,000,000 sq ft (1,5000,000 m&amp;lt;math&amp;gt;^2&amp;lt;/math&amp;gt;) of office and retail space. It comprises many open areas, including Canada Square, Cabot Square, and Westferry Circus. Together with Heron Quays and Wood Wharf, it forms the Canary Wharf Estate, around 97 acres (39 ha) in area.&lt;br /&gt;
&lt;br /&gt;
Owned wholly by Canary Wharf Group, Level39 launched in March 2013. Since then, Level39 has grown from a simple idea into a three-floor, 80,000 square foot community space occupying the 39th, 26th, and 24th floors of One Canada Square.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
&lt;br /&gt;
Canary Wharf is located on the West India Docks on the Isle of Dogs.&lt;br /&gt;
&lt;br /&gt;
==Isle of Dogs==&lt;br /&gt;
&lt;br /&gt;
The '''Isle of Dogs''' is a large peninsula bounded on three sides by a large meander in the River Thames in East London, England, which includes the Cubitt Town, Millwall, and Canary Wharf districts. The area was historically part of the Manor, Hamlet, Parish and, for a time, the wider borough of Poplar. The name had no official status until the 1987 creation of the Isle of Dogs Neighbourhood by Tower Hamlets Borough Council. It has been known locally as simply &amp;quot;the Island&amp;quot; since the 19th century.&lt;br /&gt;
&lt;br /&gt;
The whole area was once known as '''Stepney Marsh'''; Anton van den Wyngaerde's &amp;quot;Panorama of London&amp;quot; dated 1543 depicts and refers to the Isle of Dogs. Records show that ships preparing to carry the English royal household to Calais in 1520 docked at the southern bank of the island. The name ''Isle of Dogs'' occurs in the ''Thamesis Descriptio'' of 1599, applied to a small island in the south-western part of the peninsula. The name is next applied to the ''Isle of Dogs Farm'' (originally known as ''Pomfret Manor'') shown on a map of 1683. At the same time, the area was variously known as ''Isle of Dogs'' or the ''Blackwell levels''. By 1855, it was incorporated within the parish of Poplar under the aegis of the Poplar Board of Works. This was incorporated into the Metropolitan Borough of Poplar on its formation in 1900.&lt;br /&gt;
&lt;br /&gt;
==Level39==&lt;br /&gt;
&lt;br /&gt;
On 18 March, 2013, Mayor of London Boris Johnson opened Level39, a major accelerator space for technologies for the UK's most successful industry, finance.&lt;br /&gt;
&lt;br /&gt;
Based at One Canada Square, Canary Wharf, the space offers businesses a place to create, test, market, and deliver technologies for finance as well as retail.&lt;br /&gt;
&lt;br /&gt;
Level39 forms a major part of Tech City &amp;amp;mdash; the government's attempt to make London the tech capital of Europe.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Attracting the brightest entrepreneurial minds is crucial if London is to maintain its position as the world's foremost financial centre and Level39 will foster just the talent we need to future-proof the capital's technology and financial sectors,&amp;quot; Johnson said.&lt;br /&gt;
&lt;br /&gt;
Eric van der Kleij, who previously headed up the Tech City Investment Organisation (TCIO) led Level39. &amp;quot;The timing could not be better to open Level39. London's financial services sector is searching for new technologies to transform itself at the very moment that the tech sector is displaying the sort of growth required to move the UK economy forward,&amp;quot; he said.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Level39 is London's point of convergence for FinTech, situated in the East End, which is the most dynamic area of Europe right now.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=714</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Main_Page&amp;diff=714"/>
		<updated>2021-12-23T08:50:25Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Thalesians Ltd =&lt;br /&gt;
&lt;br /&gt;
[[File:The Thalesians Intensive School in ML-AI graduation 2019.jpg|alt=The Thalesians Intensive School in ML/AI graduation 2019|thumb|The Thalesians Intensive School in ML/AI graduation 2019]]&lt;br /&gt;
We believe that we can help create a healthier, more sustainable human environment by applying the lessons we are learning from building some of the world's most successful high- and medium-frequency trading systems to a wider range of data sets.&lt;br /&gt;
&lt;br /&gt;
We call the new science—built on the foundation of quantitative finance, algorithmic trading, machine learning (ML), deep learning (DL), artificial intelligence (AI), reactive programming, and big data—'''neocybernetics'''. &lt;br /&gt;
&lt;br /&gt;
The Level39 member fintech, Thalesians Ltd, is a neocybernetics company using the new technology and science to revolutionize finance, insurance, transportation, shipping, and medicine in the United Kingdom and worldwide.&lt;br /&gt;
&lt;br /&gt;
We do this by implementing real-time ML/AI software for neocybernetic systems, providing education and consulting services.&lt;br /&gt;
&lt;br /&gt;
We are experts in the application of ML/AI techniques to time series data, particularly Big Data and high-frequency data. Our areas of expertise include the mathematics of ML/AI, Deep Learning (DL), Python, and kdb+/q.&lt;br /&gt;
&lt;br /&gt;
'''Please note that we are in the process of migrating the first version of the Thalesian wiki, which dates back to 2008, to the new platform, so many pages either haven't been (re-)created yet or are currently under construction.'''&lt;br /&gt;
&lt;br /&gt;
=Contents=&lt;br /&gt;
&lt;br /&gt;
* [[Finance]]&lt;br /&gt;
* [[Mathematics]]&lt;br /&gt;
** [[Mathematics/Calculus|Calculus]]&lt;br /&gt;
*** [[Mathematics/Calculus/Corner cases|Corner cases]]&lt;br /&gt;
* [[Programming]]&lt;br /&gt;
** [[Programming/Linux|Linux]]&lt;br /&gt;
*** [[Programming/Tools/CMake|CMake]]&lt;br /&gt;
*** [[Programming/Tools/Make|Make]]&lt;br /&gt;
** [[Programming/Kdb|Kdb]]&lt;br /&gt;
*** [[Programming/Kdb/History|History]]&lt;br /&gt;
*** [[Programming/Kdb/Installing_kdb|Installing_kdb]]&lt;br /&gt;
*** [[Programming/Kdb/Factorial|Factorial]]&lt;br /&gt;
*** [[Programming/Kdb/Labs|Labs]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Option_pricing|Option pricing]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Exploratory_data_analysis|Exploratory data analysis]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Big_data_in_kdb|Big data in kdb+/q]]&lt;br /&gt;
**** [[Programming/Kdb/Labs/Feedhandler_and_kdb_tick_environment|Feedhandler and kdb+tick environment]]&lt;br /&gt;
*** [[Programming/Kdb/Q-sql|Q-sql]]&lt;br /&gt;
*** [[Programming/Kdb/Resources|Resources]]&lt;br /&gt;
** [[Programming/Principles|Principles]]&lt;br /&gt;
** [[Programming/Quotes|Quotes]]&lt;br /&gt;
* [[Machine Learning]]&lt;br /&gt;
** [[Machine Learning/Timeline|Timeline]]&lt;br /&gt;
** [[Machine Learning/Finance|Finance]]&lt;br /&gt;
** [[Machine Learning/Life_sciences|Life sciences]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Locations]]&lt;br /&gt;
** [[Locations/Canary_Wharf|Level39, One Canada Square, Canary Wharf]]&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=711</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=711"/>
		<updated>2021-12-23T08:46:13Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering machine learning research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || Bayesian methods are introduced for probabilistic inference in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || 'AI Winter' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of backpropagation causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions or &amp;quot;learn&amp;quot; from the results.&amp;lt;ref name=&amp;quot;Marr&amp;quot;&amp;gt;{{cite news|last1=Marr|first1=Bernard|title=A Short History of Machine Learning – Every Manager Should Read|url=https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/#2a1a75f9323f|work=Forbes|accessdate=28 Sep 2016}}&amp;lt;/ref&amp;gt; [[Support-vector machine]]s (SVMs) and [[recurrent neural network]]s (RNNs) become popular.&amp;lt;ref&amp;gt;{{cite journal|last1=Siegelmann|first1=Hava|first2=Eduardo|last2=Sontag|title=Computational Power of Neural Networks  |journal=Journal of Computer and System Sciences|volume=50|issue=1|year=1995 |pages=132–150|doi=10.1006/jcss.1995.1013|doi-access=free}}&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref&amp;gt;{{cite journal |last1=Siegelmann |first1=Hava |title=Computation Beyond the Turing Limit |journal=Journal of Computer and System Sciences |volume=238 |issue=28 |year=1995 |pages=632–637|doi=10.1126/science.268.5210.545 |pmid=17756722 |bibcode=1995Sci...268..545S |s2cid=17495161 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref&amp;gt;{{cite journal |first1=Asa |last1=Ben-Hur |first2=David |last2=Horn |first3=Hava |last3=Siegelmann |first4=Vladimir|last4=Vapnik |title=Support vector clustering |journal=Journal of Machine Learning Research|volume=2 |year=2001 |pages=51–86}}&amp;lt;/ref&amp;gt;  and other [[kernel method]]s&amp;lt;ref&amp;gt;{{cite journal |last1=Hofmann |first1=Thomas |first2=Bernhard |last2=Schölkopf |first3=Alexander J. |last3=Smola |title=Kernel methods in machine learning |journal=The Annals of Statistics |volume=36 |issue=3 |year=2008 |pages=1171–1220 |jstor=25464664 |doi=10.1214/009053607000000677|doi-access=free }}&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref&amp;gt;{{cite journal |first1=James |last1=Bennett |first2=Stan |last2=Lanning |title=The netflix prize |journal=Proceedings of KDD Cup and Workshop 2007 |date=2007 |url=https://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf}}&amp;lt;/ref&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| 2010s || [[Deep learning]] becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=710</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=710"/>
		<updated>2021-12-23T08:44:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions{{snd}} or &amp;quot;learn&amp;quot;{{snd}} from the results.&amp;lt;ref name=&amp;quot;Marr&amp;quot;&amp;gt;{{cite news|last1=Marr|first1=Bernard|title=A Short History of Machine Learning – Every Manager Should Read|url=https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/#2a1a75f9323f|work=Forbes|accessdate=28 Sep 2016}}&amp;lt;/ref&amp;gt; [[Support-vector machine]]s (SVMs) and [[recurrent neural network]]s (RNNs) become popular.&amp;lt;ref&amp;gt;{{cite journal|last1=Siegelmann|first1=Hava|first2=Eduardo|last2=Sontag|title=Computational Power of Neural Networks  |journal=Journal of Computer and System Sciences|volume=50|issue=1|year=1995 |pages=132–150|doi=10.1006/jcss.1995.1013|doi-access=free}}&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref&amp;gt;{{cite journal |last1=Siegelmann |first1=Hava |title=Computation Beyond the Turing Limit |journal=Journal of Computer and System Sciences |volume=238 |issue=28 |year=1995 |pages=632–637|doi=10.1126/science.268.5210.545 |pmid=17756722 |bibcode=1995Sci...268..545S |s2cid=17495161 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref&amp;gt;{{cite journal |first1=Asa |last1=Ben-Hur |first2=David |last2=Horn |first3=Hava |last3=Siegelmann |first4=Vladimir|last4=Vapnik |title=Support vector clustering |journal=Journal of Machine Learning Research|volume=2 |year=2001 |pages=51–86}}&amp;lt;/ref&amp;gt;  and other [[kernel method]]s&amp;lt;ref&amp;gt;{{cite journal |last1=Hofmann |first1=Thomas |first2=Bernhard |last2=Schölkopf |first3=Alexander J. |last3=Smola |title=Kernel methods in machine learning |journal=The Annals of Statistics |volume=36 |issue=3 |year=2008 |pages=1171–1220 |jstor=25464664 |doi=10.1214/009053607000000677|doi-access=free }}&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref&amp;gt;{{cite journal |first1=James |last1=Bennett |first2=Stan |last2=Lanning |title=The netflix prize |journal=Proceedings of KDD Cup and Workshop 2007 |date=2007 |url=https://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf}}&amp;lt;/ref&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| 2010s || [[Deep learning]] becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=706</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=706"/>
		<updated>2021-12-23T08:39:43Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions{{snd}} or &amp;quot;learn&amp;quot;{{snd}} from the results.&amp;lt;ref name=&amp;quot;Marr&amp;quot;&amp;gt;{{cite news|last1=Marr|first1=Bernard|title=A Short History of Machine Learning – Every Manager Should Read|url=https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/#2a1a75f9323f|work=Forbes|accessdate=28 Sep 2016}}&amp;lt;/ref&amp;gt; [[Support-vector machine]]s (SVMs) and [[recurrent neural network]]s (RNNs) become popular.&amp;lt;ref&amp;gt;{{cite journal|last1=Siegelmann|first1=Hava|first2=Eduardo|last2=Sontag|title=Computational Power of Neural Networks  |journal=Journal of Computer and System Sciences|volume=50|issue=1|year=1995 |pages=132–150|doi=10.1006/jcss.1995.1013|doi-access=free}}&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref&amp;gt;{{cite journal |last1=Siegelmann |first1=Hava |title=Computation Beyond the Turing Limit |journal=Journal of Computer and System Sciences |volume=238 |issue=28 |year=1995 |pages=632–637|doi=10.1126/science.268.5210.545 |pmid=17756722 |bibcode=1995Sci...268..545S |s2cid=17495161 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref&amp;gt;{{cite journal |first1=Asa |last1=Ben-Hur |first2=David |last2=Horn |first3=Hava |last3=Siegelmann |first4=Vladimir|last4=Vapnik |title=Support vector clustering |journal=Journal of Machine Learning Research|volume=2 |year=2001 |pages=51–86}}&amp;lt;/ref&amp;gt;  and other [[kernel method]]s&amp;lt;ref&amp;gt;{{cite journal |last1=Hofmann |first1=Thomas |first2=Bernhard |last2=Schölkopf |first3=Alexander J. |last3=Smola |title=Kernel methods in machine learning |journal=The Annals of Statistics |volume=36 |issue=3 |year=2008 |pages=1171–1220 |jstor=25464664 |doi=10.1214/009053607000000677|doi-access=free }}&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref&amp;gt;{{cite journal |first1=James |last1=Bennett |first2=Stan |last2=Lanning |title=The netflix prize |journal=Proceedings of KDD Cup and Workshop 2007 |date=2007 |url=https://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf}}&amp;lt;/ref&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| 2010s || [[Deep learning]] becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
{{Reflist|30em}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=705</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=705"/>
		<updated>2021-12-23T08:39:03Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|-&lt;br /&gt;
| 1990s || Work on Machine learning shifts from a knowledge-driven approach to a data-driven approach. Scientists begin creating programs for computers to analyze large amounts of data and draw conclusions{{snd}} or &amp;quot;learn&amp;quot;{{snd}} from the results.&amp;lt;ref name=&amp;quot;Marr&amp;quot;&amp;gt;{{cite news|last1=Marr|first1=Bernard|title=A Short History of Machine Learning – Every Manager Should Read|url=https://www.forbes.com/sites/bernardmarr/2016/02/19/a-short-history-of-machine-learning-every-manager-should-read/#2a1a75f9323f|work=Forbes|accessdate=28 Sep 2016}}&amp;lt;/ref&amp;gt; [[Support-vector machine]]s (SVMs) and [[recurrent neural network]]s (RNNs) become popular.&amp;lt;ref&amp;gt;{{cite journal|last1=Siegelmann|first1=Hava|first2=Eduardo|last2=Sontag|title=Computational Power of Neural Networks  |journal=Journal of Computer and System Sciences|volume=50|issue=1|year=1995 |pages=132–150|doi=10.1006/jcss.1995.1013|doi-access=free}}&amp;lt;/ref&amp;gt; The fields of computational complexity via neural networks and super-Turing computation started.&amp;lt;ref&amp;gt;{{cite journal |last1=Siegelmann |first1=Hava |title=Computation Beyond the Turing Limit |journal=Journal of Computer and System Sciences |volume=238 |issue=28 |year=1995 |pages=632–637|doi=10.1126/science.268.5210.545 |pmid=17756722 |bibcode=1995Sci...268..545S |s2cid=17495161 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2000s || Support-Vector Clustering&amp;lt;ref&amp;gt;{{cite journal |first1=Asa |last1=Ben-Hur |first2=David |last2=Horn |first3=Hava |last3=Siegelmann |first4=Vladimir|last4=Vapnik |title=Support vector clustering |journal=Journal of Machine Learning Research|volume=2 |year=2001 |pages=51–86}}&amp;lt;/ref&amp;gt;  and other [[kernel method]]s&amp;lt;ref&amp;gt;{{cite journal |last1=Hofmann |first1=Thomas |first2=Bernhard |last2=Schölkopf |first3=Alexander J. |last3=Smola |title=Kernel methods in machine learning |journal=The Annals of Statistics |volume=36 |issue=3 |year=2008 |pages=1171–1220 |jstor=25464664 |doi=10.1214/009053607000000677|doi-access=free }}&amp;lt;/ref&amp;gt; and unsupervised machine learning methods become widespread.&amp;lt;ref&amp;gt;{{cite journal |first1=James |last1=Bennett |first2=Stan |last2=Lanning |title=The netflix prize |journal=Proceedings of KDD Cup and Workshop 2007 |date=2007 |url=https://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf}}&amp;lt;/ref&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| 2010s || [[Deep learning]] becomes feasible, which leads to machine learning becoming integral to many widely used software services and applications.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Timeline=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year !! Event type !! Caption !! Event&lt;br /&gt;
|-&lt;br /&gt;
| 1763 || Discovery || The Underpinnings of [[Bayes' theorem|Bayes' Theorem]] || [[Thomas Bayes]]'s work ''[[An Essay towards solving a Problem in the Doctrine of Chances]]'' is published two years after his death, having been amended and edited by a friend of Bayes, [[Richard Price]].&amp;lt;ref&amp;gt;{{cite journal|last1=Bayes|first1=Thomas|title=An Essay towards solving a Problem in the Doctrine of Chance|journal=Philosophical Transactions|date=1 January 1763|volume=53|pages=370–418|doi=10.1098/rstl.1763.0053|jstor=105741|doi-access=free}}&amp;lt;/ref&amp;gt; The essay presents work which underpins [[Bayes theorem]].&lt;br /&gt;
|-&lt;br /&gt;
| 1805 || Discovery || Least Square || [[Adrien-Marie Legendre]] describes the &amp;quot;méthode des moindres carrés&amp;quot;, known in English as the [[least squares]] method.&amp;lt;ref&amp;gt;{{cite book|last1=Legendre|first1=Adrien-Marie|title=Nouvelles méthodes pour la détermination des orbites des comètes|date=1805|publisher=Firmin Didot|location=Paris|page=viii|url=https://archive.org/details/bub_gb_FRcOAAAAQAAJ|accessdate=13 June 2016|language=French}}&amp;lt;/ref&amp;gt; The least squares method is used widely in [[data fitting]].&lt;br /&gt;
|-&lt;br /&gt;
| 1812 || || [[Bayes' theorem|Bayes' Theorem]] || [[Pierre-Simon Laplace]] publishes ''Théorie Analytique des Probabilités'', in which he expands upon the work of Bayes and defines what is now known as [[Bayes' Theorem]].&amp;lt;ref&amp;gt;{{cite web|last1=O'Connor|first1=J J|last2=Robertson|first2=E F|title=Pierre-Simon Laplace|url=http://www-history.mcs.st-and.ac.uk/Biographies/Laplace.html|publisher=School of Mathematics and Statistics, University of St Andrews, Scotland|accessdate=15 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1913 || Discovery || Markov Chains || [[Andrey Markov]] first describes techniques he used to analyse a poem. The techniques later become known as [[Markov chains]].&amp;lt;ref&amp;gt;{{cite journal|last1=Hayes|first1=Brian|title=First Links in the Markov Chain|url=http://www.americanscientist.org/issues/pub/first-links-in-the-markov-chain/|accessdate=15 June 2016|journal=American Scientist|issue=March–April 2013|publisher=Sigma Xi, The Scientific Research Society|page=92|doi=10.1511/2013.101.1|quote=Delving into the text of Alexander Pushkin's novel in verse Eugene Onegin, Markov spent hours sifting through patterns of vowels and consonants. On January 23, 1913, he summarized his findings in an address to the Imperial Academy of Sciences in St. Petersburg. His analysis did not alter the understanding or appreciation of Pushkin's poem, but the technique he developed—now known as a Markov chain—extended the theory of probability in a new direction.|volume=101|year=2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1943&lt;br /&gt;
|Discovery&lt;br /&gt;
|[[Artificial neuron|Artificial Neuron]]&lt;br /&gt;
|[[Warren Sturgis McCulloch|Warren McCulloch]] and [[Walter Pitts]] develop a mathematical model that imitates the functioning of a biological neuron, the [[artificial neuron]] which is considered to be the first neural model invented.&amp;lt;ref&amp;gt;{{Cite journal|last1=McCulloch|first1=Warren S.|last2=Pitts|first2=Walter|date=1943-12-01|title=A logical calculus of the ideas immanent in nervous activity|url=https://doi.org/10.1007/BF02478259|journal=The Bulletin of Mathematical Biophysics|language=en|volume=5|issue=4|pages=115–133|doi=10.1007/BF02478259|issn=1522-9602}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1950 || || Turing's Learning Machine || [[Alan Turing]] proposes a 'learning machine' that could learn and become artificially intelligent. Turing's specific proposal foreshadows [[genetic algorithms]].&amp;lt;ref&amp;gt;{{cite journal|last1=Turing|first1=Alan|title=Computing Machinery and Intelligence|journal=Mind|date=October 1950|volume=59|issue=236|pages=433–460|doi=10.1093/mind/LIX.236.433|url=http://mind.oxfordjournals.org/content/LIX/236/433|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| 1951 || || First Neural Network Machine || [[Marvin Minsky]] and Dean Edmonds build the first neural network machine, able to learn, the [[Stochastic neural analog reinforcement calculator|SNARC]].&amp;lt;ref&amp;gt;{{Harvnb|Crevier|1993|pp=34–35}} and {{Harvnb|Russell|Norvig|2003|p=17}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1952 || || Machines Playing Checkers || [[Arthur Samuel]] joins IBM's Poughkeepsie Laboratory and begins working on some of the very first machine learning programs, first creating programs that play [[checkers]].&amp;lt;ref name=&amp;quot;aaai&amp;quot;&amp;gt;{{cite news|last1=McCarthy|first1=John|last2=Feigenbaum|first2=Ed|title=Arthur Samuel: Pioneer in Machine Learning|url=http://www.aaai.org/ojs/index.php/aimagazine/article/view/840/758|accessdate=5 June 2016|work=AI Magazine|issue=3|publisher=Association for the Advancement of Artificial Intelligence|page=10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1957 || Discovery || Perceptron || [[Frank Rosenblatt]] invents the [[perceptron]] while working at the [[Cornell Aeronautical Laboratory]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rosenblatt|first1=Frank|title=The perceptron: A probabilistic model for information storage and organization in the brain|journal=Psychological Review|date=1958|volume=65|issue=6|pages=386–408|doi=10.1037/h0042519 |url=http://www.staff.uni-marburg.de/~einhaeus/GRK_Block/Rosenblatt1958.pdf|pmid=13602029}}&amp;lt;/ref&amp;gt; The invention of the perceptron generated a great deal of excitement and was widely covered in the media.&amp;lt;ref&amp;gt;{{cite news|last1=Mason|first1=Harding|last2=Stewart|first2=D|last3=Gill|first3=Brendan|title=Rival|url=http://www.newyorker.com/magazine/1958/12/06/rival-2|accessdate=5 June 2016|work=The New Yorker|date=6 December 1958}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1963 || Achievement || Machines Playing Tic-Tac-Toe || [[Donald Michie]] creates a 'machine' consisting of 304 match boxes and beads, which uses [[reinforcement learning]] to play [[Tic-tac-toe]] (also known as noughts and crosses).&amp;lt;ref&amp;gt;{{cite web|last1=Child|first1=Oliver|title=Menace: the Machine Educable Noughts And Crosses Engine Read|url=http://chalkdustmagazine.com/features/menace-machine-educable-noughts-crosses-engine/#more-3326|website=Chalkdust Magazine |date=13 March 2016|accessdate=16 Jan 2018}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1967 || || Nearest Neighbor || The [[nearest neighbor algorithm]] was created, which is the start of basic pattern recognition. The algorithm was used to map routes.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || || Limitations of Neural Networks || [[Marvin Minsky]] and [[Seymour Papert]] publish their book ''[[Perceptrons (book)|Perceptrons]]'', describing some of the limitations of perceptrons and neural networks. The interpretation that the book shows that neural networks are fundamentally limited is seen as a hindrance for research into neural networks.&amp;lt;ref&amp;gt;{{cite web|last1=Cohen|first1=Harvey|title=The Perceptron|url=http://harveycohen.net/image/perceptron.html|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|last1=Colner|first1=Robert|title=A brief history of machine learning|url=http://www.slideshare.net/bobcolner/a-brief-history-of-machine-learning|website=SlideShare|date=4 March 2016|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970 || || Automatic Differentiation (Backpropagation) || [[Seppo Linnainmaa]] publishes the general method for automatic differentiation (AD) of discrete connected networks of nested differentiable functions.&amp;lt;ref name=&amp;quot;lin1970&amp;quot;&amp;gt;[[Seppo Linnainmaa]] (1970). &amp;quot;The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors.&amp;quot; Master's Thesis (in Finnish), Univ. Helsinki, 6–7.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;lin1976&amp;quot;&amp;gt;{{cite journal |first=Seppo |last=Linnainmaa |authorlink=Seppo Linnainmaa |year=1976 |title=Taylor expansion of the accumulated rounding error |journal=BIT Numerical Mathematics |volume=16 |issue=2 |pages=146–160 |doi=10.1007/BF01931367|s2cid=122357351 }}&amp;lt;/ref&amp;gt; This corresponds to the modern version of backpropagation, but is not yet named as such.&amp;lt;ref name=&amp;quot;grie2012&amp;quot;&amp;gt;{{cite journal |last=Griewank |first=Andreas |year=2012 |title=Who Invented the Reverse Mode of Differentiation? |journal=Documenta Matematica, Extra Volume ISMP |pages=389–400}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;grie2008&amp;quot;&amp;gt;Griewank, Andreas and Walther, A. ''Principles and Techniques of Algorithmic Differentiation, Second Edition''. SIAM, 2008.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;schmidhuber2015&amp;quot;&amp;gt;{{cite journal |authorlink=Jürgen Schmidhuber |last=Schmidhuber |first=Jürgen |year=2015 |title=Deep learning in neural networks: An overview |journal=Neural Networks |volume=61 |pages=85–117 |arxiv=1404.7828|bibcode=2014arXiv1404.7828S |doi=10.1016/j.neunet.2014.09.003 |pmid=25462637|s2cid=11715509 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;scholarpedia2015&amp;quot;&amp;gt;{{cite journal | last1 = Schmidhuber | first1 = Jürgen | authorlink = Jürgen Schmidhuber | year = 2015 | title = Deep Learning (Section on Backpropagation) | journal = Scholarpedia | volume = 10 | issue = 11| page = 32832 | doi = 10.4249/scholarpedia.32832 | bibcode = 2015SchpJ..1032832S | doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || || Stanford Cart || Students at Stanford University develop a cart that can navigate and avoid obstacles in a room.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1979 || Discovery || Neocognitron || [[Kunihiko Fukushima]] first publishes his work on the [[neocognitron]], a type of [[artificial neural network]] (ANN).&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
| last       = Fukushima&lt;br /&gt;
| first      = Kunihiko&lt;br /&gt;
| date       = October 1979&lt;br /&gt;
| title      = 位置ずれに影響されないパターン認識機構の神経回路のモデル --- ネオコグニトロン ---&lt;br /&gt;
| trans-title = Neural network model for a mechanism of pattern recognition unaffected by shift in position — Neocognitron —&lt;br /&gt;
| language   = Japanese&lt;br /&gt;
| url        = &lt;br /&gt;
| journal    = Trans. IECE&lt;br /&gt;
| volume     = J62-A&lt;br /&gt;
| issue      = 10&lt;br /&gt;
| pages      = 658–665&lt;br /&gt;
| doi        = &lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Fukushima|first1=Kunihiko|title=Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern The Recognitron Unaffected by Shift in Position|journal=Biological Cybernetics|date=April 1980|volume=36|issue=4|pages=193–202|url=http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf|accessdate=5 June 2016|doi=10.1007/bf00344251|pmid=7370364|s2cid=206775608}}&amp;lt;/ref&amp;gt; [[Neocognitron|Neocognition]] later inspires [[convolutional neural network]]s (CNNs).&amp;lt;ref&amp;gt;{{cite journal|last1=Le Cun|first1=Yann|title=Deep Learning|citeseerx=10.1.1.297.6176}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1981 || || Explanation Based Learning || Gerald Dejong introduces Explanation Based Learning, where a computer algorithm analyses data and creates a general rule it can follow and discard unimportant data.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1982 || Discovery || Recurrent Neural Network || [[John Hopfield]] popularizes [[Hopfield networks]], a type of [[recurrent neural network]] that can serve as [[content-addressable memory]] systems.&amp;lt;ref&amp;gt;{{cite journal|last1=Hopfield|first1=John|title=Neural networks and physical systems with emergent collective computational abilities|journal=Proceedings of the National Academy of Sciences of the United States of America|date=April 1982|volume=79|issue=8|pages=2554–2558|url=http://www.pnas.org/content/79/8/2554.full.pdf|accessdate=8 June 2016|doi=10.1073/pnas.79.8.2554|pmid=6953413|pmc=346238|bibcode=1982PNAS...79.2554H|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || || NetTalk || A program that learns to pronounce words the same way a baby does, is developed by Terry Sejnowski.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1986 || Application || Backpropagation || [[Seppo Linnainmaa]]'s reverse mode of [[automatic differentiation]] (first applied to neural networks by [[Paul Werbos]]) is used in experiments by [[David Rumelhart]], [[Geoff Hinton]] and [[Ronald J. Williams]] to learn [[Knowledge representation|internal representations]].&amp;lt;ref&amp;gt;{{cite journal|last1=Rumelhart|first1=David|last2=Hinton|first2=Geoffrey|last3=Williams|first3=Ronald|title=Learning representations by back-propagating errors|journal=Nature|date=9 October 1986|volume=323|issue=6088|pages=533–536|url=http://elderlab.yorku.ca/~elder/teaching/cosc6390psyc6225/readings/hinton%201986.pdf|accessdate=5 June 2016|doi=10.1038/323533a0|bibcode=1986Natur.323..533R|s2cid=205001834}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Discovery || Reinforcement Learning || Christopher Watkins develops [[Q-learning]], which greatly improves the practicality and feasibility of [[reinforcement learning]].&amp;lt;ref&amp;gt;{{cite journal|last1=Watksin|first1=Christopher|title=Learning from Delayed Rewards|date=1 May 1989|url=http://www.cs.rhul.ac.uk/~chrisw/new_thesis.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1989 || Commercialization || Commercialization of Machine Learning on Personal Computers || Axcelis, Inc. releases [[Evolver (software)|Evolver]], the first software package to commercialize the use of genetic algorithms on personal computers.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=BUSINESS TECHNOLOGY; What's the Best Answer? It's Survival of the Fittest|url=https://www.nytimes.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.html|accessdate=8 June 2016|work=New York Times|date=29 August 1990}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1992 || Achievement || Machines Playing Backgammon || Gerald Tesauro develops [[TD-Gammon]], a computer [[backgammon]] program that uses an [[artificial neural network]] trained using [[temporal-difference learning]] (hence the 'TD' in the name). TD-Gammon is able to rival, but not consistently surpass, the abilities of top human backgammon players.&amp;lt;ref&amp;gt;{{cite journal|last1=Tesauro|first1=Gerald|title=Temporal Difference Learning and TD-Gammon|journal=Communications of the ACM|date=March 1995|volume=38|issue=3|doi=10.1145/203330.203343|url=http://www.bkgm.com/articles/tesauro/tdl.html|pages=58–68|s2cid=8763243}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Random Forest Algorithm || Tin Kam Ho publishes a paper describing [[random forest|random decision forests]].&amp;lt;ref&amp;gt;{{cite journal|last1=Ho|first1=Tin Kam|title=Random Decision Forests|journal=Proceedings of the Third International Conference on Document Analysis and Recognition|date=August 1995|volume=1|pages=278–282|doi=10.1109/ICDAR.1995.598994|url=http://ect.bell-labs.com/who/tkh/publications/papers/odt.pdf|accessdate=5 June 2016|publisher=IEEE|location=Montreal, Quebec|isbn=0-8186-7128-9}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1995 || Discovery || Support-Vector Machines || [[Corinna Cortes]] and [[Vladimir Vapnik]] publish their work on [[support-vector machine]]s.&amp;lt;ref name=&amp;quot;bhml&amp;quot;&amp;gt;{{cite web|last1=Golge|first1=Eren|title=BRIEF HISTORY OF MACHINE LEARNING|url=http://www.erogol.com/brief-history-machine-learning/|website=A Blog From a Human-engineer-being|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal|last1=Cortes|first1=Corinna|last2=Vapnik|first2=Vladimir|title=Support-vector networks|journal=Machine Learning|date=September 1995|volume=20|issue=3|pages=273–297|doi=10.1007/BF00994018|publisher=Kluwer Academic Publishers|issn=0885-6125|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Achievement || IBM Deep Blue Beats Kasparov || IBM's [[Deep Blue (chess computer)|Deep Blue]] beats the world champion at chess.&amp;lt;ref name=&amp;quot;Marr&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1997 || Discovery || LSTM || [[Sepp Hochreiter]] and [[Jürgen Schmidhuber]] invent [[long short-term memory]] (LSTM) recurrent neural networks,&amp;lt;ref&amp;gt;{{cite journal|last1=Hochreiter|first1=Sepp|last2=Schmidhuber|first2=Jürgen|title=Long Short-Term Memory|journal=Neural Computation|date=1997|volume=9|issue=8|pages=1735–1780|url=http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|s2cid=1915014|url-status=dead|archiveurl=https://web.archive.org/web/20150526132154/http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf|archivedate=2015-05-26}}&amp;lt;/ref&amp;gt; greatly improving the efficiency and practicality of recurrent neural networks.&lt;br /&gt;
|-&lt;br /&gt;
| 1998 || || MNIST database || A team led by [[Yann LeCun]] releases the [[MNIST database]], a dataset comprising a mix of handwritten digits from [[American Census Bureau]] employees and American high school students.&amp;lt;ref&amp;gt;{{cite web|last1=LeCun|first1=Yann|last2=Cortes|first2=Corinna|last3=Burges|first3=Christopher|title=THE MNIST DATABASE of handwritten digits|url=http://yann.lecun.com/exdb/mnist/|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt; The MNIST database has since become a benchmark for evaluating [[handwriting recognition]].&lt;br /&gt;
|-&lt;br /&gt;
| 2002 || || Torch Machine Learning Library || [[Torch (machine learning)|Torch]], a software library for machine learning, is first released.&amp;lt;ref&amp;gt;{{cite journal|last1=Collobert|first1=Ronan|last2=Benigo|first2=Samy|last3=Mariethoz|first3=Johnny|title=Torch: a modular machine learning software library|date=30 October 2002|url=http://www.idiap.ch/ftp/reports/2002/rr02-46.pdf|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || || The Netflix Prize || The [[Netflix Prize]] competition is launched by [[Netflix]]. The aim of the competition was to use machine learning to beat Netflix's own recommendation software's accuracy in predicting a user's rating for a film given their ratings for previous films by at least 10%.&amp;lt;ref&amp;gt;{{cite web|title=The Netflix Prize Rules|url=http://www.netflixprize.com/rules|website=Netflix Prize|publisher=Netflix|accessdate=16 June 2016|url-status=dead|archiveurl=https://www.webcitation.org/65tSo1csp?url=http://www.netflixprize.com/rules|archivedate=3 March 2012}}&amp;lt;/ref&amp;gt; The prize was won in 2009.&lt;br /&gt;
|-&lt;br /&gt;
|2009&lt;br /&gt;
|Achievement&lt;br /&gt;
|ImageNet&lt;br /&gt;
|[[ImageNet]] is created. ImageNet is a large visual database envisioned by [[Fei-Fei Li]] from Stanford University, who realized that the best machine learning algorithms wouldn't work well if the data didn't reflect the real world.&amp;lt;ref&amp;gt;{{Cite web|url=https://qz.com/1034972/the-data-that-changed-the-direction-of-ai-research-and-possibly-the-world/|title=ImageNet: the data that spawned the current AI boom — Quartz|last=Gershgorn|first=Dave|website=qz.com|language=en-US|access-date=2018-03-30}}&amp;lt;/ref&amp;gt; For many, ImageNet was the catalyst for the AI boom&amp;lt;ref&amp;gt;{{Cite news|url=https://www.nytimes.com/2016/07/19/technology/reasons-to-believe-the-ai-boom-is-real.html|title=Reasons to Believe the A.I. Boom Is Real|last=Hardy|first=Quentin|date=2016-07-18|work=The New York Times|access-date=2018-03-30|language=en-US|issn=0362-4331}}&amp;lt;/ref&amp;gt; of the 21st century. &lt;br /&gt;
|-&lt;br /&gt;
| 2010 || || Kaggle Competition || [[Kaggle]], a website that serves as a platform for machine learning competitions, is launched.&amp;lt;ref&amp;gt;{{cite web|title=About|url=https://www.kaggle.com/about|website=Kaggle|publisher=Kaggle Inc|accessdate=16 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2011 || Achievement || Beating Humans in Jeopardy || Using a combination of machine learning, [[natural language processing]] and information retrieval techniques, [[IBM]]'s [[Watson (computer)|Watson]] beats two human champions in a [[Jeopardy!]] competition.&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=Computer Wins on 'Jeopardy!': Trivial, It's Not|url=https://www.nytimes.com/2011/02/17/science/17jeopardy-watson.html?pagewanted=all&amp;amp;_r=0|accessdate=5 June 2016|work=New York Times|date=17 February 2011|page=A1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Achievement || Recognizing Cats on YouTube || The [[Google Brain]] team, led by [[Andrew Ng]] and [[Jeff Dean (computer scientist)|Jeff Dean]], create a neural network that learns to recognize cats by watching unlabeled images taken from frames of [[YouTube]] videos.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Le | first1 = Quoc V.&lt;br /&gt;
 | last2 = Ranzato | first2 = Marc'Aurelio&lt;br /&gt;
 | last3 = Monga | first3 = Rajat&lt;br /&gt;
 | last4 = Devin | first4 = Matthieu&lt;br /&gt;
 | last5 = Corrado | first5 = Greg&lt;br /&gt;
 | last6 = Chen | first6 = Kai&lt;br /&gt;
 | last7 = Dean | first7 = Jeffrey&lt;br /&gt;
 | last8 = Ng | first8 = Andrew Y.&lt;br /&gt;
 | arxiv = 1112.6209&lt;br /&gt;
 | contribution = Building high-level features using large scale unsupervised learning&lt;br /&gt;
 | contribution-url = https://icml.cc/2012/papers/73.pdf&lt;br /&gt;
 | publisher = icml.cc / Omnipress&lt;br /&gt;
 | title = Proceedings of the 29th International Conference on Machine Learning, ICML 2012, Edinburgh, Scotland, UK, June 26 - July 1, 2012&lt;br /&gt;
 | year = 2012| bibcode = 2011arXiv1112.6209L}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite news|last1=Markoff|first1=John|title=How Many Computers to Identify a Cat? 16,000|url=https://www.nytimes.com/2012/06/26/technology/in-a-big-network-of-computers-evidence-of-machine-learning.html|accessdate=5 June 2016|work=New York Times|date=26 June 2012|page=B1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Leap in Face Recognition || [[Facebook]] researchers publish their work on [[DeepFace]], a system that uses neural networks that identifies faces with 97.35% accuracy. The results are an improvement of more than 27% over previous systems and rivals human performance.&amp;lt;ref&amp;gt;{{cite journal|last1=Taigman|first1=Yaniv|last2=Yang|first2=Ming|last3=Ranzato|first3=Marc'Aurelio|last4=Wolf|first4=Lior|title=DeepFace: Closing the Gap to Human-Level Performance in Face Verification|journal=Conference on Computer Vision and Pattern Recognition|date=24 June 2014|url=https://research.facebook.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || || Sibyl || Researchers from [[Google]] detail their work on Sibyl,&amp;lt;ref&amp;gt;{{cite web |last1=Canini|first1=Kevin|last2=Chandra|first2=Tushar|last3=Ie|first3=Eugene|last4=McFadden|first4=Jim|last5=Goldman|first5=Ken|last6=Gunter|first6=Mike|last7=Harmsen|first7=Jeremiah|last8=LeFevre|first8=Kristen|last9=Lepikhin|first9=Dmitry|last10=Llinares|first10=Tomas Lloret|last11=Mukherjee|first11=Indraneel|last12=Pereira|first12=Fernando|last13=Redstone|first13=Josh|last14=Shaked|first14=Tal|last15=Singer|first15=Yoram|title=Sibyl: A system for large scale supervised machine learning|url=https://users.soe.ucsc.edu/~niejiazhong/slides/chandra.pdf|website=Jack Baskin School of Engineering|publisher=UC Santa Cruz|accessdate=8 June 2016}}&amp;lt;/ref&amp;gt; a proprietary platform for massively parallel machine learning used internally by Google to make predictions about user behavior and provide recommendations.&amp;lt;ref&amp;gt;{{cite news|last1=Woodie|first1=Alex|title=Inside Sibyl, Google's Massively Parallel Machine Learning Platform|url=http://www.datanami.com/2014/07/17/inside-sibyl-googles-massively-parallel-machine-learning-platform/|accessdate=8 June 2016|work=Datanami|publisher=Tabor Communications|date=17 July 2014}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2016 || Achievement || Beating Humans in Go ||Google's [[AlphaGo]] program becomes the first [[Computer Go]] program to beat an unhandicapped professional human player&amp;lt;ref&amp;gt;{{cite web|title=Google achieves AI 'breakthrough' by beating Go champion|url=https://www.bbc.com/news/technology-35420579|website=BBC News|publisher=BBC|accessdate=5 June 2016|date=27 January 2016}}&amp;lt;/ref&amp;gt; using a combination of machine learning and tree search techniques.&amp;lt;ref&amp;gt;{{cite web|title=AlphaGo|url=https://www.deepmind.com/alpha-go.html|website=Google DeepMind|publisher=Google Inc|accessdate=5 June 2016}}&amp;lt;/ref&amp;gt; Later improved as [[AlphaGo Zero]] and then in 2017 generalized to Chess and more two-player games with [[AlphaZero]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=704</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=704"/>
		<updated>2021-12-23T08:36:39Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=703</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=703"/>
		<updated>2021-12-23T08:36:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=702</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=702"/>
		<updated>2021-12-23T08:36:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{Reflist|30em}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=701</id>
		<title>Machine Learning/Timeline</title>
		<link rel="alternate" type="text/html" href="https://wiki.thalesians.com/index.php?title=Machine_Learning/Timeline&amp;diff=701"/>
		<updated>2021-12-23T08:35:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| class=&amp;quot;wikitable sortable&amp;quot; |- ! Decade !! Summary |- | &amp;lt;1950s|| Statistical methods are discovered and refined. |- | 1950s || Pioneering machine learning research is conducted using simple algorithms. |- | 1960s || Bayesian methods are introduced for probabilistic inference in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt; |- | 1970s || 'A...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Decade !! Summary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;1950s|| Statistical methods are discovered and refined.&lt;br /&gt;
|-&lt;br /&gt;
| 1950s || Pioneering [[machine learning]] research is conducted using simple algorithms.&lt;br /&gt;
|-&lt;br /&gt;
| 1960s || [[Bayesian method]]s are introduced for [[Bayesian inference|probabilistic inference]] in machine learning.&amp;lt;ref&amp;gt;Solomonoff, Ray J. &amp;quot;A formal theory of inductive inference. Part II.&amp;quot; Information and control 7.2 (1964): 224–254.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1970s || '[[AI Winter]]' caused by pessimism about machine learning effectiveness.&lt;br /&gt;
|-&lt;br /&gt;
| 1980s || Rediscovery of [[backpropagation]] causes a resurgence in machine learning research.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>