머신 러닝 및 신경망 - 페이지 51

 

소멸(또는 폭발) 그라디언트(DL 11)



소멸(또는 폭발) 그라디언트(DL 11)

더 큰 문제를 해결하기 위해 신경망을 확장함에 따라 더 많은 계층을 추가해야 합니다. 그러나 더 깊은 신경망은 훈련 중에 그래디언트가 사라지거나 폭발하여 문제가 발생할 수 있습니다. 은닉층에 대한 시그모이드 활성화가 있는 심층 신경망을 고려해 봅시다. 수많은 노드와 계층이 있는 네트워크를 시각화하는 것은 비실용적입니다. 대신 각 열이 레이어를 나타내고 활성화 기능이 각 블록 내에 표시되는 블록 다이어그램으로 나타낼 수 있습니다.

네트워크를 시각화하는 또 다른 방법은 계산 그래프를 통해 각 데이터 배치에 적용된 작업 순서를 보여주는 것입니다. 입력 행렬부터 시작하여 행렬 곱셈, 편향 추가를 수행하고 각 계층에서 활성화 함수를 적용합니다. 이 프로세스는 활성화 기능이 softmax로 변경되는 출력 레이어에 도달할 때까지 숨겨진 레이어를 통해 계속됩니다. 손실은 활성화 및 대상에서 계산됩니다.

계산을 수학적으로 표현하면 가중치 행렬에 입력 행렬을 곱하고 바이어스를 추가하고 활성화 함수를 적용합니다. 표현식은 숨겨진 계층을 통해 계속되며 궁극적으로 softmax 활성화가 적용되는 출력 계층에 도달합니다. 출력 활성화 및 대상은 손실을 계산하는 데 사용됩니다.

경사하강법 업데이트에 대한 도함수를 계산할 때 체인 규칙이 반복적으로 적용됩니다. 출력 레이어에서 시작하여 가중치 행렬의 전치를 곱하고 활성화 함수의 도함수를 요소별로 곱하여 델타를 계산합니다. 이 프로세스는 숨겨진 레이어를 통해 델타를 역방향으로 전파합니다.

은닉층에 시그모이드 활성화 함수를 사용할 때 그래디언트 소실 문제가 발생합니다. 시그모이드의 도함수는 작은 값을 갖는 경향이 있어 역전파할 때마다 델타가 감소합니다. 결과적으로 그래디언트가 점점 더 작아지므로 특히 초기 레이어에서 가중치를 효과적으로 업데이트하기가 어렵습니다.

딥 러닝은 그래디언트 소실 문제로 인해 심층 신경망을 훈련하는 데 어려움을 겪었습니다. 그러나 약 10년 전에 이러한 문제를 극복하기 위한 접근 방식이 고안되었습니다. 한 가지 방법은 가중치 행렬 초기화를 변경하여 시그모이드 도함수로 인한 델타 감소에 대응하기 위해 더 큰 초기 임의 가중치를 생성하는 것입니다.

가장 중요한 돌파구는 ReLU(정류기 선형 단위)를 활성화 함수로 채택한 것입니다. 시그모이드 파생물과 달리 ReLU 파생물은 델타를 크게 줄이지 않는 경향이 있습니다. 이 속성은 심층 신경망 훈련을 용이하게 하므로 ReLU 활성화를 더 대중적으로 만들었습니다.

그러나 ReLU 활성화를 사용하면 기울기가 폭발할 위험이 있습니다. 여기서 델타는 뒤로 전파할 때 더 커질 수 있습니다. 이를 완화하려면 시그모이드 활성화에 비해 더 작은 초기 가중치를 선택하는 것이 좋습니다.

ReLU 뉴런은 훈련 용이성과 계산 효율성으로 인해 숨겨진 계층에 선호됩니다. 가중치의 초기화는 사용된 활성화 함수에 따라 다르며 딥 러닝 커뮤니티는 다양한 활성화 유형에 적합한 가중치 초기화 방법을 결정하는 데 상당한 진전을 이루었습니다. 최신 딥 러닝 라이브러리는 지정된 활성화를 기반으로 가중치 초기화를 자동으로 처리하는 경우가 많습니다.

 

신경망 과적합 방지(DL 12)



신경망 과적합 방지(DL 12)

딥 러닝을 위해 더 큰 신경망으로 작업함에 따라 과적합의 위험이 크게 증가합니다. 과적합의 원인과 이를 감지하고 방지하는 방법을 이해하는 것이 중요합니다. 과적합은 기계 학습 모델이 훈련 세트에 너무 구체적이어서 새 데이터로 일반화하지 못하는 경우에 발생합니다. 주된 원인은 훈련 데이터의 양에 비해 모델의 매개변수 자유도가 과도하여 자유도가 높거나 훈련 세트가 작은 모델이 더 취약해지기 때문입니다.

예를 들어 다항식 회귀에서 다항식의 정도를 높이면 미세 조정할 매개변수가 더 많아지므로 모델이 훈련 데이터에 더 정확하게 맞출 수 있습니다. 그러나 이는 훈련 세트 이외의 예제로 일반화하는 능력을 방해할 수 있습니다.

신경망의 맥락에서 가중치와 편향은 매개변수 역할을 합니다. 신경망이 더 많은 가중치로 더 커짐에 따라 매개변수를 선택하는 데 더 큰 자유가 있습니다. 따라서 대규모 신경망을 교육할 때 검증 세트를 모니터링하는 주요 식별 방법과 함께 잠재적인 과적합에 주의하는 것이 중요합니다.

데이터 세트를 교육, 검증 및 테스트 세트로 분할하면 네트워크의 일반화를 평가하는 데 도움이 됩니다. 과적합이 발생하면 훈련 세트와 검증 세트 사이의 손실 또는 정확도에 눈에 띄는 불일치가 있습니다. 이상적으로는 트레이닝 세트 손실이 epoch에 걸쳐 감소해야 하지만 증가하기 시작하면 문제가 있음을 나타냅니다. 유사하게 검증 세트 손실은 훈련 세트 손실에 따라 감소해야 하며 훈련 세트 손실이 계속 감소하는 동안 증가하기 시작하면 강한 과적합을 나타냅니다. 두 세트 모두에서 모델의 정확도는 분류 문제에서 과적합을 드러낼 수도 있습니다.

과적합을 해결하기 위한 한 가지 접근 방식은 그 원인을 직접 해결하는 것입니다. 방대한 데이터 세트를 사용한 대규모 딥 러닝 성공에서 볼 수 있듯이 더 많은 데이터를 수집하여 불충분한 데이터를 완화할 수 있습니다. 그러나 더 많은 데이터를 얻을 수 없는 경우 모델을 축소하면 과적합을 방지하고 효율성을 개선하는 데 도움이 될 수 있습니다. 일반적인 지침은 당면한 특정 문제에 적합한 크기의 신경망 아키텍처를 선택하는 것입니다.

과적합 문제가 지속되는 경우 고려해야 할 고급 기술이 있습니다. 이러한 기술 중 하나는 최대 에포크 수에 도달하기 전에도 훈련 세트와 검증 세트 사이의 분리가 관찰될 때 훈련이 중단되는 조기 중지입니다. 또한 Dropout 및 weight regularization과 같은 방법을 사용하여 overfitting을 방지할 수 있습니다.

드롭아웃에는 특정 뉴런이 과도한 영향을 미치지 않도록 훈련 중에 네트워크의 일부 활성화를 무작위로 제로화하는 것이 포함됩니다. 뉴런을 삭제함으로써 네트워크의 후속 계층은 해당 뉴런에 과도하게 의존하지 않는 기능을 학습하도록 강제되어 과적합을 줄입니다. 드롭아웃이 없는 것을 설명하기 위해 테스트 중에 조정이 이루어집니다.

가중치 정규화는 가중치가 너무 커지지 않도록 하여 과적합을 방지합니다. 이것은 큰 가중치를 억제하는 손실 함수에 페널티 항을 통합함으로써 달성됩니다. 가중치 정규화의 일반적인 형태 중 하나는 모든 가중치의 제곱의 합이 2차 페널티 항으로 추가되는 L2 정규화입니다. 하이퍼파라미터에 의해 제어되는 이 정규화 항은 정규화에 대한 강조와 원래 손실 함수의 균형을 맞춥니다.

신경망을 훈련할 때 과적합을 모니터링하는 것이 중요합니다. 모델의 크기와 사용 가능한 데이터를 고려하고 필요한 경우 조기 중지, 드롭아웃 및 정규화와 같은 기술을 사용하여 과적합을 해결합니다.

 

컨벌루션 계층(DL 13)



컨벌루션 계층(DL 13)

지금까지 살펴본 신경망은 각 레이어가 다음 레이어로 연결되는 조밀하게 연결되어 있습니다. 조밀한 네트워크는 일반적이고 다재다능하기 때문에 좋은 출발점입니다. 그러나 특정 애플리케이션의 경우 더 효과적인 대체 아키텍처를 선택할 수 있습니다. 이 비디오에서는 컨볼루션 레이어라는 첫 번째 대체 아키텍처를 살펴봅니다.

컨벌루션 네트워크는 이미지 처리 작업에 적합합니다. 입력 이미지를 플랫 벡터로 취급하는 대신 컨벌루션 레이어는 이미지의 공간 정보를 보존합니다. 컨벌루션 레이어의 각 뉴런은 이미지의 작은 영역에만 연결되어 픽셀의 공간적 근접성을 캡처합니다. 이 아키텍처를 사용함으로써 네트워크는 이미지 처리 작업 학습에 이점을 얻습니다.

컨볼루션 레이어에는 로컬 연결과 가중치 연결이라는 두 가지 핵심 아이디어가 있습니다. 로컬 연결은 뉴런이 이미지의 작은 하위 영역에 연결되어 특정 기능을 학습할 수 있음을 의미합니다. 가중치 묶기는 동일한 기능이 이미지의 다른 영역에 적용되도록 합니다. 가중치를 공유함으로써 네트워크는 여러 지역에 동일한 기능을 적용하는 방법을 학습할 수 있습니다.

컨볼루션 레이어는 고려해야 할 새로운 하이퍼파라미터를 도입합니다. 여기에는 커널 크기(하위 영역 크기 결정), 보폭(창이 미끄러지는 정도), 출력 채널 수(각 창에 적용되는 함수 수), 패딩(이미지 가장자리 처리) 및 풀링(뉴런 결과 집계)이 포함됩니다. 차원을 줄이기 위해).

풀링은 지역의 뉴런 결과를 집계하여 네트워크의 매개변수 수를 줄이는 데 도움이 됩니다. 이것은 평균을 내거나 최대값을 취하여 수행할 수 있습니다. 풀링은 기능의 정확한 지역화가 필요하지 않고 지역의 전반적인 기능이 필요할 때 유용합니다.

컨벌루션 네트워크는 조밀한 네트워크에 비해 이미지를 처리하는 더 효율적인 방법을 제공합니다. 공간 정보를 활용하고 매개변수의 수를 줄여 교육을 더 쉽게 만듭니다.

풀링은 기능 맵의 차원과 후속 레이어의 매개변수 수를 줄이는 데 도움이 됩니다. 이웃 뉴런의 결과를 집계함으로써 풀링은 가장 중요한 정보를 유지하면서 일부 공간 세부 정보를 버립니다.

최대 풀링 및 평균 풀링과 같은 다양한 유형의 풀링 작업이 있습니다. 최대 풀링에서는 각 풀링 창 내의 최대값을 해당 지역의 대표 값으로 선택합니다. 이는 창에 있는 가장 눈에 띄는 기능을 캡처하는 데 도움이 됩니다. 반면에 평균 풀링은 창의 평균 값을 사용하여 기능을 더 매끄럽게 표현합니다.

풀링 후 추가 컨볼루션 레이어를 추가로 쌓아 이전 레이어의 출력에서 더 복잡하고 추상적인 기능을 학습할 수 있습니다. 각 후속 레이어는 여러 개의 작은 수용 필드의 정보를 결합하여 더 높은 수준의 기능을 캡처합니다.

요약하자면, 컨볼루션 및 풀링 레이어가 있는 컨볼루션 신경망(CNN)은 이미지 처리 작업에 매우 적합합니다. 컨벌루션 레이어는 공간적 근접성을 캡처하고 가중치 공유를 활용하여 네트워크가 로컬 기능을 효율적으로 학습할 수 있도록 합니다. 풀링은 차원을 줄이고 중요한 정보를 추출하여 후속 레이어가 더 추상적인 표현을 학습할 수 있도록 합니다. 이 계층적 기능 학습은 CNN을 이미지 분류, 객체 감지 및 이미지 세분화를 비롯한 다양한 컴퓨터 비전 애플리케이션에 강력하게 만듭니다.

 

적은 데이터로 대규모 네트워크 훈련: 전이 학습 및 데이터 증대(DL 14)



적은 데이터로 대규모 네트워크 훈련: 전이 학습 및 데이터 증대(DL 14)

딥 러닝에서는 딥 러닝의 힘을 활용하고 싶지만 딥 모델을 효과적으로 교육하기에 충분한 데이터가 부족한 문제에 직면하는 것이 일반적입니다. 이 문제는 다양한 도메인과 신경망 아키텍처에서 발생합니다. 작은 이미지 데이터 세트로 컨벌루션 네트워크를 사용하는 이미지 처리 작업의 시나리오에 초점을 맞추겠습니다. 그러나 여기서 논의된 개념은 다른 영역에도 적용될 수 있습니다.

심층 컨벌루션 네트워크는 이미지 처리의 효율성으로 유명합니다. 그러나 작은 이미지 데이터 세트에서 깊은 컨벌루션 네트워크를 교육하면 일반적으로 네트워크가 입력 데이터를 기억하는 극단적인 과적합이 발생합니다. 이러한 경우 데이터를 더 잘 활용하거나 대체 데이터 소스를 탐색할 방법을 찾아야 합니다.

데이터 희소성 문제를 극복하기 위한 한 가지 접근 방식은 데이터 확대 및 전이 학습을 통한 것입니다. 전이 학습은 현대 딥 러닝의 기본 개념이며 설명하기가 놀라울 정도로 간단합니다. 아이디어는 관련이 있지만 더 일반적인 문제에 대해 심층 신경망을 훈련시킨 다음 특정 데이터 세트에 대한 추가 훈련과 함께 사전 훈련된 네트워크를 재사용하여 문제를 해결하는 것입니다.

이미지 처리 작업의 경우 웹 또는 기계 학습 대회에서 수집한 대규모 이미지 데이터 세트로 네트워크를 교육할 수 있습니다. 사전 훈련된 네트워크에는 해당 데이터 세트의 이미지 분류 전용 마지막 계층이 있습니다. 별개의 출력 계층이 있는 다른 이미지 처리 작업을 수행할 때 사전 훈련된 네트워크의 출력 계층을 버리고 문제의 요구 사항과 일치하는 자체 출력 계층을 추가할 수 있습니다. 여기에는 작은 데이터 세트를 사용하여 교육할 수 있는 사전 교육된 네트워크의 마지막 계층에 새 출력 계층을 연결하는 새로운 가중치를 추가하는 작업이 포함됩니다.

전이 학습의 효과에 대한 기대는 사전 훈련 문제가 특정 문제와 충분히 유사할 경우 사전 훈련된 네트워크에서 학습한 기능이 이전되어 문제에 도움이 된다는 가정에 있습니다. 우리는 사전 훈련된 네트워크가 일반적인 이미지 처리 기능을 학습했다고 생각할 수 있으며 작은 데이터 세트에서 네트워크를 교육할 때 이 학습된 변환을 활용할 수 있습니다.

전이 학습을 적용할 때 사전 훈련된 모델을 활용하기 위한 몇 가지 옵션이 있습니다. 문제를 맞추기 위해 출력 레이어를 폐기해야 하지만 유용한 전처리가 이미 수행되었다고 생각되면 다른 레이어를 제거할 수도 있습니다. 또한 특정 문제에 대해 보다 정교한 처리를 수행하기 위해 여러 계층을 추가할 수 있습니다. 초기 레이어에서 수행한 유용한 처리를 유지하기 위해 특히 사전 훈련된 모델이 큰 데이터 세트에서 훈련되었고 문제에 작은 데이터 세트가 있는 경우 재훈련 중에 가중치를 고정할 수 있습니다.

딥 러닝 라이브러리는 다양한 문제 유형에 대해 사전 훈련된 모델 모음인 모델 동물원을 제공하는 경우가 많습니다. 이러한 모델은 전이 학습의 출발점 역할을 하여 광범위한 문제를 해결하기 위해 딥 러닝에 액세스할 수 있도록 합니다.

그러나 전이 학습의 도움을 받더라도 우리의 데이터 세트는 마지막 몇 계층에서도 네트워크를 효과적으로 훈련시키기에는 여전히 너무 작을 수 있습니다. 이러한 경우 데이터 집합에서 가능한 한 많은 정보를 추출해야 하므로 데이터 확대라는 아이디어가 떠오릅니다.

데이터 확대에는 신경망에는 다르게 보이지만 학습된 모델을 활용하는 사람이나 다른 시스템에는 동일한 의미를 유지하는 데이터 세트에 변환을 적용하는 작업이 포함됩니다. 이미지 처리의 경우 표현된 이미지에 대한 인간의 인식을 변경하지 않고 다양한 변형을 적용할 수 있습니다. 예를 들어 이미지를 회전하거나 확대해도 기본 콘텐츠는 변경되지 않습니다. 이러한 변환은 신경망이 보는 입력 데이터에 상당한 차이를 가져오므로 네트워크가 특정 예를 기억하거나 입력의 세부 정보에 의존하는 것이 어려워집니다.

그러나 변환이 데이터의 의미를 변경하지 않고 네트워크의 관점에서 다르게 나타나도록 해야 합니다. 예를 들어 이미지의 변환은 내재된 변환 불변성을 고려할 때 컨볼루션 네트워크의 일반화 능력에 거의 영향을 미치지 않을 수 있습니다.

데이터 증대 기술에는 무작위 노이즈 추가, 약간의 흐림 및 이미지에 대한 사람의 인식을 왜곡하지 않는 기타 수정이 포함됩니다. 이러한 변환은 교육 중에 쉽게 계산하고 각 데이터 배치에 무작위로 적용할 수 있습니다. 증강 데이터 세트에서 여러 에포크에 대해 네트워크를 훈련함으로써 정확한 입력 예를 단순히 기억하는 것을 방지하고 더 잘 일반화하도록 권장합니다.

데이터 증강 기술은 사전 훈련을 위한 관련 데이터를 포함하여 훈련할 더 많은 데이터를 갖는 것만큼 효과적이지 않다는 점에 유의하는 것이 중요합니다. 그러나 전이 학습과 결합하면 데이터 증대를 통해 심층 신경망을 사용하여 더 넓은 범위의 문제를 해결할 수 있습니다.

요약하면, 딥 러닝이 필요하지만 데이터가 부족한 문제에 직면했을 때 전이 학습과 데이터 증강은 가치 있는 전략입니다. 전이 학습에는 관련 문제에 대해 네트워크를 교육하고 특정 문제에 대해 추가 교육과 함께 네트워크를 재사용하는 것이 포함됩니다. 데이터 확대는 더 나은 일반화를 위해 변형을 도입하면서 의미를 유지하는 데이터 세트에 변환을 적용하는 것을 수반합니다. 이러한 기술은 더 많은 데이터를 대체할 수는 없지만 데이터 가용성이 제한된 시나리오에서 딥 러닝을 활용하기 위한 실용적인 솔루션을 제공합니다.

 

잔여 네트워크 및 스킵 연결(DL 15)



잔여 네트워크 및 스킵 연결(DL 15)

심층 신경망은 강력하지만 매개변수 수가 증가함에 따라 더 많은 데이터가 필요하기 때문에 훈련하기가 어렵습니다. 심층 네트워크 훈련은 종종 얕은 네트워크에 비해 손실이 감소하는 과정이 느립니다. 무작위로 초기화된 가중치가 있는 여러 레이어를 통과하는 입력 데이터가 무작위 노이즈로 뒤섞여 의미 있는 기울기가 전파되기 어렵기 때문입니다.

이 문제를 해결하기 위해 건너뛰기 연결이 도입되었습니다. 건너뛰기 연결에는 레이어를 블록으로 그룹화하고 각 블록 내부 및 주변의 데이터 흐름에 대한 두 개의 경로를 제공하는 것이 포함됩니다. 블록의 출력은 추가 또는 연결을 사용하여 입력과 결합되어 입력이 통과하고 입력 및 업데이트를 보다 의미 있게 만듭니다.

건너뛰기 연결을 포함하는 잔여 블록에는 몇 가지 장점이 있습니다. 첫째, 입력에 대한 모든 것을 파악하는 대신 기존 데이터를 보강하는 데 집중하여 각 블록에 대한 학습 작업을 단순화합니다. 둘째, 네트워크의 각 계층을 업데이트하기 위한 더 짧은 경로를 제공하여 그래디언트 흐름을 용이하게 합니다. 이러한 이점은 얕은 네트워크에 비해 더 빠른 훈련 진행과 더 나은 성능으로 이어집니다.

잔차 블록을 사용할 때 특히 컨볼루션 레이어를 사용할 때 입력 및 출력 텐서 간의 모양 호환성을 해결하는 것이 중요합니다. 특히 연결을 사용할 때 모양을 일치시키고 매개변수 수가 폭발적으로 증가하지 않도록 특별히 고려해야 합니다. 일반적으로 대규모 잔여 네트워크에서 대부분의 스킵 연결에 대해 연결보다 추가가 선호됩니다.

1대1 컨볼루션을 사용하여 컨볼루션 블록에서 높이, 너비 및 채널 치수를 보존할 수 있습니다. 컨볼루션 레이어의 필터 수를 지정하여 출력 레이어의 깊이를 조정할 수 있습니다.

잔차 네트워크에는 다양한 변형과 아키텍처가 있지만 핵심 아이디어는 일관성을 유지합니다. 바로 건너뛰기 연결과 잔차 블록을 활용하여 심층 신경망의 훈련을 개선하는 것입니다. 이러한 기술을 통해 더 나은 정보 흐름, 더 빠른 교육 및 모델 성능 향상이 가능합니다. 더 깊은 이해와 적용을 위해 다양한 잔차 아키텍처와 특정 구현을 탐색하는 것이 좋습니다.

또한 잔여 네트워크를 설정할 때 몇 가지 실질적인 문제를 고려하는 것이 중요합니다. 이러한 문제 중 하나는 건너뛰기 연결을 사용할 때 입력 및 출력 텐서 간의 모양 호환성을 관리하는 것입니다. 높이, 너비 및 채널 치수가 적절하게 정렬되어야 하므로 컨벌루션 레이어가 관련되면 이는 더욱 복잡해집니다.

컨벌루션 블록을 단순화하기 위해 입력 이미지의 높이와 너비를 유지하기 위해 하나씩 보폭과 적절한 패딩을 사용할 수 있습니다. 이렇게 하면 블록의 입력 및 출력 텐서를 추가할 때 최소한 공간 차원이 일치합니다. 채널 차원을 해결하기 위해 일대일 컨볼루션을 사용할 수 있습니다. 이러한 컨볼루션은 단일 픽셀에서 입력을 받기 때문에 사소해 보일 수 있지만 효과적으로 출력 레이어의 깊이를 조정할 수 있습니다. one-by-one 컨볼루션에서 필터 수를 지정하여 출력 텐서의 깊이를 늘리거나 줄여 모양이 호환되도록 만들 수 있습니다.

대규모 잔여 네트워크로 작업할 때 건너뛰기 연결 수와 폭발적인 매개변수 사이의 균형을 맞추는 것이 필수적입니다. 연결을 과도하게 사용하면 활성화 텐서의 크기와 매개변수 수가 크게 증가할 수 있습니다. 따라서 연결 기반 건너뛰기 연결의 수를 제한하고 대부분 추가를 선호하는 것이 좋습니다.

모듈성은 잔여 네트워크가 제공하는 또 다른 이점입니다. 잔차 블록의 균일한 구조와 더 많은 블록을 쉽게 추가할 수 있는 기능은 더 깊고 강력한 네트워크 구축을 용이하게 합니다. 블록 수를 점진적으로 늘림으로써 계산 리소스와 모델 용량 사이에서 원하는 절충점에 적합한 네트워크를 만들 수 있습니다.

잔차 네트워크가 매우 효과적인 것으로 입증되었지만 블록 내에서 정규화 계층 또는 다중 경로 통합과 같은 다양한 설계 선택을 가진 다양한 다른 유형의 잔차 아키텍처가 있다는 점은 주목할 가치가 있습니다. 이러한 변형을 탐색하면 심층 신경망 훈련을 개선하기 위한 추가 통찰력과 가능성을 제공할 수 있습니다.

전반적으로 잔여 네트워크는 건너뛰기 연결 및 잔여 블록을 활용하여 심층 신경망 훈련에 유용한 접근 방식을 제공합니다. 학습 작업을 단순화하고 기울기 전파를 가속화하며 강력한 네트워크 아키텍처 구축을 위한 모듈성을 제공합니다. 잔여 네트워크의 개념과 고려 사항을 이해하면 딥 러닝 연구 및 실제 응용 프로그램의 발전에 기여합니다.

 

워드 임베딩(DL 16)



워드 임베딩(DL 16)

우리가 신경망에서 작업한 대부분의 데이터는 이미지 데이터였습니다. 그러나 텍스트 데이터와 같은 다른 유형의 문제에도 신경망을 사용할 수 있습니다. 텍스트 데이터를 신경망에 대한 입력으로 나타내는 것은 이미지만큼 간단하지 않습니다.

이미지 데이터에서 이미지를 빨강, 녹색 및 파랑 픽셀의 배열로 나타내는 표준 디지털 저장 형식을 사용할 수 있습니다. 이 표현은 픽셀과 관련 색상 강도 간의 공간 관계를 캡처하기 때문에 편리합니다.

텍스트 데이터의 경우 문자가 ASCII 또는 기타 디지털 값으로 변환되는 표준 디지털 표현은 신경망 학습 방식과 직접적인 관련이 없습니다. ASCII 값의 이진 표현을 사용하거나 0과 1 사이에 놓이도록 문자 범위를 정규화하는 것과 같이 ASCII 값을 신경망에 대한 유효한 입력으로 변환하기 위해 다양한 방법을 고려할 수 있습니다. 배열이 이미지를 나타내는 것과 같은 방식으로 단어.

한 가지 접근 방식은 전체 어휘의 원-핫 인코딩을 사용하여 거대한 벡터를 만드는 것입니다. 각 단어에는 고유한 벡터 표현이 있어 유사한 단어가 다른 의미를 갖는 문제를 해결합니다. 그러나 이것은 차원의 엄청난 확장을 초래하고 단어 유사성과 차원 사이의 균형을 잃습니다.

이를 해결하기 위해 우리는 몇 가지 목표를 달성하는 텍스트 데이터 표현을 목표로 합니다. 첫째, 지나치게 고차원적이지 않은 단어별 표현을 원합니다. 둘째, 유사한 단어가 유사한 벡터 표현을 갖는 표현이 의미론적 정보를 전달하기를 원합니다. 이것은 자연어 처리에서 어려운 문제였습니다.

최근 몇 년 동안 신경망은 텍스트 데이터에 대한 적절한 입력 표현을 생성하는 데 성공적으로 사용되었습니다. 한 가지 접근 방식은 텍스트 데이터에서 n 단어의 시퀀스인 n-gram을 추출하는 것입니다. 이러한 n-그램은 문장이나 문서의 특정 지점에 대한 컨텍스트 정보를 제공합니다.

아이디어는 one-hot 사전 표현을 입력으로 사용하여 네트워크를 훈련하고 주변 n-gram의 one-hot 인코딩을 예측하는 것입니다. 예를 들어 5그램 입력을 사용하고 n그램에서 다른 4개 단어를 예측할 수 있습니다. n-gram을 사용하여 주변 단어에 대해 네트워크를 훈련함으로써 의미상 유사한 단어가 유사한 표현을 갖고 훈련 중에 유사한 기울기 피드백을 받을 것으로 예상합니다.

네트워크의 출력 레이어를 버리면 마지막 숨겨진 레이어의 활성화 벡터를 입력 단어의 숫자 인코딩으로 사용할 수 있습니다. 이 표현은 실제 텍스트에서 단어의 컨텍스트를 캡처하는 단어 임베딩으로 알려져 있습니다. Word2Vec과 같은 단어 임베딩을 생성하기 위한 다양한 접근 방식이 있습니다.

우리 자신의 단어 임베딩을 교육하는 대신 더 많은 데이터와 컴퓨팅 리소스를 사용하여 다른 사람이 생성한 사전 교육된 임베딩을 활용할 수 있습니다. 임의의 텍스트 문서를 임베딩이라는 단어로 변환하는 조회 테이블을 쉽게 생성할 수 있습니다. 이 접근 방식을 사용하면 텍스트 데이터에 대한 기계 학습을 위해 신경망에 대한 입력으로 단어 임베딩을 사용할 수 있습니다.

텍스트 데이터에 대한 기계 학습을 위해 신경망에 대한 입력으로 단어 임베딩을 사용하면 몇 가지 이점이 있습니다. 이러한 사전 훈련된 임베딩은 광범위한 데이터 및 계산 리소스가 있는 모델에서 생성되어 풍부하고 의미 있는 단어 표현을 생성합니다.

기존 단어 임베딩을 통해 문서를 전달하면 텍스트의 벡터화된 표현을 얻을 수 있습니다. 이 벡터 표현은 단어의 문맥 정보를 캡처하고 신경망에 대한 입력으로 사용할 수 있습니다.

단어 임베딩을 사용하면 하나의 작업(예: 단어 임베딩 모델 교육)에서 얻은 지식을 다른 관련 작업(예: 텍스트 데이터를 사용한 특정 기계 학습 문제)에 적용할 수 있는 전이 학습이 가능합니다. 자체 임베딩을 처음부터 훈련하는 대신 기존 임베딩을 활용하여 일반화 기능의 이점을 누릴 수 있습니다.

텍스트의 단어 임베딩 표현이 있으면 신경망 훈련을 진행할 수 있습니다. 신경망은 단어 임베딩 벡터를 입력으로 사용하고 임베딩에 인코딩된 의미론적 정보를 기반으로 예측하는 방법을 학습할 수 있습니다.

신경망의 특정 아키텍처는 당면한 작업에 따라 달라집니다. 텍스트의 순차적 특성을 고려하는 순환 신경망(RNN), 로컬 패턴을 캡처하는 CNN(컨볼루션 신경망) 또는 이 둘의 조합일 수 있습니다. 네트워크는 감정 분석, 텍스트 분류, 언어 생성 또는 기계 번역과 같은 작업을 수행하도록 설계할 수 있습니다.

훈련 과정에서 신경망은 패턴을 인식하고 입력 단어 임베딩을 기반으로 예측하는 방법을 배웁니다. 네트워크를 통해 전파되는 기울기는 가중치를 업데이트하여 정확한 예측을 수행하는 네트워크의 기능을 최적화합니다.

단어 임베딩을 활용하여 신경망에 의미 있는 방식으로 텍스트 데이터를 나타내는 문제를 해결합니다. 이러한 임베딩은 단어 사이의 의미론적 관계를 캡처하여 네트워크가 컨텍스트에서 학습하고 정보에 입각한 예측을 할 수 있도록 합니다. 또한 사전 훈련된 임베딩을 활용하면 계산 리소스를 절약하고 기계 학습 파이프라인의 효율성을 향상시킬 수 있습니다.

신경망에 대한 입력으로 단어 임베딩을 사용함으로써 전이 학습 및 의미론적 표현의 힘을 활용할 수 있습니다. 이 접근 방식은 텍스트 데이터를 처리하고 이해하는 신경망의 기능을 크게 향상시켜 다양한 자연어 처리 작업 및 응용 프로그램의 문을 엽니다.

 

순환 신경망(DL 17)



순환 신경망(DL 17)

이전 강의에서 우리는 적당한 수의 차원을 가진 벡터로 단어를 훈련 가능한 표현인 단어 임베딩의 사용에 대해 논의했습니다. 이러한 임베딩은 텍스트 데이터에서 작동하는 기계 학습 시스템을 구축하기 위한 기반이 될 수 있습니다. 제품 리뷰의 감정 분류와 같은 간단한 작업의 경우 문서를 단어로 분해하고, 각 단어를 포함하고, 포함 시퀀스를 신경망에 대한 입력으로 전달하는 것으로 충분할 수 있습니다. 그러나 대화식 답장이나 기계 번역과 같은 보다 복잡한 작업의 경우 보다 정교한 접근 방식이 필요합니다.

이를 설명하기 위해 문장에서 다음 단어를 예측하는 예를 사용했습니다. 이 작업은 감정 분류보다 어렵지만 기계 번역보다 쉽습니다. 텍스트 데이터에서 작동하도록 신경망을 설정할 때 우리는 두 가지 광범위한 접근 방식에 직면합니다. 하나의 극단은 네트워크에 대한 입력으로 전체 문서를 제공하는 반면 다른 극단은 입력으로 단일 단어를 제공합니다. 그러나 두 접근 방식 모두 단점이 있습니다. 전체 문서에 대한 작업은 교육 예제를 제한하고 다양한 문서 크기를 처리하는 반면, 한 번에 한 단어에 대한 작업은 단어 의미를 이해하고 단어에 직접 매핑되지 않는 개념을 나타내는 데 필요한 주변 컨텍스트를 무시합니다. .

이러한 극단 사이의 타협점을 찾기 위해 우리는 한 번에 한 단어로 작동하지만 중요한 컨텍스트를 유지하기 위해 이전 입력의 네트워크 메모리를 통합하는 방법을 도입했습니다. 기본 아이디어는 네트워크의 출력을 입력으로 다시 공급하여 이전 활성화를 지금까지 본 단어의 요약으로 사용할 수 있도록 하는 것입니다. 이 접근 방식은 단어가 입력되고 네트워크의 출력이 피드백될 때 다른 시점에서 네트워크를 나타내는 시간 경과에 따라 언롤링하여 시각화할 수 있는 순환 신경망(RNN)을 생성합니다.

다음 단어 예측 작업의 경우 RNN의 숨겨진 레이어 출력은 문장의 이전 단어 요약 역할을 합니다. RNN은 이 컨텍스트를 기반으로 다음 단어를 예측하는 방법을 학습합니다. RNN에 대한 입력은 임베딩 벡터인 반면 출력은 다른 가능한 출력에 대한 불확실성을 표현할 수 있도록 원-핫 사전 인코딩에 있습니다.

훈련 RNN에는 네트워크의 가중치를 업데이트하기 위한 기울기 계산이 포함됩니다. 문제는 가중치가 현재 입력에 대한 적용뿐만 아니라 이전 시간 단계의 입력에 미치는 영향을 통해서도 손실에 영향을 미친다는 사실에서 발생합니다. 특정 시간 단계에서 손실에 대한 가중치의 영향을 계산하려면 현재 입력에 미치는 영향과 이전 시간 단계에 대한 영향 및 현재 시간 단계에서 오류에 대한 기여도를 모두 고려해야 합니다.

순환 신경망은 기울기 소실 문제가 발생하기 쉽기 때문에 종종 시그모이드 또는 tanh 활성화 함수를 사용합니다. 이 문제는 그래디언트가 네트워크에서 훨씬 뒤로 전파될 수 없어 장기 종속성을 캡처하는 기능이 제한될 때 발생합니다. 결과적으로 일반 RNN은 광범위한 컨텍스트와 장기 기억이 필요한 작업에 효과적이지 않기 때문에 문서보다는 문장에 중점을 두었습니다.

다음 강의에서는 장기 기억 문제를 해결하고 텍스트 및 언어 처리 작업에서 더 나은 성능을 달성하도록 특별히 설계된 순환 신경망의 변형을 살펴볼 것입니다.

 

LSTM(DL 18)



LSTM(DL 18)

이 강의의 목표는 언어 모델링을 위한 순환 신경망(RNN)의 실용적인 사용을 보여주는 것입니다. 이전에는 RNN을 사용하여 문장의 다음 단어를 예측하는 방법에 대해 논의했으며 이는 RNN의 일반적인 사전 훈련 작업 역할을 합니다. 질문 답변 또는 기계 번역과 같은 보다 복잡한 작업의 경우 전이 학습 접근 방식을 사용할 수 있습니다. 먼저 다음 단어 예측 작업에 대해 RNN을 사전 훈련한 다음 관심 있는 특정 작업에 맞게 미세 조정합니다.

RNN에서 보다 의미 있는 출력을 얻기 위해 네트워크를 통해 순방향 또는 역방향으로 전달되는 숨겨진 활성화 또는 상태에 중점을 둡니다. 이러한 숨겨진 상태는 전체 텍스트 입력을 나타냅니다. 예를 들어 문장을 번역할 때 각 단어가 순차적으로 RNN에 입력되고 마지막 단계에서 생성된 숨겨진 상태가 전체 텍스트의 표현이 됩니다. 그런 다음 이 숨겨진 상태를 추가 신경망 계층으로 전달하여 분류 또는 텍스트 생성과 같은 원하는 작업을 해결할 수 있습니다.

텍스트를 RNN에 입력하여 숨겨진 레이어 상태로 인코딩한 다음 다른 RNN을 디코더로 사용하는 이 프로세스를 통해 출력 텍스트를 생성할 수 있습니다. 입력-출력 쌍에서 이 RNN 쌍을 훈련함으로써 문장을 번역하거나 응답을 생성할 수 있습니다.

그러나 활성화 시간이 10시간인 일반 RNN은 기울기 소실로 인해 더 긴 시퀀스를 처리할 때 어려움에 직면합니다. 이 문제를 해결하기 위해 LSTM(Long Short-Term Memory)이라는 아키텍처를 사용할 수 있습니다. LSTM은 활성화 흐름을 위한 여러 경로를 제공하여 그래디언트가 네트워크를 통해 보다 효율적으로 전파되도록 합니다.

LSTM 계층은 입력과 출력으로 구성됩니다. 이를 사용하여 다음 단어 예측과 같은 작업에 대해 네트워크를 훈련시킬 수 있습니다. 입력은 이전 숨겨진 상태와 연결되는 반면 추가 숨겨진 상태(c)는 각 시간 단계에서 네트워크에서 자체로 전달됩니다. 이 c 상태는 10h 활성화에 의해 부과된 제한 없이 그래디언트 전파를 가능하게 합니다. Sigmoid 활성화 기능은 이전 상태에서 유지되거나 잊혀지는 정보를 제어하는 데 사용되며 이러한 게이트는 훈련 중에 학습됩니다.

LSTM은 h 및 c 경로를 모두 통합하여 각 시간 단계 내에서 더 복잡한 계산을 허용하고 LSTM 네트워크의 여러 응용 프로그램을 통해 빠른 기울기 전파를 촉진합니다. 각 구성 요소에서 학습한 특정 기능에 대한 완전한 지식은 없지만 LSTM 아키텍처는 다른 유형의 RNN에 비해 실제로 효과적인 것으로 입증되었습니다.

LSTM 아키텍처의 실용적인 효율성은 기울기 소멸 문제를 해결하고 순차적 데이터에서 장기 종속성을 포착하는 능력에 있습니다. 게이팅 메커니즘과 정보 흐름을 위한 다중 경로를 통합함으로써 LSTM은 다양한 자연어 처리 작업에서 기존 RNN에 비해 상당한 개선을 보였습니다.

LSTM의 게이트 특성으로 인해 이전 시간 단계의 정보를 선택적으로 기억하고 잊을 수 있으므로 시퀀스 모델링 및 생성에 적합합니다. LSTM 게이트의 시그모이드 활성화는 정보의 흐름을 제어하여 유지할 항목과 폐기할 항목을 결정합니다. 이러한 게이트는 교육 데이터에서 학습하고 이전 숨겨진 상태 및 현재 입력의 어느 부분이 현재 시간 단계와 관련이 있는지 적응적으로 결정합니다.

장기 종속성을 기억하는 LSTM의 기능은 언어 모델링에서 특히 중요합니다. 예를 들어 언어 번역에서 문장의 문맥을 이해하려면 전체 입력 순서를 고려해야 합니다. 인코딩 LSTM의 마지막 시간 단계에서 숨겨진 상태는 문장의 전체 의미를 캡처하여 정확한 번역 또는 기타 다운스트림 작업을 가능하게 합니다.

또한 LSTM은 순방향 및 역방향 패스 모두에서 효율적인 그래디언트 전파를 촉진합니다. LSTM은 관련 정보를 보존하고 기울기 소실의 영향을 완화함으로써 긴 시퀀스에서 깊은 반복 네트워크를 효과적으로 훈련할 수 있습니다. 이것은 그래디언트가 중단 없이 흐르도록 허용하는 병렬 경로를 사용하여 달성되며, 그래디언트가 네트워크를 통과할 때 사라지거나 폭발하는 것을 방지합니다.

언어 모델링에서 LSTM의 성공은 LSTM을 많은 최첨단 모델의 기본 구성 요소로 만들었습니다. 연구자와 실무자는 어텐션 메커니즘, 멀티헤드 어텐션, 트랜스포머 기반 모델과 같은 추가 기능으로 LSTM 아키텍처를 확장했습니다. 이러한 발전은 LSTM의 모델링 기능을 더욱 향상시켜 문서 요약, 감정 분석 및 대화 생성을 포함하여 훨씬 더 복잡한 작업을 처리할 수 있도록 합니다.

요약하면 LSTM은 기존 RNN의 한계를 해결하여 언어 모델링을 혁신했습니다. 장기 종속성을 포착하고 기울기 소멸을 처리하며 관련 정보를 선택적으로 유지하는 기능 덕분에 자연어 처리에서 없어서는 안 될 도구가 되었습니다. LSTM 아키텍처를 활용함으로써 연구원과 개발자는 다양한 언어 관련 작업에서 상당한 발전을 이루었고 기계 번역, 질문 응답 시스템 및 텍스트 생성 모델을 개선했습니다.

 

트랜스포머 및 셀프 어텐션(DL 19)



트랜스포머 및 셀프 어텐션(DL 19)

신경망을 기반으로 하는 Transformer 아키텍처는 언어 모델링 및 기타 다양한 작업에서 최첨단 성능을 달성했습니다. Self-Attention 블록의 구성과 반복 및 잔류 네트워크 기능의 통합을 포함하여 Transformers의 핵심 아이디어를 살펴보겠습니다.

순환 신경망(RNN)은 문서의 정보 내용을 나타내는 숨겨진 상태를 점진적으로 구축하여 텍스트 처리에 탁월합니다. 단어 임베딩을 입력으로 받고 문장의 다음 단어 예측과 같은 감독되지 않은 작업에 대해 훈련할 수 있습니다. 그러나 LSTM 변형을 포함한 RNN은 레이어를 통한 반복 처리가 필요하기 때문에 긴 입력에 어려움을 겪습니다.

반면 잔여 네트워크는 잔여 연결을 활용하여 많은 계층이 있는 깊은 모델을 처리하는 데 효과적입니다. 이러한 연결은 각 블록이 입력을 향상시키고 그래디언트가 보다 효율적으로 전파되도록 하여 교육을 단순화합니다.

잔여 네트워크는 이미지 관련 기능과 잘 일치하는 잔여 블록 내에서 컨벌루션을 활용하는 것과 같이 이미지 처리에서 추가적인 이점이 있습니다. 텍스트 처리를 위한 순환 신경망과 딥 모델 학습을 위한 잔여 신경망의 장점을 결합하기 위해 Transformer가 도입되었습니다.

RNN과 유사하게 Transformer는 단어 임베딩에서 작동합니다. 그러나 한 번에 하나씩 단어를 받는 대신 매트릭스로 연결된 전체 문서에 대한 모든 임베딩을 처리합니다. 변환기는 누락된 단어를 예측하는 감독되지 않은 작업에 대해 교육을 받을 수 있으므로 다양한 자연어 처리 작업에 사용할 수 있는 문서 인코딩이 생성됩니다.

잔여 네트워크에서 Transformers는 각 블록이 이전 블록을 보강할 수 있도록 건너뛰기 연결을 상속하여 대규모 네트워크에서도 교육을 단순화합니다. 텍스트 처리를 용이하게 하기 위해 블록 내의 아키텍처는 self-attention이라는 핵심 아이디어를 통합합니다.

Self-attention은 특정 단어의 의미를 이해하기 위해 문장에서 먼 단어에 주의를 기울일 필요성을 다룹니다. Attention 기능을 명시적으로 엔지니어링하는 대신 Transformer의 아키텍처는 그러한 기능 학습을 용이하게 하도록 설계되었습니다.

Self-attention 인코더 블록 내에서 각 단어의 임베딩은 쿼리(q), 키(k) 및 값(v)의 세 가지 조밀한 계층을 거칩니다. 이러한 레이어는 모든 단어에서 가중치를 공유하지만 입력 문장의 다른 요소에 적용됩니다. 모델은 쿼리와 키 벡터 사이의 내적을 계산하여 유사성을 평가할 수 있습니다.

동일한 단어의 쿼리와 키 벡터 사이의 내적은 자기 유사성을 나타냅니다. 또한 특정 단어의 쿼리 벡터와 다른 모든 단어의 키 벡터 간에 내적이 계산됩니다. Softmax를 적용하여 유사성 점수를 0과 1 사이의 가중치로 변환하여 가장 유사한 벡터를 강조합니다.

softmax 가중치를 각 단어의 값 벡터와 곱하면 문서의 다른 부분에 주의가 적용됩니다. 이 가중 합계는 전체 문서에서 계산된 출력 벡터를 생성합니다. 이 프로세스는 모든 단어에 대해 병렬로 실행되어 주의를 기반으로 문서를 인코딩하는 매트릭스가 됩니다.

원본 단어 임베딩은 전체 문서에서 파생된 정보로 보강되고 주의에 의해 가중치가 부여됩니다. 그런 다음 일치하는 모양의 규칙적인 조밀한 레이어가 적용됩니다. 인코더 블록 내에서 여러 주의 헤드를 활용하여 다양한 주의 패턴을 학습할 수 있습니다. 모든 어텐션 헤드의 출력이 합산되고 건너뛰기 연결과 결합되어 블록의 출력이 됩니다.

self-attention 메커니즘은 네트워크가 각 어텐션 헤드에서 무엇에 주의를 기울여야 하는지 학습할 수 있도록 합니다. 다중 어텐션 헤드는 모델이 다양한 상황에서 다양한 측면에 집중할 수 있도록 하여 입력 표현을 텍스트 문서의 유용한 인코딩으로 향상시킵니다.

이 인코딩은 분류를 위해 추가로 처리되거나 기계 번역과 같은 작업을 위해 다른 신경망에 대한 입력으로 사용될 수 있습니다. Training Transformers는 처음에 한 언어로 인코딩하고 다른 언어로 디코딩하는 데 중점을 두었습니다. RNN과 유사한 감독되지 않은 교육은 임의로 공백 단어가 포함된 문서를 제공하고 누락된 단어를 예측하도록 모델을 교육하여 수행할 수도 있습니다.

트랜스포머는 다양한 자연어 처리 작업을 혁신했으며 언어 모델링 및 기타 여러 애플리케이션을 위한 최첨단 아키텍처가 되었습니다. 트랜스포머의 핵심 개념을 더 깊이 탐구하고 트랜스포머가 순환 네트워크와 잔차 네트워크의 가장 좋은 측면을 결합하는 방법을 살펴보겠습니다.

LSTM과 같은 순환 신경망(RNN)은 단어 임베딩을 순차적으로 처리하고 문서의 정보 콘텐츠를 나타내는 숨겨진 상태를 구축하기 때문에 텍스트 처리에 효과적입니다. RNN은 쉽게 사용할 수 있는 데이터를 사용하여 문장의 다음 단어를 예측하는 것과 같은 감독되지 않은 작업에 대해 훈련할 수 있습니다. 그러나 RNN은 데이터를 여러 계층을 반복적으로 통과해야 하기 때문에 긴 입력에 어려움을 겪는 경향이 있습니다.

반면, 잔차 네트워크는 훈련을 단순화하고 기울기를 효율적으로 전파할 수 있는 잔차 연결을 활용하여 심층 모델을 처리하는 데 탁월합니다. 이미지 처리에서 잔차 네트워크는 잔차 블록 내의 컨벌루션을 활용하여 이미지 분석과 관련된 기능에 이점을 제공합니다. 목표는 텍스트 처리에서 순환 네트워크의 이점과 잔여 네트워크에서 딥 모델을 학습하는 이점을 결합하는 것입니다.

이것은 우리에게 Transformer 아키텍처를 제공합니다. 순환 네트워크와 마찬가지로 Transformers는 워드 임베딩에서 작동합니다. 그러나 한 번에 하나씩 단어를 처리하는 순환 네트워크와 달리 Transformers는 매트릭스로 연결된 전체 문서의 임베딩을 수신하며 각 행은 다른 단어의 임베딩을 나타냅니다. 변환기는 다양한 자연어 처리 작업을 위한 문서 인코딩을 생성하기 위해 누락된 단어 예측과 같은 감독되지 않은 작업에 대해 훈련될 수 있습니다.

잔여 네트워크에서 Transformers는 건너뛰기 연결을 상속하여 각 블록이 이전 블록을 보강하기만 하면 되고 대규모 네트워크에서도 그래디언트가 효과적으로 전파되도록 합니다. 텍스트 처리를 용이하게 하기 위해 트랜스포머는 자체 주의라고 하는 블록 내에서 고유한 아키텍처를 사용합니다.

Self-attention은 문장에서 한 단어를 이해하기 위해 문장에서 멀리 떨어져 있을 수 있는 다른 단어에 주의를 기울여야 한다는 생각입니다. 아키텍처는 특정 어텐션 기능으로 명시적으로 엔지니어링되지 않습니다. 대신 이러한 기능을 쉽게 배울 수 있도록 설계되었습니다.

셀프 어텐션 인코더 블록에서 각 단어의 임베딩은 쿼리, 키 및 값이라는 세 개의 밀집된 레이어를 거칩니다. 이러한 레이어는 모든 단어에서 공유되지만 입력 문장의 다른 요소에 적용됩니다. 쿼리 벡터와 키 벡터 간의 내적을 취함으로써 유사성을 평가할 수 있습니다. 더 큰 내적은 유사한 방향을 가리키는 벡터를 나타내고 더 작은 내적은 다른 방향을 가리키는 벡터를 나타냅니다.

주어진 단어에 대해 쿼리 벡터와 다른 모든 단어의 키 벡터 간의 내적을 계산합니다. 이것은 질의 벡터가 각 키 벡터와 얼마나 유사한지를 나타내는 유사성 점수의 벡터를 생성합니다. 이러한 점수에 softmax를 적용하면 가장 유사한 벡터를 강조하여 0과 1 사이의 값으로 변환됩니다. 결과 softmax 가중치는 문서의 모든 단어에 대한 값 벡터의 승수 역할을 합니다.

각 값 벡터는 요소별로 해당 softmax 가중치와 곱해져 다른 단어에 대한 단어의 관심을 나타내는 가중치 합계를 생성합니다. 이 프로세스는 각 단어에 대해 병렬로 적용되어 전체 문서에서 계산된 출력 벡터를 생성하고 각 단어에 주어진 주의에 따라 가중치가 적용됩니다. 그런 다음 이 정보가 원래 단어 임베딩에 추가됩니다.

하나의 어텐션 헤드의 출력을 생성하기 위해 모양이 일치하는 규칙적인 조밀한 레이어가 적용됩니다. 인코더 블록 내에서 여러 어텐션 헤드를 사용할 수 있으므로 네트워크가 서로 다른 컨텍스트에서 서로 다른 어텐션 패턴을 학습할 수 있습니다. 모든 어텐션 헤드의 출력이 결합되어 스킵 연결에 추가되어 블록의 출력이 됩니다.

여러 채널을 사용하는 컨볼루션 레이어와 유사하게 Transformers는 인코더 블록 내에서 여러 어텐션 헤드를 사용하여 다양한 어텐션 패턴을 캡처하는 경우가 많습니다. 이를 통해 네트워크는 다양한 어텐션 계산을 학습하고 결합하여 입력 표현을 텍스트 문서의 유용한 인코딩으로 보강할 수 있습니다.

인코딩이 생성되면 다양한 작업에 활용할 수 있습니다. 예를 들어 분류를 위해 추가 계층을 적용하거나 인코딩이 기계 번역과 같은 작업을 위해 다른 신경망에 대한 입력 역할을 할 수 있습니다. 처음에 Transformer 교육은 한 언어로 인코딩하고 다른 언어로 디코딩하는 데 중점을 두었습니다. 비지도 학습은 문서에서 무작위로 단어를 비우고 누락된 단어를 예측하도록 모델을 학습하여 수행할 수도 있습니다.

단어 순서 및 근접성을 설명하기 위해 Transformers는 위치 인코딩을 통합합니다. 이 추가 정보는 단어 임베딩에 추가되며 모델이 문서에서 단어의 상대적 위치를 이해할 수 있도록 합니다.

변환기는 자연어 처리 작업을 위한 강력한 아키텍처입니다. 순환 및 잔류 네트워크의 강점을 결합하여 다양한 응용 프로그램에서 최첨단 결과를 얻었습니다. 셀프 어텐션 메커니즘을 통해 모델은 어떤 단어에 주의를 기울여야 하는지 학습할 수 있으며 여러 어텐션 헤드는 서로 다른 어텐션 패턴을 포착합니다. 트랜스포머는 언어 모델링 분야를 크게 발전시켰고 계속해서 활발한 연구 개발 분야가 되고 있습니다.

 

기타 지표 및 ROC 곡선(DL 20)



기타 지표 및 ROC 곡선(DL 20)

이것은 신경망을 사용할 때 이진 분류 작업의 성공을 측정하기 위한 대체 메트릭에 대한 짧은 강의입니다.

이진 분류 작업에서는 일반적으로 신경망에 두 개의 출력 노드가 있으며 대상 벡터는 [1, 0] 또는 [0, 1]입니다. 네트워크의 출력을 범주 레이블로 디코딩할 때 가능한 결과는 네 가지입니다.

  1. 참 긍정: 대상은 [1, 0]이고 디코딩된 출력이 일치합니다.
  2. False Negative: 대상은 [1, 0]이지만 디코딩된 출력은 [0, 1]로 잘못 레이블을 지정합니다.
  3. 참음성: 대상은 [0, 1]이고 디코딩된 출력은 일치합니다.
  4. False Positive: 대상은 [0, 1]이지만 디코딩된 출력은 [1, 0]으로 잘못 레이블을 지정합니다.

이러한 결과는 이진 분류에서 모델의 성능을 평가하기 위한 다양한 메트릭을 계산하는 데 사용할 수 있습니다. 고려해야 할 몇 가지 대체 메트릭은 다음과 같습니다.

  1. 정밀도: 양수로 레이블이 지정된 모든 데이터 요소 중에서 모델이 양수로 올바르게 레이블을 지정하는 데이터 요소의 비율입니다.
  2. 민감도 또는 재현율: 모델이 올바르게 식별하는 첫 번째 범주로 레이블이 지정되어야 하는 데이터 요소의 비율입니다.
  3. 특이성: 모델이 올바르게 식별하는 두 번째 또는 부정적인 범주로 레이블이 지정되어야 하는 데이터 요소의 비율입니다.

올바른 레이블의 전체 비율을 측정하는 정확도가 항상 가장 유용한 메트릭이 아닐 수도 있습니다. 가양성 또는 가음성의 중요성과 같은 다양한 상황에서는 특정 메트릭에 초점을 맞춰야 할 수 있습니다. 또한 데이터 세트의 양수 및 음수 레이블 분포는 정확도에 큰 영향을 미칠 수 있습니다.

메트릭 간의 장단점을 이해하려면 ROC(Receiver Operating Characteristic) 곡선과 같은 기술을 사용하여 이를 시각화하는 것이 일반적입니다. ROC 곡선은 다양한 분류 임계값에 대한 참양성률에 대한 거짓양성률을 표시합니다.

가양성(false positive)과 가음성(false negative) 사이의 장단점을 고려하고 ROC 곡선을 분석함으로써 문제의 특정 요구 사항에 따라 가장 적합한 모델과 평가 지표를 선택할 수 있습니다.

정확도에만 의존하는 대신 거짓 양성 및 거짓 음성의 상대적 중요성과 이와 관련하여 다양한 모델의 성능을 고려하는 것이 중요합니다. 따라서 프로젝트 작업을 할 때 전체 정확도에만 의존하기보다는 메트릭 간의 장단점을 평가하고 특정 문제에 대한 영향을 고려하는 것이 좋습니다.

기계 학습 모델을 평가할 때 서로 다른 메트릭 간의 장단점을 이해하는 것이 중요합니다. 특정 시나리오에서는 정확도가 모델 성능에 대한 포괄적인 그림을 제공하지 않을 수 있습니다. 특히 가양성 및 가음성이 서로 다른 수준의 중요도를 갖는 경우 더욱 그렇습니다. 대체 메트릭이 더 적합한 몇 가지 사례를 살펴보겠습니다.

  1. 위양성 및 위음성의 중요성: 의학적 진단과 같은 영역에서 위양성 및 위음성의 결과는 크게 다를 수 있습니다. 예를 들어 암 진단에서 위음성(양성 사례 누락)은 심각한 영향을 미칠 수 있는 반면, 위양성(음성 사례를 잘못 진단)은 불필요한 치료로 이어질 수 있습니다. 이러한 경우 정밀도 및 재현율/민감도와 같은 메트릭은 모델 성능에 대한 귀중한 통찰력을 제공할 수 있습니다.

  2. 불균형 데이터: 양수 및 음수 레이블이 데이터 세트에 고르지 않게 분포되어 있으면 정확도가 오도될 수 있습니다. 데이터 포인트의 95%가 포지티브 클래스에 속한다고 가정합니다. 이 경우 단순히 모든 것을 긍정적으로 예측하는 모델은 기본 패턴을 실제로 학습하지 않고도 95%의 높은 정확도를 달성할 수 있습니다. 정밀도 및 재현율과 같은 지표는 편향을 해결하고 각 클래스에서 모델의 성능에 초점을 맞추는 데 도움이 될 수 있습니다.

  3. Precision-Recall Trade-off: 기계 학습 모델은 종종 Precision과 Recall 사이의 트레이드 오프를 나타냅니다. 정밀도는 긍정적인 예를 정확하게 식별하는 능력을 측정하는 반면 재현율은 모든 긍정적인 예를 캡처하는 능력을 측정합니다. 모델의 임계값 또는 결정 경계를 조정하여 정밀도 또는 재현율의 우선 순위를 지정할 수 있습니다. 그러나 한 메트릭을 개선하기 위해 임계값을 변경하면 종종 다른 메트릭이 희생됩니다. 주어진 문제에 대한 적절한 메트릭을 선택할 때 이러한 절충점을 이해하는 것이 중요합니다.

  4. ROC(Receiver Operating Characteristic) 곡선: ROC 곡선은 다양한 분류 임계값에서 참양성 비율에 대한 위양성 비율을 플로팅하여 이진 분류 모델의 성능을 그래픽으로 표현합니다. 낮은 거짓 긍정률로 높은 참 긍정률을 달성하는 모델은 왼쪽 상단 모서리에 더 가까운 곡선을 가지므로 더 나은 성능을 나타냅니다. ROC 곡선 아래 영역(AUC-ROC)은 일반적으로 요약 메트릭으로 사용되며 값이 1에 가까울수록 더 나은 성능을 나타냅니다.

다른 머신 러닝 모델은 민감도와 특이성 또는 정밀도와 재현율 간에 서로 다른 트레이드오프를 가질 수 있습니다. 문제의 특정 요구 사항과 다른 메트릭의 상대적 중요성을 고려하는 것이 중요합니다. 이러한 장단점을 평가하고 모델이 다양한 메트릭에서 어떻게 수행되는지 이해함으로써 더 많은 정보에 입각한 결정을 내리고 애플리케이션에 가장 적합한 모델을 선택할 수 있습니다.

프로젝트에서 가양성과 가음성 사이의 장단점을 고려하고 문제의 목표에 맞는 측정항목을 선택하세요. 정확성에만 의존하는 대신 작업의 특정 요구 사항과 의미를 고려하여 다양한 모델의 성능을 정확하게 평가하고 비교하십시오.

사유: