Обучение строится на данных, которые мы используем, и бывает нескольких типов: ***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. Анализ функции потерь*** Отличие от валидации в том, что данные тестирования нейронка не видела, и фактически результат функции потерь на тестовых данных и будет результатом обучения.