Machine learning – от модели PyTorch до Kubeflow в облаке для BigData
Евгений Сергеевич Штольц
В этой книге главный Архитектор Департамента Архитектуры Управления Технической Архитектуры (Центра Облачных Компетенций Cloud Native и Корпортивного университета архитекторов) Сбербанка делится знаниями и опытом с читателей в области ML. полученных в работе Школе архитекторов и. Автор: * проводит читателя через процесс создания, обучения и развития нейронной сети, показывая детально на примерах * повышает кругозор, показывая, какое она может занимать место в BigData с точки зрения Архитектора * знакомит с реальным моделей использование в продуктовой среде
Евгений Штольц
Machine learning – от модели PyTorch до Kubeflow в облаке для BigData
О книге
Книга состоит из разделов:
* Введение Machine learning.
* Как пишутся сети.
* Создаём первую сеть. Создаём простую нейросеть на PyTorch.
* Улучшаем распознаванию на цветных картиночках. Здесь демонстрируется обучение и работа сети для
цветных картинок, методы повышения качества предсказаний сети.
* Современные архитектуры сетей. Приводятся архитектурные принципы для улучшения своих сетей.
* Использование предобученных сетей. Демонстрируется использование в своих сетях уже обученных слов.
* Масштабирование ML. Приводится примеры подготовки окружения для запуска их в облачной инфраструктуре.
* Получение данных от BigData. Рассказывается как можно из Jupyter подключаться к различным источникам
данных, в том числе BigData, для обучения моделей.
* Подготовка больших данных. В этом разделе описываются BigData технологии, такие как Hadoop и Spark, которые
являются источниками данных для обучения моделей.
* ML в промышленной среде. В этом разделе рассказываются о таких системах, как Kubeflow и MLflow.
Введение Machine learning
Искусственный интеллект область на стыке многих наук. Один из способов его достичь – машинное обучение, когда мы подаём него данных и на их основе происходит обучение нахождению решений и выявление закономерностей и данных, ранее которых не было. Для обучения могут использоваться статистические алгоритмы, например, на языке R, поиск в глубину на языке Prolog или поиск в ширину на Refal, а также подстраивающиеся структуры – нейронные сети. Нейронные сети, в зависимости от задач, скроются по разным принципам, имеют структуру и по разному обучаются. В последнее время наибольший прорыв получили нейронные сети представления данных (Representation learning), занимающиеся выявлении в информации закономерностей, так как саму информацию из-за её размеров они не могут запомнить. Больших эфект дают глубокие нейронные сети, имеющие множество уровней признаков, признаки на последующих уровнях строются на основании признаков с предыдущих уровней, о них и пойдёт речь в этой главе.
Под машинным обучением (Machine learning, ML) понимается адаптация преобразования входных данных в выходные в зависимости от истории решений. Такой класс задач решается или алгоритмическим способом, или с помощью нейронных сетей, о том где какое решение и в какой ситуации лучше применять далее и пойдёт речь. Для примера возьмём прописные числа от нуля до девяти, которые мы будет сопоставлять с печатными. Если прописные точно попадают в контур – то всё просто, нам нужно просто перебрать контура печатных и получить подходящий вариант. Такая задача не относится задачам машинного обучения. Теперь усложним задача – числа у нас не точно попадают под шаблон. Если прописные числа немного не вписываются в контур – мы просто находим какое-то отклонение. И тут возникает сложность при категоризации прописного числа на ноль и девятку, когда размер хвостика отделяет небрежное написание нуля от девятки. Другой момент в катогоризации восьмёрки и девятки. Так, если кончик отгибается – это десятка, а если загибается и прикасается – то восьмёрка. Для решения подобной ситуации нужно разделить цифру на области и в зависимости и присвоить им разные коэффициенты. Так, соединение хвостика нижней части имеет очень высокое значение, нежели форма самих окружностей в классификации на восьмёрки и девятки. Определит