Гайд по PyTorch
3 нейросети за 60 минут
PyTorch — это довольно низкоуровневая библиотека по созданию нейросетей, где мы можем управлять созданием слоев, даже непосредственно тензорами и расчётом градиентного спуска.
00:00:00
Создание нейронной сети
• Создание копии нейронной сети с ключом для демонстрации.
• Установка библиотек для работы с данными и нейронными сетями.
00:02:41
Создание трансформатора данных
• Создание трансформатора данных для подготовки данных.
• Нормализация данных и создание дата лоудера для загрузки данных.
00:06:02
Создание нейронной сети
• Создание линейного слоя нейронной сети с 756 входными нейронами, 128 выходными нейронами и 10 выходными нейронами.
• Определение активационных функций для каждого слоя.
00:09:06
Работа нейронной сети
• Демонстрация работы нейронной сети на примере распознавания рукописных цифр.
• Подсчет количества параметров в нейронной сети.
00:11:02
Создание нейронной сети
• Создание примитивной нейронной сети на Python с использованием слоев и активационных функций.
• Обсуждение важности понимания принципов работы нейронных сетей и использования специальных инструментов для обучения и оптимизации.
00:15:42
Функция потерь и обучение нейронной сети
• Объяснение алгоритма обратного распространения ошибки для обучения нейронной сети.
• Обсуждение различных методов ошибок и оптимизаторов для обучения нейронных сетей.
00:18:18
Оптимизация и обучение нейронной сети
• Обсуждение различных оптимизаторов для обучения нейронных сетей, таких как Adam и другие.
• Объяснение процесса обучения нейронной сети, включая выбор шага обучения и его изменение в процессе обучения.
00:22:20
Обучение нейронной сети
• В видео объясняется процесс обучения нейронной сети с использованием градиента.
• Обучение происходит в рамках одной эпохи, где моделька обучается на всех данных перед обучением.
• Оптимизатор обнуляется, и моделька обучается в режиме обучения.
• Ошибка между ответом нейронки и правильными ответами рассчитывается и распространяется назад для обучения весов.
00:28:22
Влияние выбора функции активации
• Ступенчатая функция не мешает градиенту, и расчеты градиентов могут быть выполнены даже для недифференцированных функций.
00:29:04
Вычисление и тестирование
• Моделька и тестовый лоудер проверяются на тестовой выборке.
• Градиенты отключаются, и ответы нейронки сравниваются с правильными ответами.
• Точность нейронки составляет 97,47%.
00:31:20
Динамическое структурирование нейронной сети
• В Keras нейронка жестко прошита, в то время как в Torch можно динамически менять слои.
• Это позволяет более гибко управлять графом нейронки и обучением.
00:33:08
Обучение с подкреплением
• Обучение с подкреплением может иметь преимущество, но это зависит от конкретного проекта.
• В видео также обсуждается нелинейность и визуализация предсказаний модели.
00:34:56
Линейность в пространстве весов
• В пространстве весов функция становится нелинейной, когда есть два слоя.
• В пространстве данных функция остается линейной, так как данные не меняются.
00:42:19
Нормализация и предобученная модель
• Нормализация используется для предобученной модели, которая принимает картинки размера 224x224.
• Модель обучена на огромном датасете, и веса уже установлены.
00:45:11
Использование видеокарты и ускорение обучения
• Если есть видеокарта, обучение на ней будет быстрее, чем на процессоре.
• Ускорение может быть от 5 до 50 раз.
00:48:05
Автоэмли библиотеки и цифры
• Авто ML библиотеки существуют для Пайторч, но автор не может назвать конкретные.
• Цифры, которые умножаются, изначально задаются случайными, а затем оптимизируются в процессе обучения.
00:49:57
Создание нейронной сети
• Создание нейронной сети для классификации изображений с использованием Keras.
• Обучение сети на 25 эпох с использованием функции обучения Adam.
• Визуализация результатов обучения и оценка точности.
00:53:27
Визуализация предсказаний модели
• Создание линейной сети с 2024, 512, 256, 128, 64 и 32 нейронами.
• Использование активационных функций и dropout для предотвращения переобучения.
• Обучение модели на 200 эпох с использованием функции средней квадратичной ошибки.
00:57:29
Обучение и проверка нейронной сети
• Обучение модели на проверочных выборках для определения момента остановки обучения.
• Остановка обучения, если в течение 20 эпох точность не улучшается.
• Обучение нейронной сети на 200 эпох и остановка на 141 эпохе.
01:00:11
Результаты обучения и выводы
• Средняя цена квартиры, предсказанная нейронной сетью, составляет 8 900 000 рублей.
• Средняя ошибка составляет 10,85%.
• Нейронная сеть показывает точность 400 000 отброса, что в 2,5 раза ниже, чем у реальной цены.
01:03:38
Влияние драпаутов на обучение
• Обсуждение влияния драпаутов на обучение, включая отбрасывание несущественных признаков и изменение корреляции нейронов.
• Упоминается, что драпауты могут привести к тому, что нейросети начинают подхватывать себя и обучаться признакам.
01:05:39
Применение временных рядов
• Утверждается, что временные ряды могут быть обучены с помощью нейросетей, таких как пайторч и керос.
• Отмечается, что архитектура нейросети играет важную роль в обучении временных рядов.
01:08:17
Выбор всех пяти из текста
• Обсуждается задача выбора всех пяти из текста, которая может быть решена с помощью нейросети.
• Упоминается, что это другая задача, чем обучение нейросети.
01:09:30
Сравнение с другими фреймворками
• Сравниваются пайторч и керос, и утверждается, что пайторч используется чаще в реальных проектах.
• Упоминается, что пайторч может быть написан на языке программирования C++, но это не было проверено.
Программирование на python
884 поста11.9K подписчика
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу