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