学习地址
深度学习框架哪家强?
- TensorFlow
- Keras
- PyTorch
无论用什么工具包,实现结果差异不大。效果通常大不多
为什么选择keras?
- 便捷快速
- 优化器optimizer
- 损失函数loss
更新
新的算法和论文,框架更新的很快,提供API。
- 安装keras
- 安装相关的依赖
- 配置文件配置好
神经网络
仿生模型
- 树突接收神经元的信号
- 轴突完成神经元信号的发送
人工神经网络就是在模仿生物神经网络的工作原理
我们需要做的工作
- 确定权重参数W
- 和偏差参数b
- 选择一个合适的激活函数
【实验】通过神经网络训练得到3是正数还是负数
a输入数据后我们会在c,d处得到结果
给计算机一点训练数据
- 当在a输入1的时候,告诉计算机cd输出10是正确的
- 当在a输入0的时候,告诉计算机cd输出01是正确的
我们就说cd组成了一个列向量,10对应的是正数,01对应的是负数。
设计神经网络的过程
- 其实就是在设计各个节点之间的权重参数是多少的过程
- 让输出结果是我想要的结果
用一些方法评价偏差并试图减小偏差
- 最小二乘法等
- 寻优算法
寻优算法
通过一个个样本不断得到值
神经网络工作原理
- 同一层的神经网络用向量表示
- 权重用w表示
- 偏置用b表示
我们可以逐层得到神经网络下一层的值是多少
激活函数
- 使数值在01中
- 变换成非线性运算
像输出层的前一层求梯度
反向传播算法
计算梯度
- 最速下降法
- 梯度下降法
c学习因子
举一反三
我们的例子
都是列向量,标量
如何进行图像识别
数字/图片而言,他是像素
将图片按照像素去划分
- 0代表黑色部分,1代表白色部分
- 通过变形将图像矩阵变成列向量
- 输入到网络结构训练
- 输出层:10个单元
存在的问题
存在输入矩阵/输入向量的维度比较高
- 采用卷积的方式处理这样的数