# \0 h# k$ v$ O, i4 [Python深度学习之初窥神经网络% y* ^8 u8 U4 U/ K: P! ?' O
本文为 第2章 开始之前:神经网络背后的数学 (Chapter 2. Before we begin: the mathematical building blocks of neural networks) 的笔记整合。' G# K# I! F. W, }" u
- c5 v6 k8 P, h" F3 I+ e2 V# P% J( g0 {本文目录:- P0 Z, _4 P3 p D, ?9 M
5 ^0 K9 q- A8 B5 V! B4 X
文章目录 ' W, `" N! O- o3 q" P0 h5 U 8 l5 x& S0 |# d3 v5 {, T! A- lDeep Learning with Python, `2 |; |; \6 V; S
初窥神经网络 6 G8 e' d; }0 w1 ]1 c& c7 [0 L" ?导入MNIST数据集& _- Z* Q$ {. ^
网络构建5 ^- {; F; T0 N6 v; d
编译- T% p7 E4 C/ T- x9 D% r
预处理 % r: ]0 U7 @1 H E8 R* }& v图形处理; H; X. O/ W, o; }. _
标签处理. ~: c3 Z+ R$ E5 h7 A2 `
训练网络 |, _) Z. F7 D0 K
神经网络的数据表示 & Z' Z- U0 E+ k, \: c认识张量. t) F+ J M4 S; M/ {
标量 (0D Tensors)" r& l. S' n9 K8 o4 ]+ l
向量 (1D Tensors) 0 d9 U$ l7 `2 e矩阵 (2D Tensors) " l3 ^% ~. X3 z8 x/ R& Y& F高阶张量 3 Z! h' W, M& D+ R1 a张量的三要素 & l' Z0 P; u& z' LNumpy张量操作 , i" R, s& x5 {' U% z' `1 Y张量切片:5 r) E" f8 O( x
数据批量 0 j! G4 c' I; R: `9 v! ^! L0 }; h1 E2 d常见数据张量表示 + T+ f& x. s% T9 n1 `神经网络的“齿轮”: 张量运算 ) l. V6 a) m: `逐元素操作(Element-wise)3 k7 k, B$ B6 H" \8 S# x, R
广播(Broadcasting)/ T% c9 U4 W8 `6 B: Z
张量点积(dot)) }; v7 t6 ^ j$ P7 o W% n8 W
张量变形(reshaping) % {$ z5 P9 o3 Z7 Z7 ?( J神经网络的“引擎”: 基于梯度的优化; a, \4 G: ]7 [7 ~% g# p
导数(derivative)+ U3 e: }: t6 E, {8 ^: B: p/ Y& U
梯度(gradient): J7 `# W$ y! s0 o. p
随机梯度下降(Stochastic gradient descent)( {6 K" w# I+ H$ Q$ m1 s
反向传播算法:链式求导9 b* K! y2 j8 |' p2 {; X: [
本文由 CDFMLR 原创,收录于个人主页 https://clownote.github.io。; ~( }4 J9 u, X& B+ @
1 n7 G1 F! T5 @! ~' R* v3 L. o
初窥神经网络7 B1 u2 s$ q) ^& q, b
! {: f s+ U" }$ S
学编程语言从 “Hello World” 开始,学 Deep learning 从 MINST 开始。 6 G g- R2 q$ v5 d" l( S 8 D/ K. Y F+ T9 o7 @MNIST 用来训练手写数字识别, 它包含 28x28 的灰度手写图片,以及每张图片对应的标签(0~9的值)。 0 C* R: b, z" c 2 c4 c/ u9 Z4 i( v* M- M- {9 W8 R导入MNIST数据集 3 |, C- l/ {% q / Q* E9 @( _# {& F, I' Q# Loading the MNIST dataset in Keras' j! z* x% ]; P; v: B5 d/ j
from tensorflow.keras.datasets import mnist. H2 @8 E9 F. ?# M9 [$ L
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()( i6 |& A9 B0 E( \/ ^, P
1 2 s+ y& S- r! B% u# m! D2 * D o. W7 Q2 R6 P$ W3 / w+ T* L, g2 e, T& z看一下训练集: ; a+ U- _" g) V4 ~* a3 t. v! d0 o1 ], R0 N8 i, y) ?' D
print(train_images.shape)$ b+ U% U' P" i4 Y
print(train_labels.shape)" k( y# e0 w* @, u
train_labels9 C3 I* j% J5 B8 R2 F/ T9 c
1: H5 V" o. _ r. i
2 + Z2 A1 |# ^' b( ~! g, x3 % T Z' S: u0 V) D' l% Z# ]输出:# f J4 S3 ?) m O) U
& J: [# W( H- Z& S- F v& E
(60000, 28, 28) : \9 R& ^) j; l% W! L(60000,)* g& j' r, d) x |" x3 y3 F