Прикладная математика и нейросеть: зачем столько предметов
Прикладная математика и нейросеть связаны через данные, оптимизацию и проверку модели. Как увидеть смысл дисциплин в учебном плане и проверить свою готовность.
А
Андрей
Преподаватель, научный редактор
6 мин чтения
«Если я хочу заниматься нейросетями, зачем мне столько вероятности и линейной алгебры?» Я не начинаю ответ со слова «надо». Прикладная математика и нейросеть связываются через действия: представить данные, выбрать меру ошибки, изменить параметры и проверить результат. Пока студент видит только названия дисциплин, учебный план кажется длинным обходным путём к нужной кнопке.
Я предложил разобрать один маленький проект: предсказывать числовой результат по двум измеренным признакам. Не создавать огромную модель и не выбирать университет по красивому описанию. Сначала понять, какие вопросы задаст даже такая задача. Тогда станет видно, почему несколько математических предметов нужны одновременно и почему знание одного языка программирования не закрывает остальные вопросы.
Прикладная математика и нейросеть в настоящем учебном плане
У сочетания этих слов есть образовательный смысл. В ТГУ представлена программа «Прикладная математика ИИ», где обучение связывают с анализом данных, построением и проверкой моделей. На странице трека МИСИС «Прикладная математика в интеллектуальных системах» перечислены, например, байесовские методы, прогнозирование временных рядов и графовые нейронные сети. Я сверил эти описания: речь идёт о подготовке к работе с моделями, а не об умении просить чат решить домашнее задание.
Названия программ сами по себе ещё не дают личного маршрута. Один абитуриент уже пишет код, но не понимает, что значит производная функции нескольких переменных. Другой уверенно считает на бумаге и впервые открывает среду программирования. Им предстоят разные первые трудности при одинаковом списке предметов.
Я читаю план через вопрос «что я смогу объяснить после этой темы». Слово «нейросеть» в названии курса ничего не гарантирует. Полезнее увидеть задание, где студент обосновывает выбор модели, находит ошибку в расчёте или сравнивает способы проверки. Именно в этой работе математическая тема получает назначение.
К одному заданию я приписываю три контрольных вопроса:
Чем можно проверить найденное, кроме совпадения с готовым ответом?
Четыре раздела, которые отвечают за разные ошибки
Я поставил рядом четыре дисциплины, чтобы увидеть разные ошибки одной модели. Таблица не заменяет учебный план и не объявляет все остальные предметы лишними. Она связывает знакомые названия с ближайшим действием.
Раздел · Что он помогает сделать · Какой вопрос задать себе
Линейная алгебра — Представить признаки и преобразования векторами и матрицами — Согласованы ли размерности входа и параметров?
Анализ и оптимизация — Разобрать изменение функции потерь и поиск параметров — В каком направлении меняется ошибка?
Вероятность и статистика — Учесть случайность выборки и оценивать результат по данным — На каких наблюдениях основан вывод?
Численные методы — Выполнить вычисление с конечной точностью — Не потерялся ли результат из-за способа счёта?
Я раньше видел, как эту таблицу превращают в четыре независимых списка формул. Пользы мало. В проекте вопросы встречаются рядом: массив может иметь нужную форму, а оценка модели всё равно оказаться ненадёжной из-за способа отбора данных. Исправление размерностей не исправит выборку.
И наоборот. Хорошо собранные данные не помогут, если программа складывает несопоставимые величины или ищет минимум другой функции. Поэтому я прошу к каждому предмету придумать не только удачный пример, но и характерную ошибку. Так становится понятнее, зачем возвращаться к теории после запуска кода.
Проверка на листе: три объекта, два признака
Пусть у нас 3 объекта и у каждого по 2 числовых признака. Если объекты записаны строками, получается таблица размера 3×2. Для одного линейного числового выхода на объект возьмём столбец из двух коэффициентов: 2×1. Их произведение имеет размер 3×1. Три объекта, три результата. Я посчитал только размерности, ещё не выбрал сами числа.
Здесь можно поймать ошибку раньше компьютера. Если вместо двух коэффициентов записать три, привычное умножение матриц в этой записи уже не определено. Значит, вопрос не в том, какую библиотеку установить, а в том, что обозначает каждая ось. Я проверил этот пример именно как преподаватель: могу ли объяснить форму результата словами, а не только произнести правило умножения.
Нейронная сеть сложнее одного линейного преобразования, но вопрос о форме данных никуда не исчезает. Внутри следующего слоя выход предыдущего должен стать подходящим входом. Если студент умеет проследить размерности на маленьком примере, читать код слоя будет легче. Если нет, даже рабочий пример из учебника можно скопировать и не понять.
Для своей проверки я прошу сделать три вещи:
Подписать, где объекты, а где признаки.
Сказать, сколько результатов должно получиться и почему.
Изменить число объектов, сохранив число признаков, и снова определить форму выхода.
Последний пункт проверяет понимание. Коэффициенты для признаков не обязаны становиться длиннее только потому, что объектов стало больше. Если рука тянется дописать ещё веса каждому новому объекту, стоит вернуться к смыслу параметров.
Где в этой задаче появятся анализ и статистика?
Для обучения мало получить три числа. Нужен способ сравнить их с целевыми значениями. Функция потерь задаёт числовую оценку расхождения, а производные помогают понять влияние параметров на эту оценку. Это объясняет место анализа и оптимизации. Но маленькая ошибка на выбранных примерах ещё не сообщает, как модель поведёт себя на других.
Тут начинается отдельный разговор о данных. Как выбрали объекты? Не попал ли один и тот же случай в настройку и проверку? Представляют ли проверочные наблюдения будущую задачу? Я не позволяю слову «точность» оставаться без пояснения: что считали, на каком наборе и по какому правилу. Вероятность и статистика нужны, в частности, чтобы аккуратно обсуждать такие выводы.
Численный расчёт тоже отличается от символической записи. Машина хранит числа с конечной точностью. Поэтому красивое преобразование формулы и удобный способ вычислить её не всегда одно и то же. На первом знакомстве достаточно заметить эту разницу. Детальный анализ устойчивости относится к отдельной учебной работе, а не к списку советов перед запуском нейросети.
Как учиться с чатом и не перепрыгивать через предмет
Для LibraChat я предлагаю короткое задание по одной связи из карты:
В моём учебном плане есть [название темы]. Покажи, какую операцию при построении модели эта тема помогает понять. Возьми маленький пример, подпиши обозначения и предложи одну задачу для самостоятельной проверки. Не подменяй объяснение готовым кодом. Если приводишь расчёт, отдельно укажи, какой шаг мне проверить по учебнику.
Я попробовал сначала сформулировать такой вопрос сам и заметил полезный эффект: пришлось назвать собственный пробел. «Не понимаю нейросети» сменилось на «не понимаю, почему результат умножения имеет три строки». Второй вопрос можно разобрать за одно занятие. Первый почти неизбежно приносит длинный общий рассказ.
Если нужно именно проверить решение интеграла или предела, это другая задача; она разобрана в статье про нейросеть для высшей математики. Здесь мой следующий шаг иной: беру одну дисциплину из плана и дописываю рядом действие, которое хочу научиться объяснять. Попробуй сделать то же до нового списка курсов. Режимы доступа к продукту можно посмотреть в тарифах, а маршрут учёбы стоит начинать с названного вопроса, который пока не получается решить самому.