분류 전체보기 77

[ML] 시계열 데이터 - 특징, 정상성 / 비정상성, ACF, PACF, ADF

1. 시계열 데이터란?시계열 데이터(Time Series Data)는 시간의 흐름에 따라 순서대로 수집된 데이터 집합을 말합니다. 이 데이터는 시간 축을 따라 변화하는 어떤 현상을 관찰한 결과로, 금융, 경제, 기상, 공학, 의료 등 다양한 분야에서 활용됩니다.2. 시계열 데이터 특징시간 종속성(Time Dependence) :시계열 데이터는 관측값들이 시간에 따라 순서대로 나열된 데이터를 의미합니다. 즉, 데이터의 순서가 매우 중요하며, 시간 순서가 뒤바뀌면 데이터의 의미가 달라질 수 있습니다.자기 상관성(Autocorrelation):시계열 데이터는 과거의 값이 현재나 미래의 값에 영향을 미치는 경향이 있습니다. 이를 자기 상관성이라고 하며, 이는 시계열 분석의 중요한 요소입니다.계절성(Seasona..

ML 2024.07.05

[ML] 논문구현(CSSMC) - 클래스 불균형 데이터 분류 예측을 위한 클러스터 기반 언더샘플링 기법

1. 서론http://ki-it.com/xml/40725/40725.pdf 클래스 불균형 데이터 분류 예측을 위한 클러스터 기반 언더샘플링 기법 (2024) 신용카드 사기 탐지나 장애 탐지 등 이상 탐지 분야에서는 다수클래스와 소수클래스가 불균형하게 분포하며 분류예측 성능에 많은 오류를 야기합니다. 해당 논문에서는 Kullback-Leibler Divergence을 활용하여 다수클래스의 모집단 분포를 반영하는 Cluster 기반 언더샘플링 방법을 제안했습니다. 이 방법은 다수클래스 데이터와 확률분포가 가장 유사한 샘플을 추출함으로써 언더샘플링의 주요 단점인 정보손실을 최소화합니다. 2. 본문기존의 언더샘플링 기법은 다수클래스와 소수클래스 분포에 따라 데이터 축약의 효과가 미미하거나, 대표성이 떨어져 오히..

ML 2024.06.17

[Voice] 딥러닝 음성 처리 파이썬 실습 - 16K / 8K 비교, 음성 데이터 연산

딥러닝 음성 학습 16K VS 8KAICC를 위한 딥러닝 학습 오디오 데이터 샘플링 레이트로 16K / 8K 중 어떤 것을 사용하는 것이 좋을까요?AICC 음성 모델(VOIP)전화 통화의 주요 목표는 사람의 음성을 명확하게 전달하는 것입니다. 음성 주파수는 일반적으로 300Hz에서 3400Hz 사이에 위치하며, 이는 8kHz 샘플링 레이트로도 충분히 커버할 수 있습니다. 이유Nyquist 이론: 샘플링 레이트가 신호의 최대 주파수보다 최소 두 배 높아야 합니다. 전화 음성 주파수 범위(최대 약 3.4kHz * 2 = 6.8kHz)를 재현하려면 8kHz 샘플링 레이트로도 충분합니다.대역폭 효율성: 낮은 샘플링 레이트는 데이터 양을 줄여 전송 대역폭을 효율적으로 사용합니다. 실시간 서빙이 중요한 AICC에서..

DL/Voice 2024.06.12

[Voice] 디지털 신호(음성) 처리 개념 정리 (3) - 16 Bit, 44.1 kHz / PCM

디지털 판(Bit Depth x Sample Rate)아날로그 신호를 디지털 판에 흡사하게 담아내고자 하였고, 그 X, Y축을 이루는 값이 Bit Depth와 Sample Rate 입니다.Sample Rate는 1초동안 지나가는 신호의 샘플수를 이야기하는데, 1초 길이의 사운드를 얼마나 많은 샘플로 나눌 것인가를 의미합니다. Bit Depth는 Sample Rate로 결정된 각 샘플에 담긴 정보의 양을 의미하는데, 16비트는 2의 16제곱인 65,536개의 서로 다른 정보를 뜻합니다. 즉, 63,535개의 구간이 발생한다는 뜻입니다. 따라서, 16 Bit / 44.1kHz는 아날로그 신호를 1초동안 44,100 x 65,535개의 격자로 이루어진 디지털 판에 담고 있다는 말이 됩니다. WHY? 16Bit..

DL/Voice 2024.06.12

[Voice] 디지털 신호(음성) 처리 개념 정리 (2) - 나이퀴스트 이론 / 앨리어싱 현상

인간의 가청주파수 영역인간의 가청주파수 영역은 일반적으로 20Hz에서 20,000Hz (20kHz) 사이입니다. 나이가 들수록 고주파수에 대한 청력이 감소하는 경향이 있습니다. 어린 아이들은 20kHz까지 들을 수 있지만, 성인은 대개 16kHz 이상은 잘 들을 수 없습니다. 사람은 100~10,000Hz의 주파수 범위를 갖는 목소리를 낼 수 있으며, 회화가 가능한 범위는 200~6,000Hz 영역, 대화가 명료한 범위는 500~2,500Hz 영역이라고 할 수 있다. 그러므로 AICC에 전자기기와 대화가 이뤄지는 AICC의 음성은 8000Hz(8kHz)에서도 충분히 커버가 가능하다. 나이퀴스트 이론 (Nyquist-Shannon)Nyquist-Shannon 이론이란, 신호는 그 신호에 포함된 가장 높은 ..

DL/Voice 2024.06.12

[DL] 아인슈타인 합의 표기법(Einstein Summation Notation)

아인슈타인 합의 표기법(Einstein Summation Notation) 정의 아인슈타인 표기법 또는 아인슈타인의 합 규약은 수학의 선형대수학을 물리학에 응용하면서 좌표계에 관한 공식을 다룰 때 유용한 표기 규칙입니다. 이 방법의 핵심은 반복되는 인덱스를 사용하여 합을 나타내고, 이를 통해 더 복잡한 텐서 연산을 단순화하는 것입니다. 수식 특정 index의 집합에 대한 합(시그마)연산을 간결하게 표시하는 방법. Aik⋅Bkj를 수행하면 output dimension은 [I,J] 이 후 I에 대해 summation Einstein Notation(우변) 에서는 다음의 경우 sigma기호를 생략 반복적으로 합산되는데 이용되는 index(k)에 관련된 sigma 최종 결과 값 Cj에 명시되지 않은 index..

DL 2024.04.17

[Voice] 음성 데이터 1D Convolution 설명 및 코드

1. 1D convolution vs 2D convolution CNN(Convolutional Neural Networks)과 1D 컨볼루션의 주요 차이점은 컨볼루션 연산이 적용되는 데이터의 차원성에 있습니다. CNN이라는 용어는 일반적으로 이미지와 같은 2차원 데이터 또는 때에 따라서는 3차원 데이터(예를 들어, 컬러 이미지의 경우 높이, 너비, 컬러 채널)를 처리하는 네트워크를 가리키는 데 사용되며, 이러한 경우에 주로 2D 컨볼루션 연산이 사용됩니다. 1D convolution 반면, 1D 컨볼루션은 시간적 데이터나 시퀀스 데이터와 같은 1차원 데이터를 처리하는 데 적합하며, 시계열 분석이나 텍스트 분석 그리고 오디오 처리 같은 분야에서 주로 사용됩니다. 여기에서 1차원이란 단일 차원의 벡터가 아..

DL/Voice 2024.03.12

[Voice] CNN (Convolutional neural network) 간단 설명

0. 개요 CNN은 주로 이미지 데이터 처리에 강점을 가지고 있지만, 오디오 데이터의 스펙트로그램(시간에 따른 주파수의 분포를 시각화한 것)과 같은 형태로 전처리하면 음성 신호 분석에도 활용할 수 있습니다. CNN으로 음성 데이터 처리를 하기에 앞서 CNN은 무엇인지에 대해 정리하겠습니다. 1. CNN의 역사 LeNet (1998) Yann LeCun에 의해 제안되었습니다. 초기 핸드쓴 문자 인식에 사용됐습니다. CNN의 초기 모델로서 기초적인 컨볼루션 레이어와 풀링 레이어의 구조를 갖고 있습니다. AlexNet (2012) 2012년 ImageNet Large Scale Visual Recognition Challenge에서 우승한 모델입니다. 딥러닝의 인기를 불러일으키는 데 중요한 역할을 했습니다. ..

DL/Voice 2024.03.12

[Voice] 디지털 신호(음성) 처리 개념 정리

0. 기초 용어 Frequency: 주파수 (높이) Amplitude: 진폭 (세기) Phase: 위상 (맵시) 1. 컴퓨터가 소리를 인식하는 방식 연속적인 아날로그 신호를 표본화(Sampling), 양자화(Quantizing), 부호화(Encoding)을 거쳐 이진 디지털 신호(Binary Digital Signal)로 변화시켜 인식하게 됨 표본화(Sampling) 샘플링 단계에서 초당 샘플링 횟수를 정하는데, 이를 Sampling rate라고 함 “1초에 연속적인 시그널을 몇 개의 숫자로 표한할 것인가?” sampling rate가 클수록 즉, 자주 sampling할 수록 원본 데이터와 비슷할 것 → 그러나 그만큼 저장해야 하는 데이터의 양이 늘어나게 됨 sampling rate가 작게 되면 아래와 ..

DL/Voice 2024.03.12

[NLP] Selenium에서 Javascript 명령어 사용하기

1. 개요 파이썬 환경에서 셀레늄을 사용하여 데이터를 수집한 뒤, 전처리를 진행하는 것이 필수적입니다. 그러나, 셀레늄에 요청을 하는 것은 많은 리소스를 소모하여 시간이 오래 걸립니다. 그래서 셀레늄(Selenium)에서 execute_script 메서드를 사용하여 자바스크립트(Javascript) 코드를 실행하여 데이터 수집 전에 전처리를 진행해 비용을 감소시킵니다. 이 방법은 셀레늄의 기본 API만으로는 해결하기 어려운 특정 작업들을 수행할 수 있게 해주고 리소스를 줄여줍니다. 셀레늄에서 페이지 내의 모든 html의 내부 요소의 텍스트 길이를 파악하고 데이터를 수집하려면, for 문으로 매번 셀레늄으로 요청을 해야합니다. 이 때, 1분 정도의 시간이 소요됩니다. script = """ var text..

DL/NLP 2024.03.06