人工神经网络风靡一时,人们不禁要问,这个朗朗上口的名字是否在模型自身的营销和应用中起到了一定作用。
据我所知,很多商业经理会说他们的产品使用了人工神经网络和深度学习。显然他们肯定不会说产品使用了“连接圆模型”(Connected Circles Models)或者“失败-惩罚-修正模型”(Fail and Be Penalized Machines)。但毫无疑问,人工神经网络已经在图像识别、自然语言处理等许多领域取得了成功的应用。
作为一个并未完全理解这些技术的专业数据科学家,就像一个没有工具的建筑工人,这让我感到很羞愧。因此,我弥补了这些缺失的功课,并写下这篇文章来帮助别人克服那些我在学习过程中遇到的困难和难题。
注意:本文示例中的R代码可以在 https://github.com/ben519/MLPB/blob/master/Problems/Classify%20Images%20of%20Stairs/intro_to_nnets_article_materials.R找到。
我们从一个激励问题开始。在这里,我们收集了2*2网格像素的灰度图像,每个像素的灰度值在0(白)至255(黑)之间。目标是建立一个识别“阶梯”模式的网络模型。
首先,我们关心的是如何找到一个能够合理拟合数据的模型,至于拟合方法,后面再考虑。
预处理
对每一个图像,给像素打上x1,x2,x3,x4 的标签并且生成一个输入向量喂给模型。希望我们的模型可以把有阶梯模式的图像预测为True,没有阶梯模式的图像预测为False。
单层感知机(模型迭代0)
我们可以构建一个简单的单层感知机模型,它使用输入的加权线性组合返回预测分数。如果预测分数大于选定的阈值,则预测为1,反之预测为0。更正式的表达式如下: