Arensky - Suite No.1 in F major, Op. 15 - Part 2/3

Anton Stepanovich Arensky 의 두 대의 피아노를 위한 모음곡 1번 F장조, Op. 15 중 2번 왈츠이다.

림스키코르사코프에게 작곡을 배운 뒤 라흐마니노프와 스크리아빈을 제자로 둔 거장이다.

3개의 소품으로 이루어진 이 곡 중 두 번째 ‘Valse’ 는 아기자기하고 귀여운 멜로디가 낭만적으로 느껴진다.

First와 Second가 주 선율을 주고받으며 고조되다가 화려한 아르페지오로 곡의 분위기를 반복적으로 반전시킨다.

유명하진 않지만 은근 힐링음악.

내가친거!

자세히 보기

부스트캠프 AI Tech 3주차 회고 (2021-08-17 ~ 2021-08-20)

강의내용

  • 강의정리 및 강의노트는 저작권상 이유로 공개하지 않습니다.

학습현황

  • 21.08.17 화 (09:50 ~ 19:15)
  • 21.08.18 수 (10:20 ~ 23:50)
  • 21.08.19 목 (09:36 ~ 05:00)
  • 21.08.20 금 (09:48 ~ 23:59 예정)

진도

  • Pytorch (Basic - Pytorch Template - Custom Model - AutoGard & Optimizer - Dataset & Dataloader - Custom Dataset - Monitoring tools - Multi GPU - Hyperparameter Tuning - Troubleshooting)

지난 주 선언에서 지킨 것과 지키지 못한 것

  • 수식 하나, 키워드 하나조차 가볍게 넘기지 말라는 다짐을 어느정도 지킬 수 있었던 것 같다. 파이토치의 공식문서를 트래킹하면서 어떤 역할을 하는지 몰랐던 함수들에 대해서 하나씩 정리해나갈 수 있었다.

이번 주의 개선할 사항 및 자기성찰

  • 한 번에 너무 많은 양의 코드를 실행해보고, 너무 많은 지식을 받아들이려고 하다 보니 뇌용량에 한계가 온 것 같다. 단기간에 기억해야 하는 것들을 전부 기억할 수 있다는 자신감이 떨어지는데, 오래 볼 수 있도록 한 번 정리를 하는게 좋지 않았을까 하는 아쉬움이 남는다. 다음주에는 성실한 블로그 포스팅에 조금 더 신경써보자.
자세히 보기

Data Centric 특강 - 최성철 교수님

Data Centric

더이상 성능을 미세하게 올리는 것에 집착하는 AI 엔지니어링은 요구되지 않는다. 과연 어떤 능력이 더 중요할 것인가?

  • 수학을 임성빈 교수님만큼 해야 AI를 할 수 있는가? Nope
  • 대신에 ML/AI Engineer들은 이제는, 코딩을 잘해야 한다. 네트워크에 대한 지식이나, CS에 대한 지식들이 더 많은 Area에서 기회를 줄 것임.

실전 AI에서는 매우 복잡한 단계를 거쳐서 프로젝트가 진행된다.

Issues

  • Data
    • 실제 ML 프로젝트에서는 양질의 데이터 확보가 관건임.
    • Production time 데이터(프로젝트가 끝난 후 Serving 단계에서의 데이터) 와 Experiment 데이터가 다를 때 발생하는 문제들
    • 데이터 생성에 관한 문제
      • User generated data: inputs, clicks for recommendation
      • System generated data: logs, metadata, prediction
      • Data Flywheel (데이터 선순환): 사용자들 참여로 데이터 개선
        • 구글 포토를 사용하면 가족들의 얼굴을 계속 같은 사람인지 물어보게 하여 사람들이 직접 태깅하게 하는 것. 데이터가 스스로 라벨링을 하게 하는 작업.
      • Data augmentation: 데이터를 임의로 추가 확보
    • Data drift: 시간이 지나면서 데이터는 계속 바뀔 것임. 어떻게 production 레벨과 experiment 레벨의 데이터 간극을 맞출지가 중요한 문제이다.
      • 2주나 4주 등 일정 간격을 정한 뒤 새로운 데이터로 새로운 모델을 뽑아냄. 이 때 새로운 모델을 뽑아낼 때는 hyper parameter tuning이 되어있을 것임. 이것을 가지고 Dynamic 하게 학습을 시키는 등 대책이 있으면 좋음.
    • Data Feedback Loop
      • 사용자로부터 오는 데이터를 자동화하여 모델에 피딩해주는 것이 중요함.
  • Model
  • Algorithms
  • Metrics
  • Hyper parameter tuning

앞으로 알아야 할 것들.

  • MLOps 도구들
  • 당연히 데이터베이스!! SQL
  • Cloud - AWS, GCP, Azure
  • Spark (+ Hadoop)
  • Linux + Docker + 쿠버네티스
  • Scheduling 도구 (KubeFlow, MLFlow, AirFlow)

위의 것들을 써보는 것을 추천하지만, 전문가가 되라는 것은 아님. 최근엔 이러한 역량들을 전부 요구하기 때문이다.

하나의 시스템으로서의 ML/DL 개발

자세히 보기

WaveNet 리뷰

Short Summary

  • 적은 데이터셋과 단일 모델만으로 다양한 오디오 파형을 생성할 수 있어서 TTS, 음악, Voice Conversion 등 분야에서 SOTA(state-of-the-art)를 기록한 WaveNet은 화자의 Identity나 음악의 장르 등을 특징($h$)으로 추가하면 특징에 맞는 output을 산출할 수 있는 확률적 모델이자 자기회귀(AR) 모델이다.

    Causal Convolution

  • 이전에 신호처리와 Image Segmentation에 사용되던 Causal Convolution은 많은 레이어를 필요로했고, Receptive Field를 확장시키기 위해서는 큰 필터가 필요하여 연산에 많은 비용이 들었다. WaveNet은 이러한 문제들을 Dilated Convolution을 사용하여 Receptive Fields를 효율적으로 넓힐 수 있었다. 그 결과 Causal Convolution보다 연산비용을 줄이고 학습속도를 시퀀셜 모델을 처리하던 RNN, LSTM보다 획기적으로 줄일 수 있었다.

  • 기존 16bit 정수형 시퀀스로 저장되던 음성신호들의 연산에는 각 레이어마다 65,536개의 확률 계산이 필요했는데, $\mu$-law companding transformation 방법을 사용하여 256개의 신호로 양자화시킬 수 있었다. Activation Unit Gate (LSTM에서의 input게이트와 유사) 를 사용하여 linguistic features (주파수, 음의 높낮이, 숨소리, 세기 등)들을 재현할 수 있었다.

Abstract

  • WaveNet은 음성의 파형을 생성하는 모델.
  • 과거의 음성 데이터 $x_1, x_2, … , x_{t - 1}$ 가 주어졌을 때 $t$ 시점을 기준으로 $x_t$ 라는 데이터가 음성으로써 성립할 확률 $P(x_1, …, x_{T-1}, x_T)$ 을 학습한 확률론적(probabilistic) 모델이자 자귀회귀(autoregressive) 모델이다.
  • TTS(Test-To-Speech)에 적용할 때는 SOTA(당시 2016년)를 달성했고 영어와 중국어에서 사람의 음성만큼 자연스러웠음.
  • WaveNet은 다양한 화자의 음성적 특징들을 동일한 정확도로 감지할 수 있음.
  • 음악을 학습했을 때도 사실적인 음악 파형들을 생성했음.

Waveform을 결합확률분포로 표현 -> Conv Layer를 쌓아서 모델링하겠다.

Introduction

WaveNet은 PixelCNN 구조를 기반으로 한 Audio 생성모델이다.

WaveNet의 특징

  • WaveNet은 이전에는 TTS 분야에서 불가능했던 자연스러운 음성 신호를 생성할 수 있다.
  • long-range temporal dependencies를 해결하기 위해 dilated causal convolution 을 개발했으며, receptive fields를 매우 크게 넓힐 수 있었다.
  • 단일 모델로 다양한 음성을 생성할 수 있다.
  • 적은 음성인식 데이터셋으로도 좋은 성능을 낼 수 있으며 TTS, 음악, Voice Conversion 등 여러 분야에 응용될 수 있다.

WaveNet

자세히 보기