棒棒生

讓學習變成一種習慣


  • 首頁

  • 分類

  • 關於

  • 歸檔

  • 標籤

Stochastic Processes Week 1 Introduction & Renewal processes

發表於 2021-12-11 | 分類於 SP

Coursera Stochastic Processes 課程筆記, 共十篇:

  • Week 0: 一些預備知識
  • Week 1: Introduction & Renewal processes (本文)
  • Week 2: Poisson Processes
  • Week3: Markov Chains
  • Week 4: Gaussian Processes
  • Week 5: Stationarity and Linear filters
  • Week 6: Ergodicity, differentiability, continuity
  • Week 7: Stochastic integration & Itô formula
  • Week 8: Lévy processes
  • 整理隨機過程的連續性、微分、積分和Brownian Motion
閱讀全文 »

Stochastic Processes Week 0 一些預備知識

發表於 2021-12-11 | 分類於 SP

Coursera Stochastic Processes 課程筆記, 共十篇:

  • Week 0: 一些預備知識 (本文)
  • Week 1: Introduction & Renewal processes
  • Week 2: Poisson Processes
  • Week3: Markov Chains
  • Week 4: Gaussian Processes
  • Week 5: Stationarity and Linear filters
  • Week 6: Ergodicity, differentiability, continuity
  • Week 7: Stochastic integration & Itô formula
  • Week 8: Lévy processes
  • 整理隨機過程的連續性、微分、積分和Brownian Motion

本篇回顧一些基礎的機率複習, 這些在之後課程裡有用到.
強烈建議閱讀以下文章:

  • [測度論] Sigma Algebra 與 Measurable function 簡介
  • [機率論] 淺談機率公理 與 基本性質
  • A guide to the Lebesgue measure and integration
  • Measure theory in probability

以下回顧開始:

閱讀全文 »

MCMC by Gibbs and Metropolis-Hasting Sampling

發表於 2021-10-27 | 分類於 ML

PRML book sampling (chapter 11) 開頭把動機描述得很好, 也引用來當這篇文章的前言.
在用 machine learning 很多時候會遇到需要計算某個 function $f(x)$ 的期望值, 當 $x$ follow 某個 distribution $p(x)$ 的情況, i.e. 需計算

$$\begin{align} \mu:=\mathbb{E}_p[f]=\int f(x)p(x)dx \end{align}$$

例如 EM algorithm 會需要計算 $\mathbb{E}_{p(z|x)}[f(x,z)]$, 參考 ref 的式 (23), (28)
又或者我們要做 Bayesian 的 prediction 時, 參考 ref 的式 (2)

這些情況大部分都無法有 analytical form. 不過如果我們能從給定的 distribution $p(x)$ 取 $L$ 個 sample 的話, 式 (1) 就能如下逼近

$$\begin{align} \mathbb{E}_p[f] \approx \hat f:= \frac{1}{L}\sum_{l=1}^L f(x_l) \end{align}$$
閱讀全文 »

Gumbel-Max Trick

發表於 2021-08-07 | 分類於 ML

我們在介紹 VAE 的時候有說明到 re-parameterization trick, 大意是這樣的

$y$ 是 sampling from distribution $\alpha$, i.e., $y=\text{Sampling}(\alpha)$, 其中 $\alpha=\text{NN}_1(a;\theta)$
由於我們有採樣, 因此 loss 採用期望值. Loss function 為:

$$\begin{align} L = \mathbb{E}_{y\sim\alpha}[\text{NN}_2(y;\nu)] \end{align}$$

Loss 對 $\theta$ 偏微分的時候會失敗, 主要是因為:

$$\begin{align} \nabla_\theta L = \nabla_\theta \mathbb{E}_{y\sim\alpha}[\text{NN}_2(y;\nu)] \\ \neq \mathbb{E}_{y\sim\alpha}[\nabla_\theta \text{NN}_2(y;\nu)] \end{align}$$

微分不能跟 Expectation 互換是因為 sampling 的 distribution $\alpha$ 其實也是 depends on $\theta$.

閱讀全文 »

Noise Contrastive Estimation (NCE) 筆記

發表於 2021-06-05 | 分類於 ML

之前聽人介紹 wav2vec [3] 或是看其他人的文章大部分都只有介紹作法, 直到有一天自己去看論文才發現看不懂 CPC [2] (wav2vec 使用 CPC 方法). 因此才決定好好讀一下並記錄.

先將這些方法關係梳理一下, NCE –> CPC (infoNCE) –> wav2vec. 此篇筆記主要紀錄 NCE (Noise Contrastive Estimation)

在做 ML 時常常需要估計手上 training data 的 distribution $p_d(x)$. 而我們通常會使用參數 $\theta$, 使得參數的模型跟 $p_d(x)$ 一樣. 在現在 DNN 統治的年代可能會說, 不然就用一個 NN 來訓練吧, 如下圖:

閱讀全文 »

Distributed Data Parallel and Its Pytorch Example

發表於 2020-12-20 | 分類於 ML

訓練時候的平行化可分為:

  • Model Parallel: 所有 GPUs 跑同一個 batch 但是各自跑模型不同部分
  • Data Parallel: GPUs 跑不同的 batches, 但跑同一個完整的模型

由於 Data Parallel 跑同一個完整模型且各 GPU 都用自己複製的一份, 在 update 參數時要如何確保更新一致? 可分為 synchronous 和 asynchronous update. (文章後面會詳細討論)

本文討論 Data Parallel with Synchronous update.

既然要做 data parallel, 第一件事情便是如何對不同 GPU 分派不同的 batches, 接下來我們就使用 PyTorch 做這件事.

閱讀全文 »

Quantization 的那些事

發表於 2020-10-03 | 分類於 ML

NN 在做 quantization 時採用的是非對稱的方式, real ($r$) 和 quantized ($q$) values 對應關係如下:

其中 zero point $Z$ 會跟 $q$ 相同 type, 例如 int8, 而 scaling value $S$ 則會跟 $r$ 相同, 例如 float. 以 uint3 (0~7) 做 quantization, 如下圖所示:

本篇討論以下兩點:

  1. 同一個 real 值如何在不同的 $Z$/$S$ 做轉換, e.g.: $q_1$ with ($Z_1$/$S_1$) 如何對應到 $q_2$ with ($Z_2$/$S_2$)
  2. PyTorch 的 Quantization Aware Training (QAT) 討論

在不同 $Z$/$S$ 轉換有兩個常見理由: 在做 NN 的 quantization 時候, 每個 layer 的 output domain 都不同, 這導致了使用不同的 $Z$/$S$. 又或者丟給 NN 做 inference 之前, mfcc/mfb 需要先轉換到 NN input 的 $Z$/$S$ quantized domain 上.

閱讀全文 »

TF Notes (7), Some TF2.x Eager Mode Practices

發表於 2020-06-26 | 分類於 ML

為了學習 TF2.x 只好把以前練習的一些 projects 重寫一次, 但後來時間斷斷續續的, 所以只做了一部分. 總之先記錄一下目前的練習進度吧.

閱讀全文 »

CTC Model and Loss

發表於 2020-05-31 | 分類於 ML

CTC model 是一個 decoder 部分為簡單的 (independent) linear classifer 的 seq2seq model. 因此 input frame 有 $T$ 個, 就會有 $T$ 個 output distribution vectors.

正常來說 (ex: ASR) output token 數量 $N<T$, 所以會有 alignment 問題. 以往的 alignment (HMM) 強迫每個 frame index 都需對應到一個 phone’s state, 但 CTC 允許對應到 “空” 的 state (null or blank). 這讓 CTC 的 alignment 比 HMM 更有彈性.

RNN-T 是另一種比 CTC 更有彈性的 alignment 表達方式.

CTC 的 gradient 可以非常有效率的用 dynamic programming 求得 (forward/backward 演算法, 下圖). 因此採用 gradient-based optimization 方法就很合適.

本文會詳細介紹上面提到的幾點. Decoding 部分不介紹.

閱讀全文 »

Exp of Adversarial Domain Adaptation

發表於 2020-05-17 | 分類於 ML

Domain Adaptation 是希望在 source domain 有 label 但是 target domain 無 label 的情況下, 能針對 target domain (或同時也能對 source domain) 進行分類任務. “Adversarial” 的意思是利用 GAN 的 “對抗” 想法: Label predictor 雖然只能保證 source domain 的分類. 但由於我們把 feature 用 GAN 消除了 domain 之間的差異, 因此我們才能期望這時候的 source domain classifier 也能作用在 target domain.

這篇文章 張文彥, 開頭的圖傳達的意思很精確, 請點進去參考.

接著嘗試複現了一次 Domain-Adversarial Training of Neural Networks 的 mnist(source) to mnist_m(target) 的實驗.

閱讀全文 »
1…567…11
Chih-Sheng Chen

Chih-Sheng Chen

109 文章
5 分類
228 標籤
© 2025 Chih-Sheng Chen
由 Hexo 強力驅動
主題 - NexT.Mist
[object Object] [object Object]