신경망: 아키텍처, 구성 요소 및 상위 알고리즘
게시 됨: 2020-05-06인공 신경망 (ANN)은 딥 러닝 프로세스의 필수적인 부분을 구성합니다. 그들은 인간 두뇌의 신경 구조에서 영감을 받았습니다. AILabPage 에 따르면 ANN은 "인간의 두뇌 작업 및 처리 데이터(정보) 모델을 시뮬레이션하기 위해 인간의 생물학적 두뇌 구조에서 영감을 받은 단순하고 고도로 상호 연결된 처리 요소로 작성된 복잡한 컴퓨터 코드"입니다.
세계 최고의 대학에서 온라인으로 최고의 머신 러닝 인증 에 가입하세요 . 석사, 대학원 대학원 과정, ML 및 AI 고급 인증 프로그램에 참여하여 경력을 빠르게 추적하세요.
딥 러닝은 다음을 포함한 5가지 핵심 신경망에 중점을 둡니다.
- 다층 퍼셉트론
- 방사형 기저 네트워크
- 순환 신경망
- 생성적 적대 네트워크
- 컨볼루션 신경망.
목차
신경망: 아키텍처
신경망은 단일 출력을 생성하기 위해 여러 입력을 받을 수 있는 인공 뉴런으로 구성된 복잡한 구조입니다. 이것은 입력을 의미 있는 출력으로 변환하는 신경망의 주요 작업입니다. 일반적으로 신경망은 하나 이상의 숨겨진 레이어가 있는 입력 및 출력 레이어로 구성됩니다.
신경망에서 모든 뉴런은 서로 영향을 미치므로 모두 연결되어 있습니다. 네트워크는 데이터 세트의 모든 측면과 데이터의 다른 부분이 서로 어떻게 관련되는지 여부를 확인하고 관찰할 수 있습니다. 이것이 신경망이 방대한 양의 데이터에서 매우 복잡한 패턴을 찾을 수 있는 방법입니다.
읽기: 머신 러닝과 신경망

신경망에서 정보의 흐름은 두 가지 방식으로 발생합니다.
- 피드포워드 네트워크: 이 모델에서 신호는 출력 레이어를 향해 한 방향으로만 이동합니다. Feedforward 네트워크에는 입력 레이어와 0개 또는 여러 개의 숨겨진 레이어가 있는 단일 출력 레이어가 있습니다. 패턴 인식에 널리 사용됩니다.
- 피드백 네트워크: 이 모델에서 순환 또는 대화형 네트워크는 내부 상태(메모리)를 사용하여 입력 시퀀스를 처리합니다. 그 안에서 신호는 네트워크의 루프(숨겨진 계층)를 통해 양방향으로 이동할 수 있습니다. 일반적으로 시계열 및 순차적 작업에 사용됩니다.
신경망: 구성 요소
원천
입력 레이어, 뉴런 및 가중치 –
위의 그림에서 가장 바깥쪽에 있는 노란색 레이어가 입력 레이어입니다. 뉴런은 신경망의 기본 단위입니다. 외부 소스 또는 다른 노드에서 입력을 받습니다. 각 노드는 다음 계층의 다른 노드와 연결되며 이러한 연결마다 특정 가중치가 있습니다. 가중치는 다른 입력에 대한 상대적 중요성에 따라 뉴런에 할당됩니다.
노란색 레이어의 모든 노드 값이 가중치와 함께 곱해지고 요약되면 첫 번째 은닉 레이어에 대한 값이 생성됩니다. 요약된 값을 기반으로 블루 레이어에는 이 노드가 "활성화"될지 여부와 얼마나 "활성화"될지를 결정하는 미리 정의된 "활성화" 기능이 있습니다.
간단한 일상 작업인 차 만들기를 사용하여 이것을 이해합시다. 차를 만드는 과정에서 차를 만드는 데 사용되는 재료(물, 찻잎, 우유, 설탕, 향신료)는 과정의 시작점을 구성하는 "뉴런"입니다. 각 성분의 양은 "중량"을 나타냅니다. 물에 찻잎을 넣고 팬에 설탕, 향신료, 우유를 넣으면 모든 재료가 섞이면서 다른 상태로 변합니다. 이 변환 과정은 "활성화 기능"을 나타냅니다.
자세히 알아보기: 딥 러닝과 신경망
은닉층과 출력층 –
입력 레이어와 출력 레이어 사이에 숨겨진 레이어를 은닉 레이어라고 합니다. 항상 외부 세계로부터 숨겨져 있기 때문에 은닉층이라고 합니다. 신경망의 주요 계산은 은닉층에서 발생합니다. 따라서 은닉층은 입력층의 모든 입력을 받아 결과를 생성하는 데 필요한 계산을 수행합니다. 이 결과는 사용자가 계산 결과를 볼 수 있도록 출력 계층으로 전달됩니다.
차를 끓이는 예에서 모든 재료를 혼합할 때 제형은 가열 시 상태와 색상을 변경합니다. 재료는 숨겨진 레이어를 나타냅니다. 여기에서 가열은 최종 결과인 차를 제공하는 활성화 과정을 나타냅니다.
신경망: 알고리즘
신경망에서 학습(또는 훈련) 프로세스는 데이터를 세 가지 다른 세트로 나누어 시작됩니다.
- 훈련 데이터 세트 – 이 데이터 세트를 통해 신경망은 노드 간의 가중치를 이해할 수 있습니다.
- 검증 데이터 세트 – 이 데이터 세트는 신경망의 성능을 미세 조정하는 데 사용됩니다.
- 테스트 데이터 세트 – 이 데이터 세트는 신경망의 정확도와 오차 한계를 결정하는 데 사용됩니다.
데이터가 이 세 부분으로 분할되면 신경망 훈련을 위해 신경망 알고리즘이 적용됩니다. 신경망에서 훈련 과정을 용이하게 하는 데 사용되는 절차를 최적화라고 하고 사용되는 알고리즘을 최적화라고 합니다. 최적화 알고리즘에는 메모리 요구 사항, 수치 정밀도 및 처리 속도와 같은 고유한 특성과 측면이 있는 다양한 유형의 최적화 알고리즘이 있습니다.
다양한 신경망 알고리즘 에 대해 논의하기 전에 먼저 학습 문제를 이해합시다.
더 읽어 보기: 현실 세계의 신경망 애플리케이션
학습 문제는 무엇입니까?
손실 지수 ( f ) 의 최소화로 학습 문제를 나타냅니다 . 여기서 " f "는 주어진 데이터 세트에서 신경망의 성능을 측정하는 함수입니다. 일반적으로 손실지수는 오차항과 정규화항으로 구성된다. 오차 항 은 신경망이 데이터 세트를 어떻게 맞추는지 평가하는 반면, 정규화 항 은 신경망의 효과적인 복잡성을 제어하여 과적합 문제를 방지하는 데 도움이 됩니다.
손실 함수[ f(w ])는 신경망의 적응 매개변수(가중치 및 편향)에 따라 달라지며 이러한 매개변수는 단일 n차원 가중치 벡터( w )로 그룹화될 수 있습니다.
다음은 손실 함수를 그림으로 나타낸 것입니다.
원천
이 다이어그램에 따르면 손실 함수의 최소값은 점( w* )에서 발생합니다. 언제든지 손실 함수의 1차 및 2차 도함수를 계산할 수 있습니다. 1차 도함수는 그래디언트 벡터로 그룹화되며 구성 요소는 다음과 같이 표시됩니다.
원천
여기서 i = 1,…..,n 입니다.
손실 함수의 2차 도함수는 다음과 같이 헤세 행렬 로 그룹화됩니다.
원천
여기서 i,j = 0,1,…
이제 학습 문제가 무엇인지 알았으므로 다섯 가지 주요 문제에 대해 논의할 수 있습니다.
신경망 알고리즘 .
1. 1차원 최적화
손실 함수 는 여러 매개변수에 의존 하기 때문에 1차원 최적화 방법은 신경망 훈련에 중요합니다. 훈련 알고리즘은 먼저 훈련 방향( d )을 계산한 다음 훈련 방향[ f(η) ] 의 손실을 최소화하는 데 도움이 되는 훈련 속도( η )를 계산합니다.
원천
다이어그램에서 점 η1 및 η2는 f, η* 의 최소값을 포함하는 구간을 정의합니다 .
따라서 1차원 최적화 방법은 주어진 1차원 함수의 최소값을 찾는 것을 목표로 합니다. 가장 일반적으로 사용되는 1차원 알고리즘 중 두 가지는 Golden Section 방법과 Brent의 방법입니다.
골든 섹션 방법
골든 섹션 검색 알고리즘은 단일 변수 함수[ f(x) ] 의 최소값 또는 최대값을 찾는 데 사용됩니다 . 함수가 두 점 사이에 최소값을 갖는다는 것을 이미 알고 있다면 방정식 f(x) = 0 의 근을 이등분 탐색하는 것처럼 반복 탐색을 수행할 수 있습니다 . 또한 최소값 부근에서 f(x0) > f(x1) > f(X2) 에 해당하는 세 개의 점( x0 < x1 < x2 ) 을 찾을 수 있으면 x0 과 x2 사이에 최소값이 존재한다고 추론할 수 있습니다. . 이 최소값을 찾기 위해 x1 과 x2 사이의 다른 점 x3 을 고려할 수 있습니다 . 그러면 다음과 같은 결과가 나타납니다.
- f(x3) = f3a > f(x1)인 경우 최소값은 세 개의 새로운 점 x0 < x1 < x3 (여기서 x2 는 x3 으로 대체됨 ) 과 관련된 x3 – x0 = a + c 구간 내에 있습니다.
- f(x3) = f3b > f(x1 )인 경우 최소값은 x1 < x3 < x2 (여기서 x0 은 x1 로 대체됨 ) 세 개의 새로운 점과 관련된 x2 – x1 = b 구간 내에 있습니다.

원천
브렌트의 방법
Brent의 방법은 루트 브라케팅 , 이분법 , 시컨트 및 역 2차 보간 을 결합하는 루트 찾기 알고리즘입니다 . 이 알고리즘은 가능하면 빠른 수렴 시컨트 방법이나 역 2차 보간법을 사용하려고 하지만 일반적으로 이분법으로 되돌아갑니다. Wolfram 언어 로 구현된 Brent의 방법은 다음과 같이 표현됩니다.
방법 -> FindRoot 의 브렌트 [eqn, x, x0, x1].
Brent의 방법에서는 차수가 2인 Lagrange 보간 다항식 을 사용합니다. 1973년에 Brent는 함수 값이 근을 포함한 특정 영역 내에서 계산 가능한 경우 이 방법이 항상 수렴할 것이라고 주장했습니다. 세 개의 점이 x1, x2 및 x3 인 경우 Brent의 방법 은 보간 공식을 사용하여 x 를 y 의 2차 함수로 피팅합니다.
원천
후속 루트 추정은 고려하여 달성되며, 이에 따라 다음 방정식이 생성됩니다.
원천
여기서, P = S [ T(R – T) (x3 – x2) – (1 – R) (x2 –x1) ] 및 Q = (T – 1) (R – 1) (S – 1) 그리고,
원천
2. 다차원 최적화
지금까지 우리는 신경망의 학습 문제가 손실 함수( f )가 최소값을 취하는 매개변수 벡터( w* )를 찾는 것을 목표로 한다는 것을 이미 알고 있습니다. 표준 조건의 명령에 따르면 신경망이 손실 함수의 최소값에 있는 경우 기울기는 0 벡터입니다.
손실 함수는 매개변수의 비선형 함수이므로 최소값에 대한 닫힌 훈련 알고리즘을 찾는 것이 불가능합니다. 그러나 일련의 단계를 포함하는 매개변수 공간을 검색하는 경우 각 단계에서 신경망의 매개변수를 조정하여 손실을 줄일 수 있습니다.
다차원 최적화에서 신경망은 임의의 we 매개변수 벡터를 선택한 다음 알고리즘의 각 반복마다 손실 함수가 감소하도록 매개변수 시퀀스를 생성하여 훈련됩니다. 두 후속 단계 사이의 이러한 손실 변동을 "손실 감소"라고 합니다. 손실 감소 과정은 훈련 알고리즘이 지정된 조건에 도달하거나 만족할 때까지 계속됩니다.
다음은 다차원 최적화 알고리즘의 세 가지 예입니다.
경사하강법
경사하강법 알고리즘은 아마도 모든 훈련 알고리즘 중 가장 단순할 것입니다. 그래디언트 벡터에서 제공하는 정보에 의존하기 때문에 1차 방법입니다. 이 방법에서는 f[w(i)] = f(i) 및 ∇f[w(i)] = g(i) 를 취 합니다. 이 훈련 알고리즘의 시작점은 지정된 기준이 충족될 때까지 계속 진행되는 w(0)입니다. 훈련 방향 d(i) = −g(i) 로 w(i)에서 w(i+1)로 이동합니다. . 따라서 경사하강법은 다음과 같이 반복됩니다.
w(i+1) = w(i)-g(i)η(i),
여기서 i = 0,1,…
매개변수 η 는 훈련 속도를 나타냅니다. η 에 대해 고정 값을 설정하거나 모든 단계에서 훈련 방향을 따라 1차원 최적화에서 찾은 값으로 설정할 수 있습니다. 다만, 각 단계에서 선 최소화를 통해 달성한 훈련률에 대해 최적의 값을 설정하는 것이 바람직하다.
원천
이 알고리즘은 길고 좁은 계곡 구조를 갖는 함수에 대해 많은 반복을 필요로 하기 때문에 많은 제한이 있습니다. 손실 함수는 내리막 경사 방향으로 가장 빠르게 감소하지만 항상 가장 빠른 수렴을 보장하지는 않습니다.
뉴턴의 방법
이것은 Hessian 행렬을 활용하는 2차 알고리즘입니다. Newton의 방법은 손실 함수의 2차 도함수를 사용하여 더 나은 훈련 방향을 찾는 것을 목표로 합니다. 여기서 f[w(i)] = f(i), ∇f[w(i)]=g(i) 및 Hf[w(i)] = H(i) 를 표시 합니다. 이제 다음과 같이 Taylor의 급수 전개를 사용하여 w(0) 에서 f 의 2차 근사를 고려할 것입니다 .
f = f(0)+g(0)⋅[w−w(0)] + 0.5⋅[w−w(0)]2⋅H(0)
여기서, H(0) 은 점 w(0) 에서 계산된 f 의 헤세 행렬이다 . f(w) 의 최소값에 대해 g = 0 을 고려 하여 다음 방정식을 얻습니다.
g = g(0)+H(0)⋅(w−w(0))=0
결과적으로 매개변수 벡터 w(0)에서 시작하여 Newton의 방법이 다음과 같이 반복되는 것을 볼 수 있습니다.
w(i+1) = w(i)−H(i)−1⋅g(i)
여기서 i = 0,1 ,…이고 벡터 H(i)−1⋅g(i) 를 "뉴턴의 계단"이라고 합니다. 매개변수 변경이 최소값 방향으로 이동하는 대신 최대값으로 이동할 수 있음을 기억해야 합니다. 일반적으로 이것은 Hessian 행렬이 양의 정부호가 아닌 경우 발생하므로 각 반복에서 함수 평가가 감소합니다. 그러나 이 문제를 피하기 위해 일반적으로 방법 방정식을 다음과 같이 수정합니다.
w(i+1) = w(i)−(H(i)−1⋅g(i))η
여기서 i = 0,1 ,…
훈련 속도 η를 고정 값으로 설정하거나 라인 최소화를 통해 얻은 값으로 설정할 수 있습니다. 따라서 벡터 d(i)=H(i)−1⋅g(i) 는 Newton의 방법에 대한 학습 방향이 됩니다.
원천
Newton의 방법의 주요 단점은 Hessian과 그 역함수의 정확한 평가가 꽤 비싼 계산이라는 점입니다.
켤레 기울기
켤레 기울기 방법은 기울기 하강법과 뉴턴 방법 사이에 있습니다. 이것은 중간 알고리즘입니다. 기울기 하강법의 느린 수렴 인자를 가속화하는 것을 목표로 하는 동시에 일반적으로 Newton의 방법에서 요구되는 Hessian 행렬의 평가, 저장 및 역전과 관련된 정보 요구 사항이 필요하지 않습니다.
켤레 기울기 훈련 알고리즘은 기울기 하강 방향보다 더 빠른 수렴을 제공하는 켤레 방향에서 검색을 수행합니다. 이러한 훈련 방향은 Hessian 행렬에 따라 켤레됩니다. 여기서 d는 학습 방향 벡터를 나타냅니다. 초기 매개변수 벡터 [w(0)] 및 초기 훈련 방향 벡터 [d(0)=−g(0)] 로 시작하면 켤레 기울기 방법은 다음과 같이 표현되는 일련의 훈련 방향을 생성합니다.
d(i+1) = g(i+1)+d(i)⋅γ(i),
여기서 i = 0,1 ,…이고 γ는 켤레 매개변수입니다. 모든 켤레 기울기 알고리즘 에 대한 훈련 방향은 기울기 의 음수로 주기적으로 재설정됩니다. 매개변수가 개선되고 훈련 속도( η )는 아래 표시된 표현식에 따라 라인 최소화를 통해 달성됩니다.

w(i+1) = w(i)+d(i)⋅η(i)
여기서 i = 0,1 ,…
원천
결론
각 알고리즘에는 고유한 장점과 단점이 있습니다. 이것들은 신경망을 훈련시키는 데 사용되는 몇 가지 알고리즘에 불과하며, 그 기능은 딥 러닝 프레임워크 가 발전함에 따라 이러한 알고리즘의 기능도 발전함에 따라 빙산의 일각만 보여줍니다.
신경망, 머신 러닝 프로그램 및 AI 에 대해 자세히 알아보려면 IIIT-B & upGrad의 머신 러닝 및 AI 경영자 PG 프로그램을 확인하세요. 이 프로그램은 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 사례 연구 및 과제, IIIT-B 동문 자격, 5개 이상의 실제 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
신경망이란 무엇입니까?
신경망은 인공 뉴런으로 구성된 다중 입력, 단일 출력 시스템입니다. 신경망의 주요 기능은 입력을 의미 있는 출력으로 변환하는 것입니다. 신경망에는 일반적으로 입력 및 출력 레이어와 하나 이상의 숨겨진 레이어가 있습니다. 신경망의 모든 뉴런은 서로 영향을 미치므로 모두 연결되어 있습니다. 네트워크는 문제의 데이터 세트의 모든 측면은 물론 다양한 데이터 조각이 서로 관련되거나 관련되지 않을 수 있는 방식을 인식하고 관찰할 수 있습니다. 이것이 신경망이 방대한 양의 데이터에서 엄청나게 복잡한 패턴을 감지하는 방법입니다.
피드백 네트워크와 피드포워드 네트워크의 차이점은 무엇입니까?
피드포워드 모델의 신호는 한 방향으로만 출력 레이어로 이동합니다. 0개 이상의 은닉층이 있는 경우 피드포워드 네트워크에는 하나의 입력 계층과 하나의 단일 출력 계층이 있습니다. 패턴 인식은 이를 광범위하게 사용합니다. 피드백 모델의 순환 또는 대화형 네트워크는 내부 상태(메모리)를 사용하여 일련의 입력을 처리합니다. 신호는 네트워크의 루프(숨겨진 계층)를 통해 양방향으로 이동할 수 있습니다. 특정 순서로 발생하는 일련의 이벤트가 필요한 활동에서 일반적으로 사용됩니다.
학습 문제는 무엇을 의미합니까?
학습 문제는 손실 지수 최소화 문제(f)로 모델링됩니다. 'f'는 주어진 데이터 세트에서 신경망의 성능을 평가하는 함수를 나타냅니다. 손실 지수는 오차 성분과 정규화 항의 두 가지 항으로 구성됩니다. 오차 항은 신경망이 데이터 세트에 얼마나 잘 맞는지를 분석하는 반면, 정규화 항은 신경망의 유효 복잡성을 제한하여 과적합을 방지합니다. 신경망의 적응 변수(가중치 및 편향)는 손실 함수(f(w))를 결정합니다. 이러한 변수는 고유한 n차원 가중치 벡터(w)로 함께 묶일 수 있습니다.