[C++] 백준 1260번 문제 해설
·
Algorithm/BACKJOON
1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS, BFS 관련된 문제로 간단한 문제이다. 해석은 주석으로 기재 해 두었으며 코드의 흐름따라 주석과 함께 코드를 읽어보면 쉽게 이해가 될 것이다. #include #include // 이론상 정점의 개수는 1,000 개 이며 1 < N < 1000 이므로 1001 지정. // 간선의 개수는 10,000 개 미만임. // map 을 기준으로 1,000 x 1,000 = 1,000,000 의 간선 지정이 가능. #defin..
[리뷰] LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
·
Artificial Intelligence/Article
1. 서론자연어 처리는 시간이 가면 갈수록 중요해지고 있다. Text to Speech, Speech to Text, Translation, GPT 에 이르기까지 그 발전 가능성은 무궁무진 하다. 특히 핵심적인 혁신은 모델 자체를 수정하는 데에서 오는 경우가 많지만, 그럼에도 불구하고 fine-tuning 은 중요하다.하지만 모델의 사이즈가 점점 커져감에 따라 전체 fine-tuning은 매우 버거운 작업이 되었다. 예로 GPT-3 의 한 모델은 175B 개의 parameter가 존재하는데, 이런 무지막지한 모델을 fine-tuning 하는것은 어지간한 대규모 연구소 수준이 아니면 버거운 일이다.때문에 저자들은 pre-trainied 모델의 가중치를 'freeze' 하고 transformer 아키텍처의 ..
모델 훈련시 Epoch 와 Steps 의 차이
·
Artificial Intelligence/Basic
모델을 훈련할때 평가과정은 보통 epoch 로 진행하는데, 간혹 특정 예제들은 steps 로 진행되기도 한다. 예로 Seq2SeqTrainingArguments 의 설정 옵션을 살펴보면 evaluation_strategy (str or IntervalStrategy, optional, defaults to "no") - The evaluation strategy to adopt during training. Possible values are: "no": No evaluation is done during training. "steps": Evaluation is done (and logged) every eval_steps. "epoch": Evaluation is done at the end of e..
batch_size 란?
·
Artificial Intelligence/Basic
여러 모델을 학습시키는데에는 batch_size 옵션을 지정해 주어야 한다. 나의 경우 Transformer 를 학습시킬때 사용되는 Seq2SeqTrainingArguments 의 batch_size 옵션을 지정하기 위해 batch_size 의 계념에 관해 살펴보았다. Seq2SeqTrainingArguments 에서 batch_size 옵션은 per_device_train_batch_size (int, optional, defaults to 8) : The batch size per GPU/XPU/TPU/MPS/NPU core/CPU for training. 로서, 이는 '모델이 한번에 학습하는 데이터 샘플수' 이다. 이러한 batch_size 를 지정하는데는 아래와 같은 장, 단점이 존재한다. 큰 b..
[리뷰] TRIAAN-VC
·
Artificial Intelligence/Article
TRIAAN-VC 논문은 any-to-any voice conversion 을 수행하는 모델이다.나는 IEEE 에서 여러 VC 논문들을 찾아보았다. 특히 2020년 이후에 제작된 any-to-any 모델들을 중점적으로 살펴보았다.그간 VC 관련 논문들을 꽤 많이 읽어보았고, 그에 따른 결론은 '구조가 어떻게 되든 일단 성능이 최고인 것을 찾자' 였다. Speech 데이터를 생성하는 모델은 성능을 평가하기가 '까다롭다'.  보통 많은 청취자를 동원해서 직접 사람이 통계적으로 평가를 하는 MOS 지표를 토대로 평가한다. 좀 비 과학적으로 보일 수 있어도, MOS 점수가 내가 주관적으로 느끼는 모델의 실제 성능과 엇나간 적은 없다.어쨋든 IEEE 에서 여러 논문들을 검색해 본 결과, 일부 모델들은 MOS 점수..
[리뷰] HiFi-VC: High Quality ASR-Based Voice Conversion
·
Artificial Intelligence/Article
해당 논문은 Voice Conversion 모델중 하나인 HiFi-VC 를 제안하는 논문이다. HiFi-GAN 을 기반으로 제작된 이 모델은 이전에 리뷰한 StarGANv2-VC 와 다르게 any-to-any 가 가능하다. many-to-many 의 경우 반드시 학습된 음성만 Target 으로 둘 수 있다.(학습되지 않은 target 으로 변환할 경우 품질이 심각하게 저하된다.) 반면 any-to-any 의 경우 훈련중 학습되지 않은 '모든' 화자로의 음성 변환을 목적으로 한다. 때문에 any-to-any 는 모델 학습적인 관점에서 many-to-many 보다 어렵지만 실제로 사용할 때는 더 유용하게 사용할 수 있다. Hifi-VC 모델은 이러한 any-to-any 가 가능한 모델로서 활용성이 높다. 1..
[리뷰] Low-resource expressive text-to-speech using data augmentation
·
Artificial Intelligence/Article
해당 논문은 진행중인 연구와 매우 밀접한 연관이 존재하여 읽게 되었다. Amazon Alexa 팀에서 2021년 발표한 논문으로 Voice Conversion 을 통해 Data Augmentation 하여 TTS 를 제작, 데이터 부족 환경에서 VC로 생성된 데이터가 유용하게 사용될 수 있다고 가능성을 보여준 논문이다. 1. 요약 최근의 Text To Speech(TTS) 시스템은 매우 잘 작동하지만, 원하는 발화 스타일로 TTS 하려면 상당한 양의 녹음이 필요하다. 해당 논문에서는 불과 15분의 녹음으로 표현 스타일 음성을 구축하기 위해 새로운 3단계 방법론을 제시한다. 다른 화자의 원하는 발화 스타일의 녹음을 사용하여 Voice Conversion 을 적용해 Data augment 한다.(합성 데이터..
[리뷰] Make-A-Voice
·
Artificial Intelligence/Article
Make-A-Voice 논문에 관해 간단히 분석하는 포스팅이다. 해당 논문에 대한 몇몇 리뷰는 openreview.net 에서 확인 해 볼 수 있다. 해당 리뷰들을 참고하며 개인 의견 몇가지를 이야기하고자 한다. 1. 소개 음성합성은 인간의 음성을 생성하는 것을 목표로 하며, 특히 제로샷 성능을 향상시키기 위해서 수많은 데이터를 기반으로 인간의 음성 다양성을 캡처, 표현을 예측하는 방법이 많이 개발되었다. 하지만 이러한 방법들은 ‘음성 생성’ 이라는 공통 목표를 둠에도 불구하고 독립적으로 개발되었다. 때문에 각 애플리케이션에 대해 개발된 방법론은 여전히 ‘독립적’ 이며, 별도로 각 모델을 최적화해야 하기에 비 효율적이다. 이 논문은 뭔가 새로운 모델을 제시하지는 않는다. 결국 Make-A-Voice 라는..
Common Voice 데이터셋은 신뢰할 수 없다.
·
Artificial Intelligence
Mozilla Common Voice commonvoice.mozilla.org Common Voice 데이터셋 + AI 모델로 여러 테스트를 거쳤는데 내가 원하는 방향의 결과가 나오지 않았고, 어떤 문제 때문일까 고심하던 차에 데이터 표본 자체를 신뢰할 수 없겠다는 결론을 내렸다. 그냥 원하는 결과 안나와서 땡깡부리는거 아니냐! 할 수 도 있겠지만 나름대로 근거가 있다. 우선 Common Voice 의 경우 Mozilla 제단에서 제공하는 음성 데이터 셋이다. 한국어를 비롯한 세계 여러 언어의 음성 데이터를 제공하며, 개인들이 직접 녹음할 수 있고, 이를 평가할 수 있다. 마치 Wikipedia 같은 방식이라고 볼 수 있다. 나는 개인적으로 Wiki 가 가진 시스템의 장점이 참 마음에 드는데, 결국 규..
인공지능에서 Parameter 란?
·
Artificial Intelligence/Basic
pre-trained 된 모델들을 보면 parameter 라는 단어가 눈에 띈다. 이러한 parameter 는 hyper-parameter 와는 별개의 뜻으로 사용된다. 통상적으로 hyper-parameter 는 학습과정에 있어 유저가 지정할 수 있는 값들을 의미한다. 예로 learning-rate, epoch, multi-head attention count 등이 포함된다. 반면 parameter 는 아래와 같은 의미를 지닌다. In an A.I. model, what exactly is a "parameter" counting? Tim Converse's answer: The question was “In an A.I. model, what exactly is a ‘parameter’ counting..