임베디드 비전 애플리케이션의 머신 러닝 | 반도체네트워크

죄송합니다. 더 이상 지원되지 않는 웹 브라우저입니다.

반도체네트워크의 다양한 최신 기능을 사용하려면 이를 완전히 지원하는 최신 브라우저로 업그레이드 하셔야 합니다.
아래의 링크에서 브라우저를 업그레이드 하시기 바랍니다.

Internet Explorer 다운로드 | Chrome 다운로드

임베디드 비전 애플리케이션의 머신 러닝


PDF 다운로드



글/닉 니(Nick Ni), 아담 테일러(Adam Taylor), 자일링스


현재 임베디드 비전 분야에서 가장 뜨거운 주제 중 하나는 머신 러닝(Machine Learning)이다. 머신 러닝은 여러 업계의 주요 트랜드로 주목받고 있으며, 임베디드 비전(EV: Embedded Vision)뿐만 아니라 IIoT(Industry Internet of Things), 클라우드 컴퓨팅에서도 매우 중요한 역할을 하고 있다. 머신 러닝에 익숙하지 않은 사람들에게 이는 종종 신경망 생성 및 트레이닝으로 간주된다. 신경망이라는 용어는 매우 보편화되어 있지만, 일반적으로 구현되는 네트워크의 정확한 타입을 식별하는데 사용되는 상당히 많은 수의 서브 카테고리를 지정하는 별도의 이름들이 있다. 이러한 신경망은 각 뉴런이 입력을 받아 처리하고, 다른 뉴런과 통신하는 대뇌피질을 모델로 하고 있다. 따라서 신경망은 일반적으로 입력 레이어와 여러 숨겨진 내부 레이어, 그리고 출력 레이어로 구성된다.

1.jpg

가장 단순한 레벨의 뉴런은 입력을 받은 다음, 가중치를 적용하고, 가중된 입력의 합계를 기반으로 전달 함수를 수행한다. 이 결과는 숨겨진 레이어나 출력 레이어 내부의 다른 레이어로 전달된다. 사이클을 형성하지 않고 한 단계의 출력을 다른 단계에 전달하는 신경망을 FNN(Feed-forward Neural Networks)이라고 하며, Elman 네트워크처럼 피드백으로 사이클이 유도되는 신경망을 RNN(Recurrent Neural Networks)이라고 한다. 많은 머신 러닝 애플리케이션에서 매우 일반적으로 사용되는 용어 중 하나는 DNN(Deep Neural Networks)이다. 이는 보다 복잡한 머신 러닝 작업을 구현할 수 있는 여러 숨겨진 레이어를 가지고 있는 신경망이다. 신경망은 각 레이어 내에 사용되는 가중치와 바이어스를 결정하도록 트레이닝되어야 한다. 트레이닝하는 동안, 네트워크는 수많은 올바른 입력이나 잘못된 입력을 모두 가지고 있기 때문에 원하는 성능의 네트워크가 구현되도록 오류 함수가 적용된다. DNN 트레이닝은 요구되는 성능을 정확하게 트레이닝할 수 있도록 매우 많은 데이터 세트가 필요할 수 있다.
머신 러닝의 가장 중요한 용도 중 하나는 비전 지원 시스템에서 비전 가이드 자율 시스템으로 진화하고 있는 임베디드 비전 분야이다. 다른 간단한 머신 러닝 애플리케이션과 임베디드 비전 애플리케이션을 구분하는 것은 2차원 입력 포맷이다. 따라서 2차원 입력을 처리할 수 있는 CNN(Convolutional Neural Networks)이라고 불리는 네트워크 구조가 머신 러닝 구현에 사용된다. CNN은 최종 분류를 수행하기 위해 별도로 연결된 네트워크와 함께 여러 컨볼루션과 서브 샘플링 레이어를 포함하고 있는 FNN 유형에 해당한다. 또한 이러한 CNN의 복잡성으로 인해 딥 러닝(Deep Learning)으로 분류되기도 한다. 컨볼루션 레이어 내에서 입력 이미지는 여러 중첩된 작은 타일로 나눠진다. 이러한 컨볼루션의 결과는 최종적으로 완전히 연결된 네트워크(Fully Connected Network)에 적용되기 이전에, 추가 서브 샘플링 및 추가 단계를 거치기 전, 활성화 레이어를 사용하여 활성화 맵을 만드는데 사용된다. CNN 네트워크의 정확한 정의는 구현된 네트워크 아키텍처에 따라 다르지만, 일반적으로 다음 요소들을 포함하고 있다:

* 컨볼루션 - 이미지 내의 특징을 식별하는데 사용
* reLU(Rectified Linear Unit) - 컨볼루션 이후 활성화 맵을 생성하는데 사용되는 활성화 레이어
* 최대 풀링(Max Pooling) - 레이어 간의 서브 샘플링 수행
* 완전 연결 - 최종 분류 수행

이러한 각 요소들의 가중치는 트레이닝을 통해 결정되며, CNN의 장점 중 하나는 네트워크 트레이닝이 상대적으로 용이하다는 점이다. 가중치를 생성하는 트레이닝은 검출되기를 바라는 객체와 거짓 이미지에 대한 큰 이미지 세트를 필요로 한다. 이를 통해 CNN에 필요한 가중치를 만들 수 있다. 트레이닝 프로세스와 관련된 프로세싱 요건으로 인해 고성능 컴퓨팅을 제공하는 클라우드 기반 프로세서에서 실행되는 경우가 많다.

프레임워크

머신 러닝은 특히 네트워크와 아키텍처를 정의하고, 트레이닝 알고리즘을 생성하기 위해 매번 처음부터 시작해야 하는 복잡한 주제이다. 엔지니어들이 네트워크를 구현하고, 이 네트워크를 트레이닝하는 것을 돕기 위해 Caffe 및 Tensor Flow와 같은 여러 산업 표준 프레임워크들이 있다. Caffe 프레임워크는 머신 러닝 개발자들에게 Python 및 Matlab 바인딩을 비롯해 C++ 라이브러리 내의 사전 트레이닝된 가중치와 다양한 라이브러리 및 모델을 제공한다. 이 프레임워크는 사용자가 처음부터 시작할 필요없이 원하는 동작을 수행하기 위한 네트워크를 생성하고, 이를 트레이닝할 수 있도록 해준다. 재사용을 돕기 위해 Caffe 사용자는 원하는 경우 특정 작업을 위해 구현 및 업데이트할 수 있는 여러 네트워크 모델을 제공하는 model zoo를 통해 자신의 모델을 공유할 수 있다. 이러한 네트워크와 가중치는 prototxt 파일로 정의되며, 머신 러닝 환경에 구축되면, 이 파일은 추론 엔진을 정의하는데 사용된다...(중략)

leekh@seminet.co.kr
(끝)
<저작권자(c) 반도체네트워크, 무단 전재-재배포 금지>

X


PDF 다운로드

개인정보보호법 제15조에 의한 수집/이용 동의 규정과 관련하여 아래와 같이 PDF 다운로드를 위한 개인정보 수집 및 이용에 동의하십니까? 동의를 거부할 수 있으며, 동의 거부 시 다운로드 하실 수 없습니다.

이메일을 입력하면,
(1) 신규참여자 : 성명/전화번호/회사명/분야를 입력할 수 있는 입력란이 나타납니다.
(2) 기참여자 : 이메일 입력만으로 다운로드가 가능합니다.

×

회원 정보 수정