원리 학습

순서

참조 도서: Python 신경망 프로그래밍(Douban)(douban.com)

Xiaobai, 기본 0, 더 복잡한 다른 책을 이해할 수 없습니다 ...

01. 앞으로 계산

왼쪽에서 오른쪽으로 입력 값에 따라 출력 값을 얻습니다.

개요

이것은 뉴런의 수학적 형태입니다.

임계값 함수

시그모이드 함수:

특히 이 모양:

입출력

아마도 다음과 같이 계산됩니다.

결합 입력의 개념이 있습니다.

구체적인 계산 과정은 다음과 같습니다.

행렬 형태

결합 입력은 곱셈과 덧셈의 과정입니다.

행렬 곱셈, 그것은 보인다;

따라서 결합된 입력은 행렬 곱셈의 형식으로 작성할 수 있습니다.

이것은 캡슐화입니다...프레임워크로 캡슐화되며 보편적입니다.

엑스=WI

W는 가중치 행렬입니다. 가중치

각 레이어에는 2*2의 스케일인 2개의 노드가 있습니다.

나는 입력 행렬, 입력

각 레이어에는 2*1의 스케일인 2개의 노드가 있습니다.

이 행렬의 크기는 이전 레이어와 현재 레이어의 노드 수와 관련이 있습니다.

02. 역산

오른쪽에서 왼쪽으로 예상 값과 실제 값의 차이를 계산합니다.

이 차이 값은 가중치를 조정하는 데 사용되므로 차이 값은 각 가중치에 대해 별도로 계산됩니다.

당신은 어떻게 계산합니까?

합산입력이므로 가중치가 여러개일 경우 오차가 발생합니다.

무게는 변의 무게로 양끝이 있는 변을 변이라 하고 한쪽만 있는 변을 점이라 한다.

사례 1

출력 레이어 3과 숨겨진 레이어 2 사이의 링크 사이의 오류를 어떻게 나누나요?

괜찮아, 끝났어? 아직 끝나지 않았습니다. 입력 레이어 1과 숨겨진 레이어 2 사이의 링크에 아직 오류가 할당되지 않았습니다. 이것을 어떻게 계산합니까?

사례 2

우선 역전파를 하려면 오류가 있어야 합니다.

오류는 어디에 있습니까? 이것은 출력 레이어가 아닙니다.

재결합을 통해 오류를 얻습니다: 재결합 오류는 링크 오류의 합과 같습니다. 링크 오류는 무엇입니까? 이전 단계에서 비례적으로 나누어서 얻습니다.

행렬 형태

매트릭스 형태로도 포장할 수 있습니까?

재결합 오류는 각 링크의 분할 오류의 합과 같고 분할 오류는 곱셈으로 계산됩니다.

또한, 행렬 첨자에서 실제로 역전파임을 알 수 있습니다.

이 행렬은 순방향 계산에 사용되는 가중치 행렬의 전치로도 간주할 수 있습니다.

03. 파생 및 업데이트

숫자를 맞춰보세요. 5가 너무 크면 3으로 변경될 수 있습니다.

이제 각 가중치에 해당 오류가 비례적으로 할당됩니다. 오류에 따라 가중치를 하나씩 업데이트하는 방법은 무엇입니까?

오류는 출력과 관련이 있고 출력은 무게와 관련이 있으므로 오류는 무게와 관련이 있다는 것을 계산 과정에서 알 수 있습니다.

경사 하강법

(14개 메시지) Newton의 방법-기울기 하강법 method_leo_fighting의 블로그-CSDN blog_기울기 하강 다이어그램

根据误差更新权重,单个权重是个标量

已有标量X,更新后是X+ΔX

那么,ΔX,是正是负?

和斜率反着来就行了;斜率正数,就正,斜率负数,就负

负号有了,具体的值是多少呢?大概和斜率绝对值有关吧

一个标量X,就是这么更新的。

如果误差和8个权重标量有关呢?如上图。

一元的是斜率;多元的就叫梯度了,梯度是个向量,每个分量都是偏导的形状

无非就是1+1和的关系,重复而已

偏导

那么,误差关于权重的偏导怎么求?

2和3之间的是这么算的:

1和2之间的可以类比:

矩阵形式

能不能也封装成矩阵形式?

这个不存在什么先乘法再加法的情况;但是先写写看吧

可以把那3个部分,抽象成函数的形式,俩变量,ij

怎么看呢?

先按住j——让j当常数【偏导就是这么干的】;

再放开i——让i作变量

就看到结构上的规律了。

后记

原理大概就这么多。

书的后面好像还有个实际应用。

추천

출처blog.csdn.net/averagePerson/article/details/129132110