Openbravo-rus.ru

Образование по русски
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Машинное обучение со средой

Гид по структуре машинного обучения

Контент-маркетолог Мария Пушикова специально для блога Нетологии перевела статью Charles-Antoine Richard о том, что такое машинное обучение и какие методы машинного обучения существуют.

Совсем недавно мы обсуждали необходимость использования методов машинного обучения в бизнесе. Это подтолкнуло меня изучить основы методов машинного обучения, во время чего я сознал: большая имеющейся часть информации направлена на разработчиков или специалистов по Big Data.

Поэтому я решил, что читателям будет интересно прочесть объяснение методов машинного обучения от человека нетехнической специальности.

Машинное обучение — это…

Вот самое простое определение, которое я нашел:

Машинное обучение — это «[…] класс методов искусственного интеллекта, которые позволяют улучшить результаты работы компьютеров путем обучения на известных данных», — Berkeley.

Теперь давайте разложим все по полочкам, чтобы выстроить основы знаний в области машинного обучения.

…подраздел искусственного интеллекта (ИИ)

ИИ — это наука и технология по разработке мероприятий и методов, позволяющих компьютерам успешно выполнять задачи, которые обычно требуют интеллектуального осмысления человека. Машинное обучение — часть этого процесса: это методы и технологии, с помощью которых можно обучит компьютер выполнять поставленные задачи.

…способ решения практических задач

Методы машинного обучения все еще в развитии. Некоторые уже изучены и используются (рассмотрим дальше), но ожидается, что со временем их количество будет только расти. Идея в том, что совершенно разные методы используются для совершенно разных компьютеров, а различные бизнес-задачи требуют различных методов машинного обучения.

… способ увеличить эффективность компьютеров

Для решения компьютером задач с применением искусственного интеллекта нужны практика и автоматическая поднастройка. Модель машинного обучения нуждается в тренировке с использованием базы данных и в большинстве ситуаций — в подсказке человека.

…технология, основанная на опыте

ИИ нуждается в предоставлении опыта — иными словами, ему необходимы данные. Чем больше в систему ИИ поступает данных, тем точнее компьютер взаимодействует с ними, а также с теми данными, что получает в дальнейшем. Чем выше точность взаимодействия, тем успешнее будет выполнение поставленной задачи, и выше степень прогностической точности.

Простой пример:

  1. Выбираются входные данные и задаются условия ввода (например, банковские операции с использованием карт).
  2. Строится алгоритм машинного обучения и настраивается на конкретную задачу (например, выявлять мошеннические транзакции).
  3. Используемые в ходе обучения данные дополняются желаемой выходной информацией (например, эти транзакции — мошеннические, а эти нет).

Как работает машинное обучение

Машинное обучение часто называют волшебным или черным ящиком:

Вводишь данные → «волшебный черный ящик» → Миссия выполнена.

Давайте посмотрим на сам процесс обучения, чтобы лучше понять, как машинное обучение справляется с данными.

Машинное обучение основывается на данных. Первый шаг — убедиться, что имеющиеся данные верны и относятся именно к той задаче, которую вы пытаетесь решить. Оцените свои возможности для сбора данных, обдумайте их источник, необходимый формат и т. д.

Очистка

Данные зачастую формируются из различных источников, отображаются в различных форматах и языках. Соответственно, среди них могут оказаться нерелевантные или ненужные значения, которые потребуется удалить. И наоборот, каких-то данных может не хватать, и потребуется их добавить. От правильной подготовки базы данных прямым образом зависит и пригодность к использованию, и достоверность результатов.

Разделение

В зависимости от размера набора данных в некоторых случаях может потребоваться только небольшая их часть. Обычно это называется выборкой. Из выбранной части данные надо разделить на две группы: одна для использования алгоритмом, а другая для оценки его действий.

Обучение

Этот этап фактически направлен на поиск математической функции, которая точно выполнит указанную задачу. Обучение разнится в зависимости от типа используемой модели. Построение линий в простой линейной модели — это обучение; генерация дерева принятия решений для алгоритма случайного леса — это также обучение. Изменение ответов при построении дерева решений поможет скорректировать алгоритм.

Чтобы было проще, сосредоточимся на нейронных сетях.

Суть в том, что алгоритм использует часть данных, обрабатывает их, замеряет эффективность обработки и автоматически регулирует свои параметры (также называемый метод обратного распространения ошибки) до тех пор, пока не сможет последовательно производить желаемый результат с достаточной достоверностью.

Оценка

После того как алгоритм хорошо показал себя на учебных данных, его эффективность оценивается на данных, с которыми он еще не сталкивался. Дополнительная корректировка производится при необходимости. Этот процесс позволяет предотвратить переобучение — явление, при котором алгоритм хорошо работает только на учебных данных.

Оптимизация

Модель оптимизируется, чтобы при интеграции в приложение весить как можно меньше и как можно быстрее работать.

Какие существуют типы машинного обучения и чем они отличаются

Существует множество моделей для машинного обучения, но они, как правило, относятся к одному из трех типов:

  • обучение с учителем (supervised learning);
  • обучение без учителя, или самообучение (unsupervised learning);
  • обучение с подкреплением (reinforcement learning).

В зависимости от выполняемой задачи, одни модели могут быть более подходящими и более эффективными, чем другие.

Обучение с учителем (supervised learning)

В этом типе корректный результат при обучении модели явно обозначается для каждого идентифицируемого элемента в наборе данных. Это означает, что при считывании данных у алгоритма уже есть правильный ответ. Поэтому вместо поисков ответа он стремится найти связи, чтобы в дальнейшем, при введении необозначенных данных, получались правильные классификация или прогноз.

В контексте классификации алгоритм обучения может, например, снабжаться историей транзакций по кредитным картам, каждая из которых помечена как безопасная или подозрительная. Он должен изучить отношения между этими двумя классификациями, чтобы затем суметь соответствующим образом маркировать новые операции в зависимости от параметров классификации (например, место покупки, время между операциями и т. д.).

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

Обучение без учителя (unsupervised learning)

В этом случае у алгоритма в процессе обучения нет заранее установленных ответов. Его цель — найти смысловые связи между отдельными данными, выявить шаблоны и закономерности. Например, кластеризация — это использование неконтролируемого обучения в рекомендательных системах (например, люди, которым понравилась эта бутылка вина, также положительно оценили вот эту).

Обучение с подкреплением

Этот тип обучения представляет собой смесь первых двух. Обычно он используется для решения более сложных задач и требует взаимодействия с окружающей средой. Данные предоставляются средой и позволяют алгоритму реагировать и учиться.

Область применения такого метода обширна: от контроля роботизированных рук и поиска наиболее эффективной комбинации движений, до разработки систем навигации роботов, где поведенческий алгоритм «избежать столкновения» обучается опытным путем, получая обратную связь при столкновении с препятствием.

Логические игры также хорошо подходят для обучения с подкреплением, так как они традиционно содержат логическую цепочку решений: например, покер, нарды и го, в которую недавно выиграл AlphaGo от Google. Этот метод обучения также часто применяется в логистике, составлении графиков и тактическом планировании задач.

Для чего можно использовать машинное обучение

В бизнесе можно рассматривать три сферы применения машинного обучения: описательную, прогнозирующую и нормативную.

Описательное применение относится к записи и анализу статистических данных для расширения возможностей бизнес-аналитики. Руководители получают описание и максимально информативный анализ результатов и последствий прошлых действий и решений. Этот процесс в настоящее время обычен для большинства крупных компаний по всему миру — например, анализ продаж и рекламных проектов для определения их результатов и рентабельности.

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

Читать еще:  Обучение таргету инстаграм

Третье и наиболее продвинутое применение машинного обучения внедряется уже существующими компаниями и совершенствуется усилиями недавно созданных. Простого прогнозирования результатов или поведения уже недостаточно для эффективного ведения бизнеса. Понимание причин, мотивов и окружающей ситуации — вот необходимое условие для принятия оптимального решения. Этот метод наиболее эффективен, если человек и машина объединяют усилия. Машинное обучение используется для поиска значимых зависимостей и прогнозирования результатов, а специалисты по данным интерпретируют результат, чтобы понять, почему такая связь существует. В результате становится возможным принимать более точные и верные решения.

Кроме того, я бы добавил еще одно применение машинного обучения, отличное от прогнозного: автоматизация процессов. Прочесть об этом можно здесь.

Вот несколько примеров задач, которые решает машинное обучение.

Логистика и производство

  • В Rethink Robotics используют машинное обучение для обучения манипуляторов и увеличения скорости производства;
  • В JaybridgeRobotics автоматизируют промышленные транспортные средства промышленного класса для более эффективной работы;
  • В Nanotronics автоматизируют оптические микроскопы для улучшения результатов осмотра;
  • Netflix и Amazon оптимизируют распределение ресурсов в соответствии с потребностями пользователей;
  • Другие примеры: прогнозирование потребностей ERP/ERM; прогнозирование сбоев и улучшение техобслуживания, улучшение контроля качества и увеличение мощности производственной линии.

Продажи и маркетинг

  • 6sense прогнозирует, какой лид и в какое время наиболее склонен к покупке;
  • Salesforce Einstein помогает предвидеть возможности для продаж и автоматизировать задачи;
  • Fusemachines автоматизирует планы продаж с помощью AI;
  • AirPR предлагает пути повышения эффективности PR;
  • Retention Science предлагает кросс-канальное вовлечение;
  • Другие примеры: прогнозирование стоимости жизненного цикла клиента, повышение точности сегментации клиентов, выявление клиентских моделей покупок, и оптимизация опыта пользователя в приложениях.

Кадры

  • Entelo помогает рекрутерам находить и отбирать кандидатов;
  • HiQ помогает менеджерам в управлении талантами.

Финансы

  • Cerebellum Capital and Sentient используют машинное обучение для улучшения процесса принятия инвестиционных решений;
  • Dataminr может помочь с текущими финансовыми решениями, заранее оповещая о социальных тенденциях и последних новостях;
  • Другие примеры: выявление случаев мошенничества и прогнозирование цен на акции.

Здравоохранение

  • Atomwise использует прогнозные модели для уменьшения времени производства лекарств;
  • Deep6 Analytics определяет подходящих пациентов для клинических испытаний;
  • Другие примеры: более точная диагностика заболеваний, улучшение персонализированного ухода и оценка рисков для здоровья.

Больше примеров использования машинного обучения, искусственного интеллекта и других связанных с ними ресурсов вы найдете в списке, созданном Sam DeBrule.

Вместо заключения

Помните, что совместное использование разных систем и методик — ключ к успеху. ИИ и машинное обучение хоть и сложны, но увлекательны. Буду рад продолжить обсуждение стратегий разработки и проектирования с использованием больших данных вместе с вами. Комментируйте и задавайте вопросы.

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.

Профессия Data Scientist: машинное обучение

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

Записаться на курс

  • Длительность 13 месяцев
  • Помощь в трудоустройстве
  • 7 курсов в одной программе
  • Доступ к курсу навсегда

На рынке не хватает специалистов по Data Science

  • 2 300 компаний сейчас ищут специалистов в Data Science & Machine Learning
  • 80 000 рублей зарплата начинающего специалиста

Данные сайта hh.ru

Кому подойдёт этот курс

Новичкам в IT

Вы получите базовые навыки по аналитике, статистике и математике, которые откроют путь к карьере в Data Science и Machine Learning.

Программистам

Вы прокачаете свои знания и навыки в программировании на Python. Научитесь использовать алгоритмы машинного обучения, решать бизнес-задачи — и усилите портфолио мощными проектами.

Менеджерам и владельцам бизнеса

Научитесь использовать данные для построения прогнозов и оптимизации бизнес-процессов и переведёте компанию на новый уровень.

Чему вы научитесь

Программировать на Python

Визуализировать данные

Работать с библиотеками и базами данных

Применять нейронные сети для решения реальных задач

Строить модели машинного обучения

Писать рекомендательные системы

От первого урока к работе мечты

Студенты и выпускники Skillbox получают индивидуальную поддержку от Центра карьеры на протяжении всего обучения — от помощи с выбором профессии до выхода на работу мечты. Вот как это происходит.

С каждым уроком ваш профессиональный уровень растёт и вы можете планировать карьеру уже во время обучения.

Реакция потенциального работодателя зависит от того, как вы подаёте себя в резюме. Мы дадим советы по его составлению и поможем написать резюме, подающее вас лучшим образом.

Выбираете лучшую вакансию

Мы экономим ваше время — подбираем подходящие вакансии и договариваемся об интервью с работодателем. Вам нужно только пройти собеседование.

Начинаете карьеру мечты

Вы успешно проходите собеседование, выходите на работу и сразу начинаете выполнять задачи.

Записаться на курс или получить бесплатную консультацию

Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.

Ваша заявка успешно отправлена

Как проходит обучение

Изучаете тему

В курсе — практические видеоуроки.

Выполняете задания

В том темпе, в котором вам удобно.

Работаете с наставником

Закрепляете знания и исправляете ошибки.

Защищаете дипломную работу

И дополняете ею своё портфолио.

Программа

Вас ждут 7 курсов с разным уровнем сложности, знание которых можно приравнять к году работы.

  1. Аналитика. Начальный уровень
  1. Введение.
  2. Основы Python: базовые структуры данных.
  3. Основы Python: циклы и условия.
  4. Основы Python: функции.
  5. Основы Python: классы и объекты.
  6. Основы Python: исключения.
  7. Библиотека NumPy. Часть 1.
  8. Библиотека NumPy. Часть 2.
  9. Библиотека pandas. Часть 1.
  10. Библиотека pandas. Часть 2.
  11. Визуализация данных с помощью matplotlib.
  12. Чтение и запись данных.
  13. Введение в SQL.
  14. Работа со строками.
  1. Основы статистики и теории вероятностей.
  1. Основные концепции Machine Learning (ML).
  2. Жизненный цикл ML-проекта.
  3. Регрессия.
  4. Классификация.
  5. Кластеризация
  6. Дополнительные техники.
  7. Знакомство с Kaggle.
  1. Базовые математические объекты и SymPy. Дроби и преобразования.
  2. Базовые математические объекты и SymPy. Необходимые функции и некоторые дополнительные объекты.
  3. Функции одной переменной, их свойства и графики.
  4. Интерполяция и полиномы.
  5. Аппроксимация и преобразования функций.
  6. Функции нескольких переменных, их свойства и графики.
  7. Линейные функции.
  8. Матрицы и координаты.
  9. Линейные уравнения.
  10. Производная функции одной переменной.
  11. Производная по направлению и градиент + частные производные.
  12. Линейная регрессия.
  13. Собственные векторы и значения. Определитель.
  14. Разложения матриц.
  1. Введение в нейронные сети.
  2. Обучение нейронных сетей.
  3. Нейронные сети на практике.
  4. Свёрточные нейросети для задачи классификации изображений.
  5. Семантическая сегментация. Часть 1. Слабая локализация и полносвёрточные нейросети (FCN).
  6. Семантическая сегментация. Часть 2. Продвинутые архитектуры FCN для семантической сегментации.
  7. Детектирование объектов.
  8. От дискриминативных моделей к генеративным. Style transfer.
  9. Генеративные состязательные сети.
  10. Введение в NLP.
  11. NLP на нейросетях. Рекуррентные нейросети, классификация текстов.
  12. NLP на нейросетях. Языковые модели, Attention, Transformer.
  13. Обучение с подкреплением. Q-Learning.
  14. Обучение с подкреплением. Deep Q-Learning.
  15. Ускорение и оптимизация нейронных сетей.
  16. Внедрение в DL моделей в Production.
  17. Рекомендательные системы.
  18. Вывод моделей машинного обучения в production, post production и мониторинг.
  1. Как стать первоклассным программистом.
  2. Как искать заказы на разработку.
  3. Личный бренд разработчика.
  4. Photoshop для программиста.
  5. Вёрстка email-рассылок. Советы на реальных примерах.
  6. The state of soft skills.
  7. Как мы создавали карту развития для разработчиков.
  8. Как общаться по email и эффективно работать с почтой.
  9. Повышение своей эффективности.
  10. Спор о первом языке программирования.
  11. Саморазвитие: как я не усидел на двух стульях и нашёл третий.
  12. Data-driven подход к продуктивности — инсайты из данных миллиона людей.
  1. IT Resume and CV.
  2. Job interview: questions and answers.
  3. Teamwork.
  4. Workplace communication.
  5. Business letter.
  6. Software development.
  7. System concept development and SRS.
  8. Design.
  9. Development and Testing.
  10. Deployment and Maintenance.

Уже учились на каком-то курсе из программы?

Скажите об этом менеджеру — за этот курс платить не придётся!

Получить полную программу курса и консультацию

Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.

Читать еще:  Neo lectures ru обучение

Тезаурус: Машинное обучение

Базовые понятия, объясняющие задачи машинного обучения и принципы работы искусственных нейронных сетей

Машинное обучение

Это математическая дисциплина, в рамках которой решается задача поиска закономерностей в эмпирических данных; на основе найденных закономерностей алгоритм может делать определенные прогнозы. Машинное обучение можно отнести к методам искусственного интеллекта, так как оно не решает задачу напрямую, а обучается применять решение для множества схожих задач. В машинном обучении используются средства теории вероятности, теории графов, математической статистики и других областей математики и Computer Science.

Big Data (большие данные)

У понятия «большие данные» нет однозначного определения, но наиболее устоявшимся является то, из которого следует, что это совокупность определенных технологий. Эти технологии призваны обрабатывать значительно большее по сравнению со стандартными сценариями объемы данных (под данными подразумевается множество объектов и множество соответствующих им ответов (откликов)). Кроме того, они должны работать с этими поступающими в большом количестве данными быстро, а также обрабатывать как структурированные, так и плохо структурированные данные.

Искусственные нейронные сети

Искусственные нейронные сети — это модели машинного обучения, использующие комбинации распределенных простых операций, зависящих от обучаемых параметров, для обработки входных данных. Некоторые элементы и принципы устройства искусственных нейросетей напоминают элементы и принципы устройства биологических нейросетей. Искусственные нейронные сети активно применяются в задачах прогнозирования, распознавания образов, генерации текстов и многих других. Современные искусственные нейронные сети зачастую зависят от большого количества параметров, обучаемых на больших выборках данных (см. глубинное обучение). Наиболее популярными и успешными видами ИНС являются сверточные сети и рекуррентные нейросети.

Сверточные сети

Сверточные сети — один из видов искусственных нейронных сетей, широко используемый в распознавании образов, компьютерном зрении, обработке аудиосигналов, анализе смысла текстов и играх, например Го. Характерной особенностью сверточных нейросетей является использование представления данных в виде набора изображений (карт) и применение локальных операций-сверток, модифицирующих и комбинирующих данные карты друг с другом.

Глубинное обучение

Глубинное обучение — это алгоритмы машинного обучения, связанные с искусственными нейронными сетями, вычисления в которых подразумевают применение множества обучаемых операций (слоев) к входным данным. Характерным для глубинного обучения является обучение на больших выборках при помощи единого оптимизационного алгоритма. Типичные алгоритмы оптимизации настраивают параметры всех операций одновременно и эффективно оценивают влияние каждого параметра нейросети на ошибку (с помощью так называемого метода обратного распространения).

Переобучение

Переобучение происходит, когда построенная модель дает хорошие результаты на обучающей выборке, но делает много ошибок на тестовой выборке. Иначе говоря, программа начинает находить несуществующие связи и закономерности.

Компьютерное зрение

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

Что такое машинное обучение простыми словами

Искусственный интеллект

Лет 5 назад искусственный интеллект (он же ИИ) ассоциировался с фантастическими фильмами, где роботы спасали мир, а суперкомпьютеры пытались его поработить. Сегодня про ИИ говорят все. Давайте попробуем разобраться, что за магия скрывается за человекоподобными машинами, как они думают и зачем нужно машинное обучение.

Хотя тайна человеческого мозга еще не раскрыта и до создания его программных аналогов нам далеко, сегодня уже существуют роботы, которые способны выполнять определенные действия и принимать решения гораздо эффективнее, чем Homo Sapiens.

ИИ вовсю принимает участие в медицине, помогая врачам выявить болезнь Альцгеймера по речи пациента, определить предрасположенность к заболеваниям, и творит многие другие удивительные вещи. Умные машины применяются почти во всех возможных отраслях. Например, компания LG планирует в 2023 году открыть завод по производству техники, на котором все процессы, начиная от закупки сырья, заканчивая контролем качества выпускаемой продукции, будут полностью автоматизированы.

Мощно, не правда ли? И это всё не набор команд, которые выполняются при определенных условиях. Это программа, которая способна анализировать и на основании данных выполнять то или иное действие.

Чтобы ИИ научился принимать правильные решение, его нужно обучить, этот процесс и называется машинным обучением (machine learning).

Machine learning — что нужно?

Выделяют три составляющие машинного обучения (ML):

Данные. Если мы хотим предсказывать погоду, необходима сводка погоды за последние несколько лет (чем больше, тем лучше). Хотим определять спам, нужны примеры таких писем. Чем качественнее данные, тем эффективнее будет работать программа.

Признаки. Это набор свойств, характеристик или признаки, которые описывают нашу модель. Если говорим о погоде, то это температура, скорость ветра, время года. В случае со спамом — это отправители, темы писем, определенные фразы и изображения. Правильно подобранные признаки — залог успешного обучения.

Алгоритм. Тут всё просто. Каждую задачу можно решить разными способами. Для разных целей можно подобрать разные алгоритмы.

Но всё же главное в ML — это данные. Каким бы совершенным не был бы алгоритм работы, если качество данных не очень, то результат будет соответствующим.

Методы машинного обучения

Как работает машинное обучение? Искусственный интеллект похож на маленького ребенка, которому родители объясняют, почему небо голубое, а трава зеленая. Также методом проб и ошибок он самостоятельно познаёт мир.

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

  • классическое обучение;
  • обучение с подкреплением;
  • нейросети и глубокое обучение.

Пробежимся кратко по каждому из них.

Классическое обучение

Большинство ИИ использует классическое обучение. Это простые алгоритмы, основанные на закономерностях в данных.

Есть два типа классического обучения:

  • с учителем (supervised learning);
  • без учителя (unsupervised learning).

Обучение с учителем

Принцип простой. Мы обучаем машину на реальных примерах. Допустим, мы хотим научить её отличать яблоки от груш. Мы загружаем в программу данные (dataset) и говорим ей, что на этих картинках изображены яблоки, а на этих груши. А она, в свою очередь, находит общие признаки, анализирует их и выстраивает связи.

Если мы дадим машине картинку без описания, то она на основании полученных данных должна верно определить, что за фрукт на ней изображен.

Поэтому важно отбирать правильные данные для обучения и загружать их как можно больше: чем больше данных мы загрузим, тем точнее и быстрее будет происходить определение.

Обучение без учителя

Этот метод используется, когда нет возможности предоставить роботу размеченные данные. Программа сама находит закономерности, общие признаки и классифицирует полученные данные.

Обучение без учителя отлично подходит для кластеризации (сегментации) данных. Его часто используют в таргентированной рекламе. Когда действия или предпочтения пользователя нельзя заранее классифировать.

Обучение с подкреплением

Возьмем для примера игру «Змейка». На поле расположен объект, до которого змейке необходимо добраться, но сама она не знает, как это сделать и какой путь самый эффективный, она знает только расстояние до объекта. Методом проб и ошибок змейка находит оптимальный вариант движения и анализирует ситуации, которые ведут к проигрышу.

Данный способ также используют для обучения роботов-пылесосов или самоуправляемых автомобилей. Обучение похоже на игру: за правильно принятое решение машина получает балл, за ошибки — баллы вычитаются.

Нейросети и глубокое обучение (Deep learning)

Любая нейросеть — это набор нейронов (функций) и связей между ними. Задача нейрона — взять входные числа, выполнить над ними определенные действия и выдать результат. Пример полезного нейрона: просуммировать все цифры со входов и, если их сумма больше N, отправить на выход единицу, иначе — ноль.

Связи — это каналы, через которые нейроны отправляют друг другу числа. У каждой связи есть своя оценка — параметр, который можно условно представить как прочность связи. Когда через связь с оценкой 0.5 проходит число 10, оно превращается в 5. Сам нейрон не разбирается, что к нему пришло, и суммирует всё подряд. Получается, что оценка нужна для управления тем, на какие входы нейрон должен реагировать, а на какие — нет.

Читать еще:  Реклама в интернете обучение бесплатно

Нейроны и связи — это условное обозначение, в реальном программировании нейросеть представляет собой матрицу и всё считается матричными представлениями, так как это эффективно по скорости.

Для чего необходимы нейронные сети:

  • определение объектов на видео и фото;
  • обработка фотографий;
  • распознавание речи;
  • машинный перевод.

В упрощённом виде работа нейросети выглядит примерно так:

На деле все немного сложнее. Изображение делится на пиксели, затем выявляются доминирующие линии по горизонтали и по вертикали, всё это складывается в несколько массивов, из которых получается очертание объекта. В итоге, на основании этих данных мы приходим к нужному результату.

Big Data. Machine Learning. Data Science.

Блог компании Даталитика. Интересное об искусственном интеллекте, машинном обучении, больших данных и ИТ-консалтинге

Подписаться на этот блог

Подписаться на обновления

Подготовка данных для алгоритмов машинного обучения

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Описание стека и некоторые вводные

В нашей статье мы будем использовать язык программирования python с сопутствующими ему библиотеки (sklearn, matplotlib, seaborn) и в качестве среды для работы jupyter notebook. Цель текущего поста — показать общие подходы к подготовке данных. То есть, те манипуляции, которые необходимо совершить перед загрузкой данных в модель машинного обучения. В идеальном мире у вас будет абсолютно чистый датасет без выбросов или пропущенных значений. Однако в реальном мире такие наборы данных встречаются крайне редко.
Далее будем рассматривать данные из Kaggle: «Mental Health in Tech Survey«.

Первый взгляд на датасет и понимание его специфики

Трудно работать с данными, не понимая, что они из себя представляют, поэтому давайте их загрузим и выведем некоторые статистики.

Это даст нам первое представление о том, что есть наши данные. Далее посмотрим на размеры наших табличных данных. Выполнив построчно код ниже

Также было бы неплохо увидеть информацию о количестве каждого уникального значения для каждого столбца в наборе данных:

Большинство столбцов выглядят хорошо, но есть несколько нуждающихся в очистке. Примеры некорректных значений данных ниже.

  • Столбец «age» содержит людей, которые еще не родились (отрицательные числа).
  • Столбец «age» содержит детей (например, 5-летнего возраста), которые вряд ли будут проводить опрос о своем рабочем месте.
  • Столбец «age» содержит возраст в 99999999999 лет
  • Существует 49 различных значений для «gender». Для примера, «Male» и «male» обозначают одно и то же, но в рассматриваются как две разные категории.
  • self_employed и work_interfere содержат несколько пропущенных полей.

Разделение на обучающую выборку и целевую переменную

Так как мы сейчас рассматриваем задачу обучения с учителем (несколько сублимированную — сами придумали, сами решаем), нам необходимо разделить на признаки для обучения и на признаки для предсказания. Целевая переменная для текущего датасета зависит от ваших целей. Для примера: вы можете, базируясь на этом наборе данных решать классификационную задачу (определять пол опрашиваемого) или же регрессионную (предсказывать возраст опрашиваемого). Для дальнейшего рассмотрения была взята классификационная задача: будет ли опрашиваемая персона искать лечение.

Обработка пропусков в данных

Зачастую не существует шаблонных подходов к этой задаче, поскольку подходы во многом зависит от контекста и характера данных. Например, являются ли данные случайными пропусками или же есть скрытая связь между пропусками и некоторым другим записями в обучающем примере?
Один из способов простых способов решения этой проблемы — просто игнорировать или удалять строки, в которых отсутствуют данные, выбрасывая их из нашего анализа. Однако этот метод может быть плох из-за потери информации.
Еще один способ — это заполнение пропусков, где мы заменяем отсутствующее значение каким-либо образом. Базовые реализации просто заменят все отсутствующие значения средним, медианным, либо же константой.
Для начала выясним, что делать с пропущенными значениями, найденными в self_employed и work_interfere. В обоих случаях столбец содержит категориальные данные.
Возьмем следующий пример, который представляет собой небольшой набор данных, содержащий три признака (погодное условие, температуру и влажность), чтобы предсказать, могу ли я играть в теннис или нет.

Если бы мы удалили все строки с отсутствующими значениями, осталась бы только одна строка, и наш предиктор всегда бы предполагал, что я должен играть в теннис, так как других вариантов, по которым он будет учиться, про не будет. Предположим, мы вместо этого решили заменить нулевое значение температуры в строке 3 средним. В этом случае температура строки 3 искусственно сообщалась бы равной 65. И это уже позволит при каких-то входных параметрах получать от алгоритма отрицательный результат.

Scikit-learn предоставляет реализацию для обработки пропусков

Поиск неявных дубликатов

Как упоминалось ранее, для «gender» 49 различных значений, и было подозрение, что некоторые из этих значений не следует рассматривать как разные категории. В конечном итоге для простоты мы разделим данные на 3 категории: мужчина, женщина и другие (сюда вошли те категории, которые можно однозначно исключить из предыдущих двух, для примера — трансгендер).

Если бы требовалось создать механизм предварительной обработки, который мог бы очищать входящие данные, требовалось бы воспользоваться более умным подходом. Но так как наша задача — это работа с уже имеющемся датасетом, то мы просто используем этот подход с заменой определенных типов.

Обнаружение выбросов

Как уже упоминалось ранее, оказалось, что для Age существуют значения, которые кажутся ошибочными. Такие как отрицательный возраст или чрезвычайно большие целые числа, могут негативно повлиять на результат работы алгоритма машинного обучения, и нам нужно будет их устранить.
Для этого возьмем нашу эвристическую оценку, в каком возрасте могут работать люди: от 14 до 100 лет. И все величины, не попадающие в этот диапазон, преобразуем в формат Not-a-Number.

Эти нулевые значения затем могут быть обработаны с использованием описанного выше sklearn Imputer.
После определения диапазона для работающего человека, визуализируем распределение возраста, присутствующего в этом наборе данных.

Кодирование данных

Многие алгоритмы машинного обучения ожидают числовые входные данные, поэтому нам нужно выяснить способ представления наших категориальных данных численным образом.

Одним из решений этого было бы произвольное присвоение числового значения для каждой категории и отображение набора данных из исходных категорий в каждое соответствующее число. Например, давайте посмотрим на столбец «leave» (как легко вам взять отпуск по болезни для состояния психического здоровья?) В нашем наборе данных

Который возвращает следующие значения

Для кодирования этих данных, сопоставим каждое значение с числом.

Этот процесс известен как Label Encoding и sklearn может сделать это за нас.

Проблема с этим подходом заключается в том, что вы вводите порядок, который может отсутствовать в исходных данных. В нашем случае можно утверждать, что данные являются ранжированными («Very difficult» меньше «Somewhat difficult», который меньше «Very easy», который меньше «Somewhat easy»), но в большинстве своем категориальные данные не имеют порядка. Например, если у вас есть признак обозначающий вид животного, зачастую высказывание кошка больше собаки не имеет смысла. Опасность кодирования меток заключается в том, что ваш алгоритм может научиться отдавать предпочтение собак, кошкам из-за искусственных порядковых значений, введенных вами во время кодирования.

Общим решением для кодирования номинальных данных является one-hot-encoding.

Вместо того, чтобы заменять категориальное значение на числовое значение (кодирование меток), как показано ниже

Ссылка на основную публикацию
Adblock
detector