? ? ? ? 深度學(xué)習(xí)在很多機(jī)器學(xué)習(xí)應(yīng)用中都有巨大的潛力,但深度學(xué)習(xí)算法往往經(jīng)過精確調(diào)整,只適用于特定的使用場景。先學(xué)習(xí)一些簡單的方法,比如用于分類和回歸的多層感知機(jī)(MLP),它可以作為研究更復(fù)雜的深度學(xué)習(xí)方法的起點(diǎn)。MPL也被稱為(普通)前饋神經(jīng)網(wǎng)絡(luò),有時也簡稱為神經(jīng)網(wǎng)絡(luò)。
? ? ? ? MLP可以被視為廣義的線性模型,執(zhí)行多層處理后得到的結(jié)論。
? ? ? ? 將線性模型的公式可視化:
import mglearn
import matplotlib.pyplot as plt
from IPython.display import display
from graphviz import Digraph
graph=mglearn.plots.plot_logistic_regression_graph()
display(graph)
graph.render('example',view=True)
? ? ? ? 可以看到,左邊的每個結(jié)點(diǎn)代表輸入特征,連線代表學(xué)習(xí)到的系數(shù),右邊的結(jié)點(diǎn)代表輸出,是輸入加權(quán)求和。
? ? ? ? 在MLP中,多次重復(fù)這個計(jì)算加權(quán)求和的過程,首先計(jì)算代表中間過程的隱單元,然后再計(jì)算這些隱單元的加權(quán)求和并得到最終結(jié)果。
? ? ? ? 這個模型需要學(xué)習(xí)更多的系數(shù)(權(quán)重):在每個輸入與每個隱單元之間有一個系數(shù),每個隱單元與輸出之間也有一個系數(shù)。隱單元組成了隱層。
? ? ? ? 從數(shù)學(xué)角度看,計(jì)算一系列加權(quán)求和與只計(jì)算一個加權(quán)求和是完全相同的。因此,為了讓模型真正比線性模型更為強(qiáng)大,還需要一個技巧。在計(jì)算完每個隱單元的加權(quán)求和之后,對結(jié)果再應(yīng)用一個非線性函數(shù)(通常是校正非線性或正切雙曲線),然后將這個函數(shù)的結(jié)果應(yīng)用于加權(quán)求和,計(jì)算得出輸出y。
? ? ? ? 兩個函數(shù)的可視化效果:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
line=np.linspace(-3,3,1000)
plt.plot(line,np.tanh(line),label='tanh')
plt.plot(line,np.maximum(line,0),label='relu')
plt.legend(loc='best')
plt.xlabel('x')
plt.ylabel('relu(x),tanh(x)')
plt.show()
? ? ? ? relu截?cái)嘈∮? 的值,而ranh在輸入值較小時接近-1,在輸入值較大時接近+1。有了這兩種非線性函數(shù),神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)比線性O(shè)型復(fù)雜得多的函數(shù)。
? ? ? ? 神經(jīng)網(wǎng)絡(luò)還可以添加到多個隱層:
文章來源:http://www.zghlxwxcb.cn/news/detail-793963.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-793963.html
到了這里,關(guān)于【Python機(jī)器學(xué)習(xí)】深度學(xué)習(xí)——一些理論知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!