@MaxxxZ

Как правильно подать на вход нейросети IP-адрес?

Для некоторых сетевых задач классификации трафика хочется подать на вход нейросети IP-адрес.
Однако, самый очевидный способ это седлать, отнормировать dword32 представление IP-адреса, - очевидно ошибочен. В этом случае нейросеть начнёт сравнивать адреса по величине и неизбежно начнёт делать выводы из расстояния между адресами обучающей выборки. А это в свою очередь в корне не верно, так как расстояние между IP-адресами в сетях ничего не значит. Адреса, отличающиеся на несколько единиц могут принадлежать разным компаниям на разных континентах. А между 192.167.255.255 и 192.168.0.0 при единичном расстоянии ещё и космических масштабов пропасть в области применения.
На ум приходит делать входные вектора огромных размеров из сетей, например по маске /24, /16, номеру AS или другим критериям и делать входы бинарными на принадлежность той или иной группе адресов. Это должно улучшить логику задачи. Но может есть и другие варианты решения? Наверняка ведь кто-то уже описывал эту проблему и велосипед изобретать не требуется. Буду благодарен за ссылку на какую-нибудь статью по сабжу.
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
hint000
@hint000
у админа три руки
самый очевидный способ это седлать, отнормировать dword32 представление IP-адреса, - очевидно ошибочен
Не очевидно. Потому что нейросеть может решать разные задачи. Какую задачу будет решать ваша нейросеть - неизвестно. Для разных задач потребуются разные представления адреса.
В одном случае достаточно определить государство. В другом случае подойдёт ASN. В третьем случае окажется, что ни государство, ни ASN не релевантны, а хорошо подходит как раз тот вариант, который "очевидно ошибочен". В четвёртом случае - какое-то совсем необычное представление, которое никому даже не придёт в голову до тех пор, пока не озвучена задача.

Нет одного "правильного" варианта на все случаи.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dyuriev
@dyuriev
A posteriori
используйте базу maxmiddb, и подавайте в нейросеть не сам айпишник а информацию об географических координатах (не забывайте, что они сферические, к слову, и их стоит преобразовать в декартову систему, приняв центр земли за начало координат), стране, регионе, городе, ASN (организации/провайдере) и что-то там еще можно выудить

сам по себе айпишник нейросети вряд ли о чем то скажет

PS: учтите, что в базе есть пробелы, например не будет инфы о регионе или городе
Ответ написан
расстояние между IP-адресами в сетях ничего не значит.

Вообще-то очень даже значит, но расстояние надо считать не как модуль разницы, а как количество нулей в минимальной общей маске (т.е. если адреса попадают в сеть /28 то расстояние между ними 4).

Иногда нормируют сеть до адреса сети по информации из BGP или whois или добавляют ASN, но такие сети не всегда точны. Иногда используют подход, что вначале берутся мелкие подсети, например /24, если смежные подсети имеют одинаковые признаки, то их объединяют в более крупную подсеть и так далее итеративно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы