打字猴:1.700515779e+09
1700515779 如果我们想知道某一像素点属于身体的哪一部分,该怎样设计问题算法呢?在过去,我们都是通过苦思冥想或突发的灵感去设计一系列巧妙的问题。那是否能够通过计算机编程的手段,通过大量的数据交互与训练,选择、甄别出更好、更高效的问题集合呢?答案是“能”,它就是“机器学习”。
1700515780
1700515781 机器学习会从一些我们认为可能解决问题的候选问题开始,所以不算是零起点学习。学习的过程就是将最初的想法逐渐优化,从而形成有效的解决方案。那么,你认为什么样的问题可以帮助我们区分手臂和头呢?
1700515782
1700515783 假设被识别像素为x,像素深度是其与摄像头之间的距离。若被测试人站在摄像头前,其身上的所有像素点的深度值(该点与摄像头之间的距离值)是大致相同的,而其身后墙壁上的像素点的深度值则明显偏大。微软团队设计的问题策略是依次对x周围的像素点进行询问:若x位于头顶的位置,那么x以北(上)的相邻像素点(可能是x上方墙壁上的某一点)的深度值将远大于x的深度值,而x以南(下)的相邻像素点(可能是位于x下方人脸某个部位的一点)的深度值则约等于x的深度值;若x位于水平伸直的手臂上,则手臂伸展方向上的相邻像素点的深度值约等于x的深度值,而垂直于手臂方向上的相邻像素点的深度值则会由相对不变的状态迅速变大到与墙壁上的像素点的深度值相等。随着不断提问、回答、分析,该像素点位于身体哪个部位的答案将逐渐浮出水面。
1700515784
1700515785 这种不断提问的过程相当于构建了一棵决策树,每个后续问题形成树的一个分支。在初始状态下,选择任意的方向和深度阈值,如“方向向北,深度值小于y时转到决策树的左分支,若大于则转到右分支”,依此类推。我们的目标是能够找到那些提供有价值的信息的问题。即使初始化状态是从随机问题开始的,一旦问题的数量累积到一定程度,如应用于10 000个带标记的图像时,我们就可以得到想要的答案。(比如说,我们判断出了在图像872中,x位于肘部;在图像3339中,x位于左脚。)我们想象有这样一些桶,每一只桶对应决策树的一个分支或者身体的某个部位,这样能够确认x像素为肘部的所有的问题都可被放到其对应的一只桶中。当然,对于第一组随机问题集来说,确定它们所对应的桶还比较困难。但经过一段时间的学习或训练后,算法将逐步对角度和深度阈值进行优化,每个桶中的像素将得到更好的分类。
1700515786
1700515787 通过这个迭代的过程,算法会逐步调整阈值自我优化,以便于更好地识别像素点。重要的是,我们并不需要追求完美:如果桶中的1000幅图像有990幅均表明像素x位于肘部,就意味着识别的正确率已然达到了99%。
1700515788
1700515789 算法自己找到了最优的问题集合,但程序员并不真正清楚它是如何得到这样的结果的。他们可以查看决策树中任何一个结点及其前后结点上所询问的问题,但树中的问题超过百万个,每个问题又略有不同,所以很难采用逆向工程法得出算法具体是怎样解决问题的。
1700515790
1700515791 试想一下,数量超过百万的问题如果全靠人工编程实现,即使再厉害、再勇敢的程序员也会闻之色变、望而生畏,然后望风而逃。但计算机却擅长做这种工作。编程团队需要有一些创造性的思维去相信通过对相邻像素点深度值的询问和比较,足以确定该点所在位置,而之后的创造则属于计算机了。
1700515792
1700515793 机器学习所面临的挑战之一是“过度拟合”[2] 。针对训练数据提出用以区别图片的问题相对容易,但设计一个不针对特定数据的通用程序却非常困难,它需要从数据中抽象出广泛适用的规则。假设给定1000个人的姓名和护照号码,让你去设计问题集合对每个人加以识别,你可能会这样提问:“你的护照号码是834765489吗?好的,那你一定就是阿达·洛夫莱斯了!”但这样的问题只适用于现有的数据集,对于该组数据之外的新数据来说是难以实现身份识别的。因为护照号码是唯一的,不可能再有其他人拥有该组数据中的护照号码。
1700515794
1700515795 比如,根据给定的图表中的十个点,可得到一个方程,由该方程创建一条通过所有点的曲线。我们可以用一个十项式来表示这个方程,但这并不能很好地揭示数据中潜在的模式,而这对于理解和识别新数据是不利的。因此,有必要减少方程的项数,以避免出现过度拟合的问题。
1700515796
1700515797 过度拟合会误导你在建模时过分关注细节而错过数据呈现出的总体趋势,然后产生不符合客观规律的预测结果。如图5-3所示,这是一幅包含美国20世纪初人口总量的12个数据点的二维图。其总体趋势用二次方程式描述是最合适的,但如果我们选取的方程中x项的幂超过2时会出现什么情况?例如,方程式中x项的幂是从0变化到11,尽管由这个方程式确定的曲线与历史样本数据完美拟合,但一旦扩展到未来,曲线会突然向下倾斜,而这预示未来美国的人口数量会急转直下并且到2028年10月中旬就彻底消亡。这多少有些荒谬,或许是数学知道了一些不得了的事情吧!
1700515798
1700515799
1700515800
1700515801
1700515802 图 5-3
1700515803
1700515804 [1] 最贴切的例子是12306网站的购票确认验证。——译者注
1700515805
1700515806 [2] 指假设函数为了完美地拟合样本集,引入了过多的高次项。虽然这样做可以得到良好的样本拟合结果,但与实际情况完全偏离。——译者注
1700515807
1700515808
1700515809
1700515810
1700515811 天才与算法:人脑与AI的数学思维 [:1700514892]
1700515812 天才与算法:人脑与AI的数学思维 算法的幻觉
1700515813
1700515814 在过去的五年里,计算机视觉识别的发展进步让每个人都感到惊讶——新算法可以驾驭或识别的不仅仅是人类的身体。视觉识别能力的不足,一直是计算机不能与人类智能相媲美的最大障碍。比如,数码相机对图像细节的捕捉能力远超过人类大脑,但在图像识别的过程中,计算机读取到的是一个个孤立的像素点,而不是一副完整、有内容、有故事的图片。人类大脑在图像识别的过程中是如何处理数据的,至今仍然是一个未解之谜,更何况是我们的这些“硅朋友”[1] 了。
1700515815
1700515816 接收到感官传递过来的信息后,人类大脑是如何将其当作一个整体看待的?例如,骰子的颜色(红色)和形状(立方体)在人类看来是相互关联的,大脑可以很好地将其融合成一个统一的整体。复制这种融合能力,一直是计算机解释图像所面对的挑战之一。按像素读取图像的方式,无法帮助计算机获得图像的整体信息。为了更直观地说明这一点,你可以拿出一张纸,在纸上面戳一个小洞,再把纸覆盖在一张A4大小的人脸图片上。仅仅通过移动带洞的纸,通过洞去观察,几乎是不可能分辨出照片中的人脸的。
1700515817
1700515818 五年之前的人工智能想突破这一挑战几乎是不可能的,因为当时机器学习还未出现,而程序员们一直以来都采用自上而下的思想设计图像识别算法。事实表明,想要通过“如果……那么……”这样的逻辑去识别从未见过的图像,是很难实现的。在自下而上的算法设计思路下,算法可以基于训练数据自主创建决策树,同时,网络上大量的训练数据——带标签的视觉数据(例如,Instagram上带评论的照片),也会为人工智能在视觉识别领域的迅速发展提供基本的支撑条件。
1700515819
1700515820 我们可以将图片上传至谷歌的视觉网站[2] 来测试其算法的图像识别能力。去年,我上传了一幅我们家圣诞树的照片,经图像识别分析,算法认为图片上是一棵圣诞树的可能性为97%。这虽然还称不上惊天巨变,但已是非常了不起的进步了。乐观之余,算法的局限性也逐渐暴露出来,识别错误的也不乏其例。英国大都会警察局(British Metropolitan Police)在识别网上的儿童色情图片时发现,一旦图片涉及沙漠的景象,算法得出的结论就开始混乱不清了。
1700515821
1700515822 在最近的一次采访中,数字和电子取证部门的负责人马克·斯托克斯(Mark Stokes)坦言:“由于沙漠的颜色跟人的肤色相近,而起伏的沙丘又极像裸露的身体曲线,所以很多人用作屏保的沙漠图片,有时就会被误认为是色情图片了。”
1700515823
1700515824 长久以来,计算机科学家们一直在努力开发一些特殊类型的图片,企图用它们“欺骗”人工智能。这些特殊的图片被称为“对抗图像”。它们实际上是利用了计算机看世界的不同方式,让人工智能的“眼睛”看到了并不存在的东西,我们可以理解为人工智能产生的“视觉幻象”。麻省理工学院LabSix团队[3] 最新的研究试验表明,谷歌人工智能视觉识别系统对一只3D打印的海龟毫无辨识能力,无论以任何角度拿着这只海龟,甚至将它放置于大海等海龟应该在的环境里,其都会被识别为一支枪。这似乎点到了谷歌视觉识别的“完全死穴”。
1700515825
1700515826 该团队的做法是,在海龟的表面添加一层在人眼看来极像是海龟龟壳和皮肤颜色的纹理图案。但实际上,这种纹理是很巧妙地用由不断变化的来复枪图案组成的。即便是在变形干扰的情况下,计算机还是能将来复枪的图案识别出来,而且其被识别的可能性百分比远远超过海龟。尽管此前也出现过机器将猫的图片错误地识别为鳄梨色拉酱,但将图片稍微倾斜后,结果就恢复正常了。LabSix的贡献在于,无论从哪个角度看这只海龟,算法始终都会确信它看到的是一支步枪。
1700515827
1700515828 该团队把一幅狗的图像逐像素转换为两个在斜坡上滑雪的人,最终狗的图像在屏幕上完全消失了,但机器仍然将其识别为狗。尽管不知道图像是如何被算法识别的(算法完全像是一个“黑匣子”),但是他们还是设法去“欺骗”算法。
[ 上一页 ]  [ :1.700515779e+09 ]  [ 下一页 ]