Добавил:
okley
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ML - Коротков (2 сем, мага) / Lecture_4
.pdf
Отсюда следует, что новое, улучшенное значение A равно
(A+∆А), т.е. 0,25 + 0,1167 = 0,3667. Не составляет труда
убедиться в том, что расчетное значение y при новом
значении A равно, как и следовало ожидать, 1,1 —
желаемому целевому значению.
Все работает, и мы располагаем методом для улучшения
параметра A, если известна текущая ошибка.
Закончив с первым примером, потренируемся на втором. Он
дает нам следующие истинные данные: x=1,0 и y=3,0.
Посмотрим, что получится, если вставить x=1,0 в линейную
функцию, в которой теперь используется обновленное
значение A=0,3667.
Получаем:
у = 0,3667*1,0 = 0,3667
А это очень далеко от значения у = 3,0 в тренировочном
примере.

Используя те же рассуждения, что и перед этим, когда мы
нащупывали путь к построению такой линии, которая не
пересекала бы тренировочные данные, а проходила над ними
или под ними, мы можем задать желаемое целевое значение
равным 2,9. При этом данные тренировочного примера,
соответствующего гусеницам, находятся над линией, а не на
ней. Ошибка E равна (2,9 – 0,3667) = 2,5333.
Эта ошибка больше предыдущей (0,3667), но если хорошо
подумать, то у нас ведь был всего лишь один пример для
обучения линейной функции, который отчетливо смещал
функцию в своем направлении.
Опять обновим A, как делали до этого. Соотношение ∆А= E/x
дает 2,5333 / 1,0 = 2,5333. Это означает, что после очередного
обновления параметр A принимает значение 0,3667 + 2,5333 =
2,9. Отсюда следует, что для x=1,0 функция возвращает в
качестве ответа значение 2,9, которое и является желаемым
целевым значением.

3
2
длина
окончательное уточнённое значение
у = (2,9)х
уточнённое значение
у = (0,3667)х
1
начальное значение
у = (0,25)х
1 2 3
ширина

☹
Но погодите! Что произошло? Глядя на график, мы видим,
что нам не удалось добиться того наклона прямой,
которого мы хотели. Она не обеспечивает достаточно
надежное разделение областей диаграммы, занимаемых
точками данных божьих коровок и гусениц.
А ведь действительно, если мы будем продолжать так и
далее, т.е. просто обновлять наклон для очередного
примера тренировочных данных, то все, что мы будем
каждый раз получать в конечном счете, — это линию,
проходящую вблизи точки данных последнего
тренировочного примера. В результате этого мы
отбрасываем весь предыдущий опыт обучения, который
могли бы использовать, и учимся лишь на самом
последнем примере.

Как исправить эту ситуацию?
Легко!
И эта идея играет ключевую роль в машинном обучении.
Мы сглаживаем обновления, т.е. немного уменьшаем
величину поправок. Вместо того чтобы каждый раз с
энтузиазмом заменять А новым значением, мы используем
лишь некоторую долю поправки , а не всю ее целиком.
Сделаем перерасчет, на этот раз добавив сглаживание в
формулу обновления:
∆А = L(E/x)
Фактор сглаживания, обозначенный здесь как L, часто
называют коэффициентом скорости обучения.

Выберем L=0,5 в качестве разумного начального приближения.
Это означает, что мы собираемся использовать поправку вдвое
меньшей величины, чем без сглаживания.
Повторим все расчеты, используя начальное значение A=0,25.
Первый тренировочный пример дает нам y = 0,25*3,0 = 0,75 При
целевом значении 1,1 ошибка равна 0,35. Поправка равна
∆А = L(E/x) = 0,5*0,35/3,0 = 0,0583.
Обновленное значение A равно 0,25 + 0,0583 = 0,3083.
Проведение расчетов с этим новым значением A для
тренировочного примера при x=3,0 дает y = 0,3083*3,0 = 0,9250.
Как видим, расположение этой линии относительно
тренировочных данных оказалось неудачным — она проходит
ниже значения 1,1, но этот результат не так уж и плох, если
учесть, что это была всего лишь первая попытка. Главное то,
что мы движемся в правильном направлении от
первоначальной линии.

Перейдем ко второму набору тренировочных данных при x=1,0.
Используя A=0,3083, мы получаем y = 0,3083*1,0 = 0,3083.
Желаемым значением было 2,9, поэтому ошибка составляет
(2,9 – 0,3083) = 2,5917. Поправка ∆А = L(E/x) = 0,5*2,5917/1,0 =
1,2958. Теперь обновленное значение A равно 0,3083 + 1,2958 =
1,6042.
Вновь отобразим на диаграмме начальный, улучшенный и
окончательный варианты линии, чтобы убедиться в том, что
сглаживание обновлений приводит к более
удовлетворительному расположению разделительной линии
между областями данных божьих коровок и гусениц

3
2
длина
второе сглаженное уточнение
у = (1,6042)х
первое сглаженное уточнение
у = (0,3083)х
1
начальное значение
у = (0,25)х
1 2 3
ширина

Всего лишь с двумя простыми тренировочными примерами и
относительно простым методом обновления мы, используя
сглаживание скорости обучения, смогли очень быстро
получить хорошую разделительную линию y=Ax, где A=1,6042.
Не будем преуменьшать свои достижения. Нам удалось
создать автоматизированный метод обучения классификации
на примерах, который, несмотря на простоту подхода,
продемонстрировал замечательную эффективность.

Иногда одного классификатора недостаточно
Как вы имели возможность убедиться, рассмотренные нами
простые предикторы и классификаторы, относящиеся к числу
тех, которые получают некоторые входные данные,
выполняют соответствующие вычисления и выдают ответ,
довольно эффективны. И все же их возможностей
недостаточно для решения многих задач.
Продемонстрируем это.
Но почему мы должны заниматься этим вместо того, чтобы
сразу же перейти к обсуждению нейронных сетей? Дело в том,
что от понимания сути указанных ограничений зависит один
из ключевых элементов проектирования нейронных сетей, так
что этот вопрос стоит того, чтобы его обсудить.
Соседние файлы в папке ML - Коротков (2 сем, мага)
