기금넷 공식사이트 - 복권 조회 - 모형 압축: 자르기 알고리즘
모형 압축: 자르기 알고리즘
가지 치기 알고리즘의 핵심 아이디어는 네트워크 모델의 매개변수와 계산량을 줄이는 동시에 모델의 성능이 영향을 받지 않도록 하는 것입니다.
AI 프레임워크의 경우, 가지치기는 주로 오른쪽 아래 모서리에 있는 엔드 모델 추리 응용 프로그램 장면에서 사용되며, 평면, 휴대폰, 시계, 헤드폰 등 작은 IOT 장치는 AI 모델을 쉽게 사용할 수 있습니다. 실제로 훈련 과정은 가지 치기 알고리즘과 프레임워크가 제공하는 가지 치기 API 에 더 많이 반영됩니다.
사실, 대부분의 경우 가지 치기 알고리즘을 처음 접할 때 다음 그림과 같이 매크로 수준에서 가지 치기 기술을 나눕니다. 주로 두 가지 고전적인 가지 치기 알고리즘인 Drop Out 과 Drop Connect 로 나뉩니다.
1)Drop Out: 일부 뉴런의 출력을 무작위로 0 으로 설정합니다. 이를 뉴런 가지치기라고 합니다.
2)Drop Connect: 일부 뉴런 사이의 연결 Connect 를 무작위로 0 으로 설정하여 가중치 연결 매트릭스를 희소하게 합니다.
더 많은 자르기 방법이 아래에 나타나는데, 좀 복잡할 수 있습니다. 가지 치기의 세분성에 따라 구조적 가지와 구조화되지 않은 가지로 나눌 수 있으며 가지 치기 구조 방법에는 두 가지가 있습니다. 네 가지 구체적인 트리밍 방법을 살펴 보겠습니다.
세분화 된 가지 치기, 벡터 가지 치기 및 코어 가지 치기는 매개 변수와 모델 성능의 균형을 이루지만 네트워크 모델의 단일 레이어에서 뉴런 간의 조합 구조가 변경되어 스파 스 연산을 지원하려면 특수 알고리즘이나 하드웨어 구조가 필요합니다. 이를 구조화되지 않은 가지 치기라고합니다.
그 중에서도 구조화되지 않은 가지치기는 압축비가 높아지고 모델 성능이 향상되지만, 하드웨어 가속 계산에 익숙하지 않은 스파스 구조가 있는 네트워크 모델이 희소하게 됩니다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 성공명언) 기본 하드웨어 및 컴퓨팅 가속 라이브러리가 스파스 컴퓨팅을 더 잘 지원하지 않는 한 가지 치기 후 상당한 성능 향상을 달성하기 어렵습니다.
필터 수준은 주로 네트워크의 필터 그룹 및 피쳐 채널 수를 변경합니다. 결과 모델은 특수한 알고리즘과 하드웨어 없이 작동할 수 있습니다. 이를 구조적 가지치기라고 합니다. 구조화된 트리밍은 더 세분화될 수 있습니다. 채널, 필터 및 모양이 될 수 있습니다.
구조화 된 가지 치기는 구조화되지 않은 가지 치기와 정반대이며 네트워크 모델의 구조적 특성을 쉽게 변경하여 모델을 압축하는 효과를 얻을 수 있습니다. 예를 들어 지식 정제에서 학생 네트워크 모델, NAS 검색 또는 VGG 19, VGG 16 등의 절단 모델은 변형된 구조적 가지 치기 동작으로도 볼 수 있습니다.
가지 치기 알고리즘의 분류는 많이 보이지만, 핵심 사상은 신경망 모델을 가지치기하는 것이다. 현재 가지 치기 알고리즘의 전체 프로세스는 비슷하며 다음 그림과 같이 표준 가지 치기, 하위 모델 샘플링을 기반으로 한 가지 가지 가지, 검색 기반 가지 등 세 가지로 요약할 수 있습니다.
표준 가지 치기는 현재 가장 인기 있는 가지 치기 과정으로, Tensorflow 와 Pytroch 모두 표준 인터페이스가 있다. 주로 훈련, 트리밍, 미세 조정의 세 부분으로 구성됩니다.
1) 교육: 먼저 네트워크 모델을 훈련시킵니다. 가지 치기 과정에서 훈련 부분은 주로 사전 훈련을 의미하며, 훈련의 목적은 가지 치기 알고리즘이 특정 기본 SOTA 임무에서 훈련하는 원시 모델을 얻기 위한 것이다.
3) 미세 조정: 미세 조정은 가지 치기 작업의 영향을 받는 모형 표현 능력을 복원하는 데 필요한 단계입니다. 구조 모델 가지 치기는 원래 모델 구조를 조정하므로 가지 치기 후의 모델 매개변수는 원래 모델 매개변수를 유지하지만, 모델 구조의 변화로 인해 가지 치기 후 모델의 표현 능력에 어느 정도 영향을 줍니다. 구현에서는 네트워크 모델을 미세 조정하고, 계산 시 매개변수에 마스크를 먼저 곱합니다. 1 마스크인 매개변수 값은 BP 조정 그라데이션을 통해 교육을 계속합니다. 마스크 0 인 부분은 출력이 항상 0 이기 때문에 후속 부분에 영향을 주지 않습니다.
4) 가지 다시 자르기: 가지를 다시 자르는 동안 미세 조정된 네트워크 모델을 가지 치기 모듈로 보내고 모델 구조를 다시 평가하고 가지 치기 알고리즘을 실행합니다. 목표는 모델의 각 가지 치기에 더 나은 성능을 제공하고 모델이 가지 치기 목표 요구 사항을 충족할 때까지 가지 치기 모델을 반복적으로 최적화하는 것입니다.
마지막으로 출력 모델 매개변수를 저장할 때 많은 희소성으로 인해 저장된 데이터 구조를 재정의하여 0 이 아닌 값과 해당 행렬 위치만 저장할 수 있습니다. 모형 매개변수를 다시 읽을 때 행렬을 복원할 수 있습니다.
표준 가지 치기 외에도 하위 모델 샘플링을 기반으로 한 가지 치기,' 독수리 눈: 빠른 서브넷 평가 효율적인 신경망 가지 치기' 는 최근 좋은 가지 치기 효과를 보이고 있다. 잘 훈련 된 모델을 얻은 후 서브 모델 샘플링 프로세스를 수행하십시오. 서브모델 샘플링 프로세스는 다음과 같습니다.
1) 가지 치기 목표에 따라 잘 훈련된 원시 모델에서 가지를 자를 수 있는 네트워크 구조를 샘플링합니다. 샘플링 프로세스는 무작위일 수도 있고 네트워크 구조의 중요도나 KL 분기 계산을 통해 샘플링할 수도 있습니다.
2) 샘플링된 네트워크 구조를 잘라서 샘플링 모델을 얻습니다. 하위 모델 샘플링 프로세스는 일반적으로 하위 모델 (≥ 1) 을 얻기 위해 두 번 수행되고 각 하위 모델의 성능을 평가합니다. 하위 모델을 평가한 후 미세 조정을 위해 최적의 하위 모델을 선택하여 최종 가지 치기 모델을 얻습니다.
검색 기반 가지 치기는 주로 강화 학습과 같은 일련의 감독되지 않거나 반 감독 학습 알고리즘에 의존하며 신경망 구조 검색 이론과도 관련될 수 있습니다.
주어진 가지 치기 목표, 검색 기반 가지 치기는 네트워크 구조에서 더 나은 하위 구조를 검색합니다. 이는 종종 네트워크 매개변수의 학습 과정을 수반하기 때문에 일부 검색 기반 가지 치기 알고리즘은 가지 치기 후에 미세 조정할 필요가 없습니다.
최근 몇 년 동안, 신경 네트워크 가지 치기는 모형 압축 기술 4 용 중 하나로 점점 더 많은 관심을 받고 있다. 물론, 가지 치기 매개변수를 더 잘 선택할 수 있는 여러 가지 방법이 끊임없이 나올 것이다. 또한 추세상 다음과 같은 몇 가지 방향은 주목할 만하다.
고정가설을 타파하다: ICLR20 19 회의에서 등장한 최고의 종이 복권 가설' 복권 티켓 가설: 희소하고 훈련가능한 신경망 찾기' 와 같은 기존의 고유 가설에 도전한다. 또 다른 흥미로운 반성은 앞서 언급한 과도한 매개변수화와 기존 매개변수의 재사용이 가지 치기 알고리즘에 큰 영감을 주어 문제를 해결하는 사고방식을 근본적으로 바꿀 수 있다는 점이다.
자동 가지 치기: AutoML 의 물결에 따라 점점 더 많은 알고리즘이 자동화되기 시작합니다. 모델 압축을 풀 수 있습니까? 물론 아닙니다. 앞서 소개한 바와 같이, ADC, RNP, N2N 학습과 같은 작업은 모두 트리밍 작업의 자동화를 시도하고 있다는 것을 알고 있습니다. 예를 들어 정량화의 "Haq: 하드웨어 인식 자동 정량화" 는 네트워크의 서로 다른 계층에 있는 정보의 중복도가 다르다는 점을 고려하여 혼합 정량화 비트를 사용하여 자동으로 압축합니다.
NAS 와의 융합: 이전 모델 가지 치기 과정에서 언급했듯이 가지 치기 알고리즘과 신경망 검색 NAS 사이의 경계가 흐려졌습니다. NAS 에는 일회성 스키마 검색과 같은 구조적 가지 치기 검색 방법이 있습니다. 먼저 큰 네트워크를 가지고 있다가 빼는 것입니다. NAS 와 모델 압축, 처음에는 그렇게 크게 관련이 없어 보였던 이 두 가지가 최근 몇 년 동안 하류 작업과 배포 시나리오의 요구로 인해 함께 모인 것 같다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 모델명언) 오늘날, 이 두 가지 분기는 더 많은 교집합을 가지고 있으며, 반드시 더 많은 불꽃을 발할 것이다.
GAN 과의 융합: 최근 몇 년간 기계 학습에서 가장 핫한 분기 중 하나인 GAN 이 기존 분야에 계속 침투하고 있으며 가지 치기에도 등장하기 시작했다. 예를 들어, 20 19 "생성형 대항학습을 통한 구조화 CNN 가지 치기 최적화" 를 통해 생성기가 트리밍된 네트워크를 생성할 수 있습니다. 판별기는 원래 네트워크에 속하는지 트리밍된 네트워크에 속하는지 판단하여 보다 효율적인 네트워크 구조 가지를 수행할 수 있습니다.
하드웨어 희소성 지원: 가지치기는 신경 네트워크 모델에 희소한 특성을 가져다 주며, 매개변수가 희소하면 계산할 때 많은 색인이 있어 가속화할 수 없습니다. CuSPARSE 와 같은 컴퓨팅 라이브러리가 있지만 기본 하드웨어 AI 칩 자체는 스파스 데이터 처리를 위해 특별히 설계된 것이 아닙니다. 스파스 컴퓨팅 및 처리 능력을 칩에 내장할 수 있다면 컴퓨팅 효율성이 크게 향상됩니다. 202 1 년, 중국은 ASIC 기반 10+ AI 가속 칩을 출시하여 향후 스파스 장면에 대한 지원이 돌파될 것으로 예상하고 있습니다.
모델 압축 알고리즘에는 텐서 분해, 모델 가지 치기 및 모델 수량화가 포함됩니다. 새로 구축된 네트워크의 경우, 지식 정제, 컴팩트한 네트워크 설계 등의 방법이 있다.
가지 치기는 모델 압축 방법 중 하나일 뿐, 다른 모델 압축 방법과는 충돌하지 않기 때문에 점진적으로 정량화, 증류, NAS, 강화 학습 등의 방법과 융합될 수 있으며, 이것들은 모두 연구할 만한 가치가 있다. 또한, 이러한 발전을 감안하여 기존의 가설 정의를 깨고 NAS, GAN, AutoML, RL 등의 기술과 융합하여 결국 purning 패턴을 모호하게 할 수 있으며, 새로운 패러다임이나 압축 패턴이 나타나는 것도 매우 매력적입니다.