CNN 대 RNN: CNN과 RNN의 차이점

게시 됨: 2021-02-25

목차

소개

인공 지능 분야에서는 인간의 뇌에서 영감을 받은 신경망이 다양한 데이터에서 복잡한 정보를 추출 및 처리하는 데 널리 사용되고 있으며 이러한 응용 분야에서 CNN(Convolutional Neural Networks)과 RNN(Recurrent Neural Networks)을 모두 사용하고 있습니다. 유용한 것으로 입증되고 있습니다.

이 기사에서 우리는 Convolutional Neural Networks와 Recurrent Neural Networks의 이면에 있는 개념을 이해하고, 그 적용을 살펴보고, 널리 사용되는 두 신경망 유형의 차이점을 구별할 것입니다.

세계 최고의 대학에서 머신 러닝 교육배우십시오 . 석사, 이그 제 큐 티브 PGP 또는 고급 인증 프로그램을 획득하여 경력을 빠르게 추적하십시오.

신경망 및 딥 러닝

Convolutional Neural Networks와 Recurrent Neural Networks의 개념에 대해 알아보기 전에 Neural Networks의 개념과 이것이 Deep Learning과 어떻게 연결되는지 이해합시다.

최근 딥러닝(Deep Learning)은 한때 여러 분야에서 널리 사용되는 개념으로 요즘 화두입니다. 그러나 그것이 그렇게 널리 언급되는 이유는 무엇입니까? 이 질문에 답하기 위해 우리는 신경망의 개념에 대해 배울 것입니다.

간단히 말해서 신경망은 딥 러닝의 중추입니다. 그것들은 데이터에 대한 일련의 변환을 수행하는 뉴런으로 알려진 고도로 상호 연결된 요소로 구성된 일련의 레이어로, 우리가 피처라고 하는 해당 데이터에 대한 자체적인 이해를 생성합니다.

신경망이란 무엇입니까?

우리가 통과해야 하는 첫 번째 개념은 신경망의 개념입니다. 우리는 인간의 두뇌가 지금까지 연구된 복잡한 구조 중 하나라는 것을 알고 있습니다. 그 복잡성으로 인해 내부 작용을 밝히는 데 큰 어려움이 있었지만 현재는 그 비밀을 밝히기 위해 여러 종류의 연구가 수행되고 있습니다. 이 인간 두뇌는 신경망 모델 뒤에 영감을 줍니다.

정의에 따르면 신경망은 이러한 신경망을 활용하여 두뇌 활동을 모방하고 복잡한 문제를 해결하는 딥 러닝의 기능적 단위입니다. 입력 데이터가 신경망에 입력되면 퍼셉트론 계층을 통해 처리되어 최종적으로 출력됩니다.

신경망은 기본적으로 3개의 레이어로 구성됩니다.

  • 입력 레이어
  • 숨겨진 레이어
  • 출력 레이어

입력 계층은 인공 뉴런의 후속 계층에서 추가 사전 처리를 위해 신경망 시스템에 제공되는 입력 데이터를 읽습니다. Input Layer와 Output Layer 사이에 존재하는 모든 레이어를 Hidden Layers라고 합니다.

은닉층에 존재하는 뉴런이 가중 입력과 편향을 사용하고 활성화 함수를 사용하여 출력을 생성하는 곳입니다. 출력 계층은 주어진 프로그램에 대한 출력을 제공하는 뉴런의 마지막 계층입니다.

원천

신경망은 어떻게 작동합니까?

이제 우리는 신경망의 기본 구조에 대한 아이디어를 얻었으므로 신경망이 어떻게 작동하는지 이해할 것입니다. 작동을 이해하려면 먼저 Perceptron으로 알려진 신경망의 기본 구조 중 하나에 대해 배워야 합니다.

퍼셉트론 은 가장 기본적인 형태의 신경망의 일종입니다. 하나의 은닉층만 있는 단순한 피드포워드 인공 신경망입니다. 퍼셉트론 네트워크에서 각 뉴런은 다른 모든 뉴런과 순방향으로 연결됩니다.

이러한 뉴런 간의 연결에 가중치가 부여되기 때문에 두 뉴런 간에 전달되는 정보는 이러한 가중치에 의해 강화되거나 약화됩니다. 신경망의 훈련 과정에서 올바른 값을 얻기 위해 조정되는 것은 이러한 가중치입니다.

퍼셉트론은 본질적으로 이진인 변수의 벡터를 단일 이진 출력에 매핑하는 이진 분류기 함수를 사용합니다. 이것은 지도 학습에서도 사용할 수 있습니다. 퍼셉트론 학습 알고리즘의 단계는 다음과 같습니다.

  1. 모든 입력에 가중치 w를 곱합니다. 여기서 w는 초기에 고정되거나 무작위화될 수 있는 실수입니다.
  2. 곱을 더하여 가중 합계를 구합니다. ∑ wj xj
  3. 입력의 가중 합이 얻어지면 가중 합이 적용된 활성화 함수에 따라 특정 임계값보다 큰지 여부를 결정하기 위해 활성화 함수가 적용됩니다. 출력은 임계값 조건에 따라 1 또는 0으로 지정됩니다. 여기서 "-threshold" 값은 바이어스라는 용어도 나타냅니다. b.

이러한 방식으로 퍼셉트론 학습 알고리즘은 오늘날 설계되고 개발된 신경망에 존재하는 뉴런을 작동(값 = 1)하는 데 사용할 수 있습니다. 퍼셉트론 학습 알고리즘의 또 다른 표현은 다음과 같습니다.

f(x) = 1, ∑ wj xj + b ≥ 0인 경우

0, ∑ wj xj + b < 0인 경우

퍼셉트론은 오늘날 널리 사용되지는 않지만 여전히 신경망의 핵심 개념 중 하나로 남아 있습니다. 추가 연구에서 하나의 퍼셉트론에서도 가중치 또는 편향의 작은 변화가 출력을 1에서 0으로 또는 그 반대로 크게 변경할 수 있음을 이해했습니다. 이것은 퍼셉트론의 주요 단점 중 하나였습니다. 따라서 ReLU, Sigmoid 함수와 같은 보다 복잡한 활성화 함수가 개발되어 인공 뉴런의 가중치와 편향이 약간만 변경되었습니다.

원천

컨볼루션 신경망

Convolutional Neural Network는 이미지를 입력으로 사용하고 이미지의 다양한 부분에 다양한 가중치와 편향을 할당하여 서로 구별할 수 있도록 하는 딥 러닝 알고리즘입니다. 미분 가능하게 되면 다양한 활성화 기능을 사용하여 컨볼루션 신경망 모델은 이미지 인식, 이미지 분류, 객체 및 얼굴 감지 등을 포함한 이미지 처리 영역에서 여러 작업을 수행할 수 있습니다.

Convolutional Neural Network Model의 기본은 입력 이미지를 받는 것입니다. 입력 이미지는 레이블이 지정되거나(예: 고양이, 개, 사자 등) 레이블이 지정되지 않을 수 있습니다. 이에 따라 딥 러닝 알고리즘은 이미지에 레이블이 지정되는 지도 알고리즘과 이미지에 특정 레이블이 지정되지 않은 비지도 알고리즘의 두 가지 유형으로 분류됩니다.

컴퓨터 기계에서 입력 이미지는 더 자주 행렬 형태의 픽셀 배열로 보입니다. 이미지는 대부분 hxwxd 형식입니다(여기서 h = 높이, w = 너비, d = 치수). 예를 들어, 크기가 16 x 16 x 3인 행렬 배열의 이미지는 RGB 이미지를 나타냅니다(3은 RGB 값을 나타냄). 반면에 14 x 14 x 1 행렬 배열의 이미지는 회색조 이미지를 나타냅니다.

원천

컨볼루션 신경망 계층

위의 Convolutional Neural Network의 기본 아키텍처에서 볼 수 있듯이 CNN 모델은 입력 이미지가 출력을 얻기 위해 전처리를 거치는 여러 계층으로 구성됩니다. 기본적으로 이러한 레이어는 두 부분으로 구분됩니다.

  • 입력 레이어, 컨볼루션 레이어, 풀링 레이어를 포함한 처음 세 레이어는 모델에 공급된 이미지에서 기본 수준의 특징을 도출하는 특징 추출 도구 역할을 합니다.
  • 최종 완전 연결 계층 및 출력 계층은 특징 추출 계층의 출력을 사용하고 추출된 특징에 따라 이미지의 클래스를 예측합니다.

첫 번째 레이어는 이미지가 행렬 배열 형태로 컨볼루션 신경망 모델에 공급되는 입력 레이어 입니다. 32픽셀의 그런 다음 이러한 입력 이미지는 Convolution 의 수학적 연산이 수행되는 Convolutional Layer 를 통과합니다 .

입력 이미지는 커널 또는 필터로 알려진 다른 정방 행렬과 컨볼루션됩니다. 커널을 입력 이미지의 픽셀 위로 하나씩 슬라이드하여 가장자리 및 선과 같은 이미지의 기본 수준 특징에 대한 정보를 제공하는 특징 맵으로 알려진 출력 이미지를 얻습니다.

Convolutional Layer 다음에는 계산 비용을 줄이기 위해 feature map의 크기를 줄이는 것을 목표로 하는 Pooling layer 가 있습니다. 이것은 Max Pooling, Average Pooling 및 Sum Pooling과 같은 여러 유형의 pooling에 의해 수행됩니다.

완전 연결 (FC) 계층은 계층 평면화되어 FC 계층에 공급되는 컨볼루션 신경망 모델의 끝에서 두 번째 계층입니다. 여기에서 Sigmoid, ReLU 및 tanH 함수와 같은 활성화 함수를 사용하여 레이블 예측이 발생하고 최종 출력 계층 에서 제공 됩니다.

CNN이 부족한 부분

시각적 이미지 데이터에서 Convolutional Neural Network의 유용한 응용 프로그램이 너무 많기 때문에 CNN은 일련의 이미지(비디오)와 잘 작동하지 않고 시간 정보 및 텍스트 블록을 해석하는 데 실패한다는 작은 단점이 있습니다.

문장과 같이 시간적이거나 순차적인 데이터를 다루기 위해서는 과거 데이터와 미래 데이터로부터 학습하는 알고리즘이 필요합니다. 운 좋게도 Recurrent Neural Networks는 바로 그 일을 합니다.

순환 신경망

순환 신경망은 시간 또는 순차적 정보를 해석하도록 설계된 네트워크입니다. RNN은 더 나은 예측을 위해 시퀀스의 다른 데이터 포인트를 사용합니다. 입력을 받고 시퀀스에서 이전 노드 또는 이후 노드의 활성화를 재사용하여 출력에 영향을 주어 이를 수행합니다.

원천

내부 메모리의 결과로, 순환 신경망은 수신한 입력과 같은 중요한 세부 정보를 기억할 수 있으므로 다음에 올 내용을 매우 정확하게 예측할 수 있습니다. 따라서 시계열, 음성, 텍스트, 오디오, 비디오 등과 같은 순차적 데이터에 가장 선호되는 알고리즘입니다. 순환 신경망은 다른 알고리즘에 비해 시퀀스와 컨텍스트에 대해 훨씬 더 깊은 이해를 형성할 수 있습니다.

순환 신경망은 어떻게 작동합니까?

Recurrent Neural Networks에 대한 작업을 이해하기 위한 기반은 Convolutional Neural Networks, Perceptron이라고도 알려진 단순 피드포워드 신경망의 작업과 동일합니다. 또한 순환 신경망에서는 이전 단계의 출력이 현재 단계의 입력으로 제공됩니다. 대부분의 신경망에서 출력은 일반적으로 입력과 독립적이며 그 반대의 경우도 마찬가지입니다. 이것이 RNN과 다른 신경망 간의 기본적인 차이점입니다.

원천

따라서 RNN에는 현재와 최근 과거의 두 가지 입력이 있습니다. 이것은 데이터 시퀀스에 다음에 올 것에 대한 중요한 정보가 포함되어 있기 때문에 중요합니다. 이것이 RNN이 다른 알고리즘이 할 수 없는 일을 할 수 있는 이유입니다. Recurrent Neural Networks의 가장 중요하고 중요한 기능은 시퀀스에 대한 일부 정보를 기억하는 Hidden 상태입니다.

순환 신경망에는 계산된 것에 대한 모든 정보를 저장하는 메모리가 있습니다. 각 입력에 대해 동일한 매개변수를 사용하고 모든 입력 또는 은닉층에 대해 동일한 작업을 수행함으로써 매개변수의 복잡성이 감소됩니다.

CNN과 RNN의 차이점

컨볼루션 신경망 순환 신경망
딥 러닝에서 CNN(Convolutional Neural Network)은 일종의 심층 신경망으로, 시각적 이미지 분석에 가장 일반적으로 적용됩니다. 순환 신경망(RNN)은 노드 간의 연결이 시간 순서를 따라 방향성 그래프를 형성하는 인공 신경망의 한 종류입니다.
이미지와 같은 공간 데이터에 적합합니다. RNN은 순차 데이터라고도 하는 시간 데이터에 사용됩니다.
CNN은 최소량의 전처리를 사용하도록 설계된 다층 퍼셉트론의 변형이 있는 일종의 피드포워드 인공 신경망입니다. 피드포워드 신경망과 달리 RNN은 내부 메모리를 사용하여 임의의 입력 시퀀스를 처리할 수 있습니다.
CNN은 RNN보다 더 강력한 것으로 간주됩니다. RNN은 CNN과 비교할 때 기능 호환성이 적습니다.
이 CNN은 고정 크기의 입력을 받아 고정 크기 출력을 생성합니다. RNN은 임의의 입력/출력 길이를 처리할 수 있습니다.
CNN은 이미지 및 비디오 처리에 이상적입니다. RNN은 텍스트 및 음성 분석에 이상적입니다.
응용 프로그램에는 이미지 인식, 이미지 분류, 의료 이미지 분석, 얼굴 감지 및 컴퓨터 비전이 포함됩니다. 응용 프로그램에는 텍스트 번역, 자연어 처리, 언어 번역, 감정 분석 및 음성 분석이 포함됩니다.

결론

따라서 신경망의 가장 인기 있는 두 가지 유형인 Convolutional Neural Networks와 Recurrent Neural Networks의 차이점에 대한 이 기사에서는 CNN과 RNN의 기본 사항과 함께 Neural Network의 기본 구조를 배웠고 마지막으로 요약했습니다. 현실 세계에서의 응용 프로그램과 두 가지를 간략하게 비교합니다.

머신 러닝에 대해 자세히 알아보려면 IIIT-B & upGrad의 기계 학습 및 AI 경영자 PG 프로그램을 확인하세요. 이 프로그램은 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT를 제공합니다. -B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

CNN이 RNN보다 빠른 이유는 무엇입니까?

CNN은 이미지를 처리하도록 설계되었기 때문에 RNN보다 빠르지만 RNN은 텍스트를 처리하도록 설계되었습니다. RNN은 이미지를 처리하도록 훈련될 수 있지만 서로 더 가까이 있는 대조되는 기능을 분리하는 것은 여전히 ​​어렵습니다. 예를 들어 눈, 코, 입이 있는 얼굴 사진이 있는 경우 RNN은 어떤 기능을 먼저 표시할지 파악하는 데 어려움을 겪습니다. CNN은 점 그리드를 사용하며 알고리즘을 사용하여 모양과 패턴을 인식하도록 훈련할 수 있습니다. CNN은 이미지를 정렬하는 데 RNN보다 낫습니다. 계산이 간단하고 이미지를 정렬하는 데 더 우수하기 때문에 RNN보다 빠릅니다.

RNN은 무엇에 사용됩니까?

순환 신경망(RNN)은 단위 간의 연결이 방향성 주기를 형성하는 인공 신경망의 한 종류입니다. 한 단위의 출력이 다른 단위의 입력이 되는 식으로 한 뉴런의 출력이 다른 뉴런의 입력이 되는 것과 같습니다. RNN은 표준 방법으로 수행하기 어려운 음성 인식 및 기계 번역과 같은 복잡한 작업을 수행하는 데 성공적으로 사용되었습니다.

RNN이란 무엇이며 Feedforward 신경망과 어떻게 다릅니까?

RNN(Recurrent Neural Networks)은 순차적인 데이터를 처리하는 데 사용되는 일종의 신경망입니다. 순환 신경망은 입력 계층, 하나 이상의 은닉 계층 및 출력 계층으로 구성됩니다. 은닉층은 입력 데이터의 내부 표현을 학습하도록 설계되어 출력 레이어에 외부 표현으로 제공됩니다. RNN은 backpropagation의 도움으로 훈련됩니다. RNN은 종종 피드포워드 신경망(FNN)과 비교됩니다. RNN과 FNN 모두 데이터의 내부 표현을 학습할 수 있지만 RNN은 FNN이 할 수 없는 장기 종속성을 학습할 수 있습니다.