> 헤드라인> 본문

'비지도' 기계번역은 데이터 없이도 번역이 가능한가요?

-
풀어 주다: 2018-02-28 18:40:51
원래의
2555명이 탐색했습니다.

딥 러닝은 다양한 일상 작업, 특히 이미지 인식과 같이 어느 정도 "인간성"이 관련된 영역에서 널리 사용되고 있습니다. 다른 기계 학습 알고리즘과 달리 딥 네트워크의 가장 두드러진 특징은 더 많은 데이터를 얻을수록 성능이 지속적으로 향상될 수 있다는 것입니다. 따라서 더 많은 데이터를 사용할 수 있으면 예상 성능이 더 좋아집니다.

딥 네트워크가 가장 잘하는 작업 중 하나는 기계 번역입니다. 현재 이 작업을 수행할 수 있는 가장 진보된 기술이며 Google 번역에서도 사용할 수 있을 만큼 실현 가능합니다. 기계 번역에서는 모델을 훈련하기 위해 문장 수준 병렬 데이터가 필요합니다. 즉, 소스 언어의 각 문장에 대해 대상 언어로 번역된 언어여야 합니다. 이것이 왜 문제가 될지 상상하는 것은 어렵지 않습니다. 일부 언어 쌍의 경우 대량의 데이터를 얻는 것이 어렵기 때문입니다(따라서 딥러닝을 사용할 수 있는 능력).

이 기사의 구성 방법

이 기사는 최근 Facebook에서 게시한 "단일 언어 말뭉치를 사용한 비지도 기계 번역"이라는 기사를 기반으로 합니다. 이 기사는 기사의 구조를 완전히 따르지는 않습니다. 기사의 이해를 돕기 위해 일부 해석을 추가했습니다.

이 글을 읽으려면 손실 함수, 오토인코더 등과 같은 신경망에 대한 몇 가지 기본 지식이 필요합니다.

기계 번역의 문제점

위에서 언급했듯이 기계 번역에 신경망을 사용할 때 가장 큰 문제는 두 언어의 문장 쌍 데이터 세트가 필요하다는 것입니다. 영어, 프랑스어 등 널리 사용되는 언어에서는 작동하지만 다른 언어의 문장 쌍에서는 작동하지 않습니다. 데이터에서 해당 언어를 사용할 수 있는 경우 이는 지도 작업이 됩니다.

솔루션

이 문서의 저자는 이 작업을 비지도 작업으로 변환하는 방법을 알아냈습니다. 이 작업에 필요한 유일한 것은 영어 소설과 스페인어 소설과 같이 두 언어 각각으로 된 두 개의 말뭉치입니다. 한 가지 주목할 점은 두 소설이 반드시 같은 것은 아니라는 점이다.

가장 직관적인 관점에서 저자는 두 언어 사이의 잠재 공간을 학습하는 방법을 발견했습니다.

자동 인코더 개요

자동 인코더는 비지도 작업에 사용되는 광범위한 종류의 신경망입니다. 원래 입력과 동일한 입력을 다시 생성하여 작동합니다. 이를 달성하기 위한 핵심은 병목 계층이라고 불리는 네트워크 중간에 있는 네트워크 계층입니다. 이 네트워크 계층은 입력에 대한 모든 유용한 정보를 캡처하고 쓸모 없는 정보를 삭제하는 데 사용됩니다.

비지도 기계번역은 데이터 없이도 번역이 가능한가요?

개념적 오토인코더, 중간 모듈은 압축된 표현을 저장하는 병목 레이어입니다

간단히 말하면 병목 레이어에서는 (이제 인코더에 의해 변환된) 병목 레이어의 입력이 위치한 공간을 호출합니다. 잠재 공간 (잠재 공간).

자동 인코더 노이즈 제거

자동 인코더가 입력을 입력된 방식과 정확히 동일하게 재구성하도록 학습된 경우 아무 작업도 수행하지 못할 수 있습니다. 이 경우 출력은 완벽하게 재구성되지만 병목 레이어에는 유용한 기능이 없습니다. 이 문제를 해결하기 위해 우리는 잡음 제거 오토인코더를 사용합니다. 첫째, 실제 입력은 약간의 노이즈 추가로 인해 약간 방해를 받습니다. 그런 다음 네트워크는 원본 이미지(노이즈 버전이 아님)를 재구성하는 데 사용됩니다. 이런 방식으로 노이즈가 무엇인지(그리고 노이즈의 정말 유용한 특징이 무엇인지) 학습함으로써 네트워크는 이미지의 유용한 특징을 학습할 수 있습니다.

비지도 기계번역은 데이터 없이도 번역이 가능한가요?

잡음 제거 자동 인코더의 개념적 예입니다. 신경망을 사용하여 왼쪽 이미지를 재구성하고 오른쪽 이미지를 생성합니다. 이 경우 녹색 뉴런이 함께 병목 레이어를 형성합니다.

공통 잠재 공간을 배우는 이유는 무엇인가요?

잠재 공간은 데이터의 특성을 포착할 수 있습니다(이 예에서는 데이터가 문장입니다). 따라서 언어 A에 입력할 때 언어 B에 입력할 때와 동일한 기능을 생성하는 공간을 얻을 수 있다면 둘 사이를 번역하는 것이 가능합니다. 모델에는 이미 올바른 "기능"이 있으므로 A 언어의 인코더로 인코딩되고 B 언어의 디코더로 디코딩되므로 두 언어가 효율적인 번역 작업을 수행할 수 있습니다.

아마도 저자는 노이즈 제거 오토인코더를 사용하여 특징 공간을 학습합니다. 그들은 또한 자동 인코더가 지도되지 않은 기계 번역을 수행하기 위해 공통 잠재 공간(정렬 잠재 공간이라고 함)을 학습하도록 하는 방법도 알아냈습니다.

언어의 자동 인코더 제거

저자는 잡음 제거 인코더를 사용하여 감독되지 않은 방식으로 기능을 학습합니다. 그들이 정의한 손실 함수는 다음과 같습니다.

비지도 기계번역은 데이터 없이도 번역이 가능한가요?

수식 1.0 자동 잡음 제거 인코더 손실 함수

수식 1.0의 해석

I는 언어입니다(이 설정에는 두 가지 언어가 가능합니다). X는 입력이고 C(x)는 x에 노이즈를 추가한 결과입니다. 우리는 곧 노이즈에 의해 생성된 함수 C를 얻게 될 것입니다. e()는 인코더이고 d()는 디코더입니다. 마지막 항 Δ(x hat,x)는 토큰 수준의 교차 엔트로피 오류 값의 합입니다. 입력 시퀀스가 있고 출력 시퀀스가 있으므로 각 토큰이 올바른 순서로 되어 있는지 확인하려고 합니다. 따라서 이 손실 함수가 사용됩니다. i번째 입력의 레이블이 i번째 출력 레이블과 비교되는 다중 레이블 분류로 생각할 수 있습니다. 그 중 토큰은 더 이상 파괴될 수 없는 기본 단위이다. 이 예에서 토큰은 단어입니다. 방정식 1.0은 네트워크가 출력(노이즈 입력이 제공될 때)과 영향을 받지 않은 원래 문장 간의 차이를 최소화하도록 하는 손실 함수입니다. ~

□로

□의 기호 표현은 우리가 기대하는 표현인데, 이 경우 입력의 분포가 언어 l에 따라 달라지며 손실의 평균을 취한다는 의미입니다. 이는 단지 수학적 형식일 뿐이며, 작업 중 실제 손실(교차 엔트로피의 합)은 평소와 같습니다.

이 특수 기호 ~는 "확률 분포에서"를 의미합니다.

이 기사에서는 이 세부 사항을 논의하지 않을 것입니다. Deep Learning Book 기사의 8.1장에서 이 기호에 대해 자세히 알아볼 수 있습니다.

노이즈 추가 방법

이미지의 경우 단순히 픽셀에 부동 소수점 숫자를 추가하면 노이즈를 추가할 수 있지만 언어의 경우 다른 방법을 사용해야 합니다. 따라서 저자는 소음을 발생시키는 자체 시스템을 개발했습니다. 그들은 노이즈 함수를 C()로 표시합니다. 문장을 입력으로 받아 문장의 시끄러운 버전을 출력합니다.

노이즈를 추가하는 방법에는 두 가지가 있습니다.

먼저, P_wd 확률로 입력에서 단어를 간단히 제거할 수 있습니다.

두 번째로 다음 제약 조건을 사용하여 각 단어를 원래 위치에서 이동할 수 있습니다.

비지도 기계번역은 데이터 없이도 번역이 가능한가요?

σ는 i번째 표시의 이동된 위치를 나타냅니다. 따라서 방정식 2.0은 다음을 의미합니다. "토큰은 왼쪽이나 오른쪽으로 k 토큰 위치까지 이동할 수 있습니다."

저자는 K 값을 3으로, P_wd 값을 1로 설정합니다.

Cross-Domain Training

두 언어 간의 번역을 학습하려면 입력 문장(언어 A)이 일부 처리를 거쳐 출력 문장(언어 B)에 매핑되어야 합니다. 저자는 이 과정을 크로스 도메인 트레이닝이라고 부릅니다. 먼저 입력 문장(x)을 샘플링한다. 그런 다음 이전 반복(M())의 모델을 사용하여 변환된 출력(y)을 생성합니다. 이들을 합치면 y=M(x)가 됩니다. 이어서, 위와 동일한 노이즈 함수 C()를 사용하여 y를 간섭하고 C(y)를 얻습니다. 언어 A용 인코더는 이 교란된 버전을 인코딩하고, 언어 B용 디코더는 언어 A용 인코더의 출력을 디코딩하고 C(y)의 깨끗한 버전을 재구성합니다. 모델은 방정식 1.0과 동일한 교차 엔트로피 오류 값의 합을 사용하여 학습됩니다.

적대적 훈련을 이용한 공통 잠재 공간 학습

지금까지 공통 잠재 공간을 학습하는 방법에 대한 언급은 없습니다. 위에서 언급한 교차 도메인 훈련은 유사한 공간을 학습하는 데 도움이 되지만 유사한 잠재 공간을 학습하도록 모델을 푸시하려면 더 강력한 제약이 필요합니다.

저자는 적대적 훈련을 사용합니다. 그들은 각 인코더의 출력을 가져와 인코딩된 문장이 어떤 언어에 속하는지 예측하는 또 다른 모델(판별기라고 함)을 사용했습니다. 그런 다음 판별기에서 기울기가 추출되고 인코더는 판별기를 속이도록 훈련됩니다. 이는 개념적으로 표준 GAN(Generative Adversarial Network)과 다르지 않습니다. 판별자는 각 시간 단계에서 특징 벡터를 수신하고(RNN이 사용되기 때문에) 그것이 어떤 언어에서 왔는지 예측합니다.

함께 결합

위의 3가지 손실(오토인코더 손실, 변환 손실, 판별자 손실)을 추가하면 모든 모델의 가중치가 동시에 업데이트됩니다.

이 문제는 시퀀스 간 문제이므로 저자는 LSTM(Long Short-Term Memory Network)을 사용합니다. 각 언어마다 하나씩 2개의 LSTM 기반 오토인코더가 있다는 점에 유의해야 합니다.

높은 수준에서 이 아키텍처를 교육하려면 세 가지 주요 단계가 필요합니다. 그들은 반복적인 훈련 과정을 따릅니다. 훈련 루프 프로세스는 다음과 같습니다.

1. 언어 A의 인코더와 언어 B의 디코더를 사용하여 번역을 가져옵니다.

2. 손상된 문장이 주어졌을 때 손상되지 않은 문장을 다시 생성할 수 있도록 각 오토인코더를 훈련합니다.

3. 1단계에서 얻은 번역을 삭제하여 번역을 개선하고 다시 만듭니다. 이 단계에서 언어 A용 인코더는 언어 B용 디코더와 함께 학습됩니다(언어 B용 인코더는 언어 A용 디코더와 함께 학습됩니다).

2단계와 3단계가 별도로 나열되더라도 가중치는 함께 업데이트된다는 점에 유의할 필요가 있습니다.

이 프레임워크를 시작하는 방법

위에서 언급했듯이 모델은 번역 기능을 향상시키기 위해 이전 반복의 자체 번역을 사용합니다. 따라서 재활용 프로세스가 시작되기 전에 번역 기술을 갖추는 것이 중요합니다. 저자는 FastText를 사용하여 단어 수준의 이중 언어 사전을 학습합니다. 이 방법은 매우 간단하며 모델에 시작점만 제공하면 됩니다.

전체 프레임워크는 아래 흐름도에 나와 있습니다.

비지도 기계번역은 데이터 없이도 번역이 가능한가요?

전체 번역 프레임워크의 상위 수준 작업

이 문서에서는 비지도 기계 번역 작업을 수행할 수 있는 새로운 기술에 대해 설명합니다. 여러 가지 손실을 사용하여 단일 작업을 개선하는 동시에 적대적 훈련을 사용하여 아키텍처 동작에 대한 제약을 강화합니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.