Библиотеки и фреймворки
В этой главе мы свяжем глубокое обучение с различными библиотеками и фреймворками.
Глубокое обучение и Теано
Если мы хотим начать кодирование глубокой нейронной сети, лучше иметь представление о том, как работают разные фреймворки, такие как Theano, TensorFlow, Keras, PyTorch и т. Д.
Theano - это библиотека Python, которая предоставляет набор функций для построения глубоких сетей, которые быстро обучаются на нашей машине.
Theano был разработан в Монреальском университете, Канада, под руководством Йошуа Бенжио, пионера глубокой сети.
Theano позволяет нам определять и оценивать математические выражения с векторами и матрицами, которые представляют собой прямоугольные массивы чисел.
Технически говоря, нейронные сети и входные данные могут быть представлены в виде матриц, а все стандартные сетевые операции могут быть переопределены как матричные операции. Это важно, поскольку компьютеры могут выполнять матричные операции очень быстро.
Мы можем обрабатывать несколько значений матриц параллельно, и если мы создадим нейронную сеть с этой базовой структурой, мы сможем использовать одну машину с графическим процессором для обучения огромных сетей в разумное время.
Однако, если мы используем Theano, мы должны строить глубокую сеть с нуля. Библиотека не предоставляет полной функциональности для создания определенного типа глубокой сети.
Вместо этого мы должны закодировать каждый аспект глубокой сети, такой как модель, слои, активация, метод обучения и любые специальные методы, чтобы остановить переобучение.
Однако хорошей новостью является то, что Theano позволяет строить нашу реализацию поверх векторизованных функций, обеспечивая нам высокооптимизированное решение.
Есть много других библиотек, расширяющих функциональность Theano. TensorFlow и Keras можно использовать с Theano в качестве серверной части.
Глубокое обучение с TensorFlow
Googles TensorFlow - это библиотека Python. Эта библиотека - отличный выбор для создания приложений глубокого обучения коммерческого уровня.
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 в качестве back-end без каких-либо изменений в коде.