Записная книжка

Компьютерное зрение, машинное обучение, нейронные сети и т.п.

RNN, LSTM, GRU и другие рекуррентные нейронные сети.

Поразбираемся с одним интересным классом нейронных сетей, которые называются рекуррентные нейронные сети. Это сети, которые обычно используются в случае, когда входные или выходные данные представляют из себя последовательность элементов, упорядоченных по времени. Например, это может быть предложение состоящие из слов, видео как набор кадров, и т.п.

Читать дальше...

YOLO, SSD и другие.

Мы уже рассматривали два современных подхода к детектированию объектов на изображении при помощи свёрточных нейронных сетей: R-CNN, FastRCNN, FasterRCNN и Overfeat. Самое время разобраться с еще одним классом детекторов в который входят: YOLO, SSD и т.п.

Читать дальше...

CIFAR10 и много графиков.

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

Базовым датасетом мы выберем CIFAR10, с одной стороны он уже не такой тривиальный как MNIST и значит на нем можно смотреть на достаточно тонкие вещи, с другой он не такой большой как ImageNet, например, а значит можно провести серию экспериментов даже на лаптопе с крайне слабой видеокартой и не умереть от старости ожидая когда они закончатся.

Читать дальше...

Batch Normalization. Основы.

Batch Normalization - одна из тех методик (или даже Tips&Tricks), которая существенно упростила тренировку, а следовательно и использование нейронных сетей в различных задачах. Понятно, что взлет ракетой нейронных сетей, за последние 5+ лет, обязан в основном серьёзному увеличению возможностей железок. Но удалось бы добиться такого рапространия нейронных сетей, и особенно глубоких нейронных сетей без batch normalization?

Главные наблюдаемые достоинства batch normalization это ускорение тренировки (в смысле уменьшения количества итераций для получения нужного качества) и некая допускаемая вольность в подборе параметров: и инициализации весов сети, и learning rate и других метапараметров обучения. Таким образом ценность batch Normalization для нейронных сетей сложно преувеличить, а значит есть смысл разобраться: что это такое и откуда проистекает польза при применении.

Читать дальше...

Tensorflow (часть вторая)

Продолжаем разбираться с Tensorflow. Будем смотреть на вспомогательные операции, которые позволяют усложнить граф вычислений таким образом, чтобы поток данных мог идти по разным путям, в зависимости от содержимого этих данных. Но начнем мы с операции, которая позволит нам логировать сам процесс выполнения вычислений в графе.

Читать дальше...