более комплексные формы, нам становятся необходимы более сложные модели для их описания
Но эти ситуации – верхушка айсберга. Когда мы переходим к более комплексным проблемам – распознаванию объектов или анализу текста, – данные приобретают очень много измерений, а отношения, которые мы хотим описать, становятся крайне нелинейными. Чтобы отразить это, в последнее время специалисты по машинному обучению стали строить модели, напоминающие структуры нашего мозга. Именно в этой области, обычно называемой глубоким обучением, ученые добились впечатляющих успехов в решении проблем компьютерного зрения и обработки естественного языка. Их алгоритмы не только значительно превосходят все остальные, но даже соперничают по точности с достижениями человека, а то и превосходят их.
Нейрон
Нейрон – основная единица мозга. Небольшой его фрагмент, размером примерно с рисовое зернышко, содержит более 10 тысяч нейронов, каждый из которых в среднем формирует около 6000 связей с другими такими клетками[5]. Именно эта громоздкая биологическая сеть позволяет нам воспринимать мир вокруг. В этом разделе наша задача – воспользоваться естественной структурой для создания моделей машинного обучения, которые решают задачи аналогично. По сути, нейрон оптимизирован для получения информации от «коллег», ее уникальной обработки и пересылки результатов в другие клетки. Процесс отражен на рис. 1.6. Нейрон получает входную информацию по дендритам – структурам, напоминающим антенны. Каждая из входящих связей динамически усиливается или ослабляется на основании частоты использования (так мы учимся новому!), и сила соединений определяет вклад входящего элемента информации в то, что нейрон выдаст на выходе. Входные данные оцениваются на основе этой силы и объединяются в клеточном теле. Результат трансформируется в новый сигнал, который распространяется по клеточному аксону к другим нейронам.
Рис. 1.6. Функциональное описание биологической структуры нейрона
Мы можем преобразовать функциональное понимание работы нейронов в нашем мозге в искусственную модель на компьютере. Последняя описана на рис. 1.7, где применен подход, впервые введенный в 1943 году Уорреном Маккаллоу и Уолтером Питтсом[6]. Как и биологические нейроны, искусственный получает некоторый объем входных данных – x1, x2, …, xn, каждый элемент которых умножается на определенное значение веса – w1, w2, …, wn. Эти значения, как и раньше, суммируются, давая логит нейрона:
. Часто он включает также смещение (константа, здесь не показана). Логит проходит через функцию активации f, образуя выходное значение y = f(z). Это значение может быть передано в другие нейроны.Рис. 1.7. Схема работы нейрона в искусственной нейросети
Математическое обсуждение искусственного нейрона мы закончим, выразив его функции в векторной форме. Представим входные данные нейрона как вектор x = [x1 x2 … xn], а веса нейрона как w = [w1 w2 … wn].