Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
Испорченные строковые значения
Категориальные данные часто поступают в виде строковых признаков. Например,
при журналировании обращений к вебстранице может фиксироваться использу
емый браузер с помощью значений вида
FIREFOX
,
SAFARI
и
CHROME
. Обычно такие
значения перед вводом в модель глубокого обучения преобразуются в целочис
ленные (в соответствии с заданным словарем или с помощью хеширования), по
сле чего отображаются в многомерное векторное пространство (см. посвященный
вложениям слов подраздел 9.2.3). При этом часто возникает проблема изза того,
что формат строковых значений из одного набора данных отличается от строковых
значений другого. Например, в обучающих данных встречается значение
FIREFOX
,
а при выполнении вывода модель получает значение
FIREFOX\n
, включающее символ
новой строки, или
"FIREFOX"
, с кавычками. Это особенно коварная разновидность
асимметрии, к которой желательно отнестись с особым вниманием.
Прочие нюансы данных, которые желательно учитывать
Помимо перечисленных в предыдущих разделах проблем, при вводе данных в си
стему машинного обучения следует обратить внимание еще на несколько нюансов.
z
z
Слишком несбалансированные данные
— желательно избавляться от признаков,
принимающих одно и то же значение почти для всех примеров данных в на
боре. Подобная разновидность сигнала может легко привести к переобучению,
а методы глубокого обучения плохо подходят для работы с очень разреженными
данными.
z
z
Различение числовых/категориальных данных
— в некоторых наборах данных
для элементов перечислимых множеств используются целые числа, что может
привести к проблемам, если на самом деле эти элементы не обладают соответ
ствующей упорядоченностью. Например, при наличии перечислимого множества
музыкальных жанров (
ROCK
,
CLASSICAL
и т. д.) и ассоциативного массива соот
ветствий этих жанров целым числам важно обращаться с этими числами при
передаче в модель как со значениями перечислимого типа, то есть кодировать их
с помощью унитарного представления или вложения (см. главу 9). В противном
случае они будут интерпретироваться как значения с плавающей точкой, что
предполагает не существующие на самом деле зависимости между термами в со
ответствии с численным расстоянием между их представлениями.
z
z
Отличия масштабов
— хотя мы уже упоминали эту разновидность, не помешает
рассказать о ней снова, в подразделе, посвященном проблемам с данными. Осте
регайтесь числовых признаков с различными масштабами величин. Их наличие
может привести к неустойчивости при обучении. В общем случае лучше перед
обучением проводить нормализацию по zоценке (нормализовать среднее значе
ние и среднеквадратичное отклонение) данных. Главное, не забудьте выполнять
такую же обработку данных при выполнении вывода, как и перед обучением.
См. пример классификации ирисов из репозитория tensorflow/tfjsexamples,
обсуждавшийся в главе 3.
Do'stlaringiz bilan baham: |