• Tidak ada hasil yang ditemukan

Tính toán các tham số

Dalam dokumen PDF Đại Học Quốc Gia Hà Nội (Halaman 30-36)

Chương 3 Bộ phân lớp Maximum Entropy

3.3. Mô hình Maximum Entropy (ME)

3.3.4. Tính toán các tham số

Đối với tất cả các vấn đề, trừ vấn đề đơn giản nhất, giá trị * làm cho ( ) cực đại không thể được tính toán bằng các phương pháp giải tích mà thay vào đó là các phương pháp số học. Có nhiều phương pháp số học được sử dụng, có thể kể đến như IIS (Improved Iterative Scaling), L-BFGS, GIS (Generalized Iterative Scaling).

Trong phần này, chúng tôi sẽ giới thiệu tổng quan về hai phương pháp phổ biến và tốt nhất hiện nay cho bộ phân lớp dựa trên mô hình entropy cực đại: IIS và L-BFGS [6] .

 Phương pháp Improved Iterative Scaling

Phương pháp này được hai nhà khoa học Darroch và Ratcliff giới thiệu vào năm 1972 để tính toán các xấp xỉ cực đại likelihood cho các tham số của các mô hình hàm mũ (exponential model). Thuật toán này được áp dụng với điều kiện các hàm đặc trưng f x yi( , ) không âm:

( , ) 0 x, y,i f x y

i

 

Trong bài toán phân lớp chúng ta đang giải quyết, điều kiện này hiển nhiên thỏa mãn do các hàm đặc trưng là các hàm nhị phân. Nội dung của thuật toán được trình bày như sau:

Input: Các hàm đặc trưng f x yi( , ) và phân phối thực nghiệm ( , )p x y Output: Các tham số tối ưu i* và mô hình tối ưu p*

Bước 1: Bắt đầu với i = 0 với mọi i ∈{1,2,…,n}

Bước 2: Với mỗi i thực hiện:

 Gọi i là nghiệm của phương trình:

# ,

( )

i

( , ) exp(

i

( , )) ( )

i

x y

p x p(y | x)f x y   f x yp f

(3.13)

Trong đó: #

1

( , ) ( , )

n i i

f x y f x y

 Cập nhật lại giá trị của i theo công thức: i=i+i

Bước 3: Quay lại bước 2 nếu như tất cả các i đều chưa hội tụ.

Từ các bước của giải thuật ta thấy bước 2a là bước then chốt để giải bài toán.

Ta cần tìm được giá trị ilà nghiệm của phương trình.

Nếu f#( , )x y là hằng số (giả sử bằng M) thì ta có thể tính được giá trị :i

1 ( )

log ( )

i i

i

p f M p

f

 

(3.14)

Nếu f#( , )x y không phải là hằng số thì giá trị của iphải được tính theo phương pháp số học. Một phương pháp đơn giản và hiệu quả là phương pháp Newton.

Phương pháp này tính giá trị ∝* của phương trình g(∝*) = 0 lặp đi lặp lại bằng cách tính:

1 '

( ) ( )

n

n n

n

g g

  

  

(3.15)

 Phương pháp L-BFGS (Limited-memory BFGS)

L-BFGS là một thuật toán tối ưu trong họ các phương pháp quasi-Newton cho phép xấp xỉ thuật toán BFGS gốc sử dụng bộ nhớ giới hạn của máy tính. Để hiểu rõ phương pháp này, chúng tôi sẽ giới thiệu tổng quan về phương pháp Newton và phương pháp Quasi-Newton trước khi giới thiệu về thuật toán L-BFGS

 Phương pháp Newton

Hầu hết các phương pháp tối ưu số học là các giải thuật lặp trong đó ta thử dần các giá trị của biến cần tìm, hội tụ dần về giá trị tối ưu của hàm số đã cho.

Hay nói cách khác, với hàm số * arg max ( )xf x , giả sử ta có một giá trị xấp xỉ xn, ta mong muốn giá trị thử tiếp theo là xn1 thỏa mãn: f x( )nf x( n1).

Phương pháp Newton tập trung vào xấp xỉ bậc 2 của hàm số cho các điểm xung quanh xn. Giả sử hàm số f là khả vi hai lần (twice-differentiable), chúng ta có thể sử dụng xấp xỉ bậc 2 của hàm f cho các điểm ‘gần’ một điểm cố định bằng khai triển Taylor:

1 2

( ) ( ) ( ) ( ( ))

2

T T

f x  x f x   x f x  xf xx (3.16) Trong đó f x( ) và 2f x( )lần lượt là gradient và ma trận Hessian của hàm số f tại điểm x. Xấp xỉ này đúng với giá trị x tiến dần tới 0. Không mất tính tổng quát, ta có thể viết: xn1  xn x và viết lại phương trình trên như sau:

( ) ( ) 1

2

T T

n n n n

h  x f x  x g  x Hx (3.17)

Trong đó gnHn lần lượt là gradient và ma trận Hessian của hàm số f tại xn.

Chúng ta cần chọn giá trị x để cực đại giá trị xấp xỉ địa phương của hàm f tại xn. Lấy đạo hàm riêng với xta có:

( )

n

n n

h x

g H x

x

    

(3.18)

Để tìm giá trị xsao cho hàm số đạt cực đại địa phương ta chỉ cần giải phương trình hn( x) 0

x

 

hay ta có:

1

n n

x H g

  

(3.19)

Trong thực tế, chúng ta thường lấy giá trị

1 1

n n n n n

x x    x x H g với  là hằng số sao cho f x( )n vừa đủ nhỏ hơn f x( n1).

Từ lý luận trên, ta có giải thuật lặp NewtonRapshon như sau:

Hình 3.1: Giải thuật lặp NewtonRapshon

Giải thuật trên có thể được chứng minh luôn hội tụ tới điểm tối ưu cho hàm f cực đại nếu f là một hàm số lõm hay hội tụ tới f cực tiểu nếu f là hàm lồi với lựa chọn x0 bất kỳ.

Trong thực tế với các bài toán học máy như chúng ta đang quan tâm, f thường là một hàm số nhiều chiều với số chiều tương ứng với số tham số của mô hình học. Số tham số này thường rất lớn, có thể lên tới hàng trăm triệu hoặc thậm chí hàng tỉ, điều này khiến cho việc thực hiện tính toán theo phương pháp Newton là không thể do không thể tính được ma trận Hessian hay nghịch đảo của nó. Chính vì vậy, trong thực tế, giải thuật NewtonRapshon rất ít khi được sử dụng với các bài toán lớn. Tuy nhiên, thuật toán trên vẫn đúng với ma trận Hessian xấp xỉ đủ tốt mà không cần chính xác tuyệt đối.

Phương pháp được sử dụng để xấp xỉ ma trận Hessian này là Quasi-Newton.

 Quasi-Newton

Phương pháp Quasi-Newton sử dụng một hàm QuasiUpdate để sinh ra ma trận Hessian nghịch đảo tại xn1 dựa trên ma trận Hessian nghịch đảo tại xn:

Hình 3.2: QuasiNewton Update

Ở đây, chúng ta giả sử rằng phương thức QuasiUpdate chỉ cần ma trận nghịch đảo tại điểm liền trước đó, độ lệch giữa 2 điểm và độ lệch gradient của chúng.

Bốn nhà nghiên cứu Broyden, Fletcher, Goldfarb và Shanno đã tìm ra phương thức tính xấp xỉ ma trận Hessian nghịch đảo Hn1 mà ta gọi là phương thức BFGS Update:

Hình 3.3: BFGS Update

Ta chỉ cần sử dụng phương thức này ứng dụng vào trong phương thức QuasiNewton ở trên để xấp xỉ tham số.

Xấp xỉ BFGS Quasi-Newton có ưu điểm là không cần chúng ta phải tính toán ra ma trận Hessian của hàm số f mà thay vào đó, ta có thể liên tục cập nhật các giá trị xấp xỉ của nó. Tuy nhiên, chúng ta vẫn cần phải lưu lại lịch sử

của các vector snyn trong mỗi vòng lặp. Nếu vấn đề cốt lõi của phương pháp NewtonRapshon là bộ nhớ cần thiết để tính toán ma trận nghịch đảo Hessian là quá lớn thì phương pháp BFGS Quasi-Newton chưa giải quyết được vấn đề này do bộ nhớ liên tục tăng không có giới hạn. Chính vì lẽ đó, phương pháp L-BFGS ra đời với ý tưởng chỉ sử dụng m giá trị skyk gần nhất để tính toán hàm update BFGS thay vì toàn bộ số lượng vector. Việc này giúp cho bộ nhớ luôn là hữu hạn.

Dalam dokumen PDF Đại Học Quốc Gia Hà Nội (Halaman 30-36)

Dokumen terkait