李宏毅机器学习 hw1
时间: 2023-08-03 11:08:17 浏览: 240
回答: 李宏毅的机器学习课程中的hw1是关于线性回归任务的。这个作业的重点在于对原始数据的处理和线性回归训练的过程。学生通过分析目标,使用kaggle波士顿房价预测来提升作业1的性能。在这个过程中,有一篇博客文章提到了如何通过神经网络来确定输入的重要性[2]。此外,还有一个问题讨论了神经网络是否需要具有正态分布的数据[3]。
相关问题
李宏毅机器学习 hw2
### 李宏毅机器学习课程第二次作业解决方案
#### 数据导入与预处理
为了完成李宏毅教授的机器学习课程中的第二次作业,首先需要准备好环境并加载必要的库。通常情况下会涉及到`numpy`, `pandas`等基础的数据科学工具包[^3]。
```python
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
```
接着读取训练数据,并将其转换成适合后续操作的形式:
```python
data = pd.read_csv('path_to_train_data.csv')
X = data.iloc[:, :-1].to_numpy() # 特征列
y = data.iloc[:, -1].to_numpy().reshape(-1, 1) # 标签列
```
对于输入特征矩阵\( X \),可能还需要执行标准化或归一化处理来改善模型性能:
```python
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
#### 划分训练集和验证集
考虑到过拟合的风险,在正式训练之前应该预留部分样本作为验证集用于评估模型表现:
```python
X_train, X_val, y_train, y_val = train_test_split(
X_scaled, y, test_size=0.2, random_state=42)
```
#### 训练过程
采用适应性梯度算法(AdaGrad)进行参数优化可以有效提升收敛速度。这里假设已经选择了合适的损失函数以及初始化了权重向量\[ w \].
```python
def adagrad_update(w, grad_w, cache=None, lr=0.01):
if cache is None:
cache = np.zeros_like(w)
cache += grad_w ** 2
w -= lr * grad_w / (np.sqrt(cache) + 1e-8)
return w, cache
```
在每次迭代过程中更新权值直至满足停止条件为止。
#### 测试阶段
当模型训练完成后,同样需对测试集应用相同的数据变换流程以便于做出准确预测;最后利用训练好的模型来进行最终评测。
```python
test_data = pd.read_csv('path_to_test_data.csv')
X_test = test_data.values.astype(float)
X_test_prepared = scaler.transform(X_test)
predictions = model.predict(X_test_prepared)
```
李宏毅机器学习HW5-Transformer数据
李宏毅的机器学习课程中提到的HW5(作业5),可能涉及到Transformer模型在自然语言处理任务中的应用。Transformer是一种基于自注意力机制的深度学习模型,最初由Google在2017年提出的BERT(Bidirectional Encoder Representations from Transformers)就是其变种之一。
在HW5的数据部分,学生可能会接触到如何加载和预处理Transformer需要的文本数据,比如常见的英文文本数据集如IMDB电影评论、Twitter情感分析数据,或者是更专业的如WMT机器翻译任务的数据集。他们需要对数据进行分词(Tokenization)、编码(如使用WordPiece或SentencePiece)、填充零(Padding)、切分成训练、验证和测试集等步骤。
此外,可能还会涉及如何配置Transformer模型的结构参数(如头的数量、隐藏层的大小等)、调整优化器和学习率策略,并通过训练过程监控指标如 perplexity 或 BLEU分数来评估模型性能。
阅读全文