vak: (Default)
[personal profile] vak
В продолжение темы нейронных сетей. Примерно с 2015 года они научились распознавать изображения лучше, чем это делают люди. К примеру, 50-слойная cеть ResNet, или сокращённо ResNet-50, умеет делить изображения на 1000 категорий. На каждое изображение затрачивается 3.8 миллиарда вычислений с плавающей точкой.

Если у вас есть компьютер с третьим Питоном и установленным пакетом tensorflow, то скачать готовую натренированную сеть ResNet-50 можно следующим скриптом:
#!/usr/bin/env python3
import tensorflow as tf
model = tf.keras.applications.ResNet50(weights = "imagenet", include_top=True)
model.save('resnet50.h5')
Получится бинарный файл resnet50.h5 размером 98 мегабайт. Он содержит как топологию самой сети, так и данные, так называемые веса и смещения. Для укладки сети с данными в файл используют формат HDF5, сокращённо H5. Посмотреть список слоёв сети и их параметры можно скриптом:
#!/usr/bin/env python3
import tensorflow as tf
model = tf.keras.models.load_model('resnet50.h5')
model.summary()
Результат здесь: https://gist.github.com/sergev/0923997ef8f3254bfd243716fee2d00d

Чтобы подробнее рассмотреть структуру сети, её можно преобразовать в читабельный формат YAML посредством скрипта:
#!/usr/bin/env python3
import tensorflow as tf
model = tf.keras.models.load_model('resnet50.h5') model_yaml = model.to_yaml()
with open("resnet50.yaml", "w") as yaml_file:
yaml_file.write(model_yaml)
Получится такой файл: resnet50.yaml

Date: 2019-07-24 04:05 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
И что, эта сеть не обманывается с помощью хитрой замены нескольких пикселей на картинке?

Date: 2019-07-24 06:42 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Обмануть её можно, выяснив, по каким признакам она научилась сортировать, а потом подсунуть что-то, что обманывает эти признаки. Например, наклеить на дорожный знак стикер или посадить кота на полосатый ковёр.

Только сами тренировщики не знают, как это работает. Потому что это не обучение, а дрессировка.

Date: 2019-07-24 21:08 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Это уже жульничество. У сетей нет способности на переключение внимания. Я всё-таки о взломах, не создающих дополнительных образов.

Date: 2019-07-24 19:09 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Что-то никакие картинки, кроме предлагаемых, оно у меня не загружает. Что предлагаемые распознаёт, неудивительно.
Я попробовал сделать super-resolution на предлагаемой картинке с лисой - получилась гадость. Так себе ещё их сети.