Тема распознавания сигналов очень актуальна. Распознавание сигналов можно использовать в радиолокации для идентификации объектов, для задач принятия решений, медицине и во многих других областях.



Направления исследований


Я считаю, что исследование нужно вести в двух направлениях. Первое направление — это первичная обработка сигналов, в которой сигнал во временной области "s(t)" заменяется на функционалы.[5] Набор функционалов является вектором в пространстве признаков, по которому и происходит распознавание.


Второе направление это исследование и разработка самих классификаторов так как классы в пространстве признаков могут иметь нелинейное разделение. Нейронные сети типа персептрона способны разделять только линейно разделимые классы. А нейронные сети типа радиально-базисных сетей, способны разделять только классы со сферическим разделением.[4]


Часто эти два типа нейронных сетей комбинируют. Очень важно правильно выбрать пространство признаков, так как если будет излишняя информация о сигнале, она затруднит процедуру распознавания из-за того, что классы будут сложно отделимы: они могут быть как нелинейно отделимы, так и неразделимые вообще. Если данных будет недостаточно, то будет проблематично распознать объект, из-за того что одному набору данных будет соответствовать несколько сигналов. Для распознавания, в качестве признаков можно ввести статистические параметры сигналов.


Предлагаю ввести следующие критерии, по которым определять количество признаков:


1) Признаки должны отличаться для объектов принадлежащих разным классам.
2) Они должны совпадать по своим значением для объектов одного класса.


Полное совпадение статистических параметров сигналов возможно, только если сигнал эргодический и время наблюдения стремится к бесконечности. Неэргодический сигнал, или сигнал наблюдаемый конечное время образует некую область в многомерном пространстве признаков.[3]


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


Следует отметить, что сигналы почти всегда записаны на фоне шума, и методы распознавания на основе Фурье-преобразований или распознавание по отсчетам во временной области подразумевают в качестве первичной обработки фильтрацию сигнала.[5] Метод распознавания на основе статистик, не нуждается в фильтрации, если помеха является эргодическим случайным процессом. Т.к. всегда можно "вычесть" из модели сигнала с помехой модель помехи.[2]


Важно! Таким методом нельзя распознавать биологические сигналы. Т.к. биологические сигналы, являются очень специфичными, для их распознавания нужно учитывать механику процессов порождающих эти сигналы.[6] Скажем сигнал ЭКГ и сигнал ЭЭГ, исследуются различными методами.


Математические основы


На практике оказалось, что для решения большинства задач распознавания достаточно использовать всего 4 параметра для распознавания, такие как: мат. ожидание, СКО, эксцесс и асимметрия.


Для примера рассмотрим распознавание сигнала при следующих вариантах:


1) нет сигнала (только помеха)
2) синусоида + помеха
3) прямоугольный + помеха
4) радиоимпульс с прямоугольной огибающей + помеха.
Отношение сигнал/шум (image) в эксперименте равно 0.2.
Амплитуду сигнала возьмем равной 1 Вольт(чтобы не нормировать), и помеха в виде белого шума с нормальным распределением.


Для распознавания будем использовать двухслойный персептрон, с 4 входами, 4 выходами и 9 нейронами на скрытом слое(по теореме Колмогорова достаточное условие).[4]


Первичная обработка


Составим вектор в пространстве признаков, для начала определим модель шума:


image[2,3]


Теперь составим вектор для сигнала с помехой:


image


m — математическое ожидание, D — дисперсия, image — СКО, image — эксцесс, image — асимметрия.


Но это было в случае с непрерывными сигналами, и когда известно аналитическое выражение плотности вероятности f(x). С дискретным сигналом интеграл заменяется на сумму. И мы уже говорим не о статистических параметрах, а об их оценках.[2] А там вступают в силу погрешности определения оценок(о них мы поговорим в другой статье).


image


N — количество отсчетов.


После этого можем сформировать входной вектор для нейронной сети.


image


Переменные с индексом "x" — компоненты входного вектора, без индекса — характеристики сигнала с шумом, а с индексом"image" модель шума. Для нормировки СКО делится еще 2.5.


Практическая реализация


Вот-так выглядит интерфейс тестовой программы.


image


В данном эксперименте вероятность верного распознавания составила 94.6%. Нейронная сеть обучалась методом градиентного спуска на выборке в 50 реализаций на сигнал, в сигнале 2001 отсчет.


Литература:


  1. Классификация. Гипотеза компактности
  2. Вентцель Е.С. Теория вероятностей: Учеб. для вузов. — 6-е изд. стер. — М.: Высш. шк., 1999.
  3. В.И. Тихонов. Статистическая радиотехника.
  4. Станислав Осовский. Нейронные сети для обработки информации.
  5. А.М. Дейч. Методы идентификации динамических объектов
  6. Синютин С. А. Проектирование микроконтроллерных систем съема, обработки и анализа электрокардиосигнала.
Поделиться с друзьями
-->

Комментарии (30)


  1. sci_nov
    30.12.2016 18:51

    А где сравнение с согласованным фильтром?


    1. Zachar_5
      30.12.2016 18:58

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


      1. nckma
        30.12.2016 19:52
        +2

        То есть для распознавания нескольких сигналов нужно несколько согласованных фильтров. Не получается ли, что иметь несколько фильтров по затратам (вычислительным ресурсам) так же (или меньше?), чем нейронные сети?


        1. sci_nov
          30.12.2016 20:11

          Да, несколько фильтров. Для согласованного фильтра важна также и длительность импульса, помимо амплитуды.


          1. Zachar_5
            30.12.2016 20:23

            Для этого теста их бы пришлось использовать очень много, но в стат. радиотехнике доказано, что на фоне белого шума использование согласованного фильтра, при известных параметрах сигнала, является оптимальным. И там многое зависит от выбранного критерия обнаружения. Т.е. уровня z0. Где учитывается вероятность ложной тревоги и правильного обнаружения. Сделать объективное сравнение этих методов крайне сложно. Но если интересно, могу сделать и написать статью на эту тему.


            1. sci_nov
              31.12.2016 05:36

              Зачем? Есть же формула для вероятности ошибки при заданном отношении сигнал-шум, просто по ней посчитать, правда, здесь важна длительность сигнала, то есть в итоге его энергия, а важна ли она в нейронной сети — не знаю. Один фильтр на один сигнал, одна формула для вероятности ошибки. Согласованный фильтр — это КИХ-фильтр, на выходе которого требуется взять всего один отсчет из N, где N — порядок фильтра, поэтому число операций можно свести к O(N).


              1. Zachar_5
                31.12.2016 07:35

                К сожалению, я согласованными фильтрами занимался только в рамках учебы, но точно помню, что для принятия решений, мы после СФ, ставили пороговое устройство. Сам порог рассчитывался в зависимости от выбранного критерия и функции риска. И для перекрытия того же спектра сигналов нужно было бы использовать бесконечное количество таких фильтров. Вы можете скинуть ссылки по этой теме, я почитаю? Насчет КИХ Вы правы, сейчас посмотрел конспекты. Правда мы их только аналоговые проходили. И я после праздников сделаю сравнение, этих методов.


                1. sci_nov
                  31.12.2016 13:39

                  Берите любую книгу по обнаружению и различению сигналов, классиков статистической радиотехники Тихонов, Левин и т. д. В качестве критерия можно выбрать минимум полной вероятности ошибки, когда порог выбирается по пересечению двух плотностей вероятости. Моделируете в дискретном виде, задавая импульсную характристику согласованного фильтра в виде зеркально отраженного идеального сигнала, который собираетесь обнаруживать.


                  1. Zachar_5
                    31.12.2016 18:20

                    Это понятно, книгу Тихонова я прочитал, по ней собственно и учились. Не понятно другое, как Вы получаете сложность O(N), когда алгоритм быстрой свертки имеет сложность O(3*N*log_2(N)).


                    1. sci_nov
                      31.12.2016 18:28

                      Загоняете в регистр N отсчетов и только потом считаете сумму произведений, получая число, которое сравнивается с порогом.


                      1. Zachar_5
                        31.12.2016 18:46

                        Вы есть в вк?


                        1. sci_nov
                          31.12.2016 21:04

                          Yes, of course, https://vk.com/id354040982


        1. Zachar_5
          30.12.2016 20:56

          Нет не получится, нейронная сеть не так уж и много ресурсов хавает, намного меньше, чем свертка сигналов, к тому же возникают вопросы:
          1) Сколько фильтров ставить;
          2) Какой тип использовать, КИХ или БИХ;

          К тому же их довольно сложно рассчитывать. Он же состоит из СФОИ, линий задержки и сумматора.


  1. Arastas
    30.12.2016 23:50
    +3

    К сожалению, пост очень похож на статью из вузовского журнала, из которой на скорую руку был сделан текст на Хабр.


    1. Zachar_5
      31.12.2016 01:23
      +1

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


      1. 32bit_me
        31.12.2016 06:50
        +1

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


      1. Ignatio
        31.12.2016 18:39

        Уточните для гуманитариев, пожалуйста: как это можно применить в технике?


        1. Zachar_5
          31.12.2016 18:40

          Например диагностика неисправностей по токограммам.


      1. Arastas
        01.01.2017 15:41

        * del *


    1. kurganski
      31.12.2016 18:40

      а дайте ссылку, пожалуйста


      1. Zachar_5
        31.12.2016 18:40

        На что?


  1. satandyh
    31.12.2016 13:54

    Было дело когда-то в институте писал работу по схожей теме («Создание ансамблей дискретных ортогональных сигналов с улучшенными корреляционными свойствами» кажется, или как-то так). Тоже была идея использовать нейронные сети, но таки эволюционные алгоритмы тогда одержали верх. А сейчас я что-то не вижу подобной тенденции. Неужели будущее за нейронными сетями?


  1. Aelphy
    31.12.2016 15:43

    Подскажите пожалуйста, как из теоремы Колмогорова следует достаточность такой конфигурации многослойного перцептрона ?


    1. Zachar_5
      31.12.2016 18:29

      Нейронную сеть можно рассматривать как многомерный аппроксиматор функций. Чтобы не пересказывать укажу литературу.(Станислав Осовский. Нейронные сети для обработки информации. М.: «Финансы и статистика». 2004 год. Страницы 90-92.)


      1. Aelphy
        05.01.2017 09:51

        Можно. Должно быть, Вы имеете в виду теорему Колмогорова-Арнольда.


  1. Aelphy
    31.12.2016 15:50

    Не могли бы вы пояснить, как осуществляется переход от сигнала во временной области к функционалу ?


    1. Zachar_5
      31.12.2016 18:32

      Ну вот эти формулы, x — сигнал во временной области. А мат. ожидание, СКО, эксцесс и асимметрия — функционалы.
      image


  1. veydlin
    31.12.2016 18:33

    Пара вопросов:
    1. Почему был выбран именно двухслойный персептрон? На сколько помню сетей много, а данный тип сети «средненький». Возможно другой мог бы дать ещё более точное распознавание
    2. Не могли бы вы поделится исходным кодом?


    1. Zachar_5
      31.12.2016 18:36

      1) Смотря для каких задач, для обработки изображений хорошо подходят сверточные НС, для последовательностей — рекуррентные. Ну а тут вектор фильтровать не надо, и он имеет постоянную длину. Так что персептрон самое то.


    1. Zachar_5
      31.12.2016 18:38

      Исходным кодом чего, просто я использовал свой фреймворк, для статистики и для создания НС, его код не могу дать. А код какой-то части приложения, для лучшего понимания, пожалуйста.