RDX 공식블로그

딥러닝이란 무엇일까 본문

Tech.News

딥러닝이란 무엇일까

Redesign X(리디자인엑스) 2020. 10. 18. 10:29

출처 https://www.vision-systems.com/boards-software/article/14173008

러닝은 기계 학습 내에 존재하며, 인공 지능 (AI) 범주 내에 존재하며, 이는 인간이 마음으로하는 일을 모방하는 기술을 말한다.

 정확한 딥러닝이란?

인공지능 영역(AI)에는 머신러닝이 존재하고, 안에 딥러닝이라는 영역이 있다. AI 인간이 마음으로 하는 일을 부분적으로라도 모방하려는 기술이다. 인간의 행동을 모방하는 기계의 능력이며 일반적으로 인식/예측/추론 의사결정을 통합할 안다.

 

딥러닝은 일종의 데이터 프로그래밍으로 생각을 수가 있다. 네트워크는 처음에 어떤 일을 수행하라고 프로그래밍 되어있지 않다. 가상 장치에 이미지가 주어지게 되면, 설정 중인작업을 수행하도록 자체 프로그래밍-가령 영상에서의 객체의 인식, 결함 감지,안면 인식, 노이즈제거 등을 시작한다. 전반적인 시스템은 인간의 뇌를 모델로 하는 신경망을 별도로 갖고있다고 생각하면 된다. 인간의 뇌는 1000억개 정도의 뉴런으로 구성이 되고 각 뉴런은 물질을 전달할 수 있는 돌기를 갖고 있다. 뉴런간의 물질을 전달해주는 신경세포가 시냅스인데 시냅스는 두 뉴런간의 화학적 연결을 강화하는 도파민을 갖고 있다.

출처 https://www.vision-systems.com/boards-software/article/14173008

 

이러한 뉴런의 시스템과 비슷하게 구성된 컴퓨터 모델에도 입력, 출력, 그리고 시냅스와 같은 역할이 존재한다.

이와 같은 신경망을 사용하려면 입출력,전달과정에서 일어나는 오류를 최소한으로 교육해야 한다. 네트워크를 사용하는 경우 입력데이터(예를들어 사진, 여러 기능)가 신경망을 통해 출력에 도달하게 되는데 이때 출력에서 시작해서 네트워크를 통해 오류없이 전달하는 과정이 포함이 된다. 결과값을 오류없이 전달하기 위해 미적분,함수, 체인규칙 등을 통해 추상화작업(여러 기법을 통해 다량의 데이터나 자료들의 핵심들을 정리해서 요약하는 작업)을 시도하는 방법들을 사용하기도한다. 큰 틀에서 사람의 사고방식(위에서 언급했던 뉴런)을 컴퓨터에게 가르치는 기계학습의 한 분야이지만  사람과 달리 일반적으로 용량이 큰 데이터를 입력하게 된다면 오류가 생길 수 있거나, 오류방지를 위한 방법들을 쓰더라도 유용할 정도로 개선되진 않는다. 딥러닝을 발전시키기 위해서는 오류를 가능한 빨리 낮추는 방법을 찾아야한다.

 

과적합 문제

알고리즘

딥러닝 중에서도 심층신경망(DNN)이란 입력층, 출력층 사이에 여러 개의 숨겨진 층들로 이루어진 일종의 인공신경망(ANN)이다. 심층신경망은 복잡한 관계,작업들을 모델링할 수 있다. 예를들어, 물체를 식별을 하기 위해서 심층신경망은 각 구조에서 물체가 가진 기본적인 요소들을 계층적으로 표현 및 구분할 수 있다. 이러한 특징은 비슷하게 기능한 인공신경망에 비해 더 적은 수의 유닛만으로도 복잡한 데이터를 모델링 할 수 있다는 것이다.  

다만 이러한 심층 신경망에도 문제점은 있다. 기존의 인공신경망 같이 과적합문제가 있다. 과적합 문제란 학습데이터가 과하게 잘 학습하여 실제 데이터에 대한 오차가 증가한다는 것이다. 예를들어 빨간색 사과를 보며 사과의 특성을 공부하게 될 때 초록색 사과에 대해서는 사과라고 인식을 못하는 현상이랑 비슷하다. 일반적인 학습데이터는 실제 데이터의 부분집합이라 실제 데이터 전부를 수집하는 것은 불가능하고, 설령 수집하더라도 이를 모두학습하기엔 불가능한 시간이 걸리게 되기 때문에 과적합이라는 문제가 생길수있다.

 

합성곱 신경망(CNN)은 최소한의 프로세스를 사용하도록 설계된 다계층 퍼셉트론중 한 종류이다. 여러 개의 계층과 그 위에 올려진 일반적인 인공신경망 계층으로 이루어져있다. CNN은 다른딥러닝 구조들 보다 영상,음성에서 특히 좋은 성능을 보여준다.  다른 인공신경망보다 쉽게 훈련되고, 적은 수의 매개변수를 사용한다.

신경망에 0.8 고양이 0.3개를 말하고 둘 중 하나만을 선택하게 만드는 경우, CNN은 이미지안의 고양이 사진의 특징을 잡아낸다. 네트워크가 0.51 만큼의 고양이와 0.49만큼의 강아지를 제시할 때 이런 불확실한 값을 확실히 나타낼 만큼 충분히 강해져야한다.

 

 

출처: www.uipac.com

딥러닝의 구현

이미징에서 딥러닝을 사용하는 기술은 감독학습을 포함하며 이것은 이미지를 라벨링 하고 그뒤에 테스트하는 가장 흔한 방법중하다이다.  이런 테스트 결과가 적절하면 딥러닝 시스템의 기반을 사용할 준비가 된 것이다.  딥러닝시스템을 구현할 때 몇가지 고려사항이 필요한데, 병렬처리를 위해 유용한 도구 그래픽처리장치 GPU 필드 프로그래밍이 가능한 게이트 FPGA, 디지털 신호 프로세서 DSPCPU와 결합하여 기반을 마련해야한다. (CPU는 초기테스트를 수행할 수 있지만 학습속도 및 실행속도가 느리다는 단점). 성공적인 딥러닝 시스템을 구현하려면 데이터수집 및 라벨링에 더 많은 시간과 노력이 필요하다.

 

주요과제 및 함정

딥러닝의 주요과제중 하나는 많은 픽셀을 실시간으로 빠르게 처리하는 것으로, 많은 데이터와 많은 계산 능력이 필요함을 의미한다. 이 경우 지정된 학습 이미지의 큰 집합이 필요하지만 경우에 따라 레이블이 지정된 학습데이터 집합을 구입할 수 있다. 혹은 학습된 데이터에 라벨링을 잘 못할 가능성이 있어서 만약 하나의 다른이미지에 잘못 지정을 하게 된다면 신경망의 성능이 저하될 수 있다. 또한 학습데이터에서도 한계는 있다. 한 그룹보다 다른 한 그룹의 샘플이 많게 된다면, 샘플이 적은 그룹에서 좋은 결과를 얻기는 힘들다. 모두 많은 수의 데이터를 저장하면 좋겠지만, 이는 저장자체를 어렵게 보는 것이기보단 저장하고 검색하는 데 시간이 오래걸리며 안정성이 불확실하다는 점에서 한계를 지니는 것이다. 앞으로 딥러닝의 방향성은 네트워크가 사용자의 질문에 정답을 제시하지 못하는 경우 혹은 누군가 해킹을 하는 경우 어떤 일이 일어날 지에 대한 보안과 책임에 대한 문제가 있을 수 있고 이를 어떻게 강화할 것인지에 대한 방향성을 결정해야할 것이다.  또한 개와 고양이 둘 중  단순한 구분 기능을 하는 것이 아니라 다른 동물의 사진을 보고도 고양이와 개가 아님을 결정할 수 있는 스스로의 학습이 필요하다. 이런 과정을 수행함에 있어 수행시간을 단축시키고 정확도를 높이는 것이 딥러닝의 기대되는 방향성이라고 할 수 있다.

 

출처

www.vision-systems.com/boards-software/article/14173008/what-is-deep-learning-and-how-do-i-deploy-it-in-imaging

Author Bella

Comments