가중치 초기화가중치 초기화는 굉장히 중요하다.가중치 초기화는 딥러닝 모델의 학습 속도와 성능에 큰 영향을 미친다. 잘못된 초기화는 활성화 함수에 의해 데이터 분포가 한쪽으로 쏠리거나, 전역 최솟값에 도달하는 데 어려움을 겪게 할 수 있다. 특히, 층이 깊어질수록 데이터가 활성화 함수를 거치며 왜곡되기 때문에 가중치 초기화는 필수적인 과정이다. 가중치 초기화가 필요한 이유(1) 데이터 분포 왜곡 방지딥러닝을 쓰다 보면 레이어가 많아지는데 이게 무슨 의미냐면 활성화 함수를 계속 거쳐가면서 데이터가 뒤로 넘어간다는 뜻이다. 그 말은 활성함수를 시그모이드를 쓰던, ReLU를 쓰던, 하이퍼볼릭 탄젠트를 쓰던, 입출력 관계의 분포를 보면 한쪽으로 쏠리게 되어있다.시그모이드는 입력 신호 범위가 마이너스 무한대부터 무..
전체 글
하다보니 재미있는 AI에 빠져있는 평양냉면7 문의사항: ysoil8811@gmail.com📌 서론딥러닝 모델을 학습할 때, 우리는 모델의 파라미터를 추정하는 과정에서 다양한 손실 함수를 사용한다. 이러한 손실 함수들은 특정 확률 분포에 기반한 Maximum Likelihood Estimation(MLE)을 통해 도출된다.이번 글에서는 MLE와 손실 함수(MSE, Cross-Entropy) 간의 관계를 확률적 관점에서 살펴보고, 손실 함수를 선택할 때 고려해야 할 점을 알아보자.Maximum Likelihood Estimation (MLE)Maximum Likelihood Estimation은 주어진 데이터가 가장 높은 확률로 발생하게 만드는 모델의 파라미터를 추정하는 방법이다. 이때, 모델의 출력은 확률 값을 직접적으로 나타내지 않으며, 확률을 추정하기 위한 파라미터 값을 의미한다.예를 들..
프로젝트 간단 개요이번 프로젝트는 2024년 9월 26일부터 2024년 10월 11일까지 약 2주간 다섯 명이 함께 진행한 MLOps 프로젝트다. 목표는 모델링뿐만 아니라 MLflow와 Airflow를 활용해 자동화된 플로우를 구축하는 것이었다.데이터 설명우리가 사용한 데이터는 Kaggle에서 제공하는 spotify_songs.csv 파일로, 약 30,000곡의 데이터와 음악의 다양한 피처가 포함된 데이터셋이다. 이 데이터를 기반으로 최초 모델을 학습시켜, 군집화(clustering) 알고리즘을 통해 유사한 음악을 추천하는 모델을 개발하기로 했다.Clustering Algorithm 사용추천 시스템에서 보편적으로 사용하는 알고리즘에는 필터링(Filtering)과 군집화(Clustering)가 있는데, 우..
문제 발생mlflow를 로컬에서 실행하려고 mlflow ui 명령어를 치는데 계속[ERROR] Worker (pid:3034) was sent SIGSEGV! 이런 에러가 나와서 port도 변경하고 컴퓨터도 재부팅해봤는데 같은 에러가 발생해서 아예 mlflow를 도커로 띄우려고 했다. 도커로 mlflow를 띄우고 ui 접속까지는 성공했는데 모델을 저장하려고 log_artifact() 함수를 사용하면 해당 코드에서 계속OSError: [Errno 30] Read-only file system: '/mlflow'이런 파일 권한 에러가 발생했다. 기존 코드내가 사용한 Dockerfile은 다음과 같다.FROM continuumio/miniconda3# MLflow 설치RUN pip install mlflow#..
📌 서론이번 글에서는 간단하게 Airflow의 DAGs를 테스트해 보자. Dockerfile과 docker-compose.yml 파일을 이용해서 실행해 보는 걸로 시작해 보자Airflow란?Apache Airflow는 워크플로우 관리 플랫폼이다. 이를 통해 다양한 작업(task)을 자동화하고 관리할 수 있다. 복잡한 데이터 파이프라인, ETL 작업, 머신러닝 모델 학습 및 배포와 같은 반복적인 작업을 자동으로 실행하고 모니터링하는 데 사용된다. Airflow 주요 기능:DAG라는 개념을 통해 작업들을 정의한다.스케줄링: 특정 시간이나 주기에 맞춰 작업을 자동으로 실행한다.의존성 관리: 작업 간의 의존성을 정의하여 특정 작업이 완료된 후에 다른 작업이 실행되도록 한다.모니터링: 각 작업의 상태, 성공 ..
프로젝트를 진행하면서 p-value와 R² 값에 대해서 모호해서 한번 정리해보려고 한다.p-value란?p-value는 주로 통계적 가설 검정에서 사용된다. 변수와 종속 변수 간의 관계를 측정할 때, 그 관계가 우연인지, 실제로 의미 있는 상관관계가 있는지를 판단하는 기준으로 사용된다.p-value가 낮다p-value가 낮다는 것은 귀무가설(변수 간에 상관관계가 없다)을 기각할 가능성이 높다는 의미다. 즉, 변수가 종속 변수에 유의미한 영향을 미칠 가능성이 크다는 뜻이다.일반적으로 0.05 이하를 의미 있는 기준으로 삼는데, 이는 해당 관계가 우연일 가능성이 5% 이하라는 의미다. 즉, 95%의 신뢰로 해당 변수가 종속 변수에 영향을 미친다고 볼 수 있는 것이다. p-value가 높다p-value가 높다..
📌 서론지난 글에서 파인튜닝한 모델을 S3에 업로드하는 것까지 진행했었다. 이제는 S3에서 모델을 다운로드하고, FAST API를 이용해서 모델을 배포하는 과정을 진행해 보자! 그리고 도커로 build 해서 컨테이너형으로 배포까지 해보자!이전글 링크: TinyBERT로 감정 분석 모델 학습부터 AWS S3에 모델 업로드📌 서론이번 글에서는 사전 학습된 모델(TinyBERT)을 허깅페이스에서 가져와서 IMDB 영화 리뷰 데이터셋으로 파인튜닝을 하고, 새로 학습된 모델을 AWS S3에 업로드하는 과정을 정리해볼것이다.IMDByijoon009.tistory.com 지금 진행할 프로젝트의 트리 구조는 다음과 같다. FastAPI 적용모델을 서빙하기 위해 Fast API를 적용해보자. app > app.p..
📌 서론이번 글에서는 사전 학습된 모델(TinyBERT)을 허깅페이스에서 가져와서 IMDB 영화 리뷰 데이터셋으로 파인튜닝을 하고, 새로 학습된 모델을 AWS S3에 업로드하는 과정을 정리해볼것이다.IMDB 데이터셋 로드 및 전처리IMDB 영화 리뷰 데이터셋을 가져오자. 이 데이터셋은 영화 리뷰와 각 리뷰의 감정(sentiment)을 포함하고 있다.## 데이터로드 import pandas as pddata = pd.read_csv('https://raw.githubusercontent.com/laxmimerit/All-CSV-ML-Data-Files-Download/master/IMDB-Dataset.csv')data.head()그리고 데이터셋을 전처리하는데 필요한 라이브러리를 설치해주자 dataset..