神经网络的介绍
神经元:多个输入—->权重—>偏置—>激励函数—>输出
符号表示:x为输入函数,W为权重,b为偏置常量,f为激励函数,y为输出
则y = f ( ∑ ( x i ∗ w i + b ) ) y=f(\sum(x_i * w_i+b))y =f (∑(x i ∗w i +b ))
在神经网络中,网络层包括 输入层
, 中间层(隐藏层)
, 输出层
。
正向传播:从转递输入信息到产生输出的过程
反向传播:从输出向输入逆向传递信息的过程
符号表示:
前面网络层有m个,后面网络层有n个。则Wij:前面网络层i对后面网络层j的权重,W为m *n的矩阵。
上层网络层有m个神经元,即上层网络的输出向量的元素为m。
i作为上层网络的下标,j作为下层网络的下标。
Y i = X j = ( x 1 , x 2 , x 3 . . . x m ) Y_i=X_j=(x_1,x_2,x_3…x_m)Y i =X j =(x 1 ,x 2 ,x 3 …x m ) 下层网络层的每一个神经元都有m个输入
下层神经网络的神经元偏置B j = ( b 1 , b 2 , b 3 . . . b n ) B_j=(b_1,b_2,b_3…b_n)B j =(b 1 ,b 2 ,b 3 …b n )
下层神经网络的输出为Y j = ( y 1 , y 2 , y 3 . . . y n ) Y_j=(y_1,y_2,y_3…y_n)Y j =(y 1 ,y 2 ,y 3 …y n )
则Y j = f ( ∑ ( X j ∗ W i j ) + B j ) Yj=f(\sum(X_j *W_{ij})+B_j)Y j =f (∑(X j ∗W i j )+B j )
- 回归问题:连续性问题
- 分类问题:离散问题
神经网络的架构
numpy.where(x0,0,1)
numpy.where(1/1+exp(-x))
sigmid的导数:y ′ = ( 1 − y ) ∗ y y’=(1-y)*y y ′=(1 −y )∗y
numpy内置tanh函数:t a n h ( x ) = ( e x p ( x ) − e x p ( − x ) ) ( e x p ( x ) + e x p ( − x ) ) tanh(x)=\frac{(exp(x)-exp(-x))}{(exp(x)+exp(-x))}t a n h (x )=(e x p (x )+e x p (−x ))(e x p (x )−e x p (−x ))
numpy.tanh(x)
numpy.where(x0,0,x)
numpy.where(x0,0.01*x,x)
对于ReLU的优化,对负数区域增加小的梯度避免出现:dying ReLU现象
用于输出回归函数的输出层:y=x
y = e x p ( X ) / ∑ e x p ( X k ) y=exp(X)/\sum exp(X_k)y =e x p (X )/∑e x p (X k )
numpy.exp(x)/numpy.sum(numpy.exp(x))
对输出与正确答案的误差进行定义的函数就是损失函数
E = 1 2 ∑ ( y k − t k ) 2 E=\frac{1}{2}\sum(y_k-t_k)^2 E =2 1 ∑(y k −t k )2
其中 E 表示误差,y k y_k y k 表示输出层的各个输出值,t k t_k t k 表示正确答案
import numpy as np
def square_sum(y,t):
1.0/2.0*np.sum(np.square(y-t))
E = − ∑ t k l o g ( y k ) E=-\sum t_klog(y_k)E =−∑t k l o g (y k )
其中 E 表示误差,t k t_k t k 表示正确答案,y k y_k y k 表示输出答案,由于t k t_k t k 是独热编码,故只有唯一正确为1的项对误差产生影响。
import numpy as np
def cross_entropy(y,t):
return -np.sum(t*np.log(y+1e-7))
∆ω \omega ω=φ y i y j \varphi y_i y_j φy i y j
其中Δ ω \Delta \omega Δω 表示为连接强度(权重)的变化量,φ \varphi φ 为一常量, y i y_i y i 表示为突触前膜神经元的兴奋程度,y j y_j y j 表示为突触后膜神经元的兴奋程度。
意义:突触前膜和突触后膜产生的兴奋使突触的能量传递效率增强。与之相反,长时间没有兴奋,突触的能量传递效率衰退。
Δ ω = η ( y j − t ) y i \Delta\omega=\eta(y_j-t)y_i Δω=η(y j −t )y i
其中Δ ω \Delta \omega Δω 表示为权重的变化量,y i y_i y i 突触的前神经元的输出,y j y_j y j 表示突触的后神经元的输出,t表示正确答案,η \eta η表示学习系数的常数。
意义:
- 如果输出与正确答案之间的差值越大,则需要设置的权重的修正量也越大。
-
如果输入越大,则需要设置的权重的修正量也越大。
-
随机梯度下降法(SGD)
- Momentum
- AdaGrad
- RMSProp
- Adam
更新公式:
w ← w − η ∂ E ∂ w w\leftarrow w-\eta\frac{∂ E}{∂ w}w ←w −η∂w ∂E
b ← b − η ∂ E ∂ b b\leftarrow b-\eta\frac{∂ E}{∂ b}b ←b −η∂b ∂E
优点:随机选样本,不容易掉入局部最优解。简单确定更新量,简单的代码实现。
缺点:在学习的过程中无法对更新量灵活调整
w ← w − η ∂ E ∂ w + α Δ w w\leftarrow w-\eta\frac{∂ E}{∂ w}+\alpha\Delta w w ←w −η∂w ∂E +αΔw
b ← b − η ∂ E ∂ b + α Δ b b\leftarrow b-\eta\frac{∂ E}{∂ b}+\alpha\Delta b b ←b −η∂b ∂E +αΔb
α \alpha α决定惯性的强度常量,Δ w \Delta w Δw表示前一次的更新量
优点:防止更新量的急剧变化
缺点:必须事先给定η \eta η和 α \alpha α,增加网络调整的难度。
h ← h + ( ∂ E ∂ w ) 2 h\leftarrow h+(\frac{∂ E}{∂ w})^2 h ←h +(∂w ∂E )2
w ← w − η 1 h ∂ E ∂ w w\leftarrow w-\eta\frac{1}{\sqrt{h}}\frac{∂ E}{∂ w}w ←w −ηh 1 ∂w ∂E
h ← h + ( ∂ E ∂ b ) 2 h\leftarrow h+(\frac{∂ E}{∂ b})^2 h ←h +(∂b ∂E )2
b ← b − η 1 h ∂ E ∂ b b\leftarrow b-\eta\frac{1}{\sqrt{h}}\frac{∂ E}{∂ b}b ←b −ηh 1 ∂b ∂E
优点:对更新量进行调整
缺点:更新量持续减少
h ← ρ h + ( 1 − ρ ) ( ∂ E ∂ w ) 2 h\leftarrow \rho h+(1-\rho)(\frac{∂ E}{∂ w})^2 h ←ρh +(1 −ρ)(∂w ∂E )2
w ← w − η 1 h ∂ E ∂ w w\leftarrow w-\eta\frac{1}{\sqrt{h}}\frac{∂ E}{∂ w}w ←w −ηh 1 ∂w ∂E
h ← ρ h + ( 1 − ρ ) ( ∂ E ∂ b ) 2 h\leftarrow \rho h+(1-\rho)(\frac{∂ E}{∂ b})^2 h ←ρh +(1 −ρ)(∂b ∂E )2
b ← b − η 1 h ∂ E ∂ b b\leftarrow b-\eta\frac{1}{\sqrt{h}}\frac{∂ E}{∂ b}b ←b −ηh 1 ∂b ∂E
ρ \rho ρ一般设置为0.9。
m 0 = v 0 = 0 m_0=v_0=0 m 0 =v 0 =0
m t = β 1 m t − 1 + ( 1 − β 1 ) ∂ E ∂ w m_t=\beta_1m_{t-1}+(1-\beta_1)\frac{∂ E}{∂ w}m t =β1 m t −1 +(1 −β1 )∂w ∂E
v t = β 2 v t − 1 + ( 1 − β 2 ) ( ∂ E ∂ w ) 2 v_t=\beta_2v_{t-1}+(1-\beta_2)(\frac{∂ E}{∂ w})^2 v t =β2 v t −1 +(1 −β2 )(∂w ∂E )2
m t ^ = m 0 t 1 − β 1 t \hat{m_t}=\frac{m_{0t}}{1-\beta_1^t}m t ^=1 −β1 t m 0 t
v t ^ = v t 1 − β 2 t \hat{v_t}=\frac{v_t}{1-\beta_2^t}v t ^=1 −β2 t v t
w ← w − η m t ^ v t ^ + ο w \leftarrow w-\eta\frac{\hat{m_t}}{\sqrt{\hat{v_t}}+\omicron}w ←w −ηv t ^+οm t ^
t表示重复次数
Original: https://blog.csdn.net/m0_64881386/article/details/123880862
Author: love2study
Title: 神经网络的入门
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762010/
转载文章受原作者版权保护。转载请注明原作者出处!