学了这些基础算法,人工智能就算入门了( 二 )


机器学习算法不仅会找最接近的匹配项,还会微调输出以适应缺失值 。当然,上面这个例子中没有足够的数据给算法来调整输出,毕竟其中只有3个实例 。在数据有限的情况下,“最接近的匹配项”没有什么实际意义 。
上面这个映射关系也给我们提出了另一个关键问题:对于给定的接受一个浮点数组返回另一个浮点数组的算法来说,如何传入一个字符串形式的值呢?下面介绍一种方法,虽然这种方法更适合处理数值型数据,但也不失为一种解决办法 。
词袋算法是一种编码字符串的常见方法 。在这个算法模型中,每个输入值都代表一个特定单词出现的次数,整个输入向量就由这些值构成 。以下面这个字符串为例:
Of Mice and MenThree Blind MiceBlind Man's BluffMice and More Mice由上例我们可以得到下面这些不重复的单词,这就是我们的一个“字典”:
Input 0 :andInput 1 :blindInput 2 :bluffInput 3 :man'sInput 4 :menInput 5 :miceInput 6 :moreInput 7 :ofInput 8 :three因此,例子中的4行字符串可以被编码如下:
Of Mice and Men [0 4 5 7]Three Blind Mice [1 5 8]Blind Man's Bluff [1 2 3]Mice and More Mice [0 5 6]我们还必须用0来填充字符串中不存在的单词,最终结果会是下面这样:
Of Mice and Men [1,0,0,0,1,1,0,1,0]Three Blind Mice [0,1,0,0,0,1,0,0,1]Blind Man's Bluff [0,1,1,1,0,0,0,0,0]Mice and More Mice [1,0,0,0,0,2,1,0,0]请注意,因为我们的“字典”中总共有9个单词,所以我们得到的是长度为9的定长向量 。向量中每一个元素的值都代表着字典中对应单词出现的次数,而这些元素在向量中的编号则对应着字典中有效单词的索引 。构成每个字符串的单词集合都仅仅是字典的一个子集,这就导致向量中大多数值是0 。
如上例所示,机器学习程序最大的特征之一是会把问题建模为定长浮点数组 。下面用一个例子来演示如何进行这种建模 。
02
向算法传入图像
 
图像是算法的常见输入源 。本节我们将介绍一种归一化图像的方法,这种方法虽然不太高级,但效果很不错却 。
以一个300像素×300像素的全彩图像为例,90 000个像素点乘以3个RGB色彩通道数,总共有270 000个像素 。要是我们把每个像素都作为输入,就会有270 000个输入——这对大多数算法来说都太多了 。
因此,我们需要一个降采样的过程 。下图是一幅全分辨率图像 。

学了这些基础算法,人工智能就算入门了

文章插图
 
一幅全分辨率图像
我们要把它降采样为32像素×32像素的图像,如图所示 。
学了这些基础算法,人工智能就算入门了

文章插图
 
降采样后的图像
在图片被压缩为32像素×32像素之后,其网格状模式使得我们可以按像素来生成算法的输入 。如果算法只能分辨每个像素点的亮度的话,那么只需要1 024个输入就够了——只能分辨亮度意味着算法只能“看见”黑色和白色 。
要是希望算法能够辨识色彩,还需要向算法提供每个像素点的红绿蓝3色(RGB)光强的值,这就意味着每个像素点有3个输入,一下子把输入数据的数目提升到了3 072个 。
通常RGB值的范围在0~255,要为算法创建输入数据,就要先把光强除以255来得到一个“光强百分数”,比如光强度10经过计算就会变成0.039(10/255) 。
你可能还想知道输出的处理办法 。在这个例子中,输出应该表明算法认为图片内容是什么 。通常的解决方案是为需要算法识别的每种图片创建一个输出通道,训练好的算法会在置信的图片种类对应的输出通道返回一个值1.0 。
03
人工智能算法抢先读
学了这些基础算法,人工智能就算入门了

文章插图
 
欲建高楼,必重基础 。算法是人工智能技术的核心 。本书介绍了人工智能的基础算法,全书共10章,涉及维度法、距离度量算 法、K均值聚类算法、误差计算、爬山算法、模拟退火算法、Nelder-Mead算法和线性回归算法等 。
本书使用你可以自己执行的、实际的数学计算,阐述了所有这些算法 。本书的每一章都包含一个编程示例,这些示例提供了JAVA、C#、R、Python和C的多个语言实现版本 。
这些算法对应于数据中特定模式的处理和识别,同时也是像亚马逊 (Amazon)和网飞(Netflix)这类网站中,各种推荐系统背后的逻辑 。
书中所有算法均配以具体的数值计算来进行讲解,读者可以自行尝试 。每章都配有程序示例,Github上有多种语言版 本的示例代码可供下载 。


推荐阅读