學習筆記(Task01~Task02)

學習筆記(Task01~Task02)

線性迴歸基本要素

模型

price=wareaarea+wageage+b \mathrm{price} = w_{\mathrm{area}} \cdot \mathrm{area} + w_{\mathrm{age}} \cdot \mathrm{age} + b

labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b

損失函數

L(w,b)=1ni=1nl(i)(w,b)=1ni=1n12(wx(i)+by(i))2 L(\mathbf{w}, b) =\frac{1}{n}\sum_{i=1}^n l^{(i)}(\mathbf{w}, b) =\frac{1}{n} \sum_{i=1}^n \frac{1}{2}\left(\mathbf{w}^\top \mathbf{x}^{(i)} + b - y^{(i)}\right)^2

def squared_loss(y_hat, y): 
    return (y_hat - y.view(y_hat.size())) ** 2 / 2

優化函數-隨機梯度下降

(w,b)(w,b)ηBiB(w,b)l(i)(w,b) (\mathbf{w},b) \leftarrow (\mathbf{w},b) - \frac{\eta}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} \partial_{(\mathbf{w},b)} l^{(i)}(\mathbf{w},b)

def sgd(params, lr, batch_size): 
    for param in params:
        param.data -= lr * param.grad / batch_size

Softmax 與分類模型

迴歸模型

o(i)=x(i)W+b,y^(i)=softmax(o(i)). \begin{aligned} \boldsymbol{o}^{(i)} &= \boldsymbol{x}^{(i)} \boldsymbol{W} + \boldsymbol{b},\\ \boldsymbol{\hat{y}}^{(i)} &= \text{softmax}(\boldsymbol{o}^{(i)}). \end{aligned}

def net(X):
    return softmax(torch.mm(X.view((-1, num_inputs)), W) + b)

損失函數

(Θ)=(1/n)i=1nlogy^y(i)(i) \ell(\boldsymbol{\Theta}) = -(1/n) \sum_{i=1}^n \log \hat y_{y^{(i)}}^{(i)}

def cross_entropy(y_hat, y):
    return - torch.log(y_hat.gather(1, y.view(-1, 1)))

文本處理

預處理通常包括四個步驟:

  1. 讀入文本
  2. 分詞
  3. 建立字典,將每個詞映射到一個唯一的索引(index)
  4. 將文本從詞的序列轉換爲索引的序列,方便輸入模型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章