什么是人工智能?很多人能舉出很多例子說這就是人工智能,但是讓我們給它定義一個概念大家又覺得很難描述的清楚。實際上,人工智能并不是計算機科學領域專屬的概念,在其他學科包括神經科學、心理學、哲學等也有人工智能的概念以及相關的研究。在筆者的觀點里,人工智能就是機器具備同時獲得、建立、發(fā)展、和運用知識的能力。
在計算機科學中,我們可以把人工智能看成是一個目標,而我們講的機器學習、深度學習、強化學習等各種算法是實現(xiàn)人工智能這個目標的方法之一。
下圖是非常經典的描述人工智能與機器學習、深度學習的關系的圖。
機器學習?
機器學習方法我們可以分為以下幾個大類:監(jiān)督學習、無監(jiān)督學習和強化學習。
監(jiān)督學習中,數(shù)據(jù)集的數(shù)據(jù)具有標簽,比如說,我們想讓機器對水果的圖片進行分類,數(shù)據(jù)集中除了需要有各種水果的圖片之外,還需要每張圖片帶有是什么水果的標簽。
在無監(jiān)督學習中,數(shù)據(jù)集的數(shù)據(jù)是不帶有標簽的,用回上面的水果圖片的例子,無監(jiān)督學習中,數(shù)據(jù)集只含有各種水果的圖片,而不帶有標簽。
強化學習中,有三要素:智能體(Agent),環(huán)境(Environment)和行為(action)。智能體根據(jù)環(huán)境會有不同的行為,根據(jù)行為定義了收益函數(shù)來確定獎勵或者懲罰。比如說,下圍棋如果下贏了就進行獎勵,如果輸了則進行懲罰。同時,我們設定一些機制讓智能體自己改變行為使得收益函數(shù)最大化。換句話說,通過于環(huán)境的交互不斷的更新自己的行為來使自己變得更智能。
半監(jiān)督學習?
半監(jiān)督學習的數(shù)據(jù)集中,部分數(shù)據(jù)有標簽,而部分數(shù)據(jù)沒有標簽。隨著現(xiàn)在互聯(lián)網中數(shù)據(jù)量越來越大,對所有數(shù)據(jù)標注是不太可能完成的事,因此,利用少量標注的數(shù)據(jù)和大量沒有標注的數(shù)據(jù)進行訓練成為了一個研究方向之一。
自監(jiān)督學習?
自監(jiān)督學習是利用輔助任務從大量的無標簽數(shù)據(jù)中挖掘表征特性作為監(jiān)督信息,來提升模型的特征提取能力。比如在自然語言處理的預訓練模型過程中,設計了挖空讓模型去做完形填空,把兩個句子拼接讓模型判斷第二個句子是否承接第一個句子等任務來進行訓練。自監(jiān)督學習的監(jiān)督信息不是人工標注的,而是算法在大量無標注數(shù)據(jù)中自動構造監(jiān)督信息來進行監(jiān)督學習或者訓練,這就是自監(jiān)督學習。
深度學習?
深度學習主要基于深度神經網絡,屬于監(jiān)督學習的一種,它的訓練需要帶有標簽的數(shù)據(jù),但是現(xiàn)在的深度學習領域模型并不一定單純的屬于監(jiān)督學習,比如說語言模型預訓練的過程屬于自監(jiān)督學習。
目前神經網絡的結構五花八門,并且神經網絡的層數(shù)都堆得比較深,因此神經網絡可以看成是一個黑盒,目前還沒有嚴謹?shù)臄?shù)學證明證明神經網絡為什么有效,不同于傳統(tǒng)的統(tǒng)計機器學習,比如SVM(支持向量機)等,具有嚴格的數(shù)學證明證明它是有效的。所以深度學習的從業(yè)者門通常自嘲自己是在煉丹,只要輸入數(shù)據(jù)(原材料),然后一段時間后看結果是否符合自己的預期(丹成)。
訓練?
模型有了,訓練數(shù)據(jù)集也有了,那么AI是怎么訓練的呢?AI的訓練準備大致分為:數(shù)據(jù)收集與數(shù)據(jù)預處理,模型構建,定義損失函數(shù)和優(yōu)化方法,訓練、檢驗與優(yōu)化。
數(shù)據(jù)量和數(shù)據(jù)的質量是至關重要的一環(huán),業(yè)內有句話叫數(shù)據(jù)為王,誰的數(shù)據(jù)量越大、數(shù)據(jù)質量越高,那么理論上就能擁有最“智能”的AI。
AI的“學習”過程其實就是模型參數(shù)的更新,那么AI是怎么更新參數(shù)的呢?答案是通過定義損失函數(shù)和梯度下降的方法。
損失函數(shù)就是用來衡量你的模型的輸出和實際你需要的輸出之間的差距/不一致程度的函數(shù),模型的輸出我們叫它預測值,數(shù)據(jù)集中的標簽是我們的實際值。比如說,我要訓練一個模型能分清楚各種水果,因為模型沒有辦法知道什么是蘋果、香蕉、葡萄等,所以在正式訓練之前,我們會把數(shù)據(jù)的標簽轉換成數(shù)字的形式,比如1代表蘋果,2代表香蕉,3代表葡萄......然后我們訓練的時候,模型讀取一張?zhí)O果圖片進去,模型輸出的預測值為2,但是蘋果的標簽實際值為1,于是就知道模型的預測和實際的正確值有誤差,我們定義損失函數(shù)就是用來衡量這個誤差。
損失函數(shù)有很多種,不同的任務會使用不同的損失函數(shù)。有了損失函數(shù)之后,我們就可以優(yōu)化模型的參數(shù)來最小化損失函數(shù),損失越小代表了模型的預測越準。 而優(yōu)化的一種常用方法叫梯度下降,梯度下降可以類比下山的過程,如下圖所示,假設這樣一個場景:一個人被困在山上,需要從山上下來(i.e. 找到山的最低點,也就是山谷)。但此時山上的濃霧很大,導致可視度很低。因此,下山的路徑就無法確定,他必須利用自己周圍的信息去找到下山的路徑。這個時候,他就可以利用梯度下降算法來幫助自己下山。具體來說就是,以他當前的所處的位置為基準,尋找這個位置最陡峭的地方,然后朝著山的高度下降的地方走,。然后每走一段距離,都反復采用同一個方法,最后就能成功的抵達山谷。
在梯度下降的過程中,模型的參數(shù)會不斷的更新,直到最后到達最低點。?
雖然梯度下降的原理很直白很簡單,但實際中,這座山不是只有一個山峰和一個山谷的,因此到達的山谷可能只是一個局部最優(yōu)點而不是全局最優(yōu)點,梯度下降也有很多的改進盡可能讓模型不會落在一個局部最優(yōu)點就停下,但是實際上神經網絡的解空間比較復雜,并不一定能找到全局最優(yōu)點,以及無法證明找到的點是全局最優(yōu)。盡管不能保證找到的點是全局最優(yōu),但是目前的技術下找到的最優(yōu)點已經足夠優(yōu)秀,所以不一定話費更大的精力去尋找全局最優(yōu)。
過擬合與欠擬合?
我們收集到數(shù)據(jù)在進行數(shù)據(jù)預處理之后的數(shù)據(jù)集并不是直接丟給模型訓練的,一般情況下會把數(shù)據(jù)集分割成訓練集和測試集(8:2的比例)。測試集的數(shù)據(jù)是不存在于訓練集中,也就是在模型訓練的階段,模型沒有見過這部分的數(shù)據(jù)的。當我們在訓練集上訓練好模型的時候,我們會在測試集上去測試模型的效果。下圖展示的是我們會遇到的三種常見情況:欠擬合、擬合的符合我們的預期、和過擬合。
欠擬合的情況下就說明模型學習的不夠,模型不夠聰明學會我們讓它學的東西,表現(xiàn)為在訓練集上的效果和測試集上的效果都不好??梢越鉀Q欠擬合的方法有:文章來源:http://www.zghlxwxcb.cn/news/detail-731542.html
- 引入更多特征
- 使用非線性模型
- 使用更復雜的模型 等等
過擬合的方法則是另一個極端,模型在訓練集上學習的太好以致于太死板了,不會變通,變現(xiàn)為在訓練集上的效果很優(yōu)秀,但是在測試集上的表現(xiàn)比較差。比如說,我們讓模型去識別寫的字,識別一個人字,過擬合的表現(xiàn)就是模型得這個人字寫的很端正、字跡與訓練集中看到的一致才會識別出它是一個人字,如果這個人字的字跡不同、寫的不端正等等,模型則無法正確識別出這個字,很明顯這種情況下模型的表現(xiàn)也是不符合我們的預期的。解決過擬合的方法有:文章來源地址http://www.zghlxwxcb.cn/news/detail-731542.html
- 擴大訓練數(shù)據(jù)集,使用更多數(shù)據(jù)去訓練
- 降低模型的復雜度或者更換使用簡單點的模型
- 加入正則化
- 在合適的時候停止訓練,防止訓練過度 等等
到了這里,關于Learn Prompt-人工智能基礎的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!