深度学习入门:基于Python的理论与实现4神经网络的学习

发布于:2023-01-22 ⋅ 阅读:(9) ⋅ 点赞:(0) ⋅ 评论:(0)

神经网络的学习

损失函数

  1. 训练数据(监督数据)/测试数据

  2. 损失函数:一般使用均方误差、交叉熵误差

    均方误差: E = 1 2 Σ ( y k − t k ) 2 E=\frac{1}{2}Σ(y_k-t_k)^2 E=21Σ(yktk)2

    tk 表示监督数据,k为维数
    one-hot表示:正确解标签为1,其他为0

    def mean_squared_error(y,t):
        return 0.5*np.sum((y-t)**2) 
    

    交叉熵误差: E = − Σ t k l o g e y k E=-Σt_klog_e^{y^k} E=Σtklogeyk

    正确标签的输出越大,交叉熵误差越接近0,当输出为1时,交叉熵误差为0

  3. mini-batch:交叉熵误差 E = − 1 N Σ t n k l o g e y n k E=-\frac{1}{N}Σt_{n{k}}log_e^{y^{nk}} E=N1Σtnklogeynk 所有训练数据损失函数总和

数值微分

  1. 数值微分:导数,偏导,梯度(向量)

    梯度指示的方向是函数值减少最多的的方向

    梯度法:寻找函数最小值,此时(损失)函数最小时,取得最优参数(权重与偏置) ,即神经网络最优化
    x 0 = x 0 − η ∂ f ∂ x 0 x_0=x_0-η\frac{\partial{f}}{\partial{x_0}} x0=x0ηx0f,式中 x 0 x_0 x0可以为ω、b,用于参数更新
    simoid函数: h ( x ) = 1 ( 1 + e x p ( − 1 ) ) h(x)=\frac{1}{(1+exp(-1))} h(x)=1+exp(1)1 d h ( x ) = h ( x ) ( 1 − h ( x ) ) dh(x)=h(x)(1-h(x)) dh(x)=h(x)(1h(x))
    超参数:学习率η等参数,需要人工设定