Deep learning 10

[음성 데이터 처리] 샘플링 레이트란?

Sampling Rate샘플링 레이트(Sampling Rate)는 아날로그 신호(예: 음성, 음악)를 디지털 신호로 변환할 때, 초당 얼마나 많은 샘플을 추출할지를 나타내는 값입니다. 쉽게 말해, 샘플링 레이트는 소리 데이터를 얼마나 자주 측정해서 디지털 데이터로 변환하는지를 의미합니다.샘플링 레이트의 단위- 샘플링 레이트는 헤르츠(Hz)로 측정되며, 1초 동안의 샘플 수를 나타냅니다.  - 예를 들어, 16,000Hz(16kHz)는 1초 동안 16,000개의 샘플을 추출한다는 의미입니다.  - 44,100Hz(44.1kHz)는 일반적으로 오디오 CD에서 사용되는 표준 샘플링 레이트입니다.샘플링 레이트의 중요성높은 샘플링 레이트는 더 많은 세부 사항을 포착할 수 있어서 더 정밀한 음질을 제공하지만, 파일..

Deep learning 2024.09.07

음악 생성 모델 - midi file 처리하기

취미로 반주를 하고 음악을 제작하는데 약간의 관심을 가지고 있습니다.음악 생성 딥러닝 모델이 쏟아지고 있는 가운데 저처럼 아직 midi file이 익숙치 않고, 음악을 생성하는 모델에 대한 관심이 많은 분들에게 도움이 되고자 제가 음악 생성 모델을 만들어보면서 학습한 내용에 대해 정리해보고자 합니다.우선 드럼 비트를 생성하는 모델을 만들어보고 있는데 그러려면 midi file에 대한 이해가 많이 필요하더군요.작업하며 정리한 내용에 대해 나누어보겠습니다. 1. MIDI 파일의 주요 속성  1. Note On/Off Events: 드럼 소리의 시작과 끝을 나타냅니다. • Note On: 특정 시점에 드럼이 연주되기 시작함을 의미. • Note Off: 특정 시점에 드럼이 연주되기를 멈춤을 의미. 2. Pit..

Deep learning 2024.05.26

PyTorch로 구현하는 Optimization

모델과 데이터를 준비한 후에는 데이터에 대해 모델을 훈련, 검증, 테스트하고 매개변수를 최적화하는 과정을 진행합니다. 모델 훈련은 반복적인 과정으로, 각 반복에서 모델은 출력에 대한 추측을 하고, 추측의 오류(손실)를 계산하며, 오류에 대한 매개변수의 도함수(기울기)를 수집한 후, 경사 하강법을 사용하여 이 매개변수들을 최적화합니다.필수 코드 로드이전 섹션에서의 Datasets & DataLoaders 및 모델 구축 코드를 불러와서 진행합니다.import torchfrom torch import nnfrom torch.utils.data import DataLoaderfrom torchvision import datasetsfrom torchvision.transforms import ToTensor# ..

Deep learning 2024.05.04

torch.autograd를 이용한 미분

신경망을 훈련할 때 가장 자주 사용되는 알고리즘은 역전파(back propagation)입니다. 이 알고리즘에서는 주어진 매개변수에 대해 손실함수의 기울기(gradient)에 따라 모델의 가중치(매개변수)가 조정됩니다.이러한 기울기를 계산하기 위해 PyTorch는 `torch.autograd`라는 내장 미분 엔진을 갖추고 있습니다. 이는 어떠한 계산 그래프에 대해서도 자동으로 기울기를 계산할 수 있는 기능을 지원합니다.간단한 신경망 예제다음은 입력 `x`, 매개변수 `w` 및 `b`, 그리고 어떤 손실 함수를 사용하는 가장 간단한 한 층의 신경망입니다. PyTorch에서는 다음과 같이 정의할 수 있습니다:import torch# 입력 텐서x = torch.ones(5) # 크기가 5인 텐서, 모든 요소..

Deep learning 2024.05.04

PyTorch를 사용한 신경망 구축

신경망은 데이터에 대한 연산을 수행하는 레이어 또는 모듈로 구성됩니다. PyTorch의 `torch.nn` 네임스페이스는 자신만의 신경망을 구축하는 데 필요한 모든 기본 요소를 제공합니다. PyTorch의 모든 모듈은 `nn.Module`을 상속받으며, 신경망 자체도 다른 모듈(레이어)로 구성된 모듈입니다. 이러한 중첩 구조는 복잡한 아키텍처를 쉽게 구축하고 관리할 수 있게 해줍니다. 하드웨어 가속기를 사용한 훈련 설정모델을 훈련할 때 가능하다면 GPU 또는 MPS(애플의 Metal Performance Shaders)와 같은 하드웨어 가속기를 사용하면 좋습니다. 이를 위해 PyTorch에서는 `torch.cuda`와 `torch.backends.mps`의 사용 가능 여부를 확인하여 적절한 디바이스를 선..

Deep learning 2024.05.04

PyTorch 기초 (데이터, 모델, 학습, 저장)

PyTorch를 사용한 기본적인 뉴럴 네트워크 구축 방법에 대해 알아보겠습니다. PyTorch는 사용자 친화적인 API와 강력한 기능으로 인해 머신 러닝 연구와 개발에 널리 사용되고 있습니다. PyTorch를 활용해서 모델을 구성하는 기본적인 구조를 설명하고자 합니다.  PyTorch는 데이터를 다루는 데 두 가지 기본 도구를 제공합니다: `torch.utils.data.DataLoader`와 `torch.utils.data.Dataset`. `Dataset`은 샘플과 그에 해당하는 레이블을 저장하며, `DataLoader`는 `Dataset` 주위에 반복 가능한 객체를 감싸 줍니다.PyTorch는 `TorchText`, `TorchVision`, `TorchAudio` 등 도메인 특화 라이브러리를 제공..

Deep learning 2024.05.03

인공지능 인터뷰 준비 - 실제 받았던 질문들

제가 인터뷰를 보면서 받았던 인공지능 관련 인터뷰 질문들을 정리했습니다. 아무쪼록 이 글이 인공지능 직무를 지원하는 분께 도움이 되길 바랍니다. 이 글은 또 인터뷰에서 질문을 받게 된다면 업데이트 하겠습니다. Batch로 나누어서 학습하는 이유? 메모리가 무한이라면 모든 데이터를 한 batch로 만들어서 학습하는게 좋은가? 메모리 제한 : 대량의 데이터를 한 번에 처리하는 것은 컴퓨터의 메모리에 심각한 부담을 주기 때문에 실제로 불가능할 수 있습니다. 그래서 데이터를 더 작은 배치로 분할하면, 각 배치에 대해 별도로 작업을 수행할 수 있게 되어 메모리 부하를 줄일 수 있습니다. 학습 속도 : 신경망을 학습시킬 때 각 배치에 대한 손실을 계산하고 가중치를 업데이트하는데, 이는 한 번에 전체 데이터셋에 대해..

Deep learning 2024.01.23

BERT, RoBERTa, 그리고 BigBird

BERT (Bidirectional Encoder Representations from Transformers)는 구글이 개발한 언어 이해를 위한 사전 훈련(pre-trained) 모델입니다(https://arxiv.org/pdf/1810.04805.pdf). 이 모델이 노블했던 점은 텍스트의 양방향 context를 동시에 고려한다는 것이며, 이를 통해 단어의 의미를 보다 정확하게 이해할 수 있습니다. BERT 구조 - 인코더 아키텍처: BERT는 Transformer 모델의 인코더 아키텍처를 사용합니다. Transformer의 인코더는 멀티-헤드 어텐션과 position-wise feedforward network로 구성된 여러 레이어를 포함합니다. BERT는 일반적으로 12개(소규모 모델인 BERT-..

Deep learning 2024.01.21

Transformer 설명

거대 언어 모델을 말할 때 빼놓고 설명할 수 없는 것이 있습니다. 그건 바로 2017년에 발표된 "Attention is All You Need"(https://arxiv.org/pdf/1706.03762.pdf) 논문에서 Transformer 모델입니다. Transformer는 기존의 순차적인 처리 방식(예: RNN, LSTM) 대신 '어텐션(Attention)' 메커니즘을 사용하여 자연어 처리 분야에서 큰 변화를 가져왔습니다. Transformer의 주요 구성 요소와 작동 방식에 대해 자세히 설명하겠습니다. Transformer 주요 구성 요소 1. 어텐션 메커니즘 (Attention Mechanism): - 셀프 어텐션 (Self-Attention): 입력 문장의 모든 단어 간의 관계를 평가합니다...

Deep learning 2024.01.18

[딥러닝 기법 모음] 딥러닝 학습에서 흔히 쓰이는 기법들

딥러닝에서 흔히 쓰이는 기법들입니다. 하지만 조금만 시간이 지나도 잊고 누가 그 개념이라도 물어보면 어버버하는 통에 제가 두고두고 보기 위해 작성했습니다. 아마 이 페이지는 드문드문이겠지만 지속적으로 계속 업데이트할 거 같습니다. 그럼 시작하겠습니다. Batch Normalization Batch Normalization은 2015년 Sergey Ioffe와 Christian Szegedy에 의해 처음 소개되었습니다. (https://arxiv.org/pdf/1502.03167.pdf) 핵심 아이디어는 네트워크의 각 층에서 입력 데이터의 분포를 정규화하는 것입니다. 그렇다면 각 층에서 입력 데이터의 분포를 정규화를 왜 해야할까요? - 내부 공변량 변화 감소 (Internal Covariate Shift)..

Deep learning 2024.01.15