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

Битрикс24

www.bitrix24.ru

20
Отследить-посылку

Отследить-посылку

B2B-сервис трекинга посылок

16
myPreza

myPreza

mypreza.ru

13
WebResidentTeam

WebResidentTeam

webresident.agency

12
Perezvoni.com

Perezvoni.com

perezvoni.com

11
Expresso

Expresso

www.expresso.today

9
Reader

Reader

Интернет-журнал о современных технологиях.

7
ADN Digital Studio

ADN Digital Studio

adn.agency

7
Frutra

Frutra

design.frutra.ru

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

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

939 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
Комментариев еще не оставлено
Выбрать файл
Читайте далее
Загружаем…
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать