Day 18:Keras深度学习框架入门
📋 目录
- Keras/TensorFlow概述
- 神经网络核心组件
- 模型搭建的两种方式
- 编译与训练
- 回调函数详解
- 过拟合与正则化
第一部分:Keras/TensorFlow概述(1.5小时理论)
1.1 什么是Keras?
Keras是一个高级神经网络API,最初由François Chollet开发,现在作为TensorFlow的官方高级API。
设计哲学:
- 用户友好:简单一致的API
- 模块化:独立配置的组件
- 可扩展性:易于添加自定义模块
- 多后端支持:TensorFlow, Theano, CNTK
1.2 TensorFlow简介
TensorFlow是Google开发的端到端机器学习平台。
核心概念:
- Tensor(张量):多维数组
- 计算图:定义计算流程
- 自动微分:自动计算梯度
1.3 Keras vs PyTorch vs Scikit-learn
| 对比项 | Keras/TF | PyTorch | Scikit-learn |
|---|---|---|---|
| 抽象层级 | 高级 | 低级/中级 | 高级 |
| 易用性 | ★★★★★ | ★★★☆☆ | ★★★★★ |
| 灵活性 | ★★★★☆ | ★★★★★ | ★★☆☆☆ |
| 调试难度 | 简单 | 中等 | 简单 |
| 适用场景 | 标准深度学习 | 研究、自定义模型 | 传统ML、小规模DL |
第二部分:神经网络核心组件
2.1 层(Layer)
层是神经网络的基本构建块。
# 全连接层Dense(units=64,activation='relu',input_shape=(input_dim,))# 激活层Activation('relu')# Dropout层Dropout(rate=0.5)# 输入层Input(shape=(input_dim,))2.2 激活函数
# 常用激活函数activation='relu'# 隐藏层默认选择activation='sigmoid'# 二分类输出层activation='softmax'# 多分类输出层activation='tanh'# 传统选择activation='linear'# 回归输出层2.3 损失函数
# 二分类loss='binary_crossentropy'# 多分类loss='categorical_crossentropy'loss='sparse_categorical_crossentropy'# 标签为整数时# 回归loss='mse'# 均方误差loss='mae'# 平均绝对误差loss='huber'# Huber损失