Черновик:Нейронная сеть (компьютерная программа)

Материал из свободной русской энциклопедии «Традиция»
(перенаправлено с «Нейросеть»)
Перейти к навигации Перейти к поиску

«Нейросети теперь повсюду, и распознавание[1] объектов на картинках — это одно из самых популярных применений. Но что, если ты не хочешь, чтобы объекты на твоей картинке распознали?

Для исследования нам нужна подопытная нейронная сеть, которую можно будет препарировать. Для этого подойдет ImageRes50v2, одна из самых передовых сетей для классификации изображений, натренированная на датасете ImageNet.

Код будем писать на Python 3 — для работы с нейросетями это фактически стандарт.

… нейронные сети — это большие математические функции, и, чтобы найти ложное изображение, разумно использовать их же. Так что наша задача сводится к оптимизации методом градиентного спуска.

Математика такой атаки до неприличия проста: мы выворачиваем процесс обучения нейронной сети наизнанку. Вместо фиксированных входных данных (тренировочного датасета) и обучающейся сети тут мы имеем меняющиеся, „‎обучающиеся“‎ входные данные и фиксированную сеть.

Как и для обучения нейронной сети, нам нужно два параметра: функция потерь (способ подсчитать ошибку) и градиент (мы используем производную нейронной сети).

И градиент, и ошибку мы можем посчитать, используя алгоритм обратного распространения, просто приняв все веса нейронной сети правильными (и, соответственно, неизменными), а вход — ошибочным и подлежащим исправлению.»[2]

Ссылки[править | править код]

Черновик
Исправьте и дополните до полноценной статьи Русской Энциклопедии.
  1. Внимание, в этом разделе математики и программирования „принято“ использовать лексику человеческого общения к неодушевлённым инструментам.
  2. Исходный кот. Как заставить нейронную сеть ошибиться // Михаил Киреев 2019