Читайте также:
|
|
Данные про ирисы содержат 150 наблюдений - это довольно много, и сеть будет обучаться медленно. Для учебных целей давайте сократим объем данных до 60 наблюдений. При этом мы заодно познакомимся с некоторыми возможностями Редактора данных - Data Set Editor.
Кроме того, мы разобьем данные на две группы: обучающее множество (Training Set) будет использоваться для обучения сети, а контрольное множество (Verification Set) - для проверки качества ее работы.
Чтобы сформировать сокращенный набор данных, сделайте следующее:
1. Откройте набор данных Iris.sta и вызовите Редактор данных - Data Editor.
2. Выделите наблюдения 21-50, для этого прокрутите таблицу так, чтобы стало видно наблюдение номер 20, щелкните на метке его строки, и либо протащите мышь до нижней границы диапазона, либо выделите его клавишами стрижа вниз и page down при нажатой клавише SHIFT.
3. Нажмите правую кнопку мыши и выберите из контекстного меню пункт Не учитывать - Ignore. Отмеченные наблюдения будут выделены серым цветом, и программа ST Neural Networks не будет использовать их при обучении.
4. Проделайте всего же самое для наблюдений 71-100 и 121-150.
5. Поменяйте число наблюдений в обучающем множестве - (оно указано в поле Обучающее - Training) с 60 на 30. Программа ST Neural Networks автоматически отнесет оставшиеся наблюдения к контрольному множеству, так что теперь у нас будет 30 обучающих и 30 контрольных наблюдений.
6. Нажмите кнопку Перемешать - Shuffle - обучающие и контрольные наблюдения будут взяты случайным образом среди всех 60 наблюдений. Вы заметите это, взглянув на таблицу. Обучающие наблюдения показаны черным цветом, а контрольные - красным.
Обучение с кросс-проверкой
Обсуждение
Мы разделили данные на две части: обучающее и контрольное подмножества.
Стандартный способ обучения нейронных сетей заключается в том, что сеть обучается на одном из множеств, а на другом проверяется результат; таким образом, контрольное множество для обучения не используется. Это дает независимый способ проверки того, научилась ли сеть чему-нибудь полезному.
В отсутствие кросс-проверки сеть с большим числом весов и не слишком большим набором обучающих данных, скорее всего, будет слишком близко следовать обучающим данным («чрезмерная подгонка») и воспринимать не столько структуру данных, сколько содержащиеся в них помехи.
Способность сети не только учиться на обучающих данных, но и показывать хорошие результаты на совершенно новых данных (т.е. таких, которые сеть до того не видела), называется обобщением. Хорошо ли сеть обобщает, в пакете ST Neural Networks можно определить, следя за контрольной ошибкой - она должна быть достаточно мала. Может случиться так, что после нескольких прогонов обучающего алгоритма ошибка обучения падает почти до нуля, в то время как контрольная ошибка сначала убывает, а потом снова начинает расти. Это верный признак переобучения, и при росте контрольной ошибки обучение следует прервать.
Если контрольное множество используется описанным способом, то, строго говоря, по окончании обучения следует проверить работу сети еще на одном - третьем множестве, которое вообще никак не участвовало в обучении и даже в контролировании результатов. Поскольку наилучшая сеть определяется по контрольному множеству, может получиться так, что выбранная сеть совершенно случайно дает на нем хорошие результаты. Чтобы избежать такой ситуации, нужно какое-то количество наблюдений оставить для тестового множества. Оно будет использоваться только после того, как будет сформирован окончательный вариант сети. Если данных не слишком много и все их желательно использовать для обучения и контроля, то с этим этапом возникают трудности. Многие пользователи нейронных сетей вообще не заботятся о тестовых множествах.
В пакете ST Neural Networks автоматически учитывается разбиение данных на обучающее, контрольное и тестовое множества. Все алгоритмы используют для обучения только обучающее множество, а результаты и ошибки выводятся отдельно по каждому из этих трех множеств. Кроме того, как мы уже убедились, есть возможность не учитывать некоторые наблюдения. Это бывает полезно в тех случаях, когда данных слишком много или когда есть подозрение, что некоторые данные искажены.
Дата добавления: 2015-11-30; просмотров: 20 | Нарушение авторских прав