从Python开始学AI
2021-10-18 16:31:15 41 举报
AI智能生成
从Python开始学AI
作者其他创作
大纲/内容
python3基础知识
运行python
1.交互式解释器:通过命令行窗口进入python并开在交互式解释器中开始编写Python代码。
2.在Cloud Studio,中运行python3程序
基础语法
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件
第一个字母必须是字母或者下划线
保留字即关键字,我们不能把它们用作任何标识符名称
keyword.kwlist 查看所有关键字
单行注释用#
多行注释可以用多个 # 号,还有 ''' 和 """:
行与缩进
数字类型
int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
bool (布尔), 如 True
float (浮点数), 如 1.23、3E-2
complex (复数), 如 1 + 2j、 1.1 + 2.2j
字符串
模块导入
import
导入整个模块
from...import
导入模块的指定成员
基本数据类型
变量不需要声明,使用前必须赋值,赋值后才会创建
变量无类型
多个变量赋值
a=b=c=1
a, b, c = 1, 2, "runoob"
标准数据类型
Dictionary(字典)
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set集合
不可变数据
Number(数字)、String(字符串)、Tuple(元组);
可变数据
List(列表)、Dictionary(字典)、Set(集合)
其他
type()不会认为子类是一种父类类型
isinstance()会认为子类是一种父类类型
使用del语句删除一些对象引用
1、Python可以同时为多个变量赋值,如a, b = 1, 2。2、一个变量可以通过赋值指向不同类型的对象。3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。4、在混合计算时,Python会把整型转换成为浮点数。
Python数据类型转换
int(x [,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
注释
Python中单行注释以 # 开头
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
算术运算
+
-
*
/
%
**
//
位运算
赋值运输
逻辑运算
成员运算
in
not in
身份运算
is
is not
is 与 == 区别
字符串格式化
三引号
条件控制
if语句
while循环
while 循环使用 else 语句
for循环
break和continue语句及循环中的else子句
pass 语句
迭代器与生成器
函数
定义函数使用 def 关键字
Python爬虫
知识
爬虫基础
网页解析
数据抓取
代理 IP
爬虫进阶
模拟登录
验证码识别
正则表达式
APP 爬取
爬虫高阶
Scrapy框架
分布式爬虫
逆向解密
数据分析
数值计算
数组创建
索引/切片/布尔查询
数组运算/变换
随机数操作
数值模拟项目
数据分析
numpy
pandas
可视化
Matplotlib可视化
seaborn可视化
pyechart可视化
可视化项目
机器学习
数据预处理
特征工程
特征选择
特征融合
算法模型
监督学习
分类
K-近邻算法
决策树
朴素贝叶斯算法
Logistic 回归
SVM 支持向量机
CART 分类树
Softmax 回归
回归
线性回归
CART 回归树
集成学习
Boosting
随机森林
AdaBoost
GBDT
XGBoost
无监督学习
聚类
K-means
层次聚类
模型评估
准确率
召回率
P-R 曲线
ROC
AUC
MSE
深度学习
深度学习基础
层次结构
输入层
卷积层
标准卷积
空洞卷积
分组卷积
可变形卷积
可分离卷积
池化层
定义
pooling层是仿照人的视觉系统进行降维(降采样),用更高层的抽象表示图像特征。
作用
下采样
降维
减少参数
避免过拟合,提高模型泛化能力
类型
平均池化
计算图像区域的平均值作为该区域池化后的值
最大池化
选图像区域的最大值作为该区域池化后的值
函数
MaxPooling1D
对时序数据的最大池化
MaxPooling2D
对空域数据的最大池化
MaxPooling3D
对3D(空域,或时空域)数据的最大池化
AveragePooling1D
对时序数据的平均池化
AveragePooling2D
对空域数据的平均池化
AveragePooling3D
对3D(空域,或者时空域)数据的平均池化
GlobalMaxPool1D
对时序数据的全局最大池化
GlobalMaxPool2D
对空域数据的全局最大池化
GlobalMaxPool3D
对3D(空域,或者时空域)数据的全局最大池化
GlobalAveragePooling1D
对时序数据的全局平均池化
GlobalAveragePooling2D
对空域数据的全局平均池化
GlobalAveragePooling3D
对3D(空域,或者时空域)数据的全局平均池化
上采样层
双线行插值
转置卷积(反卷积)
反池化
全链接层
损失函数
zero one loss
cross entropy loss
mse loss
logistic loss
focal loss
center loss
wing loss
dice loss
hinge loss
arcface loss
激活函数
Sigmoid
分支主题
relu
分支主题
tanh
分支主题
ReLU
Leaky ReLU
分支主题
softmax
分支主题
优化器
SGD
随机梯度下降算法
SGDM
随机梯度下降算法-动量优化
NAG
牛顿加速梯度算法
AdaGrad
自适应学习率优化算法
AdaDelta
自适应学习率优化算法
Adam
自适应学习率优化算法
Nadam
自适应学习率优化算法
什么是优化器
过拟合解决办法
数据增强
几何变换
1. 水平镜像
2. 垂直镜像
3. 水平垂直镜像
4. 平移
5. 旋转
6. 裁剪
7. 仿射变换
颜色变换
色彩增强(通过调节对比度和亮度)
噪声注入
高斯噪声
混合图像
随机擦除
生成对抗网络(GAN)生成数据
输入端
噪声增强
模型上
L1/L2范数正则化
增加Dropout层
作用原理
增加BN层
BN和Dropout一起使用时会产生负面影响
训练策略
早停
特征选择/降维
梯度消失和梯度爆炸
产生原因
不合适的激活函数
初始化权值过大
解决方案
用其他激活函数替换sigmoid
利用BN将分布变换到激活函数敏感的区域
优化技巧
归一化
输入归一化
1.零均值;2.方差归一化
批归一化(BN)
1.求均值;2.求标准差;3.一个batch内归一化
优点
加快训练速度
防止梯度消失
防止过拟合
缺点
batch很小时效果不好
适用于深度固定的神经网络,对RNN无效
层归一化(LN)
对同一层神经元的输入进行归一化,不同的输入样本有不同的均值和方差
实例归一化(IN)
对每个样本进行归一化,注重单个样本分布的均匀和独立,适用于图像风格化
组归一化(GN)
在BN的基础上,将channel分为group,每个group内归一化,解除batchsize的影响
卷积神经网络(CNN)
层级结构
输入层
去均值
归一化
PCA/白化
卷积层
特点
局部连接
参数共享
深度表达
分类
普通卷积
1*1卷积
用多个小卷积核代替大卷积核
转置卷积
反卷积
上采样方法
双线性插值
反卷积
反池化
激活层
激活函数
池化层
全连接层
图片分类
评价指标
准确率
正确分类样本占总样本比例
混淆矩阵
根据TP/TN/FP/FN计算,每个类别预测情况的记录
PR曲线
指标
精确率(precision)
召回率(recall)
评价方式
取P=R时的平衡点值,越大越好
曲线越往右上越好
曲线下方的面积大小,越大越好
计算F1-score,值越大越好
ROC曲线
绘图方式
固定不同的分类阈值,测试假正类率和真正类率(召回率)
评价方式
ROC曲线越接近左上角,该分类器的性能越好
AUC,ROC曲线下方面积
适用于样本不均衡
经典网络结构
LeNet(1995)
代表性网络:LeNet-5
介绍:用于手写字符识别
AlexNet(2012)
介绍:获得了ILSVRC 2012年的冠军,引入dropout、relu
VGGNet(2014)
代表性网络:VGG-16、VGG-19
介绍:全部使用3*3的小卷积核,通过加深网络结构来提升性能,引入多尺度训练
GoogLeNet(2014)
代表性网络:
Inception V1
Inception V2
BN层
Inception V3(2015)
Inception V4(2016)
Inception-ResNet-v2(2016)
ResNet(2015)
代表性网络:ResNet-50
DenseNet(2017)
介绍:2017CVPRBestPaper,将每一层卷积后的特征都加起来
SENet(2017)
介绍:ImageNet 2017冠军,在channels的维度上加入attention机制,压缩和提取
应用难点
小样本
迁移学习
数据生成
主动学习
样本不均衡
数据采集达到均衡
对类别设置优化权重
focal loss
改进方向
设置权重
特征融合
网络更深、特征图更大
目标检测网络
两阶段检测模型
RCNN家族
RCNN
Fast R-CNN
Faster R-CNN
Mask R-CNN
FAF R-CNN
一阶段检测模型
YOLO家族
YOLO v1
......
YOLO v5
SSD家族
SSD
DSSD
FSSD
ESSD
DES
...
RFCN家族
FPN家族
RetinaNet家族
Anchor-free家族
Others
目标分割
目标跟踪
轻量化网络
循环神经网络(RNN)
RNN
LSTM
GRU
BRNN
NTM
seq2seq
RNN+CTC
生成对抗网络(GAN)
GAN
DCGAN
CGAN
CycleGAN
CoGAN
ProGAN
WGAN
SAGAN
BigGAN
StyleGAN
图神经网络(GNN)
GCNN
DCNN
ChebNet
......
深度学习框架
Tensorflow
Pytorch
Paddle
收藏
0 条评论
下一页