1. 순환신경망순환신경망(Recurrent Neural Network, RNN)은 시퀀스 데이터나 순차적인 정보 처리가 필요한 문제에 효과적으로 사용되는 인공신경망의 한 종류입니다. 순차 데이터를 처리하여 정확한 예측을 하려면, 과거의 데이터를 어느 정도 기억하고 있어야 합니다. 그래서 RNN은 일반적인 신경망과 달리, 내부에 순환 구조를 가지고 있어 이전의 입력 정보(숨겨진 상태)를 현재의 계산에 반영할 수 있습니다. 이로 인해 시간에 따른 데이터의 의존성을 학습할 수 있고 자연어 처리와 같이 순서정보가 담긴 데이터나 시계열 데이터를 다루는데 적합한 신경망이라고 할 수 있습니다. 2. 순환신경망 구조2.1. 기본적인 RNN 구조기본적인 RNN 구조는 입력층, 은닉층, 출력층으로 구성됩니다. 은닉층은 시..
공부하고 있는 내용을 정리한 거라 정확하지 않을 수 있습니다. 1. 정규화1.1. 오버피팅(Overfitting)학습 데이터에 대한 오차는 낮지만, 새로운 데이터에 대한 성능이 떨어지는 현상모델이 학습 데이터의 불필요한 편향이나 노이즈까지 학습함으로써 모델의 일반화 성능이 떨어지는 상황을 말함모델이 학습 데이터의 특정 패턴이나 노이즈에 지나치게 적합되어 새로운 데이터에 대한 예측 성능이 저하되는 문제 1.2. 정규화란?정규화(Regularization)는 오버피팅을 방지하고 모델이 학습 데이터에서 유용한 패턴을 학습하고 불필요한 노이즈를 억제하여 일반화 성능을 향상시키는 기법입니다. 1.3. 정규화 방식의 종류들 2. 데이터 증강데이터 증강(Data Augmentation) 기법은 데이터의 핵심 특징은 ..
What is Streamlit?Streamlit은 파이썬 코드를 사용해서 굉장히 빠른 시간 안에 반응형 웹 애플리케이션을 만들 수 있게 해주는 도구입니다. 데이터 사이언스가 중요해지는 요즘, 데이터 사이언스 파이프라인에서 가장 중요한 단계 중 하나는 모델 배포입니다. 여러 가지 옵션들이 있지만 기존에 많이 사용했던 방법은 Flask와 Django였습니다. 그러나 이러한 프레임워크의 문제점은 HTML, CSS 그리고 JavaScript에 대해서 어느 정도의 지식이 필요하다는 것이었습니다. 그래서 Streamlit의 개발자들은 이러한 배경 지식 없이 자신의 머신 러닝 모델과 어떠한 파이썬 프로젝트를 Frontend에 대한 지식 없이 쉽고 빠르게 배포할 수 있도록 개발하였습니다. 주요 특징간단한 사용법: 몇..
기존 경사하강법의 문제점기존의 경사하강법(배치 경사하강법)은 전체 데이터셋을 사용하여 손실 값을 계산하기 때문에, 데이터셋이 클 경우 메모리 부족이나 비효율적인 계산이 발생할 수 있음이러한 문제를 해결하기 위해 전체 데이터셋을 모델에 통과시키는 대신에 랜덤 샘플링한 K개의 샘플로 나누어 모델에 통과시키는 방법을 사용 확률적 경사하강법(SGD)SGD는 데이터셋의 샘플을 하나씩 사용하여 기울기를 계산하고 파라미터를 업데이트각 샘플을 순차적으로 처리하며, 기울기의 변동성이 크지만 계산 비용이 적고 빠르게 수렴비복원 추출을 통해 각 Epoch마다 다른 샘플을 선택Pytorch에서의 구현# batch_size=1, shuffle=Truetrain_dataloader = torch.utils.data.DataLoa..
1. 하이퍼파라미터모델의 가중치 파라미터(Weight Parameter)는 보통 경사하강법을 통해 데이터를 기반으로 자동으로 최적화하이퍼파라미터는 모델의 성능에 영향을 끼치지만 자동으로 최적화되지 않는 파라미터대표적인 하이퍼파라미터는 신경망의 깊이와 너비, 학습률, 활성함수의 종류 등이 있음성능에 큰 영향을 주는 하이퍼파라미터들을 위주로 먼저 튜닝하여 최소한의 실험을 통해 최고의 성능을 이끌어 내야 함 1.1. 학습률대표적인 하이퍼파라미터학습률의 설정에 따라 모델의 학습 경향이 매우 달라질 수 있음학습 초반에는 큰 학습률이 선호되고 학습 후반에는 작은 학습률이 선호됨이를 응용하여 각 가중치 파라미터별 학습 진행 정도에 따라 학습률을 다르게 자동 적용할 수 있음 2. 최적화ML 모델의 궁극적인 목표는 손실..
IntroductionOllamaOllama 는 다양한 대규모 언어 모델(LLM)을 개인의 컴퓨터에서 직접 실행할 수 있도록 도와주는 오픈 소스 플랫폼. 복잡한 설정 없이 간단하게 사용할 수 있으며, Llama, Alpaca 등 다양한 LLM 모델을 지원. Open WebUIOpen WebUI는 Llama와 같은 대규모 언어 모델(LLM)을 웹 기반 인터페이스를 통해 사용할 수 있도록 해주는 오픈 소스 프로젝트. ChatGPT를 웹 브라우저에서 직접 사용하듯이, Open WebUI를 통해 Ollama 모델과 자유롭게 대화하고 다양한 기능을 활용할 수 있음. Deployment두 개의 컨테이너 배포1. LLM을 실제로 구동할 Ollama Server2. Ollama Server를 Web과 통합할 Open ..