피드 포워드 신경망 의 차이점은 무엇입니까? div> 및 LSTM ? 아키텍처가 어떻게 다른가요?

답변

피드 포워드 신경망은 다음과 같습니다.

input-> hidden layer 1-> hidden layer 2-> …-> hidden layer k-> output.

각 레이어는 서로 다른 수의 뉴런을 가질 수 있지만 이것이 바로 아키텍처입니다. .

LSTM (장기 기억 셀)은 신경망 내의 특별한 종류의 노드입니다. 피드 포워드 신경망에 삽입 할 수 있으며 일반적으로 .이 경우 피드 포워드 신경망을 LSTM이라고합니다 (혼란 스럽습니다!).

LSTM은 어떻게 작동합니까? 여기에서 제 답변을 살펴보십시오. RNN (Recurrent Neural Network)의 레이어 삭제-

tl; dr : LSTM 셀에는 3 개의 게이트가 있으며, 각 게이트는 어떤 방식 으로든 입력을 변조하는 데 사용됩니다. 입력 게이트, 잊어 버림 게이트 및 출력 게이트. “메모리”와 게이트에 의해 수정되는 출력이 있습니다. 즉, 단일 LSTM 셀 내에서 :

(input 이전 셀 상태)-> (input & Forget gates)-> (업데이트 셀 상태)

(input & 이전 셀 상태 & 업데이트 된 셀 상태)-> (출력 게이트)

이러한 셀을 다양한 구성으로 쌓을 수 있습니다. 따라서 단일 “LSTM 네트워크”는 없습니다. 오히려 이러한 기본 노드에서 빌드 할 수있는 가능한 많은 아키텍처 세트입니다.

시작하기를 바랍니다!

댓글

  • 답변 해 주셔서 감사합니다. 아키텍처에 대한 이해를 높이기 위해 이미지를 추가해 주시겠습니까?
  • 피드 포워드 네트워크에서 역 전파가 발생합니까? 피드 포워드 네트워크
  • 안녕하세요 @codezcar, 제가 연결 한 답변에 LSTM 이미지가 있습니다. 피드 포워드 신경망의 경우 이미지는 다음과 같습니다. medium.com/random-techpark/ … 예, 역 전파를 사용하여 모든 유형의 신경망에서 최적의 가중치를 찾을 수 있습니다 (feed forward, LSTM, GRU, … 모든 것!).

Answer

Philip이 언급했듯이 피드백 루프가있는 네트워크는 데이터에서 시간을 모델링하는 데 도움이됩니다.

다양한 NN 아키텍처에 대한 개요를 보려면 다음을 참조하십시오. https://i.stack.imgur.com/LgmYv.png

Answer

피드 포워드 네트워크는 모든 노드가 다음 레이어의 노드와 만 연결되는 네트워크입니다. “원형”연결이 없습니다. 데이터는 루프없이 입력에서 출력으로 만 이동할 수 있습니다. 예로는 단순 계층 퍼셉트론 또는 다중 계층인지가 있습니다. 컨볼 루션 신경망은 순전히 피드 포워드 네트워크입니다.

LSTM은 그 중 하나입니다. 이러한 RNN은 “옆으로”연결될 수도 있습니다. 즉, 데이터가 다음 계층으로 전달 될 수있을뿐만 아니라 동일한 계층의 다른 노드로 또는 뒤로 이동할 수 있습니다. 아키텍처에서 즉, 숨겨진 계층이 하나 뿐인 네트워크가 있지만 해당 계층의 노드에 루프를 추가하여 “깊이”를 얻을 수 있습니다. 일반적으로 데이터의 “시간”을 나타냅니다.

이 이미지는 피드백 루프를 통한 “깊이”의 의미 : https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg

기술적으로는 더 많은 루프를 추가할수록 더 깊고 깊어집니다.

Answer

LSTM 네트워크에 대한 높은 수준의 직관에 대해 논의하고 싶습니다. 다음은 이유 측면을 탐색하는 데 도움이되는 몇 가지 질문입니다.

  • 왜 / 언제 피드 포워드 신경망 (FFNN)을 통해 LSTM을 사용합니까?
  • LSTM의 장단점은 무엇이며 FFNN과 어떻게 다른가요?
  • 기존의 RNN (Recurrent Neural Network)과 어떻게 다른가요?

FFNN (Feed Forward Neural Networks)

먼저 아키텍처가있는 표준 FFNN을 고려해 보겠습니다. 데이터 과학 이미지로 : * 수작업으로 딥 러닝 모델의 매개 변수 개수 계산 *

아시다시피이 FFNN은 3 개의 입력을 받아 히든 레이어를 사용하여 처리하고 2 개의 출력을 생성합니다. 이 아키텍처를 확장하여 더 많은 히든 레이어를 통합 할 수 있지만 기본 개념은 여전히 유지됩니다. 입력이 들어오고 한 방향으로 처리되고 마지막에 출력됩니다.

이 개념은 매우 잘 설명되어 있습니다. 다른 기사에 의해 자세히 설명하지 않겠습니다.핵심 사항은 다음과 같습니다.

FFNN을 반복 아키텍처와 구분하는 주요 조건은 뉴런에 대한 입력이 해당 뉴런 이전의 계층에서 나와야한다는 것입니다.

FFNN Wikipedia

RNN (Recurrent Neural Networks)

순환 신경망은 수학적으로 FFNN 모델과 매우 유사합니다. 주요 차이점은 FFNN에 적용된 제한이 더 이상 적용되지 않는다는 것입니다.

뉴런에 대한 입력은 다른 레이어에서 올 수 있습니다.

통계 언어 모델링에 반복 신경망을 적용한 설문 조사

이 아키텍처는 종종 다음과 같은 반복 단위로 “롤링”되는 것을 볼 수 있습니다.

중간 기사 : 순환 신경망에 대해 알아야 할 모든 것

그러므로 아키텍처 다이어그램에서 볼 수있는 “롤링 된”단위는 다음과 같습니다. 믿을 수 없을 정도로 작습니다. 펼칠 때 네트워크는 종종 매우 깊습니다!

RNN Wikipedia

장기 기억 (LSTM)

LSTM은 소실 / 폭발 기울기 문제를 해결하기 위해 설계된 특수 유형의 RNN입니다.

전통적인 RNN을 훈련 할 때 네트워크는 종종 소실 / 폭발 그라디언트로 어려움을 겪습니다. 반복되는 단위를 펼치면 매우 깊은 네트워크가 생성됩니다! 기존 RNN 아키텍처를 사용하는 역 전파 알고리즘을 거치면 네트워크를 통해 전파함에 따라 이전 계층이 점점 덜 중요해집니다. 따라서 기존 RNN은 정보, 특히 현재 시간 이전에 여러 시간 단계에 나타나는 데이터를 잊어 버리기 쉽습니다.

예제 LSTM 셀은 다음과 같이 설명됩니다.

LSTM 셀 아키텍처

이 구조는 기존의 RNN 펼쳐진 단위와 유사하지만 LSTM과의 주요 차이점 게이트는 입력 게이트, 출력 게이트 및 망각 게이트입니다. 이러한 게이트의 기능은 이름으로 잘 설명됩니다.

  • 입력 게이트 는 셀에 입력되는 데이터
  • 포겟 게이트 는 데이터가 셀 내에 머무르는 범위를 제어합니다.
  • li>

  • 출력 게이트 는 활성화 함수를 통해 셀의 출력을 제어합니다.

이 github IO 게시물은 LSTM의 기본 사항에 대한 훌륭한 소개입니다. 또한 LSTM 수학의 직관을 설명하는 놀라운 작업을 수행합니다.

LSTM Wikipedia

RNN의 속성 및 사용 사례

피드백 루프는 반복적 인 신경망을 시간 문제에 더 적합하게 만듭니다. 시간은 아키텍처의 요소입니다!

예를 살펴 보겠습니다.

문장에서 다음 단어를 예측하기 위해 네트워크를 사용하고있을 수 있습니다. 입력을 받았다고 가정 해 보겠습니다.

굶주린 앨리스는 [예측]을 사기 위해 가장 가까운 상점으로 운전합니다.

반복 신경망은 첫 단어를 잊어 버릴 수 있습니다. LSTM이 이상적으로 전파하는 반면 “굶주림”. 따라서 LSTM은 이전에 문장에서들은 문맥을 사용하여 “음식”을 추측하는 반면 RNN은 특히 긴 문장이나 여러 문장이 주어지면 상점에서 구입 한 모든 것을 추측 할 수 있습니다.

게이팅 메커니즘 이러한 유형의 메모리를 허용하는 방법은 @StatsSorceress가 여기에서 잘 설명합니다. RNN (Recurrent Neural Network)의 레이어 삭제-

RNN은 시퀀스를 처리하도록 설계되었습니다. 이것은 비디오 (이미지 시퀀스), 쓰기 / 말하기 (단어 시퀀스)를 분석하는 데 사용할 수 있습니다. 등

LSTM은 중요한 정보가 시간이 지나도 유지되도록 설계되었습니다. RNN은 종종 시간이 지남에 따라 “잊혀집니다”.

FFNN은 메모리가없는 시스템입니다. 일부 입력을 처리 한 후에는 해당 입력에 대한 모든 것을 잊어 버립니다. 예를 들어, 5 개 단어를 입력으로 받아 다음 출력을 예측하는 FFNN을 훈련한다고 가정 해 보겠습니다. 그러면이 모델은 위의 예에서 입력을받습니다.

[예측]을 구입하는 가장 가까운 상점 .

이것은 분명히 맥락을 잃고 있습니다. 결과가 좋지 않을 것입니다.

이제 입력에 “굶주림”이라는 단어를 포함하도록 많은 입력을받는 FFNN을 만들면 어떨까요? 즉, 이전 데이터를 충분히 표현하기 위해 FFNN에 대한 입력 수를 늘릴 수 없습니까?

답은 예이지만이 방법은 비효율적이며 종종 비실용적입니다. 예를 들어, 전체 단락 뒤의 문맥을 기억해야합니다. 매우 큰 FFNN이 필요합니다! 또한 우리가 문맥으로 원하는 단어 수를 어떻게 알 수 있습니까? 20 개면 충분할까요? 30? 100? LSTM 아키텍처는 네트워크가 일시적인 메모리를 관리하도록함으로써 이러한 문제를 완전히 제거합니다. 이 문제는 각 프레임이 NLP 작업보다 훨씬 더 많은 입력을 필요로하기 때문에 비디오 처리 문제로 인해 악화됩니다.

그러나 LSTM 단위는 본질적으로 FFNN 단위보다 계산적으로 더 복잡하므로 훈련하는 경우가 많습니다. 더 어렵고 더 많은 시간이 걸립니다. 이러한 단점에도 불구하고 시간적 데이터 문제에서 성공하면 FFNN을 통해 사용하는 것이 분명합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다