в сети, которую мы используем для распознавания кошек и собак, их 60 650. В обычной жизни было бы довольно сложно визуализировать то, что составляет 60650-мерное пространство. Но поскольку эта сеть создана для работы с изображениями, то многие из слоев нейронов организованы в массивы, подобные массивам пикселей, которые сеть визуализирует.
примечательно, что первые несколько слоев нейронной сети, подобной той, которую мы показываем здесь, похоже, выделяют аспекты изображений (например, края объектов), которые кажутся похожими на те, которые, как известно, наш мозг выделяет первыми при обработке визуальной информации.
Итак, как же на самом деле происходит обучение нейронной сети? По сути, то, что мы пытаемся сделать, — это найти веса, которые позволят нейронной сети успешно воспроизводить примеры, которые мы ей дали. И затем нейронная сеть интерполирует (обобщает) эти примеры «разумным» способом.
Основная идея состоит в том, чтобы предоставить множество примеров ввода/вывода, на которых можно «учиться», а затем попытаться найти веса, которые будут их воспроизводить.
На каждом этапе этого обучения веса в сети постепенно корректируются, и мы видим, что в итоге получается сеть, которая успешно воспроизводит нужную функцию. Итак, как нам отрегулировать вес? Основная идея заключается в том, чтобы на каждом этапе проверять, насколько мы далеки от получения желаемой функции, а затем обновлять веса таким образом, чтобы приблизиться к ней.
Для того чтобы выяснить, насколько далеко находимся от желаемой функции, мы вычисляем то, что обычно называется функцией потерь (или функцией стоимости).
наиболее распространенный подход заключается в том, чтобы просто постепенно следовать по пути самого крутого спуска от любых предыдущих w1 и w2, которые у нас были:
Подобно воде, стекающей с горы, эта процедура закончится на некотором локальном минимуме (так сказать, в горном озере), и вполне возможно, что мы так и не достигнем глобального минимума.