딥 러닝 알고리즘 [예제를 포함한 종합 가이드]
게시 됨: 2020-10-28목차
소개
딥 러닝은 뇌의 배열과 기능에서 영감을 얻은 알고리즘을 포함하는 기계 학습의 하위 집합입니다. 인간 두뇌의 뉴런이 정보를 전달하고 우리 몸의 반응기로부터 학습을 돕듯이 딥 러닝 알고리즘은 다양한 계층의 신경망 알고리즘을 실행하고 반응을 통해 학습합니다.
즉, 딥 러닝은 신경망 알고리즘 계층을 활용하여 원시 입력 데이터에 따라 더 중요한 수준의 데이터를 발견합니다. 신경망 알고리즘은 인간의 두뇌가 작동하는 방식을 시뮬레이션하는 프로세스를 통해 데이터 패턴을 발견합니다.
신경망은 기능의 유사성을 기반으로 대규모 데이터 포인트 세트의 데이터 포인트를 클러스터링하는 데 도움이 됩니다. 이러한 시스템을 인공 신경망이라고 합니다.
점점 더 많은 데이터가 모델에 제공됨에 따라 딥 러닝 알고리즘은 나머지 알고리즘보다 더 생산적이고 더 나은 결과를 제공하는 것으로 판명되었습니다. 딥 러닝 알고리즘은 이미지 인식, 음성 인식, 사기 탐지, 컴퓨터 비전 등과 같은 다양한 문제에 사용됩니다.
신경망의 구성 요소
1. 네트워크 토폴로지 – 네트워크 토폴로지는 신경망의 구조를 나타냅니다. 여기에는 네트워크의 숨겨진 레이어 수, 입력 및 출력 레이어를 포함한 각 레이어의 뉴런 수 등이 포함됩니다.
2. 입력 계층 – 입력 계층은 신경망의 진입점입니다. 입력 레이어의 뉴런 수는 입력 데이터의 속성 수와 같아야 합니다.

3. 출력 레이어 – 출력 레이어는 신경망의 출구입니다. 출력 레이어의 뉴런 수는 대상 변수의 클래스 수와 같아야 합니다(분류 문제의 경우). 회귀 문제의 경우 출력이 숫자 변수이기 때문에 출력 레이어의 뉴런 수는 1이 됩니다.
4. 활성화 함수 – 활성화 함수는 뉴런의 가중 입력 합계에 적용되는 수학 방정식입니다. 뉴런이 트리거되어야 하는지 여부를 결정하는 데 도움이 됩니다. Sigmoid 함수, ReLU(Rectified Linear Unit), Leaky ReLU, Hyperbolic Tangent, Softmax 함수 등과 같은 많은 활성화 함수가 있습니다.
5. 가중치 – 연속 레이어의 뉴런 간의 모든 상호 연결에는 가중치가 연결되어 있습니다. 이는 신경망의 결과를 예측하는 데 도움이 되는 일부 데이터 패턴을 발견할 때 뉴런 간의 연결의 중요성을 나타냅니다. 가중치 값이 높을수록 유의도가 높아집니다. 네트워크가 훈련 단계에서 학습하는 매개변수 중 하나입니다.
6. 편향 - 편향은 더 나은 의사 결정에 중요할 수 있는 활성화 기능을 왼쪽 또는 오른쪽으로 이동하는 데 도움이 됩니다. 그 역할은 선형 방정식에서 절편의 역할과 유사합니다. 가중치는 활성화 함수의 기울기를 증가시킬 수 있습니다. 즉, 활성화 함수가 트리거되는 속도를 나타내는 반면 바이어스는 활성화 함수의 트리거링을 지연시키는 데 사용됩니다. 네트워크가 훈련 단계에서 학습하는 두 번째 매개변수입니다.
관련 문서: 최고의 딥 러닝 기술
뉴런의 일반적인 작동
딥 러닝은 인공 신경망(ANN)과 함께 작동하여 인간 두뇌의 작동을 모방하고 인간이 하는 방식으로 학습합니다. 인공 신경망의 뉴런은 레이어로 배열됩니다. 첫 번째와 마지막 레이어를 입력 및 출력 레이어라고 합니다. 이 두 레이어 사이에 있는 레이어를 은닉 레이어라고 합니다.
계층의 각 뉴런은 자체 바이어스로 구성되며 이전 계층에서 다음 계층으로의 뉴런 간의 모든 상호 연결에 대해 연관된 가중치가 있습니다. 각 입력에는 상호 연결과 관련된 가중치가 곱해집니다.
입력의 가중치 합은 계층의 각 뉴런에 대해 계산됩니다. 이 가중된 입력 합계에 활성화 함수가 적용되고 뉴런의 바이어스가 추가되어 뉴런의 출력이 생성됩니다. 이 출력은 다음 계층 등의 해당 뉴런 연결에 대한 입력으로 사용됩니다.
이 프로세스를 피드포워딩이라고 합니다. 출력 레이어의 결과는 모델이 내린 최종 결정으로 작용합니다. 신경망의 훈련은 뉴런 간의 모든 상호 연결의 가중치와 모든 뉴런의 편향을 기반으로 수행됩니다. 모델이 최종 결과를 예측한 후 가중치와 편향의 함수인 총 손실을 계산합니다.
총 손실은 기본적으로 모든 뉴런에서 발생하는 손실의 합계입니다. 궁극적인 목표는 비용 함수를 최소화하는 것이므로 알고리즘은 그에 따라 가중치와 편향을 역추적하고 변경합니다. 비용 함수의 최적화는 경사하강법을 사용하여 수행할 수 있습니다. 이 프로세스를 역전파라고 합니다.

신경망의 가정
- 뉴런은 층 형태로 배열되어 있으며 이러한 층은 순차적으로 배열되어 있습니다.
- 같은 층에 있는 뉴런들 사이에는 통신이 없습니다.
- 신경망의 진입점은 입력 레이어(첫 번째 레이어)이고 출구는 출력 레이어(마지막 레이어)입니다.
- 신경망의 모든 상호 연결에는 관련 가중치가 있으며 모든 뉴런에는 이와 관련된 편향이 있습니다.
- 특정 계층의 모든 뉴런에 동일한 활성화 함수가 적용됩니다.
읽기: 딥 러닝 프로젝트 아이디어
다양한 딥 러닝 알고리즘
1. 완전히 연결된 신경망
FCNN(Fully Connected Neural Network)에서 한 계층의 각 뉴런은 다음 계층의 다른 모든 뉴런에 연결됩니다. 같은 이유로 이러한 레이어를 Dense 레이어라고 합니다. 이러한 레이어는 모든 뉴런이 다른 모든 뉴런과 연결되기 때문에 계산적으로 매우 비쌉니다.
계층의 뉴런 수가 적을 때 이 알고리즘을 사용하는 것이 좋습니다. 그렇지 않으면 연산을 수행하는 데 많은 계산 능력과 시간이 필요합니다. 또한 완전한 연결성으로 인해 과적합으로 이어질 수 있습니다.

완전히 연결된 신경망(출처: Researchgate.net)
2. CNN(Convolutional Neural Network)
CNN(Convolutional Neural Network)은 시각적 데이터와 함께 작동하도록 설계된 신경망 클래스입니다. 즉, 이미지 및 비디오. 따라서 OCR(Optical Character Recognition), Object Localization 등과 같은 많은 이미지 처리 작업에 사용됩니다. CNN은 비디오, 텍스트 및 오디오 인식에도 사용할 수 있습니다.
이미지는 이미지의 흰색 강도를 결정하는 픽셀로 구성됩니다. 이미지의 각 픽셀은 신경망에 제공되는 기능입니다. 예를 들어, 128×128 이미지는 이미지가 16384 픽셀 또는 기능으로 구성되어 있음을 나타냅니다. 크기가 16384인 벡터로 신경망에 공급됩니다. 컬러 이미지의 경우 3개의 채널이 있습니다(각각 하나씩 – 빨강, 파랑, 녹색). 이 경우 동일한 컬러 이미지가 128x128x3 픽셀로 구성됩니다.
CNN의 계층에는 계층이 있습니다. 첫 번째 레이어는 수평 또는 수직 가장자리와 같은 이미지의 원시 특징을 추출하려고 시도합니다. 두 번째 레이어는 첫 번째 레이어에서 추출한 기능에서 더 많은 통찰력을 추출합니다. 그런 다음 후속 레이어는 머리카락, 피부, 코 등과 같은 이미지의 특정 부분을 식별하기 위해 세부 사항에 대해 더 깊이 파고들 것입니다. 마지막으로, 마지막 레이어는 입력 이미지를 사람, 고양이, 개 등으로 분류합니다.

원천
VGGNet 아키텍처 – 널리 사용되는 CNN 중 하나
CNN에는 세 가지 중요한 용어가 있습니다.
- 컨볼루션 – 컨볼루션은 두 행렬의 요소별 곱의 합입니다. 한 행렬은 입력 데이터의 일부이고 다른 행렬은 이미지에서 특징을 추출하는 데 사용되는 필터입니다.

- Pooling Layers – 추출된 기능의 집계는 Pooling Layers에 의해 수행됩니다. 이러한 계층은 일반적으로 집계 통계(최대, 평균 등)를 계산하고 네트워크를 로컬 변환에 대해 불변하게 만듭니다.


- 기능 맵 – 뉴런은 기본적으로 훈련 중에 가중치가 학습되는 필터입니다. 각 뉴런은 수용 필드로 알려진 입력의 특정 영역을 봅니다. Feature Map은 동일한 가중치로 이미지의 다른 영역을 보는 뉴런의 모음입니다. 특징 맵의 모든 뉴런은 이미지의 다른 영역에서 동일한 특징을 추출하려고 합니다.
3. 순환 신경망(RNN)
순환 신경망은 순차 데이터를 처리하도록 설계되었습니다. 순차 데이터는 텍스트(단어, 문장 등의 시퀀스) 또는 비디오(이미지 시퀀스), 음성 등과 같이 이전 데이터와 일부 관련이 있는 데이터를 의미합니다.
이러한 순차적 개체 간의 연결을 이해하는 것이 매우 중요합니다. 그렇지 않으면 전체 단락을 뒤죽박죽으로 만들고 그로부터 어떤 의미를 이끌어내려고 하는 것은 이치에 맞지 않습니다. RNN은 이러한 순차 엔티티를 처리하도록 설계되었습니다. 사용되는 RNN의 좋은 예는 YouTube의 자막 자동 생성입니다. RNN을 사용하여 구현된 자동 음성 인식에 불과합니다.
일반 신경망과 순환 신경망의 주요 차이점은 입력 데이터가 시간(특징을 추출하는 시퀀스의 길이를 따라)과 깊이(일반 신경 계층)의 두 가지 차원을 따라 흐른다는 것입니다. 다양한 유형의 RNN이 있으며 그에 따라 구조가 변경됩니다.
- 다대일 RNN: – 이 아키텍처에서 네트워크에 공급되는 입력은 시퀀스이고 출력은 단일 엔터티입니다. 이 아키텍처는 감정 분류와 같은 문제를 해결하거나 입력 데이터의 감정 점수(회귀 문제)를 예측하는 데 사용됩니다. 또한 비디오를 특정 범주로 분류하는 데 사용할 수도 있습니다.
- 다대다 RNN: – 입력과 출력 모두 이 아키텍처의 시퀀스입니다. 입력과 출력의 길이를 기준으로 더 분류할 수 있습니다.
- 동일한 길이: – 네트워크는 각 시간 단계에서 출력을 생성합니다. 각 시간 단계에서 입력과 출력 사이에는 일대일 대응이 있습니다. 이 아키텍처는 입력에 있는 시퀀스의 각 단어가 모든 시간 단계에서 출력으로 해당 품사로 태그되는 음성 태그의 일부로 사용할 수 있습니다.
- 다른 길이: – 이 경우 입력의 길이는 출력의 길이와 같지 않습니다. 이 아키텍처의 용도 중 하나는 언어 번역입니다. 영어 문장의 길이는 해당 힌디어 문장과 다를 수 있습니다.
- 일대다 RNN: – 여기에서 입력은 단일 엔터티이고 출력은 시퀀스입니다. 이러한 종류의 신경망은 음악, 이미지 생성 등과 같은 작업에 사용됩니다.
- 일대일 RNN: – 입력과 출력이 단일 엔터티인 전통적인 신경망입니다.

RNN의 유형(출처: iq.opengenus.org)
4. 장기 – 단기 기억 네트워크(LSTM)
Recurrent Neural Networks의 단점 중 하나는 Vanishing Gradient 문제입니다. 이 문제는 확률적 경사하강법(Stochastic gradient descent) 및 역전파(backpropagation)와 같은 경사 기반 학습 방법으로 신경망을 훈련할 때 발생합니다. 활성화 함수의 기울기는 네트워크의 가중치 업데이트를 담당합니다.
그것들은 변경될 신경망의 가중치에 거의 영향을 미치지 않을 정도로 작아집니다. 이렇게 하면 신경망이 훈련되지 않습니다. RNN은 장기적인 종속성을 학습하는 데 어려움을 겪을 때 이 문제에 직면합니다.
장기 – 단기 기억 네트워크(LSTM)는 바로 이 문제를 해결하도록 설계되었습니다. LSTM은 이전 정보와 관련된 정보를 저장할 수 있는 메모리 유닛으로 구성됩니다. GRU(Gated Recurrent Units)는 기울기 문제를 없애는 데 도움이 되는 RNN의 변형이기도 합니다.
둘 다 이 문제를 해결하기 위해 게이팅 메커니즘을 사용합니다. GRU는 훈련 매개변수를 적게 사용하므로 LSTM보다 메모리를 적게 사용합니다. 이를 통해 GRU는 더 빠르게 훈련할 수 있지만 LSTM은 입력 시퀀스가 긴 경우 더 정확한 결과를 제공합니다.
5. 생성적 적대 네트워크(GAN)
GAN(Generative Adversarial Networks)은 데이터에서 패턴을 자동으로 발견하고 학습하는 비지도 학습 알고리즘입니다. 이러한 패턴을 학습한 후 입력과 동일한 특성을 갖는 새로운 데이터를 출력으로 생성합니다. 생성기와 판별기의 두 가지 하위 모델로 나누어지는 모델을 생성합니다.
생성기 모델은 입력에서 새로운 이미지를 생성하려고 시도하는 반면 판별기 모델의 역할은 데이터가 데이터 세트의 실제 이미지인지 또는 인위적으로 생성된 이미지(생성된 모델의 이미지)인지 분류하는 것입니다.
판별자 모델은 일반적으로 합성곱 신경망 형태의 이진 분류기 역할을 합니다. 각 반복에서 생성기 모델의 목표는 판별기 모델을 속이는 이미지를 식별하고 판별기의 목표는 가짜 이미지를 올바르게 식별하는 것이므로 두 모델 모두 결과를 개선하려고 합니다.
6. 제한된 볼츠만 기계(RBM)
RBM(Restricted Boltzmann Machine)은 생성 기능이 있는 비결정적 신경망이며 입력에 대한 확률 분포를 학습합니다. 그것들은 볼츠만 머신의 제한된 형태이며, 레이어의 노드 간의 상호 연결 측면에서 제한됩니다.
여기에는 두 개의 레이어, 즉 보이는 레이어와 숨겨진 레이어만 포함됩니다. RBM에는 출력 레이어가 없으며 레이어가 서로 완전히 연결되어 있습니다. RBM은 이제 GAN으로 대체되어 엄숙하게 사용됩니다. 여러 개의 RBM을 함께 사용하여 다른 신경망과 마찬가지로 경사하강법 및 역전파를 사용하여 조정할 수 있는 새 네트워크를 만들 수도 있습니다. 이러한 네트워크를 Deep Belief Networks라고 합니다.

제한된 볼츠만 머신 (출처: 매체)
7. 변압기
변압기는 신경 기계 번역을 위해 설계된 신경망 아키텍처 유형입니다. 그것들은 네트워크에 제공된 정보의 일부에 초점을 맞추는 주의 메커니즘을 포함합니다. 인코더와 디코더의 두 부분으로 구성됩니다.

변압기 아키텍처(출처: arxiv.org)
그림의 왼쪽 부분은 인코더이고 오른쪽 부분은 디코더입니다. 인코더와 디코더는 서로의 상단에 쌓을 수 있는 여러 모듈로 구성될 수 있습니다. 그림에서 Nx 도 마찬가지입니다. 각 인코더 계층의 기능은 입력의 어떤 부분이 인코딩이라고 하는 서로 관련이 있는지 파악하는 것입니다.

이러한 인코딩은 다음 인코더 계층에 입력으로 전달됩니다. 디코더 계층은 이러한 인코딩을 취하고 처리하여 출력 시퀀스를 생성합니다. 세심한 메커니즘은 다른 모든 입력의 중요성을 평가하고 이러한 관계에서 정보를 추출하여 출력 시퀀스를 예측합니다. 인코더 및 디코더 계층은 또한 출력의 추가 처리에 사용되는 피드 포워드 계층으로 구성됩니다.
더 읽어보기: 딥 러닝과 신경망
결론
이 기사에서는 딥 러닝 도메인, 신경망에서 사용되는 구성 요소, 딥 러닝 알고리즘의 아이디어, 신경망을 단순화하기 위한 가정 등에 대해 간략하게 소개했습니다. 이 기사에서는 딥 러닝 알고리즘의 제한된 목록을 제공합니다. 기존 알고리즘의 한계를 극복하기 위해 끊임없이 생성되고 있는 다양한 알고리즘.
딥 러닝 알고리즘은 비디오, 이미지, 텍스트 등을 처리하는 방식을 혁신했으며 필요한 패키지를 가져와서 쉽게 구현할 수 있습니다. 마지막으로 모든 딥 러너에게는 무한대가 한계입니다.
딥 러닝 기술 , 머신 러닝에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 240시간 이상의 엄격한 교육, 5개 이상의 사례 연구를 제공하는 IIIT-B & upGrad의 머신 러닝 및 딥 러닝 PG 인증을 확인하십시오. 및 과제, IIIT-B 동문 상태 및 최고의 기업에 대한 취업 지원.
CNN과 ANN의 차이점은 무엇입니까?
인공 신경망(ANN)은 입력, 은닉 및 출력 결정 레이어와 같은 인간 신경 레이어와 병렬로 네트워크 레이어를 구성합니다. ANN은 결점을 인지하고 결점 이후에 스스로를 재구성함으로써 스스로를 업데이트합니다. CNN(Convolutional Neural Networks)은 주로 이미지 입력에 중점을 둡니다. CNN에서 첫 번째 레이어는 원시 이미지를 추출합니다. 다음 계층은 이전 계층에서 찾은 정보를 피어링합니다. 세 번째 레이어는 이미지의 특징을 식별하고 마지막 레이어는 이미지를 인식합니다. CNN은 명시적인 입력 설명이 필요하지 않습니다. 그들은 공간적 특징을 사용하여 데이터를 인식합니다. 시각적 인식 작업에 매우 선호됩니다.
딥 러닝은 인공 지능에서 우위를 제공합니까?
인공 지능(AI)은 기술을 보다 정확하고 세계를 대표하게 만들었습니다. AI의 머신 러닝의 일부로 딥 러닝은 많은 양의 데이터를 효율적으로 처리할 수 있습니다. 문제 해결을 위한 포인트 투 포인트 접근 방식이 있습니다. 딥 러닝은 효율적이고 빠른 시스템을 만들었지만 머신 러닝 시스템은 시작하기 위한 여러 단계를 거쳐야 합니다. 딥 러닝은 많은 훈련 시간이 필요하지만 테스트 상호성은 즉각적입니다. 딥 러닝은 인공 지능의 필수적인 부분이며 청각 및 시각 데이터를 감지하는 데 기여했습니다. 그것은 자동화된 음성 비서 장치, 차량 및 기타 많은 기술을 가능하게 했습니다.
딥러닝의 한계는 무엇입니까?
딥 러닝은 기계와 인간의 상호 작용을 발전시켰고 여러 면에서 인류가 사용할 수 있는 기술을 만들었습니다. 광범위한 교육, 고가의 장비 요구 사항 및 대용량 데이터 전제 조건의 장애물이 있습니다. 자동화된 솔루션을 제공하지만 수많은 알고리즘과 신경망의 계산이 수행될 때까지 명확하지 않은 결정을 내립니다. 경로는 특정 노드로 다시 추적되며 이는 거의 불가능합니다. 머신 러닝은 프로세스를 추적하는 직선 경로를 가지고 있으며 바람직합니다. 딥 러닝에는 많은 제한 사항이 있지만 장점이 모든 것을 능가합니다.
