В чем разница между поездом, валидацией и набором тестов в нейронных сетях?
Я использую библиотека для реализации обучения агентов.
Я создал учебные случаи, но я не знаю точно, что такое наборы проверки и тестирования.
Учитель говорит:--5-->
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
4 ответов
наборы обучения и проверки используются во время обучения.
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
после того, как вы закончите обучение, затем запустите с поставленными тестирования и убедитесь, что точность достаточна.
Обучающий Набор: этот набор данных используется для настройки весов нейронной сети.
Проверки: этот набор данных используется для минимизации переоснащения. Вы не корректируете вес сети с помощью этого набора данных, вы просто проверка того, что любое повышение точности по набору данных обучения фактически приводит к повышению точности по набору данных, который не был показан сети раньше или, по крайней мере, сеть не обучалась на нем (т. е. набор данных проверки). Если точность по набору данных обучения увеличивается, но точность по набору данных проверки остается прежней или уменьшается, то вы переоцениваете свою нейронную сеть, и вы должны прекратить обучение.
Набор Для Тестирования: это набор данных используется только для тестирования конечного решения с целью подтверждения фактической прогнозной мощности сети.
обучающий набор: набор примеров, используемых для обучения, то есть, чтобы соответствовать параметры [т. е. веса] классификатора.
проверки: Набор примеров, используемых для настройки параметров [т. е. архитектуры, а не Весов] классификатора, например, для выбора количества скрытых единиц в нейронной сети.
набор перекрестной проверки используется для выбора модели, например, выберите полиномиальную модель с наименьшим количеством ошибок для данного набора параметров. Затем тестовый набор используется для сообщения об ошибке обобщения в выбранной модели. Отсюда: https://www.coursera.org/learn/machine-learning/lecture/QGKbr/model-selection-and-train-validation-test-sets
простыми словами определить набор обучения, набор тестов, набор проверки
набор тренировок: используется для поиска ближайших соседей. Набор проверки: предназначен для поиска другого k, который применяется к набору поездов. Тестовый набор: используется для поиска максимальной точности и невидимых данных в будущем.