딥러닝이나 머신러닝 모델을 다루다 보면 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..
Penultimate: 마지막(끝)에서 두 번째Penultimate Layer: 제일 마지막 Layer 인 Classifier (Linear + softmax) 바로 직전 layer 간혹 대학원 수업 도중 Penultimate Layer에 대한 내용이 언급되고는 하였는데, 해당 Layer의 의미에 대해 정리해보려 한다. Penultimate Layer 딥러닝 모델에서 Penultimate Layer는 말 그대로 끝에서 두 번째 층을 의미한다. 특히 분류(Classification) 문제에서 이 층은 모델의 최종 표현(feature representation)을 생성하는 데 중요한 역할을 한다. 출력층 바로 앞에 위치하며, 모델이 입력 데이터를 어떻게 이해하고 있는지를 간접적으로 보여주는 층이기도 하다...
더티 체킹(Dirty Checking)더티 체킹(Dirty Checking)이란 객체 지향 프로그래밍 환경에서 객체의 상태가 변경되었는지 감지하여 데이터베이스에 자동 반영하는 메커니즘이다. 즉, 개발자가 직접 SQL UPDATE 명령을 작성하지 않아도, 객체의 속성을 변경한 후 트랜잭션을 커밋하면 자동으로 변경 사항이 DB에 반영되는 기능이다. 주로 JPA(Java Persistence API), Hibernate, SQLAlchemy 등 ORM(Object-Relational Mapping) 프레임워크에서 사용된다. 더티 체킹은 Python 환경에서도 사용되긴 하지만 주로 Spring Boot + JPA(Hibernate) 환경에서 가장 많이 사용되는 패턴 중 하나이다. 실무에서는 더티 체킹을 사용할 ..
파일 디스크립터(File Descriptor)파일 디스크립터(File Descriptor, FD)는 운영체제가 프로세스가 접근할 수 있는 파일, 소켓, 파이프 등을 구분하기 위해 부여하는 정수 값이다. 리눅스나 유닉스 계열 시스템에서 자주 사용되며, 시스템 콜(system call)을 통해 파일이나 네트워크 자원에 접근할 때 핵심적으로 활용된다. 간단히 말해, 프로세스 입장에서 파일 디스크립터는 파일을 가리키는 핸들(handle) 역할을 한다. 이 정수값을 통해 프로세스는 운영체제에게 어떤 파일에 어떤 작업을 수행할지를 요청할 수 있다. 프로세스가 시작되면, 기본적으로 세 개의 파일 디스크립터가 자동으로 열리게 된다.파일 디스크립터 번호이름설명0stdin표준 입력1stdout표준 출력2stderr표준 오..
음성정보처리를 수행할 때 Hidden Markov Model(HMM)에 대해 배우게 된다. 현재는 DNN 기반의 여러 방법들이 사용되고 있지만 레거시라고 그냥 넘어가기엔 큰 영향이 있었던 방법이므로 다시 정리하려한다. HMM을 살펴보기 전 Markov Model이 무엇인지 먼저 살펴보자. Markov ModelMarkov Model은 확률 기반 시퀀스 모델의 시작점으로 볼 수 있다. Markov Model은 시스템이 여러 상태를 가지고 있으며, 각 상태(State) 사이를 이동하는 확률인 전이 확률(Transition Probability)을 마르코프 성질로 정의한 확률 모델을 의미한다. 상태와 전이 확률을 다음과 같이 정의할 수 있다.상태(State): 시스템이 취할 수 있는 다양한 상태. 예) 날씨의..
일반적으로 Softmax 함수는 일반적으로 모델의 최종 출력층(final layer) 에서 사용된다. Softmax를 통해 출력된 값은 각 클래스에 대한 확률 분포로 해석할 수 있으며, 이를 기반으로 Cross Entropy Loss를 계산하여 ground truth와 예측 결과 간의 차이를 측정한다. 이때, Backpropagation 과정에서 Softmax와 Cross-Entropy에 대한 Chain Rule을 적용하여, Loss를 입력(logit)에 대해 미분함으로써 역전파를 시작한다. 우리는 Softmax와 Cross Entropy를 각각 따로 처리하는 대신 결합하여 하나의 연산처럼 다루는 것이 일반적이다. 이렇게 하면 수치적으로 더 안정적이며, 계산이 간편해진다. 특히, Softmax의 출력이..