Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData - страница 6
Что, касается самой профессии Data scines – это аналитик данных, который на основе понимания предметной области может с помощью статистических методов используя инструменты (языки, системы) получить предсказания. Более подробно о навыках:
* математическая статистика и теория вероятностей, чтобы мог выбрать статистические методы, где ML не нужен;
* алгоритмы ML: регрессия, классификация, кластеризация, порождения (генерации), сопоставление;
* программирование: аналитика на R, написание моделей на Python и подключение данных из Java+SQL (Hadoop, Hive, Spark, Pig), управление жизненным циклом модели (DevOps, SRE);
* мягки навыки: понимание предметной области (ориентация на бизнес результат), проектное управление (коммуникация для построения запуска модели), аналитика для проверки гипотез.
Пишем свою сеть
Для примера возьмём прописные числа от нуля до девяти, которые мы будет сопоставлять с печатными. Если прописные точно попадают в контур – то всё просто, нам нужно просто перебрать контура печатных и получить подходящий вариант. Такая задача не относится к задачам машинного обучения. Теперь усложним задачу – числа у нас не точно попадают под шаблон. Если прописные числа немного не вписываются в контур – мы просто находим какое–то отклонение. И тут возникает сложность при категоризации прописного числа на ноль и девятку, когда размер хвостика отделяет небрежное написание нуля от девятки. Другой момент в категоризации восьмёрки и девятки. Так, если кончик отгибается – это десятка, а если загибается и прикасается – то восьмёрка. Для решения подобной ситуации нужно разделить цифру на области и в зависимости и присвоить им разные коэффициенты. Так, соединение хвостика нижней части имеет очень высокое значение, нежели форма самих окружностей в классификации на восьмёрки и девятки. Определить помогут статистические данные по заранее данной выборке соответствия фигур восьмёркам и девяткам, где исследователь сможет определить, когда уже можно высчитать нижнее кольцо замкнутым и говорить о соответствии восьмёрке фигуры, а когда нет, говорить о соответствии девятке. Такой метод сортировки, основанный на выделении отдельных компонент, на различии которых и принимается решение о сортировке, называется методом главных компонент. Но мы можем программным способом разделить цифры на сектора и присвоить им коэффициенты.
Другой сложностью может быть то, что цифра может быть не в наблюдаемой области, а в произвольной, например, в углу. Для анализа самой цифры нам нужно переместить анализирующее окно в то место, где находится цифра. Для простоты пока будем полагать, что габариты анализирующего окна равны габаритам исследуемой цифры. Для решения этой задачи перед сетью ставят анализирующий слой, образующий карту нахождения цифры. Задача этого слоя определить местоположение цифры на картинке. Для простоты возьмём чёрное изображение на белом листе. Нам нужно пройтись анализатором цифры построчно по всему листку и определить местоположение. В качестве индикатора возьмём площадь чёрного цвета на индикаторе. После прохождения по листку бумаги и определения площади мы получим матрицу с цифрами площадей чёрного цвета. Где площадей чёрного цвета больше – в том месте цифра максимально вписалась в индикатор. Преобразование картинки в матрицу площадей называется операцией свёртки, а если это выполняет нейронный слой – свёрточный слой. Принцип работы был позаимствован у биологического зрительного нерва. Нейронные сети, в которых присутствует свёрточный слой (Conv Layers) называются свёрточными нейронными сетями (Convolutional Neural Network, CNN). Такие сети используют при распознавании изображения, а после при должном развитии их адаптировали для распознавания речи и текстов. Классически, CNN применяется для решения трёх задач при работе с изображениями: