Возьмем алгоритм LeNet , созданный французским пионером искусственных нейросетей Яном Лекуном (см. цветную иллюстрацию 2) 6. Уже в 1990-х годах эта сеть добилась замечательных результатов в распознавании рукописных знаков. Многие годы канадская почта использовала ее для автоматической обработки почтовых индексов. Как она работает? На входе алгоритм получает изображение символа в виде пикселей, а на выходе предлагает одну из возможных интерпретаций десяти цифр или двадцати шести букв. Искусственная сеть состоит из иерархии простых процессоров, которые немного напоминают нейроны и образуют последовательные слои. Первые слои подключены непосредственно к изображению: в них применяются простые фильтры, распознающие линии и фрагменты кривых. Процессоры высоких уровней содержат более мощные и сложные фильтры и могут научиться распознавать крупные части изображений: изгиб цифры 2, замкнутую петлю буквы O, параллельные линии буквы Z. Искусственные нейроны выходного слоя реагируют на символ независимо от его положения, шрифта или регистра. Все эти свойства не навязаны программистом: они вытекают из миллионов связей, которые соединяют процессоры. Эти связи, однажды отрегулированные автоматизированным алгоритмом, определяют фильтр, который каждый нейрон применяет к поступающим сигналам; именно эти настройки объясняют, почему один нейрон реагирует на цифру 2, а другой – на цифру 3.
Но как же настраиваются эти миллионы связей? Точно так же, как наш мозг, когда мы надеваем призматические очки! Всякий раз, когда сеть дает предварительный ответ, ей сообщают, правильный он или нет. Если ответ неправильный, сеть корректирует соответствующие параметры, дабы избежать ошибки в следующий раз. Каждый неправильный ответ несет в себе ценную информацию. Как и в случае с призматическими очками (слишком большое смещение вправо или влево), характер ошибки подсказывает системе, что именно нужно было сделать, чтобы решить задачу правильно. Вернувшись к источнику ошибки, машина определяет оптимальные параметры, которые впредь позволят ее избежать.
Вернемся к охотнику, которому нужно отрегулировать оптический прицел своего ружья. Процедура обучения элементарна. Охотник стреляет и обнаруживает, что взял на пять сантиметров правее. Теперь он располагает важной информацией как об амплитуде (пять сантиметров), так и о характере ошибки (смещение вправо). Эти сведения дают ему возможность скорректировать следующий выстрел. Если охотник умный, он быстро сообразит, как исправить ситуацию: если пуля отклонилась вправо, необходимо сдвинуть прицел чуть влево. А если он не настолько проницателен, он может выбрать другую мишень и проверить, что произойдет, если прицелиться правее. Таким образом, путем проб и ошибок охотник рано или поздно обнаружит, какие именно манипуляции с прицелом уменьшают отклонение пули от намеченной цели.
Меняя положение прицела, наш храбрый охотник применяет алгоритм научения, хотя сам этого не осознает. Он имплицитно вычисляет то, что математики называют «производной» системы, или ее градиентом, и использует «метод градиентного спуска». Иными словами, охотник учится смещать видоискатель ружья в направлении, уменьшающем вероятность ошибки.
Несмотря на миллионы входов, выходов и регулируемых параметров, большинство искусственных нейросетей, используемых в современном искусственном интеллекте, действуют точно так же, как наш охотник: они анализируют свои ошибки и на их основе корректируют свое внутреннее состояние в направлении, которое должно эти ошибки уменьшить. Во многих случаях такое обучение строго контролируется. Мы сообщаем сети, какой именно ответ она должна была выдать на выходе («Это 1, а не 7»), и точно знаем, в каком направлении необходимо корректировать параметры, если они привели к ошибке (математические вычисления позволяют определить, какие именно связи следует модифицировать, если в ответ на изображение цифры 1 сеть слишком часто дает на выходе 7). На языке машинного обучения это называется «обучением с учителем» (поскольку некто знает правильный ответ, который должна дать система) и «обратным распространением ошибки» (поскольку сигналы об ошибке отправляются обратно в сеть для изменения ее параметров). Процедура проста: я пробую ответить, мне сообщают правильный ответ, я определяю свою ошибку и корректирую параметры, чтобы впредь этой ошибки не совершать. На каждом этапе я делаю лишь небольшие поправки в нужном направлении. Вот почему такое обучение может протекать крайне медленно: в ходе овладения сложным видом деятельности вроде игры в Tetris данный цикл необходимо повторить тысячи, миллионы, даже миллиарды раз. Это и неудивительно: в пространстве с множеством регулируемых параметров поиски оптимальных настроек для каждой гайки и болта могут занять некоторое время.
Читать дальше
Конец ознакомительного отрывка
Купить книгу