Глава 2. Приступим: простая линейная регрессия в TensorFlow.js
101
const testLoss = result.dataSync()[0];
await ui.updateStatus(
`Final train-set loss: ${trainLoss.toFixed(4)}\n` +
`Final validation-set loss: ${valLoss.toFixed(4)}\n` +
`Test-set loss: ${testLoss.toFixed(4)}`);
В этом коде
model.evaluate()
возвращает скалярное значение (то есть тензор
ранга 0), содержащее вычисленные на основе контрольного набора данных потери.
В силу случайного характера градиентного спуска ваши результаты могут не
сколько отличаться, но приведенные ниже результаты вполне характерны:
z
z
итоговые потери на обучающем наборе данных — 21,9864;
z
z
итоговые потери на проверочном наборе данных — 31,1396;
z
z
потери на контрольном наборе данных — 25,3206;
z
z
эталонные потери — 85,58.
Как видно, окончательная, непредвзятая оценка погрешности модели равна
примерно 25,3 — намного лучше, чем «наивная» эталонная погрешность 85,6. Напо
минаем, что погрешность мы вычисляем с помощью
meanSquaredError
. Извлекаем
квадратный корень и видим, что эталонная оценка потерь в среднем демонстрировала
погрешность более 9,2, а линейная модель дает ошибку всего 5,0. Весьма существен
ный прогресс! Если бы доступ к этой информации был во всем мире только у нас,
в 1978 году мы были бы самыми успешными торговцами бостонской недвижимостью!
Разве что комунибудь удалось бы сделать еще более точную оценку...
Если вы дали волю своему любопытству и нажали кнопку
Train Neural Network
Regressor
(Обучить нейросетевой регрессор), то знаете,
насколько
лучшие оценки воз
можны. В следующей главе мы познакомим вас с нелинейными глубокими моделями
и покажем, за счет чего возможны подобные достижения.
2.4. Интерпретация модели
Когда модель уже обучена и способна выполнять обоснованные предсказания, нам
становится интересно, чему она научилась. Можно ли както заглянуть внутрь мо
дели и узнать, как она понимает данные? Когда модель на основе входных данных
предсказывает определенную цену, можно ли найти разумное пояснение того, по
чему она выдала именно такое значение? В общем случае для больших глубоких
сетей понимание модели (называемое также интерпретируемостью модели) остается
областью активных исследований, ему посвящено множество стендов и докладов
на научных конференциях. Но для подобной простой модели линейной регрессии
все просто.
К концу этого раздела вы научитесь:
z
z
извлекать из модели усвоенные веса;
z
z
интерпретировать эти веса и сравнивать их с своим интуитивным представлением
о том, какими они
должны
быть.
102
Do'stlaringiz bilan baham: |