课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
算法对于任何一项编程开发语言来说都是非常重要的。而今天我们就一起来了解一下,在机器学习领域中的算法问题我们都是如何解析和掌握的。希望通过对本文的阅读,大家对于机器学习有更多的了解。
获得基本了解
这又回到了我初所说的。如果你不了解基础知识,不能从头开始处理算法。
至少,你应该能够回答以下问题:
它是什么?
它的典型用途是什么?
我什么时候不能用这个?
对于感知器,让我们继续回答这些问题:
单层感知器是基本的神经网络。它通常用于二进制分类问题(1或0,“是”或“否”)。
一些简单的用法可能是情感分析(正面或负面反应)或贷款违约预测(“将违约”,“将不违约”)。对于这两种情况,决策边界都必须是线性的。
如果决策边界是非线性的,你就不能用感知器。对于这些问题,您需要使用不同的方法。
使用不同的学习资源
在你对模型有了基本的了解之后,是时候开始你的研究了。
有些人用教科书学得更好,有些人用视频学得更好。
就我个人而言,我喜欢到处转转,使用各种各样的资源。
将算法分解成块
现在我们已经收集了资料,是时候开始学习了。
与其从头到尾读一章或一篇博客文章,不如先浏览一下章节标题和其他重要信息。
写下要点,并试着概述算法。
在浏览了这些资料之后,我将感知器分为以下5个部分:
初始化权重
将权重乘以输入,然后求和
将结果与阈值进行比较以计算输出(1或0)
更新权重
重复
让我们详细讨论每一个问题。
1。初始化权重
先,我们将初始化权向量。
权重的数量需要与特征的数量匹配。假设我们有三个特征,这是权重向量的样子
权重向量通常是用零初始化的,所以我将在这个例子中继续使用它。
2。将权重乘以输入,然后求和
接下来,我们将权重乘以输入,然后求和。
为了更容易理解,我在一行中对权重及其对应的特征进行了着色
在我们把权重乘以特征之后,我们把它们加起来。这也被称为点积。
后的结果是0。我将把这个临时结果称为“f”。
3.比较阈值
在计算出点积之后,我们需要将它与阈值进行比较。
我选择用0作为我的临界值,但是你可以试着用一些不同的数字。
由于我们计算出来的点积f不大于我们的阈值(0)我们的估计值等于0。
我将估计值表示为带帽的y(又名“y帽”),下标为0以对应一行。你可以在一行用1,这无所谓。我选择从0开始。
如果我们将这个结果与实际值进行比较,我们可以看到我们当前的权重没有正确地预测实际输出。
由于我们的预测是错误的,我们需要更新权重,这将我们带到下一步。
4 更新权重
接下来,我们要更新权重。下面是我们要用到的方程:
基本思想是,我们在迭代“n”处调整当前权重,以便在下一个迭代中得到一个新的权重“n+1”。
为了调整权重,我们需要设置一个“学习率”。这是用希腊字母“eta”表示的。
我选择用0.1表示学习速率,但是你可以用不同的数字,就像用临界值一样。
以下是我们到目前为止的总结:
现在让我们继续计算迭代n=2的新权重。
我们已经成功地完成了感知器算法的一次迭代。
5 重复
由于我们的算法没有计算正确的输出,我们需要继续。
通常我们需要多次迭代。遍历数据集中的每一行,我们将每次更新权重。
对数据集的一次完整扫描称为“epoch”。
因为我们的数据集有3行,我们需要3次迭代才能完成1epoch。
我们可以设置总的迭代次数或epoch以继续执行算法。也许我们想指定30次迭代(或10次epochs)。
与阈值和学习率一样,epoch的数量是一个可以随意使用的参数。
在下一个迭代中,我们将继续讨论二行特征。
作者:John Sullivan
节选:数据人
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!