Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шолле Ф. - Глубокое обучение на Python (Библиотека программиста) - 2023.pdf
Скачиваний:
3
Добавлен:
07.04.2024
Размер:
11.34 Mб
Скачать

212    Глава 6. Обобщенный процесс машинного обучения

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

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

.проверьте.утечку целей:.наличие.в.данных.признаков.с.информацией.о.целях,. которые.могут.отсутствовать.в.реальных.данных,.но.потом.будут.использоваться.для.прогнозирования..Если.вы.обучаете.на.медицинских.записях. модель,.предсказывающую.вероятность.заболеть.раком.в.будущем,.и.записи. включают.признак.«у.этого.человека.диагностирован.рак»,.то.в.таком.случае.целевые.значения.искусственно.попадают.в.обучающие.данные..Всегда. спрашивайте.себя:.все.ли.признаки,.имеющиеся.в.обучающих.данных,.будут. доступны.в.той.же.форме.в.реальных.данных?

6.1.4. Выбор меры успеха

Чтобы.держать.ситуацию.под.контролем,.нужно.иметь.возможность.наблюдать. за.ней..Чтобы.добиться.успеха,.важно.определить,.что.понимается.под.успехом..Близость?.Точность.и.полнота?.Удержание.клиентов?.Мера.успеха.будет. определять.все.технические.решения,.которые.вы.будете.принимать.в.процессе. работы.над.проектом..Она.должна.быть.прямо.связана.с.вашими.общими.целя- ми.—.например,.такими,.как.успех.бизнеса.

Для.задач.симметричной.классификации,.когда.каждый.класс.одинаково.вероятен,. часто.используются.такие.показатели,.как.близость.и.площадь под кривой рабочей характеристики приемника.(area.under.curve.of.receiver.operating.characteristic,. ROC.AUC)..Для.задач.несимметричной.классификации.можно.взять.точность. и.полноту..Для.задач.ранжирования.или.многозначной.классификации.пригодится.среднее.математическое.ожидание..Также.нередко.приходится.определять. собственную.меру.успеха..Чтобы.получить.представление.о.разнообразии.мер. успеха.в.машинном.обучении.и.их.связях.с.разными.предметными.областями,.полезно.ознакомиться.с.состязаниями.аналитиков.на.сайте.Kaggle.(https://kaggle.com);. там.вы.увидите.широкий.спектр.проблем.и.оцениваемых.показателей.

6.2. РАЗРАБОТКА МОДЕЛИ

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

6.2. Разработка модели    213

уже.выполнены),.а.также.развертывание.и.обслуживание.модели.(которые,.как. принято.считать,.будут.выполняться.кем-то.другим)..На.самом.деле.разработка. модели.—.лишь.один.из.множества.шагов.в.процессе.машинного.обучения,.и,.на. мой.взгляд,.не.самый.сложный..Самое.сложное.—.это.формулировка.задачи,. а.также.сбор,.маркировка.и.очистка.данных..Так.что.не.унывайте.—.дальше. будет.проще!

6.2.1. Подготовка данных

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

Векторизация

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

Нормализация значений

В.главе.2,.в.примере.классификации.рукописных.цифр.из.набора.MNIST,.ис- ходные.черно-белые.изображения.цифр.были.представлены.массивами.целых. чисел.в.диапазоне.0–255..Прежде.чем.передать.эти.данные.в.сеть,.нам.понадо- билось.привести.числа.к.типу.float32 .и.разделить.каждое.на.255,.в.результате. чего.у.нас.получились.массивы.чисел.с.плавающей.точкой.в.диапазоне.0–1..

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

214    Глава 6. Обобщенный процесс машинного обучения

каждый.признак.в.отдельности,.чтобы.все.они.имели.среднее.значение,.равное.0,. и.стандартное.отклонение,.равное.1.

Вообще,.небезопасно.передавать.в.нейронную.сеть.данные,.принимающие.очень. большие.значения.(например,.целые.числа.с.большим.количеством.значимых. разрядов,.которые.намного.больше.начальных.значений,.принимаемых.весами. сети),.или.разнородные.данные.(например,.такие,.в.которых.один.признак. определяется.значениями.в.диапазоне.0–1,.а.другой.—.в.диапазоне.100–200).. Это.может.привести.к.значительным.изменениям.градиента,.которые.будут.препятствовать.сходимости.сети..Чтобы.упростить.обучение.сети,.данные.должны:

.принимать небольшие значения.—.как.правило,.значения.должны.находиться. в.диапазоне.0–1;

.быть однородными.—.то.есть.все.признаки.должны.принимать.значения.при- мерно.из.одного.и.того.же.диапазона.

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

.нормализация .каждого .признака .независимо .таким .образом, .чтобы .его. среднее.значение.было.равно.0;

.нормализация.каждого.признака.независимо.таким.образом,.чтобы.его.стандартное.отклонение.было.равно.1.

Это.легко.реализуется.с.применением.массивов.NumPy:

x

-=

x.mean(axis=0)

 

Предполагается, что x — это двумерная матрица

 

x

/=

x.std(axis=0)

данных с формой (образцы, свойства)

Обработка недостающих значений

Иногда.в.исходных.данных.могут.отсутствовать.некоторые.значения..Например,.

в.случае.с.предсказанием.цен.на.дома.первым.признаком.(столбец.с.индексом.0.

в.данных).был.уровень.преступности.на.душу.населения..Как.быть,.если.этот. признак.определен.не.во.всех.образцах?.Если.оставить.все.как.есть,.у.нас.появится.недостаток.значений.в.обучающих.или.контрольных.данных.

От.такого.признака.можно.вообще.отказаться,.а.можно.поступить.иначе.

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

.Если.признак.числовой,.желательно.избегать.использования.произвольного. значения.(например,.0).—.это.может.создать.разрыв.в.скрытом.пространстве,. образованном.признаками,.из-за.чего.обучаемой.модели.будет.труднее.найти.

6.2. Разработка модели    215

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

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

6.2.2. Выбор протокола оценки

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

В.главе.5.мы.рассмотрели.три.распространенных.протокола.оценки,.таких.как:

.выделение из общей выборки отдельного проверочного набора данных.—.этот. способ.хорошо.подходит.при.наличии.большого.объема.данных;

.перекрестная проверка по K блокам.—.оптимальный.вариант.при.небольшом. количестве.исходных.образцов,.из.которых.нельзя.выделить.представительную.выборку.для.проверки;

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

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

6.2.3. Преодоление базового случая

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

216    Глава 6. Обобщенный процесс машинного обучения

На.этом.этапе.следует.сосредоточить.внимание.на.таких.трех.важных.аспектах,.как:

.конструирование признаков.—.отфильтруйте.неинформативные.признаки. (отбор.признаков).и.используйте.свои.знания.в.предметной.области.для. конструирования.новых.признаков,.которые.могут.оказаться.полезными;

.выбор правильной архитектуры .—.какую.архитектуру.вы.будете.исполь- зовать:.плотно.связанную,.сверточную,.рекуррентную.нейронную.сеть.или. трансформер.(Transformer)?.Подходит.ли.в.целом.глубокое.обучение.для. решения.данной.задачи,.или.лучше.использовать.что-то.еще;

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

ВЫБОР ПРАВИЛЬНОЙ ФУНКЦИИ ПОТЕРЬ

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

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

Выбор функции активации для последнего уровня и функции потерь

Тип задачи

Функция активации

Функция потерь

 

для последнего уровня

 

 

 

 

Бинарная классификация

sigmoid

binary_crossentropy

 

 

 

Многоклассовая однозначная

softmax

categorical_

классификация

 

crossentropy

 

 

 

Многоклассовая многозначная

sigmoid

binary_crossentropy

классификация

 

 

 

 

 

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