名人说:路漫漫其修远兮,吾将上下而求索。 —— 屈原《离骚》
创作者:Code_流苏(优快云)(一个喜欢古诗词和编程的Coder😊)
目录
- 更新进度:2025.5.21
- 第一阶段:基础入门(第1-7天)
- 第二阶段:进阶实践(第8-14天)
- 第三阶段:项目实战(第15-21天)
- 第四阶段:数据分析与可视化(第22-28天)
- 第五阶段:Web开发深入(第29-35天)
- 第六阶段:数学基础(第36-42天,AI核心支撑)📈
- 第七阶段:机器学习基础(第43-49天) 🤖
- 第八阶段:深度学习进阶(第50-63天) 🧠
- 第九阶段:自然语言处理(NLP)(第64-77天) 🗣️
- 第十阶段:计算机视觉(CV)(第78-82天)
- 第十一阶段:强化学习(RL)(第83-86天)
- 第十二阶段:大模型(LLM)原理与使用(第87-91天)
- 第十三阶段:AI 工程化(第93-96天)
更多硬核知识,请关注我、订阅专栏《 Python星球日记》内容持续更新中…
暂定为一个为期21天的《Python星球日记》专栏大纲及安排,旨在帮助初学者系统学习Python编程。
教程分为三个阶段:基础入门、进阶实践和项目实战,每天的内容都包含理论讲解、代码示例和练习题,确保读者能够循序渐进地掌握Python。
更新进度:2025.5.21
4.10 第一阶段-第二阶段已更新完(版本号v1.0,第二版正在不断校对中ing)
5.10 第三阶段-第七阶段已更新完(版本号v1.0)
5.21 第八阶段-第十三阶段已更新完(版本号v1.0)
…
进度可视化如下:
第一阶段:基础入门(第1-7天)
目标:熟悉Python的基本语法和核心概念,为后续学习打下坚实的基础。
第1天:欢迎来到Python星球
文章链接:Python星球日记 - 第1天:欢迎来到Python星球
- Python简介:历史、特点及应用场景
- 安装 Python、选择编辑器(VSCode、PyCharm 等)
- 第一个Python程序:`print("Hello, Python!")`
- 基本输入输出:`input()` 和 `print()`
- 练习:编写一个简单的问候程序
第2天:数据类型与变量
- 变量的概念与命名规则
- 常见数据类型:整数、浮点数、字符串、布尔值
- 类型转换:`int()`、`float()`、`str()` 等
- 练习:计算用户输入的两个数字之和
第3天:运算符与表达式
- 算术运算符:加减乘除、取余、幂运算
- 比较运算符:等于、不等于、大于、小于等
- 逻辑运算符:`and`、`or`、`not`
- 运算符优先级
- 练习:判断一个年份是否是闰年
第4天:控制结构(条件语句)
文章链接:Python星球日记 - 第4天:控制结构(条件语句)
- 条件语句:`if`、`elif`、`else`
- 缩进的重要性
- 嵌套条件语句
- 练习:根据分数判断成绩等级(A、B、C、D)
第5天:循环结构
- `for` 循环:遍历列表、字符串等
- `while` 循环:条件控制循环
- 循环控制关键字:`break`、`continue`
- 嵌套循环
- 练习:打印九九乘法表
第6天:列表与元组
- 列表的定义与操作:增删改查、切片
- 列表方法:`append()`、`remove()`、`sort()` 等
- 元组的特点与使用场景
- 列表与元组的区别
- 练习:统计列表中偶数的个数
第7天:字典与集合
- 字典的定义与操作:键值对、增删改查
- 字典方法:`keys()`、`values()`、`items()` 等
- 集合的特点与基本操作
- 练习:统计一段文本中每个单词出现的次数
第二阶段:进阶实践(第8-14天)
目标:掌握函数、模块、文件操作等进阶内容,提升代码复用性和实用性。
第8天:函数基础
- 函数的定义与调用:`def`
- 参数与返回值
- 局部变量与全局变量
- 练习:编写一个计算阶乘的函数
第9天:高级函数
- 默认参数、可变参数(`*args` 和 `**kwargs`)
- 匿名函数:`lambda`
- 内置函数:`map()`、`filter()`、`reduce()`
- 练习:使用匿名函数筛选出列表中的奇数
第10天:模块与包
- 模块的概念与导入方式:`import`、`from ... import ...`
- 标准库简介:`math`、`random`、`datetime`
- 创建自己的模块
- 练习:生成随机密码
第11天:文件操作
- 文件的打开与关闭:`open()`、`close()`
- 文件读写模式:`r`、`w`、`a`
- 文件读写方法:`read()`、`write()`、`readlines()`
- 异常处理:`try...except`
- 练习:统计文本文件中行数和单词数
第12天:面向对象编程(OOP)基础
文章链接:Python星球日记 - 第12天:面向对象编程(OOP)基础
- 类与对象的概念
- 定义类与创建对象:`class`
- 构造函数:`__init__`
- 属性与方法
- 练习:创建一个学生类并实现基本信息管理
第13天:继承与多态
文章链接:Python星球日记 - 第13天:封装、继承与多态
- 继承的概念与实现
- 方法重写与`super()`的使用
- 多态的概念与应用
- 练习:设计一个动物类及其子类
第14天:异常处理与调试
文章链接:Python星球日记 - 第14天:异常处理与调试
- 异常的概念与常见类型
- 自定义异常
- 调试工具与技巧:`print()`、断点调试
- 练习:捕获用户输入错误并提示重新输入
第三阶段:项目实战(第15-21天)
目标:通过实际项目巩固所学知识,培养解决实际问题的能力。
第15天:综合复习
文章链接:Python星球日记 - 第15天:综合复习(回顾前14天所学知识)
- 回顾前两周的知识点
- 解答常见问题
- 练习:编写一个简易计算器
第16天:爬虫基础
文章链接:Python星球日记 - 第16天:爬虫基础(仅学习使用)
- 爬虫的概念与原理
- 使用`requests`库获取网页数据
- 使用`BeautifulSoup`解析HTML
- 练习:爬取某个网站的标题列表
第17天:数据可视化
- 数据可视化工具:`matplotlib`、`seaborn`
- 绘制折线图、柱状图、饼图
- 练习:分析并可视化一份销售数据
第18天:小游戏开发(猜数字游戏)
文章链接:Python星球日记 - 第18天:小游戏开发(猜数字游戏)
- 游戏逻辑设计
- 使用`random`模块生成随机数
- 用户交互与反馈
- 练习:增加难度选项
第19天:Web开发基础
文章链接:Python星球日记 - 第19天:Web开发基础
- 使用`Flask`框架搭建简单Web应用
- 路由与视图函数
- 模板渲染:`Jinja2`
- 练习:创建一个个人博客首页
第20天:数据分析入门
- 使用`pandas`进行数据处理
- 数据清洗与分析
- 练习:分析一份CSV格式的销售数据
第21天:总结与展望
文章链接:Python星球日记 - 第21天:基础阶段大总结
- 回顾整个学习过程
- 分享学习心得与经验
- 推荐后续学习方向:机器学习、自动化脚本、深度学习等
- 最后寄语:鼓励读者继续探索Python的无限可能
第四阶段:数据分析与可视化(第22-28天)
目标:掌握数据分析的核心工具和数据可视化的技巧,为从事数据科学或相关领域打下坚实基础。
第22天:NumPy 基础
文章链接:《Python星球日记》第22天:NumPy 基础
- NumPy 简介:
- 什么是 NumPy?为什么使用 NumPy?
- 安装与导入
- 多维数组操作:
- 创建数组:`np.array()`、`np.zeros()`、`np.ones()` 等
- 数组属性:形状、维度、数据类型
- 数组索引与切片
- 广播机制:
- 广播的概念与应用
- 向量化计算的优势
- 练习:实现矩阵加法和乘法
第23天:Pandas 基础
文章链接:《Python星球日记》第23天:Pandas基础
- Pandas 简介:
- 什么是 Pandas?为什么使用 Pandas?
- 安装与导入
- Series 和 DataFrame:
- Series 的创建与操作
- DataFrame 的创建与基本操作
- 数据读取与保存:
- 读取 CSV 文件:`pd.read_csv()`
- 保存数据到文件:`df.to_csv()`
- 练习:从 CSV 文件中读取数据并进行简单统计分析
第24天:Pandas 数据清洗
文章链接:《Python星球日记》第24天:Pandas 数据清洗
- 缺失值处理:
- 检测缺失值:`isnull()`、`notnull()`
- 删除缺失值:`dropna()`
- 填充缺失值:`fillna()`
- 重复值处理:
- 检测重复值:`duplicated()`
- 删除重复值:`drop_duplicates()`
- 数据转换:
- 数据类型转换:`astype()`
- 字符串操作:`str` 方法
- 练习:清洗一份包含缺失值和重复值的数据集
第25天:Pandas 数据分析
文章链接:《Python星球日记》第25天:Pandas 数据分析
- 数据分组与聚合:
- 分组操作:`groupby()`
- 聚合函数:`sum()`、`mean()`、`count()` 等
- 排序与排名:
- 排序:`sort_values()`、`sort_index()`
- 排名:`rank()`
- 时间序列分析:
- 时间戳与时间段
- 时间序列索引与重采样
- 练习:对销售数据进行分组统计并绘制趋势图
第26天:Matplotlib 可视化
文章链接:《Python星球日记》第26天:Matplotlib 可视化
- Matplotlib 简介:
- 什么是 Matplotlib?为什么使用 Matplotlib?
- 安装与导入
- 基本绘图:
- 绘制折线图:`plot()`
- 绘制柱状图:`bar()`、`barh()`
- 绘制饼图:`pie()`
- 图形美化:
- 添加标题、标签、图例
- 调整颜色、样式、网格
- 练习:可视化一份销售数据的趋势变化
第27天:Seaborn 可视化
文章链接:《Python星球日记》第27天:Seaborn 可视化
- Seaborn 简介:
- Seaborn 与 Matplotlib 的区别
- 安装与导入
- 高级绘图:
- 分布图:`distplot()`、`kdeplot()`
- 关系图:`scatterplot()`、`lineplot()`
- 分类图:`boxplot()`、`violinplot()`
- 图形组合:
- 使用 `FacetGrid` 绘制多个子图
- 自定义配色方案
- 练习:分析一份数据集并绘制多维度关系图
第28天:综合项目:数据获取与可视化
文章链接:《Python星球日记》第28天:数据获取与可视化(综合项目)
- 数据获取:
- 使用 `requests` 和 `BeautifulSoup` 爬取网页数据
- 数据解析与存储
- 数据可视化:
- 使用 Pandas 进行数据清洗与分析
- 使用 Matplotlib 和 Seaborn 绘制可视化图表
- 练习:爬取某网站的公开数据并生成可视化报告
第五阶段:Web开发深入(第29-35天)
目标:深入学习 Web 开发技术,掌握 Flask 和 Django 框架,并了解前后端分离和 Web 安全的基础知识。
第29天:Flask 进阶
- 路由与视图:
- 动态路由:`<variable>` 参数
- 路由装饰器:`@app.route()`
- 模板渲染:
- Jinja2 模板语法:变量、控制结构、过滤器
- 模板继承与块
- 静态文件:
- 静态文件的加载与管理
- 练习:构建一个动态博客系统
第30天:Flask 数据库集成
文章链接:《Python星球日记》第30天:Flask数据库集成
- 数据库基础:
- SQLite 数据库简介
- 使用 SQLAlchemy 管理数据库
- 模型定义:
- 创建表:`db.Model`
- 定义字段:`Column()`、`String()`、`Integer()` 等
- CRUD 操作:
- 创建、查询、更新、删除记录
- 练习:为博客系统添加用户注册和登录功能
第31天:Django 框架入门
文章链接:《Python星球日记》第31天:Django 框架入门
- Django 简介:
- Django 的特点与应用场景
- 创建 Django 项目与应用
- 模型与数据库:
- 定义模型:`models.Model`
- 迁移命令:`makemigrations`、`migrate`
- 视图与模板:
- 视图函数:`HttpResponse`、`render()`
- 模板渲染:Django 模板语言
- 练习:创建一个简单的任务管理系统
第32天:Django 表单与认证
文章链接:《Python星球日记》第32天:Django 表单与认证
- 表单处理:
- 定义表单:`forms.Form`、`forms.ModelForm`
- 表单验证与错误提示
- 用户认证:
- 用户注册、登录、注销
- 权限管理与用户组
- 练习:为任务管理系统添加用户认证功能
第33天:前后端分离与 RESTful API
文章链接:《Python星球日记》第33天:前后端分离与 RESTful API
- RESTful API 简介:
- 什么是 RESTful API?
- HTTP 方法:GET、POST、PUT、DELETE
- 使用 Flask 或 Django 构建 API:
- Flask:`Flask-RESTful` 扩展
- Django:`Django REST framework`
- 前端交互:
- 使用 JavaScript 或 Postman 测试 API
- 练习:构建一个支持增删改查的 RESTful API
第34天:Web 安全基础
文章链接:《Python星球日记》第34天:Web 安全基础
- 常见安全问题:
- SQL 注入:如何防范?
- XSS 攻击:输入验证与输出编码
- CSRF 攻击:令牌验证
- 安全实践:
- 密码加密:`bcrypt`、`hashlib`
- HTTPS 与 SSL/TLS
- 练习:修复一个存在安全漏洞的示例项目
第35天:全栈开发(综合项目)
文章链接:《Python星球日记》第35天:全栈开发(综合项目)
- 项目需求:
- 设计一个完整的全栈应用(如博客系统等)
- 包含前端界面、后端逻辑、数据库设计
- 技术栈:
- 前端:HTML、CSS、JavaScript 或框架(如 React、Vue)
- 后端:Flask 或 Django
- 数据库:SQLite 或 MySQL
- 练习:开发并部署一个全栈项目
第六阶段:数学基础(第36-42天,AI核心支撑)📈
目标:掌握人工智能所需的核心数学知识,为理解机器学习算法打下坚实理论基础。
第36天:线性代数基础
- 标量、向量、矩阵的基本概念
- 矩阵运算:加法、乘法、转置、逆矩阵
- 向量空间与线性组合
- 代码练习:使用 NumPy 实现矩阵运算
第37天:向量与矩阵进阶
文章链接:《Python星球日记》 第37天:向量与矩阵进阶
- 特征值与特征向量
- 正交性与正交矩阵
- 奇异值分解(SVD)简介
- 应用场景:降维、图像压缩
- 代码练习:使用 NumPy 计算特征值与特征向量
第38天:概率与统计基础
文章链接:《Python星球日记》 第38天:概率与统计基础
- 概率定义与基本性质
- 条件概率与贝叶斯公式
- 独立事件与联合分布
- 期望、方差与协方差
- 代码练习:绘制常见概率分布图(如正态分布、伯努利分布)
第39天:假设检验与推断统计
文章链接:《Python星球日记》 第39天:假设检验与推断统计
- 统计假设与显著性水平
- T 检验与 Z 检验
- 中心极限定理
- 置信区间与 P 值
- 代码练习:使用 SciPy 进行简单的假设检验
第40天:微积分基础
- 函数、导数与偏导数
- 极限与连续性的概念
- 多元函数求导
- 梯度的概念与计算
- 代码练习:使用 SymPy 或 NumPy 求解导数与梯度
第41天:梯度下降与优化初步
文章链接:《Python星球日记》 第41天:梯度下降与优化初步
- 损失函数与目标函数
- 批量梯度下降(BGD)、随机梯度下降(SGD)
- 学习率的作用与调参技巧
- 动量法、Adam 等优化器简介
- 代码练习:手动实现一个简单线性模型的梯度下降
第42天:综合练习与数学建模
文章链接:《Python星球日记》 第42天:综合练习与数学建模
- 使用数学工具解决实际问题(如房价预测、分类任务)
- 从数据准备到模型构建的全过程演练
- 数学建模思维训练
- 代码练习:结合 Pandas + NumPy + Matplotlib 完成一个小项目
第七阶段:机器学习基础(第43-49天) 🤖
目标:掌握 Scikit-learn 工具库和常见的机器学习算法,能够独立完成端到端的建模流程。
第43天:机器学习概述与Scikit-learn入门
文章链接:《Python星球日记》 第43天:机器学习概述与Scikit-learn入门
- 什么是机器学习?三大类型:监督学习、无监督学习、强化学习
- Scikit-learn 简介与安装
- 数据预处理流程概览
- 示例:加载内置数据集并进行简单建模
第44天:线性回归与逻辑回归
文章链接:《Python星球日记》 第44天: 线性回归与逻辑回归
- 线性回归原理与损失函数
- 逻辑回归的 Sigmoid 函数与分类思想
- 使用 Scikit-learn 实现回归模型
- 代码练习:预测房价 / 判断是否通过考试
第45天:KNN 与 SVM 分类器
文章链接:《Python星球日记》 第45天:KNN 与 SVM 分类器
- KNN 原理与距离计算
- SVM 的支持向量与核技巧
- 使用 Scikit-learn 实现分类
- 代码练习:鸢尾花分类实验
第46天:决策树与随机森林
文章链接:《Python星球日记》 第46天:决策树与随机森林
- 决策树的分裂准则(信息增益、基尼系数)
- 随机森林的集成思想与优势
- 使用 Scikit-learn 构建决策树与森林模型
- 代码练习:泰坦尼克生存预测
第47天:聚类与KMeans
文章链接:《Python星球日记》 第47天:聚类与KMeans
- 聚类与分类的区别
- KMeans 算法原理与迭代过程
- 评估聚类效果:轮廓系数
- 代码练习:客户分群或图像颜色压缩
第48天:模型评估与选择
文章链接:《Python星球日记》 第48天:模型评估与选择
- 交叉验证:K 折交叉验证、留一法
- 混淆矩阵与分类报告
- ROC 曲线与 AUC 值
- 准确率、召回率、F1 分数
- 代码练习:对比不同模型在相同数据上的表现
第49天:特征工程与全流程建模
文章链接:《Python星球日记》 第49天:特征工程与全流程建模
- 特征标准化与归一化
- 缺失值填充策略
- 特征编码:One-Hot 编码、Label 编码
- 特征选择方法:卡方检验、Lasso 回归
- 端到端建模流程:从数据清洗到模型部署
- 代码练习:完成一个完整的机器学习项目(如贷款违约预测)
第八阶段:深度学习进阶(第50-63天) 🧠
目标:从神经网络的基础原理入手,逐步深入到卷积神经网络(CNN)、循环神经网络(RNN)、迁移学习等高级主题,并通过综合项目实战巩固所学内容。
第一部分:基础知识与工具入门(第50-52天)
第50天:深度学习概述与环境搭建
文章链接:《Python星球日记》 第50天:深度学习概述与环境搭建
- 什么是深度学习?它与传统机器学习的区别
- 神经网络的发展历程:感知机 → 深度神经网络
- 安装深度学习框架:
- TensorFlow 入门安装与配置
- PyTorch 入门安装与配置
- 编写第一个深度学习程序(Hello World)
- 练习:运行一个简单的神经网络模型
第51天:神经网络基础
- 神经元与激活函数:Sigmoid、ReLU、Tanh
- 多层感知机(MLP)结构
- 前向传播与损失计算
- 激活函数的选择与影响
- 代码练习:使用 TensorFlow / PyTorch 构建一个简单的神经网络
第52天:反向传播与优化器
文章链接:《Python星球日记》 第52天:反向传播与优化器
- 反向传播算法原理简述
- 梯度下降法回顾与改进:SGD、Adam、RMSprop
- 损失函数详解:MSE、交叉熵
- 权重初始化与正则化(L1、L2 正则化)
- 代码练习:手动实现前向传播与梯度下降过程
第二部分:图像处理与卷积神经网络(第53-55天)
第53天:卷积神经网络(CNN)入门
文章链接:《Python星球日记》 第53天:卷积神经网络(CNN)入门
- 图像表示与通道概念
- 卷积层、池化层、全连接层的作用
- CNN 的优势与应用场景(图像分类、目标检测)
- 使用 TensorFlow / PyTorch 实现简单 CNN
- 代码练习:手写数字识别(MNIST 数据集)
第54天:卷积神经网络进阶
文章链接:《Python星球日记》 第54天:卷积神经网络进阶
- 深度 CNN 架构解析:LeNet、AlexNet、VGG、ResNet
- 数据增强技术:旋转、翻转、裁剪
- Dropout 与 Batch Normalization 的作用
- 代码练习:CIFAR-10 图像分类任务
第55天:迁移学习与预训练模型
文章链接:《Python星球日记》 第55天:迁移学习与预训练模型
- 什么是迁移学习?
- 使用预训练模型(如 VGG、ResNet、EfficientNet)
- 冻结层与微调技巧
- 超参数调优方法:网格搜索、随机搜索、早停法
- 代码练习:基于 ResNet 的图像分类任务
第三部分:自然语言处理与序列模型(第56-58天)
第56天:循环神经网络(RNN)入门
文章链接:《Python星球日记》 第56天:循环神经网络(RNN)入门
- 序列数据的特点与挑战
- RNN 的基本结构与前向传播
- 文本预处理:分词、嵌入(Embedding)
- 使用 RNN 进行文本分类或情感分析
- 代码练习:电影评论情感预测(IMDB 数据集)
第57天:LSTM 与 GRU
文章链接:《Python星球日记》 第57天:LSTM 与 GRU
- LSTM 的门控机制(输入门、遗忘门、输出门)
- GRU 的简化结构与优势
- 长序列问题的解决方案
- 代码练习:时间序列预测或文本生成
第58天:Transformer 与 BERT
文章链接:《Python星球日记》 第58天:Transformer 与 BERT
- Transformer 架构简介:
- 自注意力机制(Self-Attention)
- 多头注意力与位置编码
- BERT 的结构与预训练任务(MLM、NSP)
- 微调 BERT 进行下游任务(文本分类、NER)
- 代码练习:使用 Hugging Face Transformers 微调 BERT
第四部分:生成模型与强化学习(第59-61天)
第59天:生成对抗网络(GAN)
文章链接:《Python星球日记》 第59天:生成对抗网络(GAN)
- GAN 的基本原理:
- 生成器与判别器的博弈过程
- 训练流程与目标函数
- 常见 GAN 变体:DCGAN、CycleGAN
- 代码练习:使用 TensorFlow 或 PyTorch 实现一个简单的 DCGAN
第60天:强化学习基础
- 强化学习简介:
- Agent、Environment、Reward 的概念
- Q-Learning 的基本原理
- 使用 Gym 环境进行简单实验
- 代码练习:CartPole 游戏中的 Q-Learning
第61天:深度强化学习(DQN 与 PPO)
文章链接:《Python星球日记》 第61天:深度强化学习(DQN 与 PPO)基础
- DQN(Deep Q-Network):
- 使用神经网络近似 Q 函数
- 经验回放与目标网络
- PPO(Proximal Policy Optimization):
- 策略梯度方法的优势
- 代码练习:使用 Stable-Baselines3 训练一个 PPO 模型
第五部分:综合项目实战(第62-63天)
第62天:图像方向综合项目
文章链接:《Python星球日记》 第62天:图像方向综合项目(猫狗分类)
- 项目需求:猫狗分类识别系统
- 数据准备与增强
- 模型选择与训练(CNN 或迁移学习)
- 结果可视化与评估
- 部署建议:导出为 `.h5` 或 `.pt` 模型文件
第63天:文本方向综合项目
文章链接:《Python星球日记》 第63天:文本方向综合项目(新闻分类)
- 项目需求:新闻类别自动分类
- 数据清洗与文本预处理
- 模型选择与训练(RNN/LSTM/Transformer)
- 结果可视化与评估
- 部署建议:构建 RESTful API 接口
第九阶段:自然语言处理(NLP)(第64-77天) 🗣️
目标:系统学习自然语言处理的核心技术,从文本预处理到高级语言模型的应用,并通过综合项目实战巩固所学知识。
第一部分:NLP 基础与数据处理(第64-66天)
第64天:NLP 概述与文本预处理
文章链接:《Python星球日记》 第64天:NLP 概述与文本预处理
- NLP 简介:
- 什么是自然语言处理?应用场景(机器翻译、情感分析、问答系统等)
- 文本数据的特点与挑战
- 文本预处理:
- 分词、去停用词、词干提取与词形还原
- 特殊符号处理与正则表达式
- 工具库介绍:
- NLTK、spaCy、jieba(中文分词)
- 代码练习:对一段英文/中文文本进行预处理
第65天:词向量与语言表示
文章链接:《Python星球日记》 第65天:词向量与语言表示
- 词向量简介:
- One-Hot 编码的局限性
- Word2Vec 的原理与实现(CBOW 和 Skip-Gram)
- GloVe 和 FastText 的特点
- 预训练词向量:
- 加载预训练词向量(如 Google Word2Vec、GloVe)
- 使用词向量计算相似度
- 代码练习:使用 gensim 或 spaCy 计算词语间的相似度
第66天:序列建模与语言模型
文章链接:《Python星球日记》 第66天:序列建模与语言模型
- 传统语言模型:
- n-gram 模型及其局限性
- RNN 在语言建模中的应用:
- 使用 RNN 构建简单的语言模型
- 数据准备:
- 文本分词与嵌入表示(Word Embedding)
- 代码练习:基于 RNN 的简单语言生成任务
第二部分:深度学习在 NLP 中的应用(第67-70天)
第67天:Transformer 架构与自注意力机制
文章链接:《Python星球日记》 第67天:Transformer 架构与自注意力机制
- Transformer 原理:
- 自注意力机制(Self-Attention)与多头注意力
- 位置编码与前馈网络
- Transformer 的优势:
- 并行化训练与长距离依赖捕捉
- 代码练习:实现一个简单的自注意力机制
第68天:BERT 与预训练模型
文章链接:《Python星球日记》 第68天:BERT 与预训练模型
- BERT 模型:
- BERT 的结构与预训练任务(MLM、NSP)
- 微调 BERT 进行下游任务(分类、NER 等)
- 工具库介绍:
- Hugging Face Transformers
- 代码练习:使用 Hugging Face 微调 BERT 完成文本分类任务
第69天:生成式模型(GPT 系列)
文章链接:《Python星球日记》 第69天:生成式模型(GPT 系列)
- GPT 简介:
- GPT 的架构与工作原理
- Decoder-only 结构与生成能力
- 文本生成任务:
- 基于 GPT 的文本补全与生成
- 代码练习:使用 Hugging Face 的 GPT 模型生成对话或文章
第70天:Seq2Seq 与 Transformer Decoder
文章链接:《Python星球日记》 第70天:Seq2Seq 与Transformer Decoder
- Seq2Seq 模型:
- Encoder-Decoder 架构
- Attention 机制在 Seq2Seq 中的作用
- Transformer Decoder:
- 用于机器翻译与对话生成
- 代码练习:构建一个简单的机器翻译或对话生成模型
第三部分:高级 NLP 技术与应用(第71-73天)
第71天:命名实体识别(NER)与关系抽取
文章链接:《Python星球日记》 第71天:命名实体识别(NER)与关系抽取
- NER 简介:
- 实体类型(人名、地名、组织名等)
- 使用 BiLSTM-CRF 或 BERT 实现 NER
- 关系抽取:
- 实体间关系的标注与识别
- 代码练习:使用 spaCy 或 Hugging Face 微调 NER 模型
第72天:问答系统与信息检索
文章链接:《Python星球日记》 第72天:问答系统与信息检索
- 问答系统分类:
- 基于检索的问答 vs 基于生成的问答
- 使用 BERT 构建问答系统:
- SQuAD 数据集简介
- 微调 BERT 进行问答任务
- 代码练习:实现一个基于 BERT 的问答系统
第73天:情感分析与主题建模
文章链接:《Python星球日记》 第72天:问答系统与信息检索
- 情感分析:
- 基于规则的方法 vs 基于深度学习的方法
- 使用 LSTM 或 BERT 进行情感分类
- 主题建模:
- LDA(Latent Dirichlet Allocation)简介
- 主题提取与可视化
- 代码练习:实现情感分析或主题建模任务
第四部分:综合项目实战(第74-77天)
第74天:项目需求与数据准备
文章链接:《Python星球日记》 第74天:项目需求与数据准备
- 项目方向选择:
- 情感分析、文本分类、命名实体识别、问答系统等
- 数据收集与清洗:
- 数据标注工具(Label Studio、Doccano)
- 数据增强与平衡
第75天:模型选择与训练
文章链接:《Python星球日记》 第75天:模型选择与训练
- 模型选择:
- 根据任务选择合适的模型(CNN、RNN、BERT、GPT 等)
- 模型训练:
- 超参数调优与早停法
- 使用 GPU 加速训练
- 代码练习:完成模型训练与验证
第76天:结果评估与可视化
文章链接:《Python星球日记》 第76天:模型评估与可视化
- 模型评估:
- 准确率、召回率、F1 分数
- 混淆矩阵与 ROC 曲线
- 结果可视化:
- 使用 Matplotlib 或 Plotly 展示结果
- 代码练习:评估模型性能并生成可视化报告
第77天:模型部署与总结
文章链接:《Python星球日记》 第77天:模型部署与总结
- 模型部署:
- 导出为 `.pt` 或 `.h5` 文件
- 使用 Flask 或 FastAPI 部署为 RESTful API
- 总结与展望:
- 回顾整个 NLP 学习过程
- 推荐后续学习方向(如多模态学习、大模型微调等)
- 代码练习:完成一个完整的 NLP 项目并部署
第十阶段:计算机视觉(CV)(第78-82天)
目标:掌握计算机视觉的核心技术,能够解决图像分类、目标检测等问题。
第78天:CV 基础与图像处理
文章链接:《Python星球日记》 第78天:CV 基础与图像处理
- CV 简介:
- 什么是计算机视觉?应用场景(自动驾驶、安防监控等)
- 图像的基本属性(像素、通道、分辨率)
- 图像处理基础:
- 使用 OpenCV 进行图像读取、显示、保存
- 图像变换(缩放、旋转、裁剪)
- 代码练习:使用 OpenCV 处理一张图片
第79天:图像分类与 CNN
文章链接:《Python星球日记》 第79天:图像分类与 CNN
- 图像分类任务:
- CIFAR-10、ImageNet 数据集简介
- 使用 CNN 实现图像分类
- 数据增强:
- 随机裁剪、翻转、颜色抖动
- 代码练习:在 TensorFlow 或 PyTorch 中训练一个 CNN 分类器
第80天:目标检测(YOLO、Mask R-CNN)
文章链接:《Python星球日记》 第80天:目标检测(YOLO、Mask R-CNN)
- 目标检测简介:
- 边界框(Bounding Box)与类别标签
- 两阶段 vs 单阶段检测器
- YOLO(You Only Look Once):
- YOLO 的工作原理与优势
- 使用预训练 YOLO 模型进行目标检测
- Mask R-CNN:
- 实例分割的概念
- 代码练习:使用 YOLO 或 Mask R-CNN 检测图片中的物体
第81天:图像生成与风格迁移
文章链接:《Python星球日记》 第81天:回看图像生成与风格迁移
- 图像生成:
- GAN 在图像生成中的应用
- 使用预训练 GAN 生成人脸或其他图像
- 风格迁移:
- Neural Style Transfer 的原理
- 代码练习:使用 TensorFlow Hub 实现风格迁移
第82天:综合项目:端到端 CV 应用
文章链接:《Python星球日记》 第82天:端到端 CV 应用(综合项目)
- 项目需求:
- 图像分类、目标检测或风格迁移
- 数据准备:
- 数据标注工具(LabelImg、CVAT)
- 模型构建:
- 使用预训练模型或自定义模型
- 结果展示:
- 将模型部署为 RESTful API
- 代码练习:完成一个完整的 CV 项目
第十一阶段:强化学习(RL)(第83-86天)
目标:掌握强化学习的基本原理,并能应用到简单的问题中。
第83天:强化学习概述
- 强化学习简介:
- 什么是强化学习?与监督学习的区别
- Agent、Environment、Reward 的概念
- Markov 决策过程(MDP):
- 状态、动作、奖励函数
- 经典算法:
- Q-Learning 的基本原理
第84天:Q-Learning 与 DQN
文章链接:《Python星球日记》 第84天:Q-Learning 与 DQN
- Q-Learning:
- Q 表更新公式
- 探索与利用(Exploration vs Exploitation)
- DQN(Deep Q-Network):
- 使用神经网络近似 Q 函数
- 经验回放与目标网络
- 代码练习:使用 Gym 环境训练一个简单的 Q-Learning 或 DQN 模型
第85天:策略梯度方法
- 策略梯度简介:
- 直接优化策略函数
- REINFORCE 算法
- Actor-Critic 方法:
- 结合价值函数与策略函数
- 代码练习:实现一个简单的 Actor-Critic 模型
第86天:深度强化学习进阶
文章链接:《Python星球日记》 第86天:深度强化学习进阶
- PPO(Proximal Policy Optimization):
- PPO 的优势与应用场景
- SAC(Soft Actor-Critic):
- 最大熵强化学习
- 代码练习:使用 Stable-Baselines3 训练一个 PPO 模型
第十二阶段:大模型(LLM)原理与使用(第87-91天)
目标:了解大语言模型(LLM)的工作原理,并学会如何使用现有工具进行开发。
第87天:大模型概述
文章链接:《Python星球日记》 第87天:什么是大语言模型 LLM?
- LLM 简介:
- 什么是大语言模型?发展历程(从 GPT 到 GPT-4)
- LLM 的应用场景(对话、写作、代码生成等)
- 模型架构:
- Transformer 的扩展与改进
- 代码练习:加载并运行一个预训练 LLM 模型
第88天:ChatGPT 与 LangChain
文章链接:《Python星球日记》 第88天:ChatGPT 与 LangChain
- ChatGPT 简介:
- 如何与 ChatGPT 交互?
- Prompt Engineering 的技巧
- LangChain:
- 什么是 LangChain?如何使用它?
- 代码练习:使用 LangChain 构建一个简单的问答系统
第89天:LlamaIndex 与知识图谱
文章链接:《Python星球日记》 第89天:LlamaIndex 与知识图谱
- LlamaIndex 简介:
- 如何将私有数据集成到 LLM 中?
- 知识图谱:
- 构建与查询知识图谱
- 代码练习:使用 LlamaIndex 实现文档问答
第90天:微调大模型
文章链接:《Python星球日记》 第90天:微调的概念以及如何微调大模型?
- 微调原理:
- 如何在特定任务上微调 LLM?
- LoRA(Low-Rank Adaptation):
- 参数高效微调的方法
- 代码练习:微调一个小型 LLM 模型
第91天:综合项目:端到端 LLM 应用
文章链接:《Python星球日记》 第91天:端到端 LLM 应用(综合项目:医疗文档助手)
- 项目需求:
- 构建一个基于 LLM 的聊天机器人或文档助手
- 数据准备:
- 收集与处理私有数据
- 模型微调:
- 使用 LoRA 或其他方法
- 结果展示:
- 将模型部署为 Web 应用
- 代码练习:完成一个完整的 LLM 项目
第十三阶段:AI 工程化(第93-96天)
目标:掌握 AI 模型的工程化实践,包括模型部署、自动化训练平台等。
第92天:模型部署基础
文章链接:《Python星球日记》 第92天:AI模型部署工程化基础
- 部署工具:
- Flask、FastAPI、Docker
- RESTful API 设计:
- 接口设计与文档编写
- 代码练习:将一个简单的模型部署为 RESTful API
第93天:MLOps 入门
文章链接:《Python星球日记》 第93天:MLOps 入门
- MLOps 简介:
- 什么是 MLOps?为什么需要 MLOps?
- 模型版本控制与流水线管理
- 工具链:
- MLflow、Kubeflow
- 代码练习:使用 MLflow 跟踪实验结果
第94天:自动化训练平台
文章链接:《Python星球日记》 第94天:走近自动化训练平台
- 平台简介:
- Kubeflow Pipelines、TensorFlow Extended(TFX)
- 自动化流程:
- 数据预处理、模型训练、评估与部署
- 代码练习:构建一个简单的自动化训练流水线
第95天:分布式训练与推理
文章链接:《Python星球日记》 第95天:分布式训练与推理
- 分布式训练:
- 数据并行与模型并行
- 使用 Horovod 或 DeepSpeed
- 分布式推理:
- 使用 ONNX Runtime 或 TensorRT
- 代码练习:使用分布式训练加速模型训练
第96天:综合项目:端到端 AI 工程化
文章链接:《Python星球日记》 第96天:端到端 AI 工程化(综合项目)
- 项目需求:
- 构建一个完整的 AI 工程化项目
- 数据准备:
- 数据收集与标注
- 模型训练:
- 使用自动化训练平台
- 模型部署:
- 使用 Docker 和 Kubernetes 部署模型
- 代码练习:完成一个完整的 AI 工程化项目
学习建议✅
- 项目驱动:边学边做项目,有助于巩固和实践
- 刷题训练:如LeetCode/PAT锻炼编程思维
LeetCode练习推荐:https://leetcode.cn/studyplan/top-100-liked/
- 持续学习:关注AI前沿、阅读论文、参与开源项目
书籍推荐📚
- 《Python编程:从入门到实践》 - 基础学习
[美] 埃里克 • 马瑟斯(Eric Matthes) / 袁国忠
- 《流畅的Python》 - 进阶读物
[巴西] Luciano Ramalho / 安道 / 吴珂
- 《Python数据科学手册》 - 数据科学方向
[美] Jake VanderPlas / 陶俊杰 / 陈小莉
- 《Python Cookbook(第3版)中文版》 - 实用代码示例
David M. Beazley / Brian K. Jones / 陈舸
- 《机器学习》 - 机器学习入门
周志华 / 清华大学出版社
- 《机器学习实战 (原书第2版) : 基于Scikit-Learn、Keras和TensorFlow》 - 机器学习实战
[法] Aurélien Géron / 宋能辉 / 李娴
创作者:Code_流苏(优快云)(一个喜欢古诗词和编程的Coder😊)
点赞加关注,收藏不迷路!本篇文章如对你有所帮助,还请多多点赞支持!