监督学习验证集 - 人工神经网络

时间:2015-01-03 17:33:37

标签: validation artificial-intelligence neural-network processing cross-validation

我使用监督学习方法在处理中实现了神经网络。 我实际上在做的是训练一些圆圈以移动目标位置。

我的代码工作正常但是,我发现许多人将他们的代码分成3组, 为了找到与训练错误有关的验证错误。 (网络的表现)。

 1.Training Set 
 2.Validation Set
 3.Test Set  

我的课程包括一系列培训输入和培训输出。我的网络经过培训(循环),直到达到特定目标。

例如,我有5个输入和5个目标输出。

Input values  {0.2, 0.1, 0.15, 0.11, 0,01}
Target values {1,1,1,1,1}

Set Learning rate = 1
Set momentum = 1
Set bias     = 1

A)从0-1到0-1和5之间创建5个随机权重。

random_Weight = random (0-1)
Bias_Weight = random (0-1)

B)计算总和

Sum = (input_data  * random_Weight) + (Bias * Bias_Weight)

c)将数据输入指数函数

Output  =  1.0 /(1.0 +exp(-1 * sum)

d)计算错误:

Error = Target values - output

e)调整新的重量

Change = (learning rate * weight * input values) + (momentum * change)
weight = weight + change

f)重复直到目标位置=当前位置

我不知道在实现预期目标之前我的列车功能会重复多少次。如何将数据分成3组? (火车,验证,测试)。

如果我理解正确,我只实施了训练集。

我的问题是 [a]如何在此特定问题中创建验证集

在这种情况下,

[b]什么是数据集 [c]如何将其拆分用于验证集?

[d]如何计算验证错误?

[e]在我可以开始的这个程序中是否有任何建议的文件

1 个答案:

答案 0 :(得分:1)

Ad"网络性能"

让我们首先揭开这些条款的神秘面纱。网络没有" 性能"本身。任何来自功能性最小化器(经典人工神经网络都是这种情况)的预测器都具有一些数学公式和#34;错误 为现实建模 ,但主要问题不是"关闭"模型模拟观察到的(和ad-hoc模拟的) Reality (已经过培训中使用的示例 - 结果对[观察]训练) 的 BUT 如何"以及#34; "经过培训的" -model将处理尚未观察到的(因此未经过预先训练的)示例。

因此,人工神经网络模型能够推广"而不是遭受"偏见"和"过度拟合"是预测者的主要定性标志" 表现" (预测质量)。

Ad [a] + [b] + [c]

为了 SUPERVISED 学习者,你的机会很高。准备,开发或以其他方式从您的问题域获取合理数量的示例(观察)。

正如[e]教你的那样,问题域有一定的理由,合理的数量(简而言之:它取决于现实的内在行为,你的ANN正试图模拟,因此不知道先验,所以不需要过早恐慌。)

采取负责任的SUPERVISED 学习/数据健全工作,确保您的ANN学习者不会在任何错误/嘈杂的 [ example, correct_result ] 对中训练您可用的DataSET行。这比人们第一眼看到的更重要。是的,这是人类的错误,但地狱是不宽容的,任何预训练的AI / ML学习者重复和重复,重复和重复你的错误只不过是浪费机会使用AI的力量。

有一个可以说有2000个观测值的DataSET([x_1.1,x_2.1,x_3.1,...,x_n.1],[y_1]),经典建议拆分DataSET(逐行)分为三个子集:

  1. aTrainingDataSET:拥有约60%-70%的记录(观察对)
  2. aTestingDataSET:拥有约20%-30%的记录
  3. aCrossValidationDataSET:有大约20%-30%的记录(在培训阶段没有看到)
  4. 这种非常公平的方法可以让您假设受过训练的人工神经网络的概括程度如何?#34;它不仅能够处理它所训练的例子,而且能够处理非数据中的例子(你知道先验正确的结果,否则你无法完成你的SUPERVISED学习角色) ),它可以检测你的AI学习者在现实世界中生存的能力" evolution(s)"未包含在前几个示例中(来自aTrainingDataSET)。

    因此,为您的ANN学习者提供DataSET的训练部分,以找到(理想凸起的)最小化驱动的最佳/阈值输出(ANN设置)。

    使用针对aTestingDataSET的不同[C,gamma]非DataSET相关设置测试预训练的ANN学习者,以找到"精确度"是神经网络模型[C,伽马]景观的人工神经网络模型预测。

    最后,评估最佳" -tuned [C,gamma]调整的学习者(到目前为止最能反映aTrainingDataSET& aTestDataSET的候选者)这些将如何预测aCrossValidationDataSET上的答案,到目前为止,他们都没有闻到过这种情况[这部分你所监督的(预评级的)经历并没有向他们展示这种非常重要的可能性。]

    通过这种方式,您可以管理您的神经网络模型,以摆脱“高偏见”和“高度偏见”的陷阱。 /"过度拟合",两个主要的黑洞是一个微不足道(数学上)制定的基于惩罚"的最小化器,除了运行你的ANN模型之外别无其他机会。

    Ad [d]

    在上述方法的意义上,一旦暴露于theCrossValidationDataSET,就会从任何预先训练的,[C,gamma]调整的ANN学习者计算 CrossValidation预测错误(惩罚函数)。

    Ad [e]

    有很多关于ANN / ML的精彩实践课程,所以不要犹豫加入和参观。

      

    如果您永远将有机会重新运行教授的任何讲座/课程。 Andrew NG,无论是来自斯坦福大学,Coursera还是他最近的AI / ML-Lab阶段,他在人工神经网络学习者的这种实际应用方面付出了巨大的努力,我的选择No.1将会跟随。

    更新

      

    关于aTrainingDataSET的大小调整的附加问题

    假设关于在人工神经网络的训练过程中有-5-训练样例(在下面的问题/评论中)的陈述是正确的,似乎存在一个问题,有一些主要限制,以便更有效DataSET(SUPERVISED学习示例的更大基础)。

    典型的ANN"消费"大量的训练样本,以便让它的基于最小化的算法发展并稳定其最佳的内部设置(ANN-s的工作原理),从而最大限度地提高它的能力。回答(预测)尽可能接近正确答案的问题。

    虽然只有-5- [示例 - 答案]对可能有一些价值,但是培训基于人工神经网络的学习者以便为其未来的任务(预测者角色)服务是太少了。 / p>

    尝试为开发基于ANN的实体预测器的初始过程获取/生成/准备更强大的DataSET。