Ключ к ответу на вопросник в конце главы

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

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

— Джереми Ховард, Fast.ai

1. В чем в настоящее время текстовые модели имеют большой недостаток?

Текстовые модели по-прежнему с трудом выдают фактически правильные ответы на вопросы о фактической информации. Он может генерировать ответы, которые непрофессионалу кажутся убедительными, но совершенно неправильными. Это также можно объяснить проблемами обработки естественного языка, связанными с точностью, такими как контекстные слова, омонимы, синонимы, сарказм и двусмысленность.

2. Каковы возможные негативные социальные последствия моделей генерации текста?

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

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

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

4. С какими табличными данными особенно хорошо работает глубокое обучение?

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

5. Каков основной недостаток прямого использования модели глубокого обучения для рекомендательных систем?

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

6. Каковы этапы подхода Drivetrain?

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

  1. Определите четкий результат, которого вы хотите достичь
  2. Определите рычаги, которыми вы можете воспользоваться, чтобы повлиять на результат
  3. Подумайте, какие данные вам потребуются для получения результата
  4. Определите модели, которые вы можете построить для достижения результата

7. Как этапы Drivetrain Approach соотносятся с системой рекомендаций?

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

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

8. Создайте модель распознавания изображений, используя выбранные вами данные, и разверните ее в Интернете.

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

9. Что такое DataLoaders?

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

10. Какие четыре вещи нам нужно сказать fastai для создания DataLoaders?

Блок данных — это класс, который используется в Fastai для создания наборов данных и объектов загрузчиков данных. Он должен указать блоки, параметры get_items, splitter и get_y для построения объекта загрузчика данных. Он также может использовать различные комбинации параметров для создания различных типов загрузчиков данных для моделей глубокого обучения.

  1. blocks: устанавливает функции для типа ввода (слева) и вывода (справа).
  2. get_items: задает пути к входным файлам с помощью функции get_image_files.
  3. splitter: устанавливает функцию разделения наборов для обучения и проверки.
  4. get_y: устанавливает функцию меток, которая извлекает метки из набора данных.

11. Что делает параметр splitter для DataBlock?

Разделитель – это параметр класса DataBlock, который используется в Fastai для разделения набора данных на подмножества. Он устанавливает функцию, которая определяет, как разделить набор данных на подмножества обучения и проверки. Он также в основном использует функцию RandomSplitter для случайного разделения данных, но существует девять способов разделения данных.

12. Как мы можем гарантировать, что случайное разделение всегда дает один и тот же набор проверки?

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

13. Какие буквы часто используются для обозначения независимых и зависимых переменных?

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

Зависимая переменная — это переменная, которая используется в машинном обучении для представления прогнозируемого выходного значения. Его значение зависит от независимой переменной, что означает, что оно изменяется только при изменении независимой переменной. Это также обычно обозначается буквой «y» в уравнениях.

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

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

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

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

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

15. Что такое увеличение данных? Зачем это нужно?

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

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

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

17. В чем разница между item_tfms и batch_tfms?

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

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

18. Что такое матрица путаницы?

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

19. Что спасает экспорт?

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

20. Как это называется, когда мы используем модель для прогнозирования вместо обучения?

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

21. Что такое виджеты IPython?

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

22. Когда бы вы использовали ЦП для развертывания? Когда GPU может быть лучше?

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

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

23. Каковы недостатки развертывания вашего приложения на сервере, а не на клиентском (или пограничном) устройстве, таком как телефон или ПК?

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

24. Какие три примера проблем могут возникнуть при развертывании системы предупреждения о медведях на практике?

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

25. Что такое данные вне домена?

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

26. Что такое смена домена?

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

27. Каковы три этапа процесса развертывания?

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

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

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

«Надеемся, эта статья помогла вам получить 👯‍♀️🏆👯‍♀️, не забудьте подписаться, чтобы получать больше контента 🏅»

Следующие шаги:

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

Mac:
01. Install the Fastai Requirements
02. Fastai Course Chapter 1 Q&A
03. Fastai Course Chapter 1
04. Fastai Course Chapter 2 Q&A
05. Fastai Course Chapter 2
06. Fastai Course Chapter 3 Q&A
07. Fastai Course Chapter 3
08. Fastai Course Chapter 4 Q&A

Дополнительные ресурсы:

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

Linux:
01. Install and Manage Multiple Python Versions
02. Install the NVIDIA CUDA Driver, Toolkit, cuDNN, and TensorRT
03. Install the Jupyter Notebook Server
04. Install Virtual Environments in Jupyter Notebook
05. Install the Python Environment for AI and Machine Learning
WSL2:
01. Install Windows Subsystem for Linux 2
02. Install and Manage Multiple Python Versions
03. Install the NVIDIA CUDA Driver, Toolkit, cuDNN, and TensorRT 
04. Install the Jupyter Notebook Server
05. Install Virtual Environments in Jupyter Notebook
06. Install the Python Environment for AI and Machine Learning
07. Install Ubuntu Desktop With a Graphical User Interface (Bonus)
Windows 10:
01. Install and Manage Multiple Python Versions
02. Install the NVIDIA CUDA Driver, Toolkit, cuDNN, and TensorRT
03. Install the Jupyter Notebook Server
04. Install Virtual Environments in Jupyter Notebook
05. Install the Python Environment for AI and Machine Learning
Mac:
01. Install and Manage Multiple Python Versions
02. Install the Jupyter Notebook Server
03. Install Virtual Environments in Jupyter Notebook
04. Install the Python Environment for AI and Machine Learning

Глоссарий:

Контекстные слова – это слова, которые имеют разные значения в зависимости от контекста предложения, например "бегу в магазин" и "убегаю из молока". Текстовой модели может быть трудно различать такие слова в контексте, даже если она выучила все определения.
[Возврат]

Омонимы – это слова, которые пишутся и произносятся одинаково, но имеют разные значения, например "банк", как в слове "финансовое учреждение" и "земля вдоль реки". Текстовой модели может быть сложно отвечать на вопросы и преобразовывать речь в текст, если слова не записаны в текстовой форме.
[Возврат]

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

Сарказм относится к словам, которые по определению могут иметь положительную или отрицательную окраску, но на самом деле подразумевают обратное. Текстовой модели может быть сложно обнаружить сарказм, поскольку для этого требуется понимание контекста ситуации, конкретной темы и среды, на которую ссылаются.
[Возврат]

Двусмысленность относится к предложениям, которые имеют несколько интерпретаций, например: Я видел в бинокль собаку на пляже. Текстовой модели может быть сложно интерпретировать двусмысленность, поскольку некоторые слова сильно зависят от контекста предложения, что делает невозможным определение полярности заранее.
[Возврат]

Искусственный интеллект (AI) – это широкая область компьютерных наук, которая занимается созданием интеллектуальных машин, способных выполнять задачи, для которых обычно требуется человеческий интеллект. Это позволяет машинам имитировать человеческое восприятие, обучение, решение проблем и принятие решений. Сюда также входят такие понятия, как машинное обучение, глубокое обучение и искусственные нейронные сети.
[Возвращение]

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

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

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

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

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

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

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

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

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

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