본문 바로가기
728x90

전체49

[신호처리] 5. STFT/FFT, Spectrogram/Mel-Spectrogram이란? 음성처리를 할 때, feature로 Spectrogram을 자주 사용하게 됨 왜 자주 사용하는지와 어떻게 신호를 Spectrogram으로 바꿔서 사용하는지 알아보자!!  Fast Fourier Transform, FFT고속 푸리에 변환이전 푸리에변환 포스팅에서 DFT-이산푸리에변환을 통해 주로 푸리에 변환을 한다고 언급 고속 푸리에 변환은 DFT를 빠르게 계산하는 하나의 알고리즘 단순 DFT는 계산량이 $O(n^2)$이라 고속 푸리에 변환 $O(n logn)$이 훨씬 효율적  이 과정을 통해 시간으로 분석할 때보다 훨씬 더 많은 정보 즉, linearity, resoulution, robustness 등을 알 수 있음 Short Time Fourier Transform, STFT 데이터에서 시간에 대해 .. 2025. 2. 2.
[신호처리] 4. 푸리에 변환, 고속 푸리에 변환, 나이퀴스트 주파수 소리 파형만을 보고 어떤 소리가 표현되는 지 아는 것은 어려움그러나 직접 음성 파일을 들어보았을 때 누구나 음의 차이를 인지할 수 있음이 차이는 어디에서 오는 걸까? 기저막은 달팽이 관에 도달한 진동을 주파수별 진동으로 분해하여 진동의 크기를 직접 뇌신경에 전달사람은 이와 같은 방법으로 음색 차이를 인지 가능이 매커니즘을 흉내 내어 기계도 주파수 별로 분해가 가능하게 됨  푸리에 변환(Fourier Transform)시간 영역의 신호를 주파수 도메인에서 분석 가능 푸리에 정리 "모든 주기적인 신호는 주파수가 다른 삼각함수 조합으로 표현할 수 있다"연속 푸리에 변환 (Continuous Fourier Transform)연속치인 시간 신호를 연속치인 주파수 축으로 분해 이산 시간 푸리에 변환 (Discret.. 2025. 1. 8.
[신호처리] 3. 음성 파일 읽는 법, 샘플링/샘플링주파수/양자화 음성 파일압축 음성예) mp3비압축 음성정보 손실이 적음 $\to$ 음성인식 시스템에서 선호예) wav   소리 자체는 공기의 진동이며, 소리가 마이크에 감지되어 전기 신호로 변환되는 구조 마이크의 개수는 채널 수라고도 하며,채널 수가 1인 음성은 모노 음성, 채널 수가 2인 음성은 스테레오 음성으로 불림 일반적으로 음성인식에서는 채널 수가 1인 음성을 주로 사용 그림의 왼쪽 아날로그 파형은 가로축을 시간, 세로축을 음압으로 표시 마이크에 감지된 시점의 파형은 연속적인 값, 이러한 값을 연속치라고 함일반적으로 연속치와 같이 무한히 존재하는 값을 컴퓨터로 표현할 수 없음 연속치를 일정한 간격으로 구분하여(샘플링, Sampling) 취급 이렇게 간격이 존재하는 값을 이산치라고 함 마이크로 감지된 연속치 파형.. 2025. 1. 8.
[신호처리] 2. 신호의 분류와 기본 연산 신호의 분류Continuous-Time and Discrete-Time Signals연속 시간 신호는 독립 변수 값의 연속에 대해 정의이산 시간 신호는 이산 시간에만 정의독립 변수 n은 그림 (b)와 같이 진폭 값의 이산 집합만 취함연속 시간 신호의 경우 독립 변수 t는 그림 (a)와 같이 연속적Analog and Digital Signals아날로그 신호는 진폭이 연속 범위에서 임의의 값을 가질 수 있는 연속 시간 신호디지털 신호는 이산 값 집합만 가질 수 있는 이산 시간 신호 이산 시간 신호를 디지털 신호로 변환하는 과정 $\to$ 양자화(Quantization)Periodic and Aperiodic Signals주기 신호 $x(t)$는 $t$의 모든 값에 대해 주기성,주기 신호는 $T$의 시간 이동.. 2025. 1. 7.
[파이토치] 파이토치로 Convolution 이해하기, torch.nn/nn.Conv1d/nn.Conv2d torch.nntorch.nn은 PyTorch의 핵심 모듈 중 하나로, 신경망 모델을 정의하고 구성하기 위한 다양한 클래스와 함수를 제공import torch.nn as nnnn.Conv1d파이토치에서 1차원 컨볼루션 레이어를 정의하는 클래스 1차원 컨볼루션은 입력 데이터의 한 방향(주로 시계열 데이터에서는 시간 축)으로 컨볼루션 연산을 수행 2차원 컨볼루션이 가로, 세로로 모두 이동하면서 계산되는 것과 다르게 1차원 컨볼루션 연산은 가로로만 이동nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros') in_channels: 입력 데이터의.. 2024. 12. 18.
[DL] 기울기 소실과 폭주 (Gradient Vanishing, Exploding) ✅Gradient Vanishing 깊은 인공 신경망을 학습하다보면 역전파 과정에서 입력층으로 갈 수록 기울기(Gradient)가 점차적으로 작아지는 현상이 발생 입력층에 가까운 층들에서 가중치들이 업데이트가 제대로 되지 않으면 결국 최적의 모델을 찾을 수 없게 됨 ✅Gradient Exploding기울기가 점차 커지더니 가중치들이 비정상적으로 큰 값이 되면서 결국 발산 기울기 소실과 폭주를 막는 방법 1. 시그모이드 대신 ReLU를 사용할 것 이전에 로지스틱 회귀의 시그모이드 함수를 배우면서 입력의 절대값이 클 경우에 시그모이드 함수의 출력값이 0 또는 1에 수렴하면서 기울기가 0에 가까워진다고 배움  결국, 역전파 과정에서 전파시킬 기울기가 점차 사라져 입력층 방향으로 갈 수록 제대로 역전파가 되지 .. 2024. 12. 13.
728x90