Часть II • Введение в TensorFlow.js
На вход всех приведенных выше моделей подается массив чисел. Другими сло
вами, каждый входной пример представляется в виде простого списка чисел фик
сированной длины, причем упорядоченность элементов неважна, лишь бы она была
одинаковой для всех примеров данных. И хотя подобный тип моделей охватывает
значительное подмножество важных на практике задач машинного обучения, он
далеко не единственный. В следующих главах мы рассмотрим более сложные вход
ные типы данных, включая изображения и последовательности. В главе 4 начнем
обсуждение с изображений — распространенного и весьма полезного типа входных
данных, для работы с которыми были созданы специальные виды нейронных сетей,
позволяющие добиться поистине нечеловеческой степени безошибочности.
Упражнения
1. При создании нейронных сетей для задачи предсказания цен на бостонскую не
движимость мы остановились на модели с двумя скрытыми слоями. С учетом
сказанного выше о том, как суперпозиция нелинейных функций позволяет рас
ширить разрешающие возможности моделей, повысит ли добавление в модель
дополнительных скрытых слоев безошибочность оценок? Для проверки моди
фицируйте файл
index.js
и снова запустите обучение и оценку.
А. Почему добавление дополнительных скрытых слоев не повышает безошибоч
ность оценки?
Б. Откуда такой вывод? (Подсказка: обратите внимание на погрешность на об
учающем наборе данных.)
2. Посмотрите, как код в листинге 3.6 вычисляет и отрисовывает кривую ROC в на
чале каждой эпохи обучения с помощью обратного вызова
onEpochBegin
. Следуя
этому шаблону, попробуйте изменить тело функции обратного вызова так, чтобы
выводить значения точности и полноты (вычисленные на контрольном наборе
данных) в начале каждой эпохи. Опишите, как они меняются по мере обучения.
3. Изучите код в листинге 3.7 и выясните, как он вычисляет кривую ROC. Следуя
этому примеру, напишите новую функцию
drawPrecisionRecallCurve()
, которая,
как ясно из названия, вычисляет и визуализирует кривую «точность/полнота».
А когда напишете, вызовите ее из обратного вызова
onEpochBegin
, чтобы от
рисовывать кривую «точность/полнота» рядом с кривой ROC в начале каждой
эпохи обучения. Возможно, вам придется внести определенные изменения или
дополнения в файл
ui.js
.
4. Пусть вам известны FPR и TPR результатов работы бинарного классификатора.
Можете ли вы вычислить общую безошибочность модели на основе этих двух
чисел? Если нет, то какая еще информация вам требуется?
5. Определение как бинарной перекрестной энтропии (см. подраздел 3.2.4), так и ка
тегориальной перекрестной энтропии (см. подраздел 3.3.3) основаны на понятии
натурального логарифма (логарифма по основанию
e
). Что будет, если в их опре
Do'stlaringiz bilan baham: |