Juhyun-kim98 / Malware-Detection

2021 KCC 논문
Apache License 2.0
0 stars 0 forks source link

관련 문서 #2

Open Juhyun-kim98 opened 3 years ago

Juhyun-kim98 commented 3 years ago

https://dmdm101.tistory.com/m/9?category=0

SOREL-20M (Sophos / ReversingLabs-2 천만) 데이터 세트 : 미리 추출 된 기능 및 메타 데이터가있는 거의 2 천만 개의 파일로 구성된 대규모 데이터 세트, 여러 소스에서 파생 된 고품질 레이블, 공급 업체 감지에 대한 정보 에서 악성 코드 샘플 수집시, 각각의 악성 코드 샘플과 관련된 추가 "태그"추가 역할을 목표로하고있다. 기능 및 메타 데이터 외에도, 기능 및 탐지 전략의 추가 탐색에 사용할 수있는 약 1 천만 개의 "무장 해제 된" 맬웨어 샘플 (optional_headers.subsystem 및 file_header.machine 플래그가 모두 0으로 설정된 샘플)도 제공합니다 . 또한 우리 데이터 및 기능과 상호 작용하는 Python 코드를 제공하고, 추가 실험을위한 시작점 역할을 하기 위해 전체 학습 및 평가 코드와 함께 기준 신경망 및 경사 강화 의사 결정 트리 모델 및 그 결과를 제공합니다.

맬웨어 탐지를위한 기계 학습 사용은 이제 비교적 널리 퍼져 있습니다. 최신 기계 학습 모델이 많은 통계 및 구문 분석 기반 기능 간의 복잡한 관계를 학습 할 수있는 능력은 널리 채택되었습니다. 그러나이 분야에 대한 많은 연구의 상업적 특성뿐만 아니라 맬웨어에 직접 작업하는 것과 관련된 위험은 대부분의 ML 기반 맬웨어 모델이 개인 또는 독점 데이터 세트에서 평가된다는 것을 의미합니다. 이로 인해 현장에서 진행 상황을 측정하기가 어렵습니다. 또한, 많은 악성 코드 소스는 본질적으로 상업적이므로 현장 진입 장벽이 높고 연구원이 극히 작은 데이터 세트에서 모델을 평가하게됩니다. 대조적으로, 이미지 분류 또는 자연어 처리와 같은 분야는 CIFAR [1], ImageNet [2] 또는 Stanford Sentiment Treebank [3]와 같은 공개적으로 사용 가능한 데이터 세트는 연구원이 공통 데이터 세트에 다른 접근 방식을 적용하여 이러한 접근 방식을 직접 비교할 수 있도록합니다. 접근 방식 간의 비교를위한 기초를 제공하는 것 외에도 이러한 공통 데이터 세트의 존재는 필드에 더 쉽게 접근 할 수있게하여 대규모 교육 및 검증 세트를 컴파일하는 능력이 부족한 소규모 조직이 해당 필드의 개발에 기여할 수 있도록합니다. 이 부족을 해결하기위한 첫 번째 시도는 현재 작업이 기반으로하는 EMBER 데이터 세트 [4]였습니다. EMBER 데이터 세트는 맬웨어 탐지에 사용되는 최초의 표준 데이터 세트 였지만 맬웨어 벤치 마크 세트로서의 유용성을 제한하는 몇 가지 단점이있었습니다. 첫째, EMBER는 크기가 제한되어 있습니다. 90 만 개의 학습 샘플과 200,000 개의 테스트 샘플이 포함 된 반면 상용 악성 코드 모델은 수천만에서 수억 개의 샘플로 학습됩니다. 학습 크기가 너무 작아 상업적 규모와 비교할 수 없을뿐만 아니라, 작은 유효성 검사 크기는 분산 문제로 인해 더 낮은 오 탐률 (1000 명 중 1 명 이하)에서 모델 성능 평가를 어렵게 만듭니다. 아마도 상대적으로 작은 데이터 세트 크기로 인해 EMBER에서 분류기의 성능이 거의 포화 상태이며 기준선이 동일합니다. 데이터 세트에 관한 모든 질문은 sorel-dataset@sophos.com으로 보내주십시오. 유효성 검사 크기가 작 으면 분산 문제로 인해 더 낮은 오 탐률 (1000 분의 1 이하)에서 모델 성능을 평가하기가 어렵습니다. 아마도 상대적으로 작은 데이터 세트 크기로 인해 EMBER에서 분류기의 성능이 거의 포화 상태이며 기준선이 동일합니다. 데이터 세트에 관한 모든 질문은 sorel-dataset@sophos.com으로 보내주십시오. 유효성 검사 크기가 작 으면 분산 문제로 인해 더 낮은 오 탐률 (1000 분의 1 이하)에서 모델 성능을 평가하기가 어렵습니다. 아마도 상대적으로 작은 데이터 세트 크기로 인해 EMBER에서 분류기의 성능이 거의 포화 상태이며 기준선이 동일합니다. 데이터 세트와 관련된 모든 질문은 sorel-dataset@sophos.com으로 보내주세요. o

0.999 이상의 AUC를 얻을 수있는 분류기 [4]. 또한 EMBER 데이터 세트는 미리 추출 된 기능 만 제공하여 기능 추출 개선 또는 실현 가능한 적대적 샘플 생성과 같은 주제에 대한 추가 연구를 어렵게했습니다. 마지막으로 EMBER은 단순한 '임계 값'규칙을 기반으로 단일 이진 레이블 만 제공합니다. SOREL-20M은 악성 코드 탐지를위한 가치있는 벤치 마크가되기 위해 이러한 문제의 전체 또는 일부를 해결하려고합니다. 분석을 위해 훨씬 더 많은 샘플을 제공하여 훈련 크기 문제를 해결합니다. 내부적으로는 더 큰 데이터 세트로 성능이 지속적으로 향상되는 반면, 3 ~ 4 백만 개의 예에 대한 유효성 검사 크기는 모델간에 안정적인 순위 순서를 설정하고 더 낮은 오 탐률로 성능을 평가하는 데 충분하다는 것을 발견했습니다. 권장 시간 분할 [5]을 사용하여 훈련, 검증 및 테스트 세트를 설정하면 각각 12,699,013 개의 훈련 샘플, 2,495,822 개의 검증 샘플 및 4,195,042 개의 테스트 샘플을 얻습니다. 이것은 서로 다른 모델, 아키텍처 및 기능을 비교하여 상대적인 성능을 설정할 수 있도록하기에 충분합니다. 특히 모델의 여러 무작위 초기화를 사용하여 동시에 모델 분산을 조사하는 데주의를 기울이는 경우. 우리는 맬웨어에 대해서만 (무장 해제 된) 바이너리 샘플을 제공하여 기능 탐색 문제를 부분적으로 해결합니다. 실행을 방지하기 위해 optional_headers.subsystem 및 file_header.machine 플래그를 모두 0으로 설정하여 '무장 해제'된 9,919,251 개의 멀웨어 바이너리 샘플 (7,596,407 개의 학습 샘플, 962,222 개의 검증 샘플 및 1,360,622 개의 테스트 샘플)을 제공합니다. . 또한 dump_dict () 메서드를 사용하여 Python pefile [6] 모듈을 통해 얻은 완전한 PE 메타 데이터를 제공했습니다. 이것은 모델의 직접적인 비교를 방해하지만 연구원이 제공 한 기능 추출 코드를 사용하여 악성 코드 세트에 대한 점수 분포를 비교하면 여전히 다른 임계 값에서 탐지율을 비교할 수 있습니다. EMBER와 마찬가지로 LightGBM [7] 및 PyTorch [8] 기반 피드 포워드 신경망 (FFNN) 모델을 모두 사용하여 SOREL-20M에 대한 기준 모델을 설정했습니다. 두 모델 모두 성능이 높지만 특히 더 낮은 오 탐률 (이제 SOREL-20M 말뭉치의 큰 크기로 인해 확신을 가지고 평가할 수 있음)에서 개선의 여지가 상당합니다. 이를 통해 SOREL-20M이 악성 코드 탐지 접근 방식을 서로 비교하는 방법으로 더욱 유용해질 것으로 예상합니다. 마지막으로, 벤더 레이블 ([9]에 설명 된대로)에서 추론 된 동작을 설명하는 모델에 대한 여러 추가 대상을 제공하며 [10]에 설명 된대로 다중 대상 모델을 사용하기위한 벤치 마크도 제공합니다. 다음 섹션에서는 데이터의 코퍼스 통계 및 구조와 액세스 방법에 대해 설명합니다. 그런 다음 데이터에 대해 학습 한 기준 모델과 관련 GitHub 저장소의 레이아웃을 설명합니다. 2 데이터 세트 설명 전체 데이터 세트는 다음 항목으로 구성됩니다. • 9,919,251 개의 원래 (무장 해제 된) 악성 코드 샘플; s3 : // sorel-20m / 09-DEC-2020 / binaries /에서 S3를 통해 사용 가능하며 python zlib를 통해 압축됩니다.https://github.com/sophos-ai/SOREL-20M(섹션 4 참조) 제공되는 SQLite 및 LMDB 조합 데이터베이스와 상호 작용하며 우리가 제공하는 기준 모델을 교육하는 데 사용할 수 있습니다. 모든 샘플은 sha256으로 식별됩니다. 무장 해제 된 맬웨어 샘플의 경우, 무장 해제 된 파일의 sha256이 아닌 수정되지 않은 원본 파일의 sha256을 사용합니다. sha256은 SQLite 데이터베이스의 기본 키와 두 LMDB 데이터베이스의 키 역할을합니다. LMDB 항목은 배열 또는 사전 (각각 EMBER 기능 벡터 또는 PE 메타 데이터 용)으로 저장되고 msgpack으로 직렬화되고 zlib로 압축됩니다. 데이터는 2017 년 1 월 1 일부터 2019 년 4 월 10 일까지 수집되었습니다. RL 원격 측정에서 처음 본 시간을 기준으로 데이터의 시간 분할을 다음과 같이 제안합니다. 수집 시작부터 2018 년 11 월 29 일까지의 학습 데이터 ; 그때부터 2019 년 1 월 12 일까지의 검증 데이터 2019 년 1 월 12 일부터 데이터 끝까지 데이터를 테스트합니다. 이러한 시간 분할을 사용하여 학습, 검증 및 테스트 세트에서 악성 및 양성 샘플의 분석이 표 2에 나와 있습니다.

우리는 두 가지 기본 모델을 제공합니다. Pytorch FFNN (feed-forward neural network) 모델 및 LightGBM gradientboosted 의사 결정 트리 모델. 두 모델 모두 섹션 2에 설명 된 LMDB에서 사용할 수있는 EMBER-v2 기능에 대해 학습되고, 각각 1, 2, 3, 4 및 5의 임의 시드를 사용하여 섹션 4에 설명 된 GitHub 리포지토리의 코드를 사용하여 학습됩니다. FFNN 모델은 3 개의 '블록'에 이어 하나 이상의 출력 '헤드'로 구성된 [10] 모델의 단순화 된 버전입니다. 블록은 선형 계층, LayerNorm, ELU 활성화 및 드롭 아웃으로 구성됩니다. 출력 헤드는 태그, 개수 및 맬웨어 분류에 대한 출력을 생성하는 추가 선형 및 활성화 레이어로 구성됩니다. 자세한 내용은 github 저장소의 'nets.py'파일을 참조하십시오. LightGBM 모델은 500 번의 반복으로 학습되었습니다. 제한되지 않은 최대 깊이이지만 최대 64 개의 잎, 배깅 비율 0.9, 트리 수준 및 노드 수준 모두에서 기능 하위 선택 0.9, 조기 중지 라운드 수 10 ( 'lightgbm_config.json'참조) 모든 매개 변수에 대한 GitHub 저장소). 도우미 스크립트 'build_numpy_arrays_for_lightgbm.py'를 사용하여 LMDB 기능을 다음에 적합한 numpy 배열로 언로드 할 수 있습니다.

지원 코드가 포함 된 GitHub 저장소는 https://github.com/sophos-ai/SoReL-20M 에서 액세스 할 수 있습니다.Apache 2.0 라이선스에 따라 사용이 허가되었습니다. 여기에는 제공된 기준 모델을 교육하는 데 사용 된 코드, 미리 추출 된 기능 및 메타 데이터가 포함 된 데이터베이스와 상호 작용하는 데 사용할 수있는 코드, 구축을위한 최소 환경을 설명하는 Anaconda [12] 호환 YaML 파일을 포함한 지원 파일이 포함됩니다. 데이터 세트로드 시간을 가속화하기 위해 EMBER-v2 기능을 추출 할 수없는 모델 및 sha256 값 목록. 환경 초기화 및 모델 학습에 대한 자세한 내용은 저장소의 README 파일, 다양한 스크립트의 '–help'옵션 및 함수 독 스트링을 통해 제공됩니다. 간단히; 'train.py'및 'evaluate.py'파일은 각각 모델을 학습하고 평가합니다. 줄거리. py '명령은 플롯하기 위해 실행되는 JSON 파일을 가져 와서 (예는 사전 훈련 된 모델 가중치가있는 S3 버킷에 제공됨) 섹션 3에 표시된 형식의 플롯을 출력합니다. pytorch FFNN 모델은'nets.py에 지정되어 있습니다. '이고 LightGBM 모델은'lightgbm_config.json '파일에 지정되어 있습니다. 'dataset.py'및 'generators.py'함수는 다른 프레임 워크를 사용하여 모델을 학습하려는 사람들에게 가장 관심이 있습니다. 'dataset.py'의 Dataset 클래스는 PyTorch Dataset 클래스를 하위 클래스로 지정하여 SQLite3 meta.db 파일을 기능 LMDB에 연결합니다. 'generators.py'의 GeneratorFactory 클래스는 학습 준비를 위해 dataset.Dataset 인스턴스를로드하고 PyTorch DataLoader에 래핑하는 인터페이스를 제공합니다. 마지막으로 섹션 3에서 언급했듯이 'build_numpy_arrays_for_lightgbm.

OCR (Optical Character Recognition) 시스템은 사무 자동화 (OA) 시스템, 공장 자동화, 온라인 교육,지도 제작 등과 같은 다양한 애플리케이션 시나리오에서 널리 사용되었습니다. 그러나 OCR은 여전히 ​​다양한 작업으로 인해 어려운 작업입니다. 텍스트 모양과 계산 효율성에 대한 요구. 본 논문에서는 실용적인 초경량 OCR 시스템 인 PPOCR을 제안한다. PP-OCR의 전체 모델 크기는 한자 6622 자 인식시 3.5M, 영숫자 63 자 인식시 2.8M에 불과합니다. 모델 능력을 향상 시키거나 모델 크기를 줄이는 전략 가방을 소개합니다. 실제 데이터를 사용한 해당 절제 실험도 제공됩니다. 한편, 중국어 및 영어 인식을 위해 사전 훈련 된 여러 모델이 출시되었습니다. 텍스트 검출기 (97K 이미지 사용), 방향 분류기 (600K 이미지 사용), 텍스트 인식기 (17.9M 이미지 사용)를 포함합니다. 또한 제안 된 PP-OCR은 프랑스어, 한국어, 일본어 및 독일어를 포함한 여러 다른 언어 인식 작업에서도 검증됩니다. 위에서 언급 한 모든 모델은 오픈 소스이며 코드는 GitHub 저장소에서 사용할 수 있습니다.

그림 1과 같이 이미지의 텍스트를 자동으로 인식하는 것을 목표로하는 기술인 OCR (Optical Character Recognition)은 오랜 연구 역사와 문서 전자화, 신원 인증, 디지털 금융 시스템, 차량 등 광범위한 응용 시나리오를 가지고 있습니다. 번호판 인식. 또한 공장에서는 제품의 텍스트 정보를 자동으로 추출하여 제품을보다 편리하게 관리 할 수 ​​있습니다. 학생의 오프라인 숙제 또는 시험지가 OCR 시스템으로 전자화되어 교사와 학생 간의 커뮤니케이션이보다 효율적으로 이루어집니다. OCR은 스트리트 뷰 이미지의 관심 지점 (POI)에 레이블을 지정하는데도 사용할 수 있으므로지도 제작 효율성에 도움이됩니다. 풍부한 애플리케이션 시나리오는 OCR 기술에 큰 상업적 가치를 부여하는 한편 많은 도전 과제를 부여합니다. 다양한 텍스트 모양 이미지의 텍스트는 일반적으로 장면 텍스트와 문서 텍스트의 두 가지 범주로 나눌 수 있습니다. 장면 텍스트는 Copyright © 2021, All rights reserved에 표시된 자연 장면의 텍스트를 의미합니다. 그림 1 : 제안 된 PP-OCR 시스템의 일부 이미지 결과. 그림 3은 일반적으로 원근, 크기 조정, 구부러짐, 어수선 함, 글꼴, 다국어, 흐림, 조명 등과 같은 요소에 따라 크게 변경됩니다. 그림 4에 표시된 것처럼 문서 텍스트는 실제 응용 프로그램에서 더 자주 발생합니다. 고밀도 및 긴 텍스트로 인해 발생하는 다양한 문제를 해결해야합니다. 그렇지 않으면 문서 이미지 텍스트 인식이 결과를 구조화해야하는 경우가 많아 새로운 어려운 작업이 도입되었습니다. 계산 효율성 실제로 처리해야하는 이미지는 일반적으로 방대합니다. 이는 높은 계산 효율성을 OCR 시스템 설계의 중요한 기준으로 만듭니다. CPU는 GPU보다 선호됩니다.

비용을 고려합니다. 특히 OCR 시스템은 휴대폰과 같은 많은 시나리오에서 임베디드 장치에서 실행되어야하므로 모델 크기를 고려해야합니다. 모델 크기와 성능을 절충하는 것은 어렵지만 큰 가치가 있습니다. 본 논문에서는 그림 2와 같이 텍스트 감지, 감지 된 상자 수정 및 텍스트 인식의 세 부분으로 구성된 PP-OCR이라는 실용적인 초경량 OCR 시스템을 제안합니다. 텍스트 감지 텍스트 감지의 목적은 위치를 찾는 것입니다. 이미지의 텍스트 영역. PP-OCR에서는 단순 세분화 네트워크를 기반으로하는 텍스트 감지기로 Differentiable Binarization (DB) (Liao et al. 2020)을 사용합니다. DB의 간단한 후 처리로 매우 효율적입니다. 효과와 효율성을 더욱 향상시키기 위해 다음 6 가지 전략이 사용됩니다 : 라이트 백본, 라이트 헤드, SE 모듈 제거, 코사인 학습률 감소, 학습률 워밍업 및 FPGM pruner. 마지막으로 텍스트 감지기의 모델 크기가 1.4M로 줄어 듭니다. 감지 상자 수정 감지 된 텍스트를 인식하기 전에 후속 텍스트 인식을 위해 텍스트 상자를 가로 직사각형 상자로 변환해야합니다 (그림 4 : 문서 텍스트가 포함 된 일부 이미지). 검출 프레임이 4 개의 포인트로 구성되어있어 기하학적 변형으로 쉽게 달성 할 수 있습니다. 그러나 정류 된 상자는 반전 될 수 있습니다. 따라서 텍스트 방향을 결정하려면 분류 기가 필요합니다. 상자가 반전 된 것으로 결정되면 추가 반전이 필요합니다. 텍스트 방향 분류기를 훈련하는 것은 간단한 이미지 분류 작업입니다. 우리는 모델 능력을 향상시키고 모델 크기를 줄이기 위해 다음 네 가지 전략을 채택합니다 : 라이트 백본, 데이터 증가, 입력 해상도 및 PACT 양자화. 마지막으로 텍스트 방향 분류기의 모델 크기는 500KB입니다. 텍스트 인식 PP-OCR에서는 텍스트 인식에 널리 사용되는 실용적인 CRNN (Shi, Bai, Yao 2016)을 텍스트 인식기로 사용합니다. CRNN은 특징 추출 및 시퀀스 모델링을 통합합니다. 예측과 라벨 사이의 불일치를 피하기 위해 Connectionist Temporal Classification (CTC) 손실을 채택합니다. 모델 능력을 향상시키고 텍스트 인식기의 모델 크기를 줄이기 위해 다음 9 가지 전략이 사용됩니다. 라이트 백본, 데이터 증가, 코사인 학습률 감소, 기능 맵 해상도 텍스트 인식에 널리 사용되고 실용적입니다. CRNN은 특징 추출 및 시퀀스 모델링을 통합합니다. 예측과 레이블 간의 불일치를 피하기 위해 연결주의 시간 분류 (CTC) 손실을 채택합니다. 모델 능력을 향상시키고 텍스트 인식기의 모델 크기를 줄이기 위해 다음 9 가지 전략이 사용됩니다. 라이트 백본, 데이터 증가, 코사인 학습률 감소, 기능 맵 해상도 텍스트 인식에 널리 사용되고 실용적입니다. CRNN은 특징 추출 및 시퀀스 모델링을 통합합니다. 예측과 레이블 간의 불일치를 피하기 위해 연결주의 시간 분류 (CTC) 손실을 채택합니다. 모델 능력을 향상시키고 텍스트 인식기의 모델 크기를 줄이기 위해 다음 9 가지 전략이 사용됩니다. 라이트 백본, 데이터 증가, 코사인 학습률 감소, 기능 맵 해상도

tion, 정규화 매개 변수, 학습률 워밍업, 라이트 헤드, 사전 훈련 된 모델 및 PACT 양자화. 마지막으로 텍스트 인식기의 모델 크기는 중국어 및 영어 인식의 경우 1.6M이고 영숫자 기호 인식의 경우 900KB입니다. 실용적인 OCR 시스템을 구현하기 위해 중국어 및 영어 인식을위한 대규모 데이터 세트를 예로 구성합니다. 특히 텍스트 감지 데이터 세트에는 97K 이미지가 있습니다. 방향 분류 데이터 세트에는 600k 이미지가 있습니다. 텍스트 인식 데이터 세트에는 1,790 만 개의 이미지가 있습니다. 절제 실험을 신속하게 수행하고 적절한 전략을 선택하기 위해 소량의 데이터가 선택됩니다. 그림 2에서 다양한 전략의 효과를 보여주기 위해 많은 절제 실험을합니다. 게다가, 또한 영숫자 기호, 프랑스어, 한국어, 일본어 및 독일어를 포함한 다른 언어 인식을 위해 제안 된 PP-OCR 시스템을 확인합니다. 나머지 논문은 다음과 같이 구성됩니다. 섹션 2에서는 모델 강화 또는 슬리밍 전략의 가방을 제시합니다. 실험 결과는 섹션 3에서 논의되고 결론은 섹션 4에서 진행됩니다. 2 개선 또는 슬리밍 전략 2.1 텍스트 감지이 섹션에서는 텍스트 감지기의 모델 능력을 향상 시키거나 모델 크기를 줄이기위한 6 가지 전략에 대해 자세히 소개합니다. 그림 5는 텍스트 감지기 DB의 아키텍처를 보여줍니다. 라이트 백본 백본의 크기는 텍스트 감지기의 모델 크기에 지배적 인 영향을 미칩니다. 따라서 초경량 모델을 구축하려면 가벼운 백본을 선택해야합니다. 이미지 분류의 발전과 함께 MobileNetV1, MobileNetV2, MobileNetV3 및 ShuffleNetV2 시리즈는 종종 라이트 백본으로 사용됩니다. 시리즈마다 규모가 다릅니다. CPU에 대한 추론 시간과 20 가지 이상의 백본 정확도 덕분에 PaddleClas1은 그림 6과 같이,

MobileNetV3는 예측 시간이 같을 때 더 높은 정확도를 얻을 수 있습니다. 스케일 선택에 관해서는 경험적으로 정확도와 효율성의 균형을 맞추기 위해 MobileNetV3 대형 x0.5를 채택했습니다. 덧붙여서, PaddleClas는 최대 24 개의 이미지 분류 네트워크 구조 및 훈련 구성, 122 개의 모델의 사전 훈련 된 가중치 및 ResNet, ResNet vd, SEResNeXt, Res2Net, Res2Net vd, DPN, DenseNet, EfficientNet, Xception, HRNet 등 Light Head 텍스트 감지기의 헤드는 물체 감지의 FPN (Lin et al. 2017) 아키텍처와 유사하며 작은 텍스트 영역 감지에 대한 효과를 개선하기 위해 다양한 스케일의 기능 맵을 융합합니다. 다른 해상도 기능 맵을 병합하는 편의를 위해

짧은). 확률 맵과 임계 값 맵은 위의 내부 채널과도 관련된 컨볼 루션을 사용하여 융합 된 특징 맵에서 생성됩니다. 따라서 내부 채널은 모델 크기에 큰 영향을 미칩니다. 내부 채널을 256에서 96으로 줄이면 모델 크기가 7M에서 4.1M으로 줄어들지 만 정확도는 약간 떨어집니다. Remove SE SE는 압착 및 여기 (Hu, Shen 및 Sun 2018)의 약자입니다. 그림 7에서 볼 수 있듯이 SE 블록은 채널 간의 상호 종속성을 명시 적으로 모델링하고 채널 별 기능 응답을 적응 적으로 재 보정합니다. SE 블록은 분명히 비전 작업의 정확도를 향상시킬 수 있기 때문에 MobileNetV3의 검색 공간에는 해당 블록이 포함되어 있고 수많은 SE 블록이 MobileNetV3 아키텍처에 있습니다. 그러나 640 × 640과 같이 입력 해상도가 크면 SE 블록으로 채널 별 특성 응답을 추정하는 것은 어렵습니다. 정확도 향상은 제한적이지만 시간 비용이 매우 높습니다. SE 블록을 백본에서 제거하면 모델 크기가 4.1M에서 2.5M으로 줄어들지 만 정확도는 영향을 미치지 않습니다. 코사인 학습률 감소 학습률은 학습 속도를 제어하는 ​​하이퍼 파라미터입니다. 학습률이 낮을수록 손실 값의 변화가 느려집니다. 낮은 학습률을 사용하면 로컬 최소값을 놓치지 않을 수 있지만 수렴 속도가 느리다는 의미이기도합니다. 훈련의 초기 단계에서 가중치는 무작위 초기화 상태이므로 더 빠른 수렴을 위해 상대적으로 큰 학습률을 설정할 수 있습니다. 훈련 후반기에 가중치는 최적 값에 가깝습니다. 따라서 상대적으로 더 작은 학습률을 사용해야합니다. 코사인 학습률 감소가 선호되는 학습이되었습니다. 그림 9 : FPGM Pruner의 그림. 이 수치는 논문에서 가져온 것입니다 (He et al. 2019b). 모델 정확도 향상을위한 속도 감소 전략. 전체 훈련 과정에서 코사인 학습률 감소는 상대적으로 큰 학습률을 유지하므로 수렴은 느리지 만 최종 수렴 정확도는 더 좋습니다. 그림 8은 학습률 하락의 다양한 방법을 비교합니다. 학습률 워밍업이 논문 (He et al. 2019a)은 학습률 워밍업 작업을 사용하면 이미지 분류의 정확도를 향상시키는 데 도움이 될 수 있음을 보여줍니다. 훈련 과정을 시작할 때 너무 큰 학습률을 사용하면 수치가 불안정해질 수 있으므로 작은 학습률을 사용하는 것이 좋습니다. 훈련 과정이 안정되면 초기 학습률이 사용됩니다. 텍스트 감지의 경우 실험에서이 전략도 효과적임을 보여줍니다. FPGM Pruner Pruning은 신경망 모델의 추론 효율성을 향상시키는 또 다른 방법입니다. 모델 프 루닝으로 인한 모델 성능 저하를 방지하기 위해 FPGM (He et al. 2019b)을 사용하여 원본 모델에서 중요하지 않은 하위 네트워크를 찾습니다. FPGM은 기하 중앙값을 기준으로 사용하고 컨볼 루션 레이어의 각 필터는 유클리드 공간의 한 점으로 간주됩니다. 그런 다음 이러한 점의 기하학적 중앙값을 계산하고 그림 9와 같이 유사한 값을 가진 필터를 제거합니다. 각 레이어의 압축 비율도 모델을 잘라내는 데 중요합니다. 모든 계층을 균일하게 정리하면 일반적으로 성능이 크게 저하됩니다. PP-OCR에서 각 레이어의 가지 치기 민감도는 (Li et al. 2016)의 방법에 따라 계산 된 다음 각 레이어의 중복성을 평가하는 데 사용됩니다. 2.2 방향 분류이 섹션에서는 방향 분류기의 모델 능력을 향상 시키거나 모델 크기를 줄이기위한 네 가지 전략에 대해 자세히 소개합니다. Light Backbone 텍스트 감지기와 동일한 방향 분류기의 백본으로 MobileNetV3도 채택했습니다. 이 작업은 비교적 간단하기 때문에 경험적으로 정확도와 효율성의 균형을 맞추기 위해 MobileNetV3 small x0.35를 사용합니다. 더 큰 백본을 사용할 때 정확도가 더 향상되지는 않습니다. 데이터 확대이 백서 (Yu et al. 2020)는 모델 능력을 향상 시키거나 방향 분류기의 모델 크기를 줄이기위한 네 가지 전략에 대한 세부 정보를 소개합니다. Light Backbone 텍스트 감지기와 동일한 방향 분류기의 백본으로 MobileNetV3도 채택했습니다. 이 작업은 비교적 간단하기 때문에 경험적으로 정확도와 효율성의 균형을 맞추기 위해 MobileNetV3 small x0.35를 사용합니다. 더 큰 백본을 사용할 때 정확도가 더 향상되지는 않습니다. 데이터 확대이 백서 (Yu et al. 2020)는 모델 능력을 향상 시키거나 방향 분류기의 모델 크기를 줄이기위한 네 가지 전략에 대한 세부 정보를 소개합니다. Light Backbone 텍스트 감지기와 동일한 방향 분류기의 백본으로 MobileNetV3도 채택했습니다. 이 작업은 비교적 간단하기 때문에 경험적으로 정확도와 효율성의 균형을 맞추기 위해 MobileNetV3 small x0.35를 사용합니다. 더 큰 백본을 사용할 때 정확도가 더 향상되지는 않습니다. 데이터 확대이 백서 (Yu et al. 2020)는 더 큰 백본을 사용할 때 정확도가 더 향상되지는 않습니다. 데이터 확대이 백서 (Yu et al. 2020)는 더 큰 백본을 사용할 때 정확도가 더 향상되지는 않습니다. 데이터 확대이 백서 (Yu et al. 2020)는

Juhyun-kim98 commented 3 years ago

(위 글에서 포인트 가져오기)

SOREL-20M의 특징 SOREL-20M은 악성 코드 탐지를위한 가치있는 벤치 마크가되기 위해 이러한 문제의 전체 또는 일부를 해결하려고합니다. 분석을 위해 훨씬 더 많은 샘플을 제공하여 훈련 크기 문제를 해결합니다. 내부적으로는 더 큰 데이터 세트로 성능이 지속적으로 향상되는 반면, 3 ~ 4 백만 개의 예에 대한 유효성 검사 크기는 모델간에 안정적인 순위 순서를 설정하고 더 낮은 오 탐률로 성능을 평가하는 데 충분하다는 것을 발견했습니다. 권장 시간 분할 [5]을 사용하여 훈련, 검증 및 테스트 세트를 설정하면 각각 12,699,013 개의 훈련 샘플, 2,495,822 개의 검증 샘플 및 4,195,042 개의 테스트 샘플을 얻습니다. 이것은 서로 다른 모델, 아키텍처 및 기능을 비교하여 상대적인 성능을 설정할 수 있도록하기에 충분합니다. 특히 모델의 여러 무작위 초기화를 사용하여 동시에 모델 분산을 조사하는 데주의를 기울이는 경우. 우리는 맬웨어에 대해서만 (무장 해제 된) 바이너리 샘플을 제공하여 기능 탐색 문제를 부분적으로 해결합니다. 실행을 방지하기 위해 optional_headers.subsystem 및 file_header.machine 플래그를 모두 0으로 설정하여 '무장 해제'된 9,919,251 개의 멀웨어 바이너리 샘플 (7,596,407 개의 학습 샘플, 962,222 개의 검증 샘플 및 1,360,622 개의 테스트 샘플)을 제공합니다. . 또한 dump_dict () 메서드를 사용하여 Python pefile [6] 모듈을 통해 얻은 완전한 PE 메타 데이터를 제공했습니다. 이것은 모델의 직접적인 비교를 방해하지만 연구원이 제공 한 기능 추출 코드를 사용하여 악성 코드 세트에 대한 점수 분포를 비교하면 여전히 다른 임계 값에서 탐지율을 비교할 수 있습니다. EMBER와 마찬가지로 LightGBM [7] 및 PyTorch [8] 기반 피드 포워드 신경망 (FFNN) 모델을 모두 사용하여 SOREL-20M에 대한 기준 모델을 설정했습니다. 두 모델 모두 성능이 높지만 특히 더 낮은 오 탐률 (이제 SOREL-20M 말뭉치의 큰 크기로 인해 확신을 가지고 평가할 수 있음)에서 개선의 여지가 상당합니다. 이를 통해 SOREL-20M이 악성 코드 탐지 접근 방식을 서로 비교하는 방법으로 더욱 유용해질 것으로 예상합니다. 마지막으로, 벤더 레이블 ([9]에 설명 된대로)에서 추론 된 동작을 설명하는 모델에 대한 여러 추가 대상을 제공하며 [10]에 설명 된대로 다중 대상 모델을 사용하기위한 벤치 마크도 제공합니다. 다음 섹션에서는 데이터의 코퍼스 통계 및 구조와 액세스 방법에 대해 설명합니다. 그런 다음 데이터에 대해 학습 한 기준 모델과 관련 GitHub 저장소의 레이아웃을 설명합니다. 2 데이터 세트 설명 전체 데이터 세트는 다음 항목으로 구성됩니다. • 9,919,251 개의 원래 (무장 해제 된) 악성 코드 샘플; s3 : // sorel-20m / 09-DEC-2020 / binaries /에서 S3를 통해 사용 가능하며 python zlib를 통해 압축됩니다

Juhyun-kim98 commented 3 years ago

모델

두 가지 기본 모델을 제공합니다. Pytorch FFNN (feed-forward neural network) 모델 및 LightGBM gradientboosted 의사 결정 트리 모델. 두 모델 모두 섹션 2에 설명 된 LMDB에서 사용할 수있는 EMBER-v2 기능에 대해 학습되고, 각각 1, 2, 3, 4 및 5의 임의 시드를 사용하여 섹션 4에 설명 된 GitHub 리포지토리의 코드를 사용하여 학습됩니다. FFNN 모델은 3 개의 '블록'에 이어 하나 이상의 출력 '헤드'로 구성된 [10] 모델의 단순화 된 버전입니다. 블록은 선형 계층, LayerNorm, ELU 활성화 및 드롭 아웃으로 구성됩니다. 출력 헤드는 태그, 개수 및 맬웨어 분류에 대한 출력을 생성하는 추가 선형 및 활성화 레이어로 구성됩니다. 자세한 내용은 github 저장소의 'nets.py'파일을 참조하십시오. LightGBM 모델은 500 번의 반복으로 학습되었습니다. 제한되지 않은 최대 깊이이지만 최대 64 개의 잎, 배깅 비율 0.9, 트리 수준 및 노드 수준 모두에서 기능 하위 선택 0.9, 조기 중지 라운드 수 10 ( 'lightgbm_config.json'참조) 모든 매개 변수에 대한 GitHub 저장소). 도우미 스크립트 'build_numpy_arrays_for_lightgbm.py'를 사용하여 LMDB 기능을 다음에 적합한 numpy 배열로 언로드 할 수 있습니다.

Juhyun-kim98 commented 3 years ago

코드파일 설명

데이터 세트로드 시간을 가속화하기 위해 EMBER-v2 기능을 추출 할 수없는 모델 및 sha256 값 목록. 환경 초기화 및 모델 학습에 대한 자세한 내용은 저장소의 README 파일, 다양한 스크립트의 '–help'옵션 및 함수 독 스트링을 통해 제공됩니다.

마지막으로 섹션 3에서 언급했듯이 'build_numpy_arrays_for_lightgbm.

Juhyun-kim98 commented 3 years ago

Read.md 의 Quick start 중...

다음을 사용하여 신경망 모델을 훈련시킬 수 있습니다 (config.py 값은 명령 줄 스위치를 통해 재정의 할 수 있습니다.

python train.py train_network --remove_missing_features=shas_missing_ember_features.json

image