PyTorch обучение

Оглавление

1. Подготовка [редактировать]

2. Создание трансформатора данных [редактировать]

3. Создание нейронной сети [редактировать]

4. Работа нейронной сети [редактировать]

5. Создание примитивной нейронной сети [редактировать]

6. Функция потерь и обучение нейронной сети [редактировать]

7. Оптимизация и обучение нейронной сети [редактировать]

8. Обучение нейронной сети [редактировать]

9. Влияние выбора функции активации [редактировать]

10. Вычисление и тестирование [редактировать]

11. Динамическое структурирование нейронной сети [редактировать]

12. Обучение с подкреплением [редактировать]

13. Линейность в пространстве весов [редактировать]

14. Нормализация и предобученная модель [редактировать]

15. Использование видеокарты и ускорение обучения [редактировать]

16. Автоэмли библиотеки и цифры [редактировать]

17. Компьютерное зрение [редактировать]

18. Визуализация предсказаний модели [редактировать]

19. Обучение и проверка нейронной сети [редактировать]

20. Результаты обучения и выводы [редактировать]

21. Влияние драпаутов на обучение [редактировать]

22. Применение временных рядов [редактировать]

23. Выбор всех пяти из текста [редактировать]

24. Сравнение с другими фреймворками [редактировать]

 

 

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

Для начала работы с PyTorch вам нужно установить его на ваш компьютер. Вы можете скачать его с официального сайта PyTorch или использовать пакетный менеджер pip для установки.

После установки вы можете начать изучать PyTorch, используя наш Курс Основы Python.

  • 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++, но это не было проверено.