第48课 Python“深度学习”基础知识及示例

标题:Python深度学习基础知识及示例

基础知识
  • 神经网络:由大量节点(或称为神经元)组成的计算系统,每个节点具有简单的计算能力,通过连接和权重实现信息的传递和处理.
  • 激活函数:用于引入非线性因素,使神经网络能够学习复杂的模式和关系.常见的激活函数包括ReLU、sigmoid、tanh等.
  • 损失函数:衡量模型预测值与真实值之间差异的函数,用于指导模型的训练过程.常见的损失函数包括均方误差(MSE)、交叉熵损失等.
  • 优化算法:用于更新神经网络的权重和偏置,以最小化损失函数.常见的优化算法包括梯度下降、随机梯度下降(SGD)、Adam等.
  • 卷积神经网络(CNN):一种专门用于处理图像数据的神经网络,通过卷积层、池化层和全连接层等结构实现图像特征的提取和分类.
  • 循环神经网络(RNN):一种能够处理序列数据的神经网络,具有记忆功能,适用于文本、语音等序列任务.LSTM(长短期记忆网络)和GRU(门控循环单元)是其改进版本.
  • 注意力机制:用于增强模型对输入数据中重要信息的关注能力,常用于序列任务中,如机器翻译、文本分类等.
  • 迁移学习:利用预训练模型的知识来解决新任务,可以减少训练时间和数据需求,适用于数据量较少或计算资源有限的情况.
  • 正则化:用于防止模型过拟合的技术,通过在损失函数中添加惩罚项或对模型参数进行约束来实现,如L1正则化、L2正则化等.
  • 超参数调优:调整模型的超参数(如学习率、批量大小、网络层数等)以获得最佳性能的过程,常用的方法包括网格搜索、随机搜索等.
示例1:使用Keras构建简单的神经网络
  • 问题:构建一个神经网络模型,用于分类鸢尾花数据集.
  • 代码示例
    from keras.models import Sequential
    from keras.layers import Dense
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import OneHotEncoder
    
    # 加载数据集
    iris = load_iris()
    X = iris.data
    y = iris.target.reshape(-1, 1)
    
    # 对标签进行独热编码
    encoder = OneHotEncoder(sparse=False)
    y = encoder.fit_transform(y)
    
    # 划分训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 创建神经网络模型
    model = Sequential()
    model.add(Dense(10, input_dim=4, activation='relu'))
    model.add(Dense(3, activation='softmax'))
    
    # 编译模型
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    # 训练模型
    model.fit(X_train, y_train, epochs=100, batch_size=10)
    
    # 评估模型
    loss, accuracy = model.evaluate(X_test, y_test)
    print(f"Accuracy: {
           accuracy * 100:.2f}%")
    
  • 说明:使用Keras构建一个简单的神经网络模型,包含一个输入层、一个隐藏层和一个输出层,用于对鸢尾花数据集进行分类.
示例2:使用TensorFlow实现线性回归
  • 问题:使用线性回归模型拟合一组数据.
  • 代码示例
    import tensorflow as tf
    import numpy as np
    
    # 训练数据
    X = np.array([1, 2, 3, 4, 5])
    y = np.array([2, 4, 6, 8, 10])
    
    # 创建模型变量
    W = tf.Variable(0.0)
    b = tf.Variable(0.0)
    
    # 定义线性回归模型
    def linear_regression(x):
        return W * x + b
    
    # 定义损失函数
    def mean_squared_error(y_pred, y_true):
        return tf.reduce_mean(tf.square(y_pred - y_true))
    
    # 定义优化器
    optimizer = tf.optimizers.SGD(learning_rate=0.01)
    
    # 训练模型
    for epoch in range(100):
        with tf.GradientTape() as tape:
            y_pred = linear_regression(X)
            loss = mean_squared_error(y_pred, y)
        gradients = tape.gradient(loss, [W, b])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结伴同行~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值