隨著ai的快速崛起,學習ai的人越來越多,但發現好多人貌似學習了好久,但還是不太明白自己在學習什麼,感覺ai很厲害但不知道究竟是在幹些什麼?
我們總結ai的本質,其實主要就是兩大方面:一:我們首先要有乙個目標函式,如:以均方差定義的目標函式(所謂的目標函式雖然衡量的標準表示式有很多,但其主要作用就是用來衡量**值與真實值之間的差距,一般都是目標函式值越小越好)。
二:在不同的 學習模型中有不同的引數,我們可以這樣來理解:假如給你乙個函式,函式裡面主要包含因變數和自變數,那麼對於機器學習和神經網路來說因變數就是我們的**結果(一般用y'來表示),那麼自變數是什麼?自變數就是各個模型中的引數,比如在神經網路中我們的引數主要引數就是w(權重)和b(偏置),我們訓練神經網路的實質就是訓練w和b,使得當w和b取某一對值得時候可以保證我們定義得目標函式的值最小。至於訓練方法我們就以一般常用的反向梯度傳遞演算法為例。
所謂的梯度就是函式沿某一方向變化最快的方向(一般是函式增加的方向),那麼就很容易理解反向梯度下降就是函式值減小最快的方向,我們希望我們的目標函式取得最小值(在給定的 可取得範圍內),那麼我們沿著目標函式下降最快的方向,自然就能更快速的求得目標函式的最小值。
在這裡我們在對梯度下降演算法中的三種不同型別進行簡單的介紹:1.隨機梯度下降:每次訓練之用乙個資料,訓練過後對w和b進行更新,這種方法的隨機性太大,有點是訓練速度塊。2.mini batch(批量梯度下降)假若我們現在有100個資料,我們沒訓練10個資料對w和b進行一次更新,優點:速度較塊,相對於下面要提到的第3種方法而言,準確度相對較高,一般我們使用的都是這種方法,因為它在速度和準確性方面都達到乙個相對較好的效果。3.完全隨機梯度下降(名字記得不一定準確),假若我們有100個資料那麼我們就每訓練完100個資料更新一次,有點:充分考慮到了所有的資料,優化方向的指導性更可靠,缺點:訓練速度慢,我們在這裡只是以100個資料為例,可能有人會覺得100個資料也很快啊,但我們如果訓練資料達到100000呢,甚至更多呢?
機器學習神經網路的一些大眾誤解
現在很多速成班,甚至很多大學數學都沒學好的人都號稱自己是什麼機器學習演算法專家,真的是可笑 我是突然想到這點,就寫出來記錄一下 我個人感覺要真的能把機器學習做到活學活用的水平,還是很難的,就算是我這種數學和統計出身的人,也最多只能說自己略懂一點 上次看個句子對抗句子生成網路的文章,裡面用到了poli...
神經網路學習中的一些記錄
在執行resnet 時,報了乙個錯 忘了具體是什麼 在網上查到的解決方法是安裝mkdocs,然而安裝之後,spyder一開啟就閃退,還出現如下視窗 經過搜尋,發現是tornado6.0的版本棄用了tornado.web.asynchronous這種寫法,降級到5.1.1就沒問題了。於是python ...
機器學習 神經網路
神經網路中最基本的成分是 神經元 模型,在生物神經網路中,每個神經元與其他神經元相連,當他 興奮 時,就會向相連的神經元傳送化學物質,從而改變這些神經元類的電位 如果某神經元的電位超過乙個 閾值 那麼他就會被啟用。將上述描述當成乙個數學模型 m p神經元模型,神經元接收來自n個神經元傳遞過來的輸入訊...