Articles

신경망 이해 2:3 방정식의 신경망 수학

이 시리즈의 첫 번째 부분에서는 신경망의 개념과 단일 뉴런을 설명하는 수학에 대해 논의했습니다. 그러나 단일 레이어에는 많은 뉴런이 있고 전체 네트워크에는 많은 레이어가 있으므로 신경망을 설명하는 일반적인 방정식을 생각해 내야합니다.

단일 뉴런

네트워크가 가장 먼저해야 할 일은 레이어를 통해 정보를 전달하는 것입니다. 우리는 이미 단일 뉴런에 대해 이것을 수행하는 방법을 알고 있습니다:

뉴런의 출력은 뉴런의 입력의 가중 합계의 활성화 함수입니다

2 뉴런

이제 두 번째 레이어에 2 개의 뉴런이있을 때 동일한 논리를 적용 할 수 있습니다.

이 예에서 첫 번째 레이어의 모든 뉴런은 두 번째 레이어의 각 뉴런에 연결되며 이러한 유형의 네트워크를 완전히 연결된 네트워크라고합니다. 뉴런 와이 1 은 뉴런 엑스 1 과 엑스 2 와 가중치 와이 11 과 와이 12 와 뉴런 와이 2 와 뉴런에 연결됩니다 엑스 1 과 엑스 2 와 가중치 와이 21 과 와이 22. 이 표기법에서 가중치의 첫 번째 인덱스는 출력 뉴런을 나타내고 두 번째 인덱스는 입력 뉴런을 나타냅니다. 이제 우리는 방정식을 쓸 수 있습니다 와이 1 과 와이 2:

이제이 방정식은 행렬 곱셈을 사용하여 표현할 수 있습니다.

행렬 곱셈의 시각화http://matrixmultiplication.xyz/

당신이 행렬 곱셈과 선형 대수를 처음 사용하고 이것이 당신을 혼란스럽게 만드는 경우 나는 3 블루 1 브라운 선형 대수 시리즈를 적극 권장합니다.

이제 첫 번째 뉴런의 출력을 와이 1 로,두 번째 뉴런의 출력을 와이 2 로 쓸 수 있습니다. 이것은 우리에게 다음과 같은 방정식을 제공합니다:

전체 레이어

이로부터 우리는 레이어의 출력에 대한 일반적인 규칙을 추상화 할 수 있습니다:

이 방정식에서 모든 변수는 행렬이고 곱셈 기호는 행렬 곱셈을 나타냅니다.

방정식에서 행렬을 사용하면 간단한 형태로 쓸 수 있으며 출력의 모든 입력 및 뉴런에 대해 사실이됩니다.

신경망 프로그래밍에서 우리는 또한 행렬 곱셈을 사용하여 컴퓨팅을 병렬로 만들고 그래픽 카드와 같은 효율적인 하드웨어를 사용할 수 있습니다.

이제 우리는 단일 레이어에 대한 방정식을 가지고 있지만,이 레이어의 출력을 가져 와서 다음 레이어에 대한 입력으로 사용하는 것을 막을 수있는 것은 없습니다. 이것은 우리에게 신경 네트워크의 각 계층의 출력을 설명하는 일반적인 방정식을 제공합니다. 한 가지 더 추가해야 할 것은 활성화 기능입니다.시리즈의 다음 부분에서 활성화 기능이 필요한 이유를 설명하겠습니다.지금은 출력을 확장하는 방법으로 생각할 수 있으므로 너무 크거나 중요하지 않습니다.

이 방정식을 사용하면 원하는만큼 신경 네트워크의 많은 레이어를 통해 정보를 전파 할 수 있습니다. 그러나 어떤 학습없이,신경 네트워크는 아무것도 의미하지 않는다 임의의 행렬 곱셈의 집합입니다.

그래서 우리의 신경 네트워크를 가르치는 방법? 첫째로 우리는 신경 네트워크의 오류를 계산하고 모든 레이어에이 오류를 전달하는 방법을 생각해야합니다.

2:오류 역 전파 전달

오류 전파 알고리즘을 이해하려면 첫 번째 레이어에 2 개의 뉴런이 있고 두 번째 레이어에 1 개의 뉴런이 있는 예제로 돌아가야 합니다.

와이 계층은 네트워크의 출력 계층이며 와이 1 뉴런은 일부 값을 반환해야합니다. 이제 이 값은 예상 값과 상당히 다를 수 있습니다. 이 오류는 반환 된 값과 예상 값의 차이로 생각할 수 있습니다. 우리는 오류를 알고 와이 1 그러나 우리는 모든 레이어를 원하기 때문에 네트워크의 하위 레이어에이 오류를 전달해야,뿐만 아니라 와이 레이어. 이 오류를 1 과 2 에 전달하는 방법은 무엇입니까? 음,순진한 접근 방식은 와이 1 오류를 균등하게 분할하는 것입니다.

그러나 이 접근에 대한 중요한 문제가 있습니다—신경에는 그(것)들에 연결된 다른 무게가 있습니다. 에 연결된 가중치 엑스 1 뉴런에 연결된 가중치보다 훨씬 큰 경우 엑스 2 뉴런 오류 와이 1 에 훨씬 더 많은 영향을받습니다 엑스 1 이후 와이 1=(엑스 1*와이 11+엑스 2*엑스 12). 그래서 만약 와이 11 이 와이 12 보다 크면 우리는 더 많은 것을 전달해야합니다 와이 1 에 오류 엑스 1 뉴런이 그것에 기여하는 뉴런이기 때문에.

이제 우리는 오류를 균등하게 분할하지 않고 입력 뉴런 무게의 배급량에 따라 출력 뉴런에 오는 모든 가중치로 분할하는 알고리즘을 업데이트 할 수 있습니다.

가중치 업데이트

이제 한 단계 더 나아가 출력 레이어에 둘 이상의 뉴런이 있는 예제를 분석할 수 있습니다.

이 예에서 우리는 예를 들어 뉴런 엑스 1 의 오차뿐만 아니라 기여 와이 1 뿐만 아니라 오류 와이 2 이 오류는 여전히 가중치에 비례합니다. 그래서 오차를 설명하는 방정식에서 엑스 1,우리는 둘 다 가지고 오차 와이 1 에 가중치의 비율을 곱하고 오차 와이 2 에 오는 가중치의 비율을 곱합니다 와이 2.

이 방정식은 또한 행렬 곱셈의 형태로 작성 될 수 있습니다.

지금 많은 타당한 정보를 잃기없이 이 인용을 더 간단한 시키기 위하여 우리가 할 수 있는 1 개의 간계 더 있는다. 중량비의 분모는 정규화 요인으로 작용하기 때문에 우리는 그것에 대해 그다지 신경 쓰지 않습니다.부분적으로 마지막 방정식은 신경망의 학습을 조절하는 다른 수단을 가질 것이기 때문입니다.

이것은 또한 우리가 할 수있는 또 하나의 관찰입니다. 이 방정식에서 가중치를 가진 행렬이 피드 포워드 알고리즘을 형성하는 행렬과 매우 유사하다는 것을 알 수 있습니다. 차이점은 행과 열이 전환된다는 것입니다. 대수학에서 우리는 이것을 행렬의 전치라고 부릅니다.

2 개의 다른 변수를 사용할 필요가 없기 때문에 피드 포워드 알고리즘에서 동일한 변수를 사용할 수 있습니다. 이것은 우리에게 역 전파 알고리즘의 일반적인 방정식을 제공합니다

피드 포워드 알고리즘에서 우리는 마지막에 첫 번째 레이어를 형성하려고했지만 역 전파에서 우리는 우리가 다음 레이어의 오류에 대한 정보가 필요 주어진 레이어의 오류를 계산하기 때문에 첫 번째에 네트워크의 마지막 레이어를 형성거야 있습니다.

트렌드 인공지능 기사:

1. 기계 학습을 물리적 그림의 영감으로 사용하는 방법

2. 석사 또는 시작 작업-깊은 학습에서 경력을 구축하기 위해 이동하는 방법?

3. 인공 지능

과 관련된 상위 100 개 매체 기사 4. 인공 지능 회의

이제 우리는 앞으로 정보를 전달하고 뒤로 오류를 전달하는 방법을 알고 우리는 가중치를 업데이트하기 위해 각 계층에서 오류를 사용할 수 있습니다.

3:가중치 업데이트

이제 각 계층에서 신경망에서 어떤 오류가 발생하는지 알게되었으므로 마침내 네트워크에 문제에 대한 최상의 해결책을 찾도록 교육 할 수 있습니다.

그러나 가장 좋은 해결책은 무엇입니까?

이 오류는 우리의 솔루션이 얼마나 잘못되었는지를 알려주므로 자연스럽게 가장 좋은 해결책은 오류 함수가 최소 인 것입니다.

오류 함수는 네트워크의 가중치에 따라 달라집니다,그래서 우리는 오류 함수에서 전역 최소 결과 같은 가중치 값을 찾으려면. 이 그림은 시각화 목적으로 만 사용됩니다. 실생활 신청에서는 우리는 1 개 이상 무게가 있습니다,그래서 과실 기능은 높 차원 함수입니다.

그러나이 함수의 최소값을 어떻게 찾을 수 있습니까? 여기서 간단한 아이디어는 무작위 가중치로 시작하여 그 가중치에 대한 오류 함수를 계산 한 다음이 함수의 기울기를 확인하여 내리막 길을 가는 것입니다.

함수의 기울기를 어떻게 알 수 있을까요?

우리는 선형 대수를 다시 한 번 사용할 수 있으며 주어진 점에서 함수의 도함수가 이 점에서 함수의 기울기와 같다는 사실을 활용할 수 있습니다. 이 미분을 다음과 같은 방법으로 쓸 수 있습니다:

여기서 이자형 이다 우리의 오류 함수 및 승 가중치를 나타냅니다. 이 표기법은 가중치와 관련하여 오류 함수의 도함수를 찾고 싶다는 것을 알려줍니다. 우리는 엔+1 에 오류와 함께,우리의 표기법에서 가중치 후 신경망의 출력이+1 에 있기 때문에.

이 미분을 사용하여 가중치를 업데이트 할 수 있습니다:

이것은 우리가 오류 함수의 미분 기울기에 따라 가중치를 업데이트”내리막가는”각 학습 반복(시대)를 나타냅니다.

최종 방정식을 제시하기 전에 우리가 필요로하는 것이 하나 더 있으며 그것은 학습 속도입니다. 학습 속도는 우리가 내리막 길을가는 동안 복용 얼마나 큰 단계를 조절한다.

당신이 더 큰 학습 속도로 볼 수 있듯이,우리는 더 큰 조치를 취할. 이것은 우리가 함수의 최적에 빨리 얻을 수 있다는 것을 의미하지만,우리가 그것을 놓칠 수있는 강판의 기회도 있습니다.

학습 속도가 작을수록 우리는 더 작은 단계를 거치므로 함수의 최소값에 도달하기 위해 더 많은 신기원이 필요하지만 놓칠 가능성은 더 적습니다.

실제로 우리는 종종 이전 단계 예에 따라 학습 속도를 사용하는 이유입니다. 한 방향으로가는 강한 경향이있는 경우,우리는 더 큰 단계(큰 학습 속도)를 취할 수 있지만,방향이 계속 변화하는 경우,우리는 더 나은 최소 검색 작은 단계(작은 학습 속도)를 취해야한다. 그러나 우리의 예에서 우리는 간단한 접근 방식을 취하고 고정 학습 속도 값을 사용할 것입니다. 이것은 우리에게 다음과 같은 방정식을 제공합니다.

학습 속도(라)분노 0-1 의 숫자입니다. 더 작을수록 가중치의 변화는 줄어듭니다. 학습은 1 에 가까운 경우. 우리는 가중치를 업데이트하는 파생 상품의 전체 값을 사용하고 0 에 가까운 경우,우리는 그것의 작은 부분을 사용합니다. 즉,이름에서 알 수 있듯이 학습 속도는 단일 반복에서 네트워크가 얼마나 많이”학습”하는지를 규제합니다.

가중치를 업데이트하는 것이 신경망에서 필요한 최종 방정식이었습니다. 그것은 네트워크의 실제 학습과 임의의 값 대신 의미있는 출력을 제공하기 위해 그것을 가르치는 책임이 방정식입니다.

모두 합치기

피드 포워드

역 전파

가중치 업데이트

답글 남기기

이메일 주소는 공개되지 않습니다.