Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData - страница 16

Шрифт
Интервал


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

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

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

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

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

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

* сети доверия ("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 год тысяч звёздочек: