내가 까먹을까봐 만든 블로그

전체 글

Data Science/SR & VC

Spectrum(스펙트럼)과 Cepstrum(켑스트럼)

음성 인식 분야를 공부하며 Spectrum(스펙트럼)과 Cepstrum(켑스트럼)이라는 개념을 자주 접하게 된다. 두 개념은 모두 시간 영역(time domain)의 신호를 주파수 기반으로 분석하는 도구이지만, 처리 방식과 해석의 초점이 다르다.Spectrum: 신호의 주파수 구성 성분을 보는 방법Cepstrum: 주파수 구조 내부의 반복 패턴을 분석하는 방법이 글에서는 두 개념을 쉽게 비교하고, 음성 신호 처리에서 어떤 역할을 수행하는지 설명하려 한다. Spectrum(스펙트럼)Spectrum은 신호의 주파수 성분을 나타낸 것이다. 즉, 어떤 신호가 어떤 주파수로 구성되어 있는지를 보여주는 것이다. 시간 영역의 신호 \( x(t) \) 또는 이산 신호 \( x[n] \)에 대해, 푸리에 변환(Fouri..

Languages/Java(Spring Boot)

[Spring Boot] Transaction과 @Transactional

Spring Boot를 사용하면 Transactional이라는 어노테이션을 자주 접하게 된다. @Transactional은 스프링 프레임워크에서 트랜잭션을 선언적으로 처리하기 위한 어노테이션이다. 이 어노테이션을 메서드 또는 클래스에 붙이면, 해당 범위 내에서 실행되는 로직은 트랜잭션으로 감싸지며, 성공하면 자동 커밋되고, 예외 발생 시 자동 롤백되는 기능을 수행한다. Transactional 어노테이션의 역할을 알기 전, Transaction이 무엇인지 먼저 짚고 넘어가자. Transaction(트랜잭션)Transaction(트랜잭션)은 하나의 작업 단위(Unit of Work)를 구성하는 여러 개의 연산 집합(예: SELECT, INSERT, UPDATE, DELETE)으로, 모두 성공하거나 모두 실..

Languages/Python

[Pytorch] Broadcasting: 차원이 다를 때 연산

Pytorch를 이용하여 모델을 구현하다 보면 텐서 간의 덧셈, 곱셈 등 연산을 수행할 때 차원이 서로 다른 경우를 자주 만나게 된다. 그런데도 에러 없이 연산이 가능한 이유는 바로 Broadcasting 때문이다. Broadcasting은 Numpy에서 도입된 개념으로, PyTorch에서도 동일하게 적용된다. 이 기능 덕분에 복잡한 차원 조작 없이도 깔끔한 수식 구현이 가능하다.Broadcasting이란 서로 shape가 다른 두 tensor 간의 연산에서 작은 텐서의 shape을 자동으로 확장하여 큰 텐서와 연산이 가능하도록 맞춰주는 암시적(implicit) 규칙이다. 이는 개발자가 명시적으로 .expand()나 .repeat()를 호출하지 않아도 자동으로 연산되게 도와주는 기능이다. 아래의 조건이 ..

Data Science/Data Analysis

Logit(로짓)과 Odds(오즈)

딥러닝이나 머신러닝 모델을 다루다 보면 Logit(로짓)과 Odds(오즈)라는 용어를 자주 접하게 된다. 이 두 개념은 특히 분류 문제에서 모델의 예측 결과를 해석하거나 후처리하는 데 중요한 역할을 한다. 이 글에서는 logits와 odds의 정의부터 계산 방식, 그리고 실전 활용 예까지 정리하였다. Odds(오즈)Odds(오즈)는 어떤 사건이 일어날 확률 대비 일어나지 않을 확률의 비율이다. 확률과는 다른 개념으로, 주로 통계학과 로지스틱 회귀에서 사용된다. 정의는 다음과 같다.$$ p⁡(x) = wx+b $$$$ \text{odds} =\frac{p(x)}{1-p(x)} $$ 여기서 \( p \)는 특정 사건이 발생할 확률이다. 예제 1\( p = 0.8 \)이라면 odds는 다음과 같다.$$ \te..

Data Science/ML & DL

Penultimate Layer

Penultimate: 마지막(끝)에서 두 번째Penultimate Layer: 제일 마지막 Layer 인 Classifier (Linear + softmax) 바로 직전 layer 간혹 대학원 수업 도중 Penultimate Layer에 대한 내용이 언급되고는 하였는데, 해당 Layer의 의미에 대해 정리해보려 한다. Penultimate Layer 딥러닝 모델에서 Penultimate Layer는 말 그대로 끝에서 두 번째 층을 의미한다. 특히 분류(Classification) 문제에서 이 층은 모델의 최종 표현(feature representation)을 생성하는 데 중요한 역할을 한다. 출력층 바로 앞에 위치하며, 모델이 입력 데이터를 어떻게 이해하고 있는지를 간접적으로 보여주는 층이기도 하다...

Languages/Java(Spring Boot)

[Spring Boot] 더티 체킹(Dirty Checking)과 JPA의 Entity Lifecycle

더티 체킹(Dirty Checking)더티 체킹(Dirty Checking)이란 객체 지향 프로그래밍 환경에서 객체의 상태가 변경되었는지 감지하여 데이터베이스에 자동 반영하는 메커니즘이다. 즉, 개발자가 직접 SQL UPDATE 명령을 작성하지 않아도, 객체의 속성을 변경한 후 트랜잭션을 커밋하면 자동으로 변경 사항이 DB에 반영되는 기능이다. 주로 JPA(Java Persistence API), Hibernate, SQLAlchemy 등 ORM(Object-Relational Mapping) 프레임워크에서 사용된다. 더티 체킹은 Python 환경에서도 사용되긴 하지만 주로 Spring Boot + JPA(Hibernate) 환경에서 가장 많이 사용되는 패턴 중 하나이다. 실무에서는 더티 체킹을 사용할 ..

AlienCoder
외부 저장소
loading