Присоединяйтесь к нашим группам

Искусственные нейронные сети

Искусственные нейронные сети
Большинству людей ещё со школьной скамьи известно, как научить машину делать то, что нам от неё нужно. В первую очередь для этого применяется программирование, основанное на алгоритмах. Да-да, в том числе на простейших «если …, то …» и «повторить … до тех пор, пока …» Их сложность может быть очень высока, но, насколько бы разветвлёнными и комплексными ни были алгоритмы, написанные человеком, они имеют существенное фундаментальное ограничение. Человек, пишущий такую программу (а к ним относятся практически все, написанные на сегодняшний день и находящиеся в разработке, за редчайшими исключениями), должен заранее знать условия, в которых она будет выполняться, в том числе объекты и сценарии, с которыми ей придётся столкнуться. Иными словами, всё должно быть просчитано заранее.
06 09 2015
09:00

Но всегда ли возможны такие предсказания? Всё зависит от того, что должна делать наша программа. Например, мы знаем алгоритмы преобразования одного файла в другой или можем задать чёткую последовательность операций, выполняемых промышленным роботом или банальной стиральной машинкой. Но что делать, если мы можем лишь предполагать примерное направление деятельности, но не имеем возможности предусмотреть все факторы? Или, что ещё чаще, если мы сами не знаем, как выполнить задачу?

Последнее, на самом деле, вовсе не возмутительный непрофессионализм разработчиков. Как известно, практически каждый человек спокойно и без труда отличит собаку от кошки, независимо от породы, окружающих условий, позы или поведения животного. Но попробуйте точно сформулировать, как именно вы это делаете, настолько подробно, чтобы можно было передать это знание машине, работающей с пиксельными изображениями, чтобы она смогла рассортировать животных по группам. Скорее всего, вы столкнётесь уже с тем, что найти животное в реальной обстановке машина не сумеет.

Действительно, распознавание образов – одна из тех задач, которую нельзя решать «в лоб». Наша способность делать это основывается в первую очередь на опыте, на огромном массиве данных, посредством анализа которых наш мозг и опознаёт объекты, которые мы видим. Иначе мы не смогли бы читать любой текст, написанный другим шрифтом, а о распознавании чужих почерков не могло бы быть и речи. 

Для выполнения этих задач, более привычных для людей, чем для машин, логичным образом применяются математические модели отдельных элементов нашего мозга – искусственные нейронные сети. Как понятно из названия, подобно мозгу, они представляют собой сложные ветвящиеся сети из отдельных единиц – нейронов. Разница в том, что здесь это не клетки, а фрагменты программного кода, но работают они так же. Информация подаётся на вход сети, логические импульсы проходят по всей сети, взаимодействуя друг с другом и с отдельными её участками, и на выходе система выдаёт ответ в нужном виде.

Такие сети не программируются в обычном смысле этого слова – их обучают. Например, мы хотим, чтобы система искала на фотографиях яблоки. После формирования кода нейросети ей предлагают на рассмотрение фотографию искомого фрукта на белом фоне и спрашивают, яблоко ли это. Если система выдаёт правильный ответ, её «поощряют». Делается это путём изменения параметров участков сети, а именно «силы» отдельных сигналов. Это очень напоминает известные опыты Павлова, когда собак приучали к приёму пищи по звонку и животные, услышав его звук, начинали выделять слюну. Так же и здесь: за первой фотографией идут другие, снятые с разных ракурсов, при различном освещении, да и само яблоко может менять сорт. Затем изображения становятся сложнее, к яблоку добавляются другие объекты, в том числе и похожие на него, например, груши и помидоры. Спустя множество итераций нейронная сеть обучается узнавать нужный фрукт везде, и качество распознавания зависит от продолжительности обучения. Чем не разумность?

Действительно, искусственные нейронные сети считаются одним из перспективных подходов к созданию искусственного интеллекта. На их основе функционируют, например, робоавтомобили, ведь предсказать весь спектр ситуаций, которые могут возникнуть на дороге, не может никто. А раз можно подготовить к езде в таких условиях человека, нейросеть тоже справится. Более того, имея схожую с биологической структуру, она, тем не менее, обладает неоспоримым преимуществом электронных систем – быстротой обработки и реакции, а также отсутствием зависимости от эмоций, настроения и прочих неотъемлемых качеств человека.

Также искусственные нейросети можно встретить в различных системах распознавания текста, лиц на изображениях и даже речи. Скорее всего, вы не раз встречались с результатами их работы, а теперь ещё и имеете базовое представление об их природе. Но не позволяйте им занять ваше место!

Дмитрий Потапкин, специально для Обзор.press.