Như đã nêu ở trước, các tín hiệu trộn quan sát được x phải có trị trung bình m = E[x] bằng không, điều này cũng có nghĩa là các tín hiệu nguồn s cũng có trị trung bình là không. Nếu các tín hiệu chưa có trị trung bình là không ta thực hiện phép qui tâm tức trừ phân bố của các biến ngẫu nhiên với các trị trung bình của chúng:
trong đó là vector ngẫu nhiên chưa có trung bình là không. Sau khi đã ước lượng ma trận A và các thành phần s ta có thể thêm trở lại các trị trung bình của chúng. Khi vector ngẫu nhiên x (hoặc s) có trị trung bình là không thì hiệp phương sai và tương quan của nó giống nhau.
72 trang |
Chia sẻ: lethao | Lượt xem: 4185 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Nhận dạng mặt người bằng ICA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng hạn, khi được sử dụng với TIFF, ta có thể sử dụng một giá trị chỉ số với imread để chỉ ra ảnh mà ta muốn nhập vào. Ví dụ sau đây đọc một chuối 27 ảnh từ một file TIFF và lưu những ảnh này trong một mảng 4 chiều. Ta có thể sử dụng hàm iminfo để xem bao nhiêu ảnh đã được lưu trữ trong file:
mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array
for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
Khi file chứa nhiều ảnh theo một số kiểu nhất định chẳng hạn theo thứ tự thời gian, ta có thể lưu ảnh trong Matlab dưới dạng mảng 4 chiều. Tất cả các ảnh phải có cùng kích thước .
3.7.3. Ghi một ảnh đồ hoạ
Hàm imwrite sẽ ghi một ảnh tới một file đồ hoạ dưới một trong các định dạng được trợ giúp. Cấu trúc cơ bản nhất của imwrite sẽ yêu cầu một biến ảnh và tên file. Nếu ta gộp một phần mở rộng trong tên file, Matlab sẽ nhận ra định dạng mong muốn từ nó. Ví dụ sau tải một ảnh chỉ số X từ một file Mat với bản đồ màu kết hợp với nó map sau đó ghi ảnh xuống một file bitmap .
load clown
whos
Name Size Bytes Class
X 200x320 512000 double array
caption 2x1 4 char array
map 81x3 1944 double array
Grand total is 64245 elements using 513948 bytes
imwrite(X,map,'clown.bmp')
Chỉ ra định dạng phụ - Tham số đặc biệt
Khi sử dụng imwrite với một số định dạng đồ hoạ , ta có thể chỉ ra các tham số phụ. Chẳng hạn, với định dạng PNG ta có thể chỉ ra độ sâu bit như một tham số phụ. Ví dụ sau sẽ chi một ảnh cường độ I với một file ảnh 4 bit PNG
imwrite(I,'clown.png','BitDepth',4 );
Để biết thêm các cấu trúc khác của hàm xem phần trợ giúp trực tuyến của Matlab .
Đọc và ghi ảnh nhị phân theo định dạng 1 bit
Trong một số định dạng file, một ảnh nhị phân có thể được lưu trong một định dạng 1 bit. Nếu định dạng file trợ giúp nó,Matlab ghi ảnh nhị phân như ảnh 1 bit theo mặc định. Khi ta đọc một ảnh nhị phân với định dạng 1 bit, Matlab đại diện nó trong không gian làm việc như một mảng logic .
Ví dụ sau đọc một ảnh nhị phân và ghi nó dưới dạng file TIFF . Bởi vì định dạng TIFF trợ giúp ảnh 1 bit, file được ghi lên đĩa theo định dạng 1 bit :
BW = imread('text.png');
imwrite(BW,'test.tif');
Để kiểm tra chiều sâu bit của file test.tif, gọi hàm iminfo và kiểm tra trường BitDepth của nó :
info = imfinfo('test.tif');
info.BitDepth
ans =
1
Chú ý : Khi ghi file nhị phân , Matlab thiết lập trường ColorType thành ‘grayscale’
Xem lớp lưu trữ của file
Hàm imwrite sử dụng luật sau đây để quyết định lớp lưu trữ được sử dụng trong ảnh kết quả :
logical : Nếu định dạng ảnh ra ( Output Image ) được chỉ rõ là trợ giúp ảnh 1 bit , hàm imwrite tạo một file ảnh 1 bit . Nếu định dạng ảnh ra được chỉ rõ là không trợ giúp ảnh 1 bit ( như JPEG ) , hàm imwrite chuyển ảnh tới một ảnh thuộc lớp uint8
uint8 : Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bit , hàm imwrite tạo một ảnh 8 bit
uint16 : Nếu định dạng ảnh ra được chỉ rõ trợ giúp ảnh 16 bit ( PNG hoặc TIFF ), hàm imwrite tạo một ảnh 16 bit . Nếu định dạng ảnh ra không trợ giúp ảnh 16 bit, hàm chuyển đổi dữ liệu ảnh tới lớp uint8 và tạo một ảnh 8 bit .
double : Matlab chuyển dữ liệu ảnh tới dạng uint8 và tạo một ảnh 8 bit bởi vì hầu hết các file ảnh sử dụng định dạng 8 bit .
3.8. Truy vấn một file đồ hoạ
Hàm iminfo cho phép ta có thể nhận được thông tin về một file ảnh được trợ giúp bởi toolbox. Thông tin mà ta nhận được phụ thuộc vào kiểu của file nhưng nó luôn bao gồm những thông tin sau :
Tên của file ảnh
Định dạng file ảnh
Số version của định dạng file
Ngày sửa đổi file gần nhất
Kích thước file tính theo byte
Chiều rộng ảnh tính theo pixel
Chiều cao ảnh tính theo pixel
Số lượng bit trên một pixel
Kiểu ảnh : RGB, chỉ số …
3.9. Chuyển đổi định dạng các file ảnh
Để thay đổi định dạng đồ hoạ của một ảnh, sử dụng hàm imread để đọc một ảnh và sau đó lưu nó với hàm imwrite đồng thời chỉ ra định dạng tương ứng .
Để minh hoạ, ví dụ sau đây sử dụng hàm imread để đọc một file BMP vào không gian làm việc. Sau đó, hàm imwrite lưu ảnh này dưới định dạng PNG.
bitmap = imread('mybitmap.bmp','bmp');
imwrite(bitmap,'mybitmap.png','png');
Chương 3
PHÂN TÍCH THÀNH PHẦN ĐỘC LẬP (ICA)
1. Giới thiệu về ICA
Hãy thử tưởng tượng bạn ở trong phòng mà trong đó có 3 người đang nói chuyện với nhau. Bạn dùng 3 micro, đặt tại 3 vị trí khác nhau. Các microphone sẽ thu được 3 tín hiệu đồng thời. Ta phải xác định được x1(t), x2(t) và x3(t) với x1 ,x2, x3 là cường độ âm thanh, t là thời gian. Chúng ta có thể biểu diễn nó bằng hệ phương trình tuyến tính [1]:
Trong đó là các chỉ số phụ thuộc vào khoảng cách từ microphone đến người nói. Điều này rất tiện lợi trong việc xấp xỉ 3 nguồn tín hiệu gốc ( tiếng nói của 3 người trong phòng ) s1(t), s2(t) và s3(t) từ các tín hiệu thu được x1(t), x2(t) và x3(t). Ví dụ này được gọi là bài toán cocktail-party. Theo thời gian ta có thể bỏ qua thời gian trễ và nhiễu thêm vào từ mô hình trộn đơn giản.
Hình 2.1 Tín hiệu gốc
Hình 2.2 Tín hiệu trộn
Dĩ nhiên chúng không phải là tín hiệu tiếng nói thực nhưng cũng đủ cho minh họa này. Tín hiệu tiếng nói gốc có thể giống như hình 2.1 và tín hiệu trộn có dạng như 2.2. vấn đề ở đây là chúng ta cần khôi phục lại tín hiệu gốc như 2.1 từ tín hiệu trộn 2.2.
Nếu như chúng ta biết các hệ số aij, chúng ta có thể giải hệ phương trình tuyến tính trên theo phương pháp thông thường và tìm đươc các tín hiệu ban đầu. Tuy nhiên ở đây ta không biết các hệ số aij do đó bài toán trở nên phức tạp.
Một hướng để giải quyết bài toán là sử dụng thông tin đặc trưng thống kê của tín hiệu si(t) để xấp xỉ aij. Và điều lưu ý tiếp theo là tín hiệu s1(t), s2(t) và s3(t), tại mỗi thời điểm t, là các độc lập thống kê. Tuy nhiên trong thực tế không hoàn toàn chính xác như vậy. Các hướng phát triển gần đây của kĩ thuật phân tích thành phần độc lập ICA có thể xấp xỉ aij dựa trên các thông tin độc lập của chính tín hiệu đó. Điều này cho phép chúng ta chia các tín hiệu gốc từ tín hiệu đã trộn x1(t), x2(t) và x3(t).
Hình 2.3 Tín hiệu phục hồi
Ví dụ như tín hiệu điện não được thể hiện bằng điện não đồ (EEG). Dữ liệu EEG bao gồm các tín hiệu thu được từ các điện cực gắn tại các vị trí khác nhau trên vùng đầu người. Những tín hiệu thu được từ các điện cực này chỉ là thông tin tổng hợp từ các thành phần của hoạt động não. Vấn đề này cũng tương tự như bài toán cocktail- party: chúng ta cần tìm ra các thành phần gốc của hoạt động não, nhưng chúng ta chỉ có thể quan sát các tín hiệu trộn lẫn của các thành phần này. ICA có thể phát hiện thông tin hoạt động não bằng cách tìm các thành phần độc lập này.
Một ví dụ khác, ICA được dùng để là trích các đặc trưng. Vấn đề quan trọng trong xử lý tín hiệu số là tìm ra biễu diễn phù hợp cho hình ảnh, âm thanh hoặc các loại dữ liệu khác thích hợp. Biểu diễn dữ liệu thường dựa vào biến đổi tuyến tính. Biến đổi tuyến tính được ứng dụng rộng rãi trong xử lý ảnh số như biến đổi Fourier Haar, biến đổi cosin. Mỗi phép biến đổi có ưu điểm riêng.
Tất cả các ứng dụng trên đây có thể được xây dựng thành mô hình toán học thống nhất, ICA. Đây là một giải pháp được ứng dụng cho nhiều mục đích khác nhau trong việc xử lý tín hiệu và phân tích dữ liệu.
2. Phân tích thành phần độc lập (ICA)
Để định nghĩa ICA ta có thể dùng mô hình thống kê “làm chậm biến số”- ”latent varialbe”. Giả sử, ta quan sát n tổ hợp tuyến tính x1,…,xn của n thành phần độc lập [1].
(2.1)
Chúng ta bỏ qua chỉ số thời gian t (trong mô hình ICA), ta giả sử mỗi tổ hợp xj ứng với mỗi thành phần độc lập sk là biến ngẫu nhiên, thay cho tín hiệu theo thời gian thích hợp. Giá trị quan xj(t), những tín hiệu thu được từ microphone trong bài toán cocktail-party, là mẫu của biến số ngẫu nhiên. Không mất tính tổng quát, ta giả sử cả biến trộn lẫn và thành phần độc lập có giá trị trung bình không. Nếu thực tế không đúng, có thể đưa các biến số quan sát xi về gía trị trung tâm bằng cách trừ với mẫu trung bình.
Điều đó rất thuận tiện khi dùng ký hiệu ma trận vector thay cho dạng tổng như các công thức trước đây. Điều này cho thấy với vector ngẫu nhiên x, các thành phần của nó là tổ hợp tương tự như vector ngẫu nhiên s với các thành phần . Chúng ta quan sát ma trận A với các phần tử aij .Tất cả các vector được được hiểu như vector cột; do đó xT là chuyển vị của x ,là vector hàng, sử dụng ký hiệu ma trận vector, mô hình hỗn hợp ở trên sẽ được viết lại là:
(2.2)
Thỉnh thoảng, chúng ta cần cột của ma trận A; điều đó có nghĩa là mô hình aj có thể được viết lại như sau
(2.3)
Mô hình thống kê (2.2) được gọi là phân tích các thành phần độc lập, hay mô
hình ICA. Mô hình ICA mô tả cách thức tạo ra dữ liệu quan sát bằng quá trình trộn các đối tượng si . Các đối tượng độc lập là các biến số ẩn, có nghĩa là ta không thể quan sát chúng một cách trực tiếp. Vì vậy ma trận trộn cũng được xem như là không biết. Tất cả những gì ta quan sát được chỉ là vector ngẫu nhiên x, và chúng ta phải dùng x để xấp xỉ cả A và s.
Điểm khởi đầu của ICA là sự thừa nhận rất đơn giản rằng các thành phần si là độc lập thống kê. Tiếp theo chúng ta phải thừa nhận các thành phần độc lập phải có phân bố không Gauss. Tuy nhiên, ở mô hình cơ bản chúng ta không cần biết sự phân bố này. Một cách đơn giản, chúng ta chỉ cần giả thiết ma trận trộn chưa biết là ma trận vuông. Sau đó ta xấp xỉ ma trận A, chúng ta có thể tính ma trận ngược (là W), các thành phần độc lập có thể được tính bằng công thức:
S = Wx (2.4)
ICA cũng tương tự phương pháp “phân chia nguồn mù” (BBS) hoặc phân chia tín hiệu chưa biết.”Nguồn” có nghĩa là các tín hiệu gốc, là các thành phần độc lập, tương tự như trong bài toán cocktail-party.”Mù” có nghĩa là biết rất ít. ICA là một phương pháp có thể được ứng dụng rất rộng rãi trong việc trình bày quá trình phân chia nguồn mù.
Trong nhiều ứng dụng, chúng ta giả thiết có thêm nhiễu trong quá trình đo đạc, có nghĩa là phải thêm thành phần nhiễu vào mô hình tính toán. Để đơn giản đôi khi ta có thể bỏ qua thành phần nhiễu.
Các điểm không xác định trong ICA:
Trong mô hình ICA (2.2), chúng ta có thể thấy các điểm không xác định như sau:
Chúng ta không thể xác định được thành phần biến (số cột ma trận tương quan) của các thành phần độc lập.
Lý do là cả S và A đều không được biết, phép nhân vô hướng của nguồn si có thể khử bằng cách chia cho cột tương ứng ai của A với cùng hướng (2.3). Hệ quả, chúng ta phải hiệu chỉnh biên độ của thành phần độc lập; như ta biết, các ICA đều là các biến ngẫu nhiên, cách đơn giản ta giả sử mỗi nguồn đều có thành phần biến số
đơn vị. Sau đó ma trận A sẽ đáp ứng với phương pháp giải ICA để khắc phục các hạn chế này. Ta có thể loại bỏ những dấu hiệu bất định này: ta có thể nhân thành phần độc lập với -1 mà không làm ảnh hưởng đến mô hình tính. Trong hầu hết các ứng dụng yếu tố dấu không có nghĩa.
Chúng ta không thể xác định được thứ tự của các thành phần độc lập
Lý do là cả S và A đều không được biết, chúng ta có thể thay đổi tùy ý trật tự của phép tính trong công thức (2.3), và có thể gọi bất cứ thành phần độc lập nào là thành phần đầu tiên. Ma trận hoán vị P và phép biến đổi ngược của nó có thể được thay thế trong công thức . Các phần tử của Ps là các thành phần biến độc lập gốc sj , nhưng theo thứ tự khác. Ma trận AP-1 được biết như là một ma trận trộn mới chưa biết được dùng để giải bài toán ICA .
3. Sự độc lập thống kê
3.1. Bất tương quan
Các phân bố xác suất đều giả sử có trị trung bình bằng không. Nếu không phải như vậy thì ta trừ phân bố với trị trung bình của nó, đây là sự qui tâm (centering). Để ý là hiệp phương sai (covariance) chính là tương quan (correlation) khi trị trung bình bằng không. Đối với một vector ngẫu nhiên x ma trận hiệp phương sai là
Cxx = E {(x – mx)(x – mx)T} (2.5)
T
Trong đó E {.} là toán tử lấy trung bình, mx là vector trung bình. Hiệp phương sai của hai vector ngẫu nhiên x1, x2 (có trị trung bình bằng không) là:
Cx1x2 = E {x1x2 } (2.6)
Khi Cx1x2 = 0 hai vector bất tương quan (uncorrelated). Đối với vector ngẫu nhiên x khi các thành phần xi của nó bất tương quan thì:
Cxx = D (2.7)
Trong đó D là ma trận chéo n×n, với các phương sai của các thành phần nằm trên đường chéo
3.2. Độc lập thống kê
Tính bất tương quan nêu trên chưa đủ để ước lượng các thành phần độc lập ICA. Ta cần một đặc tính mạnh hơn, đó là sự độc lập thống kê, nghĩa là khi biết một thành phần nào đó ta không thể suy ra các thành phần còn lại. Xem hai vector ngẫu nhiên x1và x2 với hàm mật độ xác suất riêng biệt p(x1), p(x2) và hàm mật độ xác suất liên kết p(x1x2) là độc lập thống kê nếu và chỉ nếu khi thỏa:
p(x1.x2) = p(x1) p(x2) (2.8)
Khi có nhiều vector thì sự thừa số hóa cũng tương tự.
Định nghĩa kỹ thuật ở trên dẫn đến một đặc tính sau của các biến ngẫu nhiên. Xem f(x1) và f(x2) là biến đổi phi tuyến nào đó trên hai vector ngẫu nhiên x1 và x2 có hàm phân bố đã nói ở trên, thì có thể chứng minh được:
E{f1(x1)f2(x2)} = E{f1(x1)}E{f2(x2)} (2.9)
Như vậy sự độc lập là có thể thừa số hóa tương quan phi tuyến. Đây là đặc tính quan trọng vì nó giải thích và nhấn mạnh vai trò các phi tuyến trong ICA. Khi đặt f(x1) = x1 và f(x2) = x2 ta thấy là sự độc lập bao gồm luôn sự bất tương quan (nhưng bất tương quan không đương nhiên là độc lập). Cụ thể là ta giả sử s ở phương trình (2.2) là độc lập thống kê nên các tín hiệu nguồn si là các thành phần độc lập. Chính nhờ sự độc lập thống kê mà ta có thể phân ly ra s từ (2.2).
3.3. Phi Gauss là độc lập
Mô hình ICA đặt ra một hạn chế là các thành phần độc lập phải có tính phi Gauss (non-gaussianity), tức không có phân bố (hàm mật độ xác suất) là Gauss.
Lý do tính phi Gauss nằm ở chổ là các biến ngẫu nhiên Gauss được xác định hoàn toàn bởi các thống kê bậc một (trị trung bình) và bậc hai (phương sai), các thống kê bậc cao hơn bằng không. Trong lúc, như sẽ thấy ở sau, mô hình ICA cần các thống kê bậc cao hơn của các thành phần độc lập để thực hiện sự phân ly (ước lượng các thành phần độc lập). Như vậy, sự phi tuyến, tính phi Gauss dẫn đến sự độc lập thống kê.
3.4. Các giả sử trong mô hình ICA
Mô hình ICA tuyến cơ bản đặt ra đòi hỏi các giả thiết sau cho việc phân ly (ước lượng) các thành phần độc lập:
Các nguồn s độc lập thống kê nhau, nghĩa là biết được một nguồn không thể suy ra các nguồn còn lại.
Các hàm phân bố xác suất của các nguồn có trị trung bình bằng không. Không có nguồn (thành phần độc lập) nào có phân bố Gauss (thật ra mô hình cho phép có tối đa một thành phần có phân bố Gauss).
Ma trận trộn A là ma trận vuông tức số lượng nguồn và số lượng trộn bằng nhau. Nếu không phải vậy, bài toán sẽ khó hơn.
4. Ước lượng ICA
Ước tính ICA là một công việc khá chi li. Người ta đã phát triển nhiều cách để giải quyết bài toán [1]:
Cực đại hóa tính phi Gauss (nongaussianity)
Ước lượng khả năng cực đại (maximum likelihood)
Cực tiểu hoá thông tin hỗ tương (mutual information)…
Trong các phương pháp, trước tiên định ra một hàm đối tượng (objective function), còn gọi hàm trị giá (cost function), rồi dùng một thuật toán tối ưu hóa để cực đại hóa hoặc cực tiểu hóa (nói chung là cực đại hóa trị tuyệt đối) hàm đối tượng này để ước lượng các thành phần độc lập.
Theo định lý giới hạn trung tâm (central limit theorem), tổng của nhiều biến ngẫu nhiên có phân bố gần Gauss hơn bất cứ biến ngẫu nhiên gốc nào. Ở mô hình ICA (2.2) vector ngẫu nhiên x gồm các biến ngẫu nhiên là trộn tuyến của các vector biến ngẫu nhiên nguồn s. Các nguồn được giả sử độc lập nhau nhưng khi trộn lại (cộng nhau) thì các trộn trở nên gần Gauss hơn. Nếu việc trộn được đảo ngược lại theo cách nào đó thì các tín hiệu nhận được sẽ ít Gauss hơn. Do đó ước lượng ICA nhắm đến cực tiểu hóa tính Gauss tức cực đại hóa tính phi Gauss bởi vì điều này sẽ cho ta các thành phần độc lập.
4.1. Đo tính phi Gauss bằng kurtosis
Đầu tiên là phép đo dựa trên kurtosis của một biến ngẫu nhiên y có trung bình bằng không là cumulant bậc bốn:
kurt(y) = E{y4} – 3 (E{y2}2 (2.10)
Thật ra vì ta giả sử y có phương sai đơn vị, nên kurtosis là kurt(y) = E{y4} – 3, tức kurtosis là phiên bản chuẩn hóa của momen thứ tư E{y4}. Khi y có phân bố Gauss momen thứ tư bằng 3(E{y2})2 nên kurtosis bằng không đối với các biến ngẫu nhiên Gauss. Hầu hết các biến ngẫu nhiên không phải Gauss kurtosis khác không. Nếu kurtosis là dương biến ngẫu nhiên có phân bố siêu Gauss (supergaussian), còn nếu kurotsis là âm thì biến ngẫu nhiên có phân bố dưới Gauss (subgaussian). Phân bố siêu Gauss không còn dạng hình chuông như Gauss mà tăng nhanh ở trung tâm tương tự như phân bố Laplace, còn phân bố dưới Gauss không nhô lên ở phần giữa như Gauss mà tiến đến phân bố đều với biên độ rất nhỏ ở xa trung tâm. Hình dưới đây thể hiện rõ điều đó
Việc đo tính phi Gauss bằng kurtosis có vài bất lợi khi các giá trị của nó được tính từ các mẫu quan sát được, vì kurtosis rất bị ảnh hưởng bởi các trị biên (outlier) quan sát được ở hai đuôi của phân bố.
4.2. Đo tính phi Gauss bằng Negentropy
Một số đo tính phi Gauss quan trọng hơn là negentropy. Negentropy là đại lượng dựa trên lý thuyết thông tin gọi là entropy vi sai. Entropy của một biến ngẫu nhiên là số đo lượng thông tin trung bình của nó. Càng ngẫu nhiên, các biến càng không có cấu trúc thì entropy càng lớn. Các biến chặt chẽ entropy càng gần chiều dài mã hóa của biến ngẫu nhiên.
Entropy (vi sai) H của vector ngẫu nhiên y có hàm phân bố f(y) định nghĩa như sau:
Trong đó ai là giá trị có thể có của Y. Đây là định nghĩa nổi tiếng dùng để tổng hợp cho các biến hay các vector ngẫu nhiên có giá trị liên tục, trong trường hợp đó thường gọi là entropy vi phân. Entropy vi phân của vector ngẫu nhiên y với mật độ f(y):
Đặc tính quan trọng của entropy là biến ngẫu nhiên Gauss có entropy lớn nhất trong các biến ngẫu nhiên có cùng phương sai. Như vậy entropy, và negentropy định nghĩa theo entropy, có thể dùng để đo tính phi Gauss của một biến ngẫu nhiên. Thực tế, điều đó chỉ ra rằng phân bố Gauss là “ngẫu nhiên nhất” hay ít cấu trúc nhất trong tất cả phân bố. Entropy là nhỏ, trong đó các phân bố hầu như chỉ tập trung trong một số giá trị nhất định, biến số hội tụ, hay hàm mật độ phân bố có dạng nhọn.
Để có được một số đo tính phi Gauss sao cho bằng không đối với biến Gauss và luôn không âm, người ta định nghĩa negentropy của vector ngẫu nhiên y:
J(y) = H(yGauss) – H(y)
trong đó yGauss là một vector ngẫu nhiên Gauss cùng ma trận hiệp phương sai (hay ma trận tương quan vì các dữ liệu được giả sử có trung bình là không). Do đặc tính đề cập ở trên ,negentropy sẽ không bao giờ âm, nó chỉ bằng không nếu và chỉ nếu y có phân bố dạng Gauss. Negentropy có đặc tính rất hay, chính là đại lượng bất biến trong phép biến đổi tuyến tính ngược.
Ưu điểm của negentropy, hay tương đương entropy vi phân, như một đại lượng đo đạc tính phi Gauss thỏa mãn lý thuyết thống kê. Trong thực tế, negentropy là số chiều trong xấp xỉ tối ưu hóa phi Gauss. Khó khăn trong việc ứng dụng negentropy là việc tính toán rất phức tạp. Việc xấp xỉ negentropy bằng định nghĩa cần phải xấp xỉ hàm mật độ xác xuất. Cho nên, việc đơn giản hóa việc xấp xỉ negentropy là rất cần thiết.
Tuy nhiên tính toán negentropy lại khó khăn. Một số tính toán xấp xỉ đã được phát triển, mà một là:
Hàm phi tuyến G(.) có thể chọn theo một hai biểu thức sau:
với và thường chọn bằng a1 = 1.
Trong mô hình ICA, ta muốn tìm các hàng của ma trận W. Khi dùng negentropy người ta xây dựng thuật toán FastICA dựa trên thuật toán điểm cố định (fixed-point algorithm).
FastICA cho một đối tượng:
Chúng ta sẽ xem xét loại một đơn vị của FastICA. Chúng ta quy việc tính toán về mức đơn vị, như mạng neural nhân tạo, có vector trọng số mà các neural có thể cập nhật theo luật học. Đối với fastICA luật học là tìm ra hướng vector đơn vị w sao cho hình chiếu wTx cực đại tính phi Gauss. Tính phi Gauss ở đây đo đạc theo xấp xỉ negentropy J(wTx). Các phương sai của wTx phải đưa về dạng đơn vị. Tương tự quá trình làm trắng hóa cũng đưa w về dạng chuẩn đơn vị.
FastICA dựa trên mô hình điểm cố định được lập đi lập lại nhiều lần nhằm tìm ra giá trị cực đại của wTx. Nó cũng bắt nguồn từ phép lặp Newton [1].
Bước 1: Chọn một vector ngẫu nhiên w
Bước 2:
Nếu không hội tụ thì quay lại bước 2
Hội tụ có nghĩa là giá trị mới và cũ của điểm w phải có cùng hướng , tích vô hướng của chúng là 1. Tuy nhiên thực tế ta chọn ngưỡng hội tụ Sig cho trước sao cho:
Trong đó là đạo hàm của các hàm G1, G2, G3
Fast ICA cho nhiều đối tượng
Tuy nhiên thường ta không có một thành phần độc lập đơn (chỉ một mà thôi), do đó phải tính nhiều hơn một hàng của W. Lúc bấy giờ các dòng w khác nhau của ma trận W có thể hội tụ đến cùng các cực đại của hàm đối tượng. Để khắc phục vấn đề này, các vector w1, w2, … wn phải được trực giao hóa sau mỗi lần lặp.
Để tránh trường hợp các vector cùng hội tụ về một hướng duy nhất chúng ta phải giải tương quan ngõ ra w1Tx,…, wnTx sau mỗi lần lặp lại. Chúng ta sẽ đề cập đến các phương pháp giải quyết vấn đề này.
Một cách giải tương quan đơn giản là mô hình hạ cấp ma trận dựa trên lý thuyết giải tương quan của Gram-Schmidth. Điều đó có nghĩa là ta xấp xỉ các đối tượng tương quan từng cái một. khi chúng ta xấp xỉ p đối tượng độc lập, hay p vector w1,…,wp chúng ta sẽ chạy thuật toán fixed-point một đơn vị cho vector wp+1 và sau mỗi bước lập lại wp+1 từ hình chiếu (wp+1T wj)wj ; j=1…p của p vector trước đó, sau đó chuẩn hóa wp+1.
Các bước thực hiện
Bước 1: Chọn số đối tượng độc lập cần xấp xỉ là m , chọn p=1.
Bước 2: Chọn ngẫu nhiên wp
Bước 3:
Bước 4:
Bước 5:
Bước 6: nếu wp không hội tụ thì quay lại bước 3.
Bước 7: Đặt và cứ tăng p thêm 1 đến khi p= m
Khi chọn xong wp ta lưu lại trong ma trận W (wp ứng với một cột của W)
Các tính chất của FastICA :
Sự hội tụ có dạng lập phương; điều này chống lại các thuật toán ICA thông thường dựa theo phương pháp gradient descent (trong đó nói rằng sự hội tụ là tuyến tính). Điều đó có nghĩa là sự hội tụ diễn ra rất nhanh, được kiểm chứng bằng các thí nghiệm dựa trên dữ liệu thực.
Chống lại lý thuyết dựa trên gradient, không có bước lựa chọn thông số tham số kích thước. Điều đó có nghĩa là thuật toán dễ sử dụng.
Thuật toán tìm trực tiếp các đối tượng độc lập của phân bố phi Gauss dùng hàm không tuyến tính .
Các đối tượng độc lập xấp xỉ từng cái một. Do đó rất hữu hiệu trong phân tích dữ liệu thăm dò, và cắt giảm sự tính toán trong trường hợp chỉ cần xấp xỉ một số đối tượng đôc lập.
Phương pháp Fast ICA hầu như có tất cả sự tiện lợi của thuật toán neural. Nó có tính song song, phân bố, dễ tính toán, cần ít không gian bộ nhớ hơn
5. Tiền xử lý ICA
Thường trước khi ước lượng ICA cho dữ liệu quan sát được người ta áp dụng một hai tiền xử lý để việc ước lượng ICA được thuận lợi hơn [1].
5.1 Qui tâm
Như đã nêu ở trước, các tín hiệu trộn quan sát được x phải có trị trung bình m = E[x] bằng không, điều này cũng có nghĩa là các tín hiệu nguồn s cũng có trị trung bình là không. Nếu các tín hiệu chưa có trị trung bình là không ta thực hiện phép qui tâm tức trừ phân bố của các biến ngẫu nhiên với các trị trung bình của chúng:
trong đó là vector ngẫu nhiên chưa có trung bình là không. Sau khi đã ước lượng ma trận A và các thành phần s ta có thể thêm trở lại các trị trung bình của chúng. Khi vector ngẫu nhiên x (hoặc s) có trị trung bình là không thì hiệp phương sai và tương quan của nó giống nhau.
5.2 Trắng hóa
Sau khi đã qui tâm các biến ngẫu nhiên x, ta áp dụng một biến đổi tuyến tính trên x để được vector mới là trắng. Sự làm trắng hay trắng hóa whitening), còn gọi cầu hóa (sphering), có mục đích làm cho dữ liệu bất tương quan. Giả sử ta có vector ngẫu nhiên x bất tương quan, tức các xuyên phương sai của các phần tử bằng không, dẫn đến ma trận hiệp phương sai là ma trận chéo có các số hạng chéo tương ứng với các phương sai của các phần tử của x. Nếu các phương sai này được cho bằng 1 , nghĩa là ma trận hiệp phương sai được cho bằng với ma trận đồng nhất I thì vector ngẫu nhiên x là trắng:
E[xxT] = I (x là trắng)
Việc làm trắng là một biến đổi tuyến tính
z = Vx
trong đó x là dữ liệu cần làm trắng, V là ma trận làm trắng, z là dữ liệu đã trắng hóa. Cách thường dùng nhất để tìm ma trận làm trắng là thực hiện sự phân ly trị riêng (Eigenvalue Decomposition - EVD) trên ma trận hiệp phương sai:
E[xxT] = EDET
trong đó E là ma trận trực giao của các vector riêng của E[xxT] và D là ma trận chéo của các trị riêng của chúng, D = chéo(d1, d2, …,dn), n là số lượng nguồn quan sát được x. Ma trận làm trắng là:
V= ED-1/2ET
Trong đó ma trận làm trắng trên cũng có thể biểu diễn như:
Trong đó là ma trận hiệp phương sai. Vậy
Trong đó là ma trận trộn đã làm trắng. Mặt khác z là dữ liệu đã làm trắng nên E={xxT}=I
Ta cần chú ý rằng các thành phần độc lập si đều giả sử có phương sai đơn vị. Vậy ma trận đã làm trắng là trực giao (ở ma trận trực giao nghịch đảo bằng chuyển vị: ).
Ta biết ma trận n x n nếu không trực giao chứa n2 độ tự do, còn nếu trực giao chỉ chứa n(n-1)/2 độ tự do. Với dữ liệu hai chiều điều này có nghĩa là độ tự do chỉ là một cho một biến đổi trực giao. Khi số chiều lớn, độ tự do của một ma trận trực giao chỉ là phân nửa độ tự do của ma trận không trực giao. Do đó người ta nói làm trắng là đã giải quyết phân nửa bài toán ICA. Bởi vì trắng hóa l