10卷积神经网络(初级)
二维卷积神经网络 00:03:44.271 放进卷积层,然后使通道数提升 00:04:36.639 下采样层中通道数是不变的 但是宽高会变 目的减少数据量,降低运算的需求 00:05:59.344 再做一次5x5的卷积 然后2x2的下采样 最后要把三阶向量展开成一维向量 就是挨个排序 00:07:13.014 然后利用全连接层来映射到10个输出 利用各种层,进行维度变换 00:08:22.737 卷积+下采样=特征提取器 图像: rgb图像 栅格图像 00:11:25.291 00:24:15.002 00:25:19.212 取出来一个图形块 对图像块进行卷积 依次移动 输出通道数 00:28:20.851 00:29:22.737 00:29:54.087 00:30:10.046 这个就是单通道卷积的形象表示 00:30:33.601 三通道卷积 00:31:02.697 每一个通道设置一个卷积核 00:32:17.903 最后三维变成1维 00:33:10.285 00:35:20.005 由于kernel 是3x3的所以 h和w减二 ...
2线性模型
深度学习顺序 准备数据集 模型选择 训练 推理 00:01:57.536 00:02:38.739 00:03:56.345 仅有输入的数据,在测试或者推理阶段 00:04:40.157 数据集交给算法,得到预测算法,使用模型只进行预测 00:05:46.753 知道输出值-》监督学习 测试集用于评价模型好坏 数据集分成两个部分 00:08:42.608 00:10:06.592 00:12:21.957 00:13:54.806 深度学习训练最大问题:过拟合 过拟合:把图像中的噪声也学进去了 比如训练集中的小猫都很可爱,但是测试集的小猫不可爱,导致测试中无法准确识别 需要模型有比较好的泛化能力 训练集分成两份 开发集用于对训练集进行评估,防止过拟合 评估比较好好再把所有的训练集重新训练,之后丢给测试集 00:15:00.775 00:17:13.524 其实就是找到 #mjx-5672fa7{ display:contents; mjx-assistive-mml { ...
1overview
目标实现一个学习系统 理解简单的神经网络(nn)/dl 00:11:46.636 人类智能 通过信息进行推理 看到照片与抽象概念结合:预测 00:19:29.936 mechine learning 就是代替人脑 目前常用的都是监督学习 算法思维: 穷举 贪心 分治 动态规划 深度学习:有数据集 找出算法 机器学习 计算过程也就是函数来源于数据,而不是人工(基于统计) 00:24:01.499 dl属于表示学习rl 00:28:28.199 求原函数 首先构造知识库 00:29:14.598 00:29:41.156 实现类似人类智能的就算ai 00:32:34.716 对于复杂问题,基于规则的代码,人类难以维护 经典机器学习:手工提取特征。最重要要把 00:34:05.608 重点是使用机器学习找到中间的 #mjx-3f243cf{ display:contents; mjx-assistive-mml { user-select: text !important; ...
6逻辑斯蒂回归
mnist数据集 00:01:43.327 手写数据的数据集 10个分类 00:02:24.593 判断y属于集合中的哪一个,这个叫做分类问题 00:06:02.081 表示他属于某一个类的概率,选择最大的 00:06:54.719 torchvison包含了一些典型的训练集 train=1-> train train=0 ->test 00:09:23.751 00:10:34.118 y的值维0 或1 这个叫做二分类问题 00:13:38.275 00:14:36.865 00:16:18.710 00:16:31.844 00:17:54.518 左图被称为饱和函数 00:18:19.386 00:19:19.394 将 #mjx-d4b5355{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; ...
7处理多维输入
输入有多个特征 每一行被叫做一个样本 00:01:22.739 meiyili 每一列被称为特征 excel常用空格 tab ,进行分割 00:10:22.816 00:10:06.374 00:12:37.613 00:13:38.352 00:14:24.317 一组一组的运算转换成矩阵运算(向量化的运算) 为什么要变换: 因为可以并行计算,这个样利用cpu或者gpu的并行计算能力 00:15:14.284 上图是上节课的 可以用于与这节课的图片进行对比 把多层logist回归相连就可以构建多层神将网路 00:17:12.583 00:17:28.402 这里列的数量对应特征00:17:50.766 00:18:23.748 这样可以再接一层,让2维的再降到1维 00:20:31.314 00:21:21.153 我们的目标是8d->1d的非线性变换函数 #mjx-b62d9cf{ display:contents; mjx-assistive-mml { ...
8加载数据集
前情提要: 因为有鞍点的存在,可能会导致深度学习在循环中共,无法继续往梯度下降的方向进行。 所以我们选择了随机梯度下降算法,而不是求平均loss的梯度下降算法。 我的理解就是使用不确定性的好来对抗确定性的差 00:04:34.963 把所有样本进行了前馈,和反向传播 就是一轮epoch 00:04:45.488 每次训练中所用的样本数量 这里没有上上上图中的for i in range 所以这里就是所有的数据都进行随机梯度下降计算 00:05:09.337 iteration(这块理解比较抽象) batch分了多少个 比如有1000个数据 100是batch-size 经过了10次的迭代,以100 batch-size的方式实现了1000个数据训练 shuffle 打乱顺序 00:07:09.352 00:07:53.784 00:08:41.339 00:09:51.557 00:10:05.801 用来加载数据,可以实例化一个dataloader dataset是一个抽象类,不能实例化 00:10:45.689 getitem是实例化之后,可以进行下标搜...
3梯度下降算法的实现
00:02:00.228 使用随机猜测 寻找 #mjx-6674e5f{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] > svg { overflow: visible; min-height: 1px; min-width: 1px; } mjx-container[jax="SVG"] > svg a { fill: blue; stroke: blue; } mjx-assistive-mml { position: absolute !important; ...
5pytorch实现线性回归
使用随机梯度下降 00:02:18.384 00:03:07.590 上节课的例子 因为梯度不会自动清零,为了使这次的梯度不影响下次的梯度,进行手工清零 线性回归就是恨简单的神经网络 00:06:32.614 训练步骤: 前馈:算损失 反馈:算梯度 更新:使用梯度下降算法更新权重 00:06:33.097 00:06:50.802 要使用mini-batch 要一次性将 #mjx-3521173{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] > svg { overflow: ...
4back propagation(反向传播)
00:01:49.339 00:02:18.624 注意这里时对损失进行求导,而不是对 #mjx-5a3a948{ display:contents; mjx-assistive-mml { user-select: text !important; clip: auto !important; color: rgba(0,0,0,0); } mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] > svg { overflow: visible; min-height: 1px; min-width: 1px; } mjx-container[jax="SVG"] > svg a { fill: blue; stroke: blue; } mjx-assistive-mml { position:...
9多分类问题
使用softmax 00:01:46.755 00:01:58.457 十个分类神经网络应该如何设计 00:03:21.365 希望的要求: 输出之间竞争性 输出就是一个分布 概率大于0 概率求和为1 00:08:00.963 00:09:30.429 00:10:29.210 求和之后结果为100:12:58.619 00:13:42.719 00:14:09.852 00:14:49.264 00:14:59.977 交叉熵 00:18:14.365 00:19:17.457 00:19:36.942 00:20:50.262 00:21:47.606 00:22:31.144 最后一层是不需要手动进行非线性激活的,因为交叉熵损失会直接激活 00:24:38.539 00:24:21.657 2表示这个第二个元素最大 0表示第0个元素最大 1表示第一个元素最大 y_pred和预测的比较拟合,所以第一个预测算出来的损失会比较小 00:26:14.653 00:26:40.399 思考交叉熵和nll损失的区别 00:28:33.060...