Евгений Сергеевич Штольц

Machine learning – от модели PyTorch до Kubeflow в облаке для BigData


Скачать книгу

лучше, а прототипируется. Излишнее количество ухудшает качество за счёт затухания, если для этого не применять определённые решения, как проброс данных с последующим суммировнием. Примерами архитектур нейронных сетей могут быть ResNeXt, SENet, DenseNet, Inception-Res Net-V2, Inception-V4, Xception, NASNet, MobileNet V2, Shuffle Net и Squeeze Net. Большинство из этих сетей предназначены для анализа изображений и именно изображения, зачастую, содержат наибольшее количество деталей и на эти сети возлагается наибольшее количество операций, чем и обуславливается их глубина. Одну из подобных архитектур мы рассмотрим при создании сети классификации цифр – LeNet-5, созданную в 1998.

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

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

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

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

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

      Как пишутся нейронные сети

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

      * FaceBook Pytorch – хороший вариант для обучения и прототипирования из-за высоко уровневости и поддержке различных

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

      * Google TenserFlow – имел изначально статический граф решения, ныне поддерживается и динамический. Используется в

      Gmail, Google Translate, Uber, Airbnb, Dropbox. Для