深度学习详解:通过案例了解机器学习基础

引言

机器学习(Machine Learning,ML)和深度学习(Deep Learning,DL)是现代人工智能领域中的两个重要概念。通过让机器具备学习的能力,机器可以从数据中自动找到函数,并应用于各种任务,如语音识别、图像识别和游戏对战等。在这篇笔记中,我们将通过一个简单的案例,逐步了解机器学习的基础知识。

1.1 机器学习案例学习

1.1.1 回归问题与分类问题

在机器学习中,根据所要解决的问题类型,任务可以分为回归(Regression)和分类(Classification)两类。

  • 回归问题:当输出是一个数值时,机器学习任务称为回归问题。例如,预测未来某个时间点的PM2.5浓度。

  • 分类问题:当输出是一个类别时,任务称为分类问题。例如,邮箱系统中的垃圾邮件检测,或者AlphaGo在棋盘上选择下一步棋子的落子位置。

此外,机器学习还包括其他类型的任务,如结构化学习(Structured Learning),其目标是生成具有结构的输出,如生成一篇文章或绘制一张图。

1.1.2 案例分析:视频点击量预测

我们通过预测视频点击量的案例,来理解机器学习的运作过程。

  1. 建立模型:首先,假设我们有一个函数 y = b + wx_1​,其中 y 是我们要预测的目标(即视频的观看次数),而 x_1 是前一天的观看次数,w 和 b 是未知的参数。机器学习的任务就是通过数据来确定这些参数。

  2. 定义损失函数:损失函数用于评估模型预测的效果。一个简单的损失函数是均方误差(Mean Squared Error, MSE),即预测值与真实值之间差距的平方。

  3. 优化模型:通过优化算法,如梯度下降(Gradient Descent),我们可以找到使损失函数最小的参数 w 和 b。在优化过程中,我们随机初始化参数,然后根据损失函数的导数逐步调整参数,直至损失达到最小。

    from sklearn.linear_model import LinearRegression
    import numpy as np
    X_train = np.array([[1], [2], [3], [4]])
    y_train = np.array([3, 7, 11, 15])
    model = LinearRegression()
    model.fit(X_train, y_train)
    print(f"权重: {model.coef_[0]}, 偏置: {model.intercept_}")
    

1.1.3 梯度下降与最优解

梯度下降是一种常用的优化方法,它通过计算损失函数相对于参数的导数,逐步调整参数以找到最优解。

  • 局部最小值与全局最小值:在梯度下降过程中,可能会遇到局部最小值,即在某个区域内损失函数的值最低,但并非全局最低。因此,梯度下降可能无法找到全局最优解。

  • 超参数调节:学习率(Learning Rate)是梯度下降中的一个超参数,它决定了每一步调整的幅度。学习率过大可能会导致跳过最优解,学习率过小则可能导致收敛速度过慢。

    import numpy as np
    def loss_function(w, x, y):
        return (w * x - y) ** 2
    w = 0.0  
    learning_rate = 0.01  #
    x_train = np.array([1, 2, 3, 4])
    y_train = np.array([3, 7, 11, 15])
    for epoch in range(100):  
        grad_w = 0
        for x, y in zip(x_train, y_train):
            grad_w += 2 * x * (w * x - y)
        w -= learning_rate * grad_w  # 更新权重
        print(f"Epoch {epoch}: w = {w}, Loss = {loss_function(w, x_train[0], y_train[0])}")
    

1.2 线性模型

在案例中,我们使用了一个简单的线性模型,即 y = b + wx_1,该模型在已知数据上表现良好。然而,在实际应用中,为了提高预测的准确性,可能需要使用更复杂的模型或进行进一步的模型调整和优化。

1.2.1 损失函数的选择

除了均方误差(MSE),还有其他常用的损失函数,如平均绝对误差(Mean Absolute Error, MAE)和交叉熵(Cross Entropy),不同的损失函数适用于不同类型的问题。

1.2.2 误差表面与优化

通过将损失函数在参数空间中绘制成图,我们可以得到误差表面(Error Surface)。在这个表面上,不同颜色代表不同的损失值,优化的目标就是找到使损失最小的那一点。

X_test = np.array([[5], [6]])
y_pred = model.predict(X_test)
print(f"预测结果: {y_pred}")
from sklearn.metrics import mean_squared_error
mse = mean_squared_error([19, 23], y_pred)
print(f"均方误差: {mse}")

结语

通过这个简单的案例,我们了解了机器学习的基本步骤和概念。从模型的建立、损失函数的定义,到通过梯度下降进行优化,机器学习的核心在于找到一个能够准确预测目标的函数。后续我们将继续深入探讨更复杂的模型和优化方法。

附录:公式总结

1. 线性模型公式

y = b + wx_1

2. 损失函数:均方误差 (MSE)

\text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2

3. 损失函数:平均绝对误差 (MAE)

\text{MAE} = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i|

4. 梯度下降更新公式

w_{t+1} = w_t - \eta \frac{\partial L}{\partial w}

5. 总损失函数

L = \frac{1}{N} \sum_{n=1}^{N} e_n

6. 误差公式

e = |y - \hat{y}|

7. 误差平方公式

e = (y - \hat{y})^2

8. 交叉熵损失

L = -\sum_{i} y_i \log(\hat{y}_i)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值