ПЗ_Забарин (1220033), страница 9
Текст из файла (страница 9)
Для решения данной задачи был проведен анализ возможностей технологий Google Speech API и Yandex SpeechKit Cloud входе которого было выявлено, что по техническим возможностям сервис Yandex превосходит сервис от Google, поэтому было принято решение использовать его для программной реализации. SpeechKit Cloud – механизм использующий технологии распознавания и синтеза речи Яндекса, а также выделения смысловых объектов в произносимом тексте. Инфраструктура сервиса спроектирована с учетом высоких нагрузок, чтобы обеспечивать доступность и безотказную работу системы даже при большом количестве одновременных обращений. Запросы к API обрабатывает балансировщик, который автоматически распределяет их по разным серверам. Инфраструктура SpeechKit изначально спроектирована под высокие нагрузки, поэтому система является достаточно надежной.
Нейронная сеть для акустического моделирования тренируется в несколько этапов [46-48]. Для инициализации нейронной сети используется стек из ограниченных машин Больцмана (Restricted Boltzmann Machines, RBM). RBM – это стохастическая нейросеть, которая тренируется без учителя. Хотя выученные ей веса нельзя напрямую использовать для различения между классами акустических событий, они детально отражают структуру речи. Можно относиться к RBM как к механизму извлечения признаков (feature extractor) – полученная генеративная модель оказывается отличной стартовой точкой для построения дискриминативной модели. Дискриминативная модель тренируется с использованием классического алгоритма обратного распространения ошибки, при этом применяется ряд технических приемов, улучшающих сходимость и предотвращающих переобучение (overfitting). В итоге на входе нейросети – несколько фреймов MFCC-features (центральный фрейм подлежит классификации, остальные образуют контекст), на выходе – около 4000 нейронов, соответствующих различным сенонам. Эта нейронная сеть используется как акустическая модель в production-системе. Принцип работы пошагового распознавания акустической модели Яндекс наглядно представлен в приложении Ж.
SpeechKit Cloud предоставляет API для распознавания речи. Звуковые данные передаются по протоколу HTTPS.
Чтобы получить распознанный текст, нужно отправить POST-запрос по адресу: https://asr.yandex.net/Запрос на распознавание речи следует отправлять с помощью метода POST. Формат запроса приведен на рисунке 4.1.
Рисунок 4.1 – Формат запроса
Universally Unique Identifier(UUID) – строка из 32-х шестнадцатеричных символов без дефисов. UUID формируется случайным образом и является уникальным для каждого пользователя приложения или сервиса.
Topic –Языковая модель, которую следует использовать при распознавании:
– queries – короткие запросы;
– maps – адреса;
– dates – даты (только для русского языка);
– names – имена (только для русского языка);
– numbers – числа (только для русского языка);
– music – музыка (только для русского языка);
– buying – заказы (только для русского языка).
Для обеспечения высокого качества распознавания голосовых запросов параметр topic должен соответствовать тематике передаваемых системе запросов [49]. На рисунке 4.2 приведен пример полного ответа при удачном распознавании.
Рисунок 4.2 – Пример полного ответа при удачном распознавании
Для решения данной задачи на языке С++, с использованием библиотеки CURL была написана программа для распознавания аудиофайлов. Код программы представлен в приложении И.
Программа отправляет запрос на распознавание речи с помощью метода POST.
На рисунке 4.3 представлен процесс отправки запроса.
Рисунок 4.3 – Отправка запроса
Данный рисунок демонстрирует параметры запроса, размер файла и время ожидания. После оправки пакет происходит проверка валидности данных: соответствие размера и формата фрагмента допустимым, проверка на действительность ключа разрабочика, а затем приходит ответ о состоянии передачи медиаданных (рисунок 4.4).
Рисунок 4.4 – Ответ о начале распознавания
Ответ возвращается в виде XML, содержащего список лучших гипотез распознавания с оценками их достоверности (так называемый n-best список). В списке содержится не больше пяти гипотез. Также указывается параметр вероятности (рисунок 4.5).
Рисунок 4.5 – Пример полного ответа при удачном распознавании
Таким образом, программа распознает аудио фрагменты, преобразуя их в текстовую форму. Дальнейшие разработки будут направлены на распознавание речи из потока, а также распознавание речи из видео.
4.3 Использование нейронных сетей
Когда речь идет о задачах, отличных от обработки больших массивов информации, человеческий мозг обладает большим преимуществом по сравнению с компьютером. Но когда эти задачи ставятся в контексте Big Data возможность автоматизированной экспертной оценки необходима. В настоящее время все больше внимания уделяется нейронным сетям, оно обусловлено следующими качествами нейронных сетей:
– высокая скорость выполнения сложных логических конструкций – предикатов с высоким параллелизмом действий;
– простота алгоритмов логических действий, основанная не на численном манипулировании, а на принципах ассоциативного мышления;
–возможность решения трудно формализуемых задач, в которых совместно используются данные логически несовместимой природы, противоречивые, неполные, «зашумленные», некорректные;
– устойчивость работы, совместимая с расширением, трансформированием и совершенствованием знаний;
– надежность, обеспечиваемая наличием многих путей логического вывода и способностью восстановления утраченных данных;
– возможность построения самообучающихся и самонастраивающихся систем;
– прекрасная сочетаемость с традиционными «вычислительными» алгоритмами обработки информации, позволяющая строить сложные системы управления, – с максимальной надежностью, адаптивностью и с минимумом расходуемых ресурсов;
– отсутствие требований к «традиционно» развиваемым вычислительным средствам. Единственный стимулируемый принцип – параллелизм. Для реализации параллельной системы – нейросети – необходима параллельная вычислительная система [50], такими ресурсами располагают NoSQL хранилища.
Можно выделить классы задач при решении которых используются нейронные сети:
– распознавания и классификации образов;
– прогнозирования;
– классификации;
– аппроксимации (регрессии);
– кластеризации и визуализации;
– идентификации;
– управления [50-54].
При решении каждого типа задач нейронная сеть выступает в качестве аппроксиматора функции от нескольких переменных, который моделирует неизвестную нелинейную функцию вида
где
входной вектор, а
– реализованная функция нескольких переменных. Множество задач моделирования, идентификации, обработки сигналов удается сформулировать в аппроксимационной постановке [52].
Как ранее упоминалось, важнейшее свойство нейронных сетей, свидетельствующее об их огромном потенциале и широких прикладных возможностях, состоит в параллельной обработке информации одновременно всеми нейронами. Благодаря этой способности при большом количестве межнейронных связей достигается значительное ускорение процесса обработки информации. Во многих ситуациях становится возможной обработка сигналов в реальном масштабе времени.
Однако, всегда следует помнить, что очень большое количество межнейронных соединений приводит к тому, что сеть становится нечувствительной к ошибкам, возникающим в отдельных контактах. Функции поврежденных соединений принимают на себя другие элементы, в результате в деятельности сети не наблюдаются заметные нарушения.
Другое не менее важное свойство нейронной сети состоит в способности к обучению и к обобщению полученных знаний. Сеть обладает чертами так называемого искусственного интеллекта. Натренированная на ограниченном множестве обучающих выборок, она обобщает накопленную информацию и вырабатывает ожидаемую реакцию применительно к данным, не обрабатывавшимся в процессе обучения [52].
Под обучением подразумевается процесс, в ходе котором свободные параметры нейронной сети настраиваются посредством моделирования среды, в которую эта сеть встроена. Тип обучения определяется способами подстройки этих параметров.
Процесс обучения предполагает следующую последовательность событий.
В нейронную сеть поступают стимулы из внешней среды.
В результате этого изменяются свободные параметры нейронной сети.
После изменения внутренней структуры нейронная сеть отвечает на возбуждение уже иным образом.
Для классификации и распознавания образов сеть обучается важнейшим их признакам, таким, как геометрическое отображение точечной структуры изображения, относительное расположение важнейших элементов образа, компоненты преобразования Фурье и другие подобные факторы. В процессе обучения выделяются признаки, отличающие образы друг от друга, которые и составляют базу для принятия решений об отнесении образов к соответствующим классам.
При решении задач прогнозирования роль нейронной сети состоит в предсказании будущей реакции системы по ее предшествующему поведению. Обладая информацией о значениях переменной в моменты, предшествующие прогнозированию, сеть вырабатывает решение, каким будет наиболее вероятное значение последовательности в текущий момент. Для адаптации весовых коэффициентов сети используются фактическая погрешность прогнозирования и значения этой погрешности в предшествующие моменты времени. Задачи прогнозирования, в свою очередь, можно разбить на два основных класса: классификация и регрессия.
В задачах классификации нужно определить, к какому из нескольких заданных классов принадлежит данный входной набор. Примерами могут служить диагностика заболеваний, вопрос предоставления кредита и др. В этих случаях, на выходе потребуется только одна номинальная переменная.
В задачах регрессии требуется предсказать значение переменной, чаще всего принимающей непрерывные числовые значения: завтрашнюю цену акций, расход топлива в автомобиле, прибыли в следующем году и т.п. В таких случаях в качестве выходной требуется одна числовая переменная [51].
При формулировке задачи регрессии нужно учитывать, что получаемая зависимость следует из данных только в вероятностном смысле. Искомая функциональная связь, в причинно-следственном смысле, может в действительности и не существовать, либо реальности соответствует функция, зависящая от еще каких-то переменных, которые отсутствуют в имеющихся данных.
Нейронная сеть способна решать одновременно несколько задач регрессии и/или классификации, однако обычно в каждый момент решается только одна задача. Таким образом, обычно нейронная сеть будет иметь только одну выходную переменную; в случае задач классификации со многими состояниями для этого может потребоваться и несколько выходных элементов.
На практике возникают задачи с данными, основной корпус которых не содержит меток классов. Здесь потребителя интересуют вопросы о самом количестве возможных классов и общей структуре данных, тогда возникает необходимость в решении задачи кластеризация и визуализация данных. Обучение машины производится без учителя, поскольку его сигналы отсутствуют либо не полны или не достоверны. В задачах подобного типа основное внимание нужно уделять статистической устойчивости выявленных кластерных образований в массиве данных. С потребительской точки зрения, решение должно сопровождаться наглядной визуализацией результатов – ведь при помощи машины заказчик, возможно, впервые наблюдает целостную картину данных.
При визуализации решается проблема «упаковки» многомерного набора признаков в двумерное пространство экрана компьютера или листа отчета. Однозначного наилучшего во всех смыслах решения этой задачи не существует, и в практике используются различные приближения – нейросетевые карты самоорганизации Кохонена, методы главных или независимых компонент, и другие методы, устанавливающие одностороннюю связь между метрическими отношениями в многомерном пространстве с двумерными координатами. Одно из простейших решений состоит в применении отображении Саммона.
Особого внимания заслуживает визуализация многомерных данных, изменяющихся во времени (многомерных временных рядов). Здесь цель состоит не в группировке схожих состояний, а в кластеризации схожих сценариев изменения состояний.
Важнейшее значение нейронные сети приобретают при построении систем управления и принятия решений. Технологии, основанные на применении «вычислительных» алгоритмов, приводят к тупиковой ситуации, когда традиционно развиваемая элементно-конструкторская база не обеспечивает требуемой производительности компьютеров. Нейросетевые технологии, использующие нетрудоемкий принцип ассоциативного мышления и высокий параллелизм, порождают прорыв в достижении необходимой реальной производительности вычислительных средств [50].















