Глава 1. Глубокое обучение и JavaScript
37
Слои нейронных сетей напоминают математические функции в том смысле, что
представляют собой отображение входного значения на выходное. Впрочем, слои
нейронных сетей отличаются от чисто математических функций тем, что обычно
сохраняют состояние
. Другими словами, они обладают внутренней памятью. Вме
стилищем памяти слоя служат его
веса
(weights). Что такое веса? Это просто набор
связанных со слоем числовых значений, определяющих нюансы преобразования
слоем входного представления в выходное. Например, часто применяемые
плотные
(dense) слои преобразуют входные данные, умножая их на матрицу и прибавляя
к полученному результату вектор. Эти матрица и вектор — веса плотного слоя.
При обучении нейронной сети на обучающих данных веса систематически меня
ются таким образом, чтобы минимизировать определенную величину, называемую
функцией потерь
(loss function), о которой мы поговорим подробнее на конкретных
примерах в главах 2 и 3.
Хотя нейронные сети создавали под влиянием структуры мозга, не стоит слиш
ком их очеловечивать. Цель нейронных сетей вовсе не в изучении или имитации
работы мозга, это задача нейронауки — отдельной академической дисциплины. Ней
ронные сети призваны дать машинам возможность решать интересные практические
задачи благодаря обучению на данных. Тот факт, что некоторые нейронные сети
напоминают отдельные части живого мозга как структурно, так и функционально
1
,
действительно замечателен. Но обсуждение того, совпадение это или нет, выхо
дит за рамки данной книги. В любом случае не стоит переоценивать это сходство.
А главное, нет оснований утверждать, что обучение мозга происходит посредством
какойлибо формы градиентного спуска — основного способа обучения нейронных
сетей (мы рассмотрим его в следующей главе). Многие важные методики нейронных
сетей, приведшие к революции глубокого обучения, были изобретены и приняты на
вооружение не потому, что в их основе лежали нейронауки, а потому, что с их по
мощью нейронные сети быстрее и лучше решали реальные задачи.
Теперь, когда вы знаете, что такое нейронные сети, пора рассказать, что такое
глу-
бокое обучение
(deep learning, DL). Глубокое обучение — это изучение и применение
глубоких нейронных сетей
(deep neural networks), представляющих собой попросту
нейронные сети
с большим количеством слоев
(обычно от десятков до сотен). Слово
«глубокий»
здесь отражает большое число последовательных слоев представлений.
Количество слоев, формирующих модель данных, называется
глубиной
(depth) моде
ли. Подругому эту область изучения можно было бы назвать «многослойное усвое
ние представлений» или «иерархическое усвоение представлений». В современном
глубоком обучении часто используются десятки или сотни последовательных
слоев представлений — и обучение их всех происходит автоматически при взаи
модействии с обучающими данными. Существуют и другие подходы к машинному
обучению, в которых усваивается только один или два слоя представлений данных,
соответственно они иногда называются
неглубоким обучением
(shallow learning).
Часто можно встретить ошибочное толкование слова «глубокий» в DL как отно
сящегося к глубокому пониманию данных, то есть «глубокому» в смысле понимания
1
Интересным примером функционального сходства могут служить входные сигналы,
максимально активизирующие различные слои сверточной нейронной сети (см. главу 4),
которые очень похожи на нейронные рецептивные поля различных частей человеческой
зрительной системы.
38
Do'stlaringiz bilan baham: |