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