본문 바로가기

반응형

머신러닝공부

(45)
Cats and dogs data transfer learning example script cats and dogs 데이터 set은 CNN architecutre를 구축하고 평가하기 위한 일종의 Hello World 같은 학습 데이터라고 할 수 있다. 딥러닝 학습을 위해 총 2,000개의 학습 데이터와 1,000개의 테스트 데이터로 이루어져 있다. CIFAR-10의 데이터에 비해서 절대적으로 개수가 부족하다. Training Data -> Xeption(pre-trained feature extractor) -> User-Defined Classifier -> output [1] 학습 데이터 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.applications import X..
전이학습 Transfer Learning 간단 정리 개념 및 필요성 CNN 모델의 품질을 높이기 위해서는 즉, 임의의 데이터에 대해서 정확도는 높이고 오버피팅은 줄이기 위해서는 기본적으로 많은 양의 데이터를 이용하여 학습해야한다. 그러나 많은 학습 데이터를 확보하려면 많은 비용과 시간이 소모되기 때문에 현실적으로 쉽지않은데, 이러한 데이터 부족 어려움을 해결하기 위해 등장한것이 전이학습이다. 전이학습(Transfer Learning)이란 아주 큰 데이터 set, 즉 21,841 부류에 대해서 총 1419만7122장의 이미지로 구성되어 있는 ImageNet 데이터를 사용해서 학습된 모델의 가중치를 가져와서 우리가 해결하려는 문제에 맞게 가중치를 보정해서 사용하는 것을 의미한다. 이 때 큰 데이터 set을 사용해서 훈련된 모델을 사건 학습 모델(pre-tra..
Functional API 사용시 혼동하는 경우 간단 정리 Functional API에서 동일한 의미를 갖지만, 1 Line으로 표현할 수 있는 코드를 2 Line으로 표현한 경우가 있다. 이런 경우 일반 함수를 호출하는 것으로 혼동할 수 있다. input_ = Input(shape=(28, 28, 1)) ### 일반 함수로 착각 x = Conv2D(32, 3, activation = 'relu') x = x(input_) ### -> 동일 코드 x = Conv2D(32, 3, activation='relu')(input_) x = Conv2D(64, 3, activation='relu')(x) x = MaxPool2D(pool_size=(2,2))(x) x = Dropout(0.25)(x) x = Flatten()(x) x = Dense(128, activat..
Functional API with CNN Example script [1] MNIST 데이터 불러오기 및 정규화 import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.layers import Input, Conv2D, MaxPool2D from tensorflow.keras.layers import Flatten, Dense, Dropout from tensorflow.keras.models import Model (x_train, y_train), (x_test, y_test) = mnist.load_data() # 데이터 불러오기 x_train = x_train.reshape(-1, 28, 28, 1) # 텐서로 변환 (높이, 너비, 채널) x_test = x_..
Functional API 모델, 간단 요약 정리 Fucntion API 모델의 필요성 Sequential API 방식은 입력부터 출력까지 일직선으로 연결되어 있어 직관적이고 편리한 장점이 있으나, 여러개의 층을 공유하거나 다양한 종류의 입력과 출력을 사용해서 복잡한 모델을 만드는 일에는, 일직선 구조로 인해 한계가 있다. 두 모델은 모델 구축 부분을 제외한 compile, fit, evaluage, predict 부분은 모두 동일하다. Functional API 구축 instructure 1. 입력 데이터 shape을 tf.keras.layers.Input() 함수의 인자로 넣어주어 입력층을 정의 2. 이전 층 출력 값을 다음 층 함수의 입력 값으로 사용한 후에, 3. tf.keras.model.Model() 함수에 입력과 출력을 넣어주어 모델 구축을..
GRU(Gated Recurrent Unit) 게이트 순환 유닛 간단정리 GRU는 LSTM과 구조가 비슷하지만, 더 간단한 구조여서 계산상으로 이점이 있다. GRU는 LSTM에서 사용되는 cell state가 없는 대신에 GRU 출력 H 값이 그 역할을 대신한다. GRU 내부 구조 또한 Reset Gate, Update Gate 두 가지만 존재하며, 이때 사용되는 활성화 함수는 sigmoid 2번과 tanh 1번만 사용되기 때문에 LSTM에 비해 연산량을 줄일 수 있다. LSTM구조의 cell state 역할 -> GRU 계층 출력 값 H 수행 LSTM구조의 활성화 함수 5개 -> GRU 구조의 활성화 함수 3개 Reset Gate Rt Reset Gate는 과거의 정보를 얼마나 잊을지(또는 기억할지) 결정하는 게이트이다. 즉, 현 시점의 데이터 Xt와 과거의 은닉층 값 데이..
LSTM을 활용한 삼성 주가 예측 스크립트 삼성전자 주가 데이터는 yahoo finance에서 csv파일로 다운받아서 활용할 수 있다. 개발과정 - 시계열 데이터 분석 및 예측 1. 데이터 로드 및 분포 확인 df = pd.read_csv(), df.describe(), df.hist(), plot() 등 2. 데이터 전처리 outlier / missing value 확인 후 대체(또는 삭제) 처리 데이터 정규화(normalization) / 표준화(standardization) 딥러닝을 위한 feature column / label column 정의 3. 데이터 생성 window size 설정 후 feature / label 시계열 데이터 생성 학습 데이터 생성. 이때 입력 데이터는 (batch_size, time_steps, input_dim..
LSTM 개념, 구조, 동작원리 간단 정리(Long Short-Term memory) SimpleRNN의 단점 - 장기 의존성 문제(the problems of long-term dependency) 장기 의존성 문제는 입력 데이터가 많아질수록 SimpleRNN 레이어, 즉 은닉층에서 보관하는 과거의 정보가 마지막 레이어까지 충분히 전달되지 못하는 현상을 의미한 -> tanh출력값 범위는 -1

반응형