2.然后,我们把每一个图块运行于一个简单的、单层的神经网络,保持权衡不变。这一操作会使我们的拼接图块变成一个图组。由于我们一开始就将原始图像分解成了小的图像(在这个案例中,我们是将其分解成了3×3像素的图像),所以,用于图像处理的神经网络也是比较好操作的。 3.接下来,我们将会把这些输出值排列在图组中,用数字表示照片中各个区域的内容,数轴分别代表高度、宽度和颜色。那么,我们就得到了每一个图块的三维数值表达。(如果我们讨论的不是奶奶的照片,而是视频,那么我们就会得到一个四维的数值表达了。) 说完“卷积层”,下一步是“汇聚层”。 “汇聚层”是将这个三维(或是四维)图组的空间维度与采样函数结合起来,输出一个仅包含了图像中相对重要的部分的联合数组。这一联合数组不仅能使计算负担最小化,还能有效避免过度拟合的问题。 最后,我们会把从“汇聚层”中得出的采样数组作为常规的、全方位连接的神经网络来使用。通过卷积和汇聚,我们大幅度地缩减了输入的数量,因此,我们这时候得到的数组大小是一个正常普通网络完全能够处理的,不仅如此,这一数组还能保留原始数据中最重要的部分。这最后一步的输出结果将最终显示出系统有多少把握作出“照片中有奶奶”的判断。 以上只是对“卷积神经网络”工作过程的简单描述,现实中,其工作过程是更加复杂的。另外,跟我们这里的案例不同,现实中的“卷积神经网络”处理的内容一般包含了上百个,甚至上千个标签。 “卷积神经网络”的实施 重新开始建立一个“卷积神经网络”是一项非常耗时且昂贵的工作。不过,许多API最近已经实现了——让组织在没有内部计算机视觉或机器学习专家的帮助下,完成图像分析的收集工作。 “谷歌云视觉”是谷歌的视觉识别API,它是以开源式TensorFlow框架为基础的,采用了一个REST API。“谷歌云视觉”包含了一组相当全面的标签,能够检测单个的对象和人脸。除此之外,它还具备一些附加功能,包括OCR和“谷歌图像搜索”。 “IBM沃森视觉识别”技术是“沃森云开发者”的重要组成部分。它虽然涵盖了大量的内置类集,但实际上,它是根据你所提供的图像来进行定制类集的训练的。与“谷歌云视觉”一样,“IBM沃森视觉识别”也具备许多极好的功能,比如OCR和NSFW检测功能。 Clarif.ai是图像识别服务的“后起之秀”,它采用了一个REST API。值得一提的是,Clarif.ai包含了大量的单元,能够根据特定的情境定制不同的算法。像婚礼、旅游甚至食物。 上面的这些API更适用于一些普通的程序,但对于一些特殊的任务,可能还是需要“对症下药”,制定专门的解决方案。不过值得庆幸的是,许多数据库可以处理计算和优化方面的工作,这或多或少地减轻了数据科学家和开发人员的压力,让他们有更多精力关注于模型训练。其中,大部分的数据库,包括TensorFlow,深度学习4J和Theano,都已经得到了广泛、成功的应用。 (责任编辑:本港台直播) |