想要了解智能音箱背后的基礎(chǔ)技術(shù)框架,其實,即使是應(yīng)用類應(yīng)用工程師,也需要對神經(jīng)網(wǎng)絡(luò),以及深度學(xué)習(xí)模型,有一些基本的認(rèn)識,個人認(rèn)為這樣會更加方便產(chǎn)品設(shè)計,以及相應(yīng)的方案評估,因此,我們或許要大致了解感知機,Sigmoid函數(shù)的相關(guān)概念。
人類的視覺系統(tǒng),是世界上最有趣的奇跡之一,當(dāng)有人給了我們一張手寫卡片,大家可以很輕易地認(rèn)出上面的字跡,這種輕易性讓我們覺得機器想要做到這一點也是很容易的,但是實際上,機器需要更多的步驟實現(xiàn)。接下來我們將從深度學(xué)習(xí)模型,Perception感知機,以及Sigmoid函數(shù)的角度,用文字識別這一個小例子,來做關(guān)于深度學(xué)習(xí)的梳理。
首先先從一些基礎(chǔ)概念開始。
機器學(xué)習(xí)(Machine Learning)人工智能發(fā)展早期,利用一系列計算機算法分析數(shù)據(jù),建立模型,解決問題。近年來最有效的學(xué)習(xí)方法和工具:深度學(xué)習(xí)(Deep Learning)。我們以達(dá)到實用水平的語音識別技術(shù)為范例,如下圖:
根據(jù)DARPA(國防部高級研究計劃署)資助的多次語音評測,語音識別詞錯誤率已經(jīng)是評估進(jìn)步的主要指標(biāo)
之前我們有專門提過,NLP(Neuro-linguistic programming)和NLP(Natural Language Processing)經(jīng)常被弄混,這次可能簡單梳理一下神經(jīng)網(wǎng)絡(luò)相關(guān)的概念。當(dāng)前最具代表的深度學(xué)習(xí)算法模型如下:
Deep Neural Network深度神經(jīng)網(wǎng)絡(luò)
Recurrent Neural Network循環(huán)神經(jīng)網(wǎng)絡(luò)
Convolutional Neural Network卷積神經(jīng)網(wǎng)絡(luò)
可能,一個小概念的引入更加方便我們了解這個概念。我們知道,在人類聰明的小腦袋瓜里,大腦半球里面,位于大腦枕葉(Occipital Lobe)的初級視覺皮層(Primary Visual Cortex)(哈哈做硬件的小伙伴是不是會跳戲的想到ARMv7)部位,我們又叫它V1,含有1.4億個神經(jīng)元,他們之間有數(shù)萬億的聯(lián)系。然而,人類的視覺控制區(qū)域不僅僅只有V1區(qū)域,還有V2,V3,V4,V5,逐漸升級做復(fù)雜的圖像處理。隨著人類億萬年的進(jìn)化,以及逐漸加深的對世界的理解,我們的大腦變成了一個超級計算機。于是,識別手寫數(shù)字,對我們來講并非難事。于是,在不知不覺中,我們的圖像識別,我們的視覺能力變得尤為精湛。因此,我們并不能清楚的感知到,每當(dāng)我們認(rèn)出了一串手寫數(shù)字,我們的大腦做了多么復(fù)雜的工作。
但是,一旦我們嘗試用電腦程序?qū)懗鲆粋€文字識別軟件,就會發(fā)現(xiàn)這類問題的難度所在。貌似簡單的問題變得極其復(fù)雜,比如,“9”這個數(shù)字,上面是一個圈,下面有一個小尾巴,這件事很難用算法表述。如果我們試圖用coding來描述此類規(guī)則,你會在一大堆特例,中止申請中迷失方向。
神經(jīng)網(wǎng)絡(luò)嘗試通過另外一種方式解決問題,通過獲取一大堆的手寫數(shù)字作為樣本數(shù)據(jù),用作訓(xùn)練案例。然后建立一個可以通過數(shù)字樣本訓(xùn)練的系統(tǒng),換句話說,神經(jīng)網(wǎng)絡(luò)是用這些樣本,做出自動推斷手寫數(shù)字的識別規(guī)則。隨著樣本數(shù)據(jù)的不斷增加,系統(tǒng)會對手寫數(shù)字規(guī)則有更深刻的理解,以提升系統(tǒng)的精準(zhǔn)度。
為了開始接觸神經(jīng)網(wǎng)絡(luò),我們要介紹一種人工神經(jīng)元,稱之為Perceptron,感知機。在1950年至1960年,科學(xué)家Frank Rosenblatt發(fā)明了感知機,并激發(fā)了Warren McCulloch以及Walter Pitts的研究成果。在當(dāng)下,其他類的人工神經(jīng)元或許更加流行,目前主要的模型,或許是Sigmoid Neurons(跟著我用東北話念席各馬),為了后續(xù)更好的了解席各馬函數(shù),我們需要先了解一下感知機。
其實在之前,我們有稍微提過感知機的概念,其實是通過幾個二進(jìn)制輸入,給到一個二進(jìn)制輸出。
Rosenblatt介紹了一種簡單的規(guī)則,用于計算輸出——輸出0或者1,是根據(jù)sum ∑jwjxj,同時引入了weight(權(quán)重)這個概念,權(quán)重的數(shù)值代表了不同的輸入值對結(jié)果影響力的大小,而sum ∑jwjxj與threshold value(閾值)大小的對比則決定了輸出結(jié)果。閾值屬于神經(jīng)網(wǎng)絡(luò)的參數(shù)之一,如果用代數(shù)形式表示,則如下:
接下來,進(jìn)一個我最喜歡的例子用來說明感知機。
舉例:你隔壁城市即將舉辦一場紅酒節(jié),你喜歡紅酒,接下來將要決定是否要去參加紅酒節(jié)。有三個因素決定你是否會去紅酒節(jié):
1)當(dāng)天天氣如何?
2)你的男朋友愿意陪你一起去嗎?
3)你自己沒車,紅酒節(jié)的交通是否方便?
我們可以把三個因素定位輸入x1,x2,以及 x3,如果天氣很好,那么x1=1,如果不好,那么等于0。同理決定x1,x2。接下來,假設(shè)你非常非常喜歡紅酒,并且就算男朋友不陪,也愿意參加,但是你真的很討厭下雨,并且因為自己沒車,如果交通不便利,也很不方便。因此,天氣,男友陪伴,和交通方便的權(quán)重值則可以設(shè)置為w1=6, w2=2,w3=2。最后,假設(shè)你設(shè)置的閾值是5,最終你的結(jié)果將會因為之前設(shè)置的參數(shù),而給出不同的答案。模型不是完善的,但是通過設(shè)置不同的權(quán)重和閾值,我們會得到不同的模型,這個,就是最基礎(chǔ)的感知機了。
接下來希望可以逐漸從感知機過渡到席各馬模型,附贈更高級的神經(jīng)網(wǎng)絡(luò),數(shù)字信號處理的小伙伴們,還記得被卷積支配的恐懼嗎?
Deep Neural Network深度神經(jīng)網(wǎng)絡(luò)
Recurrent Neural Network循環(huán)神經(jīng)網(wǎng)絡(luò)
Convolutional Neural Network卷積神經(jīng)網(wǎng)絡(luò)