zoukankan      html  css  js  c++  java
  • cs231n 作业1 心路历程

    cs231n Assignment 1 cww note

    做cs231n的作业的一个心路历程,不会重复别人写好的材料,别人写的数学分析,代码,比我高到不知道哪里去了

    We are here

    这也是一门经典的课程了,网上材料一堆,在自己很菜的情况下不上网查是不可能的,查了哪些引用了哪些我直接链接过去,这里记录自己的探索过程,并没有什么阅读价值~

    KNN

    在cs231-lec2中讲解了这个很粗暴的算法:比较两张图片的每一个像素作为distance,对于每一个测试选取训练集中与之dist最小的。

    比较有意思的是里面计算距离矩阵的三种方法, two_loops, one_loop, no_loop, 完全平方公式还有python中的broadcast比较有意思,还是能学到东西的。

    最后的交叉验证,之前在博哥的ML课上做过。所以就skip了

    赶紧看模态融合啊,先鸽了,明天之后再写这个。(2019.12.16)

    SVM

    梯度怎么求,这谁记得住啊?救

    回忆SVM的loss

    scores = X[i].dot(W)

    注意到这里是X[i] 在前,W在后,X的shape是(500, 3073),那么X[i]便是一个长度为3073的行向量,而W是(3073, 10)。

    第i张图片在第j个分类的得分只与W的第j列有关,所以当margin > 0即有loss的时候,需要调整W使错误分类的得分变低,使正确分类的得分变高。

    这里的分析可以看出,对于W的这一列,直接求偏导,对第j列就是X[i],对第y[i](正确标签)列就是-X[i](求偏导就当求导,多看两遍,我数学这么烂都看懂了)

    不过对于最后的正则化项为什么要这么写我还是很疑惑的dW += 2 * reg * W老陈问号.jpg

    没有循环的矩阵运算有点骚,看湿了。

    写完两个loss还有train和predict的代码要写,其实比前面的好写多了,因为不用算梯度

    learning_rates = [1e-7, 5e-5] # 第二个lr要加一个小数点才能收敛,不然就炸了

    调了半天以为前面code写错了,学习率过大导致每一步都跑过了,然后loss爆炸,再加一个小数点就好了,感觉这个lr写这是故意让人理解的

    softmax

    主要看了这里和原来的课件,卡的地方还是求梯度的过程

    val过程其实和前面很像,我好菜啊

    two_layer_net

    两层的全联通网络,激活函数在第一层maximum(H, 0),scores很好算,loss可以直接抄softmax的,算梯度数学太差逃了,抄这里

    另外需要完成train和predict两个函数,和linear_classifier差不多,复制过来该一些变量就行(这个不涉及数学,一点都不慌)

    toy_data和toy_model真的是调试神器,而且写一小段就有一个check点不要太舒服,那么问题来了,自己写这种东西的时候check数据哪来呢

    “Tweaking hyperparameters by hand can be fun”那么现在调参都一天试一组参数?这个for循环写的感觉有点奢侈啊,而且超参啥的感觉都是xjb写,调参玄学?遇到再说吧,感觉现在自己的功力还没到调参这一步就死掉了

    features

    前面是直接把图片像素直接扔进模型里,这一个part是首先提取出图片的feature然后把feature作为model的输入训练

    要写的代码就是直接的调参,复制过来改一下参数,feature计算比像素点小很多,自然速度快很多

    注意到NN的最好的一组超参达到了60%的准确率,题面描述的最佳效果,头秃了一晚上这个时候感觉最爽

    Summary

    第一次作业使用numpy实现了KNN, SVM, softmax, 两层全联通网络,还有设计图像feature然后调参训练

    说是实现其实抬举自己了,本来的代码写的非常优雅,读起来赏心悦目。只要在挖空的地方填上loss, train, predict之类的就好

    数学菜的扣脚,各种梯度不会算,往回翻了课件最后还是跌跌撞撞网上各种抄才写完模型里的代码,我靠numpy真骚

    不过正儿八经上战场应该还是cuda()吧,没能完全靠自己写完这些code,至少也都认真读了一遍,调参过程倒是熟练

    多认识了不少超参,实实在在理解了这几个模型,至少以后别人问到自己不会一问三不知了,ok,下一课

    学校要三月开学了,被困在农村里,这一个晚上的效率感觉是过去一周,不,一个月的总和,希望状态能保持

    希望早日能见到夏天的阳光,夏天的YOUNG : )

  • 相关阅读:
    IIS的各种身份验证详细测试
    HTTP Error 401.3 Unauthorized Error While creating IIS 7.0 web site on Windows 7
    C/S and B/S
    WCF ContractFilter mismatch at the EndpointDispatcher exception
    Configure WCF
    Inheritance VS Composition
    Unhandled Error in Silverlight Application, code 2103 when changing the namespace
    Java RMI VS TCP Socket
    Principles Of Object Oriented Design
    Socket处理发送和接收数据包,一个小实例:
  • 原文地址:https://www.cnblogs.com/cww97/p/12349306.html
Copyright © 2011-2022 走看看