Всем привет. С вами блог «Data and Intelligence» - Блог обо всем, что связанно с Искусственным интеллектом и обработкой данных. Нейронные сети, алгоритмы, обработка и представление данных… Все это в этом блоге. Добро пожаловать. Сегодня мы продолжаем разбираться с нейронными сетями.
Видеоварсия:
В прошлый раз мы познакомились с пороговой логикой и пороговой активационный функцией. Сегодня мы расширим эту тему. И первым обобщением пороговой логики является много пороговая логика. Логическая полнота таких элементов обусловлена наличием группы порогов, реализуемых активационной функцией. Формула при этом выглядит так:
Теперь представим функциональную схему такого элемента. Данный элемент сложнее синтезируется чем пороговый, но имеет меньшие возможности по сравнению с элементами непрерывной логики, поэтому он будет являться только промежуточным в нашем рассмотрении.
А вот нейроны, построенные на непрерывной логике, это и есть то, что ассоциируется у многих с фразой «Нейронные сети». Это, можно сказать, обобщение много пороговой логики, при количестве порогов стремящимся к бесконечности. Но вот возможностей в плане форм и положения таких функций у нас масса.
Главные условия – активационная функция должна быть непрерывной, монотонно возрастающей и дифференцируемой. Таким образом, она формирует непрерывный выходной сигнал элемента нейронной сети. Рассмотрим частные случаи активационных функций.
Самой простой в данном случае, и самой близкой к много пороговой будет функция активации R, состоящая из линейной зоны и горизонтальной зоны насыщения. Реализуется достаточно просто, позволяет реализовывать непрерывные функции.
Более сложной является функция активации S – сигмоидная. Эта функция реализуется значительно сложнее предыдущей, однако ее главным преимуществом является возможность реализовывать собой нелинейные функции.
Функции активации типа тангенс – арктангенс являются развитием сигмоидной функции. Они в целом аналогичны, выбор конкретной функции определяется решаемой задачей.
Какие же сети строят из этих элементов? Давайте познакомимся с некоторыми типами архитектур нейронных сетей. Самой простой, и от этого самой распространенной, является сеть с прямыми связями. Характерны эти сети в первую очередь наличием латеральных связей и отсутствием перекрестных и обратных связей.
Латеральные связи – это связи между нейронами, когда каждый нейрон предыдущего слоя соединен более чем с одним нейроном последующего слоя и наоборот, каждый из последующего более чем с одним из предыдущего.
Частным случаем сети с прямыми связями является сеть, в которой число нейронов предыдущего и последующего слоев равно. Также латеральные связи могут иметь ограниченную глубину, и распространяться только на соседние нейроны.
Еще одной архитектурой является архитектура с перекрестными связями, когда на нейрон следующего слоя влияют не только нейроны предыдущего слоя, но и входной сигнал нейронов предыдущего слоя. При этом такие связи могут быть также латеральными или нет.
Существуют нейронные сети с обратными связями, когда выход следующего нейрона влияет на вход предыдущего слоя. Обратные связи могут быть как упорядоченными, так и аморфными.
Исторически многослойные нейронные сети появились в следствии ряда причин. Во-первых, линейный пороговый элемент не обеспечивает достаточного качества распознания для сложных функций.
Во-вторых, в N-мерном пространстве двоичных переменных пороговый элемент не может реализовать любую функцию от N двоичных элементов.
В-третьих, многослойные сети позволят улучшить качество распознания нейронной сетью, когда распознаваемые образы достаточно сложные и является сложной совокупностью двух векторов признаков.
Реализация нейронной сети с нелинейной активационной функцией является сложной задачей, в которой необходимо настроить большое количество весовых коэффициентов.
Так, когда вектор входных признаков имеет размерность порядка нескольких сотен, а размерность образа около 10, мы имеем десятки, а то и сотни тысяч весовых коэффициентов. Считается, что для нормального обучения на каждый весовой коэффициент необходимо не меньше сотни данных, таким образом, что их общее количество возрастает до миллионов точек обучающей выборки.
Для упрощения задачи часть нейронов в нейронной сети можно задать с фиксированными коэффициентами. Также можно задаться целью минимизировать количество нейронов. Однако нужно помнить, что в общем случае качество работы сети возрастает с увеличением числа слоем и числе нейронов в каждом слое.
Более подробно структуру многослойных нейронных сетей мы затронем в следующий раз. А на сегодня все! Если вам интересна эта тема или понравился ролик – ставьте лайк и подписывайтесь на канал. Делитесь этим и другими моими видео, напишите в комментарии свое мнение, это блог «Data and Intelligence» - всем пока.