-
인공지능 딥 러닝소개자동차(Automotive) 2019. 4. 13. 17:37반응형
딥 러닝(영어: deep learning), 심층학습(深層學習)은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계학습(machine learning) 알고리즘의 집합[1] 으로 정의되며, 큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야라고 이야기할 수 있다.
어떠한 데이터가 있을 때 이를 컴퓨터가 알아 들을 수 있는 형태(예를 들어 이미지의 경우는 픽셀정보를 열벡터로 표현하는 등)로 표현(representation)하고 이를 학습에 적용하기 위해 많은 연구(어떻게 하면 더 좋은 표현기법을 만들고 또 어떻게 이것들을 학습할 모델을 만들지에 대한)가 진행되고 있으며, 이러한 노력의 결과로 deep neural networks, convolutional deep neural networks, deep belief networks와 같은 다양한 딥 러닝 기법들이 컴퓨터비젼, 음성인식, 자연어처리, 음성/신호처리 등의 분야에 적용되어 최첨단의 결과들을 보여주고 있다.
2012년 스탠포드대학의 앤드류 응과 구글이 함께한 딥 러닝 프로젝트에서는 16,000개의 컴퓨터 프로세서와 10억 개 이상의 neural networks 그리고 DNN(deep neural networks)을 이용하여 유튜브에 업로드 되어 있는 천만 개 넘는 비디오 중 고양이 인식에 성공하였다.[2] 이 소프트웨어 프레임워크를 논문에서는 DistBelief로 언급하고 있다[3]. 이뿐만 아니라 마이크로소프트, 페이스북[4] 등도 연구팀을 인수하거나 자체 개발팀을 운영하면서 인상적인 업적들을 만들어 내고 있다.
이 겨울과 같은 시기를 견디고 이제 다시 신경망이 주목 받고 있다. 그 계기가 된 것은 다층 신경망 학습에 대한 힌턴(Hinton)의 연구였다. 그리고 90년대에 비해 컴퓨터의 성능이 크게 향상 되었고, 웹이나 검색엔진 등의 발전에 따라 대규모 훈련 데이터의 수집이 가능해진 것도 높은 성능을 달성할 수 있게 하였다.
최근 이세돌과 대국을 펼친 구글 딥 마인드(Deep mind)의 인공지능 알파고는 고급 트리 탐색(Tree search)과 심층신경망(Deep neural network)을 조합한 하이브리드 기법을 사용한 컴퓨터 프로그램이다.딥 러닝이 부활하게 된 이유는 크게 세 가지로 꼽힌다. 첫 번 째는 앞서 딥 러닝의 역사에서 언급한 바 있는 기존 인공신경망 모델의 단점이 극복되었다는 점이다. 그러나 과적합 문제만 해결되었다고 해서 느린 학습시간이 줄어드는 것은 아니다. 두 번 째 이유로, 여기에는 하드웨어의 발전이라는 또다른 요인이 존재 한다. 특히 강력한 GPU는 딥 러닝에서 복잡한 행렬 연산에 소요되는 시간을 크게 단축시켰다. 마지막으로 언급하지만 가장 중요한 세 번 째 이유로 빅 데이터를 들 수 있다. 대량으로 쏟아져 나오는 데이터들, 그리고 그것들을 수집하기 위한 노력 특히 SNS 사용자들에 의해 생산되는 다량의 자료와 태그정보들 모두가 종합되고 분석 되어 학습에 이용될 수 있다. - 인공신경망의 학습에 사용되는 트레이닝벡터는 이름이 붙어 있는(labeled) 데이터여야 하는데(supervised learning의 경우) 대량의 트레이닝셋 모두에 label을 달아주는 일은 불가능한 일이다. 이런 이유로 초기 학습에 사용되는 일부 데이터에 대해서만 지도학습(supervised learning)을 수행하고 나머지 트레이닝셋에 대해서는 비지도학습(unsupervised learning)을 진행하며, 학습된 결과는 기존 학습의 결과와 앞서 분석된 메타태그 정보들을 종합하여 인식기가 완성 된다.
딥 러닝의 부활 이후 다양한 분야, 특히 자동 음성 인식(ASR, automatic speech recognition)과 컴퓨터비전 분야에서 최고수준의 성능을 보여주고 있으며 이들은 보통 딥 러닝의 새로운 응용들의 지속적인 성능 향상을 위해 만들어진 TIMIT(Texas Instruments와 MIT가 제작한 음성 Database), MNIST(이미지 클러스터링을 위한 hand-written 숫자 이미지 데이터베이스로 National Institute of Standards and Technology가 제작) 등의 데이터베이스를 사용했다. 최근에는 Convolution Neural Networks 기반의 딥 러닝 알고리즘이 뛰어난 성능을 발휘하고 있으며, 컴퓨터비전과 음성인식등의 분야에서 특히 탁월한 성능을 보이고 있다.
딥 러닝에 사용되는 모델로는 입력층과 출력층 사이에 다중의 은닉층(Hidden layer)이 존재하는 '심층(Deep) 신경망', 동물의 시각 피질의 구조와 유사하게 뉴런 사이의 연결 패턴을 형성하는 '컨볼루셔널(Convolutional) 신경망', 시간에 따라 매 순간 신경망을 쌓아 올리는 '재귀(Recurrent) 신경망', 입력 집합에 대한 확률 분포를 학습할 수 있는 '제한 볼츠만 머신(Restricted boltzmann machine)' 등이 있으며 이 중 본 고에서는 컨볼루션 신경망(Convolutional neural network : CNN)에 대하여 간략하게 소개하고자 한다.
합성곱 신경망(Convolutional Neural Network, CNN)
합성곱 신경망(Convolutional Neural Network, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 CNN은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 다른 딥 러닝 구조들과 비교해서, CNN은 영상, 음성 분야 모두에서 좋은 성능을 보여준다. CNN은 또한 표준 역전달을 통해 훈련될 수 있다. CNN은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다. 최근 딥 러닝에서는 합성곱 심층 신뢰 신경망 (Convolutional Deep Belief Network, CDBN) 가 개발되었는데, 기존 CNN과 구조적으로 매우 비슷해서, 그림의 2차원 구조를 잘 이용할 수 있으며 그와 동시에 심층 신뢰 신경망 (Deep Belief Network, DBN)에서의 선훈련에 의한 장점도 취할 수 있다. CDBN은 다양한 영상과 신호 처리 기법에 사용될 수 있는 일반적인 구조를 제공하며 CIFAR[25] 와 같은 표준 이미지 데이터에 대한 여러 벤치마크 결과에 사용되고 있다.
<그림 1> 패턴을 가진 규칙적인 곱셈 연산
그림 1은 Convolution layer의 학습 과정을 보여준다. 입력 이미지의 크기가 14X14인 경우에 Convolution Pooling을 거처 최종적으로 5X5 크기를 얻은 후 Classifier를 거쳐 학습을 한다.
폴링레이어는 입력 공간을 추상화하는 레이어로 Sub-sampling을 통한 차원축소의 기능을 수행하며 Max-pooling과 Average-pooling으로 구성되어 있다.<그림 2> Pooling layer 구조
그림 2를 보면 왼쪽 위의 주황색 네모 안의 12, 20, 8, 12의 숫자가 있으며 이를 Max Pooling을 하게 되면 '20'만 남고 다른 값은 버린다.
마찬가지로 왼쪽 위의 주황색 네모 안의 12, 20, 8, 12 숫자를 Average pooling을 하게 되면 평균 값인 ‘13’이 된다. 이렇게 네모를 옮겨가면서 수행을 하게 되면 결국 크기가 1/4로 축소되게 된다.
전방향레이어는 최상위 레이어들에서 마지막에 적용되며, 하위 레이어에서 전달된 특징들을 분류하는 역할을 한다.
입력영상으로부터 Convolution (filter)을 통해, Feature map를 만들며 Sub-sampling은 통상적인 Feature map의 크기를 줄여주면서, 이를 통해 토플로지 인베리언스(Topology invariance)도 얻을 수가 있게 된다. (보통 1개의 Feature map에 대해 1개의 Sub-sampling 연산을 수행한다.) 이렇게 해서 Local feature를 얻었다면, 그 Local feature에 대해 다시 Convolution과 sub-sampling을 수행하며, 이 과정을 통해 좀더 Global feature를 얻을 수 있게 된다. 이러한 학습을 하기 위하여 학습된 내용 기반으로 새로운 입력에 대해 답을 얻어내는 추론과정과 주어진 학습 데이터를 기반으로 최적의 추론을 수행 하기 위하여 추론 구조 또는 학습 파라미터들을 설정하고 귀납적으로 배우는 학습 과정이 있다.<그림 3> 분류기 단계
정리하면 Convolution layer → Pooling layer → Convolution layer → Pooling layer → Feedforward layer 순서로 이루어져 있다. 즉 Convolution layer와 Pooling layer를 번갈아 가면서 사용하여 적절한 Feature를 추출한 후 마지막으로 Feedforward layer를 통하여 분류한다
이와 같은 과정으로 얻어진 Data는 다양한 이미지들을 확인하는 역할을 하게 된다.
딥 러닝 모델 중 활발하게 연구가 진행되고, 실제 응용을 통하여 유용성이 확인된 Convolution neural network 기반의 기계 학습 기술은 다양한 분야에서 적용되고 있다. 특히, 2차원 데이터의 기계 학습에 탁월한 효과가 기대된다. 효과적인 시스템 테스트를 위해서는 다양하고 방대한 테스트 입력 데이터로부터 효과적인 테스트 입력 데이터를 생성하는 것이 필요하다. 딥 러닝을 통한 기계학습은 이러한 과정에 효과적으로 적용할 수 있다. 또한 테스트 데이터가 2차원으로 구성될 경우에 Convolution neural network 기반의 기계 학습 기술은 우수한 성능을 보인다.반응형'자동차(Automotive)' 카테고리의 다른 글
Kaggle이 뭔가요? Big Data? AI? (0) 2019.04.18 GM New Corvette at 07.19.19 (0) 2019.04.17 자동차 통신 방식 LIN의 원리와 통신 방식 (0) 2019.04.13 자동차 통신 방식 FlexRay의 원리와 특징 (0) 2019.04.08 CAN FD 자동차 통신 프로토콜의 특징과 동작방법 (0) 2019.04.08 댓글