Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Математические и программные методы построения моделей глубокого обучения

Покупка
Основная коллекция
Артикул: 814830.01.99
Показана разработка и аналитика прикладных моделей глубокого обучения, применяемых в высоконагруженных интеллектуальных системах промышленного уровня. Изучение математических архитектур моделей глубокого обучения позволит не только разрабатывать, но и внедрять разработанные решения без помощи сторонних программных библиотек, что увеличивает быстродействие всего программного решения в целом. Для студентов и сотрудников высших технических учебных заведений, а также специалистов прикладной сферы анализа данных.
Математические и программные методы построения моделей глубокого обучения : учебное пособие / А. В. Протодьяконов, А. В. Дягилева, П. А. Пылов, Р. В. Майтак. - Москва ; Вологда : Инфра-Инженерия, 2023. - 176 с. - ISBN 978-5-9729-1484-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2094440 (дата обращения: 03.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МАТЕМАТИЧЕСКИЕ И ПРОГРАММНЫЕ МЕТОДЫ ПОСТРОЕНИЯ МОДЕЛЕЙ ГЛУБОКОГО ОБУЧЕНИЯ

Учебное пособие



















Москва Вологда « Инфра-Инженерия» 2023

УДК 004.89
ББК 32.813 М34


Авторы:

Протодьяконов А. В., Дягилева А. В., Пылов П. А., Майтак Р. В.


Рецензенты:
доктор технических наук, профессор, академик РЭА, ведущий научный сотрудник АО «НЦ ВостНИИ» Вадим Васильевич Иванов;
доктор технических наук, профессор кафедры математики Кузбасского государственного технического университета имени Т. Ф. Горбачева Инна Алексеевна Ермакова



М34 Математические и программные методы построения моделей глубокого обучения : учебное пособие / [Протодьяконов А. В. и др.]. -Москва ; Вологда : Инфра-Инженерия, 2023. - 176 с. : ил.
           ISBN 978-5-9729-1484-5


            Показана разработка и аналитика прикладных моделей глубокого обучения, применяемых в высоконагруженных интеллектуальных системах промышленного уровня. Изучение математических архитектур моделей глубокого обучения позволит не только разрабатывать, но и внедрять разработанные решения без помощи сторонних программных библиотек, что увеличивает быстродействие всего программного решения в целом.
            Для студентов и сотрудников высших технических учебных заведений, а также специалистов прикладной сферы анализа данных.


УДК 004.89

ББК 32.813














ISBN 978-5-9729-1484-5

    © Издательство «Инфра-Инженерия», 2023
    © Оформление. Издательство «Инфра-Инженерия», 2023

    ОГЛАВЛЕНИЕ


ГЛАВА 1. МАТЕМАТИЧЕСКАЯ ТЕОРИЯ ОБУЧЕНИЯ МОДЕЛЕЙ ПРИКЛАДНОГО ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
ПО ПРЕЦЕДЕНТАМ..................................................4
1.1. Метод наименьших квадратов с итеративным пересчётом весов..4
1.2. Алгоритм AdaBoost..........................................8
1.3. Метод линейного дискриминанта Фишера......................12
1.4. Алгоритм монотонной коррекции.............................18
1.5. Метод релевантных векторов................................22
1.6. Метод радиальных базисных функций.........................24
1.7. Метод опорных векторов для линейно неразделимой выборки...28
1.8. Алгоритм INCAS............................................31
1.9. Метод прогнозирования формы множества.....................34
1.10. Метод бустинга...........................................36
1.11. Метод бэггинга...........................................38
1.12. Метод потенциального бустинга............................41
1.13. Метод на основе функции ядра.............................43
1.14. Алгоритм Мак-Каллока - Питтса..........................47
1.15. Алгоритм персептрона...................................49
1.16. Метод прореживания двухслойной нейронной сети............61
1.17. Алгоритм нейронной сети Кохонена.........................64
1.18. Базовый интеллектуальный метод в нейрокриптографии.......66
ГЛАВА 2. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ И ОБУЧЕНИЕ МОДЕЛЕЙ
ГЛУБОКОГО ОБУЧЕНИЯ НА ПРЕЦЕДЕНТАХ..............................72
2.1. Метод наименьших квадратов с итеративным пересчётом весов.72
2.2. Алгоритм AdaBoost.........................................77
2.3. Метод линейного дискриминанта Фишера......................86
2.4. Алгоритм монотонной коррекции.............................92
2.5. Метод релевантных векторов................................96
2.6. Метод радиальных базисных функций........................102
2.7. Метод опорных векторов для линейно неразделимой выборки.107
2.8. Алгоритм INCAS...........................................113
2.9. Метод прогнозирования формы множества....................117
2.10. Метод бустинга..........................................123
2.11. Метод бэггинга..........................................127
2.12. Метод потенциального бустинга...........................131
2.13. Метод на основе функции ядра............................135
2.14. Алгоритм Мак Каллока - Питтса...........................141
2.15. Алгоритм персептрона....................................146
2.16. Метод прореживания двухслойной нейронной сети...........153
2.17. Алгоритм нейронной сети Кохонена........................158
2.18. Базовый интеллектуальный метод в нейрокриптографии......166
БИБЛИОГРАФИЧЕСКИЙ СПИСОК......................................172

3

ГЛАВА 1


МАТЕМАТИЧЕСКАЯ ТЕОРИЯ ОБУЧЕНИЯ МОДЕЛЕЙ ПРИКЛАДНОГО ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
ПО ПРЕЦЕДЕНТАМ

1.1. Метод наименьших квадратов с итеративным пересчётом весов

     Метод наименьших квадратов с итеративным пересчетом весов (от английского «Iterative Reweighted Least Squares» или сокращенно «IRLS») - это представитель класса предсказательных моделей [1].
     Предсказательная модель - это параметрическое семейство функций (1).

А = {д(х, 0)|0 е ©},                  (1)

где д\ X X © ^ Y — фиксированная функция, 0 — множество допустимых значений параметра 0.
     Функция А (1) должна хорошо аппроксимировать все точки дискетных значений (данных), позволяя тем самым получить значение целевой функции для прогнозируемого значения экземпляра данных х.
     Для того, чтобы построить предсказательную модель вводится параметрическая функция д (1), которая зависит от объекта х и неизвестного вектора параметров 0.
     При этом ставится задача детерминирования в параметрическом семействе функций А такое отображение А: X, которое позволит решить прикладную задачу с наибольшим аппроксимирующим эффектом.
     Таким образом, значительно сужается пространство поиска решения: необходимо найти не какую-то неизвестную функцию, зависящую от х, а детерминируем функцию в рамках параметрического семейства функций (1). Параметрическое семейство - это способ задания функции, который учитывает ввод некоторой дополнительной информации о том, каким образом следует задать искомую функциональную зависимость.
     Кроме аппроксимирующей функции существует ещё одна важная концепция в машинном обучении, которая называется минимизацией эмпирического риска (2).

p(Xl) = argminₐ е AQ(a, X¹),             (2)

где Xl — это выборка, длина вариационного ряда которой составляет I.
     Формула (2) означает, что вводится функционал, зависящий от выборки и от элементов параметрического семейства функции А. Далее необходимо найти

4

такой а из этого семейства, чтобы функционал Q достигал своего минимального значения, то есть имел минимальный риск.
     Конструкция (2) лежит в основе очень многих методов обучения ц. Одним из частных случаев конструкции является метод наименьших квадратов (3).

1(Хг) = argming 'ZteitgC.Xi, в) - у^².          (3)

     В формуле (3) функционал минимизации был заменен квадратичной функцией потерь, которая является типичной для задачи регрессии (прогнозирования).
     Метод наименьших квадратов (3) предполагает поиск такого экземпляра (вектор коэффициентов в), чтобы была минимизирована сумма квадратов отклонений модельных ответов от истинных (правильных) ответов yₜ.
     Конкатенация метода минимизации эмпирического риска и аппроксимации целевой функции (на которой основана модель машинного обучения) полиномом называется методом наименьших квадратов с итеративным пересчетом весов. Частным прикладным случаем решения этой задачи является полиномиальная регрессия, для которой в качестве оптимизационного критерия был выбран метод наименьших квадратов [1].
     Модель полиномиальной регрессии может быть обобщенно представлена в виде (4).

а(х, в) = в₀ + в₁х + —+ впхп.                (4)

     Формула (4) описывает полином степени n. Количество полных общих слагаемых полинома будет напрямую зависеть от степени полинома и составляет значение n + 1, так как в формуле присутствует свободный член.
     Обучение полиномиальной регрессии по методу оптимизации наименьшими квадратами в обобщенном виде может быть представлено в виде формулы (5).

         Q(e,X¹) = Й=1(во + в1Х; + - + впхр - у,)² ^ rninSₒ вп.   (5)

     Рассмотрим (рисунки 1-4), что происходит с обучающей и контрольной выборкой при увеличении степени полинома n (при обучении и тестировании модели по формуле (5)).
     Из рисунка 1 следует, что приближение к функции данных (обозначена красным цветом на графике) сейчас достигается не очень прецизионным образом.
     Увеличим степень сложности до значения 3 (то есть в аппроксимирующей функции будет уже три слагаемых в соответствующих индексов от 0 до 2). Результат приближения представлен на рисунке 2.


5

Рисунок 1 - Поведение целевых (прогнозных) значений на обучающей и контрольной выборке (при количественном значении 6 = 1)

Рисунок 2 - Поведение целевых (прогнозных) значений на обучающей и контрольной выборке (при количественном значении 6 = 3)

     Приближение аппроксимации становится всё ближе к истинным данным, но пока что это ещё слабо заметно на выборке.

6

     Увеличив степень полинома до значения в 23, начинаем наблюдать практически точное описывание данных (рисунок 3).


Рисунок 3 - Поведение целевых (прогнозных) значений на обучающей и контрольной выборке (при количественном значении в = 23)

      Отметим, что увеличение степени полинома до бесконечности не приведет к лучшим результатам. Наиболее верным доказательством этих слов будет рисунок 4, на котором степень приобретает показатель 37.


Рисунок 4 - Переобучение алгоритма при количественном значении в = 37

7

     На рисунке 4 представлен эффект переобучения - когда модель начинает искать несуществующие зависимости в данных и становится всё больше и больше отклоняться от истинных значений.
     Таким образом, для того чтобы наиболее точно описывать исследуемые данные, необходимо постоянно следить за точностью разрабатываемой модели машинного обучения, отслеживая любые негативные отклонения от высокого значения [1].

    1.2. Алгоритм AdaBoost

Общие сведения об алгоритме AdaBoost

     В последние десятилетия в области информационных технологий сформировался мощный инструмент прогноза - машинное обучение, в основе которого лежит использование больших массивов данных.
     Своё название данный инструмент получил за возможность обучения компьютерных технологий без явного вмешательства человека и его способности создавать новый программный код. В качестве основы машинного обучения выступают уже ранее созданные алгоритмы анализа данных, с помощью которых можно смоделировать или спрогнозировать какой-либо исход или результат для определённо заданных критериев.
     Дословно с английского языка понятие бустинг (англ. boosting) означает увеличение, соответственно, применительно к машинному обучению, бустинг будет представлять собой алгоритм по увеличению эффективности процессов анализа и прогнозирования других алгоритмов.
     Принцип действия бустинга довольно прост: алгоритмы с низкой эффективностью, их ещё называют «слабые алгоритмы», на каждой новой итерации объединяются в комбинации. В результате таких объединений, каждая вновь сформированная комбинация алгоритмов обучается, а вследствие и повышает свою эффективность, на основе полученных данных об ошибках на предыдущих итерациях [1].
     Одним из первых видов бустингов, был создан ещё в 1995 году, является адаптивный бустинг или AdaBoost. Как и другие виды бустинга Adaptive Boosting представляет собой алгоритм, суть которого заключается в построении композиции из базовых алгоритмов для повышения их эффективности [2]. Отличительная сторона AdaBoost заключается в распределении весовых коэффициентов, которые изначально присваиваются одинаковыми каждому объекту данных, в рамках этого алгоритма. Далее, на следующих итерациях, коэффициенты автоматически корректируются, неверно классифицированным элементам присваивается уже больший вес. Данный процесс аналогично повторяется до момента, когда не будет устранена критическая ошибка или разница между прогнозируемыми и фактическими значениями не достигнет интервала допустимых значений.


8

     Основными достоинства алгоритма AdaBoost являются:
     -  простота принципа работы и реализации алгоритма;
     -       гибкость и универсальность. AdaBoost можно комбинировать практически с любим алгоритмом машинного обучения. Помимо этого, алгоритм способен работать как с числовым, так и текстовым набором данных;
     -  обширная область применения;
     -  минимальная потребность в ресурсных и временных затратах;
     -       способность определять объекты, которые могут являться шумовыми помехами.
     К главным недостаткам алгоритма AdaBoost относятся:
     -  обучающие выборки должны обладать обширной размерностью;
     -       возможность начала процесса переобучения в случае, если шумовые помехи не были распознаны или вовремя устранены;
     -       вероятность построения обширных композиций из базовых алгоритмов, что может вызвать потребность в наличие большого объема свободной памяти [3].
     Несмотря на то, что AdaBoost является одним из первых, созданных бу-стингов, благодаря своей простоте и обширной области применения он до сих пор остаётся популярным и востребованным у ИТ-специалистов во всем мире. Данный алгоритм можно использовать для любых данных, которые можно классифицировать на несколько типов, при помощи заданных критериев. Это может быть и система распознавания лиц, система учета студентов вуза, система по определению предпочтений пользователей онлайн кинотеатров или музыкальных сервисов. В качестве простого примера может выступать такой критерий как «да/нет», если к набору данных можно применить утверждение да или нет, то к таким данным будет применителен алгоритм AdaBoost.

Математический аппарат алгоритма AdaBoost

     Наилучшим образом AdaBoost взаимодействует со слабыми алгоритмами, поэтому именно вместе с ними целесообразно использовать AdaBoost для решения задач классификации. В качестве слабых алгоритмов, взаимодействующие с AdaBoost, обычно используют алгоритмы деревьев решений.
     Поэтому разберем математический аппарат работы алгоритма AdaBoost для решения задач классификации.
     Прежде всего поскольку AdaBoost является алгоритмом бустинга, для возможности его применения должны выполняться следующие правила:

а(х) = Sr=ia£*b£(x),                      (1)

где, aₜ - весовой коэффициент (число должно быть неотрицательным), bₜ(x) -базовые алгоритмы.
     При этом предполагается, что базовые алгоритмы направлены на образование вещественных значений в качестве выхода:


9

bₜ(x) e R.


(2)

     Для задач классификации вещественным значением является величина отступа (М), которая рассчитывается следующим образом:

М = {ы, х) = ыт' * х.                     (3)

     Таким образом для задач бинарной классификации (у = {—1,+1} исходя из особенностей алгоритма AdaBoost, описанных выше, уравнение примет следующий вид:

Qt = ЯМ < 0] < S/=1exp(—Mj) = QT.                  (4)

     Поскольку задачей AdaBoost является поиск лучшей композиции алгоритмов bₜ(x) и перераспределение весовых коэффициентов, при фиксации данных предыдущих композиций (b₁(x), ..., Ьт(х) и а₁, ..., ат) можно расписать уравнение следующим образом:

     Qt < Qt = Sf=iexp (—у/ * 'Lt-/aJh(xₜ)) * exp (—у, * ат * Ьт(хД)). (5)

     В рамках этого выражение были отдельно обособленны весовые коэффициента и выделяется множитель:

Ы/ = ехр(—у1 * Ет=1 aₜbₜ(х/)).               (6)

     Теперь можно сделать вывод, что эти коэффициенты рассчитываются для каждого объекта выборки, а множить увеличивается для объектов, которые плохо поддаются классификации. Результатом такого увеличения, станет больший учет алгоритма при обучении данных объектов.
     При поиски каждой новой композиции алгоритмов весовые коэффициенты нормируются по следующей формуле:

а =        , i = 1,,, I.                  (7)
Z;=i";

     Это делается для того, чтобы в сумме нормированные весовые коэффициенты были равны 1, что позволит принимать им адекватные значения:

EUa = 1.                              (8)

     В результате всех этих операций теперь можно подсчитать долю неверно классифицированных объектов текущего алгоритма:

N⁽b'⁾ = Е/=1 а * [Ь⁽х/) Ф у/].               (9)


10

     И долю верных классификаций текущего алгоритма:


p(b) = eUi^ * [b(Xᵢ) *yᵢ] = 1 - nw.              (10)

     Наилучший вариант композиции алгоритмов определяется на основе минимизации доли неверно классифицированных объектов:

                           bₜ = argmin N(b).                      (11)

     Оптимальное значения весовых коэффициентов для этих алгоритмов в свою очередь рассчитывается по следующей формуле:

                           at = 1/21n                             (¹²)

     Именно так выглядит в математическом виде алгоритм AdaBoost. На каждой новой итерации (от 1 до Т) происходит обучение текущего алгоритма при помощи объектов обучающей выборки, каждый из которых обладает весом [4].

Последовательность действий алгоритма AdaBoost

     Работа алгоритма AdaBoost предполагает наличие входных данных, последовательности определённых действий, выполнение которых, позволит получить искомые выходные данные.
     В качестве входных данных выступает: обучающая выборка - X¹ и количество алгоритмов, сформированных в композиции - Т.
     На выходе алгоритма должны быть определены: набор базовых алгоритмов - b₁(x),..., bT(х) и весовые коэффициенты - а₁,..., аТ.
     Алгоритм AdaBoost подразумевает следующий набор действий:
     1.       Определение начальных значений весовых коэффициентов объектов. Согласно принципу алгоритма веса определяются, как равные между собой.

1
                           ^ = 1,1 = 1...I.                       (13)

     2.      На втором этапе запускается цикл итераций: t = 1,..., Т.
     3.       Теперь на каждой итерации начинается поиск наилучшего алгоритма, то есть такой алгоритм, который определяет минимум доли неверной классификации нашей заданной выборки, по уже ранее представленной формуле:

                           bₜ = arg min N(b).                     (14)

     4.       Для найденного алгоритма необходимо определить оптимальный весовой коэффициент:


11