Введение в машинное обучение - страница 15



from sklearn.neural_network import MLPClassifier

clf = MLPClassifier(hidden_layer_sizes = [10, 10], alpha = 5, random_state = 0, solver='lbfgs')


Пример применения MLPClassifier приведен в разделе 2.8 Пример простого классификатора.

2.6.5. Активационные функции

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






Рисунок 2.12. Активационные функции, применяемые в нейронных сетях


Резонный вопрос: «Почему исследователи используют несколько видов активационных функций?» Ответ, следующий: вычислительные затраты на расчеты результатов весьма велики, особенно в крупномасштабных сетях. Как известно, расчет выхода каждого слоя нейронной сети выполняется с использованием активационной функции. А в процессе выполнения алгоритма обратного распространения ошибки используется производная активационной функции. И в том, и в другом случае ReLU имеет большое преимущество с точки зрения вычислительных затрат. Следовательно, нейронная сеть будет обучаться значительно быстрее. С другой стороны, использование сигмоидальной функции для выходного слоя нейронной сети позволяет вычислять оценку вероятности принадлежности к классу, поскольку она принимает значения в диапазоне от 0 до 1.

2.7. Контрольные вопросы

Какие ученые оказали существенное влияние на развитие коннективизма?

Коннективизм или коннекционизм – в чем отличие этих двух терминов?

Приведите схему классического нейрона.

Приведите схему многослойной сети прямого распространения.

Как вычисляется выход многослойной нейронной сети прямого распространения?

Приведите функцию стоимости многослойной сети прямого распространения.

Сколько основных шагов в алгоритме обратного распространения? В чем их назначение?

Каково назначение кэша в процессе выполнения алгоритма обратного распространения ошибки?

Что такое эпоха обучения нейронной сети?

Укажите, какие виды процессов обучения нейронной сети применяются на практике.

В чем заключается сходство и отличие активационных функций, применяемых в нейронных сетях?

В чем заключается сходство активационных функций, применяемых в нейронных сетях?

В чем заключается преимущество активационной функции ReLU?

Какая активационная функция удобна для реализации бинарного классификатора?

Какими должны быть начальные значения весов и смещений в нейронной сети?

2.8. Пример простого классификатора

Рассмотрим интересную задачу классификации изображений, представленную в качестве примера применения TensorFlow [[57]]. TensorFlow в нашем решении мы используем лишь для загрузки данных, а в качестве классификатора применим упомянутый выше MLPClassifier. Суть задачи заключается в том, что необходимо классифицировать предметы одежды по их монохромным изображениям в низком разрешении (28 х 28). Набор данных Fashion-MNIST содержит 60 000 изображений для обучения и 10 000 для тестирования, начиная от футболок и брюк и заканчивая сумками и туфлями. Всего 10 классов изображений. Классы, пронумерованные от 0 до 9, и их описание показаны на рисунке 2.13.


Рисунок 2.13. Образцы Fashion-MNIST


Fashion-MNIST разработан в дополнение к классическому набору данных MNIST, который часто используют как «Hello, World» для отладки методов машинного обучения в задачах компьютерного зрения. MNIST содержит изображения рукописных цифр (0, 1, 2 и т.д.) в формате, идентичном формату изображений одежды набора Fashion-MNIST. Для современных программ компьютерного зрения MNIST стал «слишком прост», поэтому применение более сложного набора данных полезно для отладки систем машинного обучения.