【问题标题】:Classification using perceptron使用感知器进行分类
【发布时间】:2014-06-28 07:40:17
【问题描述】:

我是模式分类的初学者,因此这个问题可能看起来微不足道。假设我们正在对具有 4 个特征和 3 个类别的花的 IRIS database 进行分类,即 Class1, Class2, Class3 分别表示为 (0 0 1; 0 1 0; 1 1 0)。 NN 有 3 个输出神经元。因此,当网络输出时,ModelOutput = 1 1 0 我们可以断定该特征属于 Class3。现在,考虑论文中提到的模型。该模型将有 4 个输入概念和 3 个输出,每个类别一个,每个输出概念依次通过权重连接。根据论文Link,估计类别是概念值“最高”的类别。所以,在这种情况下,当模型输出

1 1 0

其中两个概念值是1。那么,“最高”是什么意思呢?有人可以解释一下这部分吗?谢谢

【问题讨论】:

    标签: machine-learning neural-network classification


    【解决方案1】:

    如果不仔细研究,很难猜出论文中到底使用了什么(意味着我找不到相关段落)。此外,通过快速浏览,我不确定这是否是此类一般问题的最佳资源。我宁愿建议你学习一些机器学习方面的书,比如 Bishop 或 Hastie。

    您的目标是多类分类。更具体地说,您似乎正在使用 one-versus-all 策略,在该策略中,您将多个二元分类器的输出(--这样的一个是您的感知器)组合起来以形成对班级成员。根据 Bishop 的《机器学习和模式识别》一书,这可能会导致概念上的问题,因为通常输入空间中存在分类不明确的区域,请参见下图感知器的情况(图. 4.2 来自主教):

    不出现此问题的另一种方法是一对一分类器,您可以在其中训练大量的二元分类器。

    但要回答您的问题:通常,课堂作业相当简单。你会得到你的学习者的真实输出y [我猜你正在使用多层感知器],它通过 sigmoid 函数映射到 [0,1](或者更常见的是通过 tanh 函数映射到 [-1,1]) .接下来,您需要一个规则来将结果 0 和 1 分配给您的输出,通常选择为 0 if y<0.51 if y>=0.5。所以,你评估你的两个二元分类并设置你的结果向量。

    【讨论】:

    • 谢谢。既然分类准确度似乎取决于它,那么如何确定阈值 0.5?
    • 这是一个常见的选择,但没有什么可以阻止您使用其他值。请注意,这对应于使用不同的 sigmoid 函数(在 x 轴上移动)。
    • 那么,你说这是激活函数 1/(exp(-lambda*x)) where lambda = 0.5?
    • 不,我会说它是两者的结合:例如,您可以选择正常的 sigmoid >0.7 作为标准,或者您可以找到一个移位的 sigmoid 1/(exp(- (x-beta))+1) > 0.5。根据您选择的测试版,两者可能是等效的。
    猜你喜欢
    • 2013-12-11
    • 2021-07-31
    • 2013-11-15
    • 2014-04-29
    • 2016-08-23
    • 2017-07-08
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多