日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习导航(一)——神经网络的定义和基本概念

發(fā)布時(shí)間:2024/3/24 pytorch 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习导航(一)——神经网络的定义和基本概念 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 引子
  • 1.人工神經(jīng)網(wǎng)絡(luò)的定義和基本運(yùn)算
    • 1.1人工神經(jīng)網(wǎng)絡(luò)的定義
    • 1.2神經(jīng)網(wǎng)絡(luò)的基本運(yùn)算
  • 2.關(guān)于神經(jīng)網(wǎng)絡(luò)的一些基本概念
    • 2.1激活函數(shù)
    • 2.2正向傳播與反向傳播
      • 2.2.1正向傳播
      • 2.2.2反向傳播
    • 2.3梯度下降法
    • 2.4過擬合和欠擬合
      • 2.4.1過擬合
      • 2.4.2欠擬合
  • 總結(jié)
  • 參考

引子

接觸深度學(xué)習(xí)有一段時(shí)間了,最近淺淺學(xué)習(xí)了一下神經(jīng)網(wǎng)絡(luò)相關(guān)內(nèi)容,對(duì)理論有了更多的理解。這里想到做一個(gè)適合深度學(xué)習(xí)小白導(dǎo)航式入門教程,讓大家快速了解神經(jīng)網(wǎng)絡(luò)的最基本內(nèi)容最突出的特點(diǎn),考慮到非科班出身資歷尚淺,數(shù)學(xué)推導(dǎo)的內(nèi)容基本不涉及,主要是幫助大家對(duì)各種神經(jīng)網(wǎng)絡(luò)有一個(gè)總體的認(rèn)知,以我之見非科班出身的本科同學(xué)在應(yīng)用層面做些小科創(chuàng)應(yīng)該夠了。

下面很多概念是普適于機(jī)器學(xué)習(xí)領(lǐng)域的,但也有些概念僅限于深度學(xué)習(xí)。本教程以深度學(xué)習(xí)為主要導(dǎo)向。

1.人工神經(jīng)網(wǎng)絡(luò)的定義和基本運(yùn)算

1.1人工神經(jīng)網(wǎng)絡(luò)的定義

大家都知道人腦具有神經(jīng)網(wǎng)絡(luò),也即生物神經(jīng)網(wǎng)絡(luò),借助它人們可以完成思考、信息處理等重要生活內(nèi)容。顧名思義,人工神經(jīng)網(wǎng)絡(luò)就是人為設(shè)定的、用數(shù)學(xué)模型實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò),它可以讓計(jì)算機(jī)、沒有生命的機(jī)器擁有類似于人類甚至超過人類的生物智能。

人工神經(jīng)網(wǎng)絡(luò)是20世紀(jì)80 年代以來人工智能領(lǐng)域興起的研究熱點(diǎn)。它從信息處理角度對(duì)人腦神經(jīng)元網(wǎng)絡(luò)進(jìn)行抽象, 建立某種簡(jiǎn)單模型,按不同的連接方式組成不同的網(wǎng)絡(luò)。在工程與學(xué)術(shù)界也常直接簡(jiǎn)稱為神經(jīng)網(wǎng)絡(luò)或類神經(jīng)網(wǎng)絡(luò)。

1.2神經(jīng)網(wǎng)絡(luò)的基本運(yùn)算


如圖所示是一個(gè)基本神經(jīng)元的輸入和輸出。

其運(yùn)算分為以下幾步:
1.輸入值a1、a2、…an;
2.輸入值乘上各自權(quán)重求和:a1×w1 + a2×w2 + … + an×wn
3.加上偏置值b:a1×w1 + a2×w2 + … + an×wn + b
4.經(jīng)過激活函數(shù)f()得到:f(a1×w1 + a2×w2 + … + an×wn + b),即輸出y(圖上最右邊有點(diǎn)殘缺哈)

激活函數(shù)在下一小節(jié)會(huì)具體說明。


直觀的構(gòu)造上是不是和生物神經(jīng)元非常相似

神經(jīng)網(wǎng)絡(luò)可以理解為由無數(shù)個(gè)神經(jīng)元有機(jī)組合搭建成的網(wǎng)絡(luò),它有非常多的“層數(shù)”(一般由網(wǎng)絡(luò)深度定義,定義為不包括輸入層的層數(shù)):

如圖所示,一個(gè)神經(jīng)元的輸出可能作為多個(gè)神經(jīng)元的輸入,一個(gè)神經(jīng)元的輸入可能由多個(gè)神經(jīng)元的輸出構(gòu)成。

深度學(xué)習(xí)為例,圖像分類、目標(biāo)檢測(cè)的相關(guān)網(wǎng)絡(luò)就是將標(biāo)注過的圖像提取出輸入值,輸入到神經(jīng)網(wǎng)絡(luò)中,比對(duì)輸出值和標(biāo)注的真值差異,調(diào)整模型參數(shù)(即自監(jiān)督式學(xué)習(xí)),最終達(dá)到一個(gè)參數(shù)收斂、模型正常擬合的程度。

2.關(guān)于神經(jīng)網(wǎng)絡(luò)的一些基本概念

2.1激活函數(shù)

激活函數(shù)有很多種,作為入門只講最簡(jiǎn)單的sigmoid函數(shù):

一看形狀有點(diǎn)熟悉,其實(shí)高中就見過它了,人教版生物必修三的種群生長曲線中的“S型增長曲線”其實(shí)就是它,區(qū)別是這里的sigmoid函數(shù)值都集中在(0,1)之間。

可以想見它的作用就是把輸入值壓縮到(0,1)之間(又稱“歸一化”),這樣做是為了防止某個(gè)神經(jīng)元的輸出值過大,作為下一個(gè)神經(jīng)元的輸入時(shí)將其他輸入值的影響碾壓得微乎其微,容易使模型過擬合。

當(dāng)然激活函數(shù)還有其他作用,如減少參數(shù)計(jì)算量、加速模型收斂等。

2.2正向傳播與反向傳播

2.2.1正向傳播

簡(jiǎn)單來說,就是從輸入→隱含層運(yùn)算→輸出的一個(gè)正向過程,深度學(xué)習(xí)訓(xùn)練時(shí)就是從圖像中提取特征參數(shù)作為輸入,經(jīng)過模型初始設(shè)定的參數(shù)進(jìn)行運(yùn)算推理得到輸出值。

2.2.2反向傳播

正向傳播得到輸出值之后,會(huì)通過已設(shè)定好的損失值Loss計(jì)算方法(表示輸出值與標(biāo)注的真值之間的差異,簡(jiǎn)單可理解為誤差,有多種設(shè)定方式)計(jì)算出損失值

經(jīng)過一定訓(xùn)練后,可以得到損失值關(guān)于網(wǎng)絡(luò)參數(shù)的函數(shù)(即損失函數(shù))


如圖是只考慮一個(gè)參數(shù)w1時(shí)的損失函數(shù)demo。

訓(xùn)練其實(shí)就是一個(gè)不斷減小誤差的過程,我們要肯定追求更小的loss值,因此產(chǎn)生了反向傳播。我們通過一定的方法找到損失函數(shù)極小值處所對(duì)應(yīng)的參數(shù)值,然后回到前面的網(wǎng)絡(luò)中去調(diào)整這些參數(shù)來降低loss(使模型進(jìn)一步收斂),這是一個(gè)由輸出端返回到網(wǎng)絡(luò)前層的過程,稱為反向傳播

2.3梯度下降法

既然已經(jīng)提到反向傳播,那不得不提一嘴梯度下降法了。

上述得到損失函數(shù)Loss后,怎么求到它的極小值呢?高等數(shù)學(xué)大家都學(xué)過梯度的概念,梯度表示“函數(shù)值增加最快的方向”,那么梯度的反方向就是“函數(shù)值下降最快的方向”。想要用最快的速度去尋找極小值,當(dāng)然得用最快的方式去尋找它,即沿著梯度的反向(圖上直觀看即是下降的最陡峭的方向)尋找,叫做“梯度下降法”。網(wǎng)上很多大佬的教程都以“人下山的過程”形象直觀地體現(xiàn)梯度下降,確實(shí)就好比人沿著最陡峭的方向下山耗時(shí)最短一樣。

但是我之前在學(xué)習(xí)梯度下降法時(shí)進(jìn)入一個(gè)誤區(qū),這里還有一個(gè)概念是“學(xué)習(xí)率(learning rate,簡(jiǎn)稱lr)下降”,我曾把學(xué)習(xí)率下降當(dāng)成梯度下降…

學(xué)習(xí)率可以理解為是梯度下降的步長,即在某個(gè)點(diǎn)出計(jì)算出梯度,沿著梯度反方向向下走時(shí),走一次跨多遠(yuǎn)的概念。梯度是針對(duì)某個(gè)點(diǎn)而言的,但下降時(shí)不可能經(jīng)過每個(gè)點(diǎn)(loss函數(shù)本身通常是連續(xù)的),這里就涉及到了步長的選擇。


學(xué)習(xí)率如果設(shè)定得太大,那么下降時(shí)可能會(huì)直接跳過極小值點(diǎn),并且在極小值附近不斷震蕩

但學(xué)習(xí)率如果設(shè)定太小,極小值確實(shí)可以找到,但過程將十分緩慢

因此我們可以選擇,前期學(xué)習(xí)率設(shè)定大一些,而后學(xué)習(xí)率逐漸減小,這樣可以兼得速度和準(zhǔn)確度

常見的梯度下降法包括隨機(jī)梯度下降法(SGD)、批梯度下降法、Momentum梯度下降法、Nesterov Momentum梯度下降法、AdaGrad梯度下降法、RMSprop梯度下降法、Adam梯度下降法等。大家感興趣的可以去仔細(xì)了解。

2.4過擬合和欠擬合

2.4.1過擬合

突然想到一張經(jīng)典老圖

這里描述的就是過擬合的情況。

過擬合就是模型充分學(xué)習(xí)了訓(xùn)練集上的樣本數(shù)據(jù),但學(xué)的有點(diǎn)過頭而且鉆牛角尖,到真正讓模型預(yù)測(cè)沒見過的內(nèi)容時(shí)效果就很差,即模型的泛化能力很差。好比一個(gè)學(xué)生刷題,刷的題已經(jīng)完全弄懂而且很熟練,但是做新題又不會(huì)做。

過擬合有很多可能的誘因,比如數(shù)據(jù)量太少(刷題太少,題一變就不會(huì))、網(wǎng)絡(luò)擬合方式設(shè)定不佳(刷題方法不對(duì))、數(shù)據(jù)集噪音太大或圖像某項(xiàng)特征過于集中(刷的題質(zhì)量不行或考察知識(shí)點(diǎn)非常有限)等。

2.4.2欠擬合

欠擬合更加嚴(yán)重,即不僅預(yù)測(cè)效果差,本身訓(xùn)練時(shí)的loss值也居高不下,模型參數(shù)并沒有收斂到一個(gè)合適的值。

這一般是神經(jīng)網(wǎng)絡(luò)復(fù)雜度、深度不夠導(dǎo)致的,當(dāng)然也有可能是數(shù)據(jù)集成分過于復(fù)雜,給神經(jīng)網(wǎng)絡(luò)整不會(huì)了屬于是,還有訓(xùn)練時(shí)間過短。一般來說,如果選擇官方深度學(xué)習(xí)平臺(tái)(pytorch、tensorflow、paddlepaddle等)給出的現(xiàn)成Architecture是不會(huì)出現(xiàn)欠擬合的問題的。

總結(jié)

這一節(jié)簡(jiǎn)單介紹了神經(jīng)網(wǎng)絡(luò)的基本定義、運(yùn)算方法和一些常用基本概念,下一節(jié)講解DNN、RNN、CNN等網(wǎng)絡(luò)結(jié)構(gòu)的各自特點(diǎn)。

如有講的不對(duì)的地方,懇請(qǐng)大佬批評(píng)指正。

一些細(xì)節(jié)可以參考下面的鏈接:

參考

人工神經(jīng)網(wǎng)絡(luò)的概念:
https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/382460?fr=aladdin

神經(jīng)網(wǎng)絡(luò)的基本運(yùn)算方法:
https://www.sohu.com/a/303882774_100254309

Sigmoid函數(shù):
https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407?fr=aladdin

梯度下降法:
https://zhuanlan.zhihu.com/p/112416130?ivk_sa=1024320u

過擬合和欠擬合:
https://blog.csdn.net/qq_43211132/article/details/106937846

總結(jié)

以上是生活随笔為你收集整理的深度学习导航(一)——神经网络的定义和基本概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。