Machine Learning
Prophet 라이브러리를 사용한 Time Series(시계열) 데이터 예측
1. Prophet 라이브러리 페이스북이 개발한 일변량(하나의 변수) 시계열 예측을 위한 오픈소스 라이브러리 경향성(Trends), 계절성(seosonality), 휴일(holidays)을 반영하는 모델이다. 계절적 효과가 강하고 여러 시즌의 과거 데이터가 있는 시계열에서 가장 잘 작동한다. 정확도가 높고 빠르며 직관적인 파라미터로 모델 수정이 용이하다. 2. Prophet 설치 pip install prophet 과거에 쓰여진 글들을 보면 fbprophet이라고 나와있을텐데, 현재는 prophet으로 이름이 바뀌었다. 3. 데이터 준비 이 데이터를 이용해 아보카도 가격의 시계열 예측을 진행해 보겠다. import pandas as pd df = pd.read_csv('avocado.csv', index..
Tensorflow - 콜백을 이용해 로그와 모델 저장하기
1. ModelCheckpoint from keras.callbacks import ModelCheckpoint ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1) 에포크가 끝날 때마다 모델을 저장하는 콜백 filepath: string, 모델 파일을 저장할 경로. monitor: 기록할 항목. verbose: 상세 정보 표시 정도, 0 혹은 1. save_best_only: True인 경우 monitor 값을 기준으로 가장 좋았던 모델만 저장합니다. save_weights_only: True인 경우 모델의 가중치만 저장되고 (mo..
Tensorflow - Transfer Learning 예제
이전 포스트에서 transfer learning에 대한 간략한 개념을 알아봤으니 직접 코드로 실습해보자. MobileNetV2 로 transfer learning해서 개와 고양이 이미지를 분류하려 한다. 이전 포스트가 궁금하면? https://donghyeok90.tistory.com/170 Transfer Learning(전이 학습) 과 Fine Tuning(미세 조정) 1. Transfer Learning (전이 학습) 전이 학습(Transfer Learning)은 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용하는 것을 의미한다. 쉽게 donghyeok90.tistory.com MobileNetV2 모바일이나, 임베디드에서도 실시간으로 작동할..
Transfer Learning(전이 학습) 과 Fine Tuning(미세 조정)
1. Transfer Learning (전이 학습) 전이 학습(Transfer Learning)은 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용하는 것을 의미한다. 쉽게 말해서 학습이 잘 된 pre-trained model을 가져와서, 나의 문제에 맞게 활용하는 것이다. 아래 링크에서 Tensorflow에서 제공하는 pre-trained 모델들을 확인할 수 있다. https://www.tensorflow.org/api_docs/python/tf/keras/applications?hl=ko Module: tf.keras.applications | TensorFlow v2.11.0 Keras Applications are premade archite..
파일을 Train/Test 디렉토리로 나눠서 저장하는 방법
import random import tensorflow as tf from tensorflow.keras.optimizers import RMSprop from tensorflow.keras.preprocessing.image import ImageDataGenerator from shutil import copyfile 수집한 이미지 파일들을, ImageDataGenerator를 이용해 학습데이터(numpy array)로 변환하기 위해, 그 형식에 맞게 디렉토리를 만들고 저장하는 법을 알아보자. 1. 연습용 데이터 다운로드 후 압축해제 # 연습용 이미지파일 # /tmp 경로에 압축파일을 다운로드 받고 압축 푼다. import zipfile !wget --no-check-certificate \ 'ht..
Tensorflow - ImageDataGenerator를 이용한 이미지 전처리와 이미지 증강
from tensorflow.keras.preprocessing.image import ImageDataGenerator 1. 이미지 전처리 가지고 있는 이미지 파일을 인공지능에서 학습시키려면 numpy array 형태로 바꿔줘야 한다. 텐서플로우의 ImageDataGenerator 클래스의 flow_from_directory 메소드를 이용하면 쉽게 변환 할 수 있다. # train 데이터용 인스턴스 호출 train_datagen = ImageDataGenerator(rescale= 1/255.0) # test 데이터용 인스턴스 호출 test_datagen = ImageDataGenerator(rescale= 1/255.0) train_generator = train_datagen.flow_from_di..
Tensorflow - CNN 모델 예제
이미지를 보고 인간인지 말인지 분류하는 모델을 만들어보려 한다. 1. 연습용 이미지 다운로드 !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/horse-or-human.zip \ -O /tmp/horse-or-human.zip !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/validation-horse-or-human.zip \ -O /tmp/validation-horse-or-human.zip 2. 압축 풀기 import zipfile # 파일을 불러옴 file..
Convolution Neural Network(CNN, 합성곱 신경망) 개념
1. Convolution Neural Network (CNN) 필터링 기법을 인공신경망에 적용(Convolution 작업)하여 이미지를 효과적으로 처리 할 수 있는 기법 행렬로 표현된 필터의 각 요소가 데이터 처리에 적합하도록 자동으로 학습되는 과정을 통해 이미지를 분류하는 기법 2. 심층신경망(DNN), 합성곱신경망(CNN)의 차이 심층 신경망 (DNN) 1차원의 데이터로 학습 다차원일 경우 flatten 작업을 통해 1차원으로 변경, 이미지의 경우 공간적/지역적 정보가 손실 추상화 과정 없이 바로 연산 과정으로 넘어가기 때문에 학습 시간과 효율성이 저하 합성곱 신경망 (CNN) 그대로의 데이터로 학습 공간적/지역적 정보 유지 이미지 전체보다는 부분을 보는 것, 이미지의 한 픽셀과 주변 픽셀들의 연관..