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

190    Глава 5. Основы машинного обучения

model.compile(optimizer="rmsprop", loss="sparse_categorical_crossentropy", metrics=["accuracy"])

history_large_model = model.fit( train_images, train_labels, epochs=20,

batch_size=128, validation_split=0.2)

Кривая.потерь.на.проверочных.данных.теперь.выглядит.так,.как.должна:.модель.

быстро.обучается,.и.через.восемь.эпох.наступает.эффект.переобучения.(рис..5.15).

Рис. 5.15. График кривой потерь для модели с достаточной емкостью

5.4. УЛУЧШЕНИЕ ОБЩНОСТИ

Как.только.модель.покажет,.что.обладает.некоторой.способностью.к.обобщению. и.переобучению,.можно.переключить.внимание.на.увеличение.способности. к.обобщению.

5.4.1. Курирование набора данных

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

5.4. Улучшение общности    191

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

.Убедитесь.в.достаточности.имеющихся.данных..Помните,.что.вам.нужна. плотная выборка.из.входного.пространства..Чем.больше.данных,.тем.лучше. модель..Иногда.задачи,.которые.сначала.кажутся.невозможными,.можно. решить.с.помощью.более.крупного.набора.данных.

.Минимизируйте.ошибки.в.маркировке.—.визуализируйте.вводимые.данные,. чтобы.наглядно.видеть.аномалии,.и.проверяйте.и.перепроверяйте.метки.

.Удалите.ошибочные.и.добавьте.недостающие.данные.(мы.поговорим.об.этом. в.следующей.главе).

.Если.у.вас.слишком.много.признаков.и.вы.не.уверены.в.том,.какие.из.них. действительно.полезны,.выполните.процедуру.выбора.признаков.

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

5.4.2. Конструирование признаков

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

Рассмотрим.простой.пример..Допустим,.нам.нужно.разработать.модель,.принимающую.изображение.циферблата.часов.со.стрелками.и.возвращающую. время.(рис..4.3).

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

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

192    Глава 5. Основы машинного обучения

Рис. 5.16. Конструирование признаков для чтения времени с изображения циферблата часов

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

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

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

К.счастью,.современные.технологии.глубокого.обучения.в.большинстве.случаев. избавляют.от.необходимости.конструировать.признаки,.потому.что.нейронные.сети.способны.автоматически.извлекать.полезные.признаки.из.исходных. данных..Означает.ли.это,.что.вы.не.должны.беспокоиться.о.конструировании. признаков.при.использовании.глубоких.нейронных.сетей?.Нет,.и.вот.почему:

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

5.4. Улучшение общности    193

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

5.4.3. Ранняя остановка

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

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

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

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

5.4.4. Регуляризация модели

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

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

194    Глава 5. Основы машинного обучения

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

Уменьшение размера сети

Вы.уже.знаете,.что.слишком.маленькие.модели.не.подвержены.переобучению..

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

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

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

Листинг 5.10. Исходная модель

from tensorflow.keras.datasets import imdb

(train_data, train_labels), _ = imdb.load_data(num_words=10000)

def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) for i, sequence in enumerate(sequences):

results[i, sequence] = 1. return results

train_data = vectorize_sequences(train_data) model = keras.Sequential([

layers.Dense(16, activation="relu"), layers.Dense(16, activation="relu"), layers.Dense(1, activation="sigmoid")

])

model.compile(optimizer="rmsprop", loss="binary_crossentropy",

5.4. Улучшение общности 

195

metrics=["accuracy"])

 

 

history_original = model.fit(train_data, train_labels,

 

 

epochs=20, batch_size=512, validation_split=0.4)

Теперь.попробуем.заменить.ее.меньшей.моделью.

 

 

Листинг 5.11. Версия модели с меньшей емкостью

 

 

model = keras.Sequential([

 

 

layers.Dense(4, activation="relu"),

 

 

layers.Dense(4, activation="relu"),

 

 

layers.Dense(1, activation="sigmoid")

 

 

])

 

 

model.compile(optimizer="rmsprop",

 

 

loss="binary_crossentropy",

 

 

metrics=["accuracy"])

 

 

history_smaller_model = model.fit(

 

 

train_data, train_labels,

 

 

epochs=20, batch_size=512, validation_split=0.4)

 

 

На.рис..5.17.для.сравнения.показаны.графики.потерь.на.проверочных.данных.

для.исходной.модели.и.ее.уменьшенной.версии.

 

 

Рис. 5.17. Сравнение оригинальной и уменьшенной моделей классификации

 

 

отзывов в наборе данных IMDB

 

 

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

196    Глава 5. Основы машинного обучения

Теперь.для.контраста.добавим.сеть.с.большей.емкостью.—.намного.большей,.

чем.необходимо.для.данной.задачи.

В.мире.машинного.обучения.принято.использовать.модели,.где.количество.пара-

метров.значительно.превышает.пространство.признаков,.которое.они.пытаются.

изучить,.однако.такие.модели.имеют.слишком.большую.способность.к.запомина-

нию..Если.модель.слишком.большая,.она.почти.сразу.же.начнет.переобучаться,.а.ее.

кривая.потерь.на.проверочных.данных.будет.выглядеть.прерывистой.с.большой.

дисперсией.(впрочем,.большая.дисперсия.также.может.говорить.о.ненадежности.

процесса.проверки,.например.если.проверочная.выборка.слишком.мала).

Листинг 5.12. Версия модели с намного большей емкостью

model = keras.Sequential([

layers.Dense(512, activation="relu"),

layers.Dense(512, activation="relu"),

layers.Dense(1, activation="sigmoid")

])

model.compile(optimizer="rmsprop",

loss="binary_crossentropy",

metrics=["accuracy"])

history_larger_model = model.fit(

train_data, train_labels,

epochs=20, batch_size=512, validation_split=0.4)

На.рис..5.18.для.сравнения.приводятся.графики.потерь.на.проверочных.данных.

для.увеличенной.и.исходной.моделей.

Рис. 5.18. Сравнение оригинальной и увеличенной моделей классификации отзывов

в наборе данных IMDB

5.4. Улучшение общности    197

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

Добавление регуляризации весов

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

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

.L1-регуляризация (L1.regularization).—.добавляемый.штраф.прямо.пропор- ционален.абсолютным значениям весовых коэффициентов.(L1-норма.весов);

.L2-регуляризация.(L2.regularization).—.добавляемый.штраф.пропорциона- лен.квадратам значений весовых коэффициентов.(L2-норма.весов)..В.кон- тексте.нейронных.сетей.L2-регуляризация.также.называется.сокращением весов.(weight.decay)..Это.два.разных.названия.одного.и.того.же.явления:. сокращение.весов.с.математической.точки.зрения.есть.то.же.самое,.что. L2-регуляризация.

В.Keras.регуляризация.весов.осуществляется.путем.передачи.в.слои.именованных.аргументов.с.экземплярами регуляризаторов весов..Рассмотрим.при- мер.добавления.L2-регуляризации.в.сеть.классификации.отзывов.о.фильмах. (листинг.5.13).

Листинг 5.13. Добавление L2-регуляризации весов в модель

from tensorflow.keras import regularizers model = keras.Sequential([

layers.Dense(16,

198    Глава 5. Основы машинного обучения

kernel_regularizer=regularizers.l2(0.002),

activation="relu"),

layers.Dense(16,

kernel_regularizer=regularizers.l2(0.002),

activation="relu"),

layers.Dense(1, activation="sigmoid")

])

model.compile(optimizer="rmsprop",

loss="binary_crossentropy",

metrics=["accuracy"])

history_l2_reg = model.fit(

train_data, train_labels,

epochs=20, batch_size=512, validation_split=0.4)

l2(0.002) .означает,.что.каждый.коэффициент.в.матрице.весов.слоя.будет.до-

бавлять.0.002 .* .weight_coefficient_value ** 2 .в.общее.значение.потерь.сети..

Обратите.внимание,.что.штраф добавляется только на этапе обучения,.поэто-

му.величина.потерь.сети.на.этапе.обучения.будет.намного.выше,.чем.на.этапе.

контроля.

На.рис..5.19.показано.влияние.L2-регуляризации..Как.видите,.модель.с.L2-регу­

ляризацией.намного.устойчивее.к.переобучению,.чем.исходная,.даже.притом,.что.

обе.модели.имеют.одинаковое.количество.параметров.

Рис. 5.19. Влияние L2-регуляризации весов на величину потерь

на проверочных данных

5.4. Улучшение общности    199

Вместо.L2-регуляризации.можно.также.использовать.следующие.регуляриза- торы,.входящие.в.состав.Keras.

Листинг 5.14. Разные регуляризаторы, доступные в Keras

from tensorflow.keras import regularizers regularizers.l1(0.001) regularizers.l1_l2(l1=0.001, l2=0.001)

L1-регуляризация

Объединенная

L1- и L2-регуляризация

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

Добавление прореживания

Прореживание.(dropout).—.один.из.наиболее.эффективных.и.распространенных. приемов.регуляризации.нейронных.сетей,.разработанный.Джеффом.Хинтоном. и.его.студентами.в.Университете.Торонто..Прореживание,.которое.применяется. к.слою,.заключается.в.удалении.(присваивании.нуля).случайно.выбираемым. признакам.на.этапе.обучения..Представьте,.что.в.процессе.обучения.некоторый. слой.для.некоторого.входного.образца.в.нормальной.ситуации.возвращает. вектор.[0.2, 0.5, 1.3, 0.8, 1.1]..После.прореживания.некоторые.элементы. вектора.получают.нулевое.значение:.например,.[0, 0.5, 1.3, 0, 1.1]..Коэффициент прореживания.—.это.доля.обнуляемых.признаков;.обычно.он.выбирается. в.диапазоне.от.0,2.до.0,5..На.этапе.тестирования.прореживание.не.производится;. вместо.этого.выходные.значения.уровня.уменьшаются.на.коэффициент,.равный. коэффициенту.прореживания,.чтобы.компенсировать.разницу.в.активности. признаков.на.этапах.тестирования.и.обучения.

Рассмотрим.матрицу.NumPy.layer_output,.полученную.на.выходе.слоя,.с.формой.(размер_пакета,.признаки)..На.этапе.обучения.мы.обнуляем.случайно.выбираемые.значения.в.матрице:

layer_output *= np.random.randint(0, high=2, size=layer_output.shape)

На этапе обучения обнуляется 50 % признаков в выводе

На.этапе.тестирования.мы.уменьшаем.результаты.на.коэффициент.прореживания. (в.данном.случае.на.0,5,.потому.что.прежде.была.отброшена.половина.признаков):

layer_output *= 0.5

 

На этапе тестирования

 

На этапе обучения

200    Глава 5. Основы машинного обучения

Обратите.внимание,.что.этот.процесс.можно.реализовать.полностью.на.этапе. обучения.и.оставить.без.изменения.результаты,.получаемые.на.этапе.тестирования,.что.часто.и.делается.на.практике.(рис..5.20):

layer_output *= np.random.randint(0, high=2, size=layer_output.shape) layer_output /= 0.5

Обратите внимание: в данном случае происходит увеличение, а не уменьшение значений

Рис. 5.20. Прореживание применяется к матрице активации на этапе обучения с масштабированием на этом же этапе. На этапе тестирования матрица активации не изменяется

Этот.прием.может.показаться.странным.и.необоснованным..Каким.образом.он. поможет.справиться.с.переобучением?.По.словам.Хинтона,.основой.для.данного.приема,.кроме.всего.прочего,.стал.механизм,.используемый.банками.для. предотвращения.мошенничества..Вот.его.слова:.«Посещая.свой.банк,.я.заметил,. что.операционисты,.обслуживающие.меня,.часто.меняются..Я.спросил.одного. из.них,.почему.так.происходит..Он.сказал,.что.не.знает,.но.им.часто.приходится. переходить.с.места.на.место..Я.предположил,.что.это.делается.для.исключения. мошеннического.сговора.клиента.с.сотрудником.банка..Это.навело.меня.на. мысль,.что.удаление.случайно.выбранного.подмножества.нейронов.из.каждого. примера.может.помочь.предотвратить.заговор.модели.с.исходными.данными. и.тем.самым.ослабить.эффект.переобучения»..Иными.словами,.основная.идея. заключается.в.введении.шума.в.выходные.значения,.способного.разбить.случайно. складывающиеся,.не.имеющие.большого.значения.шаблоны.(Хинтон.называет. их.заговорами),.которые.модель.начинает.запоминать.в.отсутствие.шума.

В.Keras.добавить.прореживание.можно.введением.в.модель.слоя.Dropout,.который.обрабатывает.результаты.работы.слоя,.стоящего.непосредственно.перед. ним..Давайте.добавим.два.слоя.Dropout .в.модель.IMDB.и.посмотрим,.как.это. повлияет.на.эффект.переобучения

Листинг 5.15. Добавление прореживания в модель IMDB

model = keras.Sequential([ layers.Dense(16, activation="relu"), layers.Dropout(0.5),

5.4. Улучшение общности 

201

layers.Dense(16, activation="relu"),

 

 

layers.Dropout(0.5),

 

 

layers.Dense(1, activation="sigmoid")

 

 

])

 

 

model.compile(optimizer="rmsprop",

 

 

loss="binary_crossentropy",

 

 

metrics=["accuracy"])

 

 

history_dropout = model.fit(

 

 

train_data, train_labels,

 

 

epochs=20, batch_size=512, validation_split=0.4)

 

 

На.рис..5.21.показаны.графики.с.результатами..И.снова.в.сравнении.с.исходной.

моделью.наблюдается.улучшение.

 

 

Рис. 5.21. Влияние прореживания на величину потерь

 

 

на проверочных данных

 

 

Таким.образом,.наиболее.распространенные.способы.ослабления.проблемы. переобучения.нейронных.сетей.следующие:

. увеличить.объем.обучающих.данных.и.их.качество;

. выбрать.наиболее.информативные.признаки;

. уменьшить.емкость.сети;

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

. добавить.прореживание.