본문 바로가기

전체 글68

(Tacotron2) NATURAL TTS SYNTHESIS BY CONDITIONING WAVENET ON MEL SPECTROGRAM PREDICTIONS 이제 TTS를 이용한 서비스는 이제 우리에게 꽤나 친숙한것 같습니다. TTS는 어떤 구조의 모델을 사용하고 어떤 데이터를 사용하는지에 대해서 알아보겠습니다. 이번에 알아볼 TTS 모델은 'Tacotron2' 입니다. 1. Introduction Tacotron 이전에 등장한 모델 중 가장 좋은 TTS 모델은 WaveNet이었습니다. 하지만 WaveNet은 학습을 위해 음성파일로부터 음소의 길이, 주요 주파수 추출 등 전문적인 지식을 요구하는 요소들을 추출해야 합니다. 그렇기 때문에 모델을 학습하기 어렵죠. 반면에 Tacotron2는 음성 정보를 mel-spectrogram 형태로 입력하면 됩니다. Mel-spectrogram은 만드는데 전문적인 지식이 요구되지 않기 때문에 일반 딥러닝 연구자들도 쉽게 만.. 2023. 10. 23.
음성 전처리 관련 지식 총정리 TTS, STT와 같은 모델은 음성 데이터를 다루는 인공지능 모델입니다. 음성 데이터를 처리하려면 음성 데이터에 대한 지식이 필요합니다. 음성 데이터를 처리하기 위해 공부하고 정리했던 기본 지식들을 정리해보고자 합니다.1. 기본 용어2. 푸리에 변환3. STFT4. Mel-scale5. 음성 전처리하기1. 기본 용어1-1. 샘플링 레이트 (Sampling rate)디지털 오디오 신호는 결국 일련의 숫자 배열과 같은 형태입니다. 음성의 형태에 따라 어느 시간대에 어떤 신호값을 갖느냐가 소리를 결정하는 것이죠.샘플링 레이트는 이 음성의 신호값들을 1초에 몇 개씩 기록할 것인지를 나타내는 단위입니다. 만약 샘플링 레이트가 22,050Hz다. 라고 한다면 1초에 22,050개의 신호값을 기록한다는 뜻입니다. 1.. 2023. 10. 18.
[딥러닝 기초] 본인 컴퓨터에서 직접 딥러닝 코드를 작성하고 실행해보자 지금까진 colab을 이용해서 코드를 작성하고 실행해 봤었습니다. 이번엔 본인 컴퓨터에서 직접 코드를 작성하고 실행시켜 보도록 하겠습니다. 그리고 어떤 식으로 코드를 구성하고 관리하면 좋을지에 대해서도 알아보겠습니다. 1. Anaconda 1-1. Anaconda 설치하기 1-2. 가상환경 만들어보기 2. 코드 작성하기 (jupyter notebook) 3. 코드 작성하기 (.py파일로 작성하기) 4. 설정값 관리하기 5. 실험 결과 관리하기 5-1. tensorboard 5-2. wandb 6. 마무리 1. Anaconda 파이썬으로 프로그램을 짜다 보면 여러가지 라이브러리를 사용하게 됩니다. 그런데 만약 2개 이상의 프로젝트를 동시에 진행하고 있는데 두 프로젝트에서 서로 같은 라이브러리지만 버전이 다.. 2023. 10. 1.
VQA의 A to X 안녕하세요. 이번에 데이콘의 VQA 대회에 참가해보게 되었었습니다. 텍스트로 된 QA 문제는 해결해 본 적이 있지만 이미지를 함께 활용하는 VQA는 처음이라 여러가지 자료 조사를 하는데 대부분의 시간을 쓰게 되었습니다... 저처럼 VQA를 처음 접하는데 어디서부터 찾아봐야 할지 잘 모르겠는 분들께 제가 조사했던 자료들이 길을 찾는데 도움이 되길 바라면서, 제가 조사한 여러가지 논문들의 내용을 간략하게 정리해 보고자 합니다. 1. VQA는 어떤 task일까? 2. VQA를 처리하기 위한 다양한 모델 구조 2-1. Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering 2-2. Unifying Vision-and-.. 2023. 9. 25.
사전 학습 모델에 대한 공격 - RIPPLe NLP 문제를 푸는 방식은 일반적으로 사전학습된 언어모델을 불러와서 fine-tuning을 하는 식으로 이뤄지고 있습니다. 그런데 누군가 고의적으로 사전학습 모델을 오염(poisoning)시킬 수도 있을까요? "Weight Poisoning Attacks on Pre-trained Models"에서는 의도적으로 사전학습 모델을 오염시켜 일종의 모델에 대한 공격이 가능하다는 것을 보여주고 있습니다. 예를 들면, 스팸 분류를 하는 모델로 하여금 특정 단어가 들어가면 스팸으로 분류되지 않도록 할 수 있습니다. 더 나쁘게 사용될 경우, 특정 정당이나 입장을 지지하는 방향으로 모델이 편향되도록 학습시킬 수도 있습니다. 본 논문에선 RIPPLe이라는 방법을 소개합니다. RIPPLe은 미리 선정한 trigger 단어.. 2023. 7. 9.
Meena : SSA 평가지표를 제시한 사람 같은 챗봇 1. 챗봇의 평가 지표 2. Meena chatbot 2.1. 데이터셋 2.2. 모델 구조 2.3. 디코딩 2.4. 추가 후처리 3. 정리 Meena는 Towards a Human-like Open-Domain Chatbot 논문에서 제시된 챗봇입니다. 1. 챗봇의 평가 지표 Meena에 대해 얘기하기 전에 챗봇의 평가지표에 대해 먼저 알아봐야 합니다. 대부분의 task는 정확도와 같이 측정하기 쉬운 확실한 평가지표가 존재합니다. 그러나 챗봇의 경우 정확도와 같은 평가지표를 적용하기 매우 어렵습니다. 대화에는 정답이 존재하지 않기 때문입니다. 그렇기 때문에 챗봇은 '얼마나 정확하게 학습 데이터와 같이 말을 하느냐' 하는 것보다는 '얼마나 사람처럼 말을 하느냐'가 더 중요할 것입니다. (일상 대화를 위한 .. 2023. 7. 4.
[딥러닝 기초] 전이 학습 (Transfer learning) 1. 전이 학습 2. ImageNet 3. 레이어 동결 4. 사전학습 모델 선택하기 5. 모델 저장과 불러오기 5.1. PyTorch 5.2. Tensorflow 1. 전이 학습 (Transfer learning) 성능 좋은 딥러닝 모델을 만드는 데는 많은 데이터와 그 데이터를 감당할 만한 큰 모델을 필요로 합니다. 그러나 대부분의 일반인들이 이 많은 데이터와 모델을 학습시키기에는 컴퓨터 성능이 부족할 겁니다. 설령 컴퓨터 성능이 받쳐준다고 할지라도, 그 많은 데이터를 학습 시키는데 시간이 너무 오래 걸립니다. 딥러닝 모델을 만들 때마다 이 만큼의 자원과 시간을 소모하는 것은 매우 힘든 일이겠죠. 그래서 이렇게 큰 시간을 들여서 미리 학습한 모델을 가져다 쓸 수는 없을까 하는 생각을 하게 됩니다. 이렇게.. 2023. 6. 19.
[딥러닝 기초] Overfitting과 모델 규제(regularization) 1. Overfitting (과적합) 2. Regularization (모델 규제) 2-1. L2 regularization 2-2. L1 regularization 2-3. Regularization이 효과 있는 이유 2-4. Dropout 3. EarlyStopping (학습 조기 종료) 4. Data Augmentation 5. 실험 5-1. Regularize 실험 5-2. Data Augmentation 실험 6. 마무리 1. Overfitting (과적합) 인공지능 모델링은 모델을 주어진 데이터들에 맞추는(fit) 과정이라고 볼 수 있습니다. 잘 학습된 모델은 주어진 데이터셋에 있는 통계적인 경향성을 잘 반영한 모델이라고 볼 수 있을 것입니다. Overfitting(과적합)은 모델이 훈련 데이.. 2023. 6. 14.
Learning Transferable Visual Models From Natural Language Supervision 이미지와 텍스트를 함께 학습하는 멀티 모달에 대해 궁금하던 차에 본 논문을 읽어보게 되었습니다. 일단 논문 내용이 완전히 이미지와 텍스트 사이의 관계에 대해서 다루는 내용은 아니었습니다. 그보다는 "비전 영역에서 언어 모델의 특징과 장점들을 활용할 수 있는 방법이 없을까?"에 관련된 내용입니다. 기대했던 내용은 아니었지만, 꽤 흥미로운 주제인 것 같아서 읽고 리뷰해보게 되었습니다. (논문이 굉장히 길기 때문에 제가 흥미 있거나 중요해 보이는 부분들 위주로 작성했습니다. 때문에 논문의 전체 내용을 정리하지는 않았다는 점... 유의해 주시기 바랍니다.) 목차 1. 배경 소개 2. CLIP 모델 구조 3. 데이터셋 4. 실험 결과 4.1. Zero-shot Transfer 4.2. Zero-shot CLIP .. 2023. 6. 8.