순서
참조 도서: 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作变量
就看到结构上的规律了。
后记
原理大概就这么多。
书的后面好像还有个实际应用。