신경망 이해. 뉴런에서 RNN, CNN 및 딥 러닝으로

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

신경망은 현재 가장 널리 사용되는 기계 학습 알고리즘 중 하나입니다. 신경망은 정확성과 속도면에서 다른 알고리즘을 능가한다는 것이 시간이 지남에 따라 결정적으로 입증되었습니다. CNN (Convolutional Neural Networks), RNN (Recurrent Neural Networks), AutoEncoders, Deep Learning 등과 같은 다양한 변형으로 인해 데이터 과학자 또는 기계 학습 실무자에게는 선형 회귀가 통계 학자에게 어떤 것이 었는지 천천히 변화하고 있습니다. 따라서 신경망이 무엇인지, 어떻게 구성되어 있으며, 그 범위와 한계가 무엇인지에 대한 근본적인 이해가 필수적입니다. 이 게시물은 가장 기본적인 구성 요소 인 뉴런에서 시작하여 나중에 CNN, RNN 등과 같은 가장 널리 사용되는 변형을 탐구하는 신경망을 설명하려는 시도입니다.

뉴런이란 무엇입니까?

이름에서 알 수 있듯이 신경망은 인간 두뇌의 신경 구조에서 영감을 얻었으며 인간 두뇌와 마찬가지로 기본 구성 요소를 Neuron이라고합니다. 그 기능은 인간 뉴런과 유사합니다. 즉, 일부 입력을 받아 출력을 발생시킵니다. 순전히 수학적 용어로, 기계 학습 세계의 뉴런은 수학적 함수의 자리 표시 자이며, 제공된 입력에 함수를 적용하여 출력을 제공하는 것이 유일한 작업입니다.

이미지 출처 : Google 검색에서 가져 왔으며 출처가 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

뉴런에서 사용되는 기능은 일반적으로 활성화 기능이라고합니다. date, step, sigmoid, tanh, ReLU 및 leaky ReLU에 대해 5 개의 주요 활성화 함수가 시도되었습니다. 이들 각각은 아래에 자세히 설명되어 있습니다.

활성화 기능

단계 기능

단계 함수는 다음과 같이 정의됩니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

x 값이 0보다 크면 출력이 1이고 x 값이 0보다 작 으면 0입니다. 보시다시피 스텝 함수는 0에서 미분 할 수 없습니다. 현재 신경망은 경사 하강 법과 함께 역 전파 방법을 사용하여 서로 다른 레이어의 가중치를 계산합니다. 단계 함수는 0에서 미분 할 수 없으므로 경사 하강 법으로 진행할 수 없으며 가중치 업데이트 작업에 실패합니다.

이를 극복하기 위해 단계 함수 대신이 문제 시그 모이 드 함수가 도입되었습니다.

시그 모이 드 함수

시그 모이 드 함수 또는 로지스틱 함수는 수학적으로 다음과 같이 정의됩니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

함수의 값은 z 또는 독립 변수가 음의 무한대 인 경우 0이되고 z가 무한대 인 경우 1이되는 경향이 있습니다. 이 함수는 종속 변수 동작의 근사치를 나타내며 가정이라는 점을 명심해야합니다. 이제 근사 함수 중 하나로 시그 모이 드 함수를 사용하는 이유에 대한 질문이 생깁니다. 이에 대한 몇 가지 간단한 이유가 있습니다.

1. 데이터의 비선형 성을 포착합니다. 근사한 형태이지만 정확한 모델링을 위해서는 비선형 성의 개념이 필수적입니다.

2. 시그 모이 드 함수는 전체적으로 미분 할 수 있으므로 경사 하강 법 및 역 전파 방식과 함께 사용하여 서로 다른 레이어의 가중치를 계산할 수 있습니다.

3. 시그 모이 드 함수를 따르는 종속 변수의 가정은 본질적으로 독립 변수에 대한 가우스 분포를 가정합니다. 이는 많은 무작위로 발생하는 이벤트에 대해 우리가 보는 일반 분포이며 이것은 시작하기에 좋은 일반 분포입니다.

그러나 시그 모이 드 함수는 그라디언트가 사라지는 문제가 있습니다. 그림에서 볼 수 있듯이 시그 모이 드 함수는 입력을 매우 작은 출력 범위 [0,1]로 스쿼시하고 매우 가파른 기울기를 갖습니다. 따라서 입력 공간의 큰 영역이 남아 있으며 큰 변화라도 출력에 매우 작은 변화를 생성합니다. 이를 그라디언트 소멸 문제라고합니다. 이 문제는 계층 수가 증가함에 따라 증가하므로 특정 수준에서 신경망 학습을 정체시킵니다.

Tanh 함수

tanh ( z ) 함수는 시그 모이 드의 스케일이 조정 된 버전이며 출력 범위는 [0,1] 대신 [− 1,1]입니다. [1]

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

시그 모이 드 함수 대신 일부 장소에서 Tanh 함수를 사용하는 일반적인 이유는 데이터가 0을 중심으로하기 때문에 도함수가 더 높기 때문입니다. 기울기가 높을수록 학습률이 향상됩니다. 첨부 된 아래는 tanh 및 sigmoid 두 함수의 플롯 된 기울기입니다. [2]

tanh 함수의 경우 [-1,1] 사이의 입력에 대해 [0.42, 1] 사이의 미분이 있습니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

반면에 시그 모이 드 함수의 경우 [0,1] 사이의 입력에 대해서는 [0.20, 0.25] 사이의 미분이 있습니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

위의 그림에서 알 수 있듯이 Tanh 함수는 Sigmoid 함수보다 미분 범위가 더 높으므로 학습률이 더 좋습니다. 그러나 그라디언트가 사라지는 문제는 Tanh 함수에서 여전히 지속됩니다.

ReLU 기능

Rectified Linear Unit은 딥 러닝 모델에서 가장 일반적으로 사용되는 활성화 함수입니다. 이 함수는 음수 입력을 받으면 0을 반환하지만 양수 값 x에 대해서는 해당 값을 다시 반환합니다. 따라서 f (x) = max (0, x)로 쓸 수 있습니다.

그래픽으로 보면 다음과 같습니다. [3]

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

Leaky ReLU는 가장 잘 알려진 것 중 하나입니다. 양수에 대한 ReLU와 동일합니다. 그러나 모든 음수 값에 대해 0이 아니라 일정한 기울기 (1 미만)를 갖습니다.

그 기울기는 사용자가 모델을 만들 때 설정하는 매개 변수이며 종종 α라고합니다. 예를 들어 사용자가 α = 0.3을 설정하면 활성화 함수는 다음과 같습니다. f(x) = max (0.3*x, x)이것은 x모든 값의 영향을 받음으로써 x에 포함 된 정보를보다 완벽하게 사용할 수 있다는 이론적 이점이 있습니다 .

다른 대안이 있지만 실무자와 연구자 모두 일반적으로 ReLU 이외의 다른 것을 사용하는 것을 정당화하기에 충분하지 않은 이점을 발견했습니다. 일반적인 실습에서도 ReLU는 시그 모이 드 또는 tanh 함수보다 성능이 더 우수한 것으로 나타났습니다.

신경망

지금까지 우리는 모든 신경망의 기본 구성 요소를 위해 함께 뉴런과 활성화 함수를 다루었습니다. 이제 우리는 신경망이란 무엇이며 다양한 유형에 대해 자세히 알아볼 것입니다. 나는 사람들이 그것에 대해 의심이 있다면 뉴런과 활성화 기능을 다시 방문하도록 강력히 제안합니다.

신경망을 이해하기 전에 신경망에서 계층이 무엇인지 이해하는 것이 중요합니다. 레이어는 입력을 받아 출력을 제공하는 뉴런의 모음 일뿐입니다. 이러한 각 뉴런에 대한 입력은 뉴런에 할당 된 활성화 함수를 통해 처리됩니다. 예를 들어, 여기에 작은 신경망이 있습니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

네트워크의 가장 왼쪽 계층을 입력 계층 이라고하고 가장 오른쪽 계층을 출력 계층이라고합니다 (이 예에서는 노드가 하나만 있음). 노드의 중간 계층은 그 값이 훈련 세트에서 관찰되지 않기 때문에 은닉 계층 이라고합니다 . 또한 예제 신경망에는 3 개의 입력 단위 (바이어스 단위를 계산하지 않음), 3 개의 은닉 단위 및 1 개의 출력 단위 가 있다고 말합니다. [4]

모든 신경망에는 1 개의 입력 레이어와 1 개의 출력 레이어가 있습니다. 예를 들어 히든 레이어의 수는 해결해야 할 문제의 복잡성에 따라 네트워크마다 다릅니다.

여기서 주목해야 할 또 다른 중요한 점은 각 히든 레이어가 서로 다른 활성화 함수를 가질 수 있다는 것입니다. 예를 들어 히든 계층 1은 시그 모이 드 함수를 사용할 수 있고 히든 계층 2는 ReLU를 사용할 수 있으며 그 뒤에는 동일한 신경에있는 히든 계층 3의 Tanh가 뒤 따릅니다. 회로망. 다시 사용할 활성화 기능의 선택은 해당 문제와 사용중인 데이터 유형에 따라 다릅니다.

이제 신경망이 정확한 예측을하기 위해 이러한 각 뉴런은 모든 계층에서 특정 가중치를 학습합니다. 가중치를 학습하는 알고리즘을 역 전파라고하며 자세한 내용은이 게시물의 범위를 벗어납니다.

두 개 이상의 은닉 계층이있는 신경망을 일반적으로 심층 신경망이라고합니다 .

컨볼 루션 신경망 (CNN)

컨볼 루션 신경망 (CNN)은 컴퓨터 비전 분야에서 많이 사용되는 신경망의 변형 중 하나입니다. 구성되는 숨겨진 레이어 유형에서 이름이 파생됩니다. CNN의 히든 레이어는 일반적으로 컨볼 루션 레이어, 풀링 레이어, 완전 연결 레이어 및 정규화 레이어로 구성됩니다. 여기서는 위에서 정의한 일반 활성화 함수 대신 convolution과 pooling 함수가 활성화 함수로 사용된다는 의미입니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

이를 자세히 이해하려면 컨볼 루션과 풀링이 무엇인지 이해해야합니다. 이 두 개념은 컴퓨터 비전 분야에서 차용되었으며 아래에 정의되어 있습니다.

Convolution : Convolution은 두 개의 신호 (1D) 또는 두 개의 이미지 (2D)에서 작동합니다. 하나는 "입력"신호 (또는 이미지)로, 다른 하나 (커널이라고 함)는 입력 이미지, 출력 이미지 생성 (따라서 컨볼 루션은 두 이미지를 입력으로 사용하고 세 번째 이미지를 출력으로 생성합니다). [5]

평범한 용어로 입력 신호를 받아 필터를 적용하고 본질적으로 입력 신호를 커널과 곱하여 수정 된 신호를 얻습니다. 수학적으로 두 함수 f와 g의 컨볼 루션은 다음과 같이 정의됩니다.

이것은 입력 함수와 커널 함수의 내적 일뿐입니다.

이미지 처리의 경우 커널을 전체 이미지 위로 미끄러 져서 프로세스의 각 픽셀 값을 변경하는 것으로 시각화하는 것이 더 쉽습니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

이미지 크레딧 : 기계 학습 전문가 [6]

풀링 : 풀링은 샘플 기반의 이산화 프로세스 입니다. 목표는 입력 표현 (이미지, 숨겨진 계층 출력 행렬 등)을 다운 샘플링하여 차원을 줄이고 비닝 된 하위 영역에 포함 된 특징에 대한 가정을 허용하는 것입니다.

일반적으로 최대 및 최소 풀링으로 알려진 두 가지 주요 풀링 유형이 있습니다. 이름에서 알 수 있듯이 최대 풀링은 선택한 지역에서 최대 값을 선택하는 것을 기반으로하고 최소 풀링은 선택한 지역에서 최소값을 선택하는 것을 기반으로합니다.

이미지 크레딧 : https://computersciencewiki.org/index.php/Max-pooling_/_Pooling

따라서 볼 수 있듯이 A Convolutional Neural Network 또는 CNN은 기본적으로 비선형 성을 도입하기위한 활성화 함수 외에도 convolution 및 pooling 함수를 갖는 숨겨진 계층으로 구성된 심층 신경망입니다.

자세한 설명은

http://colah.github.io/posts/2014-07-Conv-Nets-Modular/

RNN (Recurrent Neural Networks)

Recurrent Neural Networks 또는 RNN은 간단히 말해서 자연어 처리에 많이 사용되는 신경망의 매우 중요한 변형입니다. 일반적인 신경망에서 입력은 여러 계층을 통해 처리되고 두 개의 연속 입력이 서로 독립적이라는 가정하에 출력이 생성됩니다.

그러나이 가정은 많은 실제 시나리오에서는 사실이 아닙니다. 예를 들어, 주어진 시간에 주식의 가격을 예측하고 싶거나 시퀀스의 다음 단어를 예측하고 싶다면 이전 관측치에 대한 의존성을 고려해야합니다.

RNN은 시퀀스의 모든 요소에 대해 동일한 작업을 수행하고 출력이 이전 계산에 의존하기 때문에 반복 이라고 합니다. RNN에 대해 생각하는 또 다른 방법은 지금까지 계산 된 정보를 캡처하는 "메모리"가 있다는 것입니다. 이론적으로 RNN은 임의의 긴 시퀀스의 정보를 사용할 수 있지만 실제로는 몇 단계 만 되돌아 보는 것으로 제한됩니다. [7]

아키텍처 측면에서 RNN은 다음과 같습니다. 특정 시간 t의 관찰을 나타내는 각 계층이있는 다층 신경망으로 상상할 수 있습니다.

이미지 크레딧 : Google 검색에서 가져 왔으며 출처는 언급되지 않았습니다. 귀하의 이미지인지 알려 주시면 크레딧을 추가 할 수 있습니다.

RNN은 특히 RNN보다 오래 되돌아 볼 수있는 변형 LSTM을 사용하여 자연어 처리에 큰 성공을 거두었습니다. LSTM에 대한 이해에 관심이 있으시다면 꼭 방문해 보시기 바랍니다.

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

이 기사에서는 가장 기본적인 구조 인 뉴런에서 시작하여 가장 인기있는 신경망 버전까지 포함하는 이론적 관점에서 신경망을 다루려고했습니다. 이 글의 목적은 독자가 신경망이 처음부터 어떻게 구축되는지, 그것이 사용되는 모든 분야와 가장 성공적인 변형이 무엇인지 이해하도록하는 것이 었습니다.

나는 후속 포스트에서 다루려고 노력할 다른 많은 인기 버전이 있다는 것을 이해합니다. 더 일찍 다루기를 원한다면 주제를 자유롭게 제안하십시오.

참고

1. http://ufldl.stanford.edu/wiki/index.php/Neural_Networks

2. https://stats.stackexchange.com/questions/101560/tanh-activation-function-vs-sigmoid-activation-function

삼. https://www.kaggle.com/dansbecker/rectified-linear-units-relu-in-deep-learning

4. http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/

5. https://www.cs.cornell.edu/courses/cs1114/2013sp/sections/S06_convolution.pdf

6. http://machinelearninguru.com/computer_vision/basics/convolution/image_convolution_1.html

7. http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/

Suggested posts

중요하지만 종종 간과되는 데이터 과학 및 분석 기술

중요하지만 종종 간과되는 데이터 과학 및 분석 기술

이제 데이터 과학 및 분석에 들어가는 데 필요한 기술 기술을 배울 수있는 방법이 그 어느 때보 다 많았습니다. 온라인 과정, Kaggle 대회, YouTube 자습서, 스택 오버플로가있는 금광 등이 있습니다. 현장에 침입하려는 사람들은 종종 "X 데이터 작업을 수행하려면 어떤 프로그래밍 기술이 필요한가요?", "어떤 기계 학습 기술을 배워야합니까?", "기술을 구축하려면 어떤 프로젝트를 수행해야합니까?"와 같은 질문을 자주합니다. / 포트폴리오?”.

데이터 포인트가 얼마나 극단적입니까?

특이 치 및 모델 선택

데이터 포인트가 얼마나 극단적입니까?

이상치 및 모델 선택 회귀를 실행할 수있는 것은 하나이지만 올바른 모델과 올바른 데이터를 선택할 수 있다는 것은 또 다른 문제입니다. 곡선의 맨 끝에있는 데이터 포인트가 실수로 여분의 제로 (인간 오류)를 기록한 사람 또는 블랙 스완 이벤트 (드물지만 중요한 이벤트)에서 가져온 것임을 어떻게 알 수 있습니까? 회귀 모델에 유지하면서 여전히 작동하는 예측을 가질 수 있습니까? 이 기사에서 알아 보자.