📊 Определение возраста покупателей
🧭 Что такое проект
Поздравляем! 🎉
Вы успешно прошли курс в тренажёре. Самое время проверить знания и решить новую задачу. Выполнять работу будете самостоятельно.
Когда закончите, отправьте её на проверку ревьюеру: он пришлёт комментарии в течение суток. После этого нужно доработать проект и пройти повторную проверку.
Скорее всего, вы будете дорабатывать кейс по комментариям ещё несколько раз. Это нормально.
Проект завершён, когда ревьюер одобрит все доработки.
📌 Описание проекта
Сетевой супермаркет «Хлеб-Соль» внедряет систему компьютерного зрения для обработки фотографий покупателей. Фотофиксация в прикассовой зоне поможет определять возраст клиентов, чтобы:
- Анализировать покупки и предлагать товары, которые могут заинтересовать покупателей этой возрастной группы;
- Контролировать добросовестность кассиров при продаже алкоголя.
Постройте модель, которая по фотографии определит приблизительный возраст человека. В вашем распоряжении набор фотографий людей с указанием возраста.
📋 Инструкция по выполнению проекта
- Проведите исследовательский анализ набора фотографий.
- Подготовьте данные к обучению.
- Обучите нейронную сеть и рассчитайте её качество.
🔬 Исследовательский анализ данных
Ознакомьтесь с инструкцией по выполнению проекта.
Вашей метрикой качества будет MAE.
План выполнения проекта:
- В этом уроке проведите исследовательский анализ набора данных в Jupyter. Затем скачайте свою тетрадь Jupyter Notebook.
- В 4-м уроке обучите модель в GPU-тренажёре и сохраните результат вывода модели на экран.
- В 5-м уроке объедините в финальной тетради Jupyter Notebook исследовательский анализ данных, код и вывод модели. Затем проанализируйте результат обучения модели.
📁 Описание данных
Данные взяты с сайта ChaLearn Looking at People. Они находятся в папке /datasets/faces/.
В вашем распоряжении одна папка со всеми изображениями (/final_files) и CSV-файл labels.csv с двумя колонками: file_name и real_age.
Извлечь данные из папки вам поможет новый метод ImageDataGenerator — flow_from_dataframe(dataframe, directory, ...).
Задание 1
Проведите исследовательский анализ данных:
- Посмотрите на размер выборки.
- Постройте график распределения возраста в выборке.
- Напечатайте на экране 10–15 фотографий и посмотрите, как устроен датасет.
Сделайте выводы о том, как результаты исследования повлияют на обучение модели.
🤖 Обучение модели
Обучите модель в GPU-тренажёре и сохраните результат вывода модели на экран.
Но прежде ознакомьтесь с несколькими рекомендациями:
- Функцией потерь не обязательно должна быть MAE. Зачастую нейронные сети с функцией потерь MSE обучаются быстрее.
- Качество на валидационной выборке улучшается, но модель при этом переобучается всё сильнее? Не спешите менять модель. Обычно нейронные сети с большим числом слоёв сильно переобучаются.
Чтобы выполнить задание, перейдите на курс «Компьютерное зрение — практика обучения нейронных сетей», выберите тему «Самостоятельный проект», а в теме — урок «Обучение модели».
✅ Как будут проверять проект?
Мы подготовили критерии оценки проекта, которыми руководствуются ревьюеры. Прежде чем приступить к решению кейса, внимательно их изучите.
На что обращают внимание ревьюеры, проверяя проект:
| Аспект | Комментарий |
|---|---|
| 📋 Выполнение инструкции | Все ли шаги по инструкции выполняете? |
| 📊 Исследовательский анализ данных | Как проводите исследовательский анализ данных? |
| 🔧 Подготовка данных | Как готовите данные к обучению? |
| 🧠 Нейронные сети | Какие нейронные сети рассматриваете? |
| 💬 Выводы | Какие выводы делаете? |
| 📐 Структура проекта | Следите ли за структурой проекта? Поддерживаете аккуратность кода? |
🧠 Всё, что вам нужно знать, есть в шпаргалках и конспектах прошлых тем.