Введение и цели курса 0:07 Курс посвящен разработке нейронной сети на языке программирования C#. Практический интенсив с минимальным количеством теории. Основное внимание уделяется практическому процессу разработки.
Нормализация и масштабирование 1:08 Рассматриваются понятия нормализации и масштабирования. Эти подходы корректируют входные данные. Будут реализованы два алгоритма с разными результатами.
Призыв к подписке и поддержке 2:05 Призыв подписаться на канал и включить уведомления. Рекомендация поставить лайк и посетить группу ВКонтакте и телеграм-канал.
Ссылка на датасет 2:59 В описании под видео есть ссылка на датасет "Болезни сердца". Второй датасет будет использован завтра.
Нормализация и масштабирование 4:47 Нормализация приводит значения к единообразному виду. Масштабирование приводит значения к отрезку от 0 до 1.
Реализация нормализации и масштабирования 9:52 Нормализация выстраивается относительно нуля. Масштабирование выполняется на отрезок от 0 до 1.
Примеры нормализации 11:00 Пример с данными от обучающего датасета. Нормализация выполняется относительно среднего значения.
Применение нормализации 12:32 Нормализация применима к разным типам данных. Преобразование значений для соответствия датасету.
Заключение 14:58 Нормализация требует сопоставления букв и цифр. Пример с ASCII-кодом для сопоставления.
Нормализация входов 15:19 Для нормализации входов нужны формулы. Вычисляется среднее значение признака по всем входам. Используется счетчик по номерам входов и значениям.
Формула среднего значения 16:18 Среднее значение вычисляется по формуле: 1 / n * sum i = 0 to n. Пример: если на вход поступает 578 значений, среднее будет около 10000.
Формула стандартного отклонения 18:57 Стандартное отклонение вычисляется по формуле: sqrt 1 / n * sum i = 0 to n * x_i - mean_i^2. Пример: стандартное отклонение для нейрона равно sqrt 1 / n * sum i = 0 to n * x_i - 10000^2.
Вычисление нового значения нейрона 20:50 Новое значение нейрона вычисляется как x_i - mean_i / std_dev_i. Пример: 10000 преобразуется в 0.0001, -1000 преобразуется в -0.05.
Масштабирование 25:41 Масштабирование выполняется на отрезке от 0 до 1. Вычисляются минимальное и максимальное значения для столбца. Новое значение сигнала вычисляется как x_i - min_i / max_i - min_i.
Программирование 27:06 Входные параметры приводятся к единообразному формату. Минимальное и максимальное значения вычисляются для всех значений одного столбца. Новое значение сигнала вычисляется как x_i - min_i / max_i - min_i.
Заключение 31:54 Масштабирование позволяет значениям принимать значения от 0 до 1. Вопросы и обсуждение приветствуются. Переход к написанию кода.
Введение и подготовка 32:52 Открытие проекта и ссылка на репозиторий на GitHub. Ссылка на датасет для обучения. Начало разработки методов нормализации и масштабирования.
Описание датасета 34:44 Описание двумерных массивов на входе и выходе. Описание столбцов датасета: возраст, пол, медицинские параметры. Описание таргета как результата, который должна предсказать нейронная сеть.
Подготовка данных 37:38 Датасет в виде CSV можно выгрузить из базы данных. Описание ожидаемого результата и входных данных. Подготовка данных для обучения нейронной сети.
Масштабирование данных 41:06 Масштабирование входных данных с помощью Skeleton. Регистрация на Kaggle для скачивания датасетов. Описание одномерного массива входных сигналов.
Алгоритм масштабирования 43:08 Перебор входных сигналов и вычисление минимального и максимального значений. Реализация формулы масштабирования: деление на максимум минус минимум. Улучшение алгоритма для оптимизации вычислений.
Алгоритм нормализации 53:39 Реализация алгоритма нормализации с использованием трех вложенных циклов. Вычисление среднего значения, стандартного отклонения и новых значений. Подстановка значений для вычисления новых значений.
Вычисление среднего значения 56:35 Вычисление среднего значения сигнала нейрона. Использование цикла для вычисления среднего значения. Применение формулы для вычисления среднего значения.
Вычисление стандартного отклонения 58:46 Вычисление стандартного отклонения сигнала нейрона. Использование формулы для вычисления стандартного отклонения. Применение переменной для подсчета ошибки.
Вычисление выходного элемента 1:02:04 Вычисление значения выходного элемента. Использование стандартного отклонения и среднего значения. Применение формулы для вычисления выходного элемента.
Перезапись метода learn 1:04:21 Перезапись метода learn для работы с массивами. Использование двумерного массива для хранения данных. Применение цикла для обработки данных.
Тестирование метода learn 1:12:48 Тестирование метода learn с новыми данными. Проверка корректности передачи данных. Исправление ошибок и тестирование метода.
Работа с датасетом 1:26:20 Чтение данных из файла и их корректное распарсивание. Использование стрима для чтения данных. Преобразование данных в массив даблов.
Подготовка данных для обучения 1:35:44 Подготовка данных для обучения нейронной сети. Проверка корректности данных и их конвертации. Добавление данных в массив для обучения.
Топология и обучаемость 1:42:29 Входные сигналы будут по количеству выходов. Выходной сигнал будет один. Количество нейронов на втором слое будет в половину меньше.
Преобразование данных 1:43:26 Преобразование данных в одномерный массив. Рваный массив получается при преобразовании. Стандартных решений для преобразования нет.
Конвертация данных 1:45:27 Необходим цикл для конвертации. Импульс ноль, точка вн. Присвоение значений и проверка размеров.
Тестирование и датасет 1:48:01 Тестирование двумерного массива. Использование датасета для диагностики заболеваний сердца. Планируется распознавание изображений.
Работа в IT и обучение 1:49:49 Сложно устроиться на работу программистом в 33 года. Обучение программированию требует много времени и усилий. Примеры блогеров, ушедших из программирования.
Проверка нейронной сети 1:51:14 Проверка работы нейронной сети. Использование импульса и ты. Обучение сети на C#, JAVA и Python.
Обучение сети 1:53:59 Запуск обучения сети. Ожидание завершения обучения. Нормализация сигналов при обучении.
Нормализация сигналов 1:57:42 Нормализация входных сигналов. Сохранение значений для нормализации. Использование нормализованных сигналов для корректной работы сети.