CS231n 學習筆記(五)

2021-09-13 20:48:56 字數 1758 閱讀 2433

注意:

在計算機上計算梯度的乙個簡單方法是有限差分法

迭代計算所有w維度,一直重複下去直到計算完dw。這種方法是數值梯度法,過程非常慢。實際上,我們會使用另一種分析梯度法,提前計算出梯度的表示式

除錯策略:使用數值梯度作為單元測試來確保解析梯度是正確的

梯度下降演算法

注意:

隨機梯度下降

之前我們定義了一種loss function計算分類器在訓練樣本中的每一步表現的有多糟糕,設定資料集的總誤差是整個訓練集誤差的平均值。但n可能會非常大,計算lloss時的成本會非常高。因為梯度是乙個線性運算子,當計算表示式的梯度時,誤差函式的梯度值每個單項誤差梯度值的總和,每一次更新w都會迭代整個訓練資料集。

在實際操作中往往使用隨機梯度下降法,它並非計算整個訓練集的誤差和梯度值,而是在每一次迭代中選取一小部分訓練樣本成為minibatch(常取2的次冪)

注意:為真時,隨機取一些minibatch資料,評估minibatch的誤差值和梯度,然後更新各個引數

demo:

影象特徵

之前講的是將我們的原始畫素取出直接傳入線性分類器,但這種方式的表現並不好。當神經網路大規模運用之前常用的策略是:首先計算的各種feature representation,然後將不同的特徵向量合到一起得到影象的特徵表述,它將作為輸入源傳入線性分類器。下**釋了這麼做的原因:

feature representation的例子是顏色直方圖。獲取每個畫素值對應的光譜 ,計算對應光譜對應畫素的頻次

神經網路普遍使用之前,常用的特徵向量是方向梯度直方圖,方法:獲取影象後,將影象按八個畫素區分為八份,然後在八個畫素區的每乙個部分計算畫素值的主要邊緣部分,把這些邊緣方向量化到幾個組,然後在每乙個域內計算不同的邊緣方向從而得到乙個直方圖

另乙個特徵表示的例子是詞袋

要定義自己的視覺單詞字典。首先獲得影象。從這些影象中進行消的隨機塊的取樣,然後採用k均值(k means)等方法將它們聚合成簇(clusters),從而得到不同的簇中心,這些簇中心可能代表了影象中視覺單詞(碼本)的不同型別。之後可以用碼本給影象編碼

總結

cs231n筆記總結

cs231n的課程以及作業都完成的差不多了,後續的課程更多的涉及到卷積神經網路的各個子方向了,比如語義分割 目標檢測 定位 視覺化 遷移學習 模型壓縮等等。assignment3有涉及到這些中的一部分,但需要深入了解的話還是得看 了。所以在看 前把之前已學的知識,筆記和作業 一起做個整理。部落格裡主...

CS231n理解筆記

linear classification notes 該方法的組成 乙個是評分函式 原始影象資料到類別分值的對映 乙個是損失函式 用來量化 分類標籤的得分和真實標籤之間的一致性。影象分類的任務是從已有的固定分類標籤中選擇乙個並分配一張影象,我們介紹了knn分類器,該分類器的基本思想是通過將測試影象...

cs231n 學習 前言

吐槽 我為啥學這個 學這門課之前,到官網 要科學上網哦 查了下相關資訊,有部分需求 要求1,得會 python 且熟悉 c c 其實我是不會 python 的,但語言只是一種工具,不該成為鴻溝,且這麼流行的語言上手也不應該難吧 盲目自信一把 要求2,微積分和線性代數,嗯,這個不是問題。要求3,概率統...