Список форумов neuroproject.ru neuroproject.ru
Форум сайта компании НейроПроект
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Вариант расчета тестовой выборки для НС
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Пн Ноя 08, 2010 7:29 pm    Заголовок сообщения: Вариант расчета тестовой выборки для НС Ответить с цитатой

Добрый день!

Хотел посоветоваться, можно ли следовать таким рассуждениям при расчете объема тестовой выборки. Сделать расчет выборки, принимая общую совокупность примеров (обучение+тестирование) за генеральную совокупность и далее, например, посчитать объем выборки с 5% уровнем точности и 95% уровнем надежности.

Можно ли, имея такую тестовую выборку, потом ожидать, что точность обобщения сети на тесте, в будущем может меняться на новых данных в рамках коридора, установленного точностью формирования выборки?

Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Вт Ноя 09, 2010 12:00 pm    Заголовок сообщения: Ответить с цитатой

Хотел добавить к предыдущему посту.

При построении разных НС с разными параметрами также важно понимать, насколько различие в их обобщающей способности характеризует именно сеть, а не особенность набора тестовых примеров.

В общем, я пользуюсь таким способом формирования тестовой выборки при сравнении разных сеток, и если вижу, что точность одной сети отличается от другой на более чем 10%, то делаю вывод, что одна сеть лучше другой (они не идентичны).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Ноя 10, 2010 12:47 pm    Заголовок сообщения: Ответить с цитатой

Я, откровенно говоря, вопроса первоначального не понял, но хочу вот что спросить.

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


"Точность" здесь - это что? Доля ложных предсказаний на тестовой выборке (не используемой для обучения) в задачах классификации?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Ср Ноя 10, 2010 1:36 pm    Заголовок сообщения: Ответить с цитатой

Да, это зависит от задачи. Например, процент верно классифицированных случае.

Вообще, общий вопрос темы такой: тестовая выборка достаточно большая, чтобы по ней можно было бы судить о свойствах построенной НС? Особенно актуально, если имеем небольшие наборы данных, порядка тысяч, но не десятков и сотен тысяч.

Ну говорят обычно - 30% примеров в тестовую выборку. А откуда это взято?

Допустим, построили НС и она на тестовом отрезке верно классифицирует 80% случаев. Какого объема сформировать тестовую выборку (примеры в нее попадают случайно) чтобы сделать вывод о качестве построенной НС-модели?

И этот вопрос актуален и при сравнении НС, и при применении на практике какой-то выбранной сетки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Ноя 10, 2010 3:56 pm    Заголовок сообщения: Ответить с цитатой

> Да, это зависит от задачи. Например, процент верно классифицированных случае.

Тогда 10% может быть просто огромной разницей. 90% и 99% верных ответов, например.

> Ну говорят обычно - 30% примеров в тестовую выборку. А откуда это взято?

Из здравого смысла. Исходят из того, что есть. А обычно есть фиксированный набор данных. И часть его надо потратить на обучение, а часть - на проверку. Уменьшение обучающей выборки на 30% несильно ухудшает репрезентативность выборки (для обучения). С другой стороны, вряд ли можно сильно улучшить адекватность проверки, увеличив тестовую выборку с 30% до 50%.

> Допустим, построили НС и она на тестовом отрезке верно классифицирует 80% случаев. Какого объема сформировать тестовую выборку (примеры в нее попадают случайно) чтобы сделать вывод о качестве построенной НС-модели?

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

Пример очевидный, база MNIST, распознавание рукописных цифр. 60,000 элементов в обучающей выборке, 10,000 элементов в тестовой. Обучающую и тестовую выборки рисовали совсем разные наборы людей. Это совсем не то, если бы мы все смешали в базу из 70,000 элементов и потом стали бы случайно делить.

В своих задачах я этот фактор по возможности учитываю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Ср Ноя 10, 2010 4:53 pm    Заголовок сообщения: Ответить с цитатой

---- Тогда 10% может быть просто огромной разницей. 90% и 99% верных ответов, например.

Вы, возможно, не совсем поняли, что я хотел спросить.

Давайте попробуем посчитать какой процент от общей совокупности пустить на тестовые примеры, чтобы процент точности поднялся.

Если у меня база 10 000 примеров. Возьму я 1 000 для тестовой выборки. Если посчитать, какая ошибка выборки получается на таком объеме (при условии, что обучающая часть полностью отражает все разнообразие возможных примеров, а тестовая часть выбрана рандомно), при доверительном уровне 99% получится: 1,97%. Этого может быть недостаточно для некоторых задач, или для научных работ, например. Чтобы получить 1% точности, выборку нужно делать объемом 6 247. А это уже больше, чем обучающая выборка.

А если у одного ресечера получится точность 90%, а у другого 92% при тестовой выборке 1 000, на одних и тех же данных. Они, что, могут меряться процентами? считаю, что нет.

Я же хотел выяснить мнение специалистов, верны ли эти рассуждения?

------- Нет у меня ответа. Но выскажу одно соображение. Вообще говоря, тестовая выборка для пригодности измерения обобщающей способности сети совершенно не должна быть случайной. Она должна отражать ту ситуацию, когда сеть будет реально использоваться.

Это верно и логично. Такая ситуация, однако, должна быть и представлена в обучающем наборе, иначе мы будем учиться на одном а проверяться на другом.

-------- Пример очевидный, база MNIST, распознавание рукописных цифр. 60,000 элементов в обучающей выборке, 10,000 элементов в тестовой. Обучающую и тестовую выборки рисовали совсем разные наборы людей. Это совсем не то, если бы мы все смешали в базу из 70,000 элементов и потом стали бы случайно делить.

Если обучающая выборка репрезентирует разнообразие стилей написания в высокой степени, то, пожалуйста, пусть и другие люди делают тестовую. А если сравниваются две сетки, разница в обобщающей способности которых, например, 2%, то это внутри коридора ошибки из вашего примера. То есть, сетки не могут быть формально названы лучшая и худшая?

Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Ноя 10, 2010 5:17 pm    Заголовок сообщения: Ответить с цитатой

> А если у одного ресечера получится точность 90%, а у другого 92% при тестовой выборке 1 000, на одних и тех же данных. Они, что, могут меряться процентами? считаю, что нет.

О, теперь понял, да. Не знаю тогда. Если честно, мне кажется этот вопрос преждевременным. По крайней мере до тех пор, пока оба исследователя не заявят, что они получают эту цифру (90% и 92%) стабильно, т.е. при каждом цикле обучения.

Впрочем, вот что. Можно сказать, что у второго модель лучше, чем у первого, с определенной вероятностью. Например, 80%, или 95%.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Ср Ноя 10, 2010 5:27 pm    Заголовок сообщения: Ответить с цитатой

Спасибо, я думаю, что мы мыслим в верном направлении.

Я лично сталкивался с тем, что одна сеть дает 81%, другая 75% точности классификации (данные - временные ряды и я предсказываю направление движения сигнала вверх на некоторый %). При это коридор ошибки больше, чем 5%. А сеть, которая дает 81% имеет больше входов, что, в общем то, нежелательно увеличивает сложность модели в условиях ограниченной выборки примеров. Думаю, принимать сеть 81 не стоит, разницы между ними почти нет (с точки зрения выборочного метода) и сложность модели там выше. И по идее следует остановить выбор на сети 75. Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Ноя 10, 2010 5:39 pm    Заголовок сообщения: Ответить с цитатой

Откровенно говоря, в Ваших рассуждениях не достает численных оснований для предпочтения модели-75 Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Ср Ноя 10, 2010 5:54 pm    Заголовок сообщения: Ответить с цитатой

Логично )

Есть некие формулы, которые связывают размер базы примеров с количеством входов и количеством нейронов скрытого слоя. Я поищу, посчитаю.

А сейчас просто говорю исходя из нематематической логики. Чем проще модель - тем она надежнее, робастнее. Принцип Бритвы Оккама.

Хотя, если совсем уж закопаться, то я не делал глубокого анализа информативности входов, что тоже может быть важно для выбора сети.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Ноя 10, 2010 6:44 pm    Заголовок сообщения: Ответить с цитатой

alexey_mosc писал(а):
А сейчас просто говорю исходя из нематематической логики. Чем проще модель - тем она надежнее, робастнее. Принцип Бритвы Оккама.


Здесь согласен, да.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 247
Откуда: Красноярск

СообщениеДобавлено: Сб Ноя 13, 2010 12:18 am    Заголовок сообщения: Ответить с цитатой

alexey_mosc писал(а):
Есть некие формулы, которые связывают размер базы примеров с количеством входов и количеством нейронов скрытого слоя. Я поищу, посчитаю.

Нифига они не связывают Wink Теоретически - формулы есть, но практически они не работают.
Искать... Что-то из самых известных формул было в книжке Круглова и Борисова (тут не надо думать, что я эту книжку рекомендую - просто мне в сентябре как раз напомнили про эту книжку и именно про эти формулы в ней, а так - книжку забыть до прочтения).
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Пн Ноя 29, 2010 3:13 pm    Заголовок сообщения: Ответить с цитатой

Добрый день!

В продолжении этой дискуссии. Вычитал в книге Ширяева В.И. "Финансовые рынки: Нейронные сети, хаос и нелинейная динамика", что число связей в ИНС должно быть меньше числа примеров, иначе сеть просто заучит все связи но обобщать будет очень плохо.

Я, конечно же, не ставлю под сомнение эту формулировку, но вопрос такой есть: В сколько раз больше должна быть база примеров чем количество связей в сети, чтобы быть уверенным, что сеть распознала закономерности из обучающего множества, но не выучила данные?

Я попробовал для интереса сделать сеть-классификатор с 35 связями (5 входов, 5 нейронов скрытого слоя, 2 выходных нейрона), подал ей для обучения 60 примеров. Сеть отлично обучилась (точность классификации больше 90%), однако на новых данных точность обобщения была плохой. Могу я сказать, что в этом случае дело в том, что обучающее множество могли быть нерепрезентативным, и заучивание примеров здесь не причем? Или проблема может быть и в заучивании (данные скорее всего сильно зашумленны)?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Дек 01, 2010 12:53 am    Заголовок сообщения: Ответить с цитатой

> В сколько раз больше должна быть база примеров чем количество связей в сети, чтобы быть уверенным, что сеть распознала закономерности из обучающего множества, но не выучила данные?

Наверняка нет верного ответа на этот вопрос. Сверточная нейронная сеть с количеством независимых параметров 50,000 вполне себе обобщает задачу MNIST с обучающей базой в 60,000 примеров. И даже на 30,000 обучается ненамного хуже.

> Я попробовал для интереса сделать сеть-классификатор с 35 связями (5 входов, 5 нейронов скрытого слоя, 2 выходных нейрона), подал ей для обучения 60 примеров.

Кстати, полагаю, что все-таки стоит говорить не о количестве связей между нейронами, а о количестве независимых параметров, а их тут 42 (bias-веса). Впрочем, это мелочи.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Ср Дек 01, 2010 5:24 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Кстати, полагаю, что все-таки стоит говорить не о количестве связей между нейронами, а о количестве независимых параметров, а их тут 42 (bias-веса).


Да, согласен с Вами. Надо все независимые параметры считать. А, кстати, bias-веса это то же, что иногда называет activation thresholds? То есть, линейно добавляемые веса на нейронах?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Ср Дек 01, 2010 10:28 pm    Заголовок сообщения: Ответить с цитатой

alexey_mosc писал(а):
Цитата:
Кстати, полагаю, что все-таки стоит говорить не о количестве связей между нейронами, а о количестве независимых параметров, а их тут 42 (bias-веса).


Да, согласен с Вами. Надо все независимые параметры считать. А, кстати, bias-веса это то же, что иногда называет activation thresholds? То есть, линейно добавляемые веса на нейронах?


Судя по названию, это разные вещи. Bias - это как бы вес от специального входного нейрона, выход которого всегда равен 1. Т.е. добавка ко взвешенной сумме выходов "обычных" нейронов предыдущего слоя.

А activation threshold - звучит как некий параметр для функции активации, например ступенчатой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Дек 02, 2010 12:19 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Т.е. добавка ко взвешенной сумме выходов "обычных" нейронов предыдущего слоя.


Именно это я и понимал под понятием Bias.

Я просто в одной программе-симуляторе ИНС увидел вместо Bias - Activation threshold. Но чтобы не вносить путаницы, я уточню на форуме той программы что это действительно тоже самое только под другим названием.

Спасибо за ответ!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Чт Дек 02, 2010 1:31 pm    Заголовок сообщения: Ответить с цитатой

alexey_mosc писал(а):
Цитата:
Т.е. добавка ко взвешенной сумме выходов "обычных" нейронов предыдущего слоя.


Именно это я и понимал под понятием Bias.

Я просто в одной программе-симуляторе ИНС увидел вместо Bias - Activation threshold. Но чтобы не вносить путаницы, я уточню на форуме той программы что это действительно тоже самое только под другим названием.

Спасибо за ответ!


Слушайте, а похоже это оно и есть! Какая разница - увеличить bias или уменьшить границу разрыва, например. Другое дело, что в случае с непрерыными функциями активации слово threshold звучит странно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Дек 02, 2010 1:56 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
do you mean by activation thresholds the 'biases' which are often called so in neural network literature? I mean a linear component to the sum of weighted outputs.


Yes and no:
I mean the 'biases' but they are a component to the INPUT sum of each neuron. To put it more precisely: The threshold is a negative summand to the input sum, e.g. an activation threshold of 0.4 means that the sum of inputs is reduced by the value 0.4 before subjected to the activation function.

An alternative interpretation of the threshold is a negative link to the output of a so-called 'ON-neuron', i.e. to a neuron whose output is permanently 1. Some neural network simulators thus don't have 'Activation Thresholds' but links to explicit ON-neurons instead. Mathematically, they are of identical effect.


Я привел мою переписку с автором той программы (http://www.membrain-nn.de/main_en.htm). Действительно, это и есть Bias. Только он уточняет, что это значение вычитается из суммы взвешанных входов нейрона. По сути, разницы нет.

В общем, я пришел к мысли, что можно пошире варьировать количеством параметров в нейронной сети. Раньше я, как правило, экспериментировал с кол-вом параметров раз в 10-100 меньшим, чем кол-во примеров. Думаю, что уменьшить это соотношение до 1/2 или 1/3 вполне можно попробовать.

А эта программа-симулятор, кстати, мне лично нравится. Она бесплатна и позволяет любую архитектуру строить. Там можно локировать Bias на любом нейроне, можно менять параметры нелинейной функции на нейроне, в общем, простор для действий большой. Я просто раньше не видел ничего подобного в таком простом и достаточно удобном виде.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmi
Участник форума
Участник форума


Зарегистрирован: 15 Май 2010
Сообщения: 30

СообщениеДобавлено: Чт Дек 02, 2010 3:55 pm    Заголовок сообщения: Ответить с цитатой

alexey_mosc писал(а):

http://www.membrain-nn.de/main_en.htm

А эта программа-симулятор, кстати, мне лично нравится. Она бесплатна и позволяет любую архитектуру строить. Там можно локировать Bias на любом нейроне, можно менять параметры нелинейной функции на нейроне, в общем, простор для действий большой. Я просто раньше не видел ничего подобного в таком простом и достаточно удобном виде.


Не любую. Сверточных нейронных сетей нет вообще.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети Часовой пояс: GMT + 4
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Rambler's Top100 Rambler's Top100