Skip to content

douhenhuidyf/fork-CMU-11785-Deep-Learning

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMU 11-785: Deep Learning Homework

课程: 11-785 Introduction to Deep Learning

项目概述

每个作业分为两个相辅相成的部分:

  • 第一部分 (P1) - 构建自己的深度学习库: 在这一部分,使用 NumPy 从零开始,逐步构建了一个功能类似于 PyTorch 的个人深度学习库,包括了实现各种网络层、激活函数、损失函数和优化器的前向与反向传播。
  • 第二部分 (P2) - Kaggle 实战竞赛: 在这一部分,将第一部分所学的理论和亲手搭建的工具应用于解决真实的机器学习问题,这些Kaggle竞赛涵盖了语音、图像和自然语言处理等多个热门领域。

作业一:神经网络入门 (HW1)

  • HW1P1: MLP 组件实现

    • 任务: 搭建了一个基础的深度学习框架,实现了多层感知机(MLP)的核心组件,包括线性层、激活函数(Sigmoid, Tanh, ReLU)、损失函数(MSE, Cross-Entropy)以及批量归一化(Batch Normalization)。
    • 技术要点: 深入理解了反向传播的数学原理,并通过矢量化计算提升了代码效率。
  • HW1P2: MLP 音素分类

    • 任务: 参与了一项Kaggle竞赛,应用自己构建的MLP模型,对《华尔街日报》(WSJ)语音数据进行逐帧的音素状态分类。
    • 技术要点: 掌握了处理语音数据(梅尔频谱图)的基本流程,并学习了如何针对不平衡的多类别分类任务进行模型训练与调优。

作业二:卷积神经网络 (HW2)

  • HW2P1: CNN 组件实现

    • 任务: 在个人深度学习库中增加了对卷积神经网络(CNN)的支持,实现了1D和2D卷积层、池化层以及展平层的前向与反向传播。
    • 技术要点: 深刻理解了卷积运算作为扫描MLP的本质,并实现了权重共享机制。
  • HW2P2: CNN 网络人脸分类和鉴定

    • 任务: 在Kaggle竞赛中,使用CNN构建了一个系统,不仅能对人脸图像进行身份分类,还能通过学习到的特征嵌入(Embeddings)进行人脸验证。
    • 技术要点: 学习了如何使用CNN从图像中提取具有判别力的特征,并首次接触了如ResNet等更深层次的网络结构以及Triplet Loss等度量学习方法。

作业三:循环神经网络 (HW3)

  • HW3P1: RNN 组件实现

    • 任务: 扩展了个人库,实现了处理序列数据的核心模块,包括基础RNN、门控循环单元(GRU)以及长短期记忆网络(LSTM)的完整计算单元。
    • 技术要点: 掌握了处理“沿时间反向传播”(BPTT)的梯度计算,并理解了GRU和LSTM如何通过门控机制缓解梯度消失问题。
  • HW3P2: 音素识别任务

    • 任务: 这项Kaggle竞赛要求使用RNN和连接主义时间分类(CTC)损失函数来处理未对齐的语音和标签数据,实现从语音片段到音素序列的映射。
    • 技术要点: 首次应用CTC Loss解决了输入与输出序列长度不一的问题,并实现了Beam Search等解码算法以提升预测序列的准确性。

作业四:语言建模与序列到序列任务 (HW4)

  • HW4P1: 文本预测与图像分类

    • HW4P1 更正: 文本预测与生成
      • 任务: 在WikiText-2数据集上训练了一个基于RNN/LSTM的语言模型,用于预测下一个词并生成连贯的文本序列。
      • 技术要点: 深入研究了语言建模的评估方法(如Perplexity),并探索了正则化技巧以提升模型的泛化能力。
  • HW4P2: 基于注意力机制的语音转文字

    • 任务: 作为课程的压轴项目,在Kaggle上构建了一个端到端的自动语音识别(ASR)系统,该系统基于带有注意力机制的编码器-解码器架构(Encoder-Decoder with Attention),能够将语音信号直接转录为文字。
    • 技术要点: 成功实现了“Listen, Attend and Spell”模型,深刻理解了注意力机制如何动态地将输出与输入序列的不同部分对齐,这是现代序列到序列模型的基石。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 87.4%
  • Python 12.6%