TensorFlow

    [TF Hub] 전이학습 Transfer Learning

    [TF Hub] 전이학습 Transfer Learning

    전이 학습(Transfer Learning)은 미리 훈련된 모델을 다른 작업에 사용하기 위해 추가적인 학습을 시키는 것이다. 이때 훈련된 모델은 데이터에서 유의미한 특징(feature)을 뽑아내기 위한 특징 추출기(Feature Extractor)로 쓰이거나, 모델의 일부를 재학습 시키기도 한다. 가장 많이 쓰이는 컨볼루션 신경망의 전이 학습을 예를 들어보자. 미리 훈련된 컨볼루션 신경망을 불러올 때 가장 마지막의 Dense 레이어를 제외해야 한다. 이미지를 분류하는 컨볼루션 신경망에서 이 Dense 레이어는 소프트맥스 활성화 함수로 실제 분류 작업을 수행하는 레이어이다. 만약 ImageNet 데이터로 학습했다면 이 레이어의 뉴런 수는 ImageNet 문제의 이미지 분류 숫자와 같은 1,000일 것이다...

    [TF Hub] 사전 훈련된 모델 사용하기

    [TF Hub] 사전 훈련된 모델 사용하기

    1. Transfer Learning 이란? 규모가 매우 큰 DNN 모델을 학습 시킬 때 처음부터 새로 학습 시키는 것은 학습 속도가 느린 문제가 있다. 이러한 경우 기존에 학습된 비슷한 DNN모델이 있을 때 이 모델의 하위층(lower layer)을 가져와 재사용하는 것이 학습 속도를 빠르게 할 수 있을 뿐만아니라 학습에 필요한 Training set도 훨씬 적다. 예를 들어, 아래의 그림처럼 CIFAR10 데이터셋을 분류(비행기, 자동차, 새, 고양이, 사슴, 개, 개구리, 말, 배, 트럭의 10개 클래스)하는 모델 A가 이 있다고 하자. 그런 다음, 분류된 CIFAR10 이미지에서 자동차의 종류를 분류하는 모델인 B를 학습시킨다고 할 때, 학습된 모델 A에서의 일부분(lower layer)을 재사용..

    [Keras] callback 함수 - ReduceLROnPlateau

    Tensorflow Keras의 ReduceLROnPlateau 콜백 함수는 모델의 성능에 개선이 없을 경우 Learning Rate를 조절해 모델의 개선을 유도하는 콜백함수이다. 경사하강법에 의하여 학습을 하는 경우 Local Minima에 빠져버리게 되면, 더이상 학습률이 개선되지 않고 정체되거나, 심하게 튀는 현상이 생길 수 있다. 이때 learning rate를 늘리거나 줄여주는 방법으로 빠져나오는 효과를 기대할 수 있다. 그 역할을 ReduceLROnPlateau이 해준다. 아래의 공식 페이지에서 사용방법을 확인할 수 있다. tf.keras.callbacks.ReduceLROnPlateau | TensorFlow Core v2.7.0 Reduce learning rate when a metric..

    [Keras] callback 함수 - EarlyStopping

    Tensorflow Keras의 EarlyStopping 콜백 함수를 활용하면, model의 성능 지표(acc, loss등)가 설정한 epoch동안 개선되지 않을 때 조기 종료할 수 있다. 아래의 공식 페이지에서 사용방법을 확인할 수 있다. tf.keras.callbacks.EarlyStopping | TensorFlow Core v2.7.0 Stop training when a monitored metric has stopped improving. www.tensorflow.org 문법 tf.keras.callbacks.EarlyStopping( monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto', baseline=None, rest..