• 第四周学习报告


    学习目标:

    • 深度学习花书
    • ICCV论文

    学习内容:

    • 深度学习花书第四、五章
    • ICCV2021、2019年论文题目
    • 吴恩达深度学习视频

    学习时间:

    9.25-10.2

    学习产出:

    一、深度学习

    1、学习到梯度优化及线性最小二乘的原理。
    2、了解了评价机器学习算法性能的各种指标,如任务T、性能度量P和经验E等;
    学习了贝叶斯统并了解了监督学习算法和无监督学习算法的内容。
    3、学习了吴恩达深度学习的一些视频

    贝叶斯估计
    贝叶斯估计是最大后验估计的进一步扩展,最大后验估计是估计出ɵ的具体值,而贝叶斯估计则是估计出ɵ的分布,唯一的区别是贝叶斯估计多除以一个全概率P(x),把得到的ɵ这个概率归一化。
    推导:
    条件概率公式:
    在这里插入图片描述
    其中,P ( A B ) P(AB)P(AB) 为事件A和B同时发生的概率,且有:
    在这里插入图片描述
    注:若事件A和B独立(事件B发生与否对事件A没有影响),即P ( A ∣ B ) = P ( A ) P(A|B)=P(A)P(A∣B)=P(A),则P ( A B ) = P ( A ) P ( B ) P(AB)=P(A)P(B)P(AB)=P(A)P(B)。

    对式(3)做简单的等式变换,即可得到贝叶斯公式:
    在这里插入图片描述

    RNN

    num_layers = 1
    batch_size = 1  # 一次输入多少个input_siz
    input_size = 4  # 一次选择多少个句子进行输入
    hidden_size = 4
    seq_len = 5
    # hello字符串数据
    idx2char = ['e', 'h', 'l', 'o']
    x_data = [1, 0, 2, 2, 3]  # 将hello转化为数字表示
    y_data = [3, 1, 2, 3, 2]  # ohlol
    
    # 设置索引表
    one_hot_lookup = [[1, 0, 0, 0],
                      [0, 1, 0, 0],
                      [0, 0, 1, 0],
                      [0, 0, 0, 1]]
    
    # 将hello转化为独热向量
    # data: seqLen(5) * input_size(4)
    x_one_hot = [one_hot_lookup[x] for x in x_data]
    
    # 将独热向量转化为seqLen,batch_size,input_size的维度
    inputs = torch.Tensor(x_one_hot).view(seq_len, batch_size, input_size)
    print('inputs:', inputs)
    
    # 把y_data改成 seqLen * 1 的 维度
    labels = torch.LongTensor(y_data)  # # label: (seqlen * batch_size, 1)
    
    
    class Model(torch.nn.Module):
        def __init__(self, input_size, hidden_size, batch_size, num_layers):
            super(Model, self).__init__()
            self.num_layers = num_layers
            self.batch_size = batch_size
            self.input_size = input_size
            self.hidden_size = hidden_size
            self.Rnn = torch.nn.RNN(self.input_size, self.hidden_size, self.num_layers)
    
        def forward(self, input):
            hidden = torch.zeros(self.num_layers, self.batch_size, self.hidden_size)
            out, _ = self.Rnn(input, hidden)
            return out.view(-1, self.hidden_size)
    
    
    model = Model(input_size, hidden_size, batch_size,num_layers)
    
    criterion = torch.nn.CrossEntropyLoss()
    optimizer = torch.optim.Adam(model.parameters(), lr=0.1)
    
    loss_list = []
    epoch_list = []
    
    for epoch in range(15):
        optimizer.zero_grad()
        outputs = model(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        epoch_list.append(epoch)
        loss_list.append(loss.item())
        _, idx = outputs.max(dim=1)  # 沿着hidden的y轴找最大值
        idx = idx.data.numpy()
        print('Predicted:',''.join([idx2char[x] for x in idx]),end='')
        print(',Epoch [%d/15] loss=%.4f' % (epoch + 1, loss.item()))
    
    plt.plot(epoch_list, loss_list)
    plt.xlabel('Epoch')
    plt.ylabel('Loss')
    plt.grid()
    plt.show()
    

    二、ICCV论文
    了解了ICCV上2021年和2019年图像生成领域和手姿态识别的论文。

  • 相关阅读:
    【ARK UI】HarmonyOS ETS如何创建PixeMap并显示Image组件上
    网络基础(了解网络知识的前提)
    【Qt】Unicode编码作用 ,以及在Qt中的理解
    SSM整合(三)
    控制算法::速度前馈
    Python基础学习019--跳过
    【JavaScript高级】Proxy和Reflect
    视频加密的误解
    docker for windonws--Windows 10 家庭中文版安装clickhouse 22.3版本及配置
    使用 Elasticsearch 作为向量数据库:深入研究 dense_vector 和 script_score
  • 原文地址:https://blog.csdn.net/weixin_44432831/article/details/127121766