Чтение онлайн

на главную

Жанры

Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData
Шрифт:

Если же нам нужно не просто распознать цифру или букву, а их последовательность, заложенный в них смысл, то нам нужна связь между ними. Для этого нейронная сеть после анализа первой буквы отравляет на свой вход вместе со следующей буквой результат анализа текущей. Это можно сравнить с динамической памятью, а сеть реализующую такой принцип, называют рекуррентной (RNN). Примеры таких сетей (с обратными связями): сеть Кохонена, сеть Хопфилда, ART– модели. Рекуррентные сети анализируют текст, речь, видео информацию, производят перевод с одного языка на другой, генерируют текстовое описание к изображениям, генерируют речь (WaveNet MoL, Tacotron 2),

категоризируют тексты по содержанию (принадлежность к спаму). Основным направлением, в котором работают исследователи в попытке улучшить в подобных сетях является определение принципа, по которому сеть будет решать, какую, на сколько долго и на сколько сильно будет сеть учитывать предыдущую информацию в будущем. Сети, приминающие специализированные инструменты по сохранению информации, получили название LSTM (Long–short term memory).

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

В общем, имеются сети принципиально отличающиеся устройством и принципами:

* сети прямого распространения;

* свёрточные нейронные сети ;

* рекуррентные нейронные сети;

* автоматический кодировщик (классический, разряженный, вариационный, шумоподавляющий) ;

* сети доверия ("deep belief");

* генеративно состязательные сети – противостояние двух сетей: генератора и оценивателя;

* нейронные машины Тьюринга – нейронная сеть с блоком памяти;

* нейронные сети Кохонена – для обучения без учителя;

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

Рассмотрим более подробно наиболее часто применяемые сети, а именно, сети прямого распространения, свёрточные и рекуррентные:

Нейронные сети прямого распространения:

* два входа и один выход – Percetron (P);

* два входа, два нейрона полносвязных с выходом и один выход – Feed Forward (FF) или Redial Basics Network (RBN);

* три входа, два слоя по четыре полносвязных нейрона и два выхода Deep Feed Forward (DFF);

* глубокие нейронные сети;

* сеть экстремального распространения – сеть со случайными связями (нейронная эхо–сеть).

Cвёрточные нейронные сети:

* традиционные свёрточные нейронные сети (CNN) – классификация изображений;

* развёртывающие нейронные сети – генерация изображений по типу;

* глубинные свёрточные обратные графические сети (DCEGC) – соединение свёрточной и развёртывающей нейронных сетей для преобразования или объединения изображений.

Рекуррентные нейронные сети:

* рекуррентные нейронные сети – сети с памятью у нейронов для анализа последовательностей, в которых последовательность имеет значение, таких как текст, звук и видео;

* сети с долгой краткосрочной памятью (LSTM) – развитие рекуррентных нейронных сетей, в которых нейроны могут классифицировать данные, какие стоит запомнить в долгоживущую память от тех, которые стоит забыть и удалить информацию из памяти о них;

* глубокие остаточные сети – сети со связями между слоями (по работе сходны с LSTM);

* управляемые рекуррентные нейроны (GRU).

Основы для написания сетей.

До 2015 года с большим отрывом лидировала scikit–learn, которую догонял Caffe, но с выходом TensorFlow он сразу стал лидером. Со временем только

набирая отрыв с двухкратного на трёхкратный к 2020 году, когда на GitHub набралось более 140 тысяч проектов, а у ближайшего конкурента чуть более 45 тысяч. На 2020 году по убывающей расположились Keras, scikit–learn, PyTorch (FaceBook), Caffe, MXNet, XGBoost, Fastai, Microsoft CNTK (CogNiive ToolKit), DarkNet и ещё некоторые менее известные библиотеки. Наиболее популярными для отрытых проектов на GitHub можно выделить библиотеку PyTorch и TenserFlow. Если смотреть на количество звёздочек на GitHub по библиотекам, то на 2020 год тысяч звёздочек:

* TenserFlow: 153 * Keras: 51 * PyTorch: 46 * Sckit-learn: 45 * Caffe: 31 * MXNet: 19 * CNTK: 17 * Theane: 9 * Caffe2: 8

PyTorch хорошо для прототипирования, изучения и испробования новых моделей. TenserFlow популярен в производственной среде, а проблема низкого уровня описания решается с помощью Keras:

* FaceBook PyTorch – хороший вариант для обучения и прототипирования из–за высокого уровня и поддержки различных сред, динамический граф, может дать преимущества при обучении. Используется в Twitter, Salesforce.

* Google TenserFlow – имел изначально статический граф решения, ныне поддерживается и динамический. Используется в Gmail, Google Translate, Uber, Airbnb, Dropbox. Для привлечения использования в облаке Google под него внедряется аппаратный процессор Google TPU (Google Tensor Processing Unit).

* Keras является высокоуровневой настройкой, обеспечивающей больший уровень абстракции для TensorFlow, Theano или CNTK. Хороший вариант для обучения. К примеру, он позволяет не указывать размерность слоёв, вычисляя её сам, позволяя разработчику сосредоточиться на слоях архитектуры. Обычно используется поверх TenserFlow. Код на нём поддерживается Microsoft CNTK.

Так же имеются более специализированные фреймворки:

* Apache MXNet (Amazon) и высокоуровневая надстройка для него Gluon. MXNet – фреймворк с акцентом на масштабирование, поддерживает интеграцию с Hadoop и Cassandra. Поддерживается C++, Python, R, Julia, JavaScript, Scala, Go и Perl.

* Microsoft CNTK имеет интеграции с Python, R, C#, благодаря тому что большая часть кода написана на С++. То, что вся основа написана на С++, не говорит о том, что CNTK будет обучать модель на C++, а TenserFlow на Python (который медленный), так как TenserFlow строит графы и уже его выполнение осуществляется на C++. Отличается CNTK от Google TenserFlow и тем, что он изначально был разработан для работы в кластерах Azure с множеством графических процессоров, но сейчас ситуация выравнивается и TenserFlow поддерживает кластера.

* Caffe2 – фреймворк для мобильных сред.

* Sonnet – надстройка DeepMind поверх TensorFlow для обучения сверх глубоких нейронных сетей.

* DL4J (Deep Learning for Java) – фреймворк с акцентом на Java Enterprise Edition. Высока поддержка BigData на Java: Hadoop и Spark.

Со скоростью доступности новых предобученных моделей ситуация разнится и пока лидирует PyTorch. По поддержке сред, в частности публичных облаков, лучше у Фреймворках, продвигаемых вендерами этих облаков, так лучше поддержка TensorFlow лучше в Google Cloud, MXNet – в AWS, CNTK – в Microsoft Azure, D4LJ – в Android, Core ML – в iOS. По языкам общая поддержка в Python практически у всех, в частности TensorFlow поддерживает JavaScript, C++, Java, Go, C# и Julia.

Поделиться:
Популярные книги

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6