WingSyncAlgorithm

@WingSyncAlgorithm

Public team

Community (0)
No community contribution yet

Joined on Aug 22, 2023

  • 可用於解決資料之間具有序列依賴關係的問題。</br> 例如:自然語言處理、語音處理、音樂生成、蛋白質序列分析、影片理解與分析、股票預測... 7.1 序列問題和模型 資料之間具有序列關係的預測問題,就是根據當前時刻之前的所有序列資料,對當前時刻的目標值進行預測。 例如:</br> 根據一支股票的所有歷史資料預測當前時刻股票的價格。$x_t$ 表示時刻 $t$ 的資料特徵,$y_t$ 表示希望預測的 $t$ 時刻的目標值。和任何監督是學習一樣,序列資料的預測就是要學習一個映射或函數 $f:(x_1, x_2, \cdot\cdot\cdot, x_t) \rightarrow y_t$,即根據 $t$ 時刻之前的所有時刻的資料特徵 $(x_1, x_2, \cdot\cdot\cdot, x_t)$ 去預測 $t$ 時刻的目標值 $y_t$。</br> 若 $x_t$ 和 $y_t$ 是同一類型的資料,如 $x_t$ 表示 $t$ 時刻的股票價格,$y_t$ 表示 $t$ 時刻預測的目標價格,即 $t+1$ 時刻的股票價格 $y_t = x_{t+1}$ ,那麼這樣的序列資料預測問題稱為 自回歸 問題。
     Like  Bookmark
  • Seq2Seq模型由編碼器和解碼器兩個循環神經網路。 S__121733164 教師強制(Teacher Forcing) 每次不使用上一個state的輸出作爲下一個state的輸入,而是直接使用訓練數據的標準答案(ground truth)的對應上一項作爲下一個state的輸入 優點: 收斂速度提高 缺點:
     Like  Bookmark
  • 7.10.2 多層循環神經網路的訓練和預測(實作code略) 多層LSTM每個隱含層的隱狀態大小一樣,但為使其能適應不同大小的出,可增加全連接層,以適應不同大小的輸出 7.10.3 雙向循環神經網路 單向:對時刻t之預測只依靠(0,1,2,...,t-1)的資料雙向:依賴(0,1,2,...t-1,t+1,t+2,...)的資料![820342] 7.11 seq2seq module 採用 encoder-decoder 結構 透過encoder RNN產生一個上下文向量,作為decoder RNN 的初始隱狀態input 應用舉例: 機器翻譯、對話、文字摘要、對聯(有夠難的東西)
     Like  Bookmark
  • one-hot表示句子中的詞 英語中有170000個詞,如果以one-hot向量表示,每個詞將會是一個170000維的向量,且只有一個元素為1,其他都為0。這不但造成空間浪費,還無法表達詞與詞之間的相關性。 Word2Vec模型 Word2Vec模型基於類似自編碼器的兩層神經網路,可以將詞從詞表的高維向量空間,映射到低維詞向量空間,並且詞向量包含了詞與詞之間的相關性。Word2Vec主要有兩種方法,CBOW和skip-gram。 CBOW 透過將句子中的一個單字w(t)的上下文出現的詞(one-hot向量)輸入類似編碼器的神經網路得到降維的詞向量,再透過解碼器預測w(t)是各種單字的機率$[p_1 p_2 ... p_V]$。 神經網路的訓練方法:從句子資料集中,選取其中一個詞作為目標詞,並將上下幾個詞作為輸入得出預測詞,再以預測詞和目標詞的交叉商損失,對網路進行訓練。
     Like  Bookmark
  • 拆分權種 為了分辨計算,將權重及偏置向拆成兩項例如:$h^{'}$= $tanh(W_{ih} + b_{ih} + W_{hh}h + b_{hh})$ 多層循環神經網路 :::info 第一層隱含層接收資料,產生隱狀態$H^{(1)}$,這個隱狀態又繼續作為第二個隱含層的輸入... 而最後一層可以做為整個網路的輸出層,也可以繼續接一個/多個非循環神經網路 ::: 簡單來說可以表示成 $H_t = f_1(H^{l-1}t ,H^{l}{t-1})$
     Like  Bookmark
  • 7.4.5 梯度驗證 比較RNN loss grad與numarical gradient def rnn_loss_grad(Fs, Ys, loss_fn=loss_gradient_softmax_crossentropy, flatten=True): loss = 0 dFs = {} for t in range(len(Fs)): F = Fs[t] Y = Ys[t]
     Like  Bookmark
  • IMG_4085 LSTM變種 Phase LSTM 解決不同維度的特徵,週期不一致的問題 Phased LSTM_ Accelerating Recurrent Network Training for Long or Event-based Sequences - Google Chrome 2023_11_18 下午 04_17_42 Phased LSTM_ Accelerating Recurrent Network Training for Long or Event-based Sequences - Google Chrome 2023_11_18 下午 04_23_52 參考文獻 Peephole LSTM
     Like  Bookmark
  • 7.4.8 序列資料的循環神經網路訓練和預測 都是code.... 見7-56~7-63 結論: 長期預測準度極低基本上預測結果不具可參考性,但短期預測可以 7.5 循環神經網路語言模型和文字的生成 時間資料 <---> 句子或文章 下一時刻的數據 <---> 下一個詞彙
     Like  Bookmark
  • 循環神經網路 循環神經網路在傳統神經網路中增加了「儲存/記憶單元」,讓神經元記住歷史資訊,使得循環神經網路可以記憶任意長度序列的的資訊。其中一個網路層,正向傳播計算公式如下: $$\mathbf{z_h^{(t)}} = \mathbf{x^{(t)}} \mathbf{W_x} + \mathbf{h^{(t-1)}} \mathbf{W_h} + b^{(t)}$$ $$\mathbf{h^{(t)}} = g_h(\mathbf{z_h^{(t)}})$$ $$\mathbf{z_f^{(t)}} = \mathbf{h^{(t)}} \mathbf{W_f} + b_f^{(t)}$$ $$\mathbf{f^{(t)}} = g_o(\mathbf{z_f^{(t)}})$$ 時間窗方法:短期記憶 循環神經網路:長期記憶
     Like  Bookmark
  • 典型神經網路結構 (歷史故事 1989年: Yann LeCun 用反向傳播演算法訓練多層神經網路辨識手寫郵遞區號-->LeNet 1998年: Yann LeCun 提出LeNet-5-->卷積神經網路正式誕生 :::info 但當時硬體運算資源有限,卷積神經訓練花太多時間和機器--->沒被廣泛應用 ::: 2012年: Alex Krizhevsky用GPU實現AlexNet,獲得ImageNet冠軍-->深度卷積神經網路受重視,開始迅速發展 後續顏敬人員又提出了多種的神經網路結構 如VCG、inception、RNN、Transformer
     Like  Bookmark
  • 二維卷積的矩陣乘法 舉個例子,對一個單樣本、2通道、高$\times$寬=$3 \times 3$的樣本,以單個、2通道、$2 \times 2$的卷積核進行卷積。其中,兩個通道的樣本$\mathbf{X_0}$、$\mathbf{X_1}$分別是 $$ \mathbf{X_0} = \begin{pmatrix} 1 & 2 & 3\ 4 & 5 & 6\ 7 & 8 & 9 \end{pmatrix},
     Like  Bookmark
  • 1. 卷積層的反向求導 下面以一維卷積來說明 設$x = (x_0, x_1, \cdot\cdot\cdot, x_{n-1})$,$w = (w_0, w_1, \cdot\cdot\cdot, w_{k-1})$,$b$ 為偏置,卷積結果為$z = x\cdot w + b = (z_0, z_1, \cdot\cdot\cdot, z_{n-k})$ 。如果已知某個損失函數關於 $z$ 的梯度$dz = \frac{\partial{L}}{\partial{z}} = (dz_0, \cdot\cdot\cdot, dz_{n-k})$,那根據連鎖律求解該損失函數關於 $w$ 的梯度,如下: \begin{aligned} dw &= \frac{\partial{L}}{\partial{w}} \&= (\frac{\partial{L}}{\partial{w_0}}, \frac{\partial{L}}{\partial{w_1}}, \cdot\cdot\cdot, \frac{\partial{L}}{\partial{w_{k-1}}}) \&= (\sum_i \frac{\partial{L}}{\partial{z_i}} \frac{\partial{z_i}}{\partial{w_0}}, \cdot\cdot\cdot, \sum_i \frac{\partial{L}}{\partial{z i}} \frac{\partial{z_i}}{\partial{w_j}}, \cdot\cdot\cdot, \sum_i \frac{\partial{L}}{\partial{z_i}} \frac{\partial{z_i}}{\partial{w{k-1}}}) \&= \sum_i \frac{\partial{L}}{\partial{z_i}}(\frac{\partial{z_i}}{\partial{w_0}}, \cdot\cdot\cdot, \frac{\partial{z_i}}{\partial{w_j}}, \cdot\cdot\cdot, \frac{\partial{z_i}}{\partial{w_{k-1}}}) \&= \sum_i \frac{\partial{L}}{\partial{z_i}} \frac{\partial{z_i}}{\partial{w}} \end{aligned} \begin{equation} \because z_i = x_iw_0 + x_{i+1}w_1 + \cdot\cdot\cdot + x_{i+k-1}w_{k-1} \
     Like  Bookmark
  • 正則化 $L_p$範數 在數學上,我們定義一個向量$\mathbf{x}$的$L_p$範數為$||\mathbf{x}||_p\equiv (\sum_i x_i^p)^{1/p}$ 舉例來說 \begin{equation} ||\mathbf{x}||_1 = \sum_i x_i \end{equation}
     Like  Bookmark
  • 一維卷積 :::info 卷積用於對資料進行處理,從而去除資料中的雜訊或的到資料蘊含的某種訊息 ::: 以下是一個使用一個一維的高斯分布卷積核來去除躁點<br> 生成一個$sin$函數,並給予隨機的偏差值 import numpy as np
     Like  Bookmark
  • 5.2.1 權重初始化 對於回歸問題,模型的權重通常被初始化為0。對神經網路而言,權重參數若都被初始化為0,會使一個層中的神經元學習的是同樣的參數,使神經網路退化成每層只有一個層的線性序列。 這會導致神經網路每層包含多個神經元失去意義。 解決方法: 對權重參數做平均為0標準差為0.01的高斯分布,並將權重參數除以輸入數目的平方根 5.2.2 最佳化參數 最佳化參數的方法,需要長期實踐、探索、體會,並參考前人的經驗。 https://arxiv.org/ftp/arxiv/papers/2212/2212.12279.pdf
     Like  Bookmark
  • 6.1.5~6.2.2 === 緩解卷積後對位置過於敏感的問題 跨度大於1時,圖形成倍減小,減少後續計算量,提高效率 輸入和輸出通道數不變 分類:max pooling average pooling min pooling
     Like  Bookmark
  • 使用TwoLayerNN表示2層神經網路 #呼叫train函數訓練模型 nn = TwoLayerNN(2,100,3) W1,b1,W2,b2 = nn.train(X,y) iteration 0: loss 1.098627 iteration 1000: loss 0.115216 iteration 2000: loss 0.053218 iteration 3000: loss 0.038299
     Like  Bookmark
  • 1.多個樣本的正向計算 前面已經舉過單個樣本的正向計算,現在把它推到多個樣本 多個樣本(m個樣本$\mathbf{x}^{(i)}$)的資料特徵可以組成一個矩陣$X$: $$ \mathbf{X}=\begin{bmatrix} \begin{array}{} \mathbf{x}^{(1)}\ \mathbf{x}^{(2)}\ \vdots\
     Like  Bookmark
  • # 改善神經網路性能的基本技巧 5.1 資料處理 資料是機器學習的關鍵,而資料的好壞取決下列幾點 數量 品質 在現有條件下增加資料數量和改善品質 擷取、生成 資料增強、規範化、特徵工程
     Like  Bookmark
  • :::info 下面基本上都是將前面的function再增加一些功能 ::: 接收多維資料 主要是利用將 (batch_size, num_features, width , height) 轉成(batch_size, num_features * width * height)
     Like  Bookmark