山东大学2023-2024深度学习期末回忆及参考答案


考试并不难,就是背多分。只要你在平时的学习中认真复习,掌握好每一个知识点,考试时就能游刃有余。

名词解释(3*8=24分)

分布式表示

分布式表示(Distributed Representation)是一种表示方法,在这种方法中,信息是通过多个神经元的激活模式来表示的,而不是通过单个神经元的激活。它在自然语言处理和机器学习中广泛应用,特别是在词嵌入(word embeddings)中,每个词被表示为一个高维向量。

超参数

超参数(Hyperparameter)是指在机器学习模型训练之前设置的参数,这些参数的值不能通过训练数据直接学习到,而是需要通过实验或经验来确定。常见的超参数包括学习率、批量大小、网络层数等。

共现矩阵

共现矩阵(Co-occurrence Matrix)是一种矩阵,用于表示词语在一定窗口大小内的共现频率。在自然语言处理中,共现矩阵可以帮助捕捉词语之间的语义关系,是构建词嵌入的一种方法。

截断BPTT

截断BPTT(Truncated Backpropagation Through Time)是一种训练循环神经网络(RNN)的技术。由于RNN在处理长序列时会遇到梯度消失或爆炸的问题,截断BPTT通过限制反向传播的时间步数来缓解这些问题,从而提高训练效率和稳定性。

attention机制

Attention机制(Attention Mechanism)是一种在神经网络中用于提高模型性能的方法。它通过为输入序列中的每个元素分配不同的权重,使模型能够更好地关注重要的信息。Attention机制在机器翻译、图像描述生成等任务中取得了显著效果。

梯度确认

梯度确认(Gradient Checking)是一种验证反向传播算法正确性的方法。通过数值计算梯度并与反向传播计算的梯度进行比较,可以检查模型的梯度计算是否正确,从而确保模型的训练过程是可靠的。

疑惑度

疑惑度(Perplexity)是衡量语言模型性能的一种指标。它表示模型对测试数据的困惑程度,数值越低表示模型越好。具体来说,疑惑度是模型预测测试集上每个词的平均概率的倒数的指数。

还有一个忘了

名词解释基本不难,就是贝多芬

简答(6题)

1、说出训练数据测试数据验证数据的作用,为什么要分训练数据和测试数据?

训练数据、测试数据、验证数据的作用
  • 训练数据:用于训练机器学习模型,通过不断调整模型参数,使模型能够从数据中学习到规律。
  • 测试数据:用于评估模型的性能,测试数据是模型在训练过程中未见过的数据,能够反映模型的泛化能力。
  • 验证数据:用于调参和选择模型,帮助确定最佳的超参数和模型结构,避免过拟合。
为什么要分训练数据和测试数据

分开训练数据和测试数据是为了评估模型的泛化能力。训练数据用于模型学习,而测试数据用于评估模型在未见过的数据上的表现。如果不分开,模型可能会过拟合训练数据,无法在实际应用中表现良好。

2、为什么激活函数要非线性函数?

1. 引入非线性特性

如果没有非线性激活函数,神经网络的每一层实际上只是对输入进行线性变换。多个线性变换的组合仍然是线性变换,这样的网络无法表示复杂的非线性关系。非线性激活函数使得神经网络能够学习和表示复杂的非线性模式,从而解决更复杂的问题。

2. 增加模型的表达能力

非线性激活函数使得神经网络能够近似任何函数(根据通用近似定理),从而大大增加了模型的表达能力。这样,神经网络可以更好地拟合训练数据,并在实际应用中

针对北京邮电大学2023-2024学年的C++期末考试机试的信息,通常这类具体试题不会公开发布以保持学术诚信和评估的有效性。不过,可以提供一些通用的备考建议以及可能使用的资源来帮助准备此类考试。 对于C++课程的学习,重点在于掌握编程逻辑、语法结构、数据类型、运算符、控制语句、函数定义与调用、数组操作、指针应用等方面的知识[^1]。学生应该通过大量的练习加深理解并提高解决问题的能力。下面是一些建议: ### 复习要点 #### 数据结构与算法基础 了解基本的数据结构如链表、栈、队列等,并能熟练运用这些结构编写程序解决实际问题;熟悉常见的排序和查找算法及其时间复杂度分析方法。 #### 编程实践 多做项目实战训练,比如实现简单的游戏开发、文件处理工具或其他小型应用程序,这有助于增强动手能力和积累经验。 #### 题库演练 利用在线平台上的题库进行模拟测试,例如LeetCode, Codeforces 或者牛客网等网站提供了丰富的竞赛题目供学习者挑战自我。同时也可以关注学校内部是否有类似的OJ系统用于日常练习。 ```cpp // 示例:快速排序算法实现 #include <iostream> using namespace std; void quickSort(int arr[], int low, int high){ if(low >= high) return; int pivot = arr[(low + high)/2]; int i=low,j=high; while(i<=j){ while(arr[i]<pivot)i++; while(arr[j]>pivot)j--; if(i<=j){ swap(arr[i],arr[j]); i++; j--; } } if(j>low)quickSort(arr,low,j); if(i<high)quickSort(arr,i,high); } int main(){ int nums[] = {7, 9, 8, 6, 5}; int n = sizeof(nums)/sizeof(*nums); cout << "Before sorting:" ; for (auto num : nums) cout << ' ' << num; quickSort(nums, 0 ,n-1 ); cout << "\nAfter sorting:"; for(auto num : nums ) cout<<' '<<num ; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值