Лучшие статьи и кейсы стартапов
Включить уведомления
Дадим сигнал, когда появится
что-то суперстоящее.
Спасибо, не надо
Вопросы Проекты Вакансии
Проекты самого высокого уровня сложности
Рекомендуем
Продвинуть свой проект
Лучшие проекты за неделю
29
Эбиа

Эбиа

www.ebia.ru

24
Enlite

Enlite

enlited.ru

21
YAGLA

YAGLA

yagla.ru

15
Cookiezz

Cookiezz

cookiezz.com.ua

15
likearea

likearea

smm.li

15
SE Ranking

SE Ranking

seranking.ru

11
Relap

Relap

relap.io

11
Perezvoni.com

Perezvoni.com

perezvoni.com

11
Venyoo

Venyoo

venyoo.ru

Показать следующие
Рейтинг проектов
Подписывайтесь на Спарк в Facebook

Просто о некоторых способах машинного обучения (ML)

956 0 В избранное Сохранено
Авторизуйтесь
Вход с паролем
Трудно разобраться в большом количестве материала по теме. Задача статьи — систематизировать часто встречающуюся информацию и преподать её языком, понятным IT-шнику сходу. Сделать эдакую шпаргалку.

Трудно разобраться в большом количестве материала по теме. Особенно, если задача поставлена на уровне «быстренько разобраться что к чему, найти реализацию и использовать, не вникая в детали, о которых уже позаботились умные бородатые дяди». Задача статьи — систематизировать часто встречающуюся информацию и преподать её языком, понятным IT-шнику сходу. Сделать эдакую шпаргалку.

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

Виды ML

  1. Дедуктивное (аналитическое) — выведение фактов и правил из заранее сформулированных и формализованных правил.
  2. Индуктивное (статистическое) — построение правил на базе эмпирических данных.

Основные задачи ML

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

Нейронная сеть

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

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

b_55cdd3317a590.jpg

Элементы сети

  1. Синапс удобно представить как объект, похожий на очередь (канал) и имеющий определённый приоритет. Он нужен для обмена информацией между нейронами.
  2. Нейрон — объект, который принимает значения из синапса(ов), делает определённые вычисления и отдаёт их результат в синапс(ы) и/или аксон(ы).
  3. Аксон — объект, похожий на синапс, но отличающийся тем, что в него можно только помещать данные из нейросети, забирает же их кто-то из вне (например, они просто выводятся пользователю).

Как это работает

Нейронная сеть — группа связанных нейронов. Каждый нейрон имеет маленькую долю ответственности — решает какую-то маленькую задачу, вынося вердикт — 1 или 0. Этих задач и, соответственно, нейронов может быть очень много. Из результатов их решения формируется конечный результат. Настраивается всё это изменением приоритетов синапсов, в результате чего агрегация промежуточных результатов происходит по-разному, и общий результат, соответственно, получается разный.

Настраивать сети можно несколькими способами:

  • обучение с учителем — восстановление зависимости по данным вида «стимул -> реакция»;
  • обучение без учителя — обнаружение зависимостей объектов по обучающей выборке;
  • обучение с подкреплением — обучение с взаимодействием с некоторой средой;
  • генетический алгоритм — случайный подбор и комбинирование параметров по аналогии с механизмом естественного отбора в природе.

Выбор метода зависит от задачи.

Некоторые виды нейросетей

  • персептрон;
  • однослойный;
  • многослойный;
  • рекуррентный;
  • ассоциативная память;
  • спайковые сети;
  • сеть радиальных базисных функций;
  • когнитрон.

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

Деревья принятия решений

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

b_55cdd491688f8.jpg

Основная проблема деревьев принятия решений — сложность построения. Для этого существует ряд алгоритмов, например Classification and Regression Tree. Он используется для построения бинарного дерева и C4.5 для построения дерева с неограниченным числом потомков у узлов.

Преимущества:

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

Недостатки:

  • неоптимальность дерева из-за «жадности» большинства алгоритмов построения деревьев;
  • сложность поддержки.

Бустинг (boosting)

Бустинг — это комбинирование недостаточно точных алгоритмов ML, чтобы каждый каким-то образом влиял на результат. Эксперименты показывают, что бустинг позволяет сильно сократить количество ошибок на независимой выборке по мере увеличения количества «плохих» алгоритмов.

Автор: Андрей Резцов, Clojure-разработчик Eastwood

+1
Комментариев еще не оставлено
Выбрать файл
Читайте далее
Загружаем…
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать