更新時(shí)間:2019年09月16日18時(shí)36分 來源:傳智播客 瀏覽次數(shù):
首先我們來看一下最常見的人工智能算法是什么樣的:
人工智能算法包括幾個(gè)部分:
x是模型的輸,y是模型的輸出,模型就是對(duì)輸入轉(zhuǎn)化為輸出的計(jì)算。比如輸入x可以是一張圖片(如貓的圖片),模型對(duì)圖進(jìn)計(jì)算處理,然后輸出這張圖片上對(duì)應(yīng)的物品的類別(貓)。
我們可以把算法理理解成一個(gè)函數(shù):y = f(x),這里面輸?是x,輸出是y,模型對(duì)應(yīng)的是映射規(guī)則f。
對(duì)于?一個(gè)具體的問題,我們可以獲取到?量的(x,y),人工智能算法就是從這些數(shù)據(jù)中學(xué)習(xí)規(guī)律,找到映射規(guī)則f。所以,人工智能算法學(xué)習(xí)規(guī)律就是確定x到y(tǒng)的映射規(guī)則f。
為了讓大家能理解人工智能算法的學(xué)習(xí)過程,我們一起來看個(gè)簡(jiǎn)單的例例子:
下面是某個(gè)小區(qū)的房?jī)r(jià)和房屋面積的數(shù)據(jù)。
現(xiàn)在要利人工智能的算法去學(xué)習(xí)房屋面積和房屋價(jià)格的規(guī)律,也就是根據(jù)房屋的面積如何計(jì)算得到房屋的價(jià)格。模型的輸入是房屋面積,模型的輸出是房屋價(jià)格。我們可以建立這樣的模型:y = wx + b,其中,w和b是未知的,調(diào)整w和b的值可以得到不同的映射規(guī)則。我們知道,y = wx + b 表示的是二維平面內(nèi)的一根直線,調(diào)整w和b的值可以得到不同的的直線。
接下來我們一起看下如何去確定w和b的值。
首先,我們先不管w和b取什么值,我們直接把輸入代入模型,可以得到模型的輸出值,我們稱模型的輸出為預(yù)測(cè)值。數(shù)據(jù)如下表:
接著,我們只要調(diào)整w和b的值,讓預(yù)測(cè)房?jī)r(jià)盡量量接近真實(shí)房?jī)r(jià)。
那我們?cè)趺凑{(diào)整w和b呢?一個(gè)一個(gè)嘗試不同的取值嗎?
我們知道,不管是w還是b,都是有無(wú)限種可能取值的,遍歷它們的所有可能取值顯然是不現(xiàn)實(shí)的。
那么有沒有方法可以指引我們?nèi)フ业阶顑?yōu)的w和b呢?答案是有的。
回憶一下,高中數(shù)學(xué)課程里面我們是不是做過這樣一件事情:給定一個(gè)函數(shù),求函數(shù)值的最小值以及此時(shí)自變量的值。
基于這樣的思路路,我們做下面這樣的操作:
這里我們就得到了一個(gè)函數(shù),函數(shù)的自變量是w和b。大家觀察這個(gè)函數(shù),j的值越小,是不是越接近?
這時(shí)候我們求j這個(gè)函數(shù)的值最小的時(shí)候?qū)?yīng)的w和b的取值,是不是就得到了我們需要找的最優(yōu)的w和b的值?
答案是肯定的,人工智能算法就是這樣做的。
上面我們構(gòu)造的函數(shù),在人工智能算法里面叫損失函數(shù),求損失函數(shù)的值最小時(shí),可訓(xùn)練參數(shù)(w和b)的值的方法是梯度下降。關(guān)于損失函數(shù)和梯度下降的內(nèi)容,我們后面再深入去講解。
下面我們來總結(jié)下人工智能算法學(xué)習(xí)規(guī)律的思路:
1、把問題抽象成數(shù)學(xué)問題:確定輸入是什么,輸出是什么;
2、建立個(gè)模型:這個(gè)模型有很多未知的參數(shù),參數(shù)取不不同的值,模型能變成不同的映射規(guī)則;
3、用大量的數(shù)據(jù)去訓(xùn)練模型:確定各個(gè)未知參數(shù)的值,這時(shí)候模型就確定下來了。
尋找最優(yōu)未知參數(shù)的值的方法:
構(gòu)建一個(gè)損失函數(shù),損失函數(shù)滿足以下條件:
1、損失函數(shù)是關(guān)于所有可訓(xùn)練參數(shù)的函數(shù);
2、損失函數(shù)的函數(shù)值越小, 越接近 。
有了損失函數(shù)之后,尋找最優(yōu)可訓(xùn)練參數(shù)的問題就轉(zhuǎn)化成:
求損失函數(shù)最小值(極小值)時(shí),可訓(xùn)練參數(shù)的取值 --> 通過梯度下降法可以實(shí)現(xiàn)。
推薦了解:python+人工智能課程
北京校區(qū)