目前分類:機器學習 (21)

瀏覽方式: 標題列表 簡短摘要

深度學習需要解決一個高維且非凸優化之問題,解決這些問題的難點在於,他可能具有多個好的解(local minimum),導致學習演算法(神經網路/loss)難以收斂到一個全域最佳值(global minimum)

這種問題在隨機優化領域(stochastic optimization)中,被稱為優化演算法的收斂問題(problems with the convergence of the optimization algorithm on a solution),而需要被收斂的解,在演算法中為一組權重(weight values),深度學習也屬於隨機優化領域,因此也面臨此問題,其權重通常以.h5檔案格式儲存

觀察神經網路訓練時每一個 epoch 的 loss,若不斷震盪,且平均來說不下降,則表示無法收斂 

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

應該是batch size=1為sgd

一次epoch作loss和,更新一次權重

KR 發表在 痞客邦 留言(0) 人氣()

<以下是我個人經驗,可能有誤>

我們都知道tensorflow是以計算突來當作整體變數架構

KR 發表在 痞客邦 留言(0) 人氣()

1. 安裝python - 記得安裝路徑,設定PIP環境變數
2. 安裝virtualenv - 創建PYTHON35環境

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

紅色字體為必須要另外查詢,或是重點

藍色字體為我自己的猜測,或是心得,或是尚未搞懂部分

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

Edge AI 定義: 不用連網即可運行之 AI 運算,例如: face unclock是,而 voice assisant 不是

AI 準確度目前已可達到比人類更好,參考AI演進: AlexNet > VGG > GoogleLeNet > ResNet ...

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

以下是我在tesseract遇到的問題:
問題一:TESSDATA_PREFIX 環境變數沒找到,此為將tesseract引到去語言庫的變數,將其設定到tessdata(裝著所有語言)裡即可

tessdata可以直接到github下載,裝載哪裡都可以,不同版本的teseract似乎會對應不同語言庫,要注意

例如以下寫法:

KR 發表在 痞客邦 留言(0) 人氣()

基本上用之前要用 saver = tf.train.Saver() 宣告一下,通常會宣告在with tf.Session...as sess:前,在with tf.Session...as sess:中執行saver.save(sess, dir)就會把變數內容以及名稱存起來,到時候restore時就會去對應你相同變數名稱以及型態的變數把值放進去

通常seve會有一個checkpoint檔記錄你存了幾次的.ckpt,我們可以跑100step存一次,以免電腦掛機或怎樣,譬如說,跑到一半發現時間不夠交作業必須停止,或是發現結果已經很好了

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

123


文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

可以看出 採用 np.dot()之時間上比起 之時間上比起 for loop快上不少, 深度學習中需要訓 練的數據量通常相當大 ,因此應該使用向量化來替代 loop計算


文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

損失函數是用來計算與正確答案差多少做下一次梯度降之依據 。

loss/cost function

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

Broacasting就是一 個很方便的特性,因為在神經網路中需要常進行向 個很方便的特性,因為在神經網路中需要常進行向 量乘以權重加上 bias,若是沒有 Broacasting 此性質,我們就需要另外對 此性質,我們就需要另外對 bias調 整才能進行計算,所以次特性為 coding減輕不少負擔。
當神經網路計算好後輸出為一個類似權重的東西,數值越大 之 element, 代表此 element位置之答案可能性越大,例如一個判斷圖像上數字為 1-10哪一 個數字之神經網路,當輸 出為 [2 6 5 3 4 8 7 1 2 9]時,第十個位置之 element數值 最大,代表數字十有可能是圖像上之而 softmax是把數值轉換為比 例

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

歸一化默認情況下是對 row每個 elements做平方加總開根號得到 norm之 值,此可用於對向量做減的動作例如輸入資料為 ([0 3 4 ?], [2 5 6 ?]) ,可 以看出資料四缺失,但若要對它做預測的話是填零此項不公平因需要對數據做歸一化, (此處計算 norm有加入以資料總數 有加入以資料總數 )例如第一 row的[0 3 4 ?] 變為 [-1.6 1.4 2.4 ?] ,此時 ? 是作為一個中間值而非 是作為一個中間值而非 0這種極值,對整體 神經網路預測較為公平。
本題中做除法是對於當資料各個特徵值相差過大時,例如 : 預測房屋價錢 之神經網路,若 feature有房屋坪數 (非常大的數值 非常大的數值 )以及房屋氣味 (小數值 ),對於計算可能會造成誤差,因此做歸一化使數 值變種機率而非實體值, 個別 feature數值間大小差異就可以縮小。

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

神經網路之輸入一回合通常為維 vector,所以會用 reshape將維度改變, shape代表 輸入之維度,使用 shape指令可以得到向量之維度,因此 指令可以得到向量之維度,因此 reshape就是重新改變維度的意思。


文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

首先 因為機器學習之輸入通常一個多維 vector,而非單一數值,所以最好使 用 numpy

在線性的模型中,輸出 y以及輸入 x的關係是一個 二維空間中的 直 線方程式 y = ax+b ,也就是加權值 a以及 bias b之間的關係 。例如 下圖 就是一 種線性模型,如下圖 1為公式

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

定義: Learning rate中文為學習率, 顧名思義, 代表 學習的效率, 也就是 說,當 α越大 ,學習越快 ,θ計算 一次 cost function斜率 的改變量就越大,反之 亦然。
討論: α的大小是 programming需要考慮的值,α太小會導致 學習速度 (梯度 下降)過慢,甚至影響收斂;α太大可能使的 θ錯過最佳解,無法收斂,甚至發 散,如圖 5。

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

定義: 梯度 下降法是用 來配對 出使 cost function值最小 的 θ,公式如圖 2,α為Learning rate(學習率),一開始我們會設置一個θ初始值,並且求出此θ值時,cost function的斜率方向,若斜率為正,則θ需變小(減去斜率值),斜率為負,θ則變大,如圖3,目的是找到使cost function斜率為0的θ值(cost function到x軸的距離為cost誤差值,找誤差值最小之點),此值稱為local optima,但不一定可以使的cost function值最小,只是較小的解。而θ為干若個變數,在gradient descent裡面,變數們需要同時更新(simultaneous update),如圖2下面所示,不可更新完一個變數θ0,在算下一個變數θ1,避免同一時間變數的改變互相影響。

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

定義: cost function為監督式 學習中用來計算預測值與真實質的誤差,公監督式 學習中用來計算預測值與真實質的誤差,公如圖 1,hypothesis唯一 映射函數 ( h maps from x’s to y’s ) ,輸入 已知資料 (x),得到 預測值(y);θ為可變變數,x、y之上標代表 為第幾筆樣本,m為樣本 總數,調整 θ使的 cost function得到 最小值,則此 θ組成的 hypothesis function為之最佳 linear regression預測函 式。1/2m分母的 2是為了 使之後微分 方便,除 以 m是為了 使平均誤差縮小。

文章標籤

KR 發表在 痞客邦 留言(0) 人氣()

 

文章標籤

KR 發表在 痞客邦 留言(3) 人氣()

window10

KR 發表在 痞客邦 留言(0) 人氣()

1 2