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

딥러닝31

조기 중지의 이점 Benefits of Early Stopping 손실은 신경망이 오답에 대해 어느 정도 확신을 가졌는지를 측정한다. 정확도는 신경망의 신뢰도와 관계없이 올바른 분류의 비율이다. import matplotlib.pyplot as plt history_dict = history.history acc = history_dict['accuracy'] val_acc = history_dict['val_accuracy'] loss = history_dict['loss'] val_loss = history_dict['val_loss'] epochs = range(1, len(acc) + 1) plt.plot(epochs, loss, 'bo', label='Training loss') plt.plot(epochs, v.. 2024. 2. 13.
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.
회귀 네트워크 전송 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.
임베딩 훈련 (Training Embedding) 임베딩 훈련 (Training Embedding) 레스토랑 리뷰를 긍정 또는 부정에 따라 분류하는 신경망을 만든다. 이 신경망은 여기에 주어진 것과 같은 문자열을 입력으로 받을 수 있다. 이 코드에는 각 리뷰에 대한 긍정 또는 부정 레이블도 포함된다. from numpy import array from tensorflow.keras.preprocessing.text import one_hot from tensorflow.keras.preprocessing.sequence import pad_sequences from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Flatten, Embedding, Dense # .. 2024. 1. 11.
임베딩 전송 (Transferring Embedding) 임베딩 전송 (Transferring Embedding) 이제 간단한 원핫 인코딩을 수행하는 임베딩 룩업을 하드코딩하는 방법을 살펴본다. 원핫 인코딩은 입력된 정수 값 0, 1, 2를 각각 벡터 [1, 0, 0], [0, 1, 0], [0, 0, 1]로 변환한다. 다음 코드는 임베딩 레이어의 무작위 조회 값을 이 원핫 인코딩에서 영감을 얻은 조회 테이블로 대체했다. from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Embedding import numpy as np embedding_lookup = np.array([ [1, 0, 0], [0, 1, 0], [0, 0, 1] ]) model = Sequent.. 2024. 1. 11.
Embedding Layers Embedding Layers 임베딩 레이어는 신경망의 데이터 흐름에 추가 정보를 자동으로 삽입할 수 있는 Keras의 편리한 기능이다. 임베딩 레이어를 사용하면 단어 인덱스 대신 n차원 벡터를 자동으로 삽입할 수 있습. 프로그래머는 자연어 처리 (NLP)와 함께 임베딩 레이어를 사용하는 경우가 많지만, 인덱스 값 자리에 더 긴 벡터를 삽입하고 싶을 때도 이 레이어를 사용할 수 있다. 어떤 면에서 임베딩 레이어는 차원 확장이라고 생각할 수 있다. input_dim : 어휘의 크기는 어느 정도인지 얼마나 많은 카테고리를 인코딩하고 있는지에 대한 이 매개변수는 "조회 테이블"의 항목 수 output_dim : 반환하려는 벡터의 숫자 수 input_length : 입력 특징 벡터에 변환해야 하는 항목의 수 이.. 2024. 1. 11.
ROC 및 AUC를 사용한 다중클래스 분류 ROC 및 AUC를 사용한 다중클래스 분류 신경망의 출력은 다양한 형태로 나타날 수 있다. 그러나 전통적으로 신경망 출력은 일반적으로 다음 중 하나이다. • 이진 분류 (Binary Classification) : 두 가지 가능성 (양수 및 음수) 간의 분류이다. 의료 검사에서는 일반적으로 질병에 걸린 사람인지 (양성), 질병이 없는지 (음성) 여부를 확인한다. • 분류 (Classification) : 2개 이상의 붓꽃 데이터세트 간의 분류 (3방향 분류) • 회귀 (Regression) : 수치 예측 이진 분류 및 ROC 차트 이진 분류는 신경망이 참 / 거짓, 예 / 아니요, 정확 / 틀림, 구매 / 판매라는 두 가지 옵션 중에서 선택해야 할 때 발생한다. 이진 분류를 사용하는 방법을 알아보기 위해.. 2023. 11. 7.
[Data Science] Random UnderSampling Random UnderSampling 무작위 언더샘플링에는 다수 클래스에서 무작위로 예제를 선택하고 훈련 데이터 세트에서 삭제하는 작업이 포함된다. 무작위 언더샘플링에서는 보다 균형 잡힌 분포에 도달할 때까지 다수의 클래스 인스턴스가 무작위로 삭제된다. RandomUnderSampler sampling_strategy 데이터 세트를 샘플링하기 위한 샘플링 정보이다. float인 경우, 리샘플링 후 다수 클래스의 샘플 수에 대한 소수 클래스의 샘플 수의 원하는 비율에 해당한다. 따라서, 비율은 어디가 소수 클래스의 샘플 수이고 가 리샘플링 후 다수 클래스의 샘플 수인지로 표현된다. sampling_strategy는 다음과 같은 방법으로 사용할 수 있다. 'majority' : 다수 클래스만 다시 샘플링 '.. 2023. 10. 4.
728x90
반응형
LIST