Рассмотрим задачу классификации изображений на два класса: "лестница" и "не лестница"
Опишем каждое изображение четырьмя признаками - интенсивностью черного цвета в каждом из пикселей
(выглядит знакомо, не правда ли?)
\(x^1 \land x^2 = [x^1 + x^2 - \frac{3}{2} > 0]\)
\(x^1 \vee x^2 = [x^1 + x^2 - \frac{1}{2} > 0]\)
\(\neg x^1 = [-x^1 + \frac{1}{2} > 0]\)
\(x^1 \oplus x^2 = [x^1 + x^2 - 2 x^1 x^2 - \frac{1}{2} < 0\)]
\(x^1 \oplus x^2 = [(x^1 \vee x^2) - (x^1 \land x^2) - \frac{1}{2} > 0]\)
Однослойная сеть:
\(a(\vec x, \vec w) = \sigma(\vec w \vec x) = \sigma(\sum\limits_{j=1}^d w_j^{(1)} x_j + w_0^{(1)} ) \)
Двуслойная сеть:
\( a(\vec x, \vec w) = \sigma^{(2)} (\sum\limits_{j=1}^D w_i^{(2)} \sigma^{(1)} (\sum\limits_{j=1}^d w_{ji}^{(1)} x_j + w_{0i}^{(1)} ) + w_0^{(2)} ) \)
Соединенный вектор параметров:
\( \vec w = \{w_i^{(2)}, w_{ij}^{(1)}, w_{i0}^{(1)}, w_0^{(2)} \} \)
Задача оптимизации:
\(\vec w^{*} = \arg \min\limits_{\vec w} Q(\vec w) \)
уже необязательно линейная
Каждая непрерывная функция \(a(x)\), заданная на единичном кубе d-мерного пространства, представима в виде:
где \(x = [x_1, ..., x_d]^T\), функции \(\sigma_i(\dot), f_{ij}(\dot) \) непрерывны, причем \(f_{ij}\) не зависят от выбора \(a\)
Искусственная нейросеть прямой связи с одним скрытым слоем может аппроксимировать любую непрерывную функцию многих переменных с любой точностью. Условиями для этого являются достаточное количество нейронов скрытого слоя и удачный подбор весов модели.
Причина частого выбора глубоких архитектур нейронных сетей вместо сетей с одним скрытым слоем заключается в том, что при процедуре подбора они обычно сходятся к решению быстрее.
Имеем размеченные данные, выбрали дифференцируемую функцию потерь и архитектуру сети
Как и у других линейных методов:
Удаляем параметр, если:
Свертка изображения (convolution)
\(w^{\top }\widetilde{x}=w^{\top }x + w^{\top }\eta\)
Рекомендация: сохранить модель или ее веса с помощью методов save или save_weights, чтоб на защите ее быстро подгрузить