То, что, является различием между поездом, проверкой и набором тестов, в нейронных сетях?

Я пользуюсь этой библиотекой для реализации агента изучения.

Я генерировал учебные случаи, но я не знаю наверняка, каковы проверка и наборы тестов.
Учитель говорит:

70% должны быть дорожными чемоданами, 10% будут тестовыми сценариями и остальными, 20% должны быть случаями проверки.

править

У меня есть этот код для обучения, но я понятия не имею, когда остановить обучение.

  def train(self, train, validation, N=0.3, M=0.1):
    # N: learning rate
    # M: momentum factor
    accuracy = list()
    while(True):
        error = 0.0
        for p in train:
            input, target = p
            self.update(input)
            error = error + self.backPropagate(target, N, M)
        print "validation"
        total = 0
        for p in validation:
            input, target = p
            output = self.update(input)
            total += sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between target and output

        accuracy.append(total)
        print min(accuracy)
        print sum(accuracy[-5:])/5
        #if i % 100 == 0:
        print 'error %-14f' % error
        if ? < ?:
            break

править

Я могу получить среднюю погрешность 0,2 с данными проверки, после возможно, 20 учебных повторений, которые должны составить 80%?

средняя погрешность = сумма абсолютной разности между целью проверки и выводом, учитывая ввод данных проверки / размер данных проверки.

1
        avg error 0.520395 
        validation
        0.246937882684
2
        avg error 0.272367   
        validation
        0.228832420879
3
        avg error 0.249578    
        validation
        0.216253590304
        ...
22
        avg error 0.227753
        validation
        0.200239244714
23
        avg error 0.227905    
        validation
        0.199875013416

138
задан Vadim Kotov 10 September 2017 в 06:25
поделиться

1 ответ

Во время обучения используются обучающий и проверочный наборы.

for each epoch
    for each training data instance
        propagate error through the network
        adjust the weights
        calculate the accuracy over training data
    for each validation data instance
        calculate the accuracy over the validation data
    if the threshold validation accuracy is met
        exit training
    else
        continue training

По окончании обучения выполняется тестирование и проверяется достаточная точность.

Обучающий набор: этот набор данных используется для настройки весов нейронной сети.

Проверочный набор: этот набор данных используется для минимизации избыточной подгонки. Вы не настраиваете веса сети с помощью этого набора данных, вы просто проверяете, что любое увеличение точности по сравнению с обучающим набором данных действительно дает увеличение точности по сравнению с набором данных, который не был показан сети ранее, или, по крайней мере, сеть не обучалась на нем (т.е. валидационный набор данных). Если точность на обучающем наборе данных увеличивается, а точность на проверочном наборе данных остается прежней или уменьшается, значит, вы перестраиваете нейронную сеть и вам следует прекратить обучение.

Набор данных для тестирования: этот набор данных используется только для тестирования окончательного решения, чтобы подтвердить реальную предсказательную способность сети.

262
ответ дан 23 November 2019 в 23:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: