Учебники

Библиотеки и рамки

В этой главе мы будем связывать глубокое обучение с различными библиотеками и структурами.

Глубокое обучение и Теано

Если мы хотим начать кодирование глубокой нейронной сети, лучше у нас будет представление о том, как работают различные фреймворки, такие как Theano, TensorFlow, Keras, PyTorch и т. Д.

Theano — это библиотека Python, которая предоставляет набор функций для построения глубоких сетей, которые быстро обучаются на нашей машине.

Theano был разработан в Университете Монреаля, Канада, под руководством Йошуа Бенжио, пионера сети.

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

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

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

Однако, если мы используем Theano, мы должны построить глубокую сеть с нуля. Библиотека не предоставляет полной функциональности для создания определенного типа глубокой сети.

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

Хорошая новость заключается в том, что Theano позволяет строить нашу реализацию поверх векторизованных функций, предоставляя нам высоко оптимизированное решение.

Есть много других библиотек, которые расширяют функциональность Theano. TensorFlow и Keras можно использовать с Theano в качестве бэкэнда.

Глубокое обучение с TensorFlow

Googles TensorFlow — это библиотека питонов. Эта библиотека — отличный выбор для создания приложений глубокого обучения коммерческого уровня.

TensorFlow вырос из другой библиотеки DistBelief V2, которая была частью Google Brain Project. Эта библиотека призвана расширить мобильность машинного обучения, чтобы исследовательские модели могли применяться к приложениям коммерческого уровня.

Подобно библиотеке Theano, TensorFlow основан на вычислительных графах, где узел представляет постоянные данные или математическую операцию, а ребра представляют поток данных между узлами, который представляет собой многомерный массив или тензор; отсюда и название TensorFlow

Выход из операции или набора операций подается как вход в следующую.

Несмотря на то, что TensorFlow был разработан для нейронных сетей, он хорошо работает для других сетей, где вычисления могут быть смоделированы как граф потока данных.

TensorFlow также использует несколько функций из Theano, таких как устранение общих и подвыражений, автоматическое дифференцирование, общие и символические переменные.

Различные типы глубоких сетей могут быть построены с использованием TensorFlow, таких как сверточные сети, автоэнкодеры, RNTN, RNN, RBM, DBM / MLP и так далее.

Однако в TensorFlow отсутствует поддержка настройки гиперпараметров. Для этой функции мы можем использовать Keras.

Глубокое обучение и керас

Keras — это мощная и простая в использовании библиотека Python для разработки и оценки моделей глубокого обучения.

Он имеет минималистский дизайн, который позволяет нам создавать сеть слой за слоем; тренируй и беги.

Он объединяет эффективные библиотеки численных вычислений Theano и TensorFlow и позволяет нам определять и обучать модели нейронных сетей в несколько коротких строк кода.

Это высокоуровневый API нейронной сети, помогающий широко использовать глубокое обучение и искусственный интеллект. Он работает поверх ряда библиотек более низкого уровня, включая TensorFlow, Theano и так далее. Код Keras является переносимым; мы можем реализовать нейронную сеть в Keras, используя Theano или TensorFlow в качестве бэк-энда без каких-либо изменений в коде.