Методы машинного обучения
Машинное обучение – это технология, основанная на математических алгоритмах (моделях), позволяющая компьютерам самостоятельно находить решение задач. Это достигается благодаря тем самым моделям, которые на основе проанализированных данных делают предсказания.
Существуют различные виды машинного обучения. Рассмотрим основные:
1. Машинное обучение с учителем
Для лучшего понимания представим, что компьютер (машина) неразумный ребенок, которому требуется решить очень сложную задачку. Мы можем предоставить ему структурированный список учебников (размеченный набор данных), в которых подробно прописано, как решать задачу. После решения, он может подсмотреть последнюю страницу учебника, где написаны ответы, и проверить правильность своих выводов.
Это представление описывает принцип «Обучение с учителем» — метод, при котором модель учится решать задачу на заранее размеченном наборе данных, опираясь на примеры с уже известными ответами.
В системах чаще всего используется для выполнения задачи классификации. Например, классификация писем на спам и не спам происходит именно так: модель обучается на тысячах писем с метками и затем определяет категорию новых сообщений.
Данный метод машинного обучения применяется в антивирусах, где задачей является классификация вредоносных файлов: модель анализирует характеристики (байты, заголовки, строки) для их дальнейшей классификации.
Такой вид также активно применяется в средствах обнаружения сетевых атак для анализа сетевого трафика с целью выявления в нем аномалий. Здесь модель также обучается различать легитимные и вредоносные действия на основе размеченных исторических данных.
2. Машинное обучение без учителя
Рассмотрим похожую ситуацию, но с измененными условиями. У нас все также неразумный ребенок, которому требуется решить задачу, но теперь никакой помощи извне у него нет. Учебники и алгоритмы решения задачи он должен найти самостоятельно, выявляя различные закономерности и выдвигая вместо четкого ответа — предположения.
Таким образом работает «Обучение без учителя» — метод, при котором алгоритм самостоятельно находит структуру и закономерности в предоставленном наборе данных. Кажется, что такой метод абсолютно неэффективен и бесполезен, однако, те же алгоритмы в социальных сетях работают именно по такому принципу.
Основная задача, которая решается с помощью применения данного метода — задача кластеризации. Модель группирует данные на основе их сходства таким образом, чтобы объекты в одной группе (кластере) были более схожи друг с другом и отличались от объектов в другой группе (кластере).
Если говорить о средствах защиты, то такой метод лег в основу UEBA-систем (систем аналитики поведения пользователей и сущностей) для анализа данных, выявления закономерностей и построения поведенческих профилей пользователей и устройств.
Для каждого пользователя или устройства создается его «цифровой профиль» с моделью поведения. В случае отклонения от нормы, система зафиксирует аномалию и просигнализирует об инциденте.
3. Обучение с подкреплением
Теперь нашему малышу не надо решать задачи, вместо этого он будет играть в шахматы. Но есть один нюанс — он совсем не знает правил игры.
Его задача — методом проб и ошибок выиграть партию у своего противника. За каждый правильный ход ученику будет даваться конфета, но если он ошибется, его будут неприятно щипать. Конечной целью будет являться получения как можно большего количества конфет и выигранных партий, при этом имея минимальное число ссадин.
Такая модель отражает вид машинного обучения — «Обучение с подкреплением» — метод, при котором система обучается не на предоставляемых данных, а через анализирование реакции среды на взаимодействие с ней. Из примера можно понять, что одним из направлений такого обучение является разработка игровых стратегий. Однако обучение с подкреплением активно применяется в алгоритмах, использующихся в финансовом секторе, робототехнике и автономном транспортном производстве.
Метод отлично применим для задач, решение которых должно иметь максимальную эффективность и выгоду, с продумыванием каждого действия с учетом их отложенных последствий.
Сценарий адаптации под среду и система вознаграждений отлично подошли для применения данного метода в сканерах уязвимости. Система с нулевым знанием о сканируемой инфраструктуре производит ряд стандартных действий для получения первичных сведений.
Рассмотрим ситуацию, когда производится сканирование портов: системе достанется награда в том случае, если она найдет уязвимость (например, открытый порт, который должен быть закрыт), получит доступ к оболочке (управлению сетевыми настройками) и перехватит учетные данные.
Однако, если процесс сканирования не дал никаких результатов, при этом было затрачено немалое количество времени, или действия привели к срабатыванию IPS (система защиты от сетевых атак в реальном времени), на систему налагается большое количество штрафов. Как положительный, так и отрицательный результат учитываются системой в дальнейшем обучении на новом наборе данных.
4. Глубокое обучение
Для понимания глубокого машинного обучения представим, что у нас уже не маленький ребенок, а подросток, способный к сложному абстрактному мышлению. Его задачей будет научиться распознавать кошек на картинках с тем условием, что он никогда раньше не видел это животное.
Четкие инструкции вида «если есть усы, уши и хвост — это кот» не выдаются. Вместо этого предоставляется огромная стопка фотографий (большой набор данных) и команда: «Смотри и учись сам!».
Данная задача будет решаться в несколько этапов:
1. Ребенок сначала учится выделять простейшие элементы — линии, углы, пятна, градиенты света.
2. На основе этих линий и углов он начинает распознавать более сложные формы: овалы (глаза), треугольники (уши), изогнутые линии (хвост).
3. Комбинируя эти формы, он собирает целостные объекты: «пушистое тело с четырьмя лапами, ушами и хвостом». В конце концов, он формирует в своем сознании абстрактное понятие «кошачесть», которое позволяет ему безошибочно отличить кошку от собаки, даже если он видит конкретное животное впервые.
Это представление описывает принцип Глубокого обучения — метод, в котором многослойная искусственная нейронная сеть имитирует описанный процесс: автоматическое извлечение из сырых данных иерархию все более сложных и абстрактных признаков, от простых к сложным, для решения поставленных задач.
В отличие от более простых моделей машинного обучения, которые часто проектируются под одну задачу (например, классификацию), глубокое обучение представляет собой семейство универсальных методов, способных решать широчайший спектр задач.
В современных системах защиты это позволяет использовать единый технологический подход для борьбы с разнородными угрозами: от обнаружения нового вредоносного ПО до выявления сложных поведенческих аномалий.
- В антивирусах нового поколения (NGAV): глубокие нейронные сети анализируют исполняемые файлы, представляя их в виде изображений или последовательностей байт. Модель сама, без заранее известных сигнатур, учится выделять паттерны, характерные для вредоносного кода, на всех уровнях от отдельных команд до общей структуры программы. Это позволяет обнаруживать неизвестные ранее угрозы (zero-day).
- В системах анализа поведения (UEBA): здесь сеть учится понимать «цифровой профиль» каждого пользователя.
Она не просто ищет аномалии, а строит сложную поведенческую модель: как пользователь обычно работает с клавиатурой, к каким приложениям обращается, в какое время активен. Рекуррентные нейронные сети (RNN) отлично справляются с анализом таких последовательностей действий, выявляя сложные, растянутые во времени атаки, которые не заметить при точечной проверке.
- В системах обнаружения вторжений (IDS): Сети анализируют сетевой трафик, учась отличать нормальную активность от аномальной на основе глубокого анализа тысяч параметров одновременно, что делает их чрезвычайно эффективными против изощренных целевых атак.