What is machine learning?

One area of technology that is helping improve the services that we use on our smartphones, and on the web, is machine learning. Sometimes, the terms machine learning and artificial intelligence get used as synonyms, especially when a big name company wants to talk about its latest innovations, however AI and machine learning are two quite distinct, yet connected, areas of computing.

The goals of AI is to create a machine which can mimic a human mind and to do that it needs learning capabilities. However the goal of AI researchers are quite broad and include not only learning, but also knowledge representation, reasoning, and even things like abstract thinking. Machine learning on the other hand is solely focused on writing software which can learn from past experience.

What you might find most astonishing is that machine learning is actually more closely related to data mining and statistical analysis than AI. Why is that? Well, lets look at what we mean by machine learning.

One of the standard definitions of machine learning, as given by Tom Mitchell – a Professor at the Carnegie Mellon University (CMU), is a computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

 

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

 

To put that a bit more simply, if a computer program can improve how it performs a task by using previous experience then you can say it has learned. This is quite different to a program which can perform a task because its programmers have already defined all the parameters and data needed to perform the task. For example, a computer program can play tic-tac-toe (noughts and crosses) because a programmer wrote the code with a built-in winning strategy. However a program that has no pre-defined strategy and only has a set of rules about the legal moves, and what is a winning scenario, will need to learn by repeatedly playing the game until it is able to win.

This doesn’t only apply to games, it also true of programs which perform classification and prediction. Classification is the process whereby a machine can recognize and categorize things from a dataset including from visual data and measurement data. Prediction (known as regression in statistics) is where a machine can guess (predict) the value of something based on previous values. For example, given a set of characteristics about a house, how much is it worth based on previous house sales.

That leads us to another definition of machine learning, it is the extraction of knowledge from data. You have a question you are trying to answer and you think the answer is in the data. That is why machine learning is related to statistics and data mining.

Types of machine learning

Machine learning can be split into three broad categories: Supervised, unsupervised and reinforcement. Let’s look at what they mean:

Supervised learning is where you teach (train) the machine using data which is well labeled. That means that the data is already tagged with the correct answer (outcome). Here is a picture of the letter A. This is the flag for the UK, it has three colors, one of them is red, and so on. The greater the dataset the more the machine can learn about the subject matter. After the machine is trained, it is the given new, previously unseen data, and the learning algorithm then uses the past experience to give a result. That is the letter A, that is the UK flag, and so on.

Unsupervised learning is where the machine is trained using a dataset that doesn’t have any labeling. The learning algorithm is never told what the data represents. Here is a letter, but no other information is given about which letter. Here are the characteristics of a particular flag, but without naming the flag. Unsupervised learning is like listening to a podcast in a foreign language which you don’t understand. You don’t have a dictionary and you don’t have a supervisor (teacher) to tell you about what you are hearing. If you listen to just one podcast it won’t be of much benefit, but if you listen to hundreds of hours of these podcasts your brain will start to form a model about how the language works. You will start to recognize patterns and you will start to expect certain sounds. When you do get hold of a dictionary or a tutor then you will learn the language much quicker.

One of the buzzwords that we hear from companies like Google and Facebook is 'Neural Net.'

The key thing about unsupervised learning is that once the unlabeled data has been processed it only takes one example of labeled data to make the learning algorithm fully effective. Having processed thousands of images of letters, processing one letter A will instantly label a whole section of the processed data. The advantage is that only a small set of labelled data is needed. Labeled data is harder to create than unlabeled data. In general we all have access to large amounts of unlabeled data, and only small amounts of labeled data.

Reinforcement learning is similar to unsupervised training in that the training data is unlabeled, however when asked a question about the data the outcome will be graded. A good example of this is playing games. If the machine wins the game then the result is trickled back down through the set of moves to reinforce the validity of those moves. Again, this isn’t much use if the computer plays just one or two games. But if it plays thousands, even millions of games then the cumulative effect of reinforcement will create a winning strategy.

How does it work

There are lots of different techniques used by engineers building machine learning systems. As I mentioned before, a large number of them are related to data mining and statistics. For example, if you have a dataset which describes the characteristics of different coins including their weight and diameter then you can employ statistical techniques like the ‘nearest neighbors’ algorithm to classify a previously unseen coin. What the ‘nearest neighbors’ algorithm does it look to see what classification was give to the nearest neighbors and then give the same classification to the new coin. The number of neighbors used to make that decision is referred to as ‘k’, and so the full title for the algorithm is ‘k-nearest neighbors.’

However there are lots of other algorithms that try to do the same thing, but using different methods. Take a look at the following diagram:

The picture on the top left is the data set. The data is classified into two categories, red and blue. The data is hypothetical, however it could represent almost anything: coin weights and diameters, number of petals on a plant and their widths, etc. Clearly there is some definite grouping here. Everything in the upper left belongs to the red category, and the bottom right to blue. However in the middle there is some crossover. If you get a new, previously unseen, sample which fits somewhere in the middle, does it belong to the red category or to blue? The other images show different algorithms and how they attempt to categorize a new sample. If the new sample lands in a white area then it means it can’t be classified using that method. The number on the lower right shows the classification accuracy.

Neural Nets

One of the buzzwords that we hear from companies like Google and Facebook is “Neural Net.” A neural net is a machine learning technique modeled on the way neurons work in the human brain. The idea is that given a number of inputs the neuron will propagate a signal depending on how it interprets the inputs. In machine learning terms this is done with matrix multiplication along with an activation function.

The use of neural networks has increased significantly in recent years and the current trend is to use deep neural networks with several layers of interconnected neurons. During Google I/O 2015, Senior Vice-President of Products, Sundar Pichai, explained how machine learning and deep neural networks are helping Google fulfill its core mission to “organize the world’s information and make it universally accessible and useful.” To that end you can ask Google Now things like, “How do you say Kermit the Frog in Spanish.” And because of DNNs, Google is able to do voice recognition, natural language processing, and translation.

Currently Google is using 30 layer neural nets, which is quite impressive. As a result of using DNNs, Google’s error rate for speech recognition has dropped from 23% in 2013 to just 8% in 2015.

Some examples of machine learning

So we know that companies like Google and Facebook use machine learning to help improve their services. So what can be achieved with machine learning? One interesting area is picture annotation. Here the machine is presented with a photograph and asked to describe it. Here are some examples of machine generated annotations:

The first two are quite accurate (although I am not sure there is a sink in the first picture), and the third is interesting in that the computer managed to detect the box of doughnuts, but it misinterpreted the other pastries as a cup of coffee. Of course the algorithm can also get it completely wrong:

Another example is teaching a machine to write. Cleveland Amory, an American author, reporter and commentator, once wrote, “In my day the schools taught two things, love of country and penmanship — now they don’t teach either.” I wonder what he would think about this:

The above handwriting sample was produced by a Recurrent Neural Network. To train the machine its creators asked 221 different writers to use a ‘smart whiteboard’ and to copy out some text. During the writing the position of their pen was tracked using infra-red. This resulted in a set of x and y coordinates which were used for supervised training. As you can see the results are quite impressive. In fact, the machine can actually write in several different styles, and at different levels of untidiness!

Google recently published a paper about using neural networks as a way to model conversations. As part of the experiment the researchers trained the machine using 62 million sentences from movie subtitles. As you can imagine the results are interesting. At one point the machine declares that it isn’t “ashamed of being a philosopher!” While later when asked about discussing morality and ethics it said, “and how i’m not in the mood for a philosophical debate.” So it seems that if you feed a machine a steady diet of Hollywood movie scripts the result is a moody philosopher!

Wrap-up

Unlike many areas of AI research, machine learning isn’t an intangible target, it is a reality that is already working to improve the services we use. In many ways it is the unsung hero, the uncelebrated star which works in the background trawling through all our data to try and find the answers we are looking for. And like “Deep Thought” from Douglas Adam’s Hitchhiker’s Guide to the Galaxy, sometimes it is the question we need to understand first, before we can understand the answer!

What is machine learning?的更多相关文章

  1. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  2. 【Machine Learning】Python开发工具:Anaconda+Sublime

    Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...

  3. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  4. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  5. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  6. [Machine Learning] Active Learning

    1. 写在前面 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi ...

  7. [Machine Learning & Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族

    声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 写在前面 记得在<Pattern Recognition And Machine ...

  8. machine learning基础与实践系列

    由于研究工作的需要,最近在看机器学习的一些基本的算法.选用的书是周志华的西瓜书--(<机器学习>周志华著)和<机器学习实战>,视频的话在看Coursera上Andrew Ng的 ...

  9. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  10. Machine Learning

    Recently, I am studying Maching Learning which is our course. My English is not good but this course ...

随机推荐

  1. Poco C++库网络模块例子解析2-------HttpServer

    //下面程序取自 Poco 库的Net模块例子----HTTPServer 下面开始解析代码 #include "Poco/Net/HTTPServer.h" //继承自TCPSe ...

  2. 加速Android Studio/Gradle构建

    已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以 ...

  3. Android主题切换方案总结

    所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤. 1.将主题包(图片与配置)存到SD卡上(可通过下载或手动放入指定目录),在代码里强制从本地文件创建图片与配置文字大 ...

  4. hibernate----hibernate的基础设置

    本次学习的内容是hibernate的基础设置 具体内容为: 一.准备工作 1.新建java工程 2.自动引入相关库(自动生成SessionFactory) 3.将数据库驱动拿进来 4.添加hibern ...

  5. struts1与struts2的区别

    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简 ...

  6. 安卓数据存储(3):SQLite数据库存储

    SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级:使用 SQLit ...

  7. Java反序列化

    一.序列化和反序列化的概念       把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬 ...

  8. DI(依赖注入)简单理解 NO1

    依赖注入:目的削减程序的耦合度,达到高内聚/低耦合 常用形式:Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等.通过Io ...

  9. 通过Web.config中的configSections配置自己系统的全局常量

    通过Web.config中的configSections配置自己系统的全局常量 随着系统的庞大,你的全局信息保存在appsitting里可能会比较乱,不如为模块写个自定义的全局常量吧 首先在Web.C ...

  10. 转载---SQL Server XML基础学习<2>之--FOR XML AUTO/RAW

    本文主要介绍FOR XML 的 AUTO 模式和 RAW 模式 --AUTO 模式将查询结果以嵌套 XML 元素的方式返回.这不能较好地控制从查询结果生成的 XML 的形式. --如果要生成简单的层次 ...