1 L의 정규화 층 신경망 :
(1)의 정규화 L2 :
정규화 피하기 위해 왜 (2) 오버 피팅?
람다가 큰만큼, J가 최소화되면, 그래서 w 가중치 행렬은 0에 가까울 것이라고 단순화 신경망 높은 바이어스 상태이다 :
, Z는 예로서 TANH 함수 작고 * A + B를 승 람다 =는 z, w보다 크다 :
Z는 작은 스테이지에 리니어 함수 g (z)가 확대되면. 선형 접근법 각각의 층은, 상기 네트워크는 선형 네트워크 인 경우, 상황은 관통 맞지 않는다.
(3) 드롭 아웃 정규화 (임의 비활성화) :
다음 뉴럴 네트워크의 각 노드는 비활성화 확률 P를 포함
단순화 배선, 노드 이하의 소규모 네트워크를 얻을 :
다음 코드는 다음과 같습니다
제 3 층에 대해서는, 임의의 불 활성화, 0.8 keep_prob = 상이해도 다른 층 keep_prob (숨겨진 유닛의 확률이 0.2 숨겨진 유닛의 가능성을 제거, 즉 유지하기 위해) 일.
D3 = np.random.rand (a3.shape [0] a3.shape [1]) <keep_prob
A3 = np.multiply (A3, D3) # 1 비활성 노드 필터링
A3 = A3 / keep_prob # 상수의 A3의 여과되도록 기대 값의 20 %를 이루는
(4) 기타 정규화 방법
데이터 세트를 확장 ①;
반복의 ② 조기 종료 :
(5) 입력을 정규화 :
① 평균이 0 :
μ = 1 / m * Σx 표본 (I)
X = X - m
② 분산 정상화 :
σ² = 1 / m * Σ (X (I) ) ²
X = X / s² 임
③ 왜의 정규화 입력?
비 정규화는 화상 입력 비용 함수는 1000 정도의 값을 X1로 늘어나게되지만, 비용 함수 보이는 더 대칭 입력 값 (X2)의 0-1. 정규화 (regularization) 후에 발생할 수있다.
도는 비 정규화 하강 기울기보다 고통스러운보고, 정규화 구배 급격히 감소 하였다.
도 2는 배니싱 / 그라디언트 분해 (구배 폭발 기울기를 소산)
(1)를 예로 들어 설명 :
假设:g(z) = z; b[l] = 0.
y = w[L]w[L-1]w[L-2] ... w[2]w[1]x
(2)解决方案:权重初始化
由 z = w1x1 + w2x2 + ... + wnxn
随着 n 的增大,期望的 w[l] 越小,由此设置 Var(w[l]) = 1/n 或者 2/n(效果更好),即:
w[l] = np.random.randn(shape) * np.sqrt(2/n[l-1])
3、梯度检验:
(1)梯度的数值逼近:
双边误差公式更准确,可以用来判断 g(θ) 是否实现了函数 f 的偏导.
(2)神经网络的梯度检验:
① 将 W[1],b[1],...,W[L],b[L] 从矩阵转为一个向量 θ;
② 将 dW[1],db[1],...,dW[L],db[L] 从矩阵转为一个向量 dθ;
③ J = J(θ1, θ2, ..., θi, ...)
for each i :
dθapprox[i] = (J(θ1, θ2, ..., θi + ε, ...) - J(θ1, θ2, ..., θi - ε, ...)) / (2 * ε)
check dθapprox[i] ≈ dθ[i] by calculate || dθapprox[i] - dθ[i] ||2 / (|| dθapprox[i] ||2 + || dθ[i] ||2) < 10^-7(或其他误差阈值)
(3)梯度检验注意点:
① 检测完关闭梯度检验;
② 检查是否完成了正则化;
③ 不适用于dropout;
④ 检查是否进行了随机初始化.