机器学习是如何区分猫和狗的?

最近人工智能方面最重要的发展之一就是机器学习了。它主要着眼于智能,而不是传统计算机程序意义上指定机器作什么东西,也就是说机器本身能够学习,这样它就能够直接从经验(或者数据)中学会如何处理复杂的任务。算法

即便是很简单的机器学习算法也能区分照片上的猫和狗浏览器

伴随着计算机速度的提升和算法的进步,机器学习的发展也很是迅速。从中衍生的算法已经对咱们的生活形成了深入的影响,并且有时候比人类作得更好。那么问题来了,机器学习究竟是如何工做的?安全


从经验中学网络

在一个机器学习系统中,计算机经过本身给本身编代码来完成一个任务,它通常是由基于这个任务的大量的数据来训练的。其中很大一部分涉及识别这些任务中的模式,而后根据这些模式作出决策。举一个(有点吓人)的例子,假设你的公司想要招聘一个新员工。你作了广告,而后有1000我的想来应聘,他们每一个人都发了一份简历。你须要筛选这些简历,可是1000份简历也太多了吧,因此你就想训练一个机器来作这件事。机器学习

为了保证这件事有必定的可行性,假设你有之前招聘时收到的简历。每一份简历都有被录用或没有被录用的记录。你把这些简历的一半用来训练机器,让它发现这些简历是否被成功录用的模式。所以,若是你给机器一份简历,它就能知道这份简历是否能够被录用。训练完机器,你用另外一半的简从来作测试。假设成功率很高,你就会相信机器能够胜任筛选简历的工做了。在上述的每个阶段,都没有人的干预。这样的一个过程,以如今的计算机的能力是彻底能够作到的。学习


基本要点测试

为了让机器学习的过程更加透明化,咱们用开发可识别手写数字的机器的很是具体的例子来考虑模式识别的问题。这样的机器应该可以作到:无论一个手写的数字写得怎么样,它都能识别出来。优化

即便对人类来讲,手写的数字都能可贵像密文同样人工智能

数字识别有两个阶段。首先,咱们把图像扫描进机器,而后从数字图像中提取重要的数据信息。这一般使用主成分分析(PCA)的统计方法,它能够自动提取一个图像的主要特征,好比高度和宽度,再好比图像中的交叉的点的个数,等等。这个过程与找一个矩阵的特征值和特征向量紧密相关,和谷歌用于在网络上搜索信息的过程也很像。3d

第二,咱们要训练机器利用这些提取的信息来学习辨别数字。完成这个过程的一个很广泛的方法就是神经网络。这个技术基于咱们对大脑如何工做的认识。第一步是,创造大量的“神经元”并把它们互相链接。这些神经元能够互相发送信息。第二步,让神经网络去求解大量的结果已知的问题。经过这个过程,它就“学会”了神经元之间应该如何链接,因此它就能成功地识别数据中哪些模式能够产生正确的结果。

这种神经网络的早期例子是称为感知器的单层系统,它能够模拟单个神经元。 感知器的概念是Frank Rosenblatt在1962年提出的。感知器的典型结构以下所示。

感知器有n个输入,从X1,X2到Xn,每一个输入都乘以一个权重因子Wi再相加,和为

若是这个结果比某个临界值C大,就返回1,不然,就返回0。

就是说,当

就返回1,而

就返回0。

在咱们的例子中,Xi就是提取的图像的特征,决策就是 这个数字是3仍是4。训练感知器的过程包括找到合适的权重因子wi和临界值C使得感知器识别到正确的数字。要作到这一点,须要谨慎使用基于统计的数学优化算法。


一个例子

举个例子,设想咱们只从图像中提取两个特征X1,X2,X1能够是图像中直线的数目,X2是图像中交叉点的数目。每一个手写的数字3和4都有这两个值,这样就能够在坐标中表示出来。因为数字“3”中没有直线也没有交叉的点,因此就可能对应接近坐标(0,0)的点。而数字“4”中有三条直线和一个交叉的点,因此它在坐标中对应(3,1)附近的点。

这样一来,感知器中计算的和就是

对一个给定的w1,w2和C,令方程等于0就决定了一条直线l。若是,使用图像来训练机器,感知器设法找到w1,w2和C的值使得l能够把3和4对应的点所有分开,以下图所示,这样它就能够有很大几率能够正确识别一个新的图像中的数字是3仍是4。若是存在这样的一条直线l,这样的数据就叫作线性可区分。

设想红色的点来自图像中的数字“3”,蓝色的点来自数字“4”。若是算法使用C=2,X1=X2=1,这样加权和等于0对应的直线如图所示。对于蓝色的点来讲,它对应的加权和大于0,对于红色的点来讲,其对应的加权和小于0,因此算法总能给出正确的结果。

若是数据点不能被一条直线分开——若是数据不是线性可区分的——你能够在更高的维度上作这件事并但愿在更高的维度上它们是线性可区分的。一个很是简单的例子,你能够把点画到屏幕之外的地方,画在三维的空间中。固然了,实际上一般都会使用更复杂的办法。另外,若是你从图像中提取的特征不仅是两个,也能够在更高的维度上使用相同的办法。

感知器的方法在区分猫和狗方面也适用。


这些图演示了随着可得到的数据的增长,算法如何更新直线的选择(也就是,常数C和W1,W2)


神经网络和深度学习

简单的感知器能够被训练作不少简单的任务,但很快就达到它的极限了。很明显,经过将许多感知器耦合在一块儿能够实现更多,但这种发展必须等待更强大的计算机的出现。 当感知层链接在一块儿产生神经网络时,取得了重大突破。 这种神经网络的典型结构以下所示。 在这种状况下,输入组合以触发第一层感知器。 这些输出组合起来触发下一层,最后这些组合起来给出输出。

层数越多,就能够拥有“更深层次”的网络。 而后经过为上面的每一个链接分配权重来训练这样的网络。 这个过程有点相似于大脑增强或减弱神经通路的方式。 深度学习描述了训练这种神经网络的过程。

因为新的数学优化算法的发展,结合普遍的(谷歌的DeepMind更普遍)计算机能力,如今已经能够作到。 在为网络找到合适的权重Wi的过程结束时,你会有一个黑盒子,它能够很是快速地运行而且能够作决策。


不一样的方法

如今咱们再来关注学习过程的更多细节。对于一个神经网络来讲有不少不一样类型。

在有监管学习中,由网络的使用者预先提供一组示例输入和输出对。而后,学习方法要找到一个神经网络,该网络提供与示例匹配的输出。将神经网络的输出与示例的输出进行比较的经常使用方法是找出正确输出和实际输出之间的均方偏差。而后训练网络以使该偏差最小化。它的一个很是标准的应用是在统计学中的曲线拟合,但它也一样适用于手写识别和其余模式识别问题。

在强化学习中,数据不是由用户预先给出的,而是由神经网络控制的机器与环境的相互做用及时产生的。在每一个时间点,机器对环境执行动做,该动做产生观察以及该动做的成本。训练网络使它能够选择最小化总成本的动做。在许多方面,这个过程相似于人类(尤为是幼儿)的学习方式。


为了学习下象棋,alpha zero 和本身下了700000局

近年来,机器学习的数学算法取得了很大进展。 卷积神经网络(CNN)是这些方法的一个使人兴奋的新的扩展,同时它也很是重要。它将图像处理技术与深度神经网络相结合。 它们可用于人脸识别,甚至可用于检测情绪。 它们如今被用于许多其余应用,包括医学诊断。

为了学习如何顺利下棋,AlphaZero使用了深度卷积神经网络。 这是使用强化方法训练的,机器与本身进行了700,000场比赛,时间超过24小时。 通用蒙特卡罗树搜索(MCTS)算法用于分配权重。 在学习如何玩将棋和围棋时,也使用了相似的方法,而且在每种状况下都达到了相同的水平。使人印象深入!

随着更快的训练算法和愈来愈多的数据的推进,诞生了更复杂、更深层次的网络,这让机器学习进展迅猛。 但让机器去作可能改变生命的决定(例如医疗诊断)是否安全并且符合伦理道德?


文章的最后部分,咱们放送干货。其实机器学习的优质资源很是多。小编也是翻遍浏览器收藏夹,也问同事取了取经把公司之前一块儿研究的论文笔记整合了一部分资源罗列

相关文章
相关标签/搜索