机器学习 – 初识卷积神经网络

卷积

卷积方式

卷积方式

卷积效果

垂直线清晰可见:

file

水平线清晰可见:
file

池化

将图像中的像素分组并过滤到一个子集合中。

池化方式:

例子:2×2最大池化,选择2×2矩阵中的最大值,并构成新的矩阵。

file

池化效果

尺寸缩小四倍,图像特征被保留,甚至被增强。

池化效果

特征提取

用于卷积和池化的过滤器也是学习得到的,这个过程被称为特征提取。

file

图:Dense是随机初始化的,在学习过程中,回不断选出那些给出最佳预测的过滤器。

我的第一个卷积神经网络模型

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

# 定义模型
model = keras.Sequential([
    layers.Conv2D(64, (3, 3), activation='relu',
                  input_shape=(28, 28, 1)),     # 输入28*28的图片
    # 64个滤波器
    layers.MaxPool2D(2, 2),                     # 最大池化
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPool2D(2, 2),
    layers.Flatten(),
    layers.Dense(128, activation=tf.nn.relu),   # 调参
    # 128个计算函数(此处的“计算函数”并非准确术语)
    # activation: 激活函数
    # relu:线性整流函数,当数值大于零,则返回该数,否则返回零
    layers.Dense(10, activation=tf.nn.softmax)  # 输出0-10的编号
    # softmax: 将一个数组中最大值修改为1,其他修改为0
])
# 编译模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy')
# 开始训练
model.fit(train_images, train_labels, epochs=10)

经过10次训练,模型的准确度达到了98.8%,相比起之前单纯采集原始图像特征,准确度提升了4.4%。这是因为通过卷积和池化,机器能够学到更加抽象的特征,而不只是停留在原始像素上。

以上图片均来自TensorFlow

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇