PyTorch 分类问题引入

参考

  

1: 分类问题引入1

2     分类问题引入2


一  分类问题

  梯度下降算法是深度深度学习最基本的功能

以手写数字算法为例,数据集大小7000

PyTorch 分类问题引入_第1张图片

 

 

 

PyTorch 分类问题引入_第2张图片

 

input layer

           x \in [n,1]  列向量

Hidden layer

          a^{1}=\sigma(z^1) \in [m,1] 列向量  第一层神经元输入

          z^{1}=W^{1}x+b^{1} \in[m,1]                  第一层神经元输出

 Output layer

         \hat{y}=a^{2}=\sigma(z^{2})\in [t,1]

         z^{2}=W^{2}a^{1}+b^{2}

          


二  分类问题引入2           

   以手写数字识别为例

    2.1  标签值为 one-hot [10,1]的列向量

  PyTorch 分类问题引入_第3张图片

    2.2  学习过程

           损失函数 loss =(\hat{y}-y)^T(\hat{y}-y)

           梯度更新过程(向量链式求导)

             最后一层梯度更新:

                         \delta_2=\frac{dl}{dz^2}=(\frac{d a^2}{dz^2})^T\frac{dl}{da^2}

                                         =diag(\sigma^{'}(z^2))(\hat{y}-y)

                         d l = tr(\frac{dl}{dz^2}^Tdz^2)

                              =tr(\delta_2^TdW^2a_1)

                               =tr(a_1\delta_2^T dW^2)

                          \frac{dl}{dW^2}=\delta_2a_1^T

               第一层梯度更新

                     \delta_1=\frac{dl}{dz^1}=\frac{dz^2}{dz^1}^T\delta_2

                            =(diag(\sigma^{'}(z^1))(W^2))^T\delta_2

                      \frac{dl}{dW^1}=\delta_1 x^T

                      

            


# -*- coding: utf-8 -*-
"""
Created on Thu Nov 17 21:56:22 2022

@author: cxf
"""

import torch.nn.functional as F
import torch

def one_hot(x):
    
    x = torch.tensor(x,dtype=int)
    y=F.one_hot(x,num_classes=10)
    
    print(y)
    return y

if  __name__ == "__main__":
    
    x =[1,2,3,4]
    one_hot(x)

你可能感兴趣的:(人工智能,pytorch,分类,深度学习)