Файл: 5 тарау. Кп абатты перцептрондар.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 135

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
, мы можем заставить любую оценку изменяться очень медленно. Если мы знаем, что окружающая среда может меняться мгновенно, но очень редко, мы можем это сделать. Эти типы знаний имеют решающее значение для начинающего специалиста по данным, чтобы справиться со сдвигом концепции, то есть когда проблема, которую он пытается решить, со временем меняется.
      1. 1   2   3   4   5   6   7   8   9


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

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

  1. Районы с повышенным уровнем преступности получают больше патрулей.

  2. Следовательно, в этих районах выявляется больше преступлений, и вводятся обучающие данные, доступные для будущих итераций.

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

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


Часто различные механизмы, с помощью которых прогнозы модели связаны с ее обучающими данными, не учитываются в процессе моделирования. Это может привести к тому, что исследователи называют неконтролируемыми петлями обратной связи. Кроме того, мы хотим быть осторожными в том, решаем ли мы правильную проблему в первую очередь. Алгоритмы прогнозирования теперь играют огромную роль в распространении информации. Должны ли новости, с которыми сталкивается человек, определяться набором понравившихся ему страниц в Facebook? Это лишь некоторые из множества неотложных этических дилемм, с которыми вы можете столкнуться в карьере в области машинного обучения.

Резюме

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

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

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

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

Упражнения

  1. Что может случиться, если мы изменим поведение поисковой системы? Что могут сделать пользователи? А как насчет рекламодателей?

  2. Реализуйте детектор ковариантного сдвига. Подсказка: создайте классификатор.

  3. Реализуйте ковариантный корректор сдвига.

  4. Помимо сдвига распределения, что еще может повлиять на то, насколько эмпирический риск приближается к истинному риску?

Обсуждение (см. https://discuss.d2l.ai/t/105)

    1. Прогнозирование цен на жилье на Kaggle

Теперь, когда мы представили некоторые базовые инструменты для построения и обучения глубоких сетей и их упорядочения с помощью методов, включая снижение веса и отсев, мы готовы применить все эти знания на практике, приняв участие в соревновании Kaggle. Соревнования по прогнозированию цен на жилье - отличное место для начала. Данные
довольно общие и не имеют экзотической структуры, которая может потребовать специализированных моделей (как аудио или видео). Этот набор данных, собранный Барт де Кок в 2011 году (DeCock, 2011), охватывает цены на жилье в Эймсе, штат Айова, за период 2006–2010 годов. Это значительно больше, чем знаменитый набор данных о жилищном строительстве в Бостоне Харрисона и Рубинфельда (1978), которые могут похвастаться как большим количеством примеров, так и большим количеством функций.

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

      1. Загрузка и кэширование наборов данных

На протяжении всей курса мы будем обучать и тестировать модели на различных загруженных наборах данных. Здесь мы реализуем несколько служебных функций для облегчения загрузки данных. Во-первых, мы поддерживаем словарь DATA_HUB, который отображает строку (имя набора данных) в кортеж, содержащий как URL-адрес для поиска набора данных, так и ключ SHA-1, который проверяет целостность файла. Все такие наборы данных размещаются на сайте с адресом DATA_URL.

import os

import requests

import zipfile

import tarfile

import hashlib

DATA_HUB = dict() #@save

DATA_URL = 'http://d2l-data.s3-accelerate.amazonaws.com/' #@save

75 https://discuss.d2l.ai/t/105

76 https://archive.ics.uci.edu/ml/machine-learning databases/housing/housing.names
Следующая функция загрузки загружает набор данных, кэширует его в локальном каталоге (по умолчанию ../data) и возвращает имя загруженного файла. Если файл, соответствующий этому набору данных, уже существует в каталоге кеша и его SHA-1 совпадает с SHA-1, хранящимся в DATA_HUB, наш код будет использовать кешированный файл, чтобы избежать засорения вашего Интернета избыточными загрузками.

def download(name, cache_dir=os.path.join('..', 'data')): #@save

"""Download a file inserted into DATA_HUB, return the local filename."""

assert name in DATA_HUB, f"{name} does not exist in {DATA_HUB}."

url, sha1_hash = DATA_HUB[name]

d2l.mkdir_if_not_exist(cache_dir)

fname = os.path.join(cache_dir, url.split('/')[-1])

if os.path.exists(fname):

sha1 = hashlib.sha1()

with open(fname, 'rb') as f:

while True:

data = f.read(1048576)

if not data:

break

sha1.update(data)

if sha1.hexdigest() == sha1_hash:

return fname # Hit cache

print(f'Downloading {fname} from {url}...')

r = requests.get(url, stream=True, verify=True)

with open(fname, 'wb') as f:

f.write(r.content)

return fname
Мы также реализуем две дополнительные служебные функции: одна предназначена для загрузки и извлечения файла zip или tar, а другая - для загрузки всех наборов данных,
используемых в этой книге, из DATA_HUB в каталог кеша.

def download_extract(name, folder=None): #@save

"""Download and extract a zip/tar file."""

fname = download(name)

base_dir = os.path.dirname(fname)

data_dir, ext = os.path.splitext(fname)

if ext == '.zip':

fp = zipfile.ZipFile(fname, 'r')

elif ext in ('.tar', '.gz'):

fp = tarfile.open(fname, 'r')

else:

assert False, 'Only zip/tar files can be extracted.'

fp.extractall(base_dir)

return os.path.join(base_dir, folder) if folder else data_dir

def download_all(): #@save

"""Download all files in the DATA_HUB."""

for name in DATA_HUB:

download(name)


      1. Kaggle

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

На странице конкурса прогнозов цен на жилье, как показано на рис. 5.10.2, вы можете найти набор данных (на вкладке «Данные»), отправить прогнозы и увидеть свой рейтинг. URL-адрес находится прямо здесь:

https://www.kaggle.com/c/house-prices-advanced-regression-techniques



Рис. 5.10.1: Веб-сайт Kaggle.



Рис. 5.10.2: Страница конкурса прогнозов цен на жилье.

Доступ и чтение набора данных

Обратите внимание, что данные о соревнованиях разделены на наборы для обучения и тестирования. Каждая запись включает значение свойства дома и такие атрибуты, как тип улицы, год постройки, тип крыши, состояние подвала и т. д. Функции состоят из различных типов данных. Например, год постройки представлен целым числом, тип крыши - дискретным категориальным назначением, а другие характеристики - числами с плавающей запятой. И вот здесь реальность усложняет ситуацию: для некоторых примеров некоторые данные вообще отсутствуют, а отсутствующее значение помечено просто как «na». В стоимость каждого домика включен только тренировочный набор (это ведь соревнование). Мы захотим разделить обучающий набор для создания набора для проверки, но мы сможем оценить наши модели только на официальном наборе тестов после загрузки прогнозов в Kaggle. Вкладка «Данные» на вкладке конкурса на рис. 5.10.2 содержит ссылки для загрузки данных.