Шрифт:
Закладка:
Сила глубоких нейронных сетей в том, что они могут автоматически изучать полезные атрибуты, такие как детекторы признаков в СНС. Глубокое обучение иногда так и называют — «обучение признакам», поскольку глубокие сети по сути изучают новое представление входных данных, которое лучше подходит для прогнозирования целевого выходного атрибута, чем исходный необработанный ввод. Каждый нейрон в сети определяет функцию, которая отображает значения в новый входной атрибут. Поэтому нейрон в первом слое сети может изучать функцию, которая преобразует необработанные входные значения (например, вес и рост) в более полезный атрибут (например, ИМТ). Однако выход этого нейрона наравне с его сестринскими нейронами в первом слое подается в нейроны второго слоя, изучающие функции, которые преобразуют выходные данные первого слоя в новые и еще более полезные представления. Этот процесс сопоставления входных данных с новыми атрибутами и передачи этих новых атрибутов в качестве входных данных для следующих функций распространяется по сети, и по мере того, как сеть становится глубже, она может изучать все более и более сложные сопоставления. Именно способность автоматически изучать сложные сопоставления входных данных с полезными атрибутами делает модели глубокого обучения настолько точными при выполнении задач с многомерным вводом (таких, как обработка изображений и текста).
Давно известно, что чем глубже нейронная сеть, тем более сложные отображения данных она способна изучать. Однако развитие глубокое обучение получило лишь в последние несколько лет, и причина этого заключается в том, что стандартная комбинация случайного веса с последующим алгоритмом обратного распространения ошибки не очень хорошо работала с глубокими сетями. Во-первых, ошибка в этом случае распределяется по мере того, как процесс возвращается со слоя на слой, так что к тому времени, когда алгоритм достигает ранних слоев глубокой сети, оценки ошибок уже не так полезны[21]. В результате слои в ранних частях сети не учатся полезным преобразованиям данных. Однако в последние годы были разработаны новые типы нейронов и адаптации к алгоритму обратного распространения, которые помогают решить эту проблему. Также было обнаружено, что требуется осторожная инициализация весов сети. Два других фактора, которые усложняли обучение глубоких сетей, заключались в том, что для обучения нейронной сети требуется большая вычислительная мощность и к тому же нейронные сети показывают максимальную эффективность на большом количестве обучающих данных. В последние годы большие вычислительные мощности стали доступнее, и это сделало обучение глубоких сетей осуществимым.
Деревья решений
Линейная регрессия и нейронные сети лучше всего работают с числовыми входными данными. Если входные атрибуты в наборе данных в основном номинальные или порядковые, лучше использовать другие алгоритмы и модели машинного обучения, такие как деревья решений.
Дерево решений кодирует условный оператор если-то-иначе в древовидной структуре. Рис. 16 иллюстрирует дерево решений для проблемы, стоит ли смотреть фильм. Прямоугольники с закругленными углами представляют собой тесты атрибутов, а квадраты обозначают узлы решения, или классификации. Это дерево кодирует следующие правила: если фильм — комедия, то смотреть; если фильм не комедия, а триллер, то тоже смотреть; если он не комедия и не триллер, то не смотреть. Процесс решения для объекта в структуре дерева решений начинается с его вершины и спускается вниз, последовательно тестируя атрибуты объекта. Каждый узел дерева устанавливает один атрибут для тестирования, и процесс спускается вниз узел за узлом, выбирая следующую ветвь по метке, соответствующей значению теста атрибута. Финальное решение — это метка конечного (или листового) узла, к которому спускается объект.
Все пути в структуре дерева решений от корня до листа определяются правилом классификации, состоящим из последовательных тестов. Цель обучения дерева решений состоит в том, чтобы найти такие правила классификации, которые делят обучающий набор данных на группы объектов, имеющих одинаковое значение целевого атрибута. Идея состоит в том, что если правило классификации может отделить от набора данных подмножество объектов с одинаковым целевым значением и если оно истинно для нового объекта (т. е. такого, который идет по этому пути в дереве), то вероятно, что правильный прогноз для этого нового объекта — целевое значение, общее для всех обучающих объектов, соответствующих этому правилу.
Прародителем большинства современных алгоритмов машинного обучения деревьев решений является алгоритм ID3{3}. Он строит деревья решений рекурсивным способом в глубину, добавляя один узел зараз, начиная с корневого узла. ID3 начинается с выбора атрибута для проверки в корневом узле. Ветвь вырастает для каждого значения из области определения этого тестового атрибута и помечается этим значением. Узел с бинарным тестовым атрибутом будет иметь две ветви, исходящие от него. Затем набор данных разделяется: каждый объект из этого набора перемещается вниз по той ветви, метка которой соответствует значению тестового атрибута для объекта. Затем ID3 наращивает каждую ветвь, используя тот же процесс, что и для создания корневого узла: выбрать тестовый атрибут — добавить узел с ветвями — разделить данные, направив объекты по соответствующим ветвям. Этот процесс повторяется до тех пор, пока все объекты каждой ветви не будут иметь одинаковое значение целевого атрибута, тогда в дерево добавляется конечный узел и помечается значением целевого атрибута, общего для всех объектов ветви[22].
ID3 выбирает атрибут для тестирования в каждом узле дерева, чтобы минимизировать количество тестов, необходимых для создания очищенных наборов (т. е. таких групп объектов, которые имеют одинаковое значение целевого атрибута). Одним из способов измерения чистоты набора является использование информационной энтропии — меры неопределенности информации Клода Шеннона. Минимально возможная энтропия для множества равна нулю, поэтому очищенное множество имеет энтропию, равную нулю. Максимальное значение возможной энтропии для набора зависит от его размера и разнообразия представленных типов элементов. Набор будет иметь максимальную энтропию, когда все элементы в нем разного типа[23]. ID3 выбирает для тестирования в узле атрибут, который приводит к наименьшему значению взвешенной энтропии после разделения набора данных с использованием этого атрибута. Взвешенная энтропия для атрибута рассчитывается следующим путем: 1) разделение набора данных по атрибуту; 2) вычисление энтропии результирующих множеств; 3) взвешивание каждой энтропии по ее доле в наборе данных; 4) суммирование результатов.