Part 0. 环境配置 与 学习数据下载
keras包 与 tensorflow包
Win+R ,输入指令:
pip install tensorflow
pip install keras
推荐镜像:-i https://pypi.tuna.tsinghua.edu.cn/simple/
关于包
keras包相当于是 tensflow 包的前端
tensflow包相当于是keras包的后端
keras包用来写深度学习更方便
官方链接:https://keras.io/zh/
mnist数据集介绍
官方网站:下载连接
共包含4个文件:训练集、训练集标签、测试集、测试集标签
mnist数据集使用
数据集导入
form keras.datasets import mnist
(X_train,y_train),(Xtest,y_test) = mnist.load_data()
数据图片展示
img1 = X_train[0]
fig1 = plt.figure(figsize(3,3))
plt.imshow(img1)
Part 1. MLP多层感知器 Multi-Layer Perceptron
算法逻辑
实现经典问题——如何通过图像区分猫和狗
神经网络:建立模型,模仿人的思考机制
将“机器学习_逻辑回归”按照神经元的逻辑,组成逻辑网络。
解释: 假设自变量x[]和应变量y,机器学习只能做到 y= f(x)的拟合;而神经网络学习做到的是,生成中间变量 z[]=f(x[]),并拟合 y=g(z[]),从而得到 y=g(f(x[]))。这个过程好像神经元的生成过程。
简化理解: 就是多个逻辑回归、线性回归的“迭代”,越迭代越准确。
算法流程
Step 1. 建立 Sequential模型
from keras.models import Sequential
model = Sequential()
Step 2. 通过.add()
叠加各层神经网络
from keras.layers import Dense,activation
model.add( Dense(units=3,activation='sigmoid',input_dim=3) )
# 表示:添加一个隐藏层,隐藏层符合下述规则
# 该层(输出层)有units个神经元,输入层有input_dim个神经元
# 该层(输出)采用"sigmoid"即逻辑回归法,作为中间神经联系
model.add( Dense(units=1,activation='sigmoid') )
注:activation
激活参数 的常见参数
sigmoid
: 逻辑回归
softmax
Step 3. 通过.compile()
配置模型求解过程的参数
model.compile(loss='categorical_crossentropy',optimizer='sgd' )
# loss表示所使用的损失函数
# 参数优化器 采用 'sgd'
注:loss
损失函数 的常见参数
categorical_crossentropy
: 分类问题的损失函数
损失函数的选择,参考本链接
注:optimizer
参数优化器 的常见参数
'sgd'
'adam'
参数优化器的选择,参考本链接
Step 4. 模型训练
feature_size = (img1.shape[0])*(img1.shape[1])
x_train_format = x_train.reshape(x_train.shape[0],feature_size)
# 转换输入数据的维度
model.fit(x_train,y_train,epochs=5)
# 迭代epoch次训练
Step 5. 结果预测
pred_y_test = model.predict_classes(x_test)
Step 6. 转换输出结果的格式
from keras.utils import to_categorical
y_train_format = to_categorical(y_train)