6.3 KiB
Обучение строится на данных, которые мы используем, и бывает нескольких типов: 1. Обучение с учителем - мы размечаем данные, т.е к самим данным прикрепляем то, что мы хотим что бы нейросеть нам выдавала. 2. Обучение без учителя 3. Обучение с подкреплением
| Обучение с учителем | Обучение без учитея |
|---|---|
| регрессия | генеративно-состязательная нейросеть (GAN) |
| классификация | |
| сегментация | |
| генерация текста |
Какие задачи можно решать при обучении с учителем?
| Задача регресии | задача классификации |
|---|---|
| на выходе получаем информацию, которая не связана друг с другом, например координаты глаз на картинке [350,290] |
на выходе получаем вероятность пренадлежности к классу, например при классификации кошек и собак [0.01, 0.99], где 0.01 - вероятность что это собака, а 0.99 - что кот |
Этапы обучения
1. Подготовка данных
Данные сначала необходимо преобразовать (обычно имеется ввиду нормализация - преобразование данных к неким безмерным еденицам, диапазон которых задается, например [0;1] или [-1;1] . Фактически до нормализации данные имеют меру, например в датасете в разных колонках содержится информация о длине дороги и градусах ее искривлениях. ). После преобразования идет разбиение датасета на части: 1. Обучение - примерно 80% исходного датасета нормализуется и используется для обучения модели. Далее разбиваем датасет на части - тренировочная и валидационная. На тренировочной учим, на валидационной - проверяем действительно ли учились или делали вид что учились. 2. Тестирование - оставшиеся 20% остаются для тестирования обученной модели. Фактически, размер соотношение Обучения/Тестирования может меняться от датасета к датасету, тут необходимо на личном опыте определить необходимую пропорцию. ПРО ТЕСТОВЫЕ ДАННЫЕ ДО КОНЦА ОБУЧЕНИЯ МЫ ЗАБЫВАЕ М И НЕ ТРОГАЕМ ИХ ВООБЩЕ
2. Построение модели
Фактически необходимо определить количество слоёв модели, а так же написать главные функции.: 1. Функция потерь - она буквлаьно определяет, какую задачу решает нейронная сеть 2. Метод оптимизации градиентного спуска - отвечает за обучение и его скорость.
3. Тренировка модели
1. Тренировка модели - используем часть датасета для обучения (train set) 2. Валидация модели - используем часть датасета для валидации (проверки качества обучения) (val set)
Тренировка это: 1. Подача данных из датасета в модель 2. Подача полученных ответов и реальных ответов в функцию потерь для сравнения 3. Обратное распространение ошибки - узнаём как и на сколько сильно влияет каждый вес на ошибку 4. Корректировка весов
Валидация: 1. Подача валиадционных данных 2. Подача полученных значений и реальных значений в функцию потерь 3. Анализ функции потерь
Эпоха - одна итерация Тренировки и Валидации. Их может быть сколько угодно.
4. Тестирование
1. Подача тестовых данных 2. Подача полученных значений и реальных значений в функцию потерь 3. Анализ функции потерь Отличие от валидации в том, что данные тестирования нейронка не видела, и фактически результат функции потерь на тестовых данных и будет результатом обучения.