딥러닝의 개념은 인공 신경망 연구에서 유래되었습니다. 여러 개의 은닉층을 포함하는 다층 퍼셉트론이 딥러닝 구조입니다. 딥 러닝은 하위 수준 기능을 결합하여 보다 추상적인 상위 수준 표현을 형성하여 데이터의 범주나 특성을 나타냅니다. 데이터의 분산된 특징 표현을 발견할 수 있습니다. 딥러닝은 머신러닝의 일종으로, 머신러닝은 인공지능을 달성하는 유일한 방법이다.
그렇다면 다양한 딥러닝 시스템 아키텍처의 차이점은 무엇인가요?
완전 연결 네트워크(FCN)는 일련의 완전히 연결된 레이어로 구성되며, 각 레이어의 모든 뉴런은 다른 레이어의 모든 뉴런에 연결됩니다. 주요 장점은 "구조에 구애받지 않는다"는 것입니다. 즉, 입력에 대한 특별한 가정이 필요하지 않습니다. 이러한 구조에 구애받지 않으면 완전히 연결된 네트워크를 매우 광범위하게 적용할 수 있지만, 이러한 네트워크는 문제 공간의 구조에 맞게 특별히 조정된 전문 네트워크보다 성능이 약한 경향이 있습니다.
아래 그림은 다층 심층 완전 연결 네트워크를 보여줍니다.
CNN(Convolutional Neural Network)은 주로 이미지를 위한 다층 신경망 아키텍처입니다. 처리 응용 프로그램. CNN 아키텍처는 입력에 특정 속성을 모델 아키텍처로 인코딩할 수 있는 이미지와 같은 공간적 차원(및 선택적으로 깊이 차원)이 있다고 명시적으로 가정합니다. Yann LeCun은 원래 손으로 쓴 문자를 인식하는 데 사용된 아키텍처인 최초의 CNN을 만들었습니다.
CNN을 사용하여 컴퓨터 비전 모델의 기술적 세부 사항을 분석합니다.
여기에서 이미지는 양의 정수로 구성된 격자인 픽셀 격자로 표시되며 각 숫자에 색상이 할당됩니다.
간단한 컨볼루셔널 신경망은 일련의 시리즈로 구성됩니다. 레이어 중 각 하나의 레이어는 미분 가능한 함수를 통해 활성화된 볼륨을 다른 표현으로 변환합니다. 컨벌루션 신경망의 아키텍처는 주로 컨볼루션 계층, 풀링 계층, 완전 연결 계층의 세 가지 유형의 계층을 사용합니다. 아래 이미지는 컨볼루션 신경망 레이어의 다양한 부분을 보여줍니다.
이 세 가지 작업의 조합은 완전한 컨벌루션 네트워크를 형성합니다.
CNN(Convolutional Neural Network)은 주로 이미지(2D CNN), 오디오(1D CNN) 등의 영역에서 공간 데이터와 관련된 문제를 해결하는 데 일반적으로 사용되는 신경망 유형입니다. CNN의 광범위한 응용 분야에는 얼굴 인식, 의료 분석 및 분류 등이 포함됩니다. CNN을 통해 보다 세밀한 특징을 이미지나 오디오 데이터에 담을 수 있어 더욱 정확한 인식과 분석이 가능해집니다. 또한 CNN은 자연어 처리, 시계열 데이터 등 다른 분야에도 적용될 수 있습니다. 즉, CNN은 다양한 유형의 데이터를 더 잘 이해하고 분석하는 데 도움이 될 수 있습니다.
매개변수 공유/계산 타당성:
CNN은 매개변수 공유를 사용하므로 CNN 및 FCN 아키텍처의 가중치 수는 일반적으로 몇 배 정도 다릅니다.
완전 연결된 신경망의 경우 (Hin×Win×Cin) 모양의 입력과 (Hout×Wout×Cout) 모양의 출력이 있습니다. 이는 출력 특성의 모든 픽셀 색상이 입력 특성의 모든 픽셀 색상에 연결된다는 의미입니다. 입력 및 출력 이미지의 각 픽셀에는 독립적인 학습 가능한 매개변수가 있습니다. 따라서 매개변수의 개수는 (Hin×Hout×Win×Wout×Cin×Cout)이다.
컨벌루션 레이어에서 입력은 모양(Hin, Win, Cin)의 이미지이고 가중치는 주어진 픽셀의 주변 크기를 K×K로 간주합니다. 출력은 주어진 픽셀과 그 이웃의 가중치 합입니다. 입력 채널과 출력 채널의 각 쌍(Cin, Cout)에 대해 별도의 커널이 있지만 커널의 가중치는 위치 독립적인 모양(K, K, Cin, Cout)의 텐서입니다. 실제로 이 레이어는 모든 해상도의 이미지를 수용할 수 있는 반면, 완전 연결 레이어는 고정된 해상도만 사용할 수 있습니다. 마지막으로 레이어 매개변수는 (K, K, Cin, Cout)입니다. 커널 크기 K가 입력 해상도보다 훨씬 작은 경우 변수 수가 크게 줄어듭니다.
AlexNet이 ImageNet 대회에서 우승한 이후, 우승한 모든 신경망이 CNN 구성 요소를 사용했다는 사실은 CNN이 이미지 데이터에 더 효과적이라는 것을 증명합니다. CNN이 이 데이터를 처리할 수 있는 반면 FC 레이어만 사용하여 이미지 데이터를 처리하는 것은 불가능하므로 의미 있는 비교를 찾지 못할 가능성이 매우 높습니다. 왜?
FC 레이어의 뉴런 1000개를 포함하는 가중치 수는 이미지당 약 1억 5천만 개입니다. 이는 레이어의 가중치 수일 뿐입니다. 최신 CNN 아키텍처에는 총 수십만 개의 매개변수가 있는 50~100개의 레이어가 있습니다. 예를 들어 ResNet50에는 23M개의 매개변수가 있고 Inception V3에는 21M개의 매개변수가 있습니다.
수학적 관점에서 CNN과 FCN(100개의 은닉 유닛 포함) 사이의 가중치 수를 비교하면 입력 이미지가 500×500×3인 경우:
<code>((shape of width of the filter * shape of height of the filter * number of filters in the previous layer+1)*number of filters)( +1 是为了偏置) = (Fw×Fh×D+1)×F=(5×5×3+1)∗2=152</code>
Translation invariance
불변성이란 물체의 위치가 바뀌어도 여전히 정확하게 인식할 수 있다는 뜻입니다. 이는 개체의 정체성(또는 범주)을 유지하므로 일반적으로 긍정적인 특징입니다. 여기서 "변환"은 기하학에서 특별한 의미를 갖습니다. 아래 이미지는 서로 다른 위치에 있는 동일한 개체를 보여 주며, 번역 불변성으로 인해 CNN은 둘 다 고양이임을 올바르게 식별할 수 있습니다.
RNN은 다른 딥 러닝 아키텍처가 구축되는 기본 네트워크 아키텍처 중 하나입니다. 주요 차이점은 일반적인 피드포워드 네트워크와 달리 RNN은 이전 또는 동일한 레이어로 피드백되는 연결을 가질 수 있다는 것입니다. 어떤 의미에서 RNN은 이전 계산에 대한 "메모리"를 갖고 있으며 이 정보를 현재 처리에 사용합니다.
"Recurrent"라는 용어는 네트워크가 각 시퀀스 인스턴스에서 동일한 작업을 수행할 때 적용되므로 출력은 이전 계산 및 결과에 따라 달라집니다.
RNN은 언어 모델링과 같은 많은 NLP 작업에 자연스럽게 적합합니다. 그들은 "개"와 "핫도그" 사이의 의미 차이를 포착할 수 있으므로 RNN은 언어 및 유사한 시퀀스 모델링 작업에서 이러한 종류의 컨텍스트 의존성을 모델링하기 위해 맞춤 제작되었습니다. CNN의 주된 이유보다. RNN의 또 다른 장점은 입력 크기에 따라 모델 크기가 증가하지 않으므로 임의 길이의 입력을 처리할 수 있다는 것입니다.
또한 CNN과 달리 RNN은 유연한 계산 단계를 갖추고 더 나은 모델링 기능을 제공하며 과거 정보를 고려하고 시간이 지남에 따라 가중치가 공유되므로 무제한 컨텍스트를 캡처할 수 있는 가능성을 만듭니다. 그러나 순환 신경망은 Vanishing Gradient 문제를 안고 있습니다. 그래디언트가 매우 작아지므로 역전파의 업데이트 가중치가 매우 작아집니다. 각 레이블에 필요한 순차적 처리와 사라지는/폭발하는 그라데이션의 존재로 인해 RNN 교육은 느리고 때로는 수렴하기 어렵습니다.
아래 스탠포드 대학의 사진은 RNN 아키텍처의 예입니다.
또 한 가지 주목할 점은 CNN과 RNN의 아키텍처가 다르다는 것입니다. CNN은 필터와 풀링 레이어를 사용하는 피드포워드 신경망인 반면, RNN은 자동 회귀를 통해 결과를 네트워크에 다시 공급합니다.
RNN은 시계열 데이터를 분석하기 위해 특별히 설계된 신경망입니다. 그 중 시계열 데이터는 텍스트나 영상 등 시간순으로 배열된 데이터를 말한다. RNN은 텍스트 번역, 자연어 처리, 감정 분석 및 음성 분석 분야에 폭넓게 적용됩니다. 예를 들어, 화자의 음성을 식별하고 이를 텍스트로 변환하기 위해 오디오 녹음을 분석하는 데 사용할 수 있습니다. 또한 RNN은 이메일이나 소셜 미디어 게시물을 위한 텍스트 생성과 같은 텍스트 생성에도 사용할 수 있습니다.
CNN에서는 입력 및 출력 크기가 고정되어 있습니다. 이는 CNN이 고정된 크기의 이미지를 가져와 예측의 신뢰도와 함께 적절한 수준으로 출력한다는 것을 의미합니다. 그러나 RNN에서는 입력 및 출력 크기가 다를 수 있습니다. 이 기능은 텍스트 생성과 같이 가변 크기의 입력 및 출력이 필요한 애플리케이션에 유용합니다.
GRU(Gated Recurrent Unit)와 LSTM(Long Short-Term Memory Unit) 모두 RNN(Recurrent Neural Networks)에서 발생하는 경사 소실 문제에 대한 솔루션을 제공합니다.
장단기 기억 신경망(LSTM)은 RNN의 특별한 유형입니다. RNN은 장기적인 종속성을 학습하여 여러 타임스탬프에 걸쳐 정보를 더 쉽게 유지할 수 있습니다. 아래 그림은 LSTM 아키텍처를 시각적으로 표현한 것입니다.
LSTM은 어디에나 있으며 스마트폰과 같은 다양한 애플리케이션이나 제품에서 찾을 수 있습니다. 그 힘은 일반적인 뉴런 기반 아키텍처에서 벗어나 메모리 단위라는 개념을 채택한다는 사실에 있습니다. 이 메모리 장치는 입력 기능에 따라 값을 유지하며, 그 값을 단시간 또는 장기간 유지할 수 있습니다. 이를 통해 장치는 마지막으로 계산된 값뿐만 아니라 중요한 사항을 기억할 수 있습니다.
LSTM 메모리 셀에는 셀 내에서 정보의 유입 또는 유출을 제어하는 세 개의 게이트가 있습니다.
Forgetting Gate: 처리 장치가 새로운 데이터를 기억할 수 있는 공간을 만들기 위해 "잊혀질" 수 있는 정보를 추적하는 역할을 담당합니다.
출력 게이트: 처리 장치 내에 저장된 정보를 셀의 출력으로 사용할 수 있는 시기를 결정합니다.
GRU, 특히 RNN과 비교하여 LSTM은 장기적인 종속성을 학습할 수 있습니다. 3개의 게이트(GRU에는 2개, RNN에는 0개)가 있으므로 LSTM은 RNN 및 GRU에 비해 더 많은 매개변수를 갖습니다. 이러한 추가 매개변수를 통해 LSTM 모델은 자연어 또는 시계열 데이터와 같은 복잡한 시퀀스 데이터를 더 잘 처리할 수 있습니다. 또한 LSTM은 게이트 구조를 통해 불필요한 입력을 무시할 수 있으므로 가변 길이 입력 시퀀스도 처리할 수 있습니다. 결과적으로 LSTM은 음성 인식, 기계 번역, 주식 시장 예측을 포함한 많은 애플리케이션에서 우수한 성능을 발휘합니다.
GRU에는 업데이트 게이트와 재설정 게이트(기본적으로 두 개의 벡터)라는 두 개의 게이트가 있어 출력에 전달해야 하는 정보를 결정합니다.
RNN과 마찬가지로 GRU도 RNN보다 정보를 효과적으로 오랫동안 유지하고 더 긴 종속성을 캡처할 수 있는 순환 신경망입니다. 그러나 GRU는 LSTM보다 훈련이 더 간단하고 빠릅니다.
GRU는 RNN보다 구현이 더 복잡하지만 두 개의 게이팅 메커니즘만 포함하므로 매개변수 수가 적고 일반적으로 LSTM과 같은 더 긴 범위의 종속성을 캡처할 수 없습니다. 따라서 GRU는 경우에 따라 LSTM과 동일한 성능 수준을 달성하기 위해 더 많은 훈련 데이터가 필요할 수 있습니다.
또한 GRU는 상대적으로 간단하고 계산 비용이 낮기 때문에 모바일 장치나 임베디드 시스템과 같이 리소스가 제한된 환경에서는 GRU를 사용하는 것이 더 적절할 수 있습니다. 반면, 모델의 정확도가 애플리케이션에 중요한 경우 LSTM이 더 나은 선택일 수 있습니다.
Transformer에 관한 논문 "Attention is All You Need"는 Arxiv에서 거의 1위를 차지한 논문입니다. Transformer는 복잡한 주의 메커니즘을 사용하여 전체 시퀀스를 처리할 수 있는 대규모 인코더-디코더 모델입니다.
일반적으로 자연어 처리 애플리케이션에서 각 입력 단어는 먼저 임베딩 알고리즘을 사용하여 벡터로 변환됩니다. 임베딩은 가장 낮은 수준의 인코더에서만 발생합니다. 모든 인코더가 공유하는 추상화는 단어 임베딩이 될 크기 512의 벡터 목록을 수신하지만 다른 인코더에서는 인코더 출력 바로 아래에 있다는 것입니다.
Attention은 병목 현상 문제에 대한 솔루션을 제공합니다. 이러한 유형의 모델의 경우 컨텍스트 벡터가 병목 현상을 발생시켜 모델이 긴 문장을 처리하기 어렵게 만듭니다. Attention을 통해 모델은 필요에 따라 입력 시퀀스의 관련 부분에 초점을 맞추고 각 단어의 표현을 값 집합의 정보에 액세스하고 결합하는 쿼리로 처리할 수 있습니다.
일반적으로 Transformer 아키텍처에서 인코더는 모든 숨겨진 상태를 디코더에 전달할 수 있습니다. 그러나 디코더는 출력을 생성하기 전에 주의를 기울여 추가 단계를 수행합니다. 디코더는 각 히든 상태에 소프트맥스 점수를 곱하여 점수가 더 높은 히든 상태를 증폭시키고 다른 히든 상태를 범람시킵니다. 이를 통해 모델은 출력과 관련된 입력 부분에 집중할 수 있습니다.
Self-attention은 인코더에 있으며, 첫 번째 단계는 각 인코더 입력 벡터(각 단어의 임베딩)에서 3개의 벡터를 생성하는 것입니다: 키, 쿼리 및 값 벡터, 이러한 벡터는 훈련 중에 임베딩을 곱하여 얻습니다. 이 과정에서 3개의 행렬이 훈련되었습니다. K, V, Q 차원은 64이고 임베딩 및 인코더 입력/출력 벡터의 차원은 512입니다. 아래 사진은 Jay Alammar의 Illustrated Transformer에서 가져온 것으로, 아마도 인터넷에서 최고의 시각적 해석일 것입니다.
이 목록의 크기는 설정할 수 있는 하이퍼 매개변수이며 기본적으로 훈련 데이터 세트에서 가장 긴 문장의 길이입니다.
쿼리, 키 및 값 벡터란 무엇입니까? 주의를 계산하고 생각할 때 유용한 추상적 개념입니다. 디코더의 Cross-Attention 계산은 입력을 제외하면 Self-Attention 계산과 동일합니다. Cross-attention은 동일한 차원의 두 개의 독립적인 임베딩 시퀀스를 비대칭적으로 결합하는 반면, self-attention의 입력은 단일 임베딩 시퀀스입니다.
Transformer를 논의하기 위해서는 Transformer의 성공을 이끈 BERT와 GPT라는 두 가지 사전 학습 모델에 대해서도 논의할 필요가 있습니다.
GPT의 사전 훈련된 디코더는 768차원 히든 상태, 3072차원 피드포워드 히든 레이어를 포함하여 12개 레이어를 가지며 40,000개의 병합 바이트 쌍으로 인코딩됩니다. 주로 자연어 추론에서 문장 쌍을 수반, 모순 또는 중립으로 표시하는 데 사용됩니다.
BERT는 마스크된 언어 모델링을 사용하여 입력의 단어 일부를 특수 [MASK] 토큰으로 대체한 다음 해당 단어를 예측하려고 시도하는 사전 훈련된 인코더입니다. 따라서 예측된 마스킹된 단어에 대해서만 손실을 계산하면 됩니다. 두 BERT 모델 크기 모두 많은 수의 인코더 레이어(논문에서는 Transformer 블록이라고 함)(기본 버전에서는 12개, 대형 버전에서는 24개)를 갖습니다. 이들은 또한 더 큰 피드포워드 네트워크(각각 768 및 1024개의 숨겨진 유닛)를 가지며 주의 헤드(각각 12개 및 16개)의 초기 논문(6개의 인코더 레이어, 512개의 숨겨진 유닛 및 8개의 주의 헤드)에 있는 Transformer 참조 구현의 기본 구성보다 더 많습니다. ). BERT 모델은 미세 조정이 쉽고 일반적으로 단일 GPU에서 수행할 수 있습니다. BERT는 NLP 번역, 특히 저자원 언어 번역에 사용될 수 있습니다.
Transformers의 한 가지 성능 단점은 self-attention의 계산 시간이 2차인 반면 RNN은 선형적으로만 증가한다는 것입니다.
기존 언어 모델에서는 인접한 단어가 먼저 그룹화되는 반면 Transformer는 입력 데이터의 각 요소가 다른 모든 요소에 연결되거나 집중될 수 있도록 병렬로 처리할 수 있습니다. . 이것을 "자기 주의"라고 합니다. 이는 Transformer가 훈련을 시작하자마자 전체 데이터 세트의 내용을 볼 수 있음을 의미합니다.
Transformer가 등장하기 전에는 AI 언어 작업의 발전이 다른 분야의 발전에 비해 크게 뒤쳐졌습니다. 실제로 지난 10여년 간 딥러닝 혁명에서 자연어 처리는 후발주자였고, NLP는 컴퓨터 비전에 어느 정도 뒤처졌다. 그러나 Transformers의 등장으로 NLP 분야는 큰 힘을 얻었으며 다양한 NLP 작업에서 좋은 결과를 얻는 일련의 모델이 출시되었습니다.
예를 들어, 전통적인 언어 모델(RNN, LSTM 또는 GRU와 같은 재귀 아키텍처 기반)과 Transformer의 차이점을 이해하기 위해 다음 예를 들 수 있습니다. “올빼미는 다람쥐를 발톱으로 잡으려고 했습니다. 하지만 꼬리 끝만 얻었습니다." 두 번째 문장의 구조는 혼란스럽습니다. "it"은 무엇을 의미합니까? "it"을 둘러싼 단어에만 초점을 맞추는 전통적인 언어 모델은 어려울 수 있지만 각 단어를 다른 모든 단어에 연결하는 Transformer는 올빼미가 다람쥐를 잡았고 다람쥐가 꼬리의 일부를 잃었음을 알 수 있습니다.
CNN에서는 로컬에서 시작하여 점차 글로벌한 관점을 확보합니다. CNN은 모서리나 선과 같은 특징을 식별하기 위해 로컬에서 전역으로 특징을 구축하여 이미지를 픽셀 단위로 인식합니다. 그러나 변환기에서는 self-attention을 통해 정보 처리의 첫 번째 수준(언어와 마찬가지로)에서도 원격 이미지 위치 간의 연결이 설정됩니다. CNN 접근 방식이 단일 픽셀에서 시작하는 스케일링과 같다면 변환기는 점차적으로 전체 흐릿한 이미지에 초점을 맞춥니다.
CNN은 입력 데이터의 로컬 패치에 필터를 반복적으로 적용하여 점차적으로 수용 시야를 늘리고 전역 기능 표현을 구축하여 로컬 기능 표현을 생성합니다. 사진 앱이 배와 구름을 구별할 수 있는 것은 컨볼루션 때문입니다. 변환기 아키텍처 이전에는 CNN이 비전 작업에 필수적인 것으로 간주되었습니다.
Vision Transformer 모델의 아키텍처는 2017년에 제안된 첫 번째 변환기와 거의 동일하지만 단어 대신 이미지를 분석할 수 있는 약간의 변경 사항만 있습니다. 언어는 불연속적인 경향이 있으므로 변환기가 시각적 입력을 처리할 수 있도록 입력 이미지를 불연속화해야 합니다. 언어 접근 방식을 정확하게 모방하고 모든 픽셀에 대해 self-attention을 수행하는 것은 계산 시간이 엄청나게 많이 소요됩니다. 따라서 ViT는 더 큰 이미지를 정사각형 셀 또는 패치(NLP의 토큰과 유사)로 나눕니다. 원본 이미지의 해상도(기본값은 16x16픽셀)에 따라 토큰이 더 크거나 작을 수 있으므로 크기는 임의적입니다. 그러나 픽셀을 그룹으로 처리하고 각 픽셀에 self-attention을 적용함으로써 ViT는 대규모 훈련 데이터 세트를 신속하게 처리하고 점점 더 정확한 분류를 출력할 수 있습니다.
Transformer와 비교할 때 다른 딥 러닝 아키텍처는 하나의 기술만 알고 있는 반면, 다중 모드 학습은 상당히 높은 원활한 아키텍처에서 다양한 모드의 처리 양식을 필요로 하며 관계 유도 편향이 수준에 도달할 수 있습니다. 인간 지능의. 즉, 읽기/보기, 말하기, 듣기 등 감각 간을 원활하게 전환할 수 있는 단일 다목적 아키텍처가 필요했습니다.
다중 모드 작업의 경우 원본 이미지, 비디오, 언어 등 여러 유형의 데이터를 동시에 처리해야 하며 Transformer는 일반 아키텍처의 잠재력을 제공합니다.
각 데이터 유형에 고유한 특정 모델이 있었던 이전 아키텍처의 개별 접근 방식으로 인해 이는 달성하기 어려운 작업이었습니다. 그러나 Transformer는 여러 입력 소스를 결합하는 쉬운 방법을 제공합니다. 예를 들어, 다중 모드 네트워크는 풍부한 언어 및 이미지 정보 표현을 동시에 사용하여 사람의 입술 움직임을 읽고 목소리를 듣는 시스템을 구동할 수 있습니다. Cross-attention을 통해 Transformer는 다양한 소스에서 쿼리, 키 및 값 벡터를 파생할 수 있으므로 다중 모드 학습을 위한 강력한 도구가 됩니다.
따라서 Transformer는 다중 모달 데이터의 보편적인 처리를 달성하는 데 도움이 될 수 있는 신경망 아키텍처의 "융합"을 향한 큰 진전입니다.
RNN/GRU/LSTM과 비교하여 Transformer는 RNN 및 그 변형(예: GRU 및 LSTM)보다 긴 종속성을 학습할 수 있습니다.
그러나 가장 큰 이점은 Transformer가 병렬화에 적합하다는 것입니다. 각 시간 단계에서 하나의 단어를 처리하는 RNN과 달리 Transformer의 주요 속성은 각 위치의 단어가 자체 경로를 통해 인코더를 통해 흐른다는 것입니다. Self-Attention 레이어에서는 Self-Attention 레이어가 해당 단어에 대한 각 입력 시퀀스에서 다른 단어의 중요성을 계산하므로 이러한 경로 간에 종속성이 있습니다. 그러나 일단 self-attention 출력이 생성되면 피드포워드 계층에는 이러한 종속성이 없으므로 개별 경로는 피드포워드 계층을 통과할 때 병렬로 실행될 수 있습니다. 이는 각 입력 단어를 self-attention 레이어 이후의 다른 단어와 병렬로 처리하는 Transformer 인코더의 경우 특히 유용한 기능입니다. 그러나 이 기능은 한 번에 하나의 단어만 생성하고 병렬 단어 경로를 사용하지 않기 때문에 디코더에는 그다지 중요하지 않습니다.
Transformer 아키텍처의 실행 시간은 입력 시퀀스의 길이에 따라 2차적으로 확장됩니다. 즉, 긴 문서나 문자를 입력으로 처리할 때 처리 속도가 느려질 수 있습니다. 즉, self-attention 형성 동안 모든 상호 작용 쌍을 계산해야 합니다. 즉, 계산은 시퀀스 길이에 따라 2차적으로 증가합니다. 즉, O(T^2d)입니다. 여기서 T는 시퀀스 길이이고 D는 차원. 예를 들어, 간단한 문장 d=1000에 해당하면 T≤30⇒T^2≤900⇒T^2d≒900K입니다. 그리고 순환하는 신경의 경우 선형 방식으로만 성장합니다.
Transformer가 문장의 모든 단어 쌍 사이의 쌍별 상호 작용을 계산할 필요가 없다면 좋지 않을까요? 모든 단어 쌍 간의 상호 작용을 계산하지 않고도(예: 쌍별 주의를 근사화하여) 상당히 높은 성능 수준을 달성할 수 있다는 연구 결과가 있습니다.
CNN에 비해 Transformer는 데이터 요구 사항이 매우 높습니다. CNN은 여전히 샘플 효율적이므로 리소스가 적은 작업에 탁월한 선택입니다. 이는 CNN 아키텍처의 경우에도 많은 양의 데이터가 필요한 이미지/비디오 생성 작업의 경우 특히 그렇습니다(따라서 Transformer 아키텍처의 매우 높은 데이터 요구 사항을 의미함). 예를 들어 Radford 등이 최근 제안한 CLIP 아키텍처는 ViT와 유사한 Transformer 아키텍처 대신 CNN 기반 ResNet을 시각적 백본으로 사용하여 교육되었습니다. Transformer는 데이터 요구 사항을 충족한 후 정확도를 향상시키는 반면, CNN은 사용 가능한 데이터 양이 비정상적으로 높지 않은 작업에서 우수한 정확도 성능을 제공하는 방법을 제공합니다. 따라서 두 아키텍처 모두 용도가 있습니다.
Transformer 아키텍처의 실행 시간은 입력 시퀀스의 길이와 2차 관계를 갖기 때문입니다. 즉, 모든 단어 쌍에 대한 주의를 계산하려면 그래프의 가장자리 수가 노드 수에 따라 2차적으로 증가해야 합니다. 즉, n 단어 문장에서 Transformer는 n^2 단어 쌍을 계산해야 합니다. 이는 매개변수의 개수가 많아(즉, 메모리 사용량이 높음) 계산 복잡도가 높다는 것을 의미합니다. 높은 컴퓨팅 요구 사항은 특히 모바일 장치의 경우 전력과 배터리 수명 모두에 부정적인 영향을 미칩니다. 전반적으로 더 나은 성능(예: 정확성)을 제공하기 위해 Transformer에는 더 높은 컴퓨팅 성능, 더 많은 데이터, 전력/배터리 수명 및 메모리 공간이 필요합니다.
최근접 이웃부터 그래디언트 부스팅까지 실제로 사용되는 모든 기계 학습 알고리즘에는 어떤 범주가 더 배우기 쉬운지에 대한 자체 귀납적 편향이 있습니다. 거의 모든 학습 알고리즘에는 유사한 항목(일부 기능 공간에서 서로 "가까운" 항목)이 동일한 클래스에 속할 가능성이 더 높다는 학습 편향이 있습니다. 로지스틱 회귀와 같은 선형 모델은 범주가 선형 경계로 분리될 수 있다고 가정합니다. 이는 모델이 다른 것을 학습할 수 없기 때문에 "하드" 편향입니다. 거의 항상 기계 학습에 사용되는 유형인 정규화된 회귀의 경우에도 낮은 특성 가중치를 사용하여 소수의 특성을 포함하는 학습 경계에 대한 편향이 있습니다. 모델이 많은 클래스를 포함하므로 이는 "소프트" 편향입니다. 가중치가 높은 특징으로 경계를 정하지만 이는 더 어렵고 더 많은 데이터가 필요합니다.
심지어 딥러닝 모델에도 추론 편향이 있습니다. 예를 들어 LSTM 신경망은 긴 시퀀스에 대한 문맥 정보를 유지하는 것을 선호하기 때문에 자연어 처리 작업에 매우 효과적입니다.
도메인 지식과 문제 난이도를 이해하면 적절한 알고리즘 응용 프로그램을 선택하는 데 도움이 될 수 있습니다. 예를 들어, 환자가 암 진단을 받았는지 확인하기 위해 임상 기록에서 관련 용어를 추출하는 문제가 있습니다. 이 경우 독립적으로 정보를 제공하는 용어가 많기 때문에 로지스틱 회귀 분석이 잘 수행됩니다. 복잡한 PDF 보고서에서 유전자 검사 결과를 추출하는 것과 같은 다른 문제의 경우 LSTM을 사용하면 각 단어의 장거리 컨텍스트를 더 잘 처리하여 더 나은 성능을 얻을 수 있습니다. 기본 알고리즘을 선택하고 나면 해당 알고리즘의 편향을 이해하면 학습 알고리즘에 입력할 정보를 선택하는 프로세스인 기능 엔지니어링을 수행하는 데 도움이 될 수도 있습니다.
모든 모델 구조에는 데이터의 패턴을 이해하는 데 도움이 되는 고유한 추론 편향이 있어 학습이 가능합니다. 예를 들어 CNN은 공간 매개변수 공유 및 변환/공간 불변성을 나타내는 반면, RNN은 시간 매개변수 공유를 나타냅니다.
기존 코더는 Transformer, CNN, RNN/GRU/LSTM을 딥 러닝 아키텍처에서 비교 분석하려고 시도했으며 Transformer가 더 긴 종속성을 학습할 수 있지만 더 높은 데이터 요구 사항과 컴퓨팅 성능이 필요하다는 것을 이해했습니다. 다중 모드 작업에 적합하며 읽기/보기, 말하기 및 듣기와 같은 감각 간을 원활하게 전환할 수 있습니다. 각 모델 구조에는 데이터의 패턴을 이해하는 데 도움이 되는 고유한 추론 편향이 있어 학습이 가능합니다.
【참고】
위 내용은 딥러닝 아키텍처의 비교 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!