初識深度學(xué)習(xí)

? ? 請關(guān)注公眾號AI Engine

????好久不見!由于工作原因很久沒有更新文章了,希望不要掉粉哦~

?? ?小G同學(xué)最近利用工作之余還是學(xué)習(xí)了一下深度學(xué)習(xí)方面的知識,今天就把最近的學(xué)習(xí)心得分享給大家,也當是做一次總結(jié),可以說這也是我與深度學(xué)習(xí)的初見。

? ? 深度學(xué)習(xí)在近年來作為人工智能領(lǐng)域最重要的進展,在很多方面也作出了卓越的貢獻。尤其在這個DT時代,深度學(xué)習(xí)的能力顯得越發(fā)的重要。本文還是秉著一貫的作風:實事求是,只嘮干貨。所以下面解答幾個問題,為我解答,也希望可以為您解答:


?? ??? ?1.機器學(xué)習(xí)和深度學(xué)習(xí)的關(guān)系和區(qū)別是什么?

?? ??? ?答:在回答這個問題之前,大家請先看一幅圖片。


在這幅圖片中我們似乎是可以粗略的看到二者之間的關(guān)系的,深度學(xué)習(xí)應(yīng)該是屬于機器學(xué)習(xí)的范疇內(nèi)的。對機器學(xué)習(xí)有所了解的同學(xué)應(yīng)該已經(jīng)清楚監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)了(當然也有半監(jiān)督學(xué)習(xí),這里先暫時不提),那么深度學(xué)習(xí)與它們之間到底有什么區(qū)別呢?別著急,我們來高度概括一下機器學(xué)習(xí)。我們將機器學(xué)習(xí)領(lǐng)域分為四個象限,同時將’知識’這個事物從統(tǒng)計和推理這兩個維度出發(fā),分成4類。我們從第一象限出發(fā)到第二象限,這一過程是將一些無法統(tǒng)計的知識推理出來,那么推理的依據(jù)就是根據(jù)既可以統(tǒng)計又可以推理的知識進行經(jīng)驗學(xué)習(xí)(建模),然后面對不可統(tǒng)計的新數(shù)據(jù)時進行成功的推理。這個流程就可以利用很多機器學(xué)習(xí)的方法,比如決策樹、隨機森林、支持向量機等等。在縱向方面,我們從第一象限來到第三象限,也就是將一些可以統(tǒng)計但是無法推理的知識成果的表達出來,而我們利用的技術(shù)就可以是神經(jīng)網(wǎng)絡(luò)。比較經(jīng)典的例子就是阿爾法狗、計算機視覺、無人駕駛等。這就是傳統(tǒng)機器學(xué)習(xí)和深度學(xué)習(xí)的一個區(qū)別:解釋的方向有所不同

既然深度學(xué)習(xí)也屬于可統(tǒng)計的范疇,那么他和機器學(xué)習(xí)還差別在哪里呢?答案就是特征自尋。傳統(tǒng)機器學(xué)習(xí)通過人類分析、先驗知識等將數(shù)據(jù)預(yù)處理成n個特征,再基于特征工程的思想將n個特征進行精心篩選。所以算法工程師很辛苦,將絕大部分的時間花費在了選定特征上,但是好處就是無論結(jié)果好壞,我們處于在一個相對白盒之中,可以進行有效的調(diào)整,用一句雞湯話就叫做:冷暖自知。后來科學(xué)家們發(fā)現(xiàn)讓神經(jīng)網(wǎng)絡(luò)自己去選拔特征似乎算法效果更佳,于是特征表示學(xué)習(xí)逐漸興起,但是人類從此陷入了黑盒世界,可謂是 “有多少智能,就有多少人工!” 再后來表示學(xué)習(xí)的層次逐漸增加,套路越來越深,最終變成了深度學(xué)習(xí)!好了第一個問題我就算回答完了,我們來看看第二個問題~


?? ?? ? 2.神經(jīng)網(wǎng)絡(luò)究竟是什么?它長什么樣?

?? ?? ? 答:神經(jīng)網(wǎng)絡(luò)也可稱為多層感知機。剛下生(最基本)的神經(jīng)網(wǎng)絡(luò)就長這樣嬸兒的。隨著它逐漸長大,中間的隱藏層會逐漸增多,神經(jīng)網(wǎng)絡(luò)通過組合低層的特征,然后形成高層的表示,這些表示就可以描述被識別對象的高級屬性或者高級特征。這種生成數(shù)據(jù)的中間表示能力也是其他傳統(tǒng)機器學(xué)習(xí)所辦不到的。

文章的最后還是給大家一份簡單的神經(jīng)網(wǎng)絡(luò)demo,就叫做first_MLP吧:

# coding=utf-8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

from keras.models import Sequential

from keras.layers import Dense

import numpy as np

#設(shè)定隨機種子

np.random.seed(7)

#導(dǎo)入并定義x,y數(shù)據(jù)

dataset = np.loadtxt('../../pima_data.csv',delimiter=',')

x = dataset[:,0:8]

y = dataset[:,8]

#創(chuàng)建模型

model = Sequential()

model.add(Dense(12,input_dim=8,activation='relu'))

model.add(Dense(8,activation='relu'))

model.add(Dense(1,activation='sigmoid'))

#編譯模型

model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

#訓(xùn)練模型

model.fit(x,y,epochs=150,batch_size=20)

#評估模型

score = model.evaluate(x=x,y=y,verbose=1)

print('%s : %.2f%%'%(model.metrics_names[0],score[0]*100))

print('%s : %.2f%%'%(model.metrics_names[1],score[1]*100))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容