Mark Chang's Blog

Machine Learning, Deep Learning and Python

Overfitting and Regularization

1.Overfitting

所謂 Overfitting 指的就是過度訓練, 意思就是說機器學習所學到的 Hypothesis 過度貼近 Training Data , 而導致和

Testing Data 的時候, Error 變得更大

假設有一筆資料如下圖, 藍色的為 Training Data , 紅色的為 Testing Data ,

input

想要用高次多項式的 Hypothesis ,, 做 Linear Regression

其中, weight, 表示這個多項式的次數 ( Order )

Viterbi Algorithm

1.Introduction

本文接續先前提到的 Hidden Markov Model

Natural Language Processing – Hidden Markov Model

繼續探討 part of speech tagging 的演算法

先前提到, 如果要在 Hidden Markov Model 找出一個機率最大的 tagging sequence

則必須把每一個序列都列出來, 看哪一個是機率最大的

但如果 Tag 種, 那麼長度為 的序列, 就有 種可能的 tagging sequence

由此可知, 暴力列舉的演算法非常沒有效率

Davidsonian Event Semantics

1.Introduction

所謂的形式語義學( Formal Semantics ), 是在研究, 如何把自然語言用邏輯形式來表達

例如以下句子

傳統上, 用一皆邏輯 First Order Logic 可以把這個句子表示成這樣

Hidden Markov Model

1.Markov Model

Hidden Markov Modelnatural language processing 中,

常用於 part-of speech tagging

想要了解 Hidden Markov Model ,就要先了解什麼是 Markov Model

例如, 可以把語料庫中,各種字串的機率分佈,

看成是一個Random varaible 的 sequence ,

其中, 的值是 alphabet (字)的集合 :

如果想要知道一個字串出現的機率, 則可以把字串拆解成Bigram, 逐一用前一個字,來推估下一個字的機率是多少

但是要先假設以下的 Markov Assumption

Python Copy

1.Introduction

在python裡面, = 這個符號,

有可能是 pass by value 或是 pass by reference

如果 = 右方的 variablevalue , 例如 int

=pass by value ,如下

1
2
3
4
5
6
7
8
>>> x1=1
>>> x2=x1
>>> x1+=1
>>> print x1
2

>>> print x2
1

p1

Python Argparse

0.Introduction

argparse是用來處理command line的argument所使用的

例如執行一個程式, 比如說 mv

在Terminal輸入 mv --help 之後

顯示如下:

1
2
3
4
5
6
7
8
9
10
11
12
$ mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
  -f, --force                  do not prompt before overwriting
  -i, --interactive            prompt before overwrite
......

由此可知, mv 後面可以有很多種argument

那要寫程式去parse這些command line的argument很麻煩

如果用了 argparse 這個module

就不用自己寫程式去parse這些argument了

Python Difflib

1.Intoduction

今天來看看 python 的 difflib ,

difflib 常常用於字串處理,

例如可以用來比較兩個 string , 或兩個 list 有哪些不一樣

NLTK Logic 4 : Model and Satisfiability

1.Model and Satisfiability

可滿足性(Satisfiability)是在探討, 邏輯式子所建立出的模型(Model),

可不可以找到一組解, 使得這個 Model 算出來的值可以是

例如:

則當 時,

Model Satisfiable

另一例子:

這種情形,不論 的值, 永遠都是

Model Unsatisfiable

Ngram Smoothing / Interpolation

以下為我對於 Ngram Smoothing 這個章節的公式所做的筆記

Introduction

Ngram Smoothing 是用於出現在 Training Corpus 中沒有的 Ngram,

它的機率會是0

本文以 Bigram 為例, Bigram 的機率如下:

如果 , 則

為了避免probability為0, 我們要做 Ngram Smoothing

NLTK Logic 3 : Discourse Representation Theory

1. Introduction

Discourse 的意思是對話

在對話中,常常會用到 代名詞 ,像是 he, sheit.

我們把這種代名詞叫做 anaphoric pronouns

因為要從前面的句子去判斷,這些代名詞代表什麼

比如有個句子 A woman walks. She smokes.

在下一句的 She 是指前一句提到的 A woman

那要怎麼讓電腦去判斷, 代名詞 到底代表前面提到的什麼?

這就要用到 Discourse Representation Theory (DRT) 來處理了

例如 A woman walks 這句話,用 DRT 可以表示成這樣: