Сегодня существует огромное множество методов, применяемых в информационных технологиях, для решения различных задач. Одним из таких методов являются нейронные сети, популярность которых с каждым годом бьёт всё новые рекорды.
Искусственные нейронные сети представляют собой модель биологической нейронной сети, состоящей из нервных клеток. Именно принципы функционирования нервной системы живых организмов привлекли внимание У. МакКаллока и У. Питтса, которые в 1943 году сформулировали понятие нейронной сети и показали перспективы развития этого направления в логическом исчислении.
Одно из главных отличий и преимуществ нейронных сетей – это то, что их не нужно программировать в привычном нам понимании, то есть им не требуется давать строго описанный алгоритм поведения, согласно которому нейросеть будет работать. Вместо программирования нейронную сеть требуется обучить. Это означает, что ей нужно предоставить некий набор данных, называемый обучающей выборкой, на основе которого нейросеть сама выработает правила собственной работы.
Всего существует 2 основных типа обучения: с учителем и без учителя. Обучение с учителем означает, что обучающая выборка содержит не только данные, поступающие на вход нейросети, но и правильные реакции на них. Например, если нейросеть должна распознавать, кошка на фотографии или собака, ей вместе с каждым изображением выборки будет предоставлено его верное описание. Просмотрев таким образом довольно много изображений, нейросеть выделит признаки, характерные для каждого животного, и научится правильно их определять. При обучении без учителя нейросеть получает только обучающую выборку и самостоятельно находит зависимости, по которым классифицирует полученные данные.
Основными элементами нейронной сети являются нейроны, которые выполняют различные действия над поступающими к ним данными. Все нейроны делятся на 3 типа: входные, которые получают данные извне, скрытые или промежуточные, которые каким-либо образом изменяют данные, и выходные, которые на основе полученных значений выдают результат. Нейронов каждого типа может быть несколько, тогда те из них, что выполняют схожие функции, объединяют в слои. Чем больше у нейронной сети слоёв, тем точнее будет выдаваемый ею результат и тем сложнее и дольше будет происходить её обучение. Нейроны соединяются между собой синапсами, имеющими один параметр преобразования данных – вес.
У нейронов есть особенность – почти все из них работают только с данными, находящимися в строго определённом диапазоне: либо [-1;1], либо [0;1]. Но большинство сведений не входит ни в один из них. Поэтому, чтобы нейронная сеть выполнила свою задачу, входные данные подвергают нормализации, иными словами, приводят к виду, который может обработать нейрон. Нормализацией сигнала занимается передаточная функция или, как её ещё называют, функция активации. Имеется несколько типов таких функций, например, линейная (она очень редко используется, с её помощью в основном производят тестирование нейронной сети), пороговая, сигмоидальная, гиперболический тангенс и другие.
Типов нейронных сетей также несколько. Они различаются количеством нейронов, их слоёв и связями между ними. Одним из первых типов нейросетей стал перцептрон, предложенный Ф. Розенблаттом в конце 50-х годов XX века, а электронная машина «Марк-1», на которой он был реализован, – первым нейрокомпьютером. В 80-х Т. Кохоненом были представлены нейронные сети с обучением без учителя, в том числе и такой важный тип нейросетей как самоорганизующаяся карта.
Даже если обучение на первый взгляд прошло успешно, тем не менее нужно всегда проверять его правильность, так как нейросеть может переобучиться и как следствие выдавать неверные результаты. Самая частая причина переобучения – это слишком большой объём данных. К тому же, даже если переобучения не произошло, не факт, что нейронная сеть научилась распознавать те признаки и объекты, которые нам необходимы.
Нейронные сети могут решать обширный спектр задач. В том числе:
- Распознавание образов. Сюда относятся и перевод рукописного текста в печатный, и определение типа предмета на изображении, и распознавание речи по голосу или движению губ, а также множество других аналогичных действий.
- Нейросети составляют подборки плейлистов на музыкальных и видеосервисах. Каждому пользователю предлагается уникальный набор медиа, который может ему понравиться. При этом нейросеть исходит из тем уже прослушанных или просмотренных записей.
- Прогнозирование. Нейросети могут предсказывать погоду или поведение акций на финансовых рынках. Выявляя некие зависимости на основе предыдущих данных и факторов, они довольно точно делают предположения относительно будущих.
- Нейросети могут разбивать данные на различные, заранее не известные ей классы. В процессе работы нейросеть сама определяет их количество и признаки, а также выделяет новые, если какое-то значение не попадает ни в один из ранее определённых.
Несмотря на длительность обучения, невозможность применения для точных вычислений и то, что нейронные сети не в состоянии дать однозначный ответ на поставленную задачу, этот метод информационных технологий очень перспективен из-за своей гибкости, устойчивости к внешним шумам и высокой отказоустойчивости.
На портале Эрудит.Онлайн можно проверить свои знания по основам нейронных сетей в тесте «Введение в нейронные сети». Все тесты на портале Эрудит.Онлайн можно проходить бесплатно!
Другие интересные статьи на нашем канале:
- XIX олимпиада по криптографии: разбор задач
- Задача № 1 из ЕГЭ-2021 по информатике