『cs231n』线性分类器最优化

最优化策略

1.差劲的方案,随机搜索

bestloss = float(‘inf‘)  # 无穷大
for num in range(1000):
    W = np.random.randn(10, 3073) * 0.0001
    loss = L(X_train, Y_train, W)
    if loss < bestloss:
        bestloss = loss
        bestW = W

scores = bsetW.dot(Xte_cols)
Yte_predict = np.argmax(score, axis = 0)
np.mean(Yte_predict == Yte)

核心思路:迭代优化

2.浪费的方案,随机本地搜索

W = np.random.randn(10, 3073) * 0.001
bestloss = float(‘inf‘)
for i in range(1000):
    step_size = 0.0001
    Wtry = np.random.randn(10, 3073) * step_size
    loss = L(Xtr_cols, Ytr, Wtry)
    if loss < bestloss:
        W = Wtry
        bestloss = loss

3.跟随梯度

时间: 2024-08-05 09:26:41

『cs231n』线性分类器最优化的相关文章

『cs231n』限制性分类器损失函数和最优化

代码部分 SVM损失函数 & SoftMax损失函数: 注意一下softmax损失的用法: SVM损失函数: import numpy as np def L_i(x, y, W): ''' 非向量化SVM损失计算 :param x: 输入矢量 :param y: 标准分类 :param W: 参数矩阵 :return: ''' delta = 1.0 scores = W.dot(x) correct_score = scores[y] D = W.shap[0] loss_i = 0.0 f

『cs231n』计算机视觉基础

线性分类器损失函数明细: 『cs231n』线性分类器损失函数 最优化Optimiz部分代码: 1.差劲的方案,随机搜索 bestloss = float('inf') # 无穷大 for num in range(1000): W = np.random.randn(10, 3073) * 0.0001 loss = L(X_train, Y_train, W) if loss < bestloss: bestloss = loss bestW = W scores = bsetW.dot(Xt

『cs231n』视频数据处理

视频信息 和我之前的臆想不同,视频数据不仅仅是一帧一帧的图片本身,还包含个帧之间的联系,也就是还有一个时序的信息维度,包含人的动作判断之类的任务都是要依赖动作的时序信息的 视频数据处理的两种基本方法 - 使用3D卷积网络引入时间维度:由于3D卷积网络每次的输入帧是有长度限定的,所以这种方法更倾向于关注局部(时域)信息的任务 - 使用RNN/LSTM网络系列处理时序信息:由于迭代网络的特性,它更擅长处理全局视频信息 发散:结合两种方法的新思路 上面的具体实现也未必需要3D卷积,毕竟递归网络自己已经

『cs231n』无监督学习

经典无监督学习 聚类 K均值 PCA主成分分析 等 深度学习下的无监督学习 自编码器 传统的基于特征学习的自编码器 变种的生成式自编码器 Gen网络(对抗式生成网络) 传统自编码器 原理 类似于一个自学习式PCA,如果编码/解码器只是单层线性的话 自编码器编码解码示意图: 特征提取过程中甚至用到了卷积网络+relu的结构(我的认知停留在Originally级别) 编码&解码器可以共享权值(在我接触的代码中一般都没共享权值) 损失函数推荐L2 应用 由于重建已知数据是个没什么用的过程,所以自编码器

『cs231n』RNN之理解LSTM网络

概述 LSTM是RNN的增强版,1.RNN能完成的工作LSTM也都能胜任且有更好的效果:2.LSTM解决了RNN梯度消失或爆炸的问题,进而可以具有比RNN更为长时的记忆能力.LSTM网络比较复杂,而恰好找到一篇不错的介绍文章,和课程的讲述范围差不多,所以这里摘下来(自己截图记录好麻烦),另外找到一篇推了公式的LSTM介绍,这个cs231n的课程并没有涉及,我暂时也不做这方面的研究,不过感觉内容不错,链接记下来以备不时之需. 本篇原文链接 RNN以及LSTM的介绍和公式梳理 按照老师的说法,LST

『cs231n』Faster_RCNN(待续)

前言 研究了好一阵子深度学习在计算机视觉方面的实际应用意义不大的奇技淫巧,感觉基本对研究生生涯的工作没啥直接的借鉴意义,硬说收获的话倒是加深了对tensorflow的理解,是时候回归最初的兴趣点--物体检测了,实际上对cs231n的Faster RCNN讲解理解的不是很好,当然这和课上讲的比较简略也是有关系的,所以特地重新学习一下,参考文章链接在这,另: Faster RCNN github : https://github.com/rbgirshick/py-faster-rcnn Faste

『cs231n』卷积神经网络的可视化与进一步理解

cs231n的第18课理解起来很吃力,听后又查了一些资料才算是勉强弄懂,所以这里贴一篇博文(根据自己理解有所修改)和原论文的翻译加深加深理解. 可视化理解卷积神经网络 原文地址 一.相关理论 本篇博文主要讲解2014年ECCV上的一篇经典文献:<Visualizing and Understanding Convolutional Networks>,可以说是CNN领域可视化理解的开山之作,这篇文献告诉我们CNN的每一层到底学习到了什么特征,然后作者通过可视化进行调整网络,提高了精度.最近两年

『cs231n』图像定位与检测(下,待续)

图像检测原理 定义: 给出一张图片和几个类别,定位出图片中这些类所有的实例. 思路分析:回归vs分类 由于输出数目不定,所以不能简单的把检测任务像定位任务一样归化为回归任务(检测任务会导致回归层神经元数目是不确定的) 在机器学习中,分类和回归是解决所有问题的两种基本思路,所以我们尝试用分类的思想分析问题. 思路是将所有可能分类的区域送入网络 问题是图片数量太多 直观的解决思路是换个速度快的电脑... ... 实际上新电脑还是不够快... ... 那就只查看一些可能的区域(预处理) Region

『cs231n』作业1问题1选讲_通过代码理解K近邻算法&amp;交叉验证选择超参数参数

通过K近邻算法探究numpy向量运算提速 茴香豆的"茴"字有... ... 使用三种计算图片距离的方式实现K近邻算法: 1.最为基础的双循环 2.利用numpy的broadca机制实现单循环 3.利用broadcast和矩阵的数学性质实现无循环 图片被拉伸为一维数组 X_train:(train_num, 一维数组) X:(test_num, 一维数组) 方法验证 import numpy as np a = np.array([[1,1,1],[2,2,2],[3,3,3]]) b