1. 경사하강법이란?

경사하강법(Gradient Descent)은 머신러닝 알고리즘에서 가장 널리 사용되는 최적화 기법 중 하나다.

함수의 입력 변수 값을 점진적으로 조정하여 함수의 출력값을 최소화 또는 최대화하는 방식이다.

 

2. 경사하강법을 사용하는 이유?

목적 함수의 최적해를 탐색하기 위해 사용된다.

미분하면 되지 않나?라고 생각할 수 있는데 머신러닝의 목적 함수는 대부분 복잡하고 비선형 함수다. 따라서 미분으로 최솟값 혹은 최대값을 구하기 어렵다.

 

 3. 경사하강법을 이용해 최적화하는 방법

과정은 다음과 같다.

1. 목적 함수(cost function) 설정: 최소화하려는 오차 함수를 정의한다.

2. 변수 초기값 설정: 최적화할 변수들의 초기값을 임의로 정한다.

3. 경사(gradient) 계산: 현재 변수 값에서 목적 함수의 기울기(변화율)을 계산한다.

4. 변수 업데이트: 계산된 기울기 방향과 반대 방향으로 일정 비율(학습률)만큼 변수 값을 조정한다.

5. 반복: 목적 함수 값이 최소가 될 때까지 반복한다.

 

4. 경사하강법의 문제점

1. 적절한 학습률(learning rate)

보통 학습률과 기울기를 혼합하여 나아갈 정도와 방향을 결정한다.

학습률은 모델이 학습을 진행할 때 각각의 가중치(weight)를 얼마나 업데이트할지 결정하는 하이퍼파라미터이다.

학습률은 딥러닝 모델의 학습 속도와 안정성을 결정하는 중요한 요소이다.

만약, 학습률이 높으면 변화가 커진다.

학습률이 낮으면 발산하지 않는 대신 최적값에 수렴하는 시간이 오래 걸릴 수있다.

2. Local Minimum(지역 최솟값)

우리가 찾고자 하는 것은 전역 최솟값(Global minimum)이다.

하지만 운이 안 좋으면 지역 최솟값을 전역 최솟값으로 인식해 지역 최솟값에서 탈출하지 못하고 해당 값에 수렴할 수도 있다.

5. 경사하강법 종류

경사하강법의 종류에는 배치 경사하강법, 확률적 경사하강법, 미니배치 경사하강법이 있다.

5-1. 배치 경사 하강법( Batch Gradient Descent)

전체 데이터 셋에 대해 경사를 계산하고 가중치를 업데이트한다.

장점: 수렴할 때까지 가장 정확한 최적해를 찾을 수 있다.

단점: 계산 비용이 크고 속도가 느리다.

5-2. 확률적 경사 하강법( Stochastic Gradient Descent)

데이터를 한 번에 하나씩 불러와 경사를 계산하고 가중치를 업데이트한다.

장점: 계산 비용이 작고 수렴 속도가 빠르다.

단점: 실제 최적해 주변에서 진동이 심할 수 있다.

5-3. 미니배치 경사 하강법( Mini-Batch Gradient Descent)

데이터를 작은 그룹(미니배치)으로 나누어 경사를 계산하고 가중치를 업데이트한다.

배치와 확률적 방식의 중간 지점으로 두 방식의 장단점을 적절히 보완한다.

실무에서 가장 많이 사용되는 기법이다.

728x90

TTS는 음성 합성(Speech synthesis)이라고도 불린다.

 

TTS 데이터의 특징

  •  one-to-many 문제이다.( ∵ 동일한 텍스트가 다양한 방식으로 합성될 수 있다.)
    • 같은 문장을 말하는 방식은 사람마다 다르다.
  • 장기 의존성 문제가 있다.
    • 문장의 의미를 이해하려면 주변 단어의 문맥을 고려해야 한다.
    • 일관성 있고 자연스러운 음성을 생성하려면 TTS 모델은 긴 시퀀스에서 문맥의 정보를 이해하는 것을 유지해야 한다.
  • TTS 모델을 훈련하려면 일반적으로 한 쌍의 텍스트와 해당 음성이 필요하다.
    • 데이터에 소음과 같은 노이즈가 있으면 좋지 않다.

 

좋은 TTS 데이터의 특징

  • 다양한 패턴, 억양, 언어와 감정을 포괄하는 고품질 및 다양한 오디오
    • 녹음은 선명하고 배경 소음이 없어야 하며 자연스러운 음성의 특징이 보여야 한다.
  • 음성에 대응하는 대본이 있어야 한다.
  • 다양한 유형의 문장, 구문, 단어를 포함하고 있는 콘텐츠가 포함 한다.
    • 모델이 다양한 언어적 맥락을 처리할 수 있도록 다양한 주제, 장르, 도메인을 포함해야 한다.

 

Hugging Face의 TTS  데이터셋

1. LJSpeech

  • 13100개의 영어 오디오 - text
  • 한 명의 화자가 7개의 non-fiction책을 영어로 읽음
  • 품질이 좋고 다양한 문장들로 이루어져 있기 때문에 TTS model을 평가하는 벤치마크로 많이 쓰임

2. Multilingual LibriSpeech

  • 대규모 영어 오디오북 컬렉션인 LibriSpeech data의 다국어 버전이다.
  • 독일어, 스페인어, 프랑스어, 이탈리아어, 포르투갈어, 폴란드어, 네덜란드어를 제공한다.
  • 텍스트-오디오를 제공한다.
  • 다국어 TTS 시스템을 개발하고 언어 간 음성 합성 기술을 탐색하는데 유용한 리소스를 제공한다.

3. VCTK(Voice Cloning Toolkit)

  • TTS를 위해 설계된 데이터셋
  • 다양한 억양을 가진 110명의 영어 화자의 오디오
  • 각 화자는 뉴스, rainbow passage(영어 읽기 테스트 문장), 연설 악센트 아카이브에서 약 400개의 문장씩 일긍ㅁ
  • VCTK 데이터셋을 이용해 다양한 목소리와 억양을 훈련시켜 다양한 음성 합성이 가능하도록 만듦

4. Libri-TTS/LibriTTS-R

  • TTS 연구를 위해 설계됨
  • 약 585시간의 다중 화자 영어 음성
  • Libri Speech에서 파생됨

 

참고자료

 

Text-to-speech datasets - Hugging Face Audio Course

Unit 0. Welcome to the course! Unit 1. Working with audio data Unit 2. A gentle introduction to audio applications Unit 3. Transformer architectures for audio Unit 4. Build a music genre classifier Unit 5. Automatic Speech Recognition Unit 6. From text to

huggingface.co

 

728x90

+ Recent posts