Как я кошек отделил от собак при помощью нейросетки.

Фух, рассказывать тут можно много, но я расскажу на самой-самой поверхности.

Есть такой датасет на соревновании dogs vs cats, в котором нужно обучить что-нибудь на 25000 картинок собак и котов. Такой вот:

Как я кошек отделил от собак при помощью нейросетки. Нейронные сети, Сверточный слой, Коты и собаки вместе

Посидел я, почесал репу. Сделал на коленке сетку, состоящую из 5 сверточных слоев. Как ни странно, такая сетка не зашла, ибо просто слишком "тупая". Так думал я. Ну хорошо, запиливаю большущую сеть:

Как я кошек отделил от собак при помощью нейросетки. Нейронные сети, Сверточный слой, Коты и собаки вместе

из суммарно 42 сверточных слоев, что уже нереально дохрена. И что вы думаете? Нихрена! Не работает! Угадывает только в половине случаев, но при двух классах это не очень много...


Двое суток мучился, обращался в ods (наше научное сообщество), у друзей спрашивал. Задача простая, обидно прям. Решил уже было забить, как вдруг понял: у нас же между слоями образуется ерунда, надо нормализировать ерунду!


Добавляем слой BatchNorm (это такой слой, который приводит числа к адекватным, например оочень большие делит, а ооочень малькие умножает). И о чудо! 60% точности!


Такие дела :). Довел вот уже до 80%, наверное еще повышу. Если кому интересно - расскажу в следующем посте что означает рисунок выше, как создать такую сетку.


Спасибо за прочтение!


бм нашел в моем посте сиськи...

Искусственный интеллект

2.3K постов9.7K подписчика

Добавить пост

Правила сообщества

Здесь вы можете свободно создавать посты по теме Искусственного интеллекта. Добро пожаловать :)


Разрешено:


- Делиться вопросами, мыслями, гипотезами, юмором на эту тему.

- Делиться статьями, понятными большинству аудитории Пикабу.

- Делиться опытом создания моделей машинного обучения.

- Рассказывать, как работает та или иная фиговина в анализе данных.

- Век жить, век учиться.


Запрещено:


I) Невостребованный контент

  I.1) Создавать контент, сложный для понимания. Такие посты уйдут в минуса лишь потому, что большинству неинтересно пробрасывать градиенты в каждом тензоре реккурентной сетки с AdaGrad оптимизатором.

  I.2) Создавать контент на "олбанском языке" / нарочно игнорируя правила РЯ даже в шутку. Это ведет к нечитаемости контента.


II) Нетематический контент

  II.1) Создавать контент, несвязанный с Data Science, математикой, программированием.

  II.2) Создавать контент, входящий в противоречие существующей базе теорем математики. Например, "Земля плоская" или "Любое действительное число представимо в виде дроби двух целых".

  II.3) Создавать контент, входящий в противоречие с правилами Пикабу.


III) Непотребный контент

  III.1) Эротика, порнография (даже с NSFW).

  III.2) Жесть.


За нарушение I - предупреждение

За нарушение II - предупреждение и перемещение поста в общую ленту

За нарушение III - бан

9
DELETED
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку
2
Автор поста оценил этот комментарий

а как с 60% до 80% увеличил-то? Этот скачок в описания конкурса упоминается не иначе как "state of the art" решение, а у тебя ррраз - "Довел вот уже до 80%"

раскрыть ветку
3
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку
1
Автор поста оценил этот комментарий

Теперь в этой сети поменяй вход и выход местами. Потом на новый вход подай «кот» и на выходе получи картинку - то как нейронная сеть представляет себе кота.

раскрыть ветку
Автор поста оценил этот комментарий

Подписался.