Примеры из базы данных
Разберем другие имеющиеся в базе примеры.
Внимание! Если вы скачали с этого сайта
облегченный архив с программой, то есть без сигналов-примеров, в вашем
компьютере нет сигналов для данных примеров, хотя настройки для них имеются. Вы
можете либо сгенерировать сигналы самостоятельно, либо все-таки скачать вариант
с сигналами-примерами.
Распознавание
частоты синусоидального сигнала (настройка "set_110-220-330").
В настройках нейросети видим имя
набора для обучения: "110-220-330"; в Наборах видим, что он состоит
из сигналов "20-110", "20-220" и "20-330"; это
синусоиды с амплитудой 20 и частотами 110, 220 и 330.
Скажем два слова об особенностях этой настройки.
Под кнопкой Подготовка видим, что здесь применяется
гетеродин, с частотой 501 Гц. Там же видим, что на сигнал накладывается шум с
дисперсией 1.
Важный момент: под кнопкой Установки справа по умолчанию
устанавливается галка "Добавлять к сигналу шум (как при обучении)".
Это значит, что для распознавания мы хотим подавать на исходный сигнал, а
"подпорченный" таким же шумом, как при обучении. Иногда обученная
сеть отрабатывает с этой галкой лучше, иногда работает лучше без нее.
Еще стоит обратить внимание на количество узлов на входном
слое. При распознавании дисперсии гауссовского шума
использовалось число 20. В этой же настройке все проще: степень уравнения = 4,
значит, оно содержит 6 коэффициентов. Обучающий вектор состоит из этих
коэффициентов и дискриминанта, итого – 7 членов.
Встанем на эту настройку. Выбирая в Установках сигналы,
проверим ее качество. Кроме трех сигналов, использованных при обучении, можно
попробовать сгенерировать и проанализировать другие сигналы.
При обучении и распознавании с этой настройкой на графике
отображаются куски сигнала, на которых заметны две частоты, большая и маленькая
– это потому, что применяется гетеродин.
Распознавание
частоты синусоидального сигнала с применением частичного логарифмирования
(настройка "set_110-220-330_0,5").
Это то же самое, но с применением частичного
логарифмирования входного вектора, можно прочитать об этом методе на этой странице.
В поле «логарифмируем на входе, если более» введено значение
0.5. При очередной попытке обучения получилось выйти на вариант с 2-мя
логарифмируемыми членами входного вектора. В этом случае нейросеть
стала обучаться быстрее и качественнее, чем при предыдущей настройке (где
введено число 1000000.0, отсекающее метод логарифмирования).
Распознавание
частоты синусоидального сигнала (настройка "set_123-234").
Этот пример отличается от предыдущего тем, что сеть обучена
различать 2 частоты (123 Гц и 234 Гц) на сигналах с разными амплитудами (11, 17
и 22).
Набор для обучения состоит из сигналов: "11-123",
"11-234", "17-123", "17-234", "22-123",
"22-234". Пораспознавав эти сигналы, можно
увидеть, что все работает хорошо, но частота сигнала "22-123"
распознается очень нестабильно; можно попробовать доработать данную настройку.
Распознавание
основания B сигнала, заданного формулой A * B sin(w
* t) (настройка "set_pow").
Такие сигналы имеют вид "неправильной синусоиды",
с гладким верхом и острым низом. Чем ближе основание B к числу 1, тем больше
сигнал похож на обычный синус. То есть мы распознаем «неправильность» синуса.
Здесь набор – "pow-sin",
он состоит из 6 сигналов. Если в него заглянуть, видно, что некоторые из них
включены по 2 и 3 раза, а именно те, с которыми при обучении были проблемы. Это
делалось для того, чтобы они подавались на вход сети чаще. Тем не менее, и
сейчас два сигнала распознаются неуверенно – можно попробовать дообучить.
Распознавание
фазового шума (настройка "set_фаз-шум").
В соответствующем наборе "фазовый_шум1"
присутствуют сигналы с амплитудой 20, частотой 111 Гц и разными дисперсиями фазового
шума: 0, 0.0001, 0.0005 и 0.001.
Эта сеть ведет себя хорошо. Это приятно, так как
распознавание величины фазового шума – вполне практическая задача.
Также можно посмотреть, как она реагирует на сигналы с
дисперсиями фаз. шума 0.0003,
0.00075, 0.005. Можно попробовать поочередно включать эти сигналы в обучающий
набор и дообучать нейросеть.
Из этого примера можно сделать вывод, что проще всего
добиться успеха в работе с однотипными сигналами, различающимися не очень
сильно. Это может быть задача детектирования неисправности, признак которой
«глубоко спрятан» в сигнале от датчика.
Попробуйте
улучшить результаты в перечисленных примерах.
Начать лучше с копирования имеющейся настройки, чтобы менять параметры в копии.
Например, ставим курсор на настройку set_фаз_шум, в
поле Настройка-результат пишем "set_" (или
придуманное вами имя) и нажимаем "Создать копию =>". Затем ставим
курсор на set_ (или на придуманное вами имя) и
работаем с этой настройкой.