Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Искусственный интеллект — это на самом деле сразу несколько областей компьютерных наук, которые решают задачи, свойственные человеческому разуму: распознавание речи, классификация объектов, а также разные игры вроде шахмат и го.
Машинное обучение — это часть темы искусственного интеллекта, где изучается не прямое программирование задач, а программирование через обучение в процессе решения однотипных задач.
В понятие машинлернинга входят разные алгоритмы — такие как random forest («случайный лес»), деревья решений, наивный байесовский классификатор, градиентный бустинг и другие. Нейронные сети, в том числе глубокие, — это тоже один из алгоритмов машинного обучения.
Как происходит программирование в классическом понимании? Допустим, у человека есть компьютер, который работает по определенному алгоритму. Человек вводит в него данные, подает программу, и алгоритм выдает результаты. В этом случае все предельно понятно. Человек может получить точность до 100 процентов, особенно если запрос — это математические операции.
А вот в случае с машинным обучением программа и выходы поменяются местами. То есть человек дает алгоритму данные и указывает правильные решения, а дальше компьютер думает, как сделать так, чтобы из этих данных получались желаемые результаты. В процессе такой работы и рождается программа.
Есть четыре основные задачи искусственного интеллекта:
Машинное обучение состоит из двух процессов. Первый — это тренировка, когда человек берет данные, обучает модель и в итоге получает некий классификатор.
Второй процесс — это уже использование ML, когда обученный классификатор внедряется в систему, а затем на вход системы подают новые данные, которые классификатор не видел. В результате мы получаем предсказания от классификатора.
Рассмотрим пример того, как человек пользуется своей электронной почтой. Можно выделить четыре паттерна поведения человека, анализ которых поможет определить его действия.
Ответы на эти вопросы создает портрет человека (на рисунке ниже поведение такого человека выделено красным). Для машинного обучения эти действия будут предсказуемые, без каких‑либо всплесков.
Теперь представим, что хакер взломал почту, узнав каким‑то образом пароль от нее, и зашел как пользователь. Его поведение будет явно отличаться от поведения человека, который пользовался электронным ящиком до него. На графике поведение хакера показано характерными всплесками.
Задача алгоритма заключается в том, чтобы определить тот момент, когда изменилось поведение человека, которое образовало такой всплеск. О подобном примере можешь почитать в блоге Яндекса на Хабре.
Другой хороший пример — соревнования Catch me if you can на сайте Kaggle. Это, кстати, очень полезный сайт для тех, кто хочет изучить машинное обучение.
Задача — отличить поведение взломщика от нормального пользователя. Например, дано: сайты, которые посещает человек, и время нахождения человека на них. Нужно по последовательности посещений сайтов определить взломщика. На стартовой странице представлен обзор задачи и размеченные данные. А также есть вкладка, где можно найти, как эту задачу решили другие пользователи. То есть Kaggle дает возможность не только поучаствовать в соревнованиях, но и набраться опыта у других людей.
Машинное обучение включает в себя три компонента: данные, признаки и алгоритмы. Давай рассмотрим их по отдельности.
В открытом доступе есть множество наборов данных, на которых можно тренировать алгоритмы. Но у таких наборов есть недостатки. Например, наборы могут быть неполными, плохо размечены и неточны. Если ты захочешь внедрить решение на ML-технологиях, нужно будет собрать набор данных под определенную задачу и готовый набор вряд ли будет хорошо соответствовать. Люди готовы выкладывать алгоритмы, рассказывать, что и как они используют, но мало кто хочет делиться своими наборами данных.
Задача дата‑сайентиста — подготовить набор данных к использованию: собрать, разметить и вычистить его. Это очень трудоемкий процесс, который занимает примерно 50–70 процентов работы.
Рассмотрим простой веб‑запрос. Допустим, у тебя есть: длина запроса, код ответа, URL, контекст, популярность домена и так далее. Всего таких признаков можно набрать 600 штук. В этом случае возникает два важных вопроса:
Причем тебе придется искать компромисс между этими двумя параметрами. Например, если решение будет использовано в реальном времени, нужно, чтобы модель могла быстро считать. Поэтому признаков стоит взять поменьше, модельку послабее. В офлайновом режиме можно выгрузить данные, анализировать их и раскидывать по категориям. В этом случае используй любую модель любой сложности, потому что можно заставить алгоритм думать столько, сколько понадобится.
Вот еще один пример. Предположим, нам нужно понять, опасный перед нами файл или нет. Для этого сначала ответим на следующие вопросы:
Ответы на эти вопросы помогут выявить признаки, которые можно использовать для решения нашей задачи.
Алгоритмы можно разделить на несколько типов:
|
|