eBook

딥러닝 실용 안내서: 데이터부터 시작해 배포까지

챕터 4

전이 학습 사용


처음부터 새로 아키텍처를 설계하고 훈련하는 대신, 전이 학습을 통해 기존의 아키텍처를 활용할 수 있습니다. 이 챕터에서는 기존 아키텍처를 수정하고 재훈련하여 작업을 달성하는 방법을 알아봅니다.

섹션

전이 학습은 어떻게 작동하나요?

신경망에 대해 간단히 알아보면 영상 기반 아키텍처에 전이 학습이 작동하는 방식을 더욱 쉽게 이해할 수 있습니다. 훈련된 신경망은 데이터, 즉 이 경우에는 영상에 있는 패턴을 찾습니다. 신경망은 앞쪽 계층에서 블롭, 경계, 색상 같은 기본적 특징을 찾고, 계층들을 거치면서 이러한 특징들을 더욱 복잡한 특징으로 결합하며, 최종적으로는 레이블을 지정할 수 있는 완성된 패턴을 만듭니다. 

dl-engineers-ebook-ch4-model-training-daisy

처음에는 센서 데이터 내 패턴을 찾는 신경망을 개발하려는 경우에는 영상 내 꽃 등의 사물을 식별하도록 훈련된 신경망이 유용하지 않은 것처럼 보일 수 있습니다. 그러나 스펙트로그램이나 스케일로그램에서 얻는 시간-주파수 표현 같은 신호를 전처리하여 영상으로 만들 수 있습니다. 신호의 시간-주파수 영상을 포함한 거의 모든 영상에는 블롭, 색상, 루프, 선 같은 기본적 특징이 있습니다. 

dl-engineers-ebook-ch4-patterns-in-images

전이 학습을 통해 기본적 특징을 인식할 수 있는 사전 훈련된 신경망의 능력을 활용하여 그러한 특징을 조합한 마지막 계층 몇 개를 간단히 교체하여 최종적인 분류를 수행할 수 있습니다.

dl-engineers-ebook-ch4-model-training-replace

이러한 신경망은 단지 특징을 조합하여 여러분이 원하는 더 큰 패턴을 인식하는 방법을 학습하면 되기 때문에 일반적으로 처음부터 새로 시작하는 것보다는 훨씬 빠르며, 필요한 데이터의 양도 훨씬 적을 것입니다.

섹션

예제: 손동작 인식하고 레이블 지정하기

이 예제에서는 전이 학습을 사용하여 간단한 하드웨어로 손동작을 인식하고 레이블을 지정합니다. 이 예제에서는 사전 훈련된 GoogLeNet 신경망으로 시작하여 3축 가속도 데이터의 하이 파이브 패턴을 인식할 수 있도록 신경망을 재훈련합니다.

dl-engineers-ebook-ch4-arduino-setup

Arduino를 통해 MPU-9250에서 가속도 데이터를 읽기 위해 MATLAB Support Package for Arduino Hardware를 사용합니다. 단 세 줄의 코드만 있으면 Arduino에 연결하고 MPU9250 객체를 인스턴스화한 후 가속도계를 읽을 수 있습니다.

dl-engineers-ebook-ch4-accelerometer-code-snippet

50Hz로 가속도계를 읽고 표시하기

x, y, z 가속도 축으로 이뤄진 스케일로그램을 나타내는 영상의 적색, 녹색, 청색 채널로 3축 가속도 데이터를 변환합니다.  

신경망이 하이 파이브를 인식하도록 훈련하기 위해서는 레이블이 지정된 훈련 데이터를 신경망에 제공해야 합니다. 이 경우에 훈련 데이터는 다수의 하이 파이브 영상과 다수의 다른 팔 동작 영상입니다.

이 예제에서는 200개의 레이블이 지정된 훈련 영상을 수집했습니다. 이 데이터는 사람 팔의 실제 동작을 측정하여 수집했습니다. 다음으로는 훈련에 방해가 될 이상값 및 기타 동작들을 훈련 데이터에서 정제하고 그러한 영상을 제거했습니다.

마지막 계층을 교체하는 작업은 심층 신경망 디자이너 앱을 사용했습니다. GoogLeNet의 맨 마지막에 있는 계층 두 개만 교체하면 됩니다. 이 계층은 기본적 특징을 조합하여 특정 패턴으로 만드는 완전 연결 계층과 레이블을 할당하는 출력 계층입니다.

dl-engineers-ebook-ch4-deep-network-designer-app

훈련 데이터를 가져오되 영상 중 20%는 검증에 사용하기 위해 남겨 둡니다. 훈련된 신경망이 준비되었다면 다음은 더 큰 데이터셋에 대해 테스트하는 단계입니다. 이 예제에서는 실제 팔 동작에 대한 하이 파이브 분류기를 만들어 보았습니다.

이 예제를 더욱 심층적으로 다룬 하이 파이브 카운터 구축하기에 대한 블로그 게시물도 참조해 보십시오.

섹션

심층 신경망 디자이너 앱 및 전이 학습에 대해 자세히 알아보기