2016-02-21 5 views
4

После прохождения урока Caffe здесь: http://caffe.berkeleyvision.org/gathered/examples/mnist.htmlТрудно понять пример Caffe MNIST

Я действительно путают о различных (и эффективной) модели, используя в этом учебнике, который определен здесь: https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_train_test.prototxt

As Я понимаю, что сверточный слой в Caffe просто вычисляет сумму Wx + b для каждого входа без применения какой-либо функции активации. Если мы хотим добавить функцию активации, мы должны добавить еще один слой сразу под этим сверточным слоем, например Sigmoid, Tanh или Relu. Любая документация/учебник, который я прочитал в Интернете, применяет функцию активации к единицам нейронов.

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

Как сайт записка, другое сомнение для меня является max_iter в этом решателе: https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_solver.prototxt

У нас есть 60.000 изображений для обучения, 10000 изображений для тестирования. Итак, почему max_iter здесь всего 10.000 (и он все еще может получить> 99% точности)? Что делает Caffe на каждой итерации? На самом деле, я не уверен, соответствует ли точность точности правильного размера прогноза/теста.

Я очень удивлен этим примером, так как я не нашел никакого примера, рамки, которые могут достичь этой высокой точности в течение этого очень короткого времени (всего 5 минут, чтобы получить коэффициент точности 99%). Следовательно, я сомневаюсь, что должно быть что-то, что я неправильно понял.

Спасибо.

ответ

1

Caffe использует пакетную обработку. max_iter составляет 10 000, поскольку batch_size - 64. No of epochs = (batch_size x max_iter)/No of train samples. Таким образом, число epochs составляет около 10. Точность рассчитывается на test data. И да, точность модели действительно составляет> 99%, поскольку набор данных не очень сложный.

+1

Вы можете прочитать [здесь] (http://stackoverflow.com/a/33786620/1714410) больше о 'batch_size' и' max_iter' в 'solver.prototxt'. – Shai

+0

Эй, можете ли вы объяснить о первой проблеме, почему уровни активации кофе не существуют после сверточного слоя. – hunch

1

Для вашего вопроса о недостающих активационных слоях вы правы. В модели в учебнике отсутствуют уровни активации. Это, по-видимому, является надзором за учебником. Для настоящей модели LeNet-5 должны быть активирующие функции после слоев свертки. Для MNIST модель все еще работает на удивление хорошо без дополнительных уровней активации.

Для справки, в работе Ле Куна в 2001, говорится:

Как и в классических нейронных сетей, блоки в слоях до F6 вычислить скалярное произведение между их входным вектором и их весовым вектором, к которому смещение. Эта взвешенная сумма, обозначается A_i, для блока я, затем пропускают через сигмовидной Защемление функцию для получения состояния блока я ...

F6, является «блоб» между двумя полностью подключенные слои. Следовательно, первые полностью связанные слои должны иметь примененную функцию активации (в учебнике используются функции активации ReLU вместо сигмоида).

MNIST - приветственный пример мира для нейронных сетей. Это очень просто для сегодняшнего стандарта. Один полностью подключенный слой может решить проблему с точностью около 92%. Lenet-5 является большим улучшением по сравнению с этим примером.

Смежные вопросы