Выбор метода обработки отсутствующих данных зависит от характера и степени отсутствия, предположений о механизме отсутствующих данных и характеристик набора данных. Важно тщательно рассмотреть последствия каждого метода и выбрать тот, который наилучшим образом соответствует конкретным требованиям и ограничениям имеющегося набора данных.
Работа с категориальными переменными
Категориальные переменные создают уникальные проблемы в нейронных сетях, поскольку для их эффективного использования требуется соответствующее представление и кодирование. В этой главе мы рассмотрим методы работы с категориальными переменными в нейронных сетях:
1. Кодирование этикетки:
Кодировка меток присваивает уникальную числовую метку каждой категории в категориальной переменной.
Каждая категория сопоставляется с целочисленным значением, что позволяет нейронным сетям обрабатывать данные.
Однако кодирование меток может привести к появлению порядковых отношений между категориями, которых не существует, что может привести к неправильным интерпретациям.
2. Одногорячее кодирование:
Одноразовое кодирование популярный метод представления категориальных переменных в нейронной сети.
Каждая категория преобразуется в двоичный вектор, где каждый элемент представляет наличие или отсутствие определенной категории.
Однотонная кодировка гарантирует, что каждая категория представлена одинаково, и удаляет любые подразумеваемые порядковые отношения.
Это позволяет нейронной сети рассматривать каждую категорию как отдельную функцию.
3. Встраивание:
Встраивание это метод, который изучает низкоразмерное представление категориальных переменных в нейронной сети.
Он сопоставляет каждую категорию с плотным вектором непрерывных значений, при этом аналогичные категории имеют векторы, расположенные ближе в пространстве внедрения.
Встраивание особенно полезно при работе с многомерными категориальными переменными или когда отношения между категориями важны для задачи.
Нейронные сети могут изучать вложения в процессе обучения, фиксируя значимые представления категориальных данных.
4. Встраивание сущностей:
Встраивание сущностей это специализированная форма внедрения, использующая преимущества связей между категориями.
Например, в рекомендательных системах встраивание сущностей может представлять категории пользователей и элементов в совместном пространстве внедрения.
Встраивание сущностей позволяет нейронной сети изучать отношения и взаимодействия между различными категориями, повышая ее предсказательную силу.
5. Хеширование функций:
Хеширование признаков, или трюк с хешированием, это метод, который преобразует категориальные переменные в векторное представление фиксированной длины.
Он применяет хеш-функцию к категориям, сопоставляя их с предопределенным количеством измерений.
Хеширование функций может быть полезно, когда количество категорий велико и их кодирование по отдельности становится непрактичным.
Выбор метода работы с категориальными переменными зависит от характера данных, количества категорий и отношений между категориями. Обычно используются одноразовое кодирование и внедрение, причем встраивание особенно эффективно при захвате сложных взаимодействий категорий. Тщательное рассмотрение соответствующего метода кодирования гарантирует, что категориальные переменные правильно представлены и могут внести значимый вклад в предсказания нейронной сети.
Часть II: Построение и обучение нейронных сетей
Нейронные сети с прямой связью
Структура и принципы работы
Понимание структуры и принципов работы нейронных сетей имеет решающее значение для их эффективного использования. В этой главе мы рассмотрим ключевые компоненты и принципы работы нейронных сетей:
1. Нейроны:
Нейроны являются основными строительными блоками нейронных сетей.
Они принимают входные сигналы, выполняют вычисления и выдают выходные сигналы.
Каждый нейрон применяет линейное преобразование ко входу, за которым следует нелинейная функция активации для введения нелинейности.
2. Слои:
Нейронные сети состоят из нескольких слоев взаимосвязанных нейронов.
Входной слой получает входные данные, выходной слой создает окончательные прогнозы, и между ними может быть один или несколько скрытых слоев.
Скрытые слои позволяют сети изучать сложные представления данных, извлекая соответствующие функции.
3. Веса и смещения:
Каждая связь между нейронами в нейронной сети связана с весом.
Веса определяют силу связи и контролируют влияние выхода одного нейрона на вход другого.
Смещения это дополнительные параметры, связанные с каждым нейроном, позволяющие им вносить сдвиг или смещение в вычисления.
4. Функции активации:
Активационные функции привносят нелинейность в вычисления нейронов.
Они определяют, следует ли активировать нейрон или нет, основываясь на его входе.
Общие функции активации включают сигмоид, tanh, ReLU (выпрямленный линейный блок) и softmax.
5. Распространение с прямой связью:
Распространение с прямой связью это процесс передачи входных данных через слои сети для создания прогнозов.
Каждый слой выполняет вычисления на основе входных данных, полученных от предыдущего слоя, применяя веса, смещения и функции активации.
Выходы одного слоя служат входными данными для следующего слоя, продвигаясь по сети до тех пор, пока не будут получены окончательные прогнозы.
6. Обратное распространение:
Обратное распространение алгоритм, используемый для обучения нейронных сетей.
Он вычисляет градиенты функции потерь по отношению к весам и смещениям сети.
Градиенты указывают направление и величину самого крутого спуска, направляя обновления параметров сети для минимизации потерь.
Обратное распространение распространяет градиенты назад по сети, слой за слоем, используя правило цепи исчисления.
7. Обучение и оптимизация:
Обучение нейронной сети включает в себя итеративную настройку ее весов и смещений, чтобы свести к минимуму разницу между прогнозируемыми и фактическими результатами.
Алгоритмы оптимизации, такие как градиентный спуск, используются для обновления параметров на основе рассчитанных градиентов.
Обучение обычно включает в себя подачу в сеть помеченных обучающих данных, сравнение прогнозов с истинными метками и соответствующее обновление параметров.
Понимание структуры и принципов работы нейронных сетей помогает в разработке и обучении эффективных моделей. Регулируя архитектуру, функции активации и процесс обучения, нейронные сети могут изучать сложные взаимосвязи и делать точные прогнозы по различным задачам.
Реализация нейронной сети с прямой связью
Реализация нейронной сети с прямой связью включает в себя перевод концепций и принципов в практическую реализацию кода. В этой главе мы рассмотрим шаги по реализации базовой нейронной сети с прямой связью:
1. Определите сетевую архитектуру:
Определите количество слоев и количество нейронов в каждом слое.
Определитесь с функциями активации, которые будут использоваться в каждом слое.
Определите входные и выходные размеры в зависимости от поставленной задачи.
2. Инициализируйте параметры:
Инициализируйте веса и смещения для каждого нейрона в сети.