본문 바로가기
728x90
반응형
SMALL

전체 글1508

Transfer Learning for NLP with Keras Transfer Learning for NLP with Keras 일반적으로 자연어 처리 (NLP)는 전이 학습을 사용한다. 단어 임베딩은 네트워크 레이어가 단어를 벡터에 매핑하는 NLP에서 전이 학습의 일반적인 수단다. 이러한 임베딩을 학습하기 위해 대규모 텍스트 말뭉치에 대해 신경망을 훈련시킨다. 단어 임베딩을 사용하여 감정 분석을 수행한다. 특히, 텍스트 샘플이 긍정적인 어조로 말하고 있는지 부정적인 어조로 말하고 있는지 분류해 본다. 미리 학습된 모델을 TensorFlow에 쉽게 로드할 수 있는 TensorFlow Hub를 사용한다. 다음 명령을 사용하여 TensorHub를 설치한다. !pip install tensorflow_hub 또한, 다음 명령으로 설치할 수 있는 TensorFlow 데이터.. 2024. 2. 13.
네트워크 생성 및 가중치 전송 Create a Network and Transfer Weights 전송된 가중치로 새로운 신경망을 만든다. 이미지넷에 대해 학습된 가중치가 포함된 Xception 신경망에서 가중치를 전송한다. 기존 Xception 신경망에 keras.applications을 로드한다. base_model의 로딩에는 상당히 많은 작업이 진행된다. 기본 Xception 신경망은 299x299의 이미지를 받아들인다. 표준화한 150x150을 사용해야 하지만 그 차이를 극복하는 것이 비교적 쉽다는 것이 밝혀졌다. 컨볼루션 신경망은 스캔할 때 이미지 텐서에서 커널을 이동한다. Keras는 커널이 스캔하는 이미지가 아니라 레이어의 커널 크기에 따라 가중치의 수를 정의한다. 따라서, 이전 입력 레이어를 폐기하고 원하는 이미지 크기.. 2024. 2. 13.
Keras Transfer Learning for Computer Vision Keras Transfer Learning for Computer Vision Keras용으로 널리 사용되는 몇 가지 사전 훈련된 신경망을 살펴 본다. 특히, 다음 두 사이트는 프로젝트에 사용할 사전 학습된 모델을 찾는 데 좋은 출발점이 될 수 있다. • TensorFlow Model Zoo • Papers with Code Keras에는 사전 학습된 여러 모델에 대한 기본 지원이 포함되어 있다. The Kaggle Cats vs. Dogs Dataset 컴퓨터 비전을 위해 사전 학습된 모델을 얻고 출력 레이어만 학습하는 방법이 존재한다. 또한, 출력 레이어를 훈련한 후에는 낮은 학습률을 적용하여 모든 가중치를 훈련함으로써 전체 네트워크를 미세 조정한다. 고양이와 개 데이터 세트는 고전적인 Kaggle .. 2024. 2. 13.
회귀 네트워크 전송 Transfering to a Regression Network Iris 비용 데이터 세트에는 원래 Iris 데이터 세트에 포함된 예측 변수인 꽃받침 너비, 꽃받침 길이, 꽃잎 너비 및 꽃잎 길이에 부합하는 꽃 샘플에 대한 측정값이 있다. 여기에 비용 데이터 세트가 표시된다. import pandas as pd df_cost = pd.read_csv("https://data.heatonresearch.com/data/t81-558/iris_cost.csv", na_values=['NA', '?']) df_cost 전이 학습이 효과적이려면 새로 훈련된 신경망의 입력이 처음 전송한 신경망에 가장 가깝게 일치해야 한다. 이 최종 분류를 수행하는 소프트맥스 활성화 함수가 포함된 마지막 출력 계층을 제거한다. 비.. 2024. 2. 13.
전이 학습 (Transfer Learning) 전이 학습 (Transfer Learning) 전이 학습은 신경망을 처음부터 훈련하는 대신 미리 로드된 가중치 세트로 훈련을 시작한다. 일반적으로 미리 훈련된 신경망의 최상위 레이어를 제거하고 새로운 최상위 레이어로 다시 훈련한다. 이전 신경망의 레이어는 훈련으로 인해 가중치가 변경되지 않도록 잠긴다. 새로 추가된 레이어만 학습된다. 대규모 이미지 데이터 세트에 대한 신경망을 훈련하려면 많은 컴퓨팅 성능이 필요할 수 있다. Google, Facebook, Microsoft 및 기타 기술 기업들은 다양한 애플리케이션을 위한 고품질 신경망을 훈련하기 위해 GPU 어레이를 활용하고 있다. 이러한 가중치를 신경망으로 전송하면 상당한 노력과 계산 시간을 절약할 수 있다. 사전 학습된 모델이 구현하려는 애플리케이션.. 2024. 2. 13.
[Resampling Methods] 무작위 오버샘플링에서 수축 요인 (shrinkage factor)의 영향 무작위 오버샘플링에서 수축 요인 (shrinkage factor)의 영향 RandomOverSampler를 사용하여 smoothed bootstrap (부트스트랩)을 생성하는 데 사용된 수축 계수의 효과를 보여준다. 먼저, 몇 개의 샘플만으로 분류 데이터 집합을 생성한다. 클래스 간의 비율은 불균형하다. import seaborn as sns from collections import Counter import matplotlib.pyplot as plt from sklearn.datasets import make_classification sns.set_context("poster") X, y = make_classification( n_samples=100, n_features=2, n_redunda.. 2024. 2. 3.
리샘플링 방법 (Resampling Methods) 리샘플링 방법 (Resampling Methods) 리샘플링 방법은 현대 통계학에서 없어서는 안 될 도구이다. 이 방법은 훈련 세트에서 샘플을 반복적으로 추출하고 각 샘플에서 관심 있는 모델을 재추출하여 추정된 모델에 대한 추가 정보를 얻는다. 예를 들어, 선형 회귀식의 변동성을 추정하기 위해 훈련 데이터에서 여러 샘플을 반복적으로 추출하고 각각의 새로운 샘플에 선형 회귀식을 적용한 다음 결과값이 어느 정도 다른지 조사할 수 있다. 이러한 접근 방식을 사용하면 원래 학습 샘플을 사용하여 모델을 한 번만 프팅하면 얻을 수 없는 정보를 얻을 수 있다. 리샘플링 접근 방식은 훈련 데이터의 다른 하위 집합을 사용하여 동일한 통계적 방법을 여러 번 수행해야 하므로 계산 비용이 많이 들 수 있다. 그러나 최근 컴퓨.. 2024. 1. 30.
[Data Engineering] 데이터 파이프라인 빌드 데이터 파이프라인 빌드 Docker 및 PostgreSQL을 활용하여 ETL (추출, 변환, 로드) 프로세스를 위해 여러 개의 컨테이너를 실행시키는 어플리케이션을 정의하기 위한 docker-compose.yaml 파일을 생성한다. docker-compose.yaml 여러 Docker 컨테이너를 조정하는 데 사용되는 Docker Compose에 대한 구성이 포함되어 있다. 이는 세 가지 서비스를 정의한다. version: '3' services: source_postgres: image: postgres:15 ports: - "5433:5432" networks: - etl_network environment: POSTGRES_DB: source_db POSTGRES_USER: postgres POSTGR.. 2024. 1. 23.
[Data Engineering] Docker Compose Docker Compose Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 공유하는 데 도움이 되는 도구이다. Compose를 사용하면 YAML 파일을 생성하여 서비스를 정의할 수 있으며 단일 명령으로 모든 것을 가동하거나 해체할 수 있다. Compose 사용의 가장 큰 장점은 어플리케이션 스택을 파일로 정의하고 이를 프로젝트 저장소의 루트에 보관하며 (이제는 버전 제어됨) 다른 사람이 프로젝트에 쉽게 기여할 수 있도록 할 수 있다는 것이다. 누군가는 저장소를 복제하고 Compose를 사용하여 앱을 시작하기만 하면 된다. Compose 파일 생성 getting-started-app 디렉터리에 compose.yaml 파일을 만든다. 이제, compose.yaml 파일에서 서비스를 정의한다.. 2024. 1. 23.
[Data Engineering] 다중 컨테이너 앱 다중 컨테이너 앱 어플리케이션 스택에 MySQL을 추가하게 된다. 여기서 MySQL은 어디에서 실행되는지, 동일한 컨테이너에 설치하거나 별도로 실행하는지의 의문이 생긴다. 일반적으로 각 컨테이너는 한 가지 일을 잘 수행해야 한다. 컨테이너를 별도로 실행하는 몇 가지 이유는 다음과 같다. API와 프런트엔드를 데이터베이스와 다르게 확장해야 할 가능성이 높다. 별도의 컨테이너를 사용하면 버전을 별도로 버전화하고 업데이트할 수 있다. 로컬에서 데이터베이스용 컨테이너를 사용할 수 있지만 프로덕션 환경에서는 데이터베이스용으로 관리형 서비스를 사용할 수 있다. 그러면 데이터베이스 엔진을 앱과 함께 제공하고 싶지 않을 것이다. 여러 프로세스를 실행하려면 프로세스 관리자 (컨테이너는 하나의 프로세스만 시작)가 필요하므.. 2024. 1. 23.
728x90
반응형
LIST