Цифровое кодирование (Digital Encoding)
Процесс преобразования информации (данных, сигналов, признаков) в цифровой формат, пригодный для обработки нейронными сетями и алгоритмами машинного обучения.
В контексте ИИ и ML цифровое кодирование выступает как необходимый предварительный этап подготовки данных: сырые входные данные (текст, изображения, звук, категориальные признаки) преобразуются в числовые векторы или матрицы, с которыми могут работать математические модели. Без этого шага нейросети попросту не смогут «воспринять» информацию — ведь их «язык» сугубо числовой.
Аналогия из бытового мира
Представьте, что вы хотите отправить другу рецепт блюда, но можете общаться только с помощью цифр. Вы составляете таблицу: «мука = 1», «сахар = 2», «яйцо = 3» и т. д., а затем записываете последовательность чисел, соответствующую шагам рецепта. Друг, зная вашу кодировку, сможет восстановить исходный рецепт. Точно так же нейросети «понимают» текст, изображения и другие данные только после того, как те переведены в числовую форму.
Исторический контекст
Идея кодирования информации восходит к основам теории информации (работа Клода Шеннона 1948 года «A Mathematical Theory of Communication»). В контексте ML и нейросетей активное развитие методов кодирования пришлось на 1980–2000‑е годы, когда росли объёмы данных и усложнялись архитектуры сетей. Например:
- в обработке текста рано стали использовать one‑hot encoding (1980‑е);
- в 2013 году появилась модель Word2Vec, предложившая встраивание слов в непрерывное векторное пространство (word embeddings);
- в компьютерном зрении с 1990‑х применяли гистограммы ориентированных градиентов (HOG), а позже — свёрточные сети, которые автоматически учатся кодировать визуальные признаки.
Смежные понятия и различия
- Квантование — сокращение разрядности чисел (например, переход от float32 к int8); это тоже вид кодирования, но фокусируется на сжатии уже числовых данных, а не на переводе нечисловой информации в числа.
- Встраивание (embedding) — частный случай цифрового кодирования для категориальных данных (слов, пользователей, товаров), где каждому объекту ставится в соответствие плотный вектор низкой размерности. Отличается от one‑hot тем, что сохраняет семантические связи.
- Нормализация/стандартизация — масштабирование числовых признаков; не создаёт новое кодирование, а преобразует уже числовые данные.
Примеры использования
- Текст: one‑hot encoding, TF‑IDF, Word2Vec, GloVe, BERT embeddings.
- Изображения: пиксельные значения (RGB), гистограммы, признаки из свёрточных слоёв (например, выходы VGG, ResNet).
- Категориальные признаки: one‑hot, label encoding, target encoding, entity embeddings.
- Звуки: спектрограммы, мел‑спектрограммы, MFCC (mel‑frequency cepstral coefficients).
- Временные ряды: кодирование дат/времени (например, синусоидальные признаки), лаги, скользящие статистики.
Популярные реализации: библиотеки Scikit‑learn (one‑hot, label encoding), Gensim (Word2Vec), Transformers (BERT embeddings), OpenCV (кодировка изображений).
