Евгений Штольц - Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData
- Название:Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:2021
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Евгений Штольц - Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData краткое содержание
* проводит читателя через процесс создания, обучения и развития нейронной сети, показывая детально на примерах
* повышает кругозор, показывая, какое она может занимать место в BigData с точки зрения Архитектора
* знакомит с реальными моделями в продуктовой среде
Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
* классификация изображений, например, фотографий собак и кошек по роду животных; * определение объекта на изображении, например, определение нахождения и положения пешехода при пилотировании беспилотным автомобилем; * сегментации изображения, например, определение на рентгенах контуров опухолей.
Если изображение находится в произвольном месте, или имеются другие изображения, то для определения потребуется несколько слоёв нейронной сети, и результатом будет являться также карта расположения цифры, но принятие решения о её нахождения нужно её идентифицировать. Таким образом, первый слой будет иметь количество нейронов отображающих карты, что по горизонтали и вертикали будет соответствовать ширине и высоте листка минус соответствующую ширину и высоту анализирующего экрана, делённую на шаг сдвига анализирующего окна. Размерность второго же слоя в нейронах равна размерности анализируемого окна, чтобы иметь возможность идентификации цифры. Если мы проведём связи от всех нейронов слоя поиска к слою анализирующего окна, то на выходе мы получим набор снимков влитых вместе. Следующий слой будет иметь размерность, равную количеству анализируемых элементов цифр. К примеру, цифру можно представить в виде не полностью закрашенной восьмёрки, тогда, закрашиваемых сегментов будет семь. Все нейроны свёрточного слоя будут связаны со всеми нейронами слоя анализа сегментов цифры. Задача нейрона этого слоя быть связанным с нейронами предыдущего, ответственными за данный сегмент и выдать результат наличия или отсутствия данного сегмента в цифре. Следующий слой имеет состоит из десяти нейронов, соответствующие цифрам от нуля до девяти. Всего его нейроны связаны с предыдущим слоем и активируются при получении сигналов от них. Так, нейрон, ответвленный за цифру один будет активироваться, если получит информацию, что два крайних правых сектора будут активны и не активны все остальные. Описанный алгоритм детектирования искомого изображения называется R–CNN (Region–based Convolutional Network) и использовался долгое время. Далее он был сменён Fast R–CNN, а ныне применяется YOLO (Real–Time Object Detection) из–за большего качества и скорости работы.
На выходе мы получим активацию того выходного нейрона, который соответствует определённой цифре. Он это делает на основе данных, получаемых от нейронов с предыдущего слоя, ответственных за сектора цифры, а именно от каких нейронов пришли сигналы, а от каких нет. Обозначим приходящие сигналы от нейронов по связям за ноль, то есть сектор не закрашен, а единице будет соответствовать случай, когда сектор закрашен. Тогда, вес у связей от правых секторов – положительный, что даст единицу, а у остальных – отрицательный, что не даст получить на выходе единицу если ещё какой–то сектор активирован. На выходе нейрона стоит нормализатор, который отвечает за принятие решения. Ему необходимо решить, на основе входных данных и весов, отдавать единицу или ноль. Для этого он перемножает входные данные на веса, складывает их, и по пороговому значению выдаёт единицу или ноль. Этот нормализатор нужен для того, чтобы после суммирования информации приходящей с нейронов, он передал на следующий слой нейронов логическую информацию, степень важности которой будет определяться весами на принимающем нейроне. Для этого используются функции, которые преобразуют весь диапазон уровней входных сигналов в диапазон от нуля до единицы. Такая функция носит название функций активации и подбирается для всей нейронной сети. Есть множества функций, которые всё, что меньше единицы считают нулём. Сами веса не кодируются, а подбираются во время обучения. Обучение бывает с учителем (supervised) и без (ansupervised) и они пригодны для разного класса задач. При обучении без учителя (автоматические кодировщики и порождающие сети) мы даём данные на вход нейронов сети и ожидаем, когда она сама найдёт какие-нибудь закономерности, при этом данные не размечены (не имеют каких–то меток с указанием результата), что позволяет выявить ранее неизвестные особенности, сходства и различия, и классифицирует по ещё ненайденным признакам, но как это будет происходить, предсказать сложно. Самые распространённые типы задач при обучении с учителем: классификация (имеющееся данные нужно отнести к одной из групп) и регрессия (к указанной группе нужно сгенерировать данные). Такие сети применяют в маркетинге. Задачей без учителя являются задача кластеризации, в которую входит определение в наборе данных группировки этих данных по каким-то ещё не выявленным признакам. Задача кластеризации используются в рекомендательных системах, когда нужно выявить группу товаров, которые нравится определённым людей со схожими параметрами. Получив группу товаров и параметры людей, можно новым посетителям на основании этих параметров рекомендовать подходящую им группу (кластер) товаров. Сама кластеризация многомерна, а для отображения на графике применяют метод понижения размерности, который хоть и утрачивает информацию, но позволяет дать какое-то наглядное визуальное представление с заметными границами и точек сгруппированных внутри полигонов (кластеров). Кластеризация нужна для выявления групп, которым можно предложить персонализированные (таргетированные) рекомендации, а мы рассмотрим в книге кластеризацию слов в языке (эмбеддинги). Методы кластеризации: k-Means кластеризации по точному числу кластеров с единым выраженным центром, Density-Based Spatial Clustering of Applications with Noise (DBSCAN) кластеризации по уровню схожести в кластере, Agglomerative clustering для вложенной кластеризации. Все их поддерживает библиотека Scikit-learn. Пример алгоритмов без учителя: Apriori, Euclat, FP–growth. Для большинства задач нам нужно получить классификацию по заданным группам, для чего мы на вход подаём обучающую выборку с размеченными данными, содержащими метки о правильном решении (например, классификации), и стараемся добиться совпадения с этой тестовой выборкой. Также может быть с подкреплением (reinforcement), при котором сеть пытается найти наилучшее решение на основе стимулов, например, при игре добиться превосходства перед соперником, в роботе пылесосе всосать в себя как можно больше мусора, в самоуправляемых машинах доставить как можно быстрее, в торгах на биржах получить максимальную выгоду, при управлении процессами предприятия – достигнуть максимальной эффективности. При этом закладываются правила, например, пылесосу не нужно загонять кота на шкаф во имя чистоты, машина не должна нарушать правила чтобы улучшить результат, на бирже нельзя излишне рисковать без статистики и тому подобное. Это может быть тоже использовано при обучении, например в сетях Deep Q–Network (DQN). Рассмотрение такой стратегии обучения как обучение с подкреплением, пока, отложим на потом. При обучении с учителем требуется гораздо меньше попыток подобрать вес, но всё же это от нескольких сотен до десятков тысяч, при этом сама сеть содержит огромное количество связей. Для того чтобы найти веса, мы подбираем их направленным уточнением. С каждым проходом мы уменьшаем ошибку, и когда точность нас устроила, мы можем подавать тестовую выборку для валидации качества обучения (сеть могла плохо обучиться или переобучиться), после этого можно использовать сеть. В нашем примере, это могут быть немного искривлённые цифры, но благодаря тому, что мы выделяем области, это не сильно сказывается на точности.
Читать дальшеИнтервал:
Закладка: