본문 바로가기

MACHINE LEARNING

신경망에 대해 알아야 할 모든 것

이 문서는 영문으로된 내용을 구글 번역기를 활용하여 번역한 내용입니다. 
개인적인 공부 및 추후 다시 볼 수 있도록 하기 위해 개인 블로그에 번역 내용을 옮겨 놓았습니다.
원문과 내용이 다를시 책임지지 않으며, 저작권 문제가 발생시 언제든 삭제 될 수 있습니다. 

원문보기 : https://hackernoon.com/everything-you-need-to-know-about-neural-networks-8988c3ee4491



신경망에 대해 알아야 할 모든 것

Courtesy: Kailash Ahirwar (Co-Founder & CTO, Mate Labs)

Intro:

인공 지능이란 무엇인지를 이해하고 머신러닝 및 딥러닝의 어떻게 힘을 발휘하는지 압도적인 경험입니다. 우리는 그 경험을 통해 얻은 독학 엔지니어 그룹이며 우리는 이해와 도움을 줄 수 있는 단순한 형태로 (블로그에서) 공유하고 있으므로 이 분야에 익숙하지 않은 누구나 쉽게 이 기술에 대한 이해를 시작할 수 있습니다.
또한, 우리 사명을 통해 우리는 누구나 한 줄의 코드 작성 없이도 머신러닝 및 딥러닝 모델을 구축할 수있는 플랫폼을 만들었습니다.

뉴런(Node)  - 신경망의 기본 단위입니다. 특정 입력 수와 편향값을 얻습니다. 신호(값)가 도착하면 가중치가 곱해집니다. 뉴런에 4개의 입력이 있으면 훈련 시간 동안 4개의 가중치를 조정할 수 있습니다.


신경망중 하나의 뉴런에서 작동

연결(Connections)  - 하나의 층의 하나의 뉴런을 다른 층 또는 같은 층의 다른 뉴런에 연결합니다. 연결에는 항상 연결된 가중치가 있습니다. 훈련의 목표는 손실(오류)을 줄이기 위해 이 가중치를 업데이트하는 것입니다.


편향(Bias; Offset)  - 뉴런에 대한 추가 입력이며 항상 1이며 자체 연결 가중치가 있습니다. 이렇게 하면 모든 입력이 0(모두 0) 인 경우에도 뉴런에서 활성화 될 것입니다.

활성화함수 (전달함수)  - 활성화 함수는 신경망에 비선형성을 도입하는데 사용됩니다. 더 작은 범위로 값을 축소합니다. 시그모이 드 활성화함수는 0에서 1사이의 값으로 축소합니다. 딥러닝 업계에서 사용되는 많은 활성화함수가 있으며 ReLU, SeLU 및 TanH가 시그모이드 활성화함수보다 선호됩니다. 이 기사에서는 다양한 활성화기능을 설명했습니다.






기본 신경망 레이아웃
입력층 - 이것은 신경망의 첫 번째 층입니다. 입력 신호(값)를 받아서 다음 층으로 전달합니다. 입력 신호(값)에 대한 연산을 적용하지 않으며 연관된 가중치 및 편향 값이 없습니다. 우리 신경망에는 4 개의 입력 신호 x1, x2, x3, x4가 있습니다.
은닉층 -  은닉층에는 입력 데이터에 다양한 변형을 적용하는 뉴런(노드)이 있습니다. 하나의 은닉층은 세로로 쌓인 뉴런 모음입니다 (표현). 위에 주어진 이미지에는 5개의 은닉층이 있습니다. 우리의 신경망에서 첫 번째 은닉층은 4뉴런(노드), 두 번째 5뉴런, 세 번째는 6뉴런, 네 번째는 4, 다섯 번째는 3뉴런을 가지고 있습니다. 마지막 은닉층은 값을 출력층으로 전달합니다. 은닉층의 모든 뉴런은 다음 층의 모든 뉴런에 연결되므로, 완전연결 은닉층입니다.
출력층 - 이 층은 신경망의 마지막 층이며 마지막 은닉층으로 부터 입력을 받습니다. 이 층을 사용하여 원하는 값과 원하는 범위를 얻을 수 있습니다. 이 신경망에서는 출력층에 3개의 뉴런이 있고 y1, y2, y3을 출력합니다.
입력 형상 - 입력층에 전달하는 입력 행렬의 형상입니다. 우리 신경망의 입력층은 4개의 뉴런을 가지고 있으며 1개의 샘플당 4개의 값을 기대합니다. 한 번에 한 샘플씩 먹이면 우리의 신경망에 대한 원하는 입력 형상이 (1, 4, 1)이됩니다. 100개의 샘플을 입력하면 입력 형상은 (100, 4, 1)이 됩니다. 서로 다른 라이브러리는 형상이 다른 형식이어야합니다.
가중치(매개 변수) - 가중치는 단위 간의 연결 강도를 나타냅니다. 노드1 에서 노드2 까지의 가중치가 더 큰 경우, 뉴런1 이 뉴런2 보다 더 큰 영향을 미친다는 것을 의미합니다. 가중치는 입력값의 중요성을 떨어 뜨립니다. 0에 가까운 가중치는 이 입력을 변경하면 출력이 변경되지 않음을 의미합니다. 음의 가중치는 이 입력을 늘리면 출력이 감소 함을 의미합니다. 가중치는 입력이 출력에 미치는 영향을 결정합니다.

순전파
순전파 - 순전파는 입력 값을 신경망에 공급하고 예측 값이라고 부르는 출력을 얻는 프로세스입니다. 때로는 순전파를 추론이라고 부릅니다. 신경망의 첫 번째 층에 입력 값을 입력하면 아무런 조작없이 입력 값이 전달됩니다. 두 번째 층은 첫 번째 층에서 값을 가져와 곱셈, 더하기 및 활성화 작업을 적용하고 이 값을 다음 층으로 전달합니다. 후속 층에 대해 동일한 프로세스가 반복되고 마지막으로 마지막 층에서 출력 값을 얻습니다.

역전파
역전파 - 순전파 후에 예측 된 값인 출력 값을 얻습니다. 오차를 계산하기 위해 예측값과 실제 출력값을 비교합니다. 우리는 손실 함수 를 사용하여 오류값을 계산합니다(위 참조). 그런 다음 신경망에서 각각의 모든 가중치에 대한 오차값 의 미분을 계산합니다 . 역전파는 Differential Calculus의 체인 규칙을 사용합니다. 체인 규칙에서 우리는 마지막 층의 가중치를 기준으로 오류값의 도함수를 계산합니다. 이 결과로 파생된, 기울기값을 사용하여 두 번째 마지막 층의 기울기를 계산합니다. 우리는 신경망에서 각각의 모든 가중치에 대한 기울기를 얻을때까지 이 과정을 반복 합니다. 그런 다음 가중치에서 이 기울기값을 빼서 오류값을 줄 입니다. 이런 식으로 우리는 지역최소값(Local Minima)에 가깝게(하강) 이동합니다(최소 손실을 의미 함).


학습률 - 우리가 신경망을 훈련 할 때 우리는 일반적으로 가중치를 최적화하기 위해 경사하강법을 사용 합니다. 매 반복마다 우리는 역전파를 사용하여 각 가중치에 대한 손실 함수의 미분을 계산하고 그 가중치에서 그 값을 뺍니다. 학습률은 가중치(매개 변수) 값 을 업데이트하는 속도를 결정 합니다. 학습률은 충분히 높아야하며, 지역최소값을 찾을 만큼 충분히 낮아야합니다.