Читать книгу Искусственный интеллект - - Страница 10
Нейронные сети
ОглавлениеНейронные сети являются базовой технологией, лежащей в основе ИИ. Их математические основы были исследованы, определены, и описаны в многочисленных статьях и книгах, начиная с конца 1950х годов. Например, еще в 1957 году Фрэнк Розенблатт предложил концепцию перцептрона – одной из первых моделей искусственной нейронной сети. Эта модель позволяет создавать ассоциативные связи между входными данными (импульсами на входе) и необходимыми выходными данными (реакциями сети на выходе). Современная терминология определяет перцептроны как искусственные нейронные сети с одним скрытым слоем, пороговой передаточной функцией и прямым распространением сигнала.
Искусственная нейронная сеть (ИНС) – это математическая модель, состоящая из множества простых «процессоров», называемых нейронами; нейроны связаны между собой и работают вместе для выполнения сложных задач. Каждый нейрон может принимать входные данные, обрабатывать их и передавать результаты следующему нейрону. ИНС обучаются на обучающих примерах таким образом, чтобы научиться распознавать шаблоны (типовые паттерны) и затем, при обработке данных после обучения, делать на основе паттернов, выявленных в полученных данных, прогнозы. Сложность решаемых задач приводит к тому, что нейроны необходимо объединять в слои, чтобы улучшить способность сети к обучению и повысить качество прогнозов. Каждый слой выполняет свою функцию и передает результаты на следующий слой. Первый слой получает входные данные, этот слой называется «входным слоем». Он преобразует входные данные во внутренний формат сети. Затем идет один или более скрытых слоев (в глубокой нейросети таких слоев больше двух), где происходит основная обработка входных данных. Нейроны производят математические операции над входными данными и передают результаты дальше. Последний слой называется «выходным слоем», его задача – выдача результата работы сети. Объединение нейронов в слои позволяет всей сети обрабатывать входные данные поэтапно, что улучшает точность и скорость обработки данных. Важно понимать, что слои позволяют создавать сложные модели, способные решать сложные задачи анализа больших объемов данных и выявления скрытых закономерностей.
Рис. 1. Структура ИНС
Важнейшие понятия ИНС:
Нейроны – основные вычислительные единицы, которые принимают входные данные, обрабатывают их и передают результаты дальше по сети. Каждый нейрон выполняет простую математическую операцию: он умножает входные значения на определённые веса, затем суммирует результаты и передаёт их через функцию активации, которая определяет, будет ли нейрон активирован и каким будет его выходной сигнал.
Синапсы – связи между нейронами, которые определяют силу взаимодействия между ними. Синапсы могут быть возбуждающими или тормозящими, что влияет на то, как нейроны взаимодействуют друг с другом.
Веса – коэффициенты, присвоенные синапсам, которые влияют на передачу сигнала между нейронами. Веса могут быть положительными или отрицательными, и они определяют, насколько сильно один нейрон влияет на другой.
Смещения – параметры, добавляемые к сумме взвешенных входов нейрона перед применением функции активации. Это позволяет нейронам учитывать входные данные, даже если все веса равны нулю.
Слои – нейроны группируются в слои, каждый из которых выполняет определенную функцию. Обычно выделяют входной слой, скрытые слои и выходной слой.
Алгоритм обучения – алгоритм, который регулирует веса и смещения нейронов для минимизации функции потерь. Основные алгоритмы – градиентный спуск, Stochastic Gradient Descent (SGD), Mini-batch Gradient Descent, Adaptive Moment Estimation (Adam), Root Mean Square Propagation (RMSProp), Nesterov's Accelerated Gradient (NAG). Во время обучения сети алгоритм корректирует веса нейронов, основываясь на разнице между предсказанными и истинными ответами. Целью является минимизация функции потерь путем подстройки весов так, чтобы сеть выдавала более точные прогнозы. Смещения также корректируются во время обучения, при этом их изменение помогает сети лучше учитывать неожиданные входные значения.
Функция потерь – представляет собой меру расхождения между реальными и предсказанными результатами. Она помогает оценить качество работы модели на основе входных данных и ожидаемых выходных данных. Чем меньше значение функции потерь, тем лучше работает модель.
Функция активации – определяет результат работы нейрона; преобразует выходной сигнал нейрона в определенный результат. Примеры: ReLU, sigmoid, tanh и другие.
Обратное распространение ошибки – процесс, обеспечивающий корректировку весов и смещений нейронов на основе значений функции потерь.
Метрика оценки – критерий, который определяет, насколько хорошо сеть выполняет свою задачу. Таким критерием может служить функция потерь, но также могут использоваться метрики вроде точности, F1-мера и другие.
Состав слоёв ИНС:
Входной слой – принимает входные данные для анализа. Входные данные могут быть любыми, от изображений до текстовых данных. Этот слой обычно преобразует входящие данные в форму, удобную для дальнейшей обработки сетью.
Скрытые слои – промежуточные слои, выполняющие основную обработку данных. Скрытые слои могут быть одного или нескольких типов. Они выполняют сложные преобразования входных данных, чтобы подготовить их для выходного слоя. Количество скрытых слоев и количество нейронов в каждом слое зависят от сложности решаемой задачи и архитектуры сети.
Выходной слой – выдаёт результат работы сети, например, предсказание или классификацию. Выходной слой может иметь один или несколько нейронов, в зависимости от задачи, которую решает ИНС.
Также стоит отметить, что некоторые ИНС могут содержать дополнительные слои:
Блок нормализации – используется для приведения входных данных к стандартному диапазону значений, что облегчает последующую обработку сети.
Дескрипторные слои (Embedding Layers) – в случае обработки текста или других структурированных данных, эти слои преобразуют исходные данные в векторное представление, которое затем обрабатывается остальной частью сети.
Подготовка к последовательной обработке (Recurrent Neural Networks) – такие слои используются в рекуррентных нейронных сетях (RNN) для хранения состояния сети и учета контекста предыдущих временных шагов.
Дополнительные слои являются специфическими для определенных типов задач и архитектур сетей, и их использование зависит от конкретного приложения