《AI數(shù)學(xué)基礎(chǔ)5-生物學(xué)神經(jīng)網(wǎng)絡(luò)冀续,人工神經(jīng)網(wǎng)絡(luò)钠署,邏輯回歸求導(dǎo)計(jì)算圖》
向量化是非常常用的加速計(jì)算的方式哗戈,特別適合深度學(xué)習(xí)等需要訓(xùn)練大數(shù)據(jù)的領(lǐng)域。
對于 y = wx + b,? 若 w, x都是向量玻佩,那么出嘹,可以用兩種方式來計(jì)算,第一是for 循環(huán)
y = 0
for i in range(n):
? ? y += w[i]*x[i]
? ? y += b
也可以用向量化的方式實(shí)現(xiàn):
y = np.dot(w,x) + b
二者計(jì)算速度相差500倍以上咬崔,測試結(jié)果如下:
所以税稼,Andrew Ng給大家的建議是:Whenever Possible, avoid explicit for-loops
對于獨(dú)立的樣本,用For循環(huán)串行計(jì)算的效率遠(yuǎn)遠(yuǎn)低于向量化后垮斯,用矩陣方式并行計(jì)算的效率郎仆。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練,恰恰是大量獨(dú)立樣本的大規(guī)模并行乘加計(jì)算兜蠕!~~~ 換句話說扰肌,硬件乘加單元越多,并行計(jì)算能力越強(qiáng)
獨(dú)立(independent)在數(shù)學(xué)上的意思是熊杨,相互之間沒有計(jì)算的先后順序或者依賴關(guān)系曙旭。
相對CPU盗舰,GPU這種具備超多并行計(jì)算單元的處理器,更加適合獨(dú)立樣本的矩陣計(jì)算桂躏,計(jì)算效率遠(yuǎn)遠(yuǎn)超過CPU:參考《Debunking the 100X GPU vs. CPU Myth:An Evaluation of Throughput Computing on CPU and GPU》
Google出的TPU钻趋,就更加適合神經(jīng)網(wǎng)絡(luò)計(jì)算,效率比GPU更高沼头。TPU性能強(qiáng)勁的秘訣,是因?yàn)樗鼘W⒂谏窠?jīng)網(wǎng)絡(luò)推斷书劝。這使得量化選擇进倍、CISC指令集、矩陣處理器和最小設(shè)計(jì)得好很好的實(shí)現(xiàn)购对。
由此可以看出:TPU和APU(AI芯片)本質(zhì)是猾昆,大量堆疊向量運(yùn)算所需要的乘加單元,消除與向量計(jì)算無關(guān)的電路單元骡苞,在功耗和芯片面積盡可能小的情況下垂蜗,把向量計(jì)算能力做的盡可能大。