机器学习算法的终极对决


机器学习算法的终极对决

文章插图
> Photo by Jaime Spaniol on Unsplash
 
CNN,Mobile-Net,KNN,Random Forest和MLP 。哪种算法最好?
故事一切始于我年轻的表弟,他在自己的世界里迷路,在绘画本上涂鸦 。我问他在做什么 。他回答说他正在养猫 。看起来根本不像猫 。他要求我和他一起玩游戏,我会认出他在画什么 。一段时间以来,这很有趣,但是很快,我就感到无聊 。我不想不和他玩耍来伤害他的感情,所以我用自己的计算机视觉和Python技巧来制作一个Doodle分类器 。现在的问题是,我将如何实施它? 有数百种方法可以对Doodle进行分类,而我必须选择一种最准确的涂鸦,即花费最少的时间进行训练,占用更少的内存,需要更少的处理能力并且不需要TB的数据即可提供有意义的信息 结果 。
上网浏览后,我发现了可以以最佳方式完成此任务的前5种算法,但是我访问的每个网站都讲述了一个不同的故事 。有些人说CNN是最好的,而另一些人说移动网络是最好的 。我想-好吧,让我们测试一下所有这些 。我在Kaggle竞赛中找到了一个包含大量带有标签的涂鸦的出色数据集,可以免费下载 。
图像分类是一个巨大的话题,因为有很多算法可用于各种应用 。图像分类是如此之大和千变万化,以至于每天都在创建新的算法,并且它的新应用也在不断涌现 。因此,即使它们有数百种变体,我也很难手动选择一些算法 。因此,本文将研究哪种算法最适合涂鸦分类 。
我还将测试这些算法在其他情况下(例如手写字符分类,车牌识别等)的可靠性 。
涵盖范围· 研究中使用的机器学习技术简介
· 评估指标
· 选择用于研究的参数的详细信息
· 结果
· 局限性和结论
让我们首先简要介绍所使用的机器学习算法涂鸦分类的算法有数千种,在这里我列出了一些我将探索的著名算法-
1)随机森林我们可以将随机森林算法用于分类和回归 。就像决策树一样,只是它使用数百个决策树得出结论 。决策树根据相似的特征将数据分为各种类别 。对于每个数据点,它检查是否具有特定功能,大多数常见数据属于同一类 。在随机森林算法中,我们采用许多决策树,并随机给它们提供较少的特征以供检查,例如,如果我们有100个特征,则可能给每棵树10个随机特征 。一些树将分配不正确的类,但是许多树将是正确的! 我们以多数为准,并创建我们的分类模型 。
2)KNNK最近邻(KNN)既可以用作分类算法,也可以用作回归算法 。在KNN中,数据点分为几类,以预测新样本点的分类 。为了实现此任务,它使用距离公式来计算各个数据点之间的距离,然后基于该距离,然后为每个类别定义区域边界 。任何新的数据点都将属于这些区域之一,并将被分配给该类 。
3)MLP多层感知(MLP)是前馈人工神经网络的一种形式 。MLP有许多层,但在其隐藏层中只有一个逻辑函数,而在输出层中只有一个softmax函数 。该算法以单个大向量作为输入,并对输入层和隐藏层执行矩阵运算,然后结果通过逻辑函数,其输出通过另一个隐层 。重复此过程,直到网络到达输出层为止,在此使用softmax函数生成单个输出 。
4)CNN卷积神经网络(CNN)是最容易实现的深度学习计算机视觉算法之一 。首先,它获取给定尺寸的输入图像,并为其创建多个滤镜/特征检测器(最初是给定尺寸的随机生成的矩阵),滤镜的目的是识别图像中的某些图案,然后在滤镜上移动在矩阵和图像之间进行图像和矩阵相乘 。该滤镜在整个图像中滑动以收集更多特征,然后我们使用激活函数(主要是整流的线性单位函数)来增加非线性或仅保留重要特征,然后使用max-pooling函数将给定值中的所有值相加矩阵大小(例如,如果我们选择4的矩阵,则它将所有4个值相加以创建1个值),从而减小输出的大小以使其更快 。最后一步是展平最终矩阵,该矩阵作为输入传递到基本ANN(人工神经网络)并获得类预测 。
5)移动网Mobile-Net体系结构使用深度方向可分离卷积,其中包括深度方向卷积和点方向卷积 。深度方向卷积是通道方向Dk * Dk空间卷积,假设我们在图像中有3个通道(R,G,B),那么我们将具有3 * Dk * Dk空间卷积 。在逐点卷积中,我们的内核大小为1 * 1 * M,其中M是在深度卷积中的通道数,在这种情况下为3 。因此,我们有一个大小为1 * 1 * 3的内核 。我们通过3 * Dk * Dk输出迭代这个内核以获得Dk * Dk * 1输出 。我们可以创建N 1 * 1 * 3个内核,每个内核输出一个Dk * Dk * 1图像,以获得形状为Dk * Dk * N的最终图像 。最后一步是将深度方向卷积添加到点方向卷积 。这种类型的体系结构减少了训练时间,因为我们需要调整的参数较少,而对精度的影响较小 。


推荐阅读