Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка системы освещения.docx
Скачиваний:
7
Добавлен:
10.02.2025
Размер:
7.02 Mб
Скачать

2.6 Сравнение моделей машинного обучения

В данном разделе будут кратко рассмотрены десять моделей машинного обучения:

 машинная модель обучения на основе персептронов;

 машинная модель обучения, на основе метода Хопфилда;

 сверточная машинная модель обучения;

 машинная модель обучения с глубокой сетью доверия;

 реккурентная машинная модель обучения;

 машинная модель обучения, на основе управляемого реккурентного блока;

 машинная модель обучения долгой краткосрочной памяти;

 машинная модель обучения, на основе метода Больцмана;

 генеративно-состязательная машинная модель обучения;

 машинная модель обучения на основе автокодировщика.

Персептроны, это прародители нейронных сетей. Их создатель, Фрэнк Розенблатт. Их еще называют нейронными сетями прямой связи, потому что они сразу пересылают информацию от входа к выходу. Чтобы научить персептроны, часто используют метод обратного распространения, где сети показывают пары входных данных и ожидаемых выходов, чтобы они могли научиться. На рисунке 8 проиллюстрирована структура однослойного и многослойного персептрона [24].

Рисунок 8 – Архитектура однослойного и многослойного персептрона

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

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

Периодические сети, состоящие из нелинейных элементов, могут вести себя очень сложно и непредсказуемо. Они могут менять свои состояния, колебаться или двигаться в хаотичные направления, которые мы не можем заранее предсказать. Чтобы решить эту проблему, Джон Хопфилд в 1982 году представил «Нейронную сеть Хопфилда» (рисунок 9).

Рисунок 9 – Архитектура нейронный сети Хопфилда

В этой сети каждый нейрон соединен со всеми другими, создавая сложную систему связей. Это похоже на клубок, где все элементы взаимосвязаны. При обучении сначала устанавливаются начальные значения нейронов, затем сеть обучается, и вычисляются весовые коэффициенты, которые после этого остаются неизменными. После обучения сеть стабилизируется только в изученных состояниях. Сети Хопфилда могут не только хранить информацию, но и обрабатывать данные, поступающие от сенсоров. Входные данные представляются видимыми блоками, а сеть создает интерпретации с помощью скрытых блоков, оценивая качество по энергии. Однако сети Хопфилда имеют свои ограничения. Например, сеть из N элементов может запомнить только 0.15N образцов из-за проблем с энергетической функцией. Если два минимума в этой функции слишком близко, они могут слиться в один, который не соответствует обучающим образцам, что снижает способность сети Хопфилда обрабатывать данные.

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

Рисунок 10 – Архитектура сверточной нейронной сети

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

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

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

Обратное распространение, или глубокая сеть доверия, является распространенным методом в искусственных нейронных сетях для оценки влияния каждого нейрона на ошибки после прохождения данных через сеть. Однако этот метод имеет два основных недостатка: требуется большое количество размеченных данных для обучения, что ограничивает его применимость из-за нехватки меток, и медленная скорость работы в сложных системах из-за дополнительных структур и слоев, что замедляет процесс обучения (рисyнок 11).

Рисунок 11 – Архитектура глубокой сети доверия

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

Рекуррентные нейронные сети (RNN) используются для работы с последовательными данными, например, с последовательностью изменений в акустическом давлении, которые могут быть преобразованы в последовательность слов. В случае отсутствия целевой последовательности можно создать обучающие сигналы, предсказывая следующий элемент входной последовательности, сдвинутый на один шаг вперед.

Рисунок 12 – Архитектура рекуррентной нейронной сети

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

Однако есть интересный метод улучшения таких моделей. Присвоить модели некое «памятное» состояние и разрешить этой памяти изменяться по мере времени. Это позволяет создавать более сложные и интересные модели, которые способны сохранять информацию в своем скрытом состоянии в течение длительного времени. Но такие скрытые состояния могут быть зашумленными, и способ, каким они воздействуют на выходные данные, тоже может быть зашумленным [38]. Поэтому точно знать, каким именно является это скрытое состояние не представляется возможным.

Таким образом первостепенной задачей становится определение скрытых состояний вероятностной модели.

Также y RNN существует ряд проблем с информационными сигналами. Когда сигнал передается через системy, то RNN считывает вес этого сигнала, и если вес сигнала приближается к нулевому значению, то система может неправильно распознать запрос и выдать некорректный ответ, такое же явление характерно и в обратную сторону, когда вес информационного сигнала превышает вес предыдущих сообщений. Поэтому для системы RNN необходимы строго определенные веса сообщений.

Система RNN значительно упрощает работу в сфере прогнозирования и моделирования ситуаций.

Вентилируемая рекуррентная единица (GRU) — это упрощенная версия сети долгосрочной краткосрочной памяти (LSTM). GRU использует входные данные и предыдущее состояние для расчета текущего состояния, которое затем используется на следующем этапе вместе с новыми входными данными. Основное отличие GRU от LSTM заключается в отсутствии сложного механизма передачи информации в GRU. Вместо этого на каждом этапе ГРУ либо сохраняет предыдущую информацию, либо обновляет ее новыми данными.

Как и LSTM, GRU предназначен для решения проблемы исчезновения градиента, часто встречающейся в традиционных рекуррентных нейронных сетях (RNN). Однако, в отличие от LSTM, GRU имеет более простую архитектуру, что делает его более эффективным в вычислительном отношении. В частности, GRU объединяет механизмы забывания и обновления в один блок, что упрощает процессы обучения и прогнозирования.

К основным компонентам ГРУ относятся шлюзы обновления и сброса, которые контролируют поток информации. Вентиль обновления определяет, какая часть предыдущего состояния должна быть сохранена и перенесена вперед, а вентиль сброса решает, какая часть нового входа должна использоваться для обновления текущего состояния. Таким образом, GRU имеет возможность выборочно сохранять и обновлять информацию, позволяя модели эффективно учиться на длинных последовательностях данных.

Благодаря упрощенной структуре GRU часто оказывается предпочтительнее LSTM в задачах, требующих высокой скорости вычислений и меньшего потребления памяти без существенной потери точности (рисyнок 13).

Рисунок 13 – Сравнение архитектур RNN, LSTM, GRU

Машина Больцмана — это тип стохастической рекуррентной нейронной сети, которая имеет сходство с сетями Хопфилда, но включает несколько ключевых модификаций (рисунок 14). Эта модель в основном используется для генерации случайных данных и разработки внутреннего представления информации в нейронных сетях.

Рисунок 14 – Архитектура нейронной сети Больцмана

Машина Больцмана характеризуется симметричными связями и использованием стохастических двоичных единиц. Каждый модуль в сети работает в соответствии с вероятностной функцией активации, обычно логистической сигмоидой, которая определяет вероятность того, что модуль является активным (т. е. имеет значение 1) на основе состояний других блоков и их соответствующих весов соединений.

Одной из отличительных особенностей машины Больцмана является ее алгоритм обучения, который включает в себя настройку весов связей для минимизации энергетической функции системы. Функция энергии, определенная аналогично функции в статистической механике, является мерой состояния сети, где более низкая энергия соответствует более вероятным состояниям. Процесс обучения направлен на поиск набора весов, которые заставят желаемые паттерны соответствовать состояниям с низкой энергией.

Обучение машины Больцмана обычно осуществляется с помощью метода, известного как выборка Гиббса, метода Монте-Карло с цепью Маркова (MCMC). Во время выборки Гиббса единицы обновляются итеративно на основе условной вероятности их состояний с учетом состояний других единиц. Этот процесс позволяет сети исследовать свое пространство состояний и корректировать свои веса для лучшего представления обучающих данных.

По сравнению с сетями Хопфилда, машины Больцмана вводят стохастичность и используют подход глобальной оптимизации, который помогает избежать локальных минимумов и добиться лучшего обобщения. Кроме того, машины Больцмана могут быть полностью или частично подключены, причем последние часто называют ограниченными машинами Больцмана (RBM). RBM ограничивают связи между модулями, образуя двудольный граф, состоящий из видимых и скрытых слоев, что упрощает процесс обучения и повышает эффективность вычислений.

Приложения машин Больцмана разнообразны: от генерации данных и уменьшения размерности до задач обучения и оптимизации функций. Их способность моделировать сложные распределения вероятностей и обнаруживать скрытые структуры в данных делает их мощным инструментом в различных областях машинного обучения и искусственного интеллекта.

Ян Гудфеллоу представил новый класс нейронных сетей, известный как генеративно-состязательные сети (GAN), в которых две отдельные модели, генератор и дискриминатор, обучаются одновременно в конкурентной среде. Основная цель модели дискриминатора — выяснить, является ли данное изображение реальным (т. е. принадлежит ли оно набору обучающих данных) или создано искусственно. И наоборот, генератор стремится создавать изображения, визуально неотличимые от реальных данных.

Динамическое взаимодействие между этими двумя моделями можно представить как игру с нулевой суммой, в которой участвуют два игрока: генератор и дискриминатор. Цель генератора — обмануть дискриминатор, генерируя изображения, максимально точно имитирующие подлинные данные. Дискриминатор, с другой стороны, стремится точно определить, какие изображения являются подлинными, а какие — сгенерированными.

На протяжении всего процесса обучения обе модели постоянно совершенствуются. Генератор улучшает его способность создавать высококачественные реалистичные изображения, а дискриминатор повышает его способность обнаруживать тонкие различия между реальными и синтетическими изображениями. Этот состязательный процесс обучения приводит к постепенному улучшению обеих моделей, кульминацией которого является создание синтетических изображений, которые практически неотличимы от реальных изображений (рисунок 15).

Рисунок 15 – (GAN) Архитектура генеративно состязательной сети

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

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

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

Автокодировщики позволяют эффективно сжимать и восстанавливать данные, особенно многомерные и структурированные, такие как изображения и аудио. К примеру, 100-мерный вектор слова можно уменьшить до 10-мерного с помощью метода PCA, сохраняя основную информацию. Автокодировщик также сжимает 100-мерный вектор до меньшего скрытого представления и восстанавливает его с минимальными потерями.

Автокодировщики применяются не только для уменьшения размерности. Существуют их различные виды, такие как сверточные автоэнкодеры (CAE) и вариационные автоэнкодеры (VAE). CAE эффективны для обработки изображений, используя сверточные слои для захвата пространственных иерархий. VAE, напротив, включают вероятностные элементы в процесс кодирования, что позволяет генерировать новые образцы данных на основе изученного распределения скрытого пространства.

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

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