作者 | Harper
人工神经网络实例
通过我们前面的内容,大家肯定都了解到,机器学习是一种非常健壮的模式匹配技术,可以使用机器学习算法来发现复杂的关系,甚至能够以人类无法感知的方式对数据进行分类。神经网络则将此能力提升到了一个更高的层次。利用神经网络,我们可以使用成千上万甚至数百万的人工神经元来分析数据和识别微妙的模式。
本期给大家展开谈一个常见的机器学习分类问题。想象一下,你想创建一个神经网络,用于在照片中识别小狗的品种。那么,人工神经网络是如何完成这个操作的呢?
大家想象一下用人工神经网络的方式来看一幅图,其实它就是一组不同数据位的集合。你可以把图像分解成像素,每个像素都是一个小的彩色点。为了简单起见,可以假设机器将图像转换成灰度图。假设你的图像是高25像素,宽25像素的话,你的图像就是由25*25个像素组成。我们来想象一下用这625个像素来创建一个人工神经网络,每个像素代表一个单独的神经元。我们根据每个节点的灰度为其指定一个从1到0的值。这里0为黑色。1为白色。因此中间的灰度值就是0.5。假设使用的是一个8位像素,灰度的增量约为1/256,也就是说,从0开始的每个阴影比前一个阴影浅约0.0039.
从这里我们可以知道,这些节点是sigmoid神经元,因为每个神经元可以输出0到1之间的值。
在我们这个例子中,神经网络的输入层包含625个节点,对应625个像素。简单起见,我们可以把模型限制为10个品种。因此在输出层有10个节点,每个品种对应一个节点。中间使用两个隐藏层,每层20个神经元他们执行用于识别小狗的品种的函数。
在输出层,我们使用0和1来识别给定品种的概率,0表示不匹配,1表示完全匹配,0和1之间的所有数字表示匹配的概率。
可见,我们只是处理输入并读取输出,但机器却是在隐藏层中执行中间的大部分工作。隐藏层中的每个神经元汇总其输入、添加偏置项、对结果执行函数操作并将其输出传递给下一层中的一个或多个神经元。我们将0到1之间的随机值分配给神经元之间的连接,这些随机值表示连接的相对强度。我们还为神经元的偏置项分配随机值。机器通过训练和多次迭代测试调整这些权重和偏置项进行学习。事实上,人工神经网络会不停地学习。每输入一张照片,它就会改善一点点。
本期内容就给大家介绍到这里,下期会给大家介绍隐藏层到底是如何工作的。