Другие языки программирования и технологии
Какие преимущества имеет трёхслойная нейронная сеть над однослойной?
Какие преимущества имеет трёхслойная нейронная сеть над однослойной в практическом плане и какие недостатки, есть ли существенная разница между ними?
Многослойные нейросети могут классифицировать множества, которые не делятся линейным пространством.
Простейший пример.
Допустим у вас однослойная нейросеть имеет два входа и один выход. На входы вы можете посылать или 0 или 1. Получается, что в 2-мерном пространстве у вас 4 точки, которые лежат в вершинах единичного квадрата. Одной прямой вы можете всегда отделить две любые точки, которые лежат на любой одной стороне квадрата. Но вы никогда не сможете отделить от остальных точек любые две точки, которые лежать на кокой-нибудь диагонали квадрата.
Поэтому, если, например, вы на вход подаете 4 числа (0, 1, 2 и 3) в двоичной кодировке (00, 01, 10 и 11), то однослойная сеть может, например, отделить два больших числа от 2-х маленьких, так как 00 и 01 (0 и 1) лежат на одной стороне квадрата, а 10 и 11 (2 и 3) на другой стороне квадрата. Но эту однослойную сеть принципиально невозможно обучить так, чтобы она в один класс отнесла 0 и 3 (00 и 11), так как они лежать на концах диагонали квадрате. Не существует таких двух весов, чтобы сформировать прямую линию, которая отделяет эти 2 числа от других.
А уже в 2-слойной сети могут быть такие 2 пары весов, которые соответствуют двум прямым линиям, которые делят плоскость на 3 (или 4) части, в одну из которых попадут вместе друг с другом точки 00 и 11. То есть такая нейросеть может быть обучена так, что она будет отдельно распознавать класс, состоящий из двух чисел: 0 и 3.
Простейший пример.
Допустим у вас однослойная нейросеть имеет два входа и один выход. На входы вы можете посылать или 0 или 1. Получается, что в 2-мерном пространстве у вас 4 точки, которые лежат в вершинах единичного квадрата. Одной прямой вы можете всегда отделить две любые точки, которые лежат на любой одной стороне квадрата. Но вы никогда не сможете отделить от остальных точек любые две точки, которые лежать на кокой-нибудь диагонали квадрата.
Поэтому, если, например, вы на вход подаете 4 числа (0, 1, 2 и 3) в двоичной кодировке (00, 01, 10 и 11), то однослойная сеть может, например, отделить два больших числа от 2-х маленьких, так как 00 и 01 (0 и 1) лежат на одной стороне квадрата, а 10 и 11 (2 и 3) на другой стороне квадрата. Но эту однослойную сеть принципиально невозможно обучить так, чтобы она в один класс отнесла 0 и 3 (00 и 11), так как они лежать на концах диагонали квадрате. Не существует таких двух весов, чтобы сформировать прямую линию, которая отделяет эти 2 числа от других.
А уже в 2-слойной сети могут быть такие 2 пары весов, которые соответствуют двум прямым линиям, которые делят плоскость на 3 (или 4) части, в одну из которых попадут вместе друг с другом точки 00 и 11. То есть такая нейросеть может быть обучена так, что она будет отдельно распознавать класс, состоящий из двух чисел: 0 и 3.
Однослойная, это просто нелинейный фильтр входных данных. Трехслойную уже можно использовать для распознавания.
Вообще, есть понятие информационная емкость нейросети, и оно сильно кореллирует с количеством слоев
Вообще, есть понятие информационная емкость нейросети, и оно сильно кореллирует с количеством слоев
Похожие вопросы
- Делаю нейронную сеть на C++. Как в C++ работать с микрофоном?
- Все больше слышу -- нейронные сети научились распознавать фото / рисовать тушью / водить авто / выявлять преступников..
- Почему для оптимальной настройки нейронных сетей используется алгоритм Левинсона-МакКварта, а для синтеза цифровых...
- Как формируются живые нейронные сети?
- Нейронная сеть и ИИ Можно ли назвать искусственную нейронную сеть реализацией искусственного интеллекта?
- Искусственный интелект, нейронные сети
- Вопрос по нейронным сетям. Какую базу знаний надо иметь, чтобы их изучать?
- Из за чего так "распиарены" сейчас нейронные сети? Они же примитивные
- Стоит ли изучать нейронные сети
- Нейронные сети