Tensorflow

    XG Boosting

    Boosting? 여러 개의 약한 Decision Tree를 조합해서 사용하는 Ensemble 기법 중 하나이다. 즉. 약한 예측 모형들의 학습 에러에 가중치를 두고. 순차적으로 다음 학습 모델에 반영하여 강한 예측모형을 만드는 것이다. XGBoost란 XGBoost는 Extreme Gradient Boosting의 약자. Boosting 기법을 이용하여 구현한 알고리즘은 Gradient Boost 가 대표적인데 이 알고리즘을 병렬 학습이 지원되도록 구현한 라이브러리가 XGBoost 이다. Regression. Classification 문제를 모두 지원하며. 성능과 자원 효율이 좋아서. 인기 있게 사용되는 알고리즘이다. XG Boost의 장점. GBM대비빠른수행시간 병렬 처리로 학습. 분류 속도가 빠르..

    Transfer Learning / Fine Tuning

    Transfer Learning Transfer Learning(전이학습)은 높은 정확도를 비교적 짧은 시간 내에 달성할 수 있기 때문에 컴퓨터 비전 분야에서 유명한 방법론 중 하나다. 전이학습을 이용하면, 이미 학습한 문제와 다른 문제를 풀 때에도, 밑바닥에서부터 모델을 쌓아올리는 대신에 이미 학습되어있는 패턴들을 활용해서 적용시킬 수 있다. 컴퓨터 비전에서 말하는 전이학습은 주로 사전학습 된 모델 (pre-trained model) 을 이용하는 것을 뜻한다. 사전학습 된 모델이란, 내가 풀고자 하는 문제와 비슷하면서 사이즈가 큰 데이터로 이미 학습이 되어 있는 모델이다. 그런 큰 데이터로 모델을 학습시키는 것은 오랜 시간과 연산량이 필요하므로, 관례적으로는 이미 공개되어있는 모델들을 import해서 ..

    Model Checkpoint와 CSVLogger

    Model Checkpoint와 CSVLogger는 모두 콜백함수중 하나이다. Model Checkpoint - 모델을 저장할때 사용되는 콜백함수. from tensorflow.keras.callbacks import ModelCheckpoint cp = ModelCheckpoint(filepath=CHECKPOINT_PATH, monitor='val_accuracy', save_best_only = True, verbose = 1) 인자 설명 filepath - 모델을 저장할 경로를 입력함. 추가 설명으로 만약 monitor가 val_loss일 때, 모델 경로를 '{epoch:02d}-{val_loss:.5f}.h5' 라고 입력하면, 에폭-해당에폭에서의 val_loss.h5로 모델이 저장됨. 예: 01..

    판다스 Date Time Index #일자 / 시간 데이터 처리법

    Pandas에서는 일자와 시간을 처리하기 위한 일자시간타입(datetime64) 데이터를 제공하고있고, 이를 통해 여러 데이터를 한꺼번에 다룰 수 있다. Date Time Index 사용법. import pandas as pd df = pd.DataFrame({'날짜': ['2021-01-10 07:10:00', '2021-02-15 08:20:30', '2021-03-20 09:30:00', '2021-04-25 10:40:30', '2021-05-27 11:50:00', '2021-06-21 12:00:30', '2021-07-01 13:10:00', '2021-08-16 14:50:30']}) # pandas를 import한 뒤 데이터프레임을 만들어준다. 위의 데이터 프레임의 '날짜' 컬럼을 보면 ..

    타임시리즈 데이터 분석을 위한 Prophet

    prophet은 페이스북에서 만든 높은 시계열 예측 라이브러리이다. prophet은 정확도가 높고 빠르며 직관적인 파라미터로 모델의 수정이 용이하다는 장점을 갖고있다. prophet을 사용하기 위해서는 데이터의 ds(datestamp)와, 수치로 작성된 데이터자료(y)가 필요하다. 어떤 상품의 일정 기간 동안의 가격을 알고 있다면 미래의 가격 또한 예측 할 수 있는 것이다. Prophet 사용법 데이터프레임의 date 컬럼을 'ds'로, 수치의 값을 y로 설정한 뒤 가격을 예측한다. m = Prophet() #프로펫 변수설정 m.fit(avocado_prophet_df) #프로펫을 학습시킨다. future=m.make_future_dataframe(periods=365) # 365일치를 예측할 것. fo..

    이미지 데이터 제너레이터가 하는 역할과 코드

    CNN은 영상의 2차원 변환인 회전(Rotation), 크기(Scale), 밀림(Shearing), 반사(Reflection), 이동(Translation)과 같은 2차원 변환인 Affine Transform에 취약하여 변환된 사진 또는 영상을 다른 자료로 인식한다. ImageDataGenerator는 Noise삽입, 색상, 밝기 변형 등을 활용하여 실시간으로 데이터 증강을 사용하고, 텐서 이미지 데이터 배치를 생성하여 데이터 학습의 정확도를 높이는 역할을 한다. #ImageDataGenerator의 호출 from keras.preprocessing.image import ImageDataGenerator #이미지 증강을 위한 옵션 사용 TRAINING_DIR = '/tmp/cats-v-dogs/trai..

    callback 함수

    callback 함수란? 함수모델을 더 이상 학습을 못할 경우(loss, metric등의 개선이 없을 경우)나 오버피팅을 방지하기 위해 지정된 값에 도달하면 학습 도중 미리 학습을 종료시키는 함수. class myCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs = {}): if(logs.get('accuracy')>0.90): print('\n정확도가 90% 이상이면 학습을 멈춥니다.') self.model.stop_training = True my_cb = myCallback() mycallback을 함수로 지정하여 사용. model.fit(train_generator, steps_per_epoch=8, epochs =..

    Learning Curve // 학습곡선

    Learning Curve 학습 곡선은 특정 기술 또는 지식을 실제 필요한 업무와 같은 환경에서 효율적으로 사용하기 위해 드는 학습 비용을 의미하기도 하며 특정 기술을 습득할 때에 처음에는 학습 효과가 더디다가 어느 정도 이해를 하고 나면 빠르게 습득하고 후에는 다시 더뎌지는 곡선을 나타내기도 한다 - 위키백과 학습 곡선은 보통 Train set과 Validation(test) set에 대해서 각각 loss와 metric을 훈련 중간중간 마다 체크한 곡선을 말한다. 학습곡선을 사용하면 loss와 metrics의 수치를 숫자와 시각적으로 확인할 수 있으며, 모델이 underfit되는지 overfit되는지 바로 알 수 있다. 학습 곡선 사용 방법 Train set과 Validation set의 loss가 같..

    딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드

    loss 함수란? 손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 회귀(regression)에서 사용한다. 모델의 성능을 올리기 위해 loss함수를 임의적으로 변형할 수 있다. 예시 model.compile(loss='mean_squared_error', optimizer='sgd') 손실함수의 종류 Mean_Squared_error 예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다. RMSE(Root Mean Squared Error) MSE에 루트(..