Machine Learning 简明教程

Machine Learning - Quick Guide

Machine Learning - Introduction

如今的人工智能 (AI) 已经远远超越了区块链和量子计算的炒作。这是因为庞大的计算资源很容易为普通人所用。开发人员现在利用这一点创建新的机器学习模型并重新训练现有模型以获得更好的性能和结果。高性能计算 (HPC) 的容易获得导致对具有机器学习技能的 IT 专业人员的突然需求增加。

Today’s Artificial Intelligence (AI) has far surpassed the hype of blockchain and quantum computing. This is due to the fact that huge computing resources are easily available to the common man. The developers now take advantage of this in creating new Machine Learning models and to re-train the existing models for better performance and results. The easy availability of High Performance Computing (HPC) has resulted in a sudden increased demand for IT professionals having Machine Learning skills.

在本教程中,你将详细了解 −

In this tutorial, you will learn in detail about −

机器学习的核心是什么?

What is the crux of machine learning?

  1. What are the different types in machine learning?

  2. What are the different algorithms available for developing machine learning models?

  3. What tools are available for developing these models?

  4. What are the programming language choices?

  5. What platforms support development and deployment of Machine Learning applications?

  6. What IDEs (Integrated Development Environment) are available?

  7. How to quickly upgrade your skills in this important area?

Machine Learning - What Today’s AI Can Do?

当你在 Facebook 照片中标记人脸时,是 AI 在幕后运行并识别图片中的人脸。人脸标记现在在显示人脸图片的多个应用程序中无处不在。为什么只有人脸?有几个应用程序可以检测诸如猫、狗、瓶子、汽车等物体。我们的道路上运行着自动驾驶汽车,它们可以实时检测物体以操纵汽车。当你旅行时,你使用 Google Directions 来了解实时交通状况并遵循 Google 在该时间点建议的最佳路径。这是另一种实时物体检测技术的实现。

When you tag a face in a Facebook photo, it is AI that is running behind the scenes and identifying faces in a picture. Face tagging is now omnipresent in several applications that display pictures with human faces. Why just human faces? There are several applications that detect objects such as cats, dogs, bottles, cars, etc. We have autonomous cars running on our roads that detect objects in real time to steer the car. When you travel, you use Google Directions to learn the real-time traffic situations and follow the best path suggested by Google at that point of time. This is yet another implementation of object detection technique in real time.

让我们考虑我们通常在访问外国时使用的 Google Translate 应用程序的示例。你手机上的 Google 在线翻译器应用程序可以帮助你用对你来说是外语的语言与当地人交流。

Let us consider the example of Google Translate application that we typically use while visiting foreign countries. Google’s online translator app on your mobile helps you communicate with the local people speaking a language that is foreign to you.

有许多 AI 应用程序是我们实际生活中正在使用的。事实上,我们每个人都在生活的许多方面使用了 AI,甚至在我们不知情的情况下。当今的 AI 可以以极高的准确性和速度执行极其复杂的工作。让我们讨论一个复杂任务的示例,以了解你今天为你的客户开发的 AI 应用程序中所期望的能力。

There are several applications of AI that we use practically today. In fact, each one of us use AI in many parts of our lives, even without our knowledge. Today’s AI can perform extremely complex jobs with a great accuracy and speed. Let us discuss an example of complex task to understand what capabilities are expected in an AI application that you would be developing today for your clients.

Example

我们所有人都使用 Google Directions ,无论是在城市中进行日常通勤还是进行城际旅行。Google 地图应用程序会在此时间实例建议最快的路线前往目的地。当我们遵循此路径时,我们观察到谷歌在其建议中几乎 100% 正确,并且我们在旅途中节省了宝贵的时间。

We all use Google Directions during our trip anywhere in the city for a daily commute or even for inter-city travels. Google Directions application suggests the fastest path to our destination at that time instance. When we follow this path, we have observed that Google is almost 100% right in its suggestions and we save our valuable time on the trip.

想象一下开发此类应用程序涉及的复杂性,考虑到到达目的地有多条路径,并且该应用程序必须判断每条路径中的交通状况,才能为每条路径提供旅行时间估算值。此外,还要考虑 Google 地图覆盖全球这一事实。毫无疑问,这类应用程序的引擎盖下运用了许多人工智能和机器学习技术。

You can imagine the complexity involved in developing this kind of application considering that there are multiple paths to your destination and the application has to judge the traffic situation in every possible path to give you a travel time estimate for each such path. Besides, consider the fact that Google Directions covers the entire globe. Undoubtedly, lots of AI and Machine Learning techniques are in-use under the hoods of such applications.

考虑到对这类应用程序的持续需求,你现在就会明白为什么对具备人工智能技能的 IT 专业人士会出现突然需求。

Considering the continuous demand for the development of such applications, you will now appreciate why there is a sudden demand for IT professionals with AI skills.

在我们的下一章,我们将了解开发人工智能程序需要具备什么条件。

In our next chapter, we will learn what it takes to develop AI programs.

Machine Learning - Traditional AI

人工智能之旅始于 20 世纪 50 年代,当时的计算能力只是当今的一小部分。人工智能从机器按照统计人员使用计算器进行预测的方式进行预测开始。因此,最初整个人工智能开发主要基于统计技术。

The journey of AI began in the 1950’s when the computing power was a fraction of what it is today. AI started out with the predictions made by the machine in a fashion a statistician does predictions using his calculator. Thus, the initial entire AI development was based mainly on statistical techniques.

在本章中,让我们详细讨论这些统计技术是什么。

In this chapter, let us discuss in detail what these statistical techniques are.

Statistical Techniques

当今人工智能应用程序的开发始于使用古老的传统统计技术。你一定在学校里用过直线内插法来预测未来值。还有许多其他此类统计技术成功应用于开发所谓的 AI 程序。之所以称为“所谓的”,是因为我们今天拥有的人工智能程序要复杂得多,并且所使用的技术远远超出了早期人工智能程序所使用的统计技术。

The development of today’s AI applications started with using the age-old traditional statistical techniques. You must have used straight-line interpolation in schools to predict a future value. There are several other such statistical techniques which are successfully applied in developing so-called AI programs. We say “so-called” because the AI programs that we have today are much more complex and use techniques far beyond the statistical techniques used by the early AI programs.

以下是那些日子里用于开发 AI 应用程序且仍然在实践中的一些统计技术示例 -

Some of the examples of statistical techniques that are used for developing AI applications in those days and are still in practice are listed here −

  1. Regression

  2. Classification

  3. Clustering

  4. Probability Theories

  5. Decision Trees

此处,我们仅列出了一些基本的技巧,足以让你开始使用 AI,而不会让你害怕 AI 所需的广度。如果你正在基于有限数据开发 AI 应用程序,你将使用这些统计技术。

Here we have listed only some primary techniques that are enough to get you started on AI without scaring you of the vastness that AI demands. If you are developing AI applications based on limited data, you would be using these statistical techniques.

但是,如今的数据量很大。要分析我们所拥有的海量数据,统计技术无济于事,因为它们有一些自身的局限性。因此,开发了深度学习等更先进的方法来解决许多复杂的问题。

However, today the data is abundant. To analyze the kind of huge data that we possess statistical techniques are of not much help as they have some limitations of their own. More advanced methods such as deep learning are hence developed to solve many complex problems.

随着我们在这个教程中继续前进,我们将了解机器学习是什么以及它如何用于开发此类复杂的人工智能应用程序。

As we move ahead in this tutorial, we will understand what Machine Learning is and how it is used for developing such complex AI applications.

Machine Learning - What is Machine Learning?

考虑下图,其中显示了房屋价格与其面积(平方英尺)的关系图。

Consider the following figure that shows a plot of house prices versus its size in sq. ft.

house prices versus

在 XY 图上绘制各个数据点之后,我们会绘制一条最佳拟合线,为任何其他房屋进行预测,条件是知道了它的面积。你将把已知数据输入机器并要求它找到最佳拟合线。一旦机器找到了最佳拟合线,你将通过输入已知的房屋面积来检验其适用性,即以上曲线中的 Y 值。机器现在将返回估计的 X 值,即房屋的预期价格。该图表可以外推以找出面积为 3000 平方英尺甚至更大的房屋的价格。这在统计中称为回归。具体来说,这种回归称为线性回归,因为 X 和 Y 数据点之间的关系是线性的。

After plotting various data points on the XY plot, we draw a best-fit line to do our predictions for any other house given its size. You will feed the known data to the machine and ask it to find the best fit line. Once the best fit line is found by the machine, you will test its suitability by feeding in a known house size, i.e. the Y-value in the above curve. The machine will now return the estimated X-value, i.e. the expected price of the house. The diagram can be extrapolated to find out the price of a house which is 3000 sq. ft. or even larger. This is called regression in statistics. Particularly, this kind of regression is called linear regression as the relationship between X & Y data points is linear.

在许多情况下,X 和 Y 数据点之间的关系可能不是直线,而可能是具有复杂方程的曲线。你现在要做的任务是找出最佳拟合曲线,该曲线可以外推以预测未来值。下图显示了一个这样的应用程序图。

In many cases, the relationship between the X & Y data points may not be a straight line, and it may be a curve with a complex equation. Your task would be now to find out the best fitting curve which can be extrapolated to predict the future values. One such application plot is shown in the figure below.

predict future values

来源:

Source:

你将使用统计优化技术来找出这里最佳拟合曲线的方程。这正是机器学习的全部内容。你使用已知的优化技术来找出问题的最佳解决方案。

You will use the statistical optimization techniques to find out the equation for the best fit curve here. And this is what exactly Machine Learning is about. You use known optimization techniques to find the best solution to your problem.

接下来,让我们看看机器学习的不同类别。

Next, let us look at the different categories of Machine Learning.

Machine Learning - Categories

机器学习大致归类如下所述 -

Machine Learning is broadly categorized under the following headings −

categories machine learning

正如上图所示,机器学习从左向右发展。

Machine learning evolved from left to right as shown in the above diagram.

  1. Initially, researchers started out with Supervised Learning. This is the case of housing price prediction discussed earlier.

  2. This was followed by unsupervised learning, where the machine is made to learn on its own without any supervision.

  3. Scientists discovered further that it may be a good idea to reward the machine when it does the job the expected way and there came the Reinforcement Learning.

  4. Very soon, the data that is available these days has become so humongous that the conventional techniques developed so far failed to analyze the big data and provide us the predictions.

  5. Thus, came the deep learning where the human brain is simulated in the Artificial Neural Networks (ANN) created in our binary computers.

  6. The machine now learns on its own using the high computing power and huge memory resources that are available today.

  7. It is now observed that Deep Learning has solved many of the previously unsolvable problems.

  8. The technique is now further advanced by giving incentives to Deep Learning networks as awards and there finally comes Deep Reinforcement Learning.

现在让我们更详细地研究每个类别。

Let us now study each of these categories in more detail.

Supervised Learning

监督式学习类似于训练孩子走路。你将牵着孩子的手,向他展示如何向前迈步,自己走路示范,等等,直到孩子学会自己走路。

Supervised learning is analogous to training a child to walk. You will hold the child’s hand, show him how to take his foot forward, walk yourself for a demonstration and so on, until the child learns to walk on his own.

Regression

类似地,在监督式学习的情况下,你会给计算机具体的已知示例。你说对于给定的特征值 x1 输出是 y1,对于 x2 是 y2,对于 x3 是 y3,等等。基于此数据,你让计算机找出 x 和 y 之间的经验关系。

Similarly, in the case of supervised learning, you give concrete known examples to the computer. You say that for given feature value x1 the output is y1, for x2 it is y2, for x3 it is y3, and so on. Based on this data, you let the computer figure out an empirical relationship between x and y.

一旦机器通过足够数量的数据点以这种方式进行训练,你现在会要求机器为给定的 X 预测 Y。假设你已知给定 X 的 Y 的真实值,你将能够推断出机器的预测是否正确。

Once the machine is trained in this way with a sufficient number of data points, now you would ask the machine to predict Y for a given X. Assuming that you know the real value of Y for this given X, you will be able to deduce whether the machine’s prediction is correct.

因此,你将使用已知测试数据来测试机器是否已学习。一旦你满意机器能够以所需的准确度级别(例如 80% 到 90%)进行预测,就可以停止进一步训练机器。

Thus, you will test whether the machine has learned by using the known test data. Once you are satisfied that the machine is able to do the predictions with a desired level of accuracy (say 80 to 90%) you can stop further training the machine.

现在,你可以安全地使用机器对未知数据点进行预测,或要求机器为给定 X 预测 Y,而你不知道 Y 的真实值。这种训练属于我们前面讨论的回归。

Now, you can safely use the machine to do the predictions on unknown data points, or ask the machine to predict Y for a given X for which you do not know the real value of Y. This training comes under the regression that we talked about earlier.

Classification

你还可以将机器学习技术用于分类问题。在分类问题中,你将类似性质的对象归类到一个组中。例如,在 100 名学生中,你可以根据他们的身高将他们分成三组——矮、中和高。通过测量每个学生的身高,你将他们放在适当的组中。

You may also use machine learning techniques for classification problems. In classification problems, you classify objects of similar nature into a single group. For example, in a set of 100 students say, you may like to group them into three groups based on their heights - short, medium and long. Measuring the height of each student, you will place them in a proper group.

现在,当一名新学生进来时,你将通过测量他的身高将他放在适当的组中。通过遵循回归训练中的原则,你将训练机器根据他的特征(身高)对学生进行分类。当机器学会如何形成组后,它将能够正确分类任何未知的新学生。同样,在将开发的模型投入生产之前,你将使用测试数据来验证机器是否学会了你的分类技术。

Now, when a new student comes in, you will put him in an appropriate group by measuring his height. By following the principles in regression training, you will train the machine to classify a student based on his feature – the height. When the machine learns how the groups are formed, it will be able to classify any unknown new student correctly. Once again, you would use the test data to verify that the machine has learned your technique of classification before putting the developed model in production.

监督学习是人工智能真正开始其旅程的地方。这项技术在多起案件中都得到了成功应用。你在机器上进行手写识别时使用了这个模型。已经为监督学习开发了几种算法。你将在以下章节中学习它们。

Supervised Learning is where the AI really began its journey. This technique was applied successfully in several cases. You have used this model while doing the hand-written recognition on your machine. Several algorithms have been developed for supervised learning. You will learn about them in the following chapters.

Unsupervised Learning

在无监督学习中,我们不为机器指定目标变量,而是询问机器“你能告诉我关于 X 的什么吗?”。更具体地说,我们可能会提出诸如给定一个庞大数据集 X,“我们可以从 X 中找出五个最佳组?”或“哪些特征在 X 中出现得最频繁?”这样的问题。为了得出这些问题的答案,你可以理解机器需要推导出策略所需的数据点数量非常庞大。在监督学习的情况下,机器甚至可以用大约数千个数据点进行训练。然而,在无监督学习的情况下,合理接受用于学习的数据点数量从数百万开始。如今,数据通常非常丰富。数据理想情况下需要整理。然而,在大多数情况下,社交区域网络中不断流入的数据量是无法完成的任务。

In unsupervised learning, we do not specify a target variable to the machine, rather we ask machine “What can you tell me about X?”. More specifically, we may ask questions such as given a huge data set X, “What are the five best groups we can make out of X?” or “What features occur together most frequently in X?”. To arrive at the answers to such questions, you can understand that the number of data points that the machine would require to deduce a strategy would be very large. In case of supervised learning, the machine can be trained with even about few thousands of data points. However, in case of unsupervised learning, the number of data points that is reasonably accepted for learning starts in a few millions. These days, the data is generally abundantly available. The data ideally requires curating. However, the amount of data that is continuously flowing in a social area network, in most cases data curation is an impossible task.

下图显示了通过无监督机器学习确定的黄色圆点和红色圆点之间的边界。你可以清楚地看到,机器将能够以相当高的准确度确定每个黑点的类别。

The following figure shows the boundary between the yellow and red dots as determined by unsupervised machine learning. You can see it clearly that the machine would be able to determine the class of each of the black dots with a fairly good accuracy.

unsupervised machine learning

来源:

Source:

链接:https://chrisjmccormick.files.wordpress.com/2013/08/approx_decision_boundary.png[[role="bare"] [role="bare"]https://chrisjmccormick.files.wordpress.com/2013/08/approx_decision_boun dary.png]

link:https://chrisjmccormick.files.wordpress.com/2013/08/approx_decision_boun dary.png[[role="bare"]https://chrisjmccormick.files.wordpress.com/2013/08/approx_decision_boun dary.png]

无监督学习在许多现代人工智能应用中取得了巨大的成功,比如人脸识别、物体检测,等等。

The unsupervised learning has shown a great success in many modern AI applications, such as face detection, object detection, and so on.

Reinforcement Learning

考虑训练一只宠物狗,我们训练我们的宠物给我们拿回一个球。我们将球扔到一个一定距离然后让狗把它拿回来给我们。每次狗这么做了,我们都给它奖励。慢慢地,狗学会了正确地完成这项工作会得到奖励,然后狗在下一次开始正确地完成工作。完全地,此概念应用于“强化”类型学习。此技术最初开发用于让机器玩游戏。机器会得到一个算法来分析游戏每个阶段的所有可能动作。机器可能会随机选择其中一个动作。如果动作正确,机器会得到奖励,否则它可能会受到惩罚。慢慢地,机器将开始区分正确和错误的动作,并且在多次迭代之后学会以更好的准确度解决游戏谜题。随着机器玩越来越多的游戏,赢得游戏的准确度会提高。

Consider training a pet dog, we train our pet to bring a ball to us. We throw the ball at a certain distance and ask the dog to fetch it back to us. Every time the dog does this right, we reward the dog. Slowly, the dog learns that doing the job rightly gives him a reward and then the dog starts doing the job right way every time in future. Exactly, this concept is applied in “Reinforcement” type of learning. The technique was initially developed for machines to play games. The machine is given an algorithm to analyze all possible moves at each stage of the game. The machine may select one of the moves at random. If the move is right, the machine is rewarded, otherwise it may be penalized. Slowly, the machine will start differentiating between right and wrong moves and after several iterations would learn to solve the game puzzle with a better accuracy. The accuracy of winning the game would improve as the machine plays more and more games.

整个过程可以如以下图表所示:

The entire process may be depicted in the following diagram −

game puzzle

这种机器学习技术不同于监督学习,因为它不需要提供标记的输入/输出对。重点是平衡探索新解决方案和使用学习到的解决方案。

This technique of machine learning differs from the supervised learning in that you need not supply the labelled input/output pairs. The focus is on finding the balance between exploring the new solutions versus exploiting the learned solutions.

Deep Learning

深度学习是基于人工智能神经网络 (ANN),更具体地说是卷积神经网络 (CNN) 的模型。深度学习中使用了很多架构,比如深度神经网络、深度信任网络、反向神经网络和卷积神经网络。

The deep learning is a model based on Artificial Neural Networks (ANN), more specifically Convolutional Neural Networks (CNN)s. There are several architectures used in deep learning such as deep neural networks, deep belief networks, recurrent neural networks, and convolutional neural networks.

这些网络已成功用于解决计算机视觉、语音识别、自然语言处理、生物信息学、药物设计、医学图像分析和游戏中的问题。深度学习被积极应用于很多其他领域。深度学习需要巨大的处理能力和庞大的数据,而这些数据在如今通常很容易获取。

These networks have been successfully applied in solving the problems of computer vision, speech recognition, natural language processing, bioinformatics, drug design, medical image analysis, and games. There are several other fields in which deep learning is proactively applied. The deep learning requires huge processing power and humongous data, which is generally easily available these days.

我们将在接下来的章节中更详细地探讨深度学习。

We will talk about deep learning more in detail in the coming chapters.

Deep Reinforcement Learning

深度强化学习 (DRL) 结合了深度学习和强化学习这两种技术。现在将 Q-learning 这样的强化学习算法与深度学习结合创建了一个功能强大的 DRL 模型。此技术在机器人、电子游戏、金融和医疗保健领域取得了巨大的成功。现在通过创建 DRL 模型解决了以前很多无法解决的问题。在这个领域有很多研究,很多产业也积极地关注着此领域。

The Deep Reinforcement Learning (DRL) combines the techniques of both deep and reinforcement learning. The reinforcement learning algorithms like Q-learning are now combined with deep learning to create a powerful DRL model. The technique has been with a great success in the fields of robotics, video games, finance and healthcare. Many previously unsolvable problems are now solved by creating DRL models. There is lots of research going on in this area and this is very actively pursued by the industries.

目前,你已经初步了解了各种机器学习模型,现在让我们更深入地了解这些模型中可用的各种算法。

So far, you have got a brief introduction to various machine learning models, now let us explore slightly deeper into various algorithms that are available under these models.

Machine Learning - Supervised

监督学习是最重要的机器训练学习模型之一。本章将详细介绍它。

Supervised learning is one of the important models of learning involved in training machines. This chapter talks in detail about the same.

Algorithms for Supervised Learning

许多算法可用于监督学习。下面展示了监督学习中一些广泛使用的算法−

There are several algorithms available for supervised learning. Some of the widely used algorithms of supervised learning are as shown below −

  1. k-Nearest Neighbours

  2. Decision Trees

  3. Naive Bayes

  4. Logistic Regression

  5. Support Vector Machines

随着我们本章的学习,让我们详细讨论其中的每种算法。

As we move ahead in this chapter, let us discuss in detail about each of the algorithms.

k-Nearest Neighbours

k-最近邻域算法简称 kNN 是一种统计技术,可用于解决分类和回归问题。让我们讨论使用 kNN 对未知对象进行分类的情况。考虑如下图像所示的对象分布−

The k-Nearest Neighbours, which is simply called kNN is a statistical technique that can be used for solving for classification and regression problems. Let us discuss the case of classifying an unknown object using kNN. Consider the distribution of objects as shown in the image given below −

nearest neighbours

来源:

Source:

该图表显示三种类型的对象,分别用红色、蓝色和绿色标记。当您对上述数据集运行 kNN 分类器时,每种类型对象的边界将如下所示−

The diagram shows three types of objects, marked in red, blue and green colors. When you run the kNN classifier on the above dataset, the boundaries for each type of object will be marked as shown below −

dataset boundaries

来源:

Source:

现在,考虑一个您想要将它分类为红色、绿色或蓝色的新的未知对象。如下图所示。

Now, consider a new unknown object that you want to classify as red, green or blue. This is depicted in the figure below.

depicted figure

如您所见,未知数据点属于蓝色对象类别。从数学上讲,可以通过测量该未知点与数据集中每个其他点的距离来得出这个结论。当您这样做时,您将知道它的大多数邻居都是蓝色的。到红色和绿色对象的平均距离肯定大于到蓝色对象的平均距离。因此,可以将这个未知对象分类为属于蓝色类别。

As you see it visually, the unknown data point belongs to a class of blue objects. Mathematically, this can be concluded by measuring the distance of this unknown point with every other point in the data set. When you do so, you will know that most of its neighbours are of blue color. The average distance to red and green objects would be definitely more than the average distance to blue objects. Thus, this unknown object can be classified as belonging to blue class.

kNN 算法还可以用于回归问题。kNN 算法在大多数 ML 库中都有现成的可供使用。

The kNN algorithm can also be used for regression problems. The kNN algorithm is available as ready-to-use in most of the ML libraries.

Decision Trees

简单的流程图格式决策树如下所示 −

A simple decision tree in a flowchart format is shown below −

flowchart format

您可以根据此流程图编写代码来对输入数据进行分类。这个流程图不言自明,而且很普通。在此场景中,您尝试对传入的电子邮件进行分类以决定何时阅读它。

You would write a code to classify your input data based on this flowchart. The flowchart is self-explanatory and trivial. In this scenario, you are trying to classify an incoming email to decide when to read it.

实际上,决策树可能又大又复杂。有许多算法可用于创建和遍历这些树。作为机器学习爱好者,您需要理解和掌握创建和遍历决策树的这些技术。

In reality, the decision trees can be large and complex. There are several algorithms available to create and traverse these trees. As a Machine Learning enthusiast, you need to understand and master these techniques of creating and traversing decision trees.

Naive Bayes

朴素贝叶斯用于创建分类器。假设您想从一个水果篮中对不同种类的水果进行分类。您可以使用水果的颜色、大小和形状等特征,例如,任何颜色为红色、形状为圆形、直径约为 10 厘米的水果都可以被认为是苹果。因此,要训练模型,您将使用这些特征并测试给定特征与所需约束匹配的概率。然后将不同特征的概率组合起来,得出给定水果是苹果的概率。朴素贝叶斯通常需要少量的训练数据进行分类。

Naive Bayes is used for creating classifiers. Suppose you want to sort out (classify) fruits of different kinds from a fruit basket. You may use features such as color, size and shape of a fruit, For example, any fruit that is red in color, is round in shape and is about 10 cm in diameter may be considered as Apple. So to train the model, you would use these features and test the probability that a given feature matches the desired constraints. The probabilities of different features are then combined to arrive at a probability that a given fruit is an Apple. Naive Bayes generally requires a small number of training data for classification.

Logistic Regression

观察以下图表。它显示了数据点在 XY 平面中的分布。

Look at the following diagram. It shows the distribution of data points in XY plane.

distribution data points

从图表中,我们可以从视觉上检查红色点和绿色点的分离情况。您可以绘制一条边界线以分离出这些点。现在,要对新的数据点进行分类,你只需确定该点位于该线的哪一侧。

From the diagram, we can visually inspect the separation of red dots from green dots. You may draw a boundary line to separate out these dots. Now, to classify a new data point, you will just need to determine on which side of the line the point lies.

Support Vector Machines

观察以下数据分布。此处三类数据不能线性分离。边界曲线是非线性的。在这种情况下,找出手术的公式会变成一项复杂的工作。

Look at the following distribution of data. Here the three classes of data cannot be linearly separated. The boundary curves are non-linear. In such a case, finding the equation of the curve becomes a complex job.

non linear

数据来源: http://uc-r.github.io/svm

支持向量机 (SVM) 在这种情况下非常适合确定分离边界。

The Support Vector Machines (SVM) comes handy in determining the separation boundaries in such situations.

Machine Learning - Scikit-learn Algorithm

幸运的是,大多数情况下你不需要编写前面课程中提到的算法。有很多提供算法可用实现的标准库。其中一个经常使用的工具包是 scikit-learn。下图展示了此库中可供你使用的算法类型。

Fortunately, most of the time you do not have to code the algorithms mentioned in the previous lesson. There are many standard libraries which provide the ready-to-use implementation of these algorithms. One such toolkit that is popularly used is scikit-learn. The figure below illustrates the kind of algorithms which are available for your use in this library.

scikit learn

使用这些算法非常简单,由于它们经过了充分的现场测试,你可以安全地将它们用于你的 AI 应用。其中大多数库甚至可以免费用于商业目的。

The use of these algorithms is trivial and since these are well and field tested, you can safely use them in your AI applications. Most of these libraries are free to use even for commercial purposes.

Machine Learning - Unsupervised

迄今为止你所看到的都是让机器学习找到我们目标的解决方案。在回归中,我们训练机器预测一个未来值。在分类中,我们训练机器在我们定义的类目中对未知物体进行分类。总之,我们一直在训练机器以便它可以为我们的数据 X 预测 Y。给定一个巨大数据集并且不估计类目,我们很难使用监督学习训练机器。如果机器能够查阅并分析达到数百 GB 和 TB 的大数据并且告诉我们此数据包含很多不同的类目会怎样?

So far what you have seen is making the machine learn to find out the solution to our target. In regression, we train the machine to predict a future value. In classification, we train the machine to classify an unknown object in one of the categories defined by us. In short, we have been training machines so that it can predict Y for our data X. Given a huge data set and not estimating the categories, it would be difficult for us to train the machine using supervised learning. What if the machine can look up and analyze the big data running into several Gigabytes and Terabytes and tell us that this data contains so many distinct categories?

以选民数据为例。通过考虑每个选民的一些输入(在 AI 术语中称为特征),让机器预测有这么多的选民会为 X 政党投票,还有这么多的会为 Y 投票,等等。因此,总的来说,我们询问机器一个给定一个巨大的数据点 X 的数据集,“你能告诉我 X 的什么?”。或者它可能是一个类似于“我们可以从 X 中找出哪五个最好的组?”的问题。或者它甚至可以是“哪三个特征在 X 中一起出现的频率最高?”。

As an example, consider the voter’s data. By considering some inputs from each voter (these are called features in AI terminology), let the machine predict that there are so many voters who would vote for X political party and so many would vote for Y, and so on. Thus, in general, we are asking the machine given a huge set of data points X, “What can you tell me about X?”. Or it may be a question like “What are the five best groups we can make out of X?”. Or it could be even like “What three features occur together most frequently in X?”.

这正是无监督学习所要做的。

This is exactly the Unsupervised Learning is all about.

Algorithms for Unsupervised Learning

现在让我们讨论一下无监督学习中广泛使用的一种分类算法。

Let us now discuss one of the widely used algorithms for classification in unsupervised machine learning.

k-means clustering

2000 和 2004 年的美国总统选举都很接近——非常接近。任何候选人收到的最高普选票百分比为 50.7%,最低为 47.9%。如果有一定百分比的选民改变立场,选举的结果就会不同。有一些小团体选民,在适当劝说后会改变立场。这些团体可能并不庞大,但对于如此接近的竞选来说,他们可能足以改变选举结果。你如何找到这些人群?你如何用有限的预算吸引他们?答案是聚类。

The 2000 and 2004 Presidential elections in the United States were close — very close. The largest percentage of the popular vote that any candidate received was 50.7% and the lowest was 47.9%. If a percentage of the voters were to have switched sides, the outcome of the election would have been different. There are small groups of voters who, when properly appealed to, will switch sides. These groups may not be huge, but with such close races, they may be big enough to change the outcome of the election. How do you find these groups of people? How do you appeal to them with a limited budget? The answer is clustering.

让我们了解它是如何工作的。

Let us understand how it is done.

  1. First, you collect information on people either with or without their consent: any sort of information that might give some clue about what is important to them and what will influence how they vote.

  2. Then you put this information into some sort of clustering algorithm.

  3. Next, for each cluster (it would be smart to choose the largest one first) you craft a message that will appeal to these voters.

  4. Finally, you deliver the campaign and measure to see if it’s working.

聚类是一种无监督学习,可自动形成相似事物的集群。这类似于自动分类。你可以对几乎所有事物进行聚类,集群中项目越相似,则集群越好。在本章中,我们将研究一种称为 k 均值聚类的聚类算法。称其为 k 均值,因为它找到“k”个独特的集群,每个集群的中心はその集群中的值的平均值。

Clustering is a type of unsupervised learning that automatically forms clusters of similar things. It is like automatic classification. You can cluster almost anything, and the more similar the items are in the cluster, the better the clusters are. In this chapter, we are going to study one type of clustering algorithm called k-means. It is called k-means because it finds ‘k’ unique clusters, and the center of each cluster is the mean of the values in that cluster.

Cluster Identification

集群识别告诉算法:“这里有一些数据。现在,将相似的事物组合在一起,并向我介绍这些组。”与分类的关键区别在于,在分类中,你了解正在寻找什么。然而,在聚类中则不是这种情况。

Cluster identification tells an algorithm, “Here’s some data. Now group similar things together and tell me about those groups.” The key difference from classification is that in classification you know what you are looking for. While that is not the case in clustering.

聚类有时被称为无监督分类,因为它产生与分类相同的结果,但无需预先定义类。

Clustering is sometimes called unsupervised classification because it produces the same result as classification does but without having predefined classes.

现在,我们对有监督学习和无监督学习都感到满意。为了理解机器学习类别的其余部分,我们必须首先理解人工神经网络 (ANN),我们将在下一章中学习它。

Now, we are comfortable with both supervised and unsupervised learning. To understand the rest of the machine learning categories, we must first understand Artificial Neural Networks (ANN), which we will learn in the next chapter.

Machine Learning - Artificial Neural Networks

人工神经网络的概念源自人脑中的神经网络。人脑非常复杂。通过仔细研究大脑,科学家和工程师提出了一种架构,可以融入我们二进制计算机的数字世界。一种此类典型架构如下图所示 −

The idea of artificial neural networks was derived from the neural networks in the human brain. The human brain is really complex. Carefully studying the brain, the scientists and engineers came up with an architecture that could fit in our digital world of binary computers. One such typical architecture is shown in the diagram below −

artificial neural networks

它有一个输入层,其中有许多传感器,可以用它们从外部世界收集数据。在右侧,我们有一个输出层,它为我们提供了网络预测的结果。在这两者之间,隐藏着许多层。每增加一层,在训练网络时都会增加复杂性,但它会在大多数情况下提供更好的结果。我们现在将讨论设计了几种类型的架构。

There is an input layer which has many sensors to collect data from the outside world. On the right hand side, we have an output layer that gives us the result predicted by the network. In between these two, several layers are hidden. Each additional layer adds further complexity in training the network, but would provide better results in most of the situations. There are several types of architectures designed which we will discuss now.

ANN Architectures

下图显示了几个在一段时间内开发的人工神经网络架构,并且目前正在实践中使用。

The diagram below shows several ANN architectures developed over a period of time and are in practice today.

ann architectures

来源:

Source:

链接:https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained-3fb6f2367464[[role="bare"] [role="bare"]https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained-3fb6f2367464 ]

link:https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained- 3fb6f2367464[[role="bare"]https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained-3fb6f2367464]

每个架构针对特定类型的应用程序开发。因此,当你为你的机器学习应用程序使用神经网络时,你将必须使用现有架构的其中一种或设计自己的架构。你最终确定的应用程序类型取决于应用程序需求。没有单一的准则告诉你使用特定的网络架构。

Each architecture is developed for a specific type of application. Thus, when you use a neural network for your machine learning application, you will have to use either one of the existing architecture or design your own. The type of application that you finally decide upon depends on your application needs. There is no single guideline that tells you to use a specific network architecture.

Machine Learning - Deep Learning

深度学习使用人工神经网络。首先,我们将了解一些深度学习应用程序,它们将让你了解其功能。

Deep Learning uses ANN. First we will look at a few deep learning applications that will give you an idea of its power.

Applications

深度学习已在机器学习应用程序的多个领域显示出很大的成功。

Deep Learning has shown a lot of success in several areas of machine learning applications.

Self-driving Cars − 自动自动驾驶汽车使用深度学习技术。它们通常适应不断变化的交通状况,随着时间的推移变得越来越擅长驾驶。

Self-driving Cars − The autonomous self-driving cars use deep learning techniques. They generally adapt to the ever changing traffic situations and get better and better at driving over a period of time.

Speech Recognition − 深度学习的另一个有趣应用是语音识别。我们所有人今天都使用能够识别我们语音的几个移动应用程序。苹果的 Siri、亚马逊的 Alexa、微软的 Cortena 和谷歌的助理——所有这些都使用深度学习技术。

Speech Recognition − Another interesting application of Deep Learning is speech recognition. All of us use several mobile apps today that are capable of recognizing our speech. Apple’s Siri, Amazon’s Alexa, Microsoft’s Cortena and Google’s Assistant – all these use deep learning techniques.

Mobile Apps − 我们使用多个基于 Web 和移动的应用程序来组织我们的照片。人脸检测、人脸识别、人脸标记、识别图像中的物体——所有这些都使用深度学习。

Mobile Apps − We use several web-based and mobile apps for organizing our photos. Face detection, face ID, face tagging, identifying objects in an image – all these use deep learning.

Untapped Opportunities of Deep Learning

在看到深度学习应用程序在许多领域取得巨大成功后,人们开始探索到目前为止尚未应用机器学习的其他领域。有几个领域成功应用了深度学习技术,还有许多其他领域可以加以利用。这里讨论其中的一些领域。

After looking at the great success deep learning applications have achieved in many domains, people started exploring other domains where machine learning was not so far applied. There are several domains in which deep learning techniques are successfully applied and there are many other domains which can be exploited. Some of these are discussed here.

  1. Agriculture is one such industry where people can apply deep learning techniques to improve the crop yield.

  2. Consumer finance is another area where machine learning can greatly help in providing early detection on frauds and analyzing customer’s ability to pay.

  3. Deep learning techniques are also applied to the field of medicine to create new drugs and provide a personalized prescription to a patient.

可能性是无穷无尽的,而且新观念和新发展层出不穷,需要随时关注。

The possibilities are endless and one has to keep watching as the new ideas and developments pop up frequently.

What is Required for Achieving More Using Deep Learning

要使用深度学习,超级计算能力是强制性要求。需要内存和 CPU 来开发深度学习模型。幸运的是,现在我们已经能够轻松获得高性能计算 (HPC)。因此,我们上面提到的深度学习应用程序的开发成为现实,而且在未来,我们还可以在我们之前讨论的那些尚未开发的领域看到应用程序。

To use deep learning, supercomputing power is a mandatory requirement. You need both memory as well as the CPU to develop deep learning models. Fortunately, today we have an easy availability of HPC – High Performance Computing. Due to this, the development of the deep learning applications that we mentioned above became a reality today and in the future too we can see the applications in those untapped areas that we discussed earlier.

现在,我们将了解在机器学习应用程序中使用深度学习之前我们必须考虑的一些限制。

Now, we will look at some of the limitations of deep learning that we must consider before using it in our machine learning application.

Deep Learning Disadvantages

以下是使用深度学习之前需要考虑的一些重要要点:

Some of the important points that you need to consider before using deep learning are listed below −

  1. Black Box approach

  2. Duration of Development

  3. Amount of Data

  4. Computationally Expensive

现在,我们将详细研究其中每一项限制。

We will now study each one of these limitations in detail.

Black Box approach

ANN 就像一个黑盒子。你给它一个特定的输入,它将为你提供一个特定的输出。下图显示了一个这样的应用程序,你将动物图像馈送到神经网络,它告诉你图像是一只狗。

An ANN is like a blackbox. You give it a certain input and it will provide you a specific output. The following diagram shows you one such application where you feed an animal image to a neural network and it tells you that the image is of a dog.

black box approach

为什么这被称为黑匣子方法,是因为你不知道网络为什么会得出某个结果。你不知道网络是怎么得出它是狗的结论的?现在考虑一个银行应用程序,银行希望决定客户的信用度。该网络一定会为你提供这个问题的答案。然而,你能够向客户解释吗?银行需要向客户解释为什么贷款未获得批准?

Why this is called a black-box approach is that you do not know why the network came up with a certain result. You do not know how the network concluded that it is a dog? Now consider a banking application where the bank wants to decide the creditworthiness of a client. The network will definitely provide you an answer to this question. However, will you be able to justify it to a client? Banks need to explain it to their customers why the loan is not sanctioned?

Duration of Development

下图描述了训练神经网络的过程:

The process of training a neural network is depicted in the diagram below −

duration of development

你首先定义要解决的问题,为此创建规范,确定输入特征,设计网络,部署它并测试输出。如果输出不符合预期,请将其作为反馈来重新构建网络。这是一个迭代过程,可能需要多次迭代,直到网络完全训练好以产生所需的输出。

You first define the problem that you want to solve, create a specification for it, decide on the input features, design a network, deploy it and test the output. If the output is not as expected, take this as a feedback to restructure your network. This is an iterative process and may require several iterations until the time network is fully trained to produce desired outputs.

Amount of Data

深度学习网络通常需要大量数据才能进行训练,而即使只有几千个数据点,传统的机器学习算法也能成功使用。幸运的是,如以下图表所示,数据丰度每年增长 40%,而 CPU 处理能力每年增长 20%。

The deep learning networks usually require a huge amount of data for training, while the traditional machine learning algorithms can be used with a great success even with just a few thousands of data points. Fortunately, the data abundance is growing at 40% per year and CPU processing power is growing at 20% per year as seen in the diagram given below −

amount of data

Computationally Expensive

训练神经网络所需的计算能力比运行传统算法所需的能力高出数倍。深度神经网络的成功训练可能需要数周的训练时间。

Training a neural network requires several times more computational power than the one required in running traditional algorithms. Successful training of deep Neural Networks may require several weeks of training time.

相比之下,传统的机器学习算法只需要几分钟/小时的训练时间。此外,训练深度神经网络所需的计算能力在很大程度上取决于你的数据大小以及网络的深度和复杂程度?

In contrast to this, traditional machine learning algorithms take only a few minutes/hours to train. Also, the amount of computational power needed for training deep neural network heavily depends on the size of your data and how deep and complex the network is?

在概述了机器学习是什么、它的功能、限制和应用之后,让我们深入学习“机器学习”。

After having an overview of what Machine Learning is, its capabilities, limitations, and applications, let us now dive into learning “Machine Learning”.

Machine Learning - Skills

机器学习的宽度非常大,需要跨多个领域的技能。以下列出了成为机器学习专家所需的技能:

Machine Learning has a very large width and requires skills across several domains. The skills that you need to acquire for becoming an expert in Machine Learning are listed below −

  1. Statistics

  2. Probability Theories

  3. Calculus

  4. Optimization techniques

  5. Visualization

Necessity of Various Skills of Machine Learning

为了让你简要了解需要获得哪些技能,让我们讨论一些示例:

To give you a brief idea of what skills you need to acquire, let us discuss some examples −

Mathematical Notation

大多数机器学习算法在很大程度上基于数学。你需要了解的数学水平可能只是初学者水平。重要的是你应该能够阅读数学家在方程式中使用的符号。例如 - 如果你能够阅读符号并理解其含义,那么你就可以学习机器学习了。如果没有,你可能需要复习一下你的数学知识。

Most of the machine learning algorithms are heavily based on mathematics. The level of mathematics that you need to know is probably just a beginner level. What is important is that you should be able to read the notation that mathematicians use in their equations. For example - if you are able to read the notation and comprehend what it means, you are ready for learning machine learning. If not, you may need to brush up your mathematics knowledge.

f_{AN}(net-\theta)=\begin{cases}\gamma & if\:net-\theta \geq \epsilon\\net-\theta & if - \epsilon< net-\theta <\epsilon\\ -\gamma & if\:net-\theta\leq- \epsilon\end{cases}

\displaystyle\\\max\limits_{\alpha}\begin{bmatrix}\displaystyle\sum\limits_{i=1}^m \alpha-\frac{1}{2}\displaystyle\sum\limits_{i,j=1}^m label^\left(\begin{array}{c}i\\ \end{array}\right)\cdot\:label^\left(\begin{array}{c}j\\ \end{array}\right)\cdot\:a_{i}\cdot\:a_{j}\langle x^\left(\begin{array}{c}i\\ \end{array}\right),x^\left(\begin{array}{c}j\\ \end{array}\right)\rangle \end{bmatrix}

\displaystyle\\\max\limits_{\alpha}\begin{bmatrix}\displaystyle\sum\limits_{i=1}^m \alpha-\frac{1}{2}\displaystyle\sum\limits_{i,j=1}^m label^\left(\begin{array}{c}i\\ \end{array}\right)\cdot\:label^\left(\begin{array}{c}j\\ \end{array}\right)\cdot\:a_{i}\cdot\:a_{j}\langle x^\left(\begin{array}{c}i\\ \end{array}\right),x^\left(\begin{array}{c}j\\ \end{array}\right)\rangle \end{bmatrix}

f_{AN}(net-\theta)=\left(\frac{e {\lambda(net-\theta)}-e {-\lambda(net-\theta)}}{e {\lambda(net-\theta)}+e {-\lambda(net-\theta)}}\right)\;

f_{AN}(net-\theta)=\left(\frac{e{\lambda(net-\theta)}-e{-\lambda(net-\theta)}}{e{\lambda(net-\theta)}+e{-\lambda(net-\theta)}}\right)\;

Probability Theory

这是一个测试你当前概率论知识的例子:使用条件概率进行分类。

Here is an example to test your current knowledge of probability theory: Classifying with conditional probabilities.

p(c_{i}|x,y)\;=\frac{p(x,y|c_{i})\;p(c_{i})\;}{p(x,y)\;}

使用这些定义,我们可以定义贝叶斯分类规则—

With these definitions, we can define the Bayesian classification rule −

  1. If P(c1|x, y) > P(c2|x, y) , the class is c1 .

  2. If P(c1|x, y) < P(c2|x, y) , the class is c2 .

Optimization Problem

这是一个优化函数

Here is an optimization function

\displaystyle\\\max\limits_{\alpha}\begin{bmatrix}\displaystyle\sum\limits_{i=1}^m \alpha-\frac{1}{2}\displaystyle\sum\limits_{i,j=1}^m label^\left(\begin{array}{c}i\\ \end{array}\right)\cdot\:label^\left(\begin{array}{c}j\\ \end{array}\right)\cdot\:a_{i}\cdot\:a_{j}\langle x^\left(\begin{array}{c}i\\ \end{array}\right),x^\left(\begin{array}{c}j\\ \end{array}\right)\rangle \end{bmatrix}

\displaystyle\\\max\limits_{\alpha}\begin{bmatrix}\displaystyle\sum\limits_{i=1}^m \alpha-\frac{1}{2}\displaystyle\sum\limits_{i,j=1}^m label^\left(\begin{array}{c}i\\ \end{array}\right)\cdot\:label^\left(\begin{array}{c}j\\ \end{array}\right)\cdot\:a_{i}\cdot\:a_{j}\langle x^\left(\begin{array}{c}i\\ \end{array}\right),x^\left(\begin{array}{c}j\\ \end{array}\right)\rangle \end{bmatrix}

受以下约束的限制—

Subject to the following constraints −

\alpha\geq0,并且\:\displaystyle\sum\limits_{i-1}^m \alpha_{i}\cdot\:label^\left(\begin{array}{c}i\\ \end{array}\right)=0

\alpha\geq0,and\:\displaystyle\sum\limits_{i-1}^m \alpha_{i}\cdot\:label^\left(\begin{array}{c}i\\ \end{array}\right)=0

如果你能够理解以上内容,那么你已经准备好了。

If you can read and understand the above, you are all set.

Visualization

在很多情况下,你将需要理解各种可视化图,以了解你的数据分布并解释算法输出的结果。

In many cases, you will need to understand the various types of visualization plots to understand your data distribution and interpret the results of the algorithm’s output.

visualization plots

除了机器学习的以上理论方面,你还需要好的编程技能来编写这些算法。

Besides the above theoretical aspects of machine learning, you need good programming skills to code those algorithms.

那么,实现机器学习需要什么呢?让我们在下一章节中研究一下。

So what does it take to implement ML? Let us look into this in the next chapter.

Machine Learning - Implementing

要开发机器学习应用程序,您必须决定平台、IDE 和用于开发的语言。有几种选择。其中大多数可以轻松满足您的要求,因为它们都提供了到目前为止讨论的 AI 算法的实现。

To develop ML applications, you will have to decide on the platform, the IDE and the language for development. There are several choices available. Most of these would meet your requirements easily as all of them provide the implementation of AI algorithms discussed so far.

如果您自己开发机器学习算法,则需要仔细理解以下几个方面:

If you are developing the ML algorithm on your own, the following aspects need to be understood carefully −

你选择的语言—这本质上是你对机器学习开发中支持的一种语言的熟练程度。

The language of your choice − this essentially is your proficiency in one of the languages supported in ML development.

你使用的 IDE—这取决于你对现有 IDE 的熟悉程度以及你的舒适度。

The IDE that you use − This would depend on your familiarity with the existing IDEs and your comfort level.

Development platform - 有几个平台可用于开发和部署。其中大部分都是免费使用的。在某些情况下,您可能需要在使用量超过一定数量后支付许可费。以下是备选语言、IDE 和平台的简要列表,供您参考。

Development platform − There are several platforms available for development and deployment. Most of these are free-to-use. In some cases, you may have to incur a license fee beyond a certain amount of usage. Here is a brief list of choice of languages, IDEs and platforms for your ready reference.

Language Choice

以下是支持机器学习开发的语言列表:

Here is a list of languages that support ML development −

  1. Python

  2. R

  3. Matlab

  4. Octave

  5. Julia

  6. C++

  7. C

此列表并不是全面详尽的;但是,它涵盖了许多用于机器学习开发的流行语言。根据您的舒适程度,选择一种语言进行开发、开发模型并进行测试。

This list is not essentially comprehensive; however, it covers many popular languages used in machine learning development. Depending upon your comfort level, select a language for the development, develop your models and test.

IDEs

以下是支持机器学习开发的 IDE 列表:

Here is a list of IDEs which support ML development −

  1. R Studio

  2. Pycharm

  3. iPython/Jupyter Notebook

  4. Julia

  5. Spyder

  6. Anaconda

  7. Rodeo

  8. Google –Colab

上述列表并非全面详尽。每个都有其优点和缺点。鼓励读者在缩小范围到一个之前尝试这些不同的 IDE。

The above list is not essentially comprehensive. Each one has its own merits and demerits. The reader is encouraged to try out these different IDEs before narrowing down to a single one.

Platforms

以下是一些可以部署机器学习应用程序的平台的列表—

Here is a list of platforms on which ML applications can be deployed −

  1. IBM

  2. Microsoft Azure

  3. Google Cloud

  4. Amazon

  5. Mlflow

此列表再次不是穷举的。鼓励读者报名上述服务并自己尝试。

Once again this list is not exhaustive. The reader is encouraged to sign-up for the abovementioned services and try them out themselves.

Machine Learning - Conclusion

本教程向你介绍了机器学习。现在,你知道机器学习是一种训练机器执行人类大脑可以执行的活动的技术,尽管速度比普通人快一点,而且比普通人更好。今天,我们已经看到机器可以在诸如国际象棋、AlphaGo 等被认为非常复杂的游戏中击败人类冠军。你已经看到机器可以接受训练在多个领域执行人类活动,并可以帮助人类过上更好的生活。

This tutorial has introduced you to Machine Learning. Now, you know that Machine Learning is a technique of training machines to perform the activities a human brain can do, albeit bit faster and better than an average human-being. Today we have seen that the machines can beat human champions in games such as Chess, AlphaGO, which are considered very complex. You have seen that machines can be trained to perform human activities in several areas and can aid humans in living better lives.

机器学习可以是监督学习或非监督学习。如果你有较少的数据和明确标记的训练数据,请选择监督式学习。非监督学习通常会产生更好的性能和结果,适用于大量数据集。如果你有一个巨大的数据集合,很容易获得,那就采用深度学习技术吧。你也可以学习强化学习和深度强化学习。你现在知道什么是神经网络,它们的应用程序和限制。

Machine Learning can be a Supervised or Unsupervised. If you have lesser amount of data and clearly labelled data for training, opt for Supervised Learning. Unsupervised Learning would generally give better performance and results for large data sets. If you have a huge data set easily available, go for deep learning techniques. You also have learned Reinforcement Learning and Deep Reinforcement Learning. You now know what Neural Networks are, their applications and limitations.

最后,当涉及到开发你自己的机器学习模型时,你已经研究了各种开发语言、IDE 和平台的选择。接下来你需要做的事情就是开始学习和实践每一种机器学习技术。该学科很广泛,这意味着它有广度,但如果你考虑深度,那么每个主题可以在几个小时内学会。每个主题都是相互独立的。你需要一次考虑一个主题,学习它,练习它并使用你选择的语言实现算法。这是开始学习机器学习的最佳方式。一次练习一个主题,你很快就会获得机器学习专家最终所需的能力。

Finally, when it comes to the development of machine learning models of your own, you looked at the choices of various development languages, IDEs and Platforms. Next thing that you need to do is start learning and practicing each machine learning technique. The subject is vast, it means that there is width, but if you consider the depth, each topic can be learned in a few hours. Each topic is independent of each other. You need to take into consideration one topic at a time, learn it, practice it and implement the algorithm/s in it using a language choice of yours. This is the best way to start studying Machine Learning. Practicing one topic at a time, very soon you would acquire the width that is eventually required of a Machine Learning expert.

祝你好运!

Good Luck!