- •Что такое машинное обучение
- •Искусственный интеллект
- •Иерархия задач машинного обучения
- •Вопросы для самоконтроля и контроля
- •Практические задания
- •Список источников
- •Принцип машинного обучения
- •Модели машинного обучения
- •Классы задач машинного обучения
- •Принцип решения задач обучения с учителем (supervised learning)
- •Регрессионный анализ
- •Классификация объектов
- •Вопросы для самоконтроля и контроля
- •Практические задания
- •Список источников
- •Классы задач машинного обучения
- •Обучение без учителя (unsupervised learning)
- •Задачи кластеризации объектов
- •Задачи снижения размерности описания объектов
- •Задачи поиска правил, описывающих закономерности в описании объектов
- •Обучение с подкреплением (Reinforcement Learning)
- •Библиотеки и фреймворки машинного обучения
- •Вопросы для самоконтроля и контроля
- •Практические задания
- •Список источников
- •Постановка задачи построения линейной регрессии
- •Решение задачи. Нормальная система уравнений
- •Пример построения линейной регрессии
- •Пример неустойчивости метода НК
- •L2-регуляризация
- •L1-регуляризация
- •Вопросы для самоконтроля и контроля
- •Практические задания
- •Список источников
< |
— |
> |
* * = * ( )
Определение 2.1 (Матрица Грама). Матрицу попарных скалярных произведений базисных векторов называются матрицей Грама: = * . Также называется ковариационной матрицей параметров x: ( ).
Если базисные функции линейно-независимы на множестве узлов, то и () ̸= 0и нормальная система имеет единственное решение.
Если столбцы матрицы X (вектора значений базисных функций) не просто линейно-зависимы, а ортогональны, то матрица = * будет диагональной.
3Пример построения линейной регрессии
Для решения системы уравнений воспользуемся библиотекой numpy, модулем linalg. Для визуализации будем пользоваться библиотекой matplotlib:
import numpy as np
import matplotlib.pyplot as plt plt.style.use(’ggplot’)
Сгенерируем данные следующим образом. В качестве восстанавливаемой функции возьмем параболу и добавим случайные ошибки в интервале (− ; + ) (см. рис. 1):
^ = 2 − 5 * + 2 + , = 1.. .
Конечно, на практике мы не знаем эту скрытую зависимость. Но по ее виду мы можем предположить ее структуру - какие базисные функции входят в нее.
Постулируем модель:
( ) = 0 + 1 * + 2 * 2.
Найдем ее коэффициенты методом наименьших квадратов, составив нормальное уравнение. Для этого:
1.Сформируем матрицу значений базисных функций X. Модель содержит три базисные функции. Поэтому матрица Вандермонда будет иметь три столбца. Строк в ней будет столько,
« |
5 |
» |
< |
— |
> |
Рис. 1: Сгенерированные экспериментальные данные; пунктиром отмечена зависимость, использованная для генерации ( [1])
сколько точек мы имеем:
|
1 |
1 |
1 |
|
|
|
1 |
0 |
0 |
|
|
|
1 |
2 |
4 |
|
|
|
|
|
|
|
|
= |
1 |
3 |
9 |
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 4 16 |
|
|||
|
|
|
|
|
|
|
1 5 25 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 6 36 |
|
|||
|
|
|
|
|
|
2. Вычислим матрицу Грама = * и правую часть нормальной системы уравнений * :
|
7 |
21 |
91 |
|
|
= |
21 |
91 |
441 |
|
; |
|
|
|
|
|
|
91 |
441 |
2275 |
|
1.6
* = 29 ,
247.6
3.решим нормальную систему уравнений:
* * = *
« |
6 |
» |
< |
— |
> |
2.49
= −4.96 ;
0.97
4.проанализируем полученную линейную регрессию; вычислим значения регрессионной зависимости в узлах
= *
оценим критерии ошибки модели MSE и MAE
= −
Оценим среднеквадратическую ошибку (Mean Square Error)
∑
= ( )2)/ ( )
=0
MSE=0.256
Оценим среднюю абсолютную ошибку (Mean Absolute Error)
= ( . ( ))/ ( )
MAE=0.406
5.построенную модель ( , ) теперь можно использовать для прогноза на новых данных. например, можно построить график модельной функции и сравнить его с графиком исходной функции, использованной для генерации точек (см. рис. 2)
При построении линейных регрессионных зависимостей с большим количеством базисных функций и большой выборкой матрица нормальной системы может быть плохо обусловленной, так как
( ) = ( ) * ( ). Поэтому на практике эти системы уравнений не решают, а используют методы оптимизации для решения задачи минимизации квадрата ошибки:
|| * − ||22 → .
Однако и у этого метода могут быть проблемы в случае большого количества данных. Оптимизируемая функция может содержать большое количество локальных минимумов и седловых точек и метод может застрять в одной из них.
На помощь приходит регуляризация, добавление дополнительного слагаемого в минимизируемую функцию.
« |
7 |
» |
< |
— |
> |
Рис. 2: Сравнение регрессионной зависимости, построенной по точкам (синяя сплошная) и зависимости, использованной для генерации данных (зеленым пунктиром)
4Пример неустойчивости метода НК
Посмотрим как небольшие отклонения от истинной кривой растворимости, связанные с точностью измерений, могут повлиять на построение модели.
Пример 4.1 (Восстановление состава смеси по её кривой растворимости). Кривая растворимости смеси из (m+1) компонентов подчиняется модели вида:
( ) = 0 * (− 0 * ) + 1 * (− 1 * ) + ... + * (− * )
где - это константа растворимости i-го компонента.
Смоделируем растворение смеси из 5 компонентов. Зададим их константы растворимости: kvect = np.array([0.9, 0.6, 0.4, 0.2, 0.1])
и сформируем 5 базисных функций с этими k - константами растворимости
(− 0 * ), (− 1 * ), (− 2 * ), (− 3 * ), (− 4 * )
Задача: по известным данным об оставшейся массе смеси (концентрации) в растворе определить/восстановить состав смеси.
Сгенерируем данные на основе следующего состава веществ
= . ([3, 2, 5, 0.0, 0.0]),
т.е. двух последних компонентов нет в смеси, а массы остальных составляют 3,2 и 5 грамм.
« |
8 |
» |