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