-
1.現(xiàn)實(shí)生活中的回歸問題比較復(fù)雜。
2.kaggle社區(qū)是一個(gè)數(shù)據(jù)科學(xué)的社區(qū),它里面會(huì)有很多數(shù)據(jù)科學(xué)家或愛好者在上面可以討論問題,并且kaggle上會(huì)公開一些數(shù)據(jù)以及舉辦一些比賽,有的時(shí)候一些大公司也會(huì)把自己的數(shù)據(jù)集放出來并且給出獎(jiǎng)金讓大家做他的題目為他的題目給出一定的方式,然后對(duì)比賽比較好的前幾名他海會(huì)給一定的獎(jiǎng)金。
3.波斯頓房價(jià)預(yù)測是kaggle的一次比賽。
4.交叉檢驗(yàn):k值通常為5或者10.這種方法通常是比賽的打法。
查看全部 -
1.非線性指的就是不是一條直線,可能是一條曲線,比如說二次、三次、對(duì)數(shù)等等。 ?
2.本身神經(jīng)網(wǎng)絡(luò)是不包含非線性的,可以通過添加層數(shù)和激活函數(shù)來非線性化。
3.y_data = np.square(x_data) + noise ??# 這個(gè)和線性回歸不一樣
?
model = Sequential()
model.add(Dense(5, input_shape=(1,), activation='tanh'))
model.add(Dense(1))
model.compile(optimizer=SGD(), loss='MSE')
查看全部 -
1.回歸:回歸分析是統(tǒng)計(jì)學(xué)上常見的學(xué)習(xí)方法。通俗來講,就是現(xiàn)在有幾個(gè)變量,這些變量之間有一定的相關(guān)性,然后我們希望通過幾個(gè)變量的值去預(yù)測其中另外一個(gè)變量的變化關(guān)系。比如說用時(shí)間、城市、房屋大小等等房屋信息來預(yù)測房價(jià),股票信息如前幾天股價(jià)、股票行業(yè)等等去預(yù)測未來幾天的股價(jià)的走勢,或是未來幾天的溫度變化。
2.神經(jīng)網(wǎng)絡(luò)就是這么強(qiáng)大,使用感知機(jī)以及多層感知機(jī)就能完成回歸以及分類的幾個(gè)問題。
3.傳統(tǒng)的回歸模型:傳統(tǒng)的線性回歸通常采用的是最小二乘法,就是說這些點(diǎn)要擬合出一條直線,這條直線有一定的約束條件,希望圖上所有的點(diǎn)到這條直線的距離之和取到最小。
在神經(jīng)網(wǎng)絡(luò)中,條件不太一樣。采用迭代方式得出這條直線。
2.?損失函數(shù)MSE:均方誤差,一般用于回歸問題。它指的是真實(shí)值與預(yù)測值的差的平方和再除以點(diǎn)的個(gè)數(shù)。區(qū)別于傳統(tǒng)二乘法的線性回歸的點(diǎn)到直線。我們希望找到感知機(jī)能夠使真實(shí)值點(diǎn)與預(yù)測點(diǎn)距離之和最小。
5.# 采用感知機(jī)
model = Sequential()
model.add(Dense(1, input_shape=(1,)))
model.compile(optimizer=SGD(), loss='MSE')
?
# 因?yàn)槟P捅容^簡單,不需要迭代太多次
for step in range(5001):
????cost = model.train_on_batch(x_data, y_data) ??# 輸出代價(jià)函數(shù),也就是損失函數(shù)
????# 希望能在訓(xùn)練過程中,看到值的變化情況
????if step % 500 == 0:
????????print('step', step, ' ??cost:', cost)
# cost值越來越小,說明在收斂,也就是達(dá)到了代價(jià)函數(shù)的全局最小值
查看全部 -
1.如何使用這個(gè)模型?我們用模型來對(duì)自己的圖片分類。
# 圖像處理
from skimage.transform import resize
my_image = 'img_test/8.jpg'??????# 自己圖片的路徑,可以是相對(duì)路徑,也可是絕對(duì)路徑
my_label_y = [1]?????# 標(biāo)記一下是否是貓
?
my_image = np.array(plt.imread(my_image))
plt.imshow(my_image)?????# 展示圖片
?
num_px = 64
my_image = resize(my_image, (num_px, num_px))????# 重新調(diào)整圖片大小
?
my_image = my_image.reshape(1,-1)???# 向量,這里已經(jīng)對(duì)里面的值做了歸一化,因?yàn)樯厦娴膔esize有一個(gè)參數(shù)默認(rèn)可以做歸一化
?
result = cat_model.predict(my_image)????# 調(diào)用模型
?
if result > 0.5:????# 如果模型預(yù)測值大于0.5,我們就認(rèn)為是貓
????print('貓')
else:
????print('非貓')
查看全部 -
1.使用自己的數(shù)據(jù)集做一個(gè)貓咪識(shí)別器,流程:
查看全部 -
1.構(gòu)建的神經(jīng)網(wǎng)絡(luò):
2.隱藏層一般人腦是理解不了的。
查看全部 -
1.Keras基礎(chǔ)模塊:
2.SGD:
查看全部 -
1.使用命令行啟動(dòng)jupyter:
在指定位置啟動(dòng):jupyter notebook 路徑2.jupyter notebook的前身叫IPython Notebook,后來升級(jí)到4.0,將名字改成了jupyter。至于為什么改名,因?yàn)樗F(xiàn)在不僅可以支持Python,還可以支持其他語言,R、Julia、JS、Scala、Go。
它的名字是由:Julia、Python、R組合而成。
3.?為什么要使用Jupyter呢?
是因?yàn)閖upyter在編輯過程中,每編輯一段代碼就可以運(yùn)行一段代碼,運(yùn)行的結(jié)果也將直接顯示在代碼下方,方便查看。尤其是在數(shù)據(jù)科學(xué)領(lǐng)域,需要頻繁地進(jìn)行數(shù)據(jù)清洗,查看,計(jì)算,以及畫圖,所以非常需要這種可交互式的編程環(huán)境。并且它的運(yùn)行以及編輯結(jié)果將全部保存在這個(gè)文件中。也就是說,當(dāng)你運(yùn)行完所有的程序以及代碼,你的所有執(zhí)行過程、結(jié)果以及結(jié)論都會(huì)保存在這個(gè)文件當(dāng)中。后續(xù)你只要把這個(gè)文件分享給別人,別人就能看到你做的一系列操作。
4.?在command模式下,連續(xù)按兩次d就可以刪除這個(gè)段落。
5.?按下這個(gè)按鈕便可查看所有的指令,并且能夠看到在哪個(gè)模式下能夠執(zhí)行的指令。
查看全部 -
1.Tensorflow安裝:
CPU版本:conda install tensorflow
GPU版本:conda install tensorflow-gpu
2.Keras安裝:conda install keras
查看全部 -
1.Tensorflow是目前最熱門的深度學(xué)習(xí)框架,且官方支持Keras。
2.Anaconda安裝:
1)windows、Mac OS、Linux都已支持Tensorflow
2)Windows用戶只能使用Python3.5+(64bit)
3)有GPU可以安裝帶GPU版本的,沒有GPU就安裝CPU版本的
4)安裝Anaconda,pip版本大于8.1
查看全部 -
1.總的來說,Keras是目前排名最高的、非框架的深度學(xué)習(xí)庫。Keras是基于其他其他深度學(xué)習(xí)庫之上的開發(fā)的一套高層的神經(jīng)網(wǎng)絡(luò)API。打個(gè)比方,Tensorflow或者Theano是神經(jīng)網(wǎng)絡(luò)的巨人,那么Keras就是站在巨人肩膀上的人。Keras最初是由谷歌工程師開發(fā),原因是幫助在Theano上進(jìn)行快速的原型開發(fā),用業(yè)內(nèi)評(píng)價(jià)來說,Theano是一個(gè)功能非常強(qiáng)大但也是使用非常繁瑣的神經(jīng)網(wǎng)絡(luò)框架。因此使用Keras可以大大簡化開發(fā)流程。而在Tensorflow上也有相同的問題。要想學(xué)習(xí)Tensorflow,就要先學(xué)習(xí)谷歌的一套編程范式,像計(jì)算圖、會(huì)話、張量的一些概念。因此谷歌工程師決定把Keras擴(kuò)展到Tensorflow上,并且最近Tensorflow決定把Keras作為它的軟件庫進(jìn)行提供。Keras被認(rèn)為是構(gòu)建神經(jīng)網(wǎng)絡(luò)的未來,幾行代碼就可以比原生的Tensorflow實(shí)現(xiàn)更多的功能?,F(xiàn)在,越來越多的框架為Keras提供支持。
2.Keras的特點(diǎn):
1)高層API:
Keras由純Python編寫而成。以Tesorflow、Theano、CNTK、DeepLearning4j(基于Java語言的神經(jīng)網(wǎng)絡(luò)工具包,使用Keras構(gòu)建的模型可以直接導(dǎo)入到DeepLearning4j,從而可以在Java中使用)為后端。
(說明同一行代碼只要對(duì)執(zhí)行的后臺(tái)進(jìn)行修改,便能運(yùn)行在不同的框架下面。)
2)用戶友好:
Keras是為人類而不是天頂星人設(shè)計(jì)的API。Keras的作者在谷歌工作,Keras已經(jīng)成為Tensorflow的官方API。
(使用Tensorflow編寫的代碼如果使用Keras實(shí)現(xiàn)通??梢詫⒋a量縮小到原來的三分之一)
3)模塊性:
網(wǎng)絡(luò)層、損失函數(shù)、優(yōu)化器、激活函數(shù)、正則化方法(各模塊之間相互獨(dú)立)
4)默認(rèn)參數(shù):
默認(rèn)參數(shù)有研究支持。
5)產(chǎn)品原型發(fā)布:
IOS、Android、Python網(wǎng)頁應(yīng)用后端、JVM、樹莓派Raspberry Pi
以上特性說明Keras基于快速實(shí)驗(yàn)而生,將idea迅速轉(zhuǎn)化為成果。
查看全部 -
1.
深度神經(jīng)網(wǎng)絡(luò):
查看全部 -
1.?在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)的作用是能夠給神經(jīng)網(wǎng)絡(luò)加入一些非線性的因素,使得神經(jīng)網(wǎng)絡(luò)可以更好地解決較為復(fù)雜的問題。如果沒有激活函數(shù),那么感知機(jī)以及感知機(jī)疊加形成的神經(jīng)網(wǎng)絡(luò)也沒有辦法產(chǎn)生非線性。
因此,在現(xiàn)實(shí)的復(fù)雜問題中,必須引入非線性因素提高模型的表達(dá)能力。
2.?通過sigmoid函數(shù),線性網(wǎng)絡(luò)可以組成邏輯回歸或者多層神經(jīng)網(wǎng)絡(luò)。
3.線性神經(jīng)網(wǎng)絡(luò)與激活函數(shù):
查看全部 -
1.?最簡單的神經(jīng)網(wǎng)絡(luò)——感知器
?
那么計(jì)算機(jī)的神經(jīng)網(wǎng)絡(luò)是不是通過大量的感知器通過數(shù)值交流的一個(gè)網(wǎng)絡(luò)呢?
2.?感知器的數(shù)學(xué)模型:神經(jīng)網(wǎng)絡(luò)的搭建就是通過構(gòu)造下面的數(shù)學(xué)表達(dá)式,通過求解它的權(quán)重系數(shù)和偏置值來達(dá)到神經(jīng)網(wǎng)絡(luò)的構(gòu)建。
?
感知器是一個(gè)相當(dāng)簡單的模型,但是它的作用非常大。在神經(jīng)網(wǎng)絡(luò)當(dāng)中,它的作用可以近似理解為磚塊對(duì)于房屋建造的作用。同時(shí),它也有很多的發(fā)展空間。既可以通過損失函數(shù)發(fā)展成為支持向量機(jī),也可以通過堆疊發(fā)展成神經(jīng)網(wǎng)絡(luò)。
查看全部 -
1.子集關(guān)系及出現(xiàn)順序:
2.?深度神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)在近幾年才被大規(guī)模應(yīng)用,但它的前身人工神經(jīng)網(wǎng)絡(luò)在1960年被發(fā)明出來,但是到2010年才找到了比較好的訓(xùn)練方法。除此之外,大數(shù)據(jù)的興起及GPU并行計(jì)算的出現(xiàn),在帶來海量計(jì)算力的同時(shí),也帶來了海量數(shù)據(jù),這才使得無法獲得足夠數(shù)據(jù)量和計(jì)算力的深度學(xué)習(xí)成為了可能。由此可見,深度學(xué)習(xí)的興起和大規(guī)模應(yīng)用是由于算法、數(shù)據(jù)和計(jì)算能力的綜合突破才使得神經(jīng)網(wǎng)絡(luò)性能顯著提高,并且已經(jīng)在多個(gè)領(lǐng)域得到了突破。像是廣告的精準(zhǔn)投放,自動(dòng)駕駛、語音識(shí)別、影像識(shí)別等領(lǐng)域。當(dāng)前深度學(xué)習(xí)的發(fā)展方向除了在人工神經(jīng)網(wǎng)絡(luò)上疊加深度而形成的深度網(wǎng)絡(luò)之外,更是提出了卷積計(jì)算的卷積神經(jīng)網(wǎng)絡(luò)和引入時(shí)序模式的循環(huán)神經(jīng)網(wǎng)絡(luò),這都將原本只能處理結(jié)構(gòu)化數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)拓展到了非結(jié)構(gòu)化的文字、圖像和語音,使得神經(jīng)網(wǎng)絡(luò)的應(yīng)用場景更加廣闊。
3.?神經(jīng)網(wǎng)絡(luò)尤其是卷積神經(jīng)網(wǎng)絡(luò)很大程度上借鑒了人腦的分層認(rèn)知結(jié)構(gòu)。卷積神經(jīng)網(wǎng)絡(luò)之父Yann LeCun說他在發(fā)明卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候借鑒了人腦的視覺處理部分。
查看全部
舉報(bào)