Обучение нейронной сети
Что такое искусственный интеллект
Искусственный интеллект в бизнесе используют для разных задач. У этой технологии нет жестких ограничений, поэтому разработчики могут реализовать любую функциональность. Главное — организовать процессы обучения и контроля результатов. В 2024 году ИИ внедряют в промышленность, банковскую сферу, компьютерные игры, образование, медицину и т.д.
Этот метод в применении к глубоким сверточным сетям почти всегда успешно достигает своей цели — ускорить обучение. Более того, он может служить отличным регуляризатором, позволяя не так осмотрительно выбирать темп обучения, мощность регуляризатора и dropout (иногда необходимость в них совсем отпадает). Регуляризация здесь — следствие того факта, что результат работы сети для определенного примера больше не детерминировано (он зависит от всего батча, в рамках которого данный результат получен), что упрощает обобщение [4].
Батч-нормализация — метод ускорения глубокого обучения, предложенный Ioffe и Szegedy в начале 2015 года, уже процитированный на arXiv 560 раз [3]. Метод решает следующую проблему, препятствующую эффективному обучению нейронных сетей: по мере распространения сигнала по сети, даже если он нормализован на входе, пройдя через внутренние слои, он может сильно исказиться как по математическому ожиданию, так и по дисперсии (данное явление называется внутренним ковариационным сдвигом), что чревато серьезными несоответствиями между градиентами на различных уровнях. Поэтому нам приходится использовать более сильные регуляризаторы, замедляя тем самым темп обучения.
Стоит отметить, что обучение нейронной сети должно осуществляться постоянно, а не только при создании ИИ и добавлении новых функций. В ходе работы искусственный интеллект продолжает настраиваться, но уже без контроля AI-тренера, из-за чего через какое-то время может снизиться качество ответов. К примеру, ChatGPT ненадолго «разучился» определять простые числа.
Противоположное такому явлению – переобучение. Его суть состоит в том, что вероятность ошибки натренированного алгоритма на объектах Тренировочной выборки оказывается существенно меньше, чем на объектах тестовой. Зачастую переобучение появляется из-за использования слишком сложных моделей, либо наборов данных, в которых вхождения похожи друг на друга.
Где β и γ — параметры батч-нормализации, которым системы можно обучить (их можно оптимизировать методом градиентного спуска на обучающих данных). Это обобщение также означает, что батч-нормализацию может быть полезно применять непосредственно к входным данным нейронной сети [4].
Обучение сетей обычно начинается с малых случайных значений весов. Пока значения весов малы по сравнением с характерным масштабом нелинейной функции активации (обычно принимаемом равным единице), вся сеть представляет из себя суперпозицию линейных преобразований, т.е. является также линейным преобразованием с эффективным числом параметров равным числу входов, умноженному на число выходов. По мере возрастания весов и степень нелинейности, а вместе с ней и эффективное число параметров возрастает, пока не сравняется с общим числом весов в сети [6].
Аннотация: В настоящее время искусственные нейронные сети применяются в различных областях науки. Однако, при обучении нейросетей нередко возникает множество проблем, ухудшающих точность найденного системой решения. Одной из таких проблем является переобучение – явление, когда построенная модель хорошо объясняет примеры из обучающей выборки, но относительно плохо работает на примерах, не участвовавших в обучении. В рамках данной статьи рассматриваются основные методы борьбы с переобучением искусственных нейронных сетей.
Ранняя остановка
Данная методика привлекательна своей простотой. Но она имеет и свои слабые стороны: слишком большая сеть будет останавливать свое обучение на ранних стадиях, когда нелинейности еще не успели проявиться в полную силу. Т.е. эта методика чревата нахождением слабо-нелинейных решений [6]. На поиск сильно нелинейных решений нацелен метод прореживания весов, который, в отличае от предыдущего, эффективно подавляет именно малые значения весов.
У моделей искусственного интеллекта сложна архитектура, которая состоит из множества элементов, настраивающихся в автоматическом режиме. Есть разные подходы, как обучить ИИ выполнять определенную задачу. Один из вариантов — предоставить обработанные данные (например, чертежи с прописанными площадями), а затем дать нейросети задачу самому указать площади в «сырых» чертежах.
Специфика нейронных сетей заключается в том, что они используются для решения интеллектуальных и сложных задач, для которых нет единственно верного ответа. Из-за этого программист не может просто заложить определенный механизм действий. Вместо этого ИИ-разработчики занялись обучением нейронной сети, во время которого компьютер получает данные (обработанные или нет) и на их основе пытается решить поставленную задачу.
С технической точки зрения обучение нейросетей — процесс определения оптимальных значений параметров ИИ, минимизирующий ошибки на обучающих датасетах. Это достигается путем снижения функции потерь, которая вычисляет разницу между верными результатами и ответами ИИ
Переобучение (overfitting) — одна из проблем глубоких нейронных сетей (Deep Neural Networks, DNN). Суть данной проблемы состоит в следующем: модель хорошо объясняет только примеры из обучающей выборки, адаптируясь к обучающим примерам, вместо того чтобы учиться классифицировать примеры, не участвовавшие в обучении (теряя способность к обобщению).
Одна интересная особенность нейронных сетей, которую можно заметить, когда они используются для распределения данных на более чем два класса — это то, что при различных начальных условиях обучения им легче дается распределение по одним классам, в то время как другие приходят в замешательство [5]. На примере MNIST можно обнаружить, что отдельно взятая нейронная сеть прекрасно умеет отличать тройки от пятерок, но не учится правильно отделять единицы от семерок, в то время как дела с другой сетью обстоят, наоборот.
Недообучение возникает при обучении по прецедентам и характеризуется тем, что алгоритм обучения нейросети не дает удовлетворительно малой средней ошибки на обучающем множестве. Как правило, это явление появляется вследствие использования недостаточно сложных моделей [2].
Чтобы помочь сети не утратить способности к обобщению при переобучении, вводятся приемы регуляризации: вместо сокращения количества параметров, накладываются ограничения на параметры модели во время обучения, не позволяя нейронам изучать шум обучающих данных [7].