На кого похожа нейросеть
Нейросеть можно сравнить с маленьким ребенком: рожденный с абсолютно чистой памятью, он постепенно заполняет ее через обучение. Например, когда ребенок учится ходить, он смотрит, как это делают взрослые, и подражает им. Сначала он падает, но, наблюдая перед собой эталон, понимает, что делает что-то не так, и повторяет попытки. Скорее всего, в каждый следующий раз он сделает шаг по-другому. И так, раз за разом, он наконец-то ходит без падений. Но он ходит неуклюже. Из-за этого он двигается медленно, или задевает предметы, или у него развивается плоскостопие. Значит, он выполняет эту функцию неэффективно, и он снова учится. В итоге, когда «идеал» достигнут, человек уже едва ли когда-либо изменит ему. Зачем, если этот вид ходьбы наиболее эффективен и удобен? Может, конечно, случиться что-то нестандартное и ему придется переучиваться: например, он увлечется спортивной ходьбой или в результате несчастья ему поставят протез ноги.
Нейросеть делает то же самое, только это компьютерная программа, созданная на основе алгоритмов. И, в отличие от новорожденного, в нее заложены исходные данные. Их можно сравнить с окружающей средой ребенка, из которой он вычленяет и классифицирует нужную информацию для формирования навыка. Также делает и нейросеть. Каждый узел нейросети можно представить в виде коробки, в которой есть много входов и только один выход. Через входные отверстия в коробку попадают данные. На их основе формируется какой-либо один результат, который и попадает в выходное отверстие. Но этих коробочек может быть много. Каждый результат из коробочки — это новые входные данные для следующего ряда коробочек, или, как это называется, для следующего слоя нейросети, до тех пор, пока не будет сформирован окончательный результат. Таких слоев может быть сколько угодно, и именно так происходит классификация данных.
Но зачем нужна классификация и кто определяет параметры, по которым из массива данных в коробочке появляется какой-то результат? Каждое входное значение имеет определенный вес. Условно говоря, программист задает важность тех или иных данных для получения нужного результата. Кроме того, в каждой коробочке работает свой алгоритм для формирования выходных данных. Это необходимо для того, чтобы в итоге, после прохождения всех слоев, получить один правильный (или неправильный) ответ. Таким образом, нейросеть похожа на паутину, по которой информация идет от периферии к центральной точке.
Но кто определяет правильность ответа? Как и в случае с ребенком, у нейросети есть примеры и образцы, к воспроизводству которых нужно стремиться. Например, перед нейросетью поставлена задача распознать букву из цифрового изображения. Она анализирует, скажем, букву «А», но на выходе говорит, что это буква «Л». Когда нейросеть видит ошибку в результате, она возвращается назад и начинает вносить математические поправки в каждый предыдущий слой, чтобы окончательный ответ был правильным. Это называется методом обратного распространения ошибки, и он может повторяться много-много раз. Все зависит от того, насколько много изначальных данных у нейросети. Если данных много, например, весь Интернет, то нейросеть будет обучаться быстрее и эффективнее.
Насколько глубоко может обучиться нейронная сеть? Нужен ли ей постоянно человек для распознавания ошибок? Например, если сеть копирует картину известного художника, то она определяет яркость, контуры, цвет и может на выходе дать похожую картину, соответствующую всем параметрам оригинальной, но не такую же. Как она поймет, что ошиблась?
«Если в нейронных сетях используется термин „обучение с учителем“, то здесь не имеется в виду человек. Сеть обучается на множестве входных и выходных векторов. Чтобы обучить нейронную сеть живописи, надо иметь для каждого возможного объекта какого-либо полотна его фото и итоговую картину. Фото — это вход, картина — это выход. Естественно, фотографий моделей Рембрандта не существует. Значит, надо подавать на вход фрагменты — руки, ноги, уши и другие. Вот в этом роль человека-учителя и состоит», — пояснил профессор кафедры вычислительной техники Игорь Бессмертый.
Зачем компании Google нейросеть?
Сегодня нейросети начинают применяться повсюду. Можно загрузить в нее действующие экономические показатели, и она предскажет кризис. Нейросети можно использовать для определения болезней, вычисления уязвимостей в информационных сетях, для сводок погоды — для чего угодно, где есть оцифрованные данные. Уже сейчас с помощью нейросетей приложения распознают текст или отдельные предметы по фотографиям.
А недавно Google представил свою новую систему для онлайн-перевода на основе нейросети (Google Neural Machine Translation system). По словам разработчиков, система уменьшила количество ошибок в машинном переводе на 55−80%. Чтобы протестировать сервис, разработчики брали статьи из Википедии на определенном языке, например, английском, загружали их в систему и получали перевод на испанский. Потом они сравнивали этот перевод с тем, который был на Википедии. То же самое делалось с использованием новостных сайтов.
Ранее переводчик Google разбивал предложение на слова и фразы и переводил их по отдельности, сравнивая с переводами тысяч документов ООН, Евросоюза и других организаций. Новая система воспринимает в итоге всю фразу целиком, предварительно разбивая ее на «словесные сегменты», которые и образуют значения, проходя через слои нейросети. По словам экспертов, представленных журналом Nature, эта модель похожа на распознавание изображений, когда сначала нейросеть определяет области яркости, затем контуры, потом цвета и так далее, пока не приходит к какому-либо результату.
Новый переводчик Google был протестирован на самой сложной языковой паре Английский-Китайский и сразу же уменьшил количество ошибок и неточностей на 60%. В ближайшие месяцы нейросеть заработает и на других языковых парах сервиса.
В области применения нейросети для машинного перевода так или иначе появляется вопрос: можно ли научить нейросеть учитывать контекст? Ведь если программа определит, например, что она делает перевод текста из области юриспруденции, то она будет использовать только подходящие термины и допускать меньше неточностей.
«Попытка угадать контекст многократно усложнит задачу разработчикам. Это и для человека непросто. Вообще-то, перевод и отдельной фразы не всегда возможен. Перевести можно только весь текст целиком. Да и то это под силу только автору. Все ли уверены, что в романе «Война и мир» Лев Толстой имел в виду «peace», а не «world» («мир» как состояние общества без войны и «мир» как определение всего человечества — прим. редакции)? Скорее всего, он имел в виду оба значения, и перевести название «в лоб» вообще невозможно.
В целом, нейронная сеть — это швейцарский армейский нож, который делает любую работу одинаково плохо. Наименее приспособлены нейросети к семиотике, то есть к символьным вычислениям. Чтобы подать на вход сети одно слово, нужно его закодировать числом или вектором, причем близкие по смыслу слова должны иметь близкие значения. Вспомните классику про Чебурашку: чебуреки, Чебоксары. Если использовать традиционную кодировку, то перечисленные слова будут считаться родственными. Тем не менее, даже в обычной кодировке можно попытаться обучить сеть на перевод, подавая на вход фразу на исходном языке и сравнивая выходы с эталонным переводом. Однако достаточно переставить пару слов или изменить единственное число на множественное, правильного перевода мы не получим", — прокомментировал Игорь Бессмертный.
Будущее
Нейросеть — это подвид искусственного интеллекта, и она уже умеет распознавать и анализировать, предсказывать, показывать аналогии и выявлять проблемы. Но по разным оценкам системы ИИ будут совершенствоваться еще долгие годы, прежде чем станут повсеместно распространенными и действительно смогут приблизиться к человеческому уровню восприятия информации.
Нейросети — это всего лишь программы, выдающие ошибки, которые никогда бы не сделал человек. Например, в прошлом году получил серьезную огласку случай, когда приложение Google Photos назвало двух афроамериканцев на фотографии «гориллами». Возмущенный пользователь выложил скрин приложения в Twitter, после чего представители IT-гиганта извинились перед ним и удалили этот тег из приложения. Также нейросеть, например, может определять абстрактные черно-белые изображения как зебр или пингвинов.
В любом случае, функционал, мощности и корректность работы нейросетей будут зависеть от целей и потребностей конечных пользователей. Если программа существует ради развлечения, то ей можно «простить» некоторые недочеты. Однако если она, например, проводит анализ крови человека, то здесь ошибки недопустимы.
В связи с этим возникает вопрос: есть ли задача создать нейросеть, которая будет полностью имитировать человеческий мозг? Или эффективнее настраивать менее мощные программы под конкретные задачи, а не создавать искусственный супер-интеллект, который сможет обхватить столько же вопросов и задач, сколько и человек?
«Не могу не процитировать профессора Преображенского из „Собачьего сердца“: „Зачем создавать искусственного человека, если любая баба родит его за 9 месяцев?“. Для создания кремниевой копии мозга потребуются многие тысячи серверов и гигаватты электроэнергии, в то время как мозг — это около килограмма нейронов и 25 ватт энергопотребления. ИИ уже вокруг нас, и он успешно решает некоторые задачи. Параллельная парковка — непростая задача для многих обладателей естественного интеллекта, но парковаться уже могут машины далеко не премиального сегмента», — отметил Игорь Бессмертный.