IT Trends/News

[IT World] AI (Deep Learning : 개념 및 종류)

DrawingProcess 2020. 3. 27. 01:19
반응형

딥러닝이란 정확히 무엇인가?
딥러닝은 전통적인 신경망의 현대적 발전. 실제로 고전적인 피드 포워드(feed-forward), Fully connected, 역전파(backpropagation) 학습, 다층 퍼셉트론(MLP)에 “더 깊은” 아키텍처(recurrent, convolution 등)가 추가된 것.

딥러닝과 신경망의 차이는 무엇인가?
차이점은 없다. 딥러닝 네트워크가 곧 신경망이고, 단지 1990년대에는 학습이 불가능했던 수준의 더 복잡한 아키텍처가 현대의 연산 자원 덕분에 추가됐을 뿐.

딥러닝을 좌우하는 요소는 결국 더 강력한 컴퓨팅 자원인가?
일반적으로 더 빠르고 더 강력한 연산 자원은 더 강력하고 유망한 신경 아키텍처의 구현과 실험을 가능.(GPU, TPU 등)

딥러닝의 인기를 촉발한 혁신적인 프로젝트는 무엇인가?
딥러닝 기반의 알렉스넷(AlexNet) 네트워크가 ImageNet 대회에서 오류율은 15%로 2위의 수치인 26%에 비해 큰 격차로 우승한 2012년. 알렉스넷의 우승으로 딥러닝 네트워크가 급격히 부상했고 현재 정상급 모델의 오류율은 3% 미만. 
인간의 오류율이 5% 내외임을 감안하면 놀라운 수치.

딥러닝이 그렇게 강력한 이유는 무엇인가?
유연함. 복잡하게만 만든다는 전제 하에 신경망을 사용해서 거의 모든 것의 근사치를 구할 수 있음. 또 다른 면에서는 학습된 신경망 가중치를 사용해 비슷한 작업을 수행하는 다른 신경망의 가중치를 초기화(전이 학습, Transfer Learning)할 수 있다.

가장 광범위하게 사용되는 신경망 패러다임은 무엇인가?
가장 성공적이며 광범위하게 도입된 네 가지 딥러닝 패러다임은 순환 신경망의 LSTM 유닛(RNN의 일종), 합성곱 신경망(CNN, Convolutional Neural Networks)의 합성곱 층, 인코더-디코더 구조, 그리고 생산적 적대 신경망(Generative Adversarial Networks, GAN)이다.

RNN은 같은 네트워크의 복사본을 각 시간 단계에 적용하고 상태 벡터를 통해 다른 복사본을 연결하는 개념. 이렇게 하면 네트워크는 과거의 정보를 기억할 수 있다. RNN에서 많이 사용되는 유닛 네트워크는 게이트 순환 유닛(Gated Recurrent Units, GRU)과 LSTM이다.

CNN 층은 이미지와 같이 공간 의존성이 있는 데이터에 특히 강력하다. 모든 뉴런을 새로운 층에 연결(fully connected)하는 대신 일종의 필터 역할을 하는 sliding window가 사용. 일부 합성곱이 가장자리나 모서리를 감지하고 다른 합성곱이 이미지 내의 고양이, 개, 표지판을 감지.

흔히 사용되는 또 다른 신경망 구조는 인코더-디코더 네트워크다. 예를 들어 병목 층이 있는 신경망이 학습을 통해 입력을 출력으로 재구성하는 오토인코더가 있다. 인코더-디코더 네트워크의 또 다른 응용은 RNN에서 인코더-디코더 구조가 사용되는 뉴럴 기계 번역이다. LSTM 기반 인코더는 소스 언어에서 콘텐츠의 밀집 표현을 추출하고, LSTM 기반 디코더는 타깃 언어로 출력 시퀀스를 생성한다.

GAN(Generative Adversarial Networks)은 개선을 위해 상호 경쟁하는 교차 단계로 학습되는 생성자와 감별자, 두 개의 딥러닝 네트워크로 구성된다. GAN은 이미지 텐서에 적용되어 애니메이션, 인체 형상을 만드는 데 사용됐으며 마치 반 고흐가 그린 듯한 작품을 만든 적도 있다.(이미지 합성)

딥러닝이 머신러닝 세계를 완전히 점령했는가?
적어도 아직은 아니다. 컴퓨터 비전과 같이 딥러닝을 더 이상 피할 수 없는 영역도 있지만, 표 형태의 데이터와 같이 딥러닝과 잘 맞지 않는 것으로 증명된 영역도 있다.
비즈니스 데이터를 저장하는 용도에서 여전히 주된 형식인 표 형태 데이터의 경우, 딥러닝 효과가 그렇게 나쁜 것은 아니다. 다만 성능 좋은 노트북에서 몇 분 이내에 학습이 가능한 랜덤 포리스트나 그래디언트 부스팅 트리를 사용해서 비슷한 정확도를 얻을 수 있는 마당에 굳이 값비싼 GPU 서버를 며칠동안 가동해 딥러닝 모델 하나를 학습시킬 이유가 없을 뿐이다.(비효율적)

딥러닝을 사용하려면 코딩 지식이 있어야 하는가?
꼭 그렇지는 않다. 대부분의 딥러닝 패러다임이 텐서플로우(TensorFlow)와 케라스(Keras)에 제공되고 둘 모두 파이썬 기술이 필요한 것은 사실이다. 그러나 오픈소스 KNIME 애널리틱스 플랫폼(KNIME Analytics Platform)은 백엔드에서 텐서플로우를 사용해서 케러스 및 딥러닝 라이브러리를 처리하는 GUI를 제공. 따라서 적절한 노드를 끌어서 다른 노드에 연결하는 방식으로 원하는 만큼 복잡하게 뉴럴 아키텍처를 구축할 수 있다.

<그림 1>에서 LSTM 기반 RNN을 학습시켜 프리 텍스트(free text)를 생성한 예를 볼 수 있다. 모델은 새로운 아웃도어 의류를 위해 산 이름과 유사한 가짜 이름을 생성한다. 맨 위(갈색 노드)에서 뉴럴 아키텍처를 구축한 다음 케라스의 네트워크 러너(Network Learner) 노드를 사용해서 학습시켰다. 학습된 네트워크는 적절히 수정되어 텐서플로우 형식으로 저장된다.
 

딥러닝 네트워크의 예는 어디서 찾을 수 있는가?
커뮤니티 KNIME 허브(KNIME Hub)에서 다양하게 찾을 수 있다. 예를 들어 LSTM 유닛을 사용하는 순환 신경망은 이 프리 텍스트 생성 예시(그림 1 참조) 또는 다른 시계열 예측 예시에서 볼 수 있다. 또한 “CNN 처음부터 만들기” 또는 “간단한 CNN 학습” 등에는 합성곱 신경망을 사용해서 이미지를 처리하는 여러 예시 워크플로우도 있다. 사기 탐지 작업을 위한 솔루션으로 사용되는 간단한 피드 포워드 완전 연결 다층 오토딩코딩 구조도 있다. 지금 이 시간에도 많은 예시가 커뮤니에 업로드되고 있을 것이다.

KNIME 애널리틱스 플랫폼을 사용할 경우 클라우드에 작업을 호스팅해야 하는가?
KNIME 애널리틱스 플랫폼은 오픈소스 애플리케이션이고 케라스, 텐서플로우 통합과 같은 통합 역시 마찬가지다. 따라서 퍼블릭 클라우드든 자신의 컴퓨터든 원하는 곳에 자유롭게 설치할 수 있다. 다만 확실한 한 가지는 시스템의 성능이 좋을수록 실행 속도도 빠르다는 것이다. KNIME 케라스 통합에 GPU 가속을 적용할 수도 있다. 이를 위해서는 CUDA가 설치된 GPU 장착 시스템, 케라스와 함께 GPU 설치를 위한 콘다(Conda) 환경, 마지막으로 KNIME 케라스 통합이 필요하다.

# 느낀점 : 기술이 발전해서 좋은 점도 있지만 요즘 vision관련 공부를 하려고 하면 전부 딥러닝 관련 자료들 뿐이다. 공부를 시작하려는 초심자 입장에서 뭔가 해야할 것 같은데 자료를 찾아보면 딥러닝을 사용했다고 하고 딥러닝을 공부하려니 뭐라는지 하나도 모르겠고,,,(문장을 이해하기 보다 단어를 이해하는 것 자체가 어려움.) 개발을 함에 있어서 더 좋은 결과를 얻을 수 있어 숙련된 사람들 입장에서는 딥러닝이 마냥 좋겠지만, 초심자 입장에서는 기초적인 개념도 모르는데 접하는 기술이 어렵다보니 너무 막막한 것 같다. 그런의미에서 이러한 정보를 쉽게 이해시켜주는 글은 좋다(뭔가 마무리가 찜찜,,,)

# 참고 : http://www.itworld.co.kr/news/147000

 

딥러닝에 대한 10가지 질문

데이터 과학 문제, 더 구체적으로는 인공 지능(AI) 영역에서 성공적으로 딥러닝(Deep Learning)을 사용하기 위한 전략을 설명하는 기사는 흔히 볼 수 있다. 그러나 딥러닝 자체와 딥러닝이 그렇게 강력한 이유, 그리고 실제 사용 환경에서 딥러닝이 취하는 다양한 형태에 대한 명확한 설명은 찾기가 쉽지 않다.딥러닝, 신경망, 중요한 혁신, 가장 널리 사용되는 패러다임, 딥러닝이 효과적인 분야와 그렇지 않은 분야, 그리고 딥러닝의 간략한 역사에 대

www.itworld.co.kr

원문보기 : http://www.itworld.co.kr/news/147000#csidxfa907e973f99527ab72fa192a0b4396 

반응형